New Backup System finished

I’ve just finished the final component of the conversion of the backup system – a new restore utility.

There were a couple of problems with the old restore utility, stemming from its design of just copying the messages back into the folder and reconstructing to make them “appear” – it didn’t work safely with some IMAP clients, it didn’t work safely with replication and there was a possibility that you could delete messages that were already there if you forced the restore to overwrite what was there.

Oh – and a restore could easily push you over quota if you were near the edge as well.

So – the new restore system is much simpler and safer for all cases, though it involves a little more manual work:

– the admin at our end selects which folders to restore
– the backup system does its magic and a brand new folder tree appears at:


Where “username” is the localpart of your login name, and YYYYMMDDTHHMMSS is a timestamp in year, month, day, hour, minute, second format with a ‘T’ in the middle.

This folder will be deleted automatically one week later. It doesn’t count towards your quota usage during that time, though any emails copied out to a normal folder will of course count as usual.

(I’ve started a forum thread as well for discussion:

Posted in Technical. Tags: . Comments Off on New Backup System finished

Upgrading to Cyrus version 2.3.10

Cyrus version 2.3.10 is almost ready to be released.  As part of the preparations for release, we’ve been porting our Cyrus patches forwards and testing that it will all work correctly.

The most exciting part of this new Cyrus release is full SHA1 GUID (unique identifiers) on each message.  This is a development which has grown out of our earlier work to use partial MD5 hashes as the UUID value in previous Cyrus releases instead of a locally calculated value, allowing better integrity checking across our replicas.  The SHA1 will provide much stronger cryptographic guarantees and simplify our backup infrastructure considerably as well (eventually – first there’s the changeover which will cause extra IO load on the backup server too – thankfully it has plenty of spare capacity, both disk and CPU)

We provide the totally non standard “FETCH GUID” command to allow this SHA1 value to be seen through IMAP as well (this is not in upstream Cyrus and is subject to change)

However – there is a downside.  The new index format (an additional 8 bytes per record) will cause every single mailbox to be “upgraded” when it is first accessed after the upgrade.  To ease the load on our servers, we will be phasing this upgrade in slowly, one store at a time.  As each store is upgraded, there will be a short downtime (approx 1 minute) followed by higher IO and hence slower access for all users until the indexes are upgraded.  The first time you access your mailbox after the upgrade will be particularly slow, as all your indexes get upgraded!

We will be running a background task trickling through and pre-upgrading mailboxes as well.

I’ll update you again, here and on the forum, when this process is finished.

Posted in Technical. Tags: , , , , . Comments Off on Upgrading to Cyrus version 2.3.10

Get every new post delivered to your Inbox.

Join 6,514 other followers