duplexed I/O
Bill Frantz
frantz@netcom.com
Fri, 18 Sep 1998 23:17:37 -0800
I think the possible configurations of disk drives, and the distributed
"intelligence" between drives, caches, and drivers, have gotten far beyond
what we can model in the CPU. As such, I would look for some kind of
economic model for requests. That is, reward the drives (with more
requests) which give the best service.
Not being sure what standard driver software can do makes suggestions a bit
difficult. :-) However, let me try a simple model of a driver:
* A driver has a queue of requests which are executed in some arbitrary order.
* A request is placed on the queue and sometime later the OS is notified
that the request has (successfully or unsuccessfully) completed.
Since we want to maintain flexibility, we never let a driver have more than
one request at a time. We maintain an external (to the driver) queue for
each drive of requests beyond the two we let the driver see. When a
request ends on a drive, we take the "best" request from the queue and pass
it to the driver. (We must make sure that a request on our queue can not
be frozen out forever.) Some of shap's ideas may be the way to select the
"best" next request.
Whenever we make one of these requests, we allocate a new page frame for
the request. We may read the same logical page into two frames at the same
time, but that gets chalked up to market inefficiency. The first one
reported complete, gets used, and the others have their page frames
returned to the free pool when they complete.
With this model, the drives which give the fastest service tend to get the
most requests.
I sure wish we could get the drivers to bid for a completion time and have
a real market competition.
-------------------------------------------------------------------------
Bill Frantz | If hate must be my prison | Periwinkle -- Consulting
(408)356-8506 | lock, then love must be | 16345 Englewood Ave.
frantz@netcom.com | the key. - Phil Ochs | Los Gatos, CA 95032, USA