Monolithic mailboxes.db?

Dave McMurtrie dave64 at andrew.cmu.edu
Tue Jan 16 09:40:54 EST 2007


Janne Peltonen wrote:

>Hi.
>
>We are going to upgrade to Cyrus v2.3 sometime before midsummer.
>Currently, we are running an old, old version of Cyrus with a plaintext
>mailboxes file. Now and again, an imapd process gets stuck and keeps the
>writelock on the mailboxes file - so we have to kill the stuck process
>manually before anybody else can complete any mailbox manipulation
>procedure. This is, needless to say, annoying.
>
>While planning this upgrade, my colleagues have been asking me whether
>the mailboxes database in current Cyrus is monolithic in the same way:
>if one process keeps a lock to one part of it, does it in fact have all
>of the file locked? To be more exact, is this the case with the Skiplist
>db format? We can't use berkeley because it doesn't work well with
>clustering and GFS (see previous posts on the subject, and pse don't
>tell me you can't cluster Cyrus).
>
>  
>
Cyrus doesn't use byterange locking for plaintext mailboxes.db.  It just 
relies on advisory locking of the whole file, and it updates the file 
atomically by creating a new version and renaming it.  Running 1.5.14, 
there used to be some locking issues where, much as you describe, we'd 
end up having to figure out which imapd wouldn't release the lock and 
kill it.  My previous employer  upgraded from a single server running 
1.5.14 with plaintext mailboxes.db to a cluster running 2.1.17 with 
plaintext mailboxes.db and is no longer experiencing those locking 
issues.  I can only assume that at some point between 1.5.14 and 2.1.17, 
Larry or Rob or Ken or someone fixed that problem.

Thanks,

Dave


More information about the Info-cyrus mailing list