Re: Monolithic mailboxes.db?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux