Database
berkeleydb
overview
Berkeley DBでは、分散システムまたは冗長ハードウェア・システムにおいて高可用性および水平方向の読取りスケーラビリティを得るために、レプリケーションを使用します。 Berkeley DB HAは、自動フェイルオーバー機能が搭載された、単一のマスター、複数のレプリカ・システムで構成されています。 | |
Berkeley DB HAのインフラストラクチャは、TCP/IPだけでなく、どのような通信システムでもサポートできます。このサポートにより、(ブレードなどの)冗長システム間で内部高速カスタム・インターコネクトを使用して、組込みハードウェア・システム内のパフォーマンスを劇的に向上させることができます。 ただし、Berkeley DBではレプリケーション・グループの管理にビルトイン・サポートが提供されており、それにはTCP/IPネットワークが使用されます。 データベースの変更はマスター・ノードのみで行います。 アプリケーションでは、マスター側で要求の作成、更新、削除を実行し、マスターから、要求されている整合性の度合いに必要なアプリケーションと同数のレプリカにそれらの変更が自動的に配信されます。 トランザクションは、即座に整合性が取れ、ノードのクォーラム、または使用しているアプリケーションが要求する他の基準が必要です。
Berkeley DB HAの適用場所:
マスターの選択は、一意のマスターが常に選択されるように、分散された2フェーズの投票プロトコルを使用します。 選択には、プロセスに関与している適格なノードのうち、少なくとも過半数が必要です。 関与している適格なノードで、もっとも最新の環境の状態にあるノードがマスターとして選択されます。 適格なノードは以下の状態にあるいずれかのノードから選出されます。
レプリカが変更をできるだけ早く処理できるように、マスターは、変更をレプリカに非同期的に送信します。 変更はレプリカに次々と送信されます。つまり、トランザクションが進行中でも、アプリケーションがマスター上のトランザクションのコミットを試みる前に送信されます。 その後、トランザクションがマスター上で中断されると、レプリカもトランザクションを中断します。 マスターによるレプリケーション・ストリームへの書込み操作と、レプリカでの読取り(再生)操作はそれぞれ非同期に行われます。 マスターは、アプリケーションが新規のログ・エントリを作成後すぐに、レプリケーション・ストリームへ書き込むことができます。 レプリカは、レプリケーション・ストリームから変更を読み取り次第、その変更を再生します。また、マスターによって要求された場合は、コミット操作の再生に対する受信確認に応答します。 | |
技術情報 | |