Thor Lancelot Simon <[email protected]> wrote: > It should be possible to gather those requests and commit many of them > at once to disk with a single cache flush operation, rather than issuing > a cache flush for each one. This is not unlike the problem with nfs3 in > general, that many clients at once may issue WRITE RPCs followed by COMMIT > RPCs, and the optimal behavior is to gather the COMMITS, service many at > a time, then respond to them all -
If I understand correctly, the current situation is that each NFS client fsync() causes a server WAPBL flush, while other NFS clients fsync() are waiting. The situation is obvious with NFS, but it also probably exists with local I/O, when VOP_FSYNC cause a WAPBL flush and let others VOP_FSYNC wait. Basically, if we have N pending VOP_FSYNC for a given filesystem, all theses requests will be honoured on first flush, but they are serialized and will be acknowledged one by one, with the cost of a useless flush each time. Am I right? -- Emmanuel Dreyfus http://hcpnet.free.fr/pubz [email protected]
