Check out the new USENIX Web site. next up previous
Next: Eager-writing-based Shortest Access Time Up: Scheduling on an EW-Array Previous: Scheduling on an EW-Array


Naive Scheduling Algorithms

Given a mix of queued read and write requests, since write requests generally can be serviced quickly under eager-writing, one naive strategy is to simply schedule all the writes first. (To prevent starvation of read requests, one can augment this algorithm with simple heuristics such as imposing an upper-bound on the amount of time that a request can spend in the queue before it is forcibly scheduled.) We call this the write-first algorithm. One problem with this naive algorithm is that by greedily scheduling all the writes first, the scheduler may be missing opportunities of inserting some of these writes into naturally occurring latency gaps during the later read operations without adding much to the queueing time of the reads.

The opposite approach, an equally if not more naive algorithm, is to schedule all the reads first using an existing disk scheduling algorithm. We call this the read-first algorithm. Write requests that could have completed more quickly suffer long delays, and it is not hard to see why this algorithm is not optimal. We describe the read-first and write-first algorithms here not because of their practical utility, but because the problems encountered by these two extreme approaches may expose the pitfalls of eager-writing scheduling algorithms in general.


next up previous
Next: Eager-writing-based Shortest Access Time Up: Scheduling on an EW-Array Previous: Scheduling on an EW-Array
Chi Zhang
2001-11-16