-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 8/9/2012 9:50 AM, John Simpson wrote:
> On 2012-08-08, at 2132, Eric Shubert wrote:
>>
>> #define MAX_USERS_PER_LEVEL 100
>> ...
>>
>> In an ext3 environment, it could be set (by the admin) to 30000 (ext3
>> supports 32000 subdirectories), and with ext4 it could be set to 60000 (ext4
>> supports 64000). These settings would for the most part disable hashed
>> directories, while still allowing hashes should the filesystem limits be
>> approached. Of course, a default value in dir_control could still be 100,
>> which would maintain former behavior. If this were done, the
>> --disable-users-big-dir option should probably be changed to
>> --allow-single-digit-users as well. ;)
>>
>> Please let me know what the prospects of such changes are. If it doesn't
>> look like anything that might ever happen in this area, I just may patch the
>> vauth.h file to be 30000 and call it done.
>
> The filesystem's limit on how many entries can exist in a directory is not
> the only issue... the other issue is performance.
>
> On most filesystems (including ext2/3/4), in order to find a particular file
> within a directory, the kernel has to do a linear search on the contents. It
> can take longer to do a linear search across 30K items than it does to search
> through 100 entries, open a new directory, and do a second search through 100
> entries. This isn't an issue for filesystems which implement directories as
> binary trees instead of linear lists.
>
> Personally, I don't build servers without both hashing options enabled. The
> hashing doesn't affect small machines (or small domains) because it doesn't
> kick in until a certain number of domains or mailboxes exist. And if the
> server becomes busy after the fact, the hashing code kicks in when needed and
> keeps mailbox access from being slow.
>
> The scripts that I write which access the mailboxes all use "vdominfo" or
> "vuserinfo" (or the qmail virtualdomains and users/assign files, and the
> domain's vpasswd.cdb file) to locate the directories, rather than making
> assumptions about where a particular domain or mailbox might be on the disk.
> This way I'm using the same exact method that qmail uses to deliver mail, so
> I know I'm ending up in the right place.
>
> If I'm not mistaken, the limitation on single-character mailbox names has
> something to do with how the hashing is implemented. The hash directories all
> have single-digit or single-letter names, and if a mailbox exists with the
> same name, it causes problems (or at least confusion.) Personally, I always
> thought they should have given the hash directories names which aren't used
> in SMTP address, like ",0" or ",a", but that's not how it was originally
> written.
John has basically said everything I was going to :) The only thing I would
mention is that the 5.4.32 and 5.4.33 both include changes that re-populate old
hash directories that have been made lighter by user deletion. It's the
"backfill" feature.
- --
/*
Matt Brookings <[email protected]> GnuPG Key 5F3258AD
Software developer Systems technician
Inter7 Internet Technologies, Inc. (815)776-9465
*/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJQI+ziAAoJEGgfLslfMlitqr4H/jPrpjOAFmRpqPtSzYrF7FE8
N7TYiGmvicx/flRFrrKdBDO9ZYzT8cUIUJFDJVFOHqAZRccn/vee8P/A3cKMeoJ6
czDFaVeEg8wAuo5VpdvPb5wQ49nrx2fyxDpnmHJ81kVSK4jhW8Uu0TzAQuM+kBqQ
6igvGewBJ83UFKebHnF6kvMHbpTuTJFJV/MZHhl45kaKznq3Cp/3cKEdbMYUGkGo
pk7NQg7OSrRgU3uthD1F/emLpUqSx1PBiDMjTDQdp4NMVleKvrCloQN16d+OHTCM
9FhwlX8NmaQ7P+y+5ak+sqYUxRQQ2MVLpGUfjNCSRqqTxqJVe+8mJmWw7Zg9VcY=
=QyQF
-----END PGP SIGNATURE-----