I think that there are several points which are missing here.
First, readdirplus(), without any sort of caching, is going to be _very_
expensive, performance-wise, for _any_ size directory. You can see this
by instrumenting any NFS server which already supports the NFSv3 READDIRPLUS
semantics.
Second, the NFS client side readdirplus() implementation is going to be
_very_ expensive as well. The NFS client does write-behind and all this
data _must_ be flushed to the server _before_ the over the wire READDIRPLUS
can be issued. This means that the client will have to step through every
inode which is associated with the directory inode being readdirplus()'d
and ensure that all modified data has been successfully written out. This
part of the operation, for a sufficiently large directory and a sufficiently
large page cache, could take signficant time in itself.
These overheads may make this new operation expensive enough that no
applications will end up using it.
Speaking of applications, how many applications are there in the world,
or even being contemplated, which are interested in a directory of
files and whether or not this set of files has changed from the previous
snapshot of the set of files? Most applications deal with one or two
files on such a basis, not multitudes. In fact, having worked with
file systems and NFS in particular for more than 20 years now, I have
yet to hear of one. This is a lot of work and complexity for very
little gain, I think.
Is this not a problem which be better solved at the application level?
Or perhaps finer granularity than "noac" for the NFS attribute caching?
Thanx...
ps
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html