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/