|
From: = m. Th = <th...@va...> - 2007-01-05 12:37:10
|
Vlad Horsun wrote: > .... > Ideally this threads must run with such priority to not harm other threads. > If we have IO subsystem which can handle, say, N IO requests per second, > and constant work load with M IO requests per second (M < N), we can safely > let background (or low IO priority) threads perform N - M IO requests per second. > Am i wrong ? > Problem is that we don't know N and M > > >> Certainly, we can invite >> a lot - let single request pass after N high-priority requests provided >> total requests number is less or equal to M. Having M and N settable >> from firebird.conf:). Do we need such overcomplicated things? >> > > If it will work than yes we need it ;) But i doubt such algorithm will work well > > ... > Can you explain please why you think that this will not work well? Because similar algorithms (ie. prioritized queues) are the basis on today networks. IMHO, the scope is the same prioritizing/managing access to a slow resource. For ex. see http://en.wikipedia.org/wiki/Quality_of_service as a start. Also, IMHO, is very good to have a look at http://en.wikipedia.org/wiki/Background_Intelligent_Transfer_Service - we need something like this, but for disks, right? As an aside it seems a little bit odd that while we have a resource hungry feature triggering in the way in which GC triggers which can reach to the point of exhausting server memory (see the thread 'Firebird restarting' from the support list) and we are a little bit 'scared' about statistics auto updating. But, overall, the discussion is very good, and IMHO many good things arise which you can use elsewhere. Just not to forget that while is very good to have such 'automatic' things (lower TCO & TTM, good behaviour out-of-the-box, attract new users) and profile them, we'll never to cover all the situations and we need to allow a 'knob' to shut the feature off/on without restarting the server, if the user wants. hth, m. th. |