Future plans for replication
Julien Coloos
julien.coloos at atos.net
Fri Aug 12 05:16:30 EDT 2011
Hi there,
Are there any known plans for the future of replication inside cyrus ?
There are a few things we dream of having, and that we consider
implementing. But if some of those do overlap with cyrus roadmap, maybe
we could help you by sharing the work ?
In no particular order:
1) Master-master replication
There are many difficulties to overcome for this feature, as well as
many ways to achieve it:
- 2-servers only, multi-master, ... ?
- optimistic replication ?
- since most meta-data do not (yet ?) have some kind of revision
control, how to reconciliate when concurrent changes happen ?
-> actually, should data be allowed to diverge naturally ? that is,
are users allowed to hit any master for the mailbox, or should they be
directed to *the* master reference of the mailbox (other masters being
hit only when the reference is down)
- ...
2) Dedicated (list of) replication server(s) per mailbox
For example there is the default server-wide replication configuration,
but a new per-mailbox annotation could override that global setting.
One of the advantages of this feature is to allow to put the load on
more than one server (which is the replica in current situation) when a
master is down.
3) Handling messages partition that actually do not need replication
For example:
- meta-data files are stored on local partitions, for faster access,
and do need to be replicated
- messages are stored on partitions shared with other masters and do
not need to be replicated; think NFS access (or similar), with data
already secured (e.g. RAID or proper filesystem replication)
That's a peculiar scenario, and we know that feature may be a little
tricky (even more if trying to manage it in a generic way, taking into
account each kind of data/meta-data). But maybe it would benefit to
people other than us ?
In our case such a scenario would actually make sense, notably
considering the number of mailboxes (tens of millions).
Different people have different needs for their architecture, and the
more possibilities offered to cyrus users, the better. But not
everything can be implemented, and we guess choices will have to be made.
Comments and inputs are welcomed :)
Regards
Julien Coloos
More information about the Cyrus-devel
mailing list