_replicate was always a blocking call, and then we added continuous replication. Obviously it then makes no sense to wait for "the end".
B. On 20 June 2013 18:41, Jens Alfke <[email protected]> wrote: > The wiki docs for _replicate don’t say so, but in practice the call appears > to be synchronous unless the ‘continuous’ property is set. That is, it > doesn’t return a response until the replication completes, and in fact the > response JSON includes a bunch of statistics about the replication. > > I didn’t know this when I implemented TouchDB, so I made _replicate always > asynchronous. (It made more sense to me, especially since my client code > needed to be able to track the progress of a replication using _active_tasks, > which meant it needed a response ASAP so it could get the task ID.) > > I’m amending this now for Couchbase Lite, but I’d like to make sure I know > the semantics. Is it true that it’s always synchronous unless > continuous=true, and then it’s asynchronous? > > Also, is there any description somewhere of what the properties in the > synchronous response mean? Some are obvious, some less so. Here’s an example > from 1.2: > > { > "history": [ > { > "doc_write_failures": 0, > "docs_read": 18, > "docs_written": 18, > "end_last_seq": 19, > "end_time": "Thu, 20 Jun 2013 16:58:13 GMT", > "missing_checked": 18, > "missing_found": 18, > "recorded_seq": 19, > "session_id": "1cef7405d0e61fb0decc89323669a012", > "start_last_seq": 0, > "start_time": "Thu, 20 Jun 2013 16:58:13 GMT" > } > ], > "ok": true, > "replication_id_version": 2, > "session_id": "1cef7405d0e61fb0decc89323669a012", > "source_last_seq": 19 > } > > I’m particularly curious (a) why “history” is an array, and (b) what > “replication_id_version” means. > > —Jens
