I misinterpreted the question. My answer assumes reads from the same file. AFAIK, there is no thread-level I/O scheduler in Solaris. ZFS uses a priority scheduler which is based on the type of I/O and there are some other resource management policies implemented. By default, ZFS will queue 35 I/Os to each leaf vdev, so it is not clear that scheduling above the ZFS level will be as effective as one might presume, based on how other systems implement I/O scheduling.
Solaris does have CPU, network, and memory resource management. -- richard On Jan 11, 2010, at 11:21 AM, Richard Elling wrote: > On Jan 11, 2010, at 8:05 AM, bank kus wrote: > >> As of 2009.06 what is the policy with reordering ZFS file reads i.e., >> consider the following timeline: >> T0: Process A issues read of size 20K and gets its thread switched out >> >> T1: Process B issues reads of size 8 bytes and gets its thread switched out >> >> Are the 8 byte reads from B going to fall in queue _behind_ A if: > > Order is not preserved in either the OS or the device. The data will be cached > in the device, ZFS vdev cache, ARC, and L2ARC. At some point in time, the > data will be evicted, depending on the cache demand and policies. It is > unlikely > that the media will be read twice if both reads are issued at near the same > time. > >> --> if A and B are from separate users? >> --> If B is from the system process? > > Doesn't matter. None of those caches are tagged by pid. > -- richard >