Re: How capacious and well-indexed are ext4, xfs and btrfs directories?

Chris Mason
2021-05-17T23:41:04Z

> On May 17, 2021, at 7:22 PM, Dave Chinner <david@fromorbit.com> wrote:
>
> On Mon, May 17, 2021 at 04:06:58PM +0100, David Howells wrote:
>
>> What I'd like to do is remove the fanout directories, so that for each logical
>> "volume"[*] I have a single directory with all the files in it. But that
>> means sticking massive amounts of entries into a single directory and hoping
>> it (a) isn't too slow and (b) doesn't hit the capacity limit.
>
> Note that if you use a single directory, you are effectively single
> threading modifications to your file index. You still need to use
> fanout directories if you want concurrency during modification for
> the cachefiles index, but that's a different design criteria
> compared to directory capacity and modification/lookup scalability.

Unless you’re doing one subvol per fan directory, the btrfs results should be really similar either way. It’s all getting indexed in the same btree, the keys just change based on the parent dir.

The biggest difference should be what Dave calls out here, where directory locking at the vfs level might be a bottleneck.

-chris