looking for Cyrus mail format documentation
John A. Tamplin
jtampli at sph.emory.edu
Fri Jan 31 20:33:41 EST 2003
Phil Howard wrote:
>One of the needs I have is to build a two-way mail store replica. Either
>node may be delivered to, and either node may be accessed by the user but
>only one at a time. The two nodes are topologically and geographically
>far apart, and bandwidth between them is to be considered costly and thus
>should be not much more than the cost of actually transferring content.
>If mail arrives at one, it should be replicated to the other ASAP. If
>mail is deleted at one, it should be deleted from the other ASAP. If
>mail is moved around between folders unchanged, it should be moved the
>same on the other without transferring content. Now here is the big one:
>If the two nodes are unreachable between each other, changes have to be
>stored in a way they can be re-syncronized when reachability is again
>established. And this may involve some changes to both and some issues
>that have to be dealt with as best as possible such as noting dates of
>changes (it can be assumed the two nodes are time syncronized).
>
>This is one of needs I have.
>
Then I would suggest a better way of doing that than trying to figure
out what changes have happened by looking at low-level data structures
would be to put proxies in front of Cyrus (LMTP, IMAP, and if you use it
POP). The proxies would pass the data on to the local Cyrus to do the
action as well as contacting the other proxy to duplicate the work. If
the other proxy is not accessible, keep a log of the work that needs to
be performed (but allowing disconnected operation when the other node is
not truly down will likely lead to changes that can't be automatically
resolved -- better would be to have 3, run two-phase commit and only
commit if you get agreement of two, but that may not be practical) and
do those changes when the other proxy comes back up. The level of
abstraction you want is precisely the level you get at the higher level
protocols rather than having to dig through all the folders and see what
has changed.
Of course replicating some things such as seen state will be quite
painful, and you may need to do some hacks to keep uids unique between
the machines.
--
John A. Tamplin
Unix Systems Administrator
More information about the Info-cyrus
mailing list