[Dovecot] Integrating Dovecot with Amazon Web Services

Timo Sirainen tss at iki.fi
Thu Jun 28 21:12:30 EEST 2012


On 28.6.2012, at 21.04, Gary Mort wrote:

> mdbox though is different, multiple messages are stored in a single file.
> The index indicates in which file each message is located.  When the data
> is moved to alt storage, the filename can change in which case the index is
> updated.
> IE:
> Primary/Msg06282012 -- contains Msg007, Msg008, Msg009
> Primary/Msg06272012 -- contains Msg004, Msg005, Msg006
> Primary/Msg06262012 -- contains Msg001, Msg002, Msg003
> 
> along comes archiving and the new format is:
> Primary/Msg06292012 -- contains Msg010, Msg011, Msg012
> Primary/Msg06282012 -- contains Msg007,  Msg009
> Primary/Msg06272012 -- contains Msg004,  Msg006
> Primary/Msg06262012 -- contains Msg003
> Alt/Msg06292012 00 contains Msg001, Msg002, Msg005, Msg008

Yes, doveadm altmove works like this now.

> Since the archive rules can be based on a lot of different scenarios[and a
> message can even be archived from the command line], the filenames between
> Primary and Alternate are not the same - and in fact the same filename in
> each place could have different messages.  For example: if messages are
> archived when a user sets an imap flag on them.

There shouldn't normally ever be a situation where the same filename is used in both storages, because every time a new file is created to either of the storages a new unique number is used.

> So with the way it's written now, it's not possible to have a simple
> fallback by filename.
> 
> It would be possible if the naming convention was strictly enforced, ie
> after archiving you have:
> Primary/Msg06292012 -- contains Msg010, Msg011, Msg012
> Primary/Msg06282012 -- contains Msg007,  Msg009
> Primary/Msg06272012 -- contains Msg004,  Msg006
> Primary/Msg06262012 -- contains Msg003
> Alt/Msg06282012 -- contains Msg008
> Alt/Msg06272012 -- contains Msg005
> Alt/Msg06262012 -- contains Msg001, Msg002
> 
> Now the index can simply say what file a message is in and doesn't have to
> specify primary or secondary, and the primary file with that name can be
> checked first, and then if it is not there check the alternate.

This already works like that in the reading side. If you did altmoving by "mv m.123 /altstorage/..." instead of doveadm it would work.


More information about the dovecot mailing list