[Dovecot] v1.1 plans

Justin McAleer justin at fehuq.com
Wed Apr 18 14:23:42 EEST 2007

Timo Sirainen wrote:
> On Tue, 2007-04-17 at 15:41 -0400, Justin McAleer wrote:
>> In my testing of using sql dictionary for quota, it appears pretty 
>> buggy. Are you aware of such problems? Either way, would you consider 
>> reliable dictionary quota support a target for 1.1? 
> Actually I think I did it today. The biggest problem with v1.0
> implementation was that expunges could be counted multiple times if
> multiple processes were running.
> I ran imaptest for a while with 10 connections and in 3 different tests
> the dict quota always contained correct values, so I thought it was
> probably working.

I was having problems with it seemingly not making updates at all. It 
would do the initial usage calculation when I logged in, but never 
updated when I sent a message or expunged anything. In the past (months 
ago) I also saw problems when sending a message to multiple 
recipients... I believe it would only update the first recipient or 
something like that. I was quite astounded by that, since deliver is run 
once per user, of course. So I was figuring there may be a problem in 
the dictionary proxy. But, let me double-check all of my configs. If 1.0 
should be reliable except for the expunge problem, I'll spend some time 
today giving it a more thorough examination.

While I'm talking about dictionary quota, do you think it could be 
configurable how to identify the users? I'd like to use uid rather than 
username/email address, as our users can change their userids. It's not 
a huge deal, I can make deleting/updating the quota table row part of 
the rename process, but it would be nice and maybe others would benefit  
from being able to tweak it.

>> I did find that it 
>> seemed to blow maildir++ away in terms of performance. We have a few 
>> really large maildirs that basically choke when quota is enabled
>> using 
>> maildir++ (200,000+ messages). 
> Even if filenames had the ,S=size? Another problem is that the quota is
> read, and possibly recalculated, much more often than is really
> necessary.. I haven't fixed that yet in v1.1.

Yes, even then. Perhaps I made it sound a little worse than it was, but 
expunging a single message made the imap process hang for a while. I'm 
not sure how long, but definitely long enough that users would 
(rightfully) complain. I was expecting just an incremental update to be 
made to maildirsize, but it did the same after every single expunge. 
I'll do an strace on the process to get a better idea of what exactly is 
taking so long, but it's fine with quota set to 0, bad when set to 
anything else (enabled).

More information about the dovecot mailing list