We are using iOS couchbase lite 1.3 and sync gateway 1.3. Our server has been getting tons of document updates this morning from a few clients and I see a lot of logs like this one below for a document that I know is resolving a thousand conflicts or more:
2017-04-25T17:48:21.655Z CRUD: doc "[ doc Id ]" / "[ rev id ]", has been pruned, it has not been inserted into the revision cache
What does this mean? Will the conflict resolutions be synced down to all client devices?
It means that the revision that was PUT by the Couchbase Lite client was pruned away based on the revs_limit setting of Sync Gateway and the revision tree pruning logic.
It most likely means that the particular revision was an update on a non-winning revision tree branch. The branch is considered non-winning due to the rules around which revision branch is determined to be a winner in a revision tree with conflicts based on a few rules like: 1) number of revisions on that branch 2) whether it’s a tombstone revision 3) revision content digest (hash) lexicographic comparison.
Will the conflict resolutions be synced down to all client devices?
I don’t think anything additional will need to get sync’d down to client devices in response to this event on Sync Gateway. It’s basically just Sync Gateway telling you it’s pruning away the revision that the client is trying to push up.
We have multiple clients that would need to get this update though, so I just want to make sure that this change is still synced to other client devices.
E.g. Say a document has 1000 conflicts, and one client device resolves all the conflicts and syncs the deleted revisions to the server, and then on the server we see all those messages about the rev being pruned. Another client with a different device should then get that the conflicts have been resolved and will not need to resolve them on their device. So basically the conflict is only resolved once and then the resolution is synced to all other devices.
Yes that should work fine.
The revision pruning is designed to be “non-destructive” and preserves any information about winning revisions that need to be sync’d down to other clients.