Re: [Dovecot] The docs a re a bit weird on "Directory hashing"

2013-08-11 Thread Jan-Frode Myklebust
On Fri, Aug 09, 2013 at 12:02:34AM +0300, Eliezer Croitoru wrote:
> > 
> > I use:
> > 
> > mail_home = /srv/mailstore/%256LRHu/%Ld/%Ln
> "R" what for??
> I do understand a Lower case on the names and have seen the effect but
> how would R be helpful??
> 

According to http://wiki2.dovecot.org/Variables

  "%H hash function is a bit bad if all the strings end with the same
   text, so if you're hashing usernames being in user@domain form, you
   probably want to reverse the username to get better hash value variety,
   e.g. %3RHu. "



  -jf


Re: [Dovecot] The docs a re a bit weird on "Directory hashing"

2013-08-08 Thread Eliezer Croitoru
Hey,

On 08/08/2013 10:29 AM, Jan-Frode Myklebust wrote:
> On Thu, Aug 08, 2013 at 01:42:43AM +0300, Eliezer Croitoru wrote:
>>
>> And means a two layers cache of max 16 directories on the first layer
>> and 256 directories on the second layer.
>> The above allows millions of files storage and can benefit from all ext4
>> lower kernel levels of compatibly rather then do stuff on the user-land..
>> Since I am not 100% sure that the scheme I understood is indeed what I
>> think I assume the above will need a small correction.
> 
> I use:
> 
>   mail_home = /srv/mailstore/%256LRHu/%Ld/%Ln
"R" what for??
I do understand a Lower case on the names and have seen the effect but
how would R be helpful??

Eliezer
> 
> which gives me 256 buckets containing domainname/username/, and the
> buckets are a hash of Lowercase Reverse usernames. To get the same
> layout as squid, I would try:
> 
>   mail_home = /srv/mailstore/%16LRHu/%256LRHu/%Lu
> 
> Ref: http://wiki2.dovecot.org/Variables for variables and modifiers.
> 
> BTW: I'm lowercasing everything, because I once got bitten by a variable
> not being lowercased in one version, and suddenly this changing in
> another version. It's probably redundant here -- but it was painful to
> fix when it happened..
> 
> 
>   -jf
> 



Re: [Dovecot] The docs a re a bit weird on "Directory hashing"

2013-08-08 Thread Timo Sirainen
BTW. If you're using v2.2.3+ %N hash works better than the old %H hash. I 
updated http://wiki2.dovecot.org/Variables for it also.

On 8.8.2013, at 1.42, Eliezer Croitoru  wrote:

> In squid we use a double layer of hashed directories on the FS to allow
> storage of millions of files.
> I was reading the "Directory hashing" section but never understood it..
> since it's written.. in a way I could not understand.
> I am using this line:
> mail_location = maildir:/home/vmail/%d/%n/Maildir/
> 
> and I want to migrate to a hash based directory scheme.
> While trying to understand how that hash will work I stumbled a old
> thread at:
> http://www.dovecot.org/list/dovecot/2010-June/049695.html
> there they used:
> mail_location=maildir:/buzones/us.es/%1Hu/%2.1u/%n
> 
> so I assume it should be used like that:
> mail_location=maildir:/home/vmail/%H/%2.256Hn/%d_%n/Maildir/
> or:
> mail_location=maildir:/home/vmail/%1Mu/%2.1Mu/%d_%n/Maildir/
> 
> It's a bit hard to think alone so I hope you can assist me.
> 
> let say I want to follow the model of squid cache_dir which has:
> cache_dir aufs /usr/local/squid/var/cache/squid 4 16 256
> 
> And means a two layers cache of max 16 directories on the first layer
> and 256 directories on the second layer.
> The above allows millions of files storage and can benefit from all ext4
> lower kernel levels of compatibly rather then do stuff on the user-land..
> Since I am not 100% sure that the scheme I understood is indeed what I
> think I assume the above will need a small correction.
> 
> Eliezer
> 



Re: [Dovecot] The docs a re a bit weird on "Directory hashing"

2013-08-08 Thread Jan-Frode Myklebust
On Thu, Aug 08, 2013 at 01:42:43AM +0300, Eliezer Croitoru wrote:
> 
> And means a two layers cache of max 16 directories on the first layer
> and 256 directories on the second layer.
> The above allows millions of files storage and can benefit from all ext4
> lower kernel levels of compatibly rather then do stuff on the user-land..
> Since I am not 100% sure that the scheme I understood is indeed what I
> think I assume the above will need a small correction.

I use:

mail_home = /srv/mailstore/%256LRHu/%Ld/%Ln

which gives me 256 buckets containing domainname/username/, and the
buckets are a hash of Lowercase Reverse usernames. To get the same
layout as squid, I would try:

mail_home = /srv/mailstore/%16LRHu/%256LRHu/%Lu

Ref: http://wiki2.dovecot.org/Variables for variables and modifiers.

BTW: I'm lowercasing everything, because I once got bitten by a variable
not being lowercased in one version, and suddenly this changing in
another version. It's probably redundant here -- but it was painful to
fix when it happened..


  -jf