Conflict Management
===================

EDB Postgres
Distributedは、アクティブ/アクティブまたはマルチマスターDBMSです。非同期で使用される場合、標準のデータ型を使用する場合、複数の異なるノードから同じまたは関連する行への書き込みにより、データが :ref:`競合のモニタリング <競合のモニタリング>` になる場合があります。

競合はエラーではありません。ほとんどの場合、これらは発生時にPGDが検出および解決できるイベントです。解決策はアプリケーションの性質とデータの意味によって異なるため、
PGDがアプリケーションにそれらを解決する方法に関して幅広い選択肢を提供することが重要です。

デフォルトでは、競合は行レベルで解決されます。
2つのノードからの変更が競合する場合、ローカルまたはリモートのタプルのいずれかが選択され、他方は破棄されます。たとえば、コミットタイムスタンプは、2つの競合する変更と新しい方が保持されると比較される場合があります。このアプローチでは、すべてのノードが同じ結果に収束し、クラスター全体でコミットオーダーのようなセマンティクスを確立します。

列レベルの競合の検出と解決は、
:ref:`CLCD <Conflicts>` で説明しているPGDで利用できます。

競合を回避したい場合は、
 `Group Commit <https://www.enterprisedb.com/docs/pgd/latest/commit-scopes/group-commit/>`_ を `Eager conflict resolution <https://www.enterprisedb.com/docs/pgd/latest/commit-scopes/group-commit/#eager-conflict-resolution>`_ または競合のないデータ型CRDTとともに使用できます。
:ref:`CRDTデータ型を使用した列レベルの競合の処理 <CRDTデータ型を使用した列レベルの競合の処理>` で説明しています。
PGDプロキシを使用し、すべての書き込みを1つの書き込みリーダーにルーティングし、ノード間の競合の可能性を排除することもできます。

.. toctree::
  :maxdepth: 3

  PGD_Features--conflict-management--conflicts--index
  PGD_Features--conflict-management--column-level-conflicts--index
  PGD_Features--conflict-management--crdt--index
