Terminology¶
以下の用語は、 EDB Postgres分散機能と、高可用性、レプリケーション、およびクラスタリングの領域で対応する要件を理解するために重要です。
非同期レプリケーション¶
オリジンノードでトランザクションが完了した後、クラスターメンバーにデータをコピーします。非同期レプリケーションは、同期レプリケーションよりも高いパフォーマンスと低いレイテンシーを提供できます。ただし、複数の同時変更が原因で競合が発生する可能性があります。発生した競合を管理する必要があります。
可用性¶
システムが指定された環境で使用されたときに、指定された時間に満足に動作する確率。多くの人にとって、これはアプリケーションのアップタイムとダウンタイムの全体的な量です。 ( ナイン も参照)
CAMOまたはcommit-at-most-once¶
アプリケーションレベルでの追加のトランザクション管理でEager Replicationをラップし、トランザクションが複数回実行されないようにします。このトランザクション管理は、ペイメントソリューションで見られる価値の高いトランザクションにとって重要です。 Oracle機能のTransaction Guardとほぼ同等です。
クラスタリング¶
単一障害点を回避するために複数の冗長システムを管理する高可用性のためのアプローチ。エンドユーザーには1つのシステムに見えます。
データシャーディング¶
データを シャード と呼ばれるチャンクに分割し、それらを別々のノードに分散することにより、データベースのスケールアウトを有効にします。
PGDのEager Replication¶
すべてのクラスターメンバーとの競合のないレプリケーション。技術的には、これは2フェーズコミット(2PC)を使用した同期論理レプリケーションです。
結果整合性¶
異なるクラスターメンバー内の同じ項目への変更を述べる分散コンピューティング一貫性モデルは、同じ値に収束します。 PGDでは、これは、競合解決と競合のないレプリケートされたデータ型を備えた非同期論理レプリケーションによって実現されます。
フェールオーバー¶
高可用性データベースクラスターの障害を認識し、アプリケーションを別のアクティブなデータベースに接続するためのアクションを実行する自動化されたプロセス。目標は、ダウンタイムとデータ損失を最小限に抑えることです。
水平スケーリングまたはスケールアウト¶
トラフィックの増加を処理するWebサーバーのスケールアウトなど、複数のノードにわたるワークロードを管理する最新の分散コンピューティングアプローチ。
論理レプリケーション¶
クラスター内のデータベース間でレプリケートされるデータの選択に関して、物理レプリケーションよりも柔軟性があります。また、クラスターメンバーは、データベースソフトウェアの異なるバージョン上に存在できることも重要です。
ナイン¶
特定の年の稼働時間の割合として表される可用性の尺度。スリーナイン(99.9%)では、1か月あたり43.83分のダウンタイムが許可されます。フォーナイン(99.99%)では、1か月あたり4.38分のダウンタイムが許可されます。ファイブナイン(99.999%)では、1か月あたり26.3秒のダウンタイムが許可されます。
ノード¶
クラスター内の1つのデータベースサーバー。クラスター内に複数のノードがあるため、 ノード という用語は データベースサーバー という用語とは異なります。ノードには、データベースサーバー、OS、および物理ハードウェアが含まれ、高可用性のコンテキストでは常に他のノードから分離されます。
物理レプリケーション¶
データベースディスクブロックの正確なコピーをコピーすることにより、データベースから1つ以上のスタンバイクラスターメンバーにすべての変更をコピーします。この方法には高速ですが、欠点があります。たとえば、1つのマスターノードのみが書き込みトランザクションを実行できます。また、この方法は、他のいくつかのより複雑な制限に加えて、すべてのクラスターメンバーがデータベースソフトウェアの同じメジャーバージョン上にある場合にのみ使用できます。
読み取りのスケーラビリティ¶
1つ以上のリードレプリカノードをクラスターに導入し、アプリケーションにプライマリノードへの直接書き込みとレプリカノードへの読み取りを行わせることによって達成できます。読み取りワークロードが増加するにつれて、パフォーマンスを維持するためにリードレプリカノードの数を増やすことができます。
目標復旧時点(RPO)¶
アプリケーションの配信の中断によりデータが失われる可能性のある最大対象期間。非常に低いまたは最小限のRPOは、非常に高可用性のドライバーです。
目標復旧時間(RTO)¶
中断されたアプリケーションを復元するための目標時間。非常に低いまたは最小限のRTOは、非常に高可用性のドライバーです。
単一障害点(SPOF)¶
冗長性がないため、より高いレベルの可用性を実現できない、展開されたアーキテクチャ内のコンポーネントの識別。
スイッチオーバー¶
アプリケーションとクラスター内のアクティブなデータベースノード間の接続の計画的な変更。通常はメンテナンスのために行われます。
同期レプリケーション¶
参加しているすべてのノードで変更が同時に更新される場合、通常は2フェーズコミットを活用します。このアプローチは即時の一貫性を提供し、競合を回避しますが、ノード間で必要な調整が原因でレイテンシーのパフォーマンスコストが発生します。
2フェーズコミット(2PC)¶
複数のデータベースノード間で一貫性を達成するためのマルチステッププロセス。
垂直スケーリングまたはスケールアップ¶
リソース(CPU、メモリ、ストレージ、ネットワーク)を増やして、そのアーキテクチャの物理的制限に達するまで特定のワークロードをサポートする従来のコンピューティングアプローチ(Oracle Exadataなど)。
書き込みスケーラビリティ¶
元のノードから他のクラスターメンバーへの書き込みをレプリケートすると、コストが削減されます。垂直スケールアーキテクチャでは、共有リソースにより書き込みスケーラビリティが可能です。ただし、水平スケーリング(または非共有)アーキテクチャでは、これは非常に限られたシナリオでのみ可能です。
リーダーを書く¶
常時接続アーキテクチャでは、ノードはアプリケーションの正しい接続エンドポイントとして選択されます。このノードは書き込みリーダーと呼ばれます。使用するアプリケーションの書き込みリーダーを選択することにより、意図しないマルチノード書き込みを回避できます。書き込みリーダーは、プロキシノードのクォーラムのコンセンサスによって選択されます。書き込みリーダーが利用できなくなった場合、プロキシノードは別のノードを選択して書き込みリーダーになります。書き込みリーダーではないノードは、 シャドウノード と呼ばれます。