Some more patches now available from:

  http://www-uxsup.csx.cam.ac.uk/~dpc22/cyrus/patches/2.3.8/

fast_rename.patch
=================

Translate mailbox rename into filesystem rename() where possible.
Falls back to mailbox_rename_copy() and mailbox_rename_cleanup().

rename() isn't quite as safe as linking each message in turn and then
removing the source mailbox: if the power fails after the rename() but
before the mboxlist is updated then you have a missing mailbox. However:

1) Mailbox renames are rare

2) Fast rename completes in a fraction of a second, regardless of the
   size of the mailbox

3) The sys admin can always fix the problem by hand (and it would
   be possible to log all renames to make it easier to spot problems).

My original fast_rename patch for 2.1.X spotted recursive rename and
turned the whole thing into a single rename(). This patch isn't
as ambitious: only leaf mailboxes get rename()ed. It is however much
less invasive, so hopefully a better chance of going in upstream.

delayed_delete.patch
====================

Companion to deleted expunge.

Translate IMAP DELETE to a rename. The mailbox ends up in a nominated hierarchy (but the same partition) which is only visible to admin users. cyr_expire gains a -D option to match -X for delayed expunge.

Benefits _substantially_ from fast_rename above.

--
David Carter                             Email: [EMAIL PROTECTED]
University Computing Service,            Phone: (01223) 334502
New Museums Site, Pembroke Street,       Fax:   (01223) 334679
Cambridge UK. CB2 3QH.

Reply via email to