Hitachi

インメモリデータグリッド Hitachi Elastic Application Data Store ユーザーズガイド


2.4.9 データアクセスの流れ

データアクセスの流れについて説明します。

〈この項の構成〉

(1) データの更新操作

EADSクライアントは,EADSクライアントが保持しているクラスタ構成情報を基にデータの格納先EADSサーバを特定し,データを更新します。

多重度を3に設定している場合のput処理を例に,データアクセスの流れを次の図に示します。

図2‒15 データアクセスの流れ

[図データ]

EADSクライアントがput処理のリクエストを送信します。

EADSサーバ1がリクエストを受信すると,データのコピー先EADSサーバに対して合意メッセージを送信し,put処理を実行してよいか合意を取ります。

EADSサーバ1は,各EADSサーバから合意メッセージを受信し,多重度と同数の合意が得られると処理を行います。これによって,データを多重化する際の,データの整合性を確保します。この例の場合,多重度が3なので,put処理を実行するためには3つのEADSサーバの合意が必要です。

なお,一定時間内(デフォルトは0.8秒)に合意処理が完了しない場合はタイムアウトして,再度,合意処理を行います。

自EADSサーバを含む3つの合意を得ると,データの格納および多重化を行います。この例の場合,多重度が3なので,EADSサーバ2,およびEADSサーバ3にデータがコピーされます。なお,各EADSサーバ内の処理は非同期に行われます。

リクエストを受信したEADSサーバ1にデータが格納されると,EADSクライアントに処理結果が返されます。

次に,データの格納や多重化に失敗した場合について説明します。

データの格納や多重化に失敗した場合は,次の要因が考えられます。

注※

データ総量監視機能を有効にすると,データの格納先の空き容量が不足することが予想される場合に,その処理をエラーとすることで,EADSサーバが縮退することを防ぐことができます。このため,データ総量監視機能は有効にすることを推奨します。

(a) データの格納に失敗した場合

多重度を3に設定している場合のput処理を例に,データの格納に失敗した場合の動作について説明します。

[図データ]

この例の場合,EADSサーバ1へのデータの格納に失敗し,EADSクライアントにエラーが返却されます。

データの多重化は実行されます。

データの格納に失敗したEADSサーバは縮退状態に遷移しますが,クラスタは継続します。この状態では,データの多重度が下がったままです。データの多重度を元に戻すには,縮退状態に遷移したEADSサーバの問題を取り除いてから,復旧を行います。

注※

縮退状態とは,EADSクライアントからのリクエストが受け付けられない状態です。

(b) データの格納は成功したが,データの多重化に失敗した場合

多重度を3に設定している場合のput処理を例に,データの格納は成功したが,データの多重化に失敗した場合の動作について説明します。

[図データ]

この例の場合,put処理を実行するためには,3つのEADSサーバの合意が必要です。しかし,データのコピー先であるEADSサーバ3からの応答がないため,別のEADSサーバ(EADSサーバ4)の合意を得て,put処理を実行します。ただし,EADSサーバ4は,データの多重化は実行しません。

データの多重化に失敗したEADSサーバは縮退状態に遷移しますが,クラスタは継続します。この状態では,データの多重度が下がったままです。データの多重度を元に戻すには,縮退状態に遷移したEADSサーバの問題を取り除いてから,復旧を行います。

(2) データの参照操作

EADSクライアントは,EADSクライアントが保持しているクラスタ構成情報を基にデータの格納先EADSサーバを特定し,データを参照します。

データの格納先EADSサーバがダウンしている場合,データが多重化されていれば,データのコピー先EADSサーバにアクセスしてデータを参照します。