backup replication: sync_try_imap

ellie timoney ellie at
Tue Sep 4 22:56:34 EDT 2018

Hi Philippe,

On Tue, Sep 4, 2018, at 6:49 PM, Philippe wrote:
> Hi Ellie,
> thanks a lot for your answer.
> On 04.09.2018 04:50, ellie timoney wrote:
> > From your other email, it looks like you're using the experimental
> > backup system?
> No worries, I have an ordinary backup and wanted to try out the rolling
> backup additionally ;).
> > On your backup server, you need to run the backupd service (listening
> > on the csync port), not the imapd service.
> The csync backup replication already works fine (well, apart from the
> error messages mentioned in my other email). I just wanted to try out
> the "sync_try_imap" option because csync was described as deprecated /
> outdated in the documentation.

The sync_try_imap option defaults to "yes", it only exists as an option for the purpose of turning this behaviour off :)

Can you please point out where in the docs csync is described as deprecated/outdated?  Those docs are probably bad and need reviewing!
> > (If you use the imapd service, you will just have a normal replica,
> > and messages will be deleted in the usual way when the deletion
> > replicates.  Great as a hot spare, useless as a backup!)
> So, basically it's:
> - setting up a common replication: use imap in favour of csync because
> the latter is getting obsolete
> - setting up a backup replication: use backupd w/csync
> ?

The CSYNC protocol and the replication-over-IMAP protocol are basically exactly the same, with some minor changes (i.e. IMAP commands need a tag, and over IMAP the sync commands are prefixed with SYNC (so, "SYNCGET" instead of "GET", etc).  They're otherwise identical (and use the same implementation underneath).  So there's not so much an "obsolete" here.

There was a plan at one point to remove sync_server and only have imapd, but that was backed out fairly quickly for reasons I can't remember.  If that had gone ahead (or goes ahead again in the future) then that will be the end of the need for a dedicated csync port, but the protocol is still basically the same protocol regardless.

So, for common replication, it doesn't really matter whether you use CSYNC (sync_server) or IMAP (imapd), just use whichever is convenient for you.

For backup replication, CSYNC is mandatory because backupd doesn't understand IMAP.

> Probably I mixed up the replication types and thought of the backup as a
> common replication with "extras".

It sort of is, but the "extra" is the completely different storage backend, and the history preservation.

>From a technical perspective, backupd's implementation of the CSYNC protocol is a mostly separate implementation of the same protocol that sync_server/imapd use.  This is already causing me annoyance, because we have improvements we want to make to regular replication, but now have two models and implementations to keep in mind to do so, uggh!



More information about the Cyrus-devel mailing list