Internal timing of operations

Internal timing of operations#

さまざまなモードがどのように動作するかをより深く理解するために、従来の物理的ストリーミングレプリケーションPSRとPGDはさまざまな方法でトランザクションを適用することを知っておくと役立ちます。これらの順序の違いは、パフォーマンス、耐久性、および一貫性に実際的な意味を持ちます。 PSRよりPGDを選択する場合のより広範な比較については、

Choosing between PSR and PGD を参照してください。

レガシーPSRでは、操作の順序は次のとおりです。

  1. オリジンはコミットレコードをWALにフラッシュし、トランザクションをローカルに認識できるようにします。

  2. ピアノードは変更を受信し、書き込みを発行します。

  3. ピアは、受信した変更をディスクにフラッシュします。

  4. ピアは変更を適用し、ピアでトランザクションを認識できるようにします。

変更は、変更を適用する前にディスクに書き込まれることに注意してください。

PGDでは、デフォルトでとLag Controlを使用すると、操作の順序が異なります。これらの場合、トランザクションがピアのディスクにフラッシュされる前に、変更はピアで可視されるようになります。

  1. オリジンはコミットレコードをWALにフラッシュし、トランザクションをローカルに認識できるようにします。

  2. ピアノードは、メモリ内の適用キューに変更を受信します。

  3. ピアは変更を適用し、ピアでトランザクションを認識できるようにします。

  4. ピアはディスクにフラッシュすることによりトランザクションを永続化します。

PGDのクォーラムコミット、グループコミット、およびCAMOの場合、オリジンノードはトランザクションをローカルに表示する前に特定の数の確認を待機します。操作の順序は次のとおりです。

  1. Originは、準備または事前コミットレコードをWALにフラッシュします。

  2. ピアノードは、メモリ内の適用キューに変更を受信します。

  3. ピアは変更を適用し、ピアでトランザクションを認識できるようにします。

  4. ピアはディスクにフラッシュすることによりトランザクションを永続化します。

  5. オリジンはコミットして、トランザクションをローカルに可視化します。

次の表は、違いをまとめたものです。

Variant

Order of apply vs persist

Replication before or after commit

PSR

persist first

after WAL flush of commit record

PGD Async

apply first

after WAL flush of commit record

PGD Lag Control

apply first

after WAL flush of commit record

PGD Quorum Commit

apply first

before COMMIT on origin

PGD Group Commit

apply first

before COMMIT on origin

PGD CAMO

apply first

before COMMIT on origin