On Mon, Mar 21, 2011 at 07:15:44AM -0400, Wietse Venema wrote:
> > So my proposed update for the long queue id is:
> >
> > - 4 octets of base 32 encoded tv_usec
> > - 6+ octets of base 51 encoded tv_sec epoch time
> > - one non base 51 octet separator
> > - inode number in base 52.
>
> Better: use reverse microseconds + reverse seconds (i.e. LSB
> first, base 52 encoded). Then we can have 52 possible values per
> character for queue hashing. With two levels of hashing we get
> 10x fewer files per directory compared to old queue file names.
I am not sure that reversing the "us" value is better. With the "us" in
big-endian format, the output directory is "locally constant" in time,
so when a burst of mail arrives it is not overly scattered in multiple
directories, while overall, the deferred queue is still split evenly.
Also, with a little-endian base 52 queue-id, and hash depth of "2",
we have 2704 directories to search, while big-endian 32 x 32 takes us
to 977 directories as compared to 245 directories for big-endian base 16.
> We'll also need some postcat command option to decode such
> information for forensic/trouble shooting purposes.
That may be useful.
--
Viktor.