9.3.3 タイムアウトに関連するパラメタ
タイムアウトに関連するパラメタの一覧を次の表に示します。
項番 |
定義ファイル |
パラメタ名 |
指定する値 |
デフォルト値 |
---|---|---|---|---|
1 |
サーバ定義ファイル |
100〜3600000 (ミリ秒) |
60000 |
|
2 |
100〜3600000 (ミリ秒) |
10000 |
||
3 |
10〜60000 (ミリ秒) |
400 |
||
4 |
10〜86400000 (ミリ秒) |
2000 |
||
5 |
1〜60000 (ミリ秒) |
500 |
||
6 |
1〜60000 (ミリ秒) |
500 |
||
7 |
0〜100 |
0 |
||
8 |
1〜49 |
1 |
||
9 |
1〜86400 (秒) |
60 |
||
10 |
0〜3600(秒) |
3600 |
||
11 |
0〜3600000 (ミリ秒) |
3000 |
||
12 |
10〜3600000 (ミリ秒) |
800 |
||
13 |
100〜3600000(ミリ秒) |
60000 |
||
14 |
0〜60000 (ミリ秒) |
1000 |
||
15 |
1〜60000(ミリ秒) |
1000 |
||
16 |
100〜3600000(ミリ秒) |
2000 |
||
17 |
0〜2147483647(ミリ秒) |
0 |
||
18 |
10〜3600000(ミリ秒) |
120000 |
||
19 |
コマンド定義ファイル |
0〜2147483647 (ミリ秒) |
3000 |
|
20 |
0〜2147483647 (ミリ秒) |
600000 |
||
21 |
0〜2147483647 (秒) |
600 |
||
22 |
0〜2147483647 (ミリ秒) |
600000 |
||
23 |
0〜2147483647 (秒) |
600 |
||
24 |
クライアント定義ファイル |
100〜3600000 (ミリ秒) |
60000 |
|
25 |
100〜3600000 (ミリ秒) |
60000 |
||
26 |
10〜60000 (ミリ秒) |
1000 |
||
27 |
|
false |
||
28 |
1000〜60000(ミリ秒) |
1000 |
- 〈この項の構成〉
(1) サーバ定義ファイル
(c) eads.failureDetector.heartbeat.interval
ハートビートの送信間隔(単位:ミリ秒)を指定します。
このパラメタの指定値が大きいほど,復旧処理,スケールアウト処理,およびリバランス処理の性能に影響が出やすくなります。また,クラスタの起動時にタイムアウトが発生しやすくなります。
このパラメタの指定値が小さいほど,処理の通信負荷が高くなります。
このパラメタには,次に示すパラメタの指定値より小さい値を指定してください。
-
サーバ定義のeads.admin.boot.timeoutパラメタ
-
サーバ定義のeads.transfer.timeoutパラメタ
-
コマンド定義のeads.command.common.read.timeoutパラメタ
-
コマンド定義のeads.command.common.execution.timeoutパラメタ
-
コマンド定義のeads.command.<サブコマンド名>.read.timeoutパラメタ
-
コマンド定義のeads.command.<サブコマンド名>.execution.timeoutパラメタ
(d) eads.failureDetector.heartbeat.timeout
ハートビートのタイムアウト時間(単位:ミリ秒)を指定します。
このパラメタの指定値が大きいほど,障害を検知するまでに時間が掛かります。一方で,このパラメタの指定値が小さ過ぎると,障害を誤検知するおそれがあります。
また,このパラメタの指定値が大きいほど,更新操作の履歴を管理および格納するために,より多くのJavaヒープサイズ(共通設定のeads.java.heapsizeパラメタの指定値)およびExplicitヒープサイズ(共通設定のeads.java.external.heapsizeパラメタの指定値)が必要になります。
一時的な障害が発生した際に,EADSサーバを縮退させないで合意処理を行うために,このパラメタにサーバ定義のeads.replication.consensus.timeoutパラメタの指定値より大きい値を設定してください。このパラメタにサーバ定義のeads.replication.consensus.timeoutパラメタより小さい値を設定した場合は,縮退処理中にタイムアウトが発生し,縮退が完了するまでに余計な時間が掛かるおそれがあります。
(e) eads.failureDetector.connection.timeout
生存確認の接続タイムアウト時間(単位:ミリ秒)を指定します。
このパラメタの指定値が大きいほど,コネクションを確立できない場合に,障害を検知するまでの時間が掛かります。一方で,このパラメタの指定値が小さ過ぎると,コネクションを正常に確立する前にタイムアウトするおそれがあります。
このパラメタには,サーバ定義のeads.replication.consensus.timeoutパラメタと近い値を指定することを推奨します。
(f) eads.failureDetector.read.timeout
生存確認の受信タイムアウト時間(単位:ミリ秒)を指定します。
このパラメタの指定値が大きいほど,障害を検知するまでの時間が掛かります。一方で,このパラメタの指定値が小さ過ぎると,障害を誤検知するおそれがあります。
このパラメタには,サーバ定義のeads.replication.consensus.timeoutパラメタと近い値を指定することを推奨します。
(h) eads.failureDetector.assertive.threshold
EADSサーバダウンに同意するEADSサーバ数を指定します。
(クラスタを構成するEADSサーバ数+1)÷2を切り上げた値以下となるように設定してください。例えば,クラスタを構成するEADSサーバ数が5つの場合は,このパラメタに3以下の値を指定してください。
このパラメタの指定値を大きくすると,ダウンしたEADSサーバをいつまでも縮退できなくなるおそれがあります。その代わり,スプリットブレイン発生時などネットワークの一時的な障害が起きた場合に,EADSサーバがすぐに縮退されることを防ぐことができます。
(j) eads.server.connection.keepAlive.timeout
EADSクライアント・EADSサーバ間の接続を切断するまでの時間(単位:秒)を指定します。
リクエスト待ちの状態(通信が行われない状態)が,指定した時間以上続いた場合,接続が切断されます。
0を指定した場合,タイムアウトなし(無限)となります。
(k) eads.admin.operation.isolate.gracefulstop.waitTime
eztool isolateコマンドを実行したEADSサーバのクラスタ構成情報の更新が完了してから,縮退処理が完了するまでの時間(単位:ミリ秒)を指定します。
EADSクライアントからクラスタ構成情報の更新確認を受信したEADSサーバが縮退する際,EADSクライアントのクラスタ構成情報の更新が完了する前にコネクションがクローズしてしまうと,通信エラーになります。このパラメタの指定値を調整することで,EADSクライアントのクラスタ構成情報の更新完了後に,EADSサーバを縮退できます。
(l) eads.replication.consensus.timeout
合意処理のタイムアウト時間(単位:ミリ秒)を指定します。
指定した時間内に合意処理ができない場合は,タイムアウトして再度合意処理をし直します。
(m) eads.transfer.timeout
復旧処理,スケールアウト処理,およびリバランス処理でのデータ送信タイムアウト時間(単位:ミリ秒)を指定します。
扱うデータサイズに合わせて指定してください。
このパラメタは,復旧処理,スケールアウト処理,およびリバランス処理で,次のようなケースが発生した場合に備えるために設定します。
-
データの転送元のEADSサーバがダウンした際に,データの転送先のEADSサーバが待ち状態になる
-
データの転送先のEADSサーバがコネクションを保持したままハングアップした際に,データの転送元のEADSサーバが待ち状態になる
(n) eads.transfer.interval
復旧処理およびスケールアウト処理でのデータ送信間隔(単位:ミリ秒)を指定します。
復旧処理およびスケールアウト処理では,復旧対象のEADSサーバ,またはスケールアウト処理で追加したEADSサーバで,このパラメタに指定した値が適用されます。
このパラメタの指定値とサーバ定義のeads.transfer.datasizeパラメタの指定値は,次の式を満たすように設定してください。
復旧処理およびスケールアウト処理のデータ送信に使用できる帯域(単位:bps)≧ (復旧処理およびスケールアウト処理で送信するデータサイズ(単位:バイト)×8) ÷{(復旧処理およびスケールアウト処理でのデータ送信間隔(単位:ミリ秒) +データ送信に掛かる時間(単位:ミリ秒))÷1,000} |
- 復旧処理およびスケールアウト処理で送信するデータサイズ(単位:バイト):
-
サーバ定義のeads.transfer.datasizeパラメタの指定値
- 復旧処理およびスケールアウト処理でのデータ送信間隔(単位:ミリ秒):
-
サーバ定義のeads.transfer.intervalパラメタの指定値
- データ送信に掛かる時間(単位:ミリ秒):
-
サーバ定義のeads.transfer.datasizeパラメタに指定したサイズのデータ送信に掛かる時間(単位:ミリ秒)
「9.3.2(5) クラスタの復旧処理」の図中の「復旧処理(データ送信)」に掛かる時間を示します(スケールアウト処理の場合は,「復旧」を「スケールアウト」に読み替えてください)。この時間は環境によって異なります。
復旧処理およびスケールアウト処理に掛かる時間を短くすると,復旧処理およびスケールアウト処理の通信負荷が高くなります。通信負荷が高くなると,キャッシュを更新するAPの処理速度が低下するおそれがあります。逆に,復旧処理およびスケールアウト処理の通信負荷を低くすると,復旧処理およびスケールアウト処理に掛かる時間が長くなります。
ディスクキャッシュ,および2Wayキャッシュを復旧する場合,このパラメタの指定は無効になり,キャッシュ定義のeads.cache.disk.transfer.intervalパラメタの指定値が有効となります。
(o) eads.rebalance.transfer.interval
リバランス処理でのデータ転送の送信間隔(単位:ミリ秒)を指定します。
リバランス処理では,EADSサーバが新しく管理するレンジのデータは,元々そのレンジを管理していたEADSサーバ(分割前のレンジを管理していたEADS サーバ)から転送されます。その際,このパラメタに指定した送信間隔で,データを転送します。
分割前のレンジを管理していたEADSサーバと,分割後(結合後)のレンジを管理するEADSサーバで,このパラメタの指定値が異なる場合には,分割後(結合後)のレンジを管理するEADSサーバのパラメタの指定値が優先されます。
また,eztool rebalanceコマンドの-iまたは--intervalオプションを指定した場合には,このパラメタの指定値よりも,-iまたは--intervalオプションの指定値が優先されます。
(p) eads.replication.fillgap.copy.timeout
更新操作の履歴の補完処理で,更新操作の履歴を送信する際の送信タイムアウト時間(単位:ミリ秒)を指定します。
次に示す値のうち,最も大きな値を処理できる時間を設定してください。
-
データのコピー先EADSサーバに対して,1回当たりに送信するデータサイズ(サーバ定義のeads.replication.fillgap.copy.datasizeパラメタの値)
-
keyの最大サイズ+valueの最大サイズ×2
-
(keyの最大サイズ+valueの最大サイズ)×最大同時更新データ件数
- (凡例)
-
-
keyの最大サイズ:
共通設定のeads.cache.key.maxsizeパラメタの指定値
-
valueの最大サイズ:
put,create,update,replace実行時に指定するvalueの最大サイズです。
-
最大同時更新データ件数:
メモリキャッシュを使用して,データの一括操作を実行する場合は10を代入します。それ以外の場合は,1を代入します。
-
更新操作の履歴の補完処理については,「9.3.2(8) 更新操作の履歴の補完処理」を参照してください。
(q) eads.admin.operation.resume.send.interval
eztool resumeコマンド実行時の差分転送間隔(単位:ミリ秒)を指定します。
(2) コマンド定義ファイル
(a) eads.command.connection.timeout
コマンド実行時のEADSサーバとの通信の接続タイムアウト時間(単位:ミリ秒)を指定します。
このパラメタに0を指定した場合,タイムアウトしません。
なお,次のコマンドではこのパラメタの指定は無効になります。
(b) eads.command.common.read.timeout
コマンド実行時のEADSサーバとの通信の受信タイムアウト時間(単位:ミリ秒)を指定します。
このパラメタの指定値には,サーバ定義のeads.admin.operation.isolate.gracefulstop.waitTimeパラメタの指定値より大きな値を指定してください。
このパラメタに0を指定した場合,タイムアウトしません。
なお,次のコマンドではこのパラメタの指定は無効になります。
次のコマンドを実行する場合は,このパラメタの値を,クライアント定義のeads.client.connection.receive.timeoutパラメタに適用します。
ただし,次の場合はこのパラメタの値を適用しません。
-
このパラメタに0を指定した場合,または,クライアント定義のeads.client.connection.receive.timeoutパラメタの最大値以上の値を指定した場合
eads.client.connection.receive.timeoutパラメタの最大値を適用します。
-
クライアント定義のeads.client.connection.receive.timeoutパラメタの最小値以下の値を指定した場合
eads.client.connection.receive.timeoutパラメタの最小値を適用します。
(c) eads.command.common.execution.timeout
コマンド実行開始からのタイムアウト時間(単位:秒)を指定します。
このパラメタに0を指定した場合,タイムアウトしません。
なお,次のコマンドではこのパラメタの指定は無効になります。
(d) eads.command.<サブコマンド名>.read.timeout
特定のサブコマンド実行時の,EADSサーバとの通信の受信タイムアウト時間(単位:ミリ秒)を指定します。
サブコマンド名には,このパラメタの指定値を適用したいサブコマンド名を指定します。サブコマンド名を指定したサブコマンドの実行時には,コマンド定義のeads.command.common.read.timeoutパラメタの指定値よりも,このパラメタの指定値が優先されます。
このパラメタの指定値には,サーバ定義のeads.admin.operation.isolate.gracefulstop.waitTimeパラメタの指定値より大きな値を指定してください。
このパラメタに0を指定した場合,タイムアウトしません。
なお,次のコマンドではこのパラメタの指定は無効になります。
次のコマンドを実行する場合は,このパラメタの値を,クライアント定義のeads.client.connection.receive.timeoutパラメタに適用します。
ただし,次の場合はこのパラメタの値を適用しません。
-
このパラメタに0を指定した場合,または,クライアント定義のeads.client.connection.receive.timeoutパラメタの最大値以上の値を指定した場合
eads.client.connection.receive.timeoutパラメタの最大値を適用します。
-
クライアント定義のeads.client.connection.receive.timeoutパラメタの最小値以下の値を指定した場合
eads.client.connection.receive.timeoutパラメタの最小値を適用します。
(e) eads.command.<サブコマンド名>.execution.timeout
特定のサブコマンドの実行開始からのタイムアウト時間(単位:秒)を指定します。
サブコマンド名には,このパラメタの指定値を適用したいサブコマンド名を指定します。サブコマンド名を指定したサブコマンドの実行時には,コマンド定義のeads.command.common.execution.timeoutパラメタの指定値よりも,このパラメタの指定値が優先されます。
このパラメタに0を指定した場合,タイムアウトしません。
なお,次のコマンドではこのパラメタの指定は無効になります。
(3) クライアント定義ファイル
(b) eads.client.connection.receive.timeout
クラスタ構成情報の更新確認やデータ受信のタイムアウト時間(単位:ミリ秒)を指定します。
次の時間を考慮してください。
-
EADSサーバに配置しているユーザファンクションの実行時間
(c) eads.client.clusterInfo.update.interval
EADSクライアントがクラスタ内の一つ一つのEADSサーバに対してクラスタ構成情報の更新確認を行う間隔(単位:ミリ秒)を指定します。
このパラメタの指定値には,サーバ定義のeads.admin.operation.isolate.gracefulstop.waitTimeパラメタの指定値より小さい値を指定してください。
クラスタを構成するEADSサーバ数を考慮してください。
クラスタを構成するEADSサーバ数が増えると,このパラメタに指定した時間内に通信する回数が増えるため,EADSクライアントへの負荷が増加します。