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 は、コミットスコープルール構文の確認レベルを使用しません。