On 13.4.2012, at 15.17, Ed W wrote: > On 13/04/2012 12:51, Timo Sirainen wrote: >>> - Use the checksums to assist with replication speed/efficiency (dsync or >>> custom imap commands) >> It would be of some use with dbox index rebuilding. I don't think it would >> help with dsync. > .. >>> - File RFCs for new imap features along the "lemonde" lines which allow >>> clients to have faster recovery from corrupted offline states... >> Too much trouble, no one would implement it :) > > I presume you have seen that cyrus is working on various distributed options? > Standardising this through imap might work if they also buy into it?
Probably more trouble than worth. I doubt anyone would want to run a cross-Dovecot/Cyrus cluster. >>> - Storage backends where emails are redundantly stored and might not ALL be >>> on a single server (find me the closest copy of email X) - derivations of >>> this might be interesting for compliance archiving of messages? >>> - Fancy key-value storage backends might use checksums as part of the key >>> value (either for the whole or parts of the message) >> GUID would work for these as well, without the possibility of a hash >> collision. > > I was thinking that the win for key-value store as a backend is if you can > reduce the storage requirements or do better placement of the data (mail text > replicated widely, attachments stored on higher latency storage?). Hence > whilst I don't see this being a win with current options, if it were done > then it would almost certainly be "per mime part", eg storing all large > attachments in one place and the rest of the message somewhere else, perhaps > with different redundancy levels per type > > OK, this is all completely pie in the sky. Please don't build it! All I > meant was that these are the kind of things that someone might one day desire > to do and hence they would have competing requirements for what to checksum... That can almost be done already .. the attachments are saved and accessed via a lib-fs API. It wouldn't be difficult to write a backend for some key-value databases. So with about one day's coding you could already have Dovecot save all message attachments to a key-value db, and you can configure redundancy in the db's configs.