ゾーン・フェイルオーバー
ゾーンを使用すると、データ・ストアを様々な物理的インストール場所に分散できます。近くにある物理的に異なる建物から、同じ建物内の異なるラックまで、任意の異なる場所を指定できます。ストアを複数の場所に分散する基本的な目的は、ストア内のノードを物理的に可能なかぎり離して配置することで、停電、気象災害の被害などによる大規模なインフラストラクチャの混乱を防ぐことです。
Oracle NoSQL Databaseでは、2種類のゾーンのサポートが提供されています。プライマリ・ゾーンには、マスターまたはレプリカとしてサービスできるノードが含まれます。ゾーンは、デフォルトではプライマリ・ゾーンとして作成されます。セカンダリ・ゾーンには、レプリカとしてのみサービスできるノードが含まれます。セカンダリ・ゾーンは、離れた場所にデータのコピーを作成したり、データの追加のコピーを保持して冗長性または読取り容量を増やしたりするために使用できます。
どちらのタイプのゾーンでも、レプリカを最新の状態に保つために必要なレプリケーション・データを送信するために、高スループットのネットワーク接続が必要です。十分なネットワーク容量を確保できないと、接続が不足しているゾーン内のノードで遅延が進行します。低スループットのネットワーク接続で接続されたロケーションは、ゾーンでの使用に適していません。
プライマリ・ゾーンでは、高スループットのネットワークに加えて、他のプライマリ・ゾーンとのネットワーク接続で、信頼性が高く低遅延の通信が確保されることが必要になります。これらの機能によって、クイック・マスター・フェイルオーバーに対するマスター選択の実行、および書込みリクエスト・タイムアウト要件を満たす受信確認の提供が可能になります。このため、プライマリ・ゾーンは、信頼性が低い、または低速のWide Area Networkでの使用に適していません。
セカンダリ・ゾーンでは、ノードはマスター選択や受信確認には参加しません。このため、セカンダリ・ゾーンとプライマリ・ゾーンの間の接続については、信頼性の低下や遅延の増加を許容できます。それでも、ネットワーク接続によって、レプリケーションをサポートするのに十分なスループットが提供されること、および、一時的な中断でネットワーク・スループットが妨げられない十分な信頼性が提供されることが必要となります。
複数のゾーンにわたってストアをデプロイする場合、Oracle NoSQL Databaseでは、各ゾーンの各シャードから少なくとも1つのレプリケーション・ノードを物理的に配置することを試みます。Oracle NoSQL Databaseがそのようにできるかどうかは、ストアで使用されるシャードの数、ゾーンの数、レプリケーション・ノードの数および各ゾーンで使用可能な物理マシンの数に依存します。それでも、Oracle NoSQL Databaseは、使用可能なゾーンにレプリケーション・ノードを最大限分散しようとします。その目的は、なんらかの理由でゾーンが使用できなくなった場合に、シャード全体が失われないようにすることです。
ここで説明するフェイルオーバーのすべての説明は、ゾーンに適用されます。フェイルオーバーは、すべてのノードが1つのゾーン内に含まれる場合と同様に、ゾーンをまたいで動作します。ゾーンを使用することで、大規模な停止が発生したときに、データを使用できる状態に維持できます。ただし、各シャードの読取りおよび書込み機能は、残りのゾーンが多数派のノード・パーティションを構成しているかどうか、およびストアのアクティビティに使用されている永続性と一貫性のポリシーによって制御されます。