If _revs_diff is empty, then yes 5 and 6 arent needed, as they mention they operate on the result of the revs_diff, if theres nothing to operate on
You can skip 7 it just means you miss the optimisation and next time you do replication you will replicate redundant documents, checkpointing is purely an optmisation to reduce the number of redundant document replications On 8 July 2014 14:42, Traun Leyden <[email protected]> wrote: > I'm working on a 3rd party replication tool > <https://github.com/couchbaselabs/sg-replicate> in Go (currently Sync > Gateway compatible, but hopefully one day will be CouchDB compatible as > well), and I have a question on the replication process. > > From this replication algorithm description > <https://github.com/couchbaselabs/TouchDB-iOS/wiki/Replication-Algorithm> > and ladder diagram <http://cl.ly/image/1v013o210345>, if the > _rev_diffs response is empty, should it then skip steps 5 and 6 since there > is nothing to transfer and go straight to step 7? (using the last_seq > value that was returned from source db _changes feed in step 3) > > Or should it skip step 7 too and do another _changes request? > > I'm guessing it's the former, since it seems like it should be safe to > forward the checkpoint if the _rev_diffs response is empty. I haven't had > a chance to study the CouchDB replicator behavior yet, and thought someone > here might know off the top of their head. >
