On Jan 28, 2014, at 5:26 AM, George Spelvin <linux@xxxxxxxxxxx> wrote: >> The third part of the patch further increases the scalablity of an ext4 >> filesystem by having each ext4 fielsystem allocate and use its own private >> mbcache structure, instead of sharing a single mcache structures across all >> ext4 filesystems, and increases the size of its mbcache hash tables. > > Are you sure this helps? The idea behind having one large mbcache is > that one large hash table will always be at least as well balanced as > multiple separate tables, if the total size is the same. > > If you have two size 2^n hash tables, the chance of collision is equal to > one size 2^(n+1) table if they're equally busy, and if they're unequally > busy. the latter is better. The busier file system will take less time > per search, and since it's searched more often than the less-busy one, > net win. > > How does it compare with just increasing the hash table size but leaving > them combined? Except that having one mbcache per block device would avoid the need to store the e_bdev pointer in thousands/millions of entries. Since the blocks are never shared between different block devices, there is no caching benefit even if the same block is on two block devices. Cheers, Andreas
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail