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