Consistency

EDB Postgres Distributedは、アクティブ/アクティブまたはマルチマスターのDBMSです。非同期で使用すると、複数の異なるノードから同じまたは関連する行に書き込むと、標準データ型を使用するとデータ CRDTデータ型を使用した列の競合の処理 が得られる可能性があります。

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

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

CLCD で説明されているように、列レベルの競合検出と解決はPGDで使用できます。

競合を回避したい場合は、 Group Commit を Eager conflict resolution または

CRDTデータ型を使用した列の競合の処理 で説明されている競合のないデータ型(CRDT)とともに使用できます。