Achieving durability with commit scopes#
コミットスコープを使用して、PGDがコミットを確認する時期を制御します。コミットスコープを使用すると、データベースの耐久性保証をワークロードのニーズに合わせることができます。どのスコープが適合するかは、展開、データ損失の許容度、および一貫性要件によって異なります。
リージョンを超えたデータの分散。 地理分散クラスターでは、すべての同期クロスリージョンの確認により遅延が追加されます。リージョン障害によるデータ損失を許容できない場合は、 Synchronous Commit を使用して、コミットが返される前にリモート確認を要求します。ピアの応答が遅い場合に非同期にフォールバックするオプションのタイムアウト。
高額トランザクションの処理 決済または銀行業務では、2つのノードが独立して競合する変更をコミットできます。競合が表面化するまでに、両方のトランザクションは既に完了しています。 How Quorum Commit works を使用して、トランザクションレベルでのコミットの競合を防ぎます。
データのコンプライアンス要件への対応。 GDPRのような規制では、トランザクションが完了する前に、特定のリージョンに存在するデータとしての確認を必要とする場合があります。非同期的にコミットすると、データが準拠リージョンの外部にのみ存在するウィンドウが作成されます。 Synchronous Commit を使用して、コミット自分自身を保証し、データが必要なリージョンに存在することを保証します。
高スループットの取り込みパイプラインの保護。 書き込みごとの同期確認により、大規模に増加するレイテンシーが追加されますが、レプリケーション保証なしでコミットすると、ノード障害で大規模なデータウィンドウが失われるリスクがあります。 Lag Control を使用して、非同期パフォーマンスを維持しながら、レプリケーションが遅延できる範囲を制限します。
フェールオーバー時の重複トランザクションの防止。 接続障害の後にクライアントが再試行する場合、元のコミットが成功したかどうかを常に知ることができるわけではありません。 Commit At Most Once を使用して、再試行時にトランザクションが複数回適用されないようにします。
PGDは、コミットスコープを構成する2つの方法を提供します。 Using predefined scopes は、構成なしで使用でき、最も一般的な単一グループパターンをカバーします。クラスターが異なる要件を持つ複数のグループにまたがる場合、または分散一貫性保証が必要な場合、 Fine-tuning with custom scopes では、フルコミットスコープ言語を使用して独自のポリシーを作成できます。