I read with great interest. As my background in I/O systems involves much
RDMS and other monstrosities, I shiver at the though of a disk driver
re-ordering I/O >. Can cause corruption real fast. It is a real problem as
it must be done for perfromance problems. You raise an interesting point
with starvation on a disk. Your solution is very clever. I think the SCSI
protocol has a hole in it. namely timeouts. No way to predict these. I
still feel uncomfortable with the way Linux queues and handles Disk Requests.
To many holes. Too many dependenci es on timeouts.
I have some knowledge about RDBMS systems myself. My understanding, for
example, is that Oracle prefers to use raw disk partitions for its data storage
and asynchronous I/O for database buffers. It typically hands off a large
chunk of I/O requests all at once and could care less what order they are done
in. There are ordering constraints on some of the I/O, but that's for things
like transaction log files that would use fully synchronous writes anyway to
completely separate disks.
Leonard