Column-level conflict detection
===============================

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

ただし、少なくとも一部の場合、行レベルではなく列レベルで競合を解決することが適切な場合があります。

- :ref:`DDL overview <DDL overview>` は、行レベルの競合解決とは対照的に列レベルの競合解決を導入し、行レベルの競合解決よりも適している場合を提案します。

- :ref:`Enabling and disabling column-level conflict resolution <Enabling and disabling column-level conflict resolution>` は、列レベルの競合解決を有効にする例を提供し、列レベルの競合解決を有効にしてテーブルをリストする方法について説明します。

- :ref:`Timestamps in column-level conflict resolution <Timestamps in column-level conflict resolution>` は、 ``column_modify_timestamp``
  と\ ``column_commit_timestamp``
  の使用の違いを説明し、列レベルの競合解決に関連付けられたタイムスタンプを選択および検査する方法を示します。

.. toctree::
  :maxdepth: 3

  DEEP_DIVE--conflict-management--column-level-conflicts--01_overview_clcd
  DEEP_DIVE--conflict-management--column-level-conflicts--02_enabling_disabling
  DEEP_DIVE--conflict-management--column-level-conflicts--03_timestamps
