Subject: Re: NCR Driver Problems
To: Christoph Badura <bad@flatlin.ka.sub.org>
From: None <Chris_G_Demetriou@NIAGARA.NECTAR.CS.CMU.EDU>
List: current-users
Date: 01/29/1996 20:03:50
> > The biggest win with tagged commands is that you can
> > issue multiple commands to a target and have the target
> > do the ordering. The target will do the ordering to
> > optimize the operations as it's doing head seeks and
> > crossing platters thus yielding a higher throughput
> > and minimizing the time due to seeking..
> 
> Except the buffer cache and the disksort routine are supposed to do
> that already.
> 
> It could well be that the target gets it wrong and the performance
> gets worse.  There is a CSRG paper about such an experience with a
> non-SCSI controller that did it's own ordering.


People who say "use disksort" are missing something: concurrency.

There's a lot of literature out there, that's been put out recently,
about the fact that exposing I/O concurrency to the OS, and to the
hardware wins significantly.

In the recent SOSP paper that my group did, we saw some occasionally
quirky -- but always better -- performance by exposing more concurrency
to the drive(s).  (The one particular case i can think of, that i
think was mentioned in that paper was a case where we were doing grep
string * for the files in one manual section, and disclosing our future
file accesses to the OS via hints, so that it would prefetch the data.
w/ one request outstanding at the drive, we got horrible performance,
with many, we got great performance...  turns out that the layout
of the files on-disk -- done by the FFS -- was EXACTLY OPPOSITE
optimal, because of the fact that the files were added to the
directory in almost reverse order.)

Consider also the case where you're talking about a RAID4 controller that
appears as a LUN on a SCSI bus.  How can you _hope_ to get the maximum
bandwidth that it provides if you've only got one outstanding request
at a time, because it's going to have several spindles completely idle!


While i believe that disksort etc., do the right thing, you cannot get
maximum bandwidth out of modern disks and disk subsystems if you don't
expose concurrency of access to the disks.



chris