(Illustration by Gaich Muramatsu)
On Sat, Feb 02, 2008 at 01:51:28AM -0500, Jan Harkes wrote: > On Fri, Feb 01, 2008 at 01:29:18PM +0000, coda_at_bobich.net wrote: > > Is there a particular reason why 256K directory size is used? What code > > changes would be required to increase this to, for example, 64M? ... > Technically it should be possible to double the basic page size, this > would double the limit, even quadruple if we also double the size of the > pointer page. However this breaks the way servers store directory data, ... > And really that is just too much trouble for a change that doesn't > really fix anything. So now we have a 1MB directory size limit which > would be around 16000 maildir messages, enough to store one month of > linux-kernel mail, but not anymore. Oh, and another thing, once we start shipping multi-MB directory contents, it may be beneficial to include things like attribute data for all or recently modified children of the directory. Because once we get the directory contents, in many cases we would stat(2) all the children, which could result in an individual GetAttr rpc call for each file or subdirectory if they are not cached. So although I may be able to fetch that 1MB file in a second or two over my cable modem connection, it takes about 12ms for each rpc as that is the ping roundtrip I'm currently seeing to the servers. So it would take over 3 minutes to get the attributes for those 16000 files. So there may very well be more that can be done than just sending larger directories around. JanReceived on 2008-02-02 02:42:08