Hitachi

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


7.10.1 スパイク抑止機能を有効にする手順

この項の内容は,スパイク抑止機能を有効にする場合にお読みください。

〈この項の構成〉

(1) スパイク抑止機能を有効にする

eads.server.spikeSuppression.enableパラメタにtrueを指定すると,スパイク抑止機能が有効になります。これによって,キャッシュ作成時にデータ管理領域が一括で初期化されます。パラメタを指定しない,またはfalseを指定した場合は,データ管理領域は,新規にデータを格納するタイミングで,動的に初期化されます。

(2) 初期化件数を指定する

スパイク抑止機能を有効にする場合,対象のキャッシュに格納する1レンジ当たりの数として,キャッシュ定義ファイルの3つのパラメタに値を指定します。

上記の指定値に従ってデータ管理領域が初期化されます。

なお,スパイク抑止機能を有効にする場合,上記のパラメタは必ず設定してください。

ここでは,各初期化件数の指定方法および指定値の見積方法について説明します。

注意事項

3つのパラメタの指定値については,すべてのキャッシュの総和が次の計算式の値を超えてはいけません。

(231-1)÷eads.replication.factorパラメタの指定値

なお,これらのパラメタに誤って大きな値を設定した場合,過剰にデータ管理領域が確保されることでメモリ使用量が見積もりを超過し,OutOfMemoryErrorが発生するおそれがあります。EADSサーバにデータを格納した状態で,データ管理領域がキャッシュ作成時に一括初期化される運用を想定している場合は,誤った操作や設定によるOutOfMemoryErrorの発生を防止するために,データ総量監視を有効にし,必要以上にデータ管理領域が初期化されない設定にしてください。

(a) 対象のキャッシュに格納する1レンジ当たりのデータ件数

対象のキャッシュに格納する1レンジ当たりのデータ件数は,キャッシュ定義ファイルのeads.cache.spikeSuppression.keyCountパラメタに指定してください。

対象のキャッシュに格納する1レンジ当たりのデータ件数の見積もり式を次に示します。

対象のキャッシュに格納する1レンジ当たりのデータ件数=

 対象のキャッシュに格納するデータ件数×対象のキャッシュの余裕値係数

 ÷クラスタのEADSサーバ台数

注※

小数点以下の値は切り上げてください。

余裕値係数:

4.1.2(1)(e) 余裕値係数」を参照してください。

(b) 対象のキャッシュに格納する1レンジ当たりのグループ名の数

対象のキャッシュに格納する1レンジ当たりのグループ名の数は,キャッシュ定義ファイルのeads.cache.spikeSuppression.groupCountに指定してください。

対象のキャッシュに格納する1レンジ当たりのグループ名の数の見積もり式を次に示します。

対象のキャッシュに格納する1レンジ当たりのグループ名の数=

 グループ名の数※1÷データの多重度※2

ただし,次の条件に該当する場合は,個別の値を指定します。

  • すべてのkeyでグループ名の指定がない場合

    0を指定します。

  • keyごとのグループ名(階層化している場合は最上位階層のグループ階層名)がすべて異なる場合

    対象のキャッシュに格納する1レンジ当たりのデータ件数の値を指定します。

注※1

グループを階層化している場合は,最上位階層のグループ階層名の数を指定します。

注※2

小数点以下の値は切り上げてください。

データの多重度:

共通設定のeads.replication.factorパラメタの指定値

(c) 対象のキャッシュに格納する1レンジ当たりのkeyのハッシュ値のユニーク数

対象のキャッシュに格納する1レンジ当たりのkeyのハッシュ値のユニーク数は,キャッシュ定義ファイルのeads.cache.spikeSuppression.uniqueHashValueCountに指定してください。

対象のキャッシュに格納する1レンジ当たりのkeyのハッシュ値のユニーク数の見積もり式を次に示します。

対象のキャッシュに格納する1レンジ当たりのkeyのハッシュ値のユニーク数=

 対象のキャッシュに格納する1レンジ当たりのグループ名の数

 +対象のキャッシュに格納する1レンジ当たりのグループ名を指定しないデータ件数

参考

keyのハッシュ値のユニーク数とは,keyから求められるハッシュ値で,値が異なる個数を示します。例えば,異なる2つのkeyについて,それぞれのハッシュ値が異なる場合は,ユニーク数は2となり,ハッシュ値が同一の場合は,ユニーク数は1となります。グループ名を指定している場合は,異なるkeyであってもグループ名(階層化している場合は最上位階層のグループ階層名)が同じときは,同一のハッシュ値となります。

(3) データ管理領域の一括初期化を実行する

次のコマンドを実行してキャッシュが作成されるタイミングで,データ管理領域の一括初期化は実行されます。

なお,スパイク抑止機能を有効化して,キャッシュを作成するeztoolのサブコマンドを実行した場合,サブコマンドの実行時間は,初期化処理時間の分だけ長くなります。サブコマンドがタイムアウトしないように,必要に応じて次のパラメタを設定してください。

表7‒14 タイムアウトしないために設定するパラメタ

項番

パラメタ名

概要

設定内容

1

eads.command.common.read.timeout

コマンドプロセスでのコマンド実行結果の受信待ちのタイムアウト

キャッシュ作成時の実際の所要時間を確認して,それよりも長い時間となるように設定します。

2

eads.command.common.execution.timeout

コマンドプロセスでのコマンド実行開始からのタイムアウト

(4) データ総量監視機能が有効な場合のデータ管理領域の扱い

(2) 初期化件数を指定する」で指定した初期化件数が,データ総量監視機能のデータ件数(共通設定のeads.cache.keyCount)を超える場合や,複数キャッシュの場合に「(2) 初期化件数を指定する」で指定した初期化件数の合計が,データ総量監視機能のデータ件数を超過する場合があります。キャッシュ作成時にこれらの超過が発生した場合,データ総量監視機能のデータ件数を超えない範囲で,データ管理領域が初期化されます。この初期化件数の制限は,データ件数,グループ名の数,ハッシュ値のユニーク数のそれぞれで実施されます。また,初期化されたデータ管理領域の件数の合計には,キャッシュ時に初期化されたものと,動的に初期化されたものの両方を含みます。

この制限が生じた場合,サーバメッセージログにKDEA07401-Wのメッセージが出力されます。