We've noticed that "ctl_cyrusdb -r" is quite slow when working against an
NFS spool (Netapp) on an otherwise quiesent system. Looking at a gcore,
I see that the slow part is preening the mailboxes (deleting reserved
mailboxes), rather than rolling the checkpoints forward. The process
is looping doing stat(), fstat() and fcntl(F_SETLKW) calls, the last
of which in the case of NFS requires a round-trip to the server, and I
suspect this is where the slowdown comes from.

Running ctl_cyrusdb with -x option results in near-instantaneous startups.
What are mailbox reservations used for, and what side-effects will we see
running with -x?

The only other answer I see is to modify ctl_cyrusdb so that it avoids
locking the mailboxes.db for each row, but rather aquires a "table lock".
This may require an intrusive modification to the db api.

-- 
Andrew McNamara, Senior Developer, Object Craft
http://www.object-craft.com.au/

Reply via email to