Hitachi

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


2.4.8 データアクセスの流れ

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

〈この項の構成〉

(1) データの更新操作

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

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

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

[図データ]

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クライアントに処理結果が返されます。

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

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

(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サーバにアクセスしてデータを参照します。