レプリカ・セット内の1つの要素で障害が発生しても可用性を保持
TimesTen Scaleoutの主な目的は、障害が発生した場合でもデータへのアクセスを提供することです。
k >= 2
の場合、レプリカ・セットに含まれるデータは、レプリカ・セット内の少なくとも1つの要素が稼働しているかぎり使用できます。レプリカ・セット内の要素が停止し、その後リカバリされた場合、その要素はレプリカ・セット内の他の要素と自動的に再同期されます。
ノート:
k = 1
の場合、レプリカ・セットに含まれている要素は1つのみであるため、要素に障害が発生するとレプリカ・セットが停止します。k = 1
の場合に要素に永続的な障害が発生したときのリカバリの詳細は、「レプリカ・セットに永続的な失敗した要素がある場合のリカバリ」を参照してください。
次の例は、k = 3
の場合のグリッドを示しています。それぞれに3つの要素を持った2つのレプリカ・セットが作成されます。host4.instance1
データ・インスタンスの要素に障害が発生します。TimesTen Scaleoutは、レプリカ・セット内の他の使用可能な要素の1つに自動的に再接続してトランザクションの実行を続行します。この例では、TimesTen Scaleoutはhost3.instance1
データ・インスタンス内の要素に自動的に再接続します。host4.instance1
データ・インスタンスの要素が使用不可の間またはリカバリ中は、host3.instance1
データ・インスタンスの要素がレプリカ・セットのすべてのトランザクションを処理します。host4.instance1
データ・インスタンス上の要素がリカバリされると、レプリカ・セット内のすべての要素がトランザクションを処理できます。
各レプリカ・セットで1つの要素が稼働しているかぎり、異なるレプリカ・セットで複数の障害が発生しても、機能が失われることはありません。レプリカ・セット全体に障害が発生した場合は、データが失われることがあります。
次の例は、k = 3
で、2つのレプリカ・セットがあるグリッドを示しています。この例では、host4.instance1
、host6.instance1
およびhost8.instance1
データ・インスタンスの要素に障害が発生しています。ただし、各レプリカ・セット内に使用可能な要素が1つ以上あるため、トランザクションの実行は継続されます。