Column-level conflict detection v5.6

By default, conflicts are resolved at row level. When changes from two nodes conflict, either the local or remote tuple is selected and the other is discarded. For example, commit timestamps for the two conflicting changes might be compared and the newer one kept. This approach ensures that all nodes converge to the same result and establishes commit-order-like semantics on the whole cluster.

However, it might sometimes be appropriate to resolve conflicts at the column level rather than the row level, at least in some cases.

  • Overview introduces column-level conflict resolution in contrast to row-level conflict resolution, suggesting where it might be a better fit than row-level conflict resolution.

  • Enabling and disabling provides an example of enabling column-level conflict resolution and explains how to list tables with column-level conflict resolution enabled.

  • Timestamps explicates the difference between using column_modify_timestamp and column_commit_timestamp and shows how the timestamps associated with column-level conflict resolution can be selected and inspected.