PGD Synchronous Commit#
コミットスコープの種類 SYNCHRONOUS_COMMIT
概要#
PGDのSYNCHRONOUS_COMMIT
は、基になるオペレーションでのPostgreSQLの Synchronous commit オプションに似た方法で動作するコミットスコープの種類です。ただし、
PostgreSQLオプションとは異なり、コミットスコープとして構成され、PGD内での構成と対話が簡単です。
GROUP COMMITやCAMOなどの他のコミットスコープの種類とは異なり、 SYNCHRONOUS_COMMITオペレーションのトランザクションは2フェーズコミット2PCトランザクションに変換されませんが、Postgresの同期コミットのように動作します。
例#
SELECT bdr.add_commit_scope(
commit_scope_name := example_sc_scope,
origin_node_group := left_dc,
rule := MAJORITY (left_dc) SYNCHRONOUS_COMMIT,
wait_for_ready := true
);
この例では、 left_dc
グループ内のノードは、このコミットスコープが使用されている場合、
SYNCHRONOUS_COMMIT を使用してleft_dc
グループ内の他のノードに変更をレプリケートします。 left_dc
グループ内のノードの大部分を検索して、トランザクションをコミットしたことを確認します。
構成#
SYNCHRONOUS_COMMIT のパラメーターがないため、構成はありません。
確認#
確認レベル | PGD同期コミット処理 ————————|———————- ———– received
|リモートPGDノードは、トランザクションが完全に受信され、インメモリ書き込みキューに入ると、トランザクションを確認します。
replicated | received と同じ動作。 durable
|すべての変更がディスクにフラッシュされた後、トランザクションを確認します。古い同期レプリケーションのsynchronous_commit = on
に似ています。 visible
デフォルトすべての変更がディスクにフラッシュされ、同時トランザクションに可視された後、トランザクションを確認します。古い同期レプリケーションのsynchronous_commit = remote_apply
に似ています。
詳細#
現在、SYNCHRONOUS_COMMIT
は、コミットスコープルール構文の確認レベルを使用しません。