Today's pop quiz: replication
ellie timoney
ellie at fastmail.com
Thu Jul 23 02:25:47 EDT 2015
Another quick reply, in case it wasn't clear from my last, that it
sounds like your understanding of the purpose of sync_client and
sync_server are neatly reversed:
> Do we have multiple sync_clients because a new one is spawned by a
> master for each change (and then the process finishes), or is there an
> actual pool of sync clients which handle each change and persist idle.
...
> I also have in my wonderful drawing a picture of a number of channels. I
> assume these are (part of) a config given to the sync_server so it knows
> where to broadcast all the changes defined in the log files to?
sync_server doesn't send/broadcast changes: it runs on a replica,
listening for, receiving and applying changes
sync_client doesn't receive changes: it watches for them (by monitoring
a channel's sync log) and sends them to a sync_server on a replica
(I wonder if that accidentally makes understanding channels easier too?)
On Thu, Jul 23, 2015, at 03:18 PM, Nicola Nye wrote:
> Hi Cyrus,
>
> I'm currently working on some basic architecture diagrams that will
> complement the documentation to show the moving parts. Today's topic:
> replication.
>
> Based on a delightfully drawn whiteboard session with Bron, I am left
> with a couple of queries:
>
> Do we have multiple sync_clients because a new one is spawned by a
> master for each change (and then the process finishes), or is there an
> actual pool of sync clients which handle each change and persist idle.
>
> Is the file format of the sync log defined anywhere? I assume it
> correlates with a set of commands. (Not that this is important to a
> user: it may as well be opaque, but it made me wonder!)
>
> I failed to note where the sync_server fits in. Is it a separate process
> that lives alongside the master imap server and sits there constantly
> checking the log files generated by sync_client to be handled?
>
> I also have in my wonderful drawing a picture of a number of channels. I
> assume these are (part of) a config given to the sync_server so it knows
> where to broadcast all the changes defined in the log files to? Or have
> I misunderstood what a channel is?
>
> Nicola
More information about the Cyrus-devel
mailing list