On Tue, Feb 06, 2007 at 04:23:52PM -0800, Davide Libenzi wrote:
They're independant. Of course they have to be parallel, that's
what I/O wants.
You are right, but it's more efficient in some cases.
Sure is for I/O. It's the majority of the case. If you have
1000 blocks to send out, you want them all down at the request queue at
once, where they can merge.
Not everything is in-cache. Databases will be doing O_DIRECT
and will expect that 90% of their I/O calls will block. Why should they
have to iterate this list every time? If this is the API, they *have*
to. If there's an efficient way to get "just the ones that didn't
block", then it's not a problem.
Joel
--
"The real reason GNU ls is 8-bit-clean is so that they can
start using ISO-8859-1 option characters."
- Christopher Davis (ckd@loiosh.kei.com)
Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker@oracle.com
Phone: (650) 506-8127
-