Conflicts
=========

EDB Postgres Distributed is an active/active or multi-master DBMS. If
used asynchronously, writes to the same or related rows from multiple
different nodes can result in data conflicts when using standard data
types.

Conflicts aren’t errors. In most cases, they are events that PGD can
detect and resolve as they occur. This section introduces the PGD
functionality that allows you to manage that detection and resolution.

- :ref:`DDL overview <DDL overview>`  introduces the idea of conflicts in PGD and explains how
  they can happen.

- :ref:`Types of Conflict <Types of Conflict>`  lists and discusses the various sorts of conflicts you
  might run across in PGD.

- :ref:`Column-level conflict detection <Column-level conflict detection>`  introduces the mechanisms PGD provides for conflict
  detection.

- :ref:`Missing-column conflict resolution <Missing-column conflict resolution>`  explains how PGD resolves conflicts and how you can
  change the default behavior.

- :ref:`Conflict logging <Conflict logging>`  points out where PGD keeps conflict logs and explains
  how you can perform conflict reporting.

- :ref:`Data verification with LiveCompare <Data verification with LiveCompare>`  explains how LiveCompare can help keep data consistent
  by pointing out conflicts as they arise.

.. toctree::
  :maxdepth: 3

  DEEP_DIVE--conflict-management--conflicts--00_conflicts_overview
  DEEP_DIVE--conflict-management--conflicts--02_types_of_conflict
  DEEP_DIVE--conflict-management--conflicts--03_conflict_detection
  DEEP_DIVE--conflict-management--conflicts--04_conflict_resolution
  DEEP_DIVE--conflict-management--conflicts--05_conflict_logging
  DEEP_DIVE--conflict-management--conflicts--06_live_compare
