-
Notifications
You must be signed in to change notification settings - Fork 183
DOC-12484 XDCR Conflict Logging feature #3806
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: release/8.0
Are you sure you want to change the base?
Conversation
modules/learn/pages/clusters-and-availability/xdcr-enable-crossclusterversioning.adoc
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some review feedback which hold true for all pages:
- For this feature specifically, we need to use the term "true conflicts" more than just mentioning "conflicts". That means we need to first define what a true conflict is and set the expectation.
- There should be a warning that this feature is best effort (and that true conflicts is assumed to be very low). Everything that's in this slide - https://couchbase.slack.com/archives/C0963TSUU0N/p1752763776316649.
- The setting is quite complex to understand just from textual description. An example will do a lot of help to someone new reading this.
- There should be a mention that on every true conflict detected, XDCR will log 3 documents to the conflict collection - CRD (Conflict record document - contains metadata of detected true conflict), source document in conflict & target document in conflict. It should be mentioned that the CRD will contain the document IDs of source and target documents logged. Maybe an example of source and target document IDs in CRD.
- Continuation of (3), I think there should be some examples on how to make use of the detected and logged conflicts. Eg: Use SDK, N1QL, range scan, eventing etc.
- There should be a mention that the logged documents will not be replicated by XDCR if conflict collection is a source collection of any XDCR.
I think I missed one of the pages from reviewing, so if somethings are already done from last comment, please ignore. |
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've implemented most of your review inputs and closed the comments.
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-enable-crossclusterversioning.adoc
Show resolved
Hide resolved
Points 1 and 2 are fixed. Edit: All fixed in draft-2.
|
modules/learn/pages/clusters-and-availability/xdcr-active-active-sgw.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-active-active-sgw.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-active-active-sgw.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
modules/learn/pages/clusters-and-availability/xdcr-conflict-logging-feature.adoc
Outdated
Show resolved
Hide resolved
If you try to use the feature _XDCR Active-Active with Sync Gateway_ when you have more than 10 user xattrs in your document, the XDCR replication **silently skips** replicating that document. | ||
As a result, the data in the replication-skipped document will not be consistent between the target and source clusters. | ||
The only way you will know this skip occured is because the Prometheus stat `subdoc_cmd_docs_skipped` will be incremented and the document will _not_ be consistent between the target and source. | ||
* If you use Eventing service functions that update documents in XDCR-replicated buckets (Eventing source bucket mutations), ensure your functions do not cause continuous replication loops. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This content is approved as a part of the PR #3844.
* Conflict logging is asynchronous and done on a best-effort basis, meaning, not all conflicts may be logged. | ||
|
||
* Conflicts are expected to be rare during XDCR replication. | ||
If there is an upsurge of conflicts, so that logging conflicts may cause replication issues, XDCR stops logging conflicts temporarily to prioritize replication. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of "XDCR stops logging conflicts temporarily", I think that we should say "XDCR skips logging conflicts temporarily" to make it clear that there may be some conflicts that are not logged (even though you say that in the first bullet, it would be good to make it clear here as well so that there's no misunderstanding).
If there is an upsurge of conflicts, so that logging conflicts may cause replication issues, XDCR skips logging conflicts temporarily to prioritize replication.
DOC-12484
Link to the preview doc: https://preview.docs-test.couchbase.com/DOC-12484/server/current/learn/clusters-and-availability/xdcr-conflict-logging-feature.html
Preview pages:
DON'T review the following files: The following are 7.6.6 release docs which were missing in the release/8.0 branch. So I added them again.