7.3.2 EADS(通常版限定)
EADSをHMP-PCTOで動作させる際に、指定するパラメタを説明します。
EADSのパラメタの設定方法は、次の2とおりに分けられます。
-
EADSサーバ
EADSサーバチャート用values.yamlファイルを編集します。
-
EADSクライアント
ParticipantのKubernetesマニフェストを編集します。
なお、EADSのデフォルト値のままとする設定は記載されていません。
プロパティの仕様や指定方法については、EADSのマニュアルを参照してください。
EADSのマニュアルに登場する見積もり式で使用するパラメタの内、EADSパラメタに依存しないパラメタは次のとおりです。
|
パラメタ |
値 |
説明 |
|---|---|---|
|
キャッシュ数 |
1 |
ディスクキャッシュを1個だけ使用します。 さらにそのキャッシュではデータ自動削除機能(FIFOモード)を有効にします。 詳細は「(f) eads_cache.<キャッシュ名>.properties(キャッシュ定義ファイル)」を参照してください。 |
|
EADS サーバに格納される key の最大サイズ(単位:バイト) |
164 |
最大160文字(ASCIIコード)で構成された文字列です。 EADSのマニュアルから、160+4で見積もっています。 |
|
EADS サーバに格納される value の最大サイズ(単位:バイト) |
17 |
最大8文字(ASCIIコード)で構成されたJavaのjava.lang.String型インスタンスであり、java.io.ObjectOutputStream クラスで直列化したあとのバイト数は最大15バイトになります。 EADSのマニュアルから、15+2で見積もっています。 |
|
最大同時更新データ数 |
1 |
EADSクライアントのAPIであるputAllおよびgetAllは使用していません。 |
|
ノンブロッキング通信制御 |
不採用 |
ノンブロッキング通信制御は使用していません。 |
|
グループ名の数 |
0 |
グループは使用していません。 |
|
補助合意結果保持件数(クラスタのディスクキャッシュに格納するデータ件数) |
説明欄 参照 |
補助合意結果は古い結果から自動削除しますが、トランザクション処理が完了する前に補助合意結果が削除されると分散合意の一貫性が保てなくなるため、トランザクション処理が完了する前に補助合意結果が削除されないよう十分な件数を指定してください。一方で件数が大き過ぎるとディスク使用量が増えるためシステム要件に合わせて指定してください。 具体的には下記計算式で見積もってください。 TPS(件/秒)×MAX※1(最大トランザクション実行時間(秒)+許容する障害時のトランザクション実行遅延時間(秒), 1)×安全係数※2 |
|
1レンジ当たりのデータ件数 |
説明欄 参照 |
補助合意結果保持件数×余裕値係数※3÷EADSサーバの台数 |
|
1EADSサーバへのデータの更新操作のスループット(単位:件/秒) |
説明欄 参照 |
TPS(件/秒)÷EADSサーバの台数 |
|
1EADS サーバの1時間当たりの更新回数(単位:件/時) |
説明欄 参照 |
1EADSサーバへのデータの更新操作のスループット(件/秒)×3600(秒/時) |
|
コンパクションの実施間隔(単位:秒) |
600 |
左記の値(600)はデフォルト値です。 コンパクションの実施間隔を変更したい場合は「(19) EADSのセットアップ(通常版限定)」で、eztool compactionコマンドを定期的に実行する際のeads-command-cronjob-chart.tgzで指定するscheduleフィールドの値を変更してください。 EADSのマニュアルの見積もり式の「コンパクションの実施間隔(単位:時)」には、この値を3600(秒/時)で割った値を設定してください。 |
- 注※1
-
例えばMAX(A, B)であった場合、AとBのどちらか大きい方の値を返します。
- 注※2
-
安全係数は2以上を推奨します。
- 注※3
-
余裕値係数の見積もり方法の詳細はEADSのマニュアルを参照してください。
- 〈この項の構成〉
(1) EADSサーバのパラメタ
(a) EADSサーバチャート用values.yamlファイル
EADSサーバ用のパラメタ指定値は、EADSサーバチャート用values.yamlファイルで設定します。values.yamlのサンプルを次に示します。
values.yamlファイルでの設定は、EADSサーバのデプロイ時にプロパティファイルに展開されます。ここでは、設定が必要なEADSサーバのプロパティファイルのパラメタ値について説明します。
EADSサーバチャートで使用するvalues.yamlの例
release:
service: "eads-service"
server: "eads-server"
namespace: " my-namespace"
serverImage:
repository: "eads-server-image"
tag: ""
imageOverride: ""
pullSecrets: []
pullPolicy: "IfNotPresent"
commandImage:
repository: "eads-command-image"
tag: ""
imageOverride: ""
pullSecrets: []
pullPolicy: "IfNotPresent"
cluster:
servers: 3
replicationFactor: 2
caches:
- name: "hmppctoCache"
type: "Disk"
pvc:
capacity: "258Mi"
storageClassName: ""
properties:
- eads.cache.disk.filenum=8
- eads.cache.disk.filesize=16
- eads.cache.eviction.policy=FIFO
- eads.cache.eviction.keyCount=1024
service:
server: 24600
operation: 24620
heartbeat: 24630
failureDetector: 24631
transfer: 24632
replication: 24633
logs:
capacity: "1Gi"
storageClassName: ""
store:
capacity: "500Mi"
storageClassName: ""
resources:
limits:
cpu: "2"
requests:
memory: "1664Mi"
properties:
server:
- eads.server.maxConnections=60
- eads.server.cache.maxExecuteThreads=60
- eads.java.nio.maxCachedBufferSize=8192
- eads.logger.message.console.enable=true
command: []
shared:
- eads.java.heapsize=768
- eads.java.external.heapsize=7
- eads.replication.external.heapsize=6
- eads.cache.key.maxsize=164
- eads.cache.keyCount=1025
cluster: []
functions:
eads: []
volumes: []
index: 0
args: "status"
schedule: "*/10 * * * *"(b) eads_server.properties(サーバ定義ファイル)
eads_server.propertiesのパラメタについて説明します。
values.yamlの.properties.server.〜で設定します。
|
パラメタ |
説明 |
|---|---|
|
eads.server.maxConnections |
補助合意の時にEADSサーバに同時にアクセスする最大同時接続数を指定してください。EADSサーバに対してこの値を超過する接続があった場合、その接続は拒否されます。 推奨値は、トランザクションに参加するParticipant数×eads.client.connectionPool.poolsize×2(安全係数※)となります。 |
|
eads.server.cache.maxExecuteThreads |
eads.server.maxConnectionsに指定した値をこのプロパティにも指定してください。 |
|
eads.java.nio.maxCachedBufferSize |
8192を指定してください。 |
|
eads.logger.message.console.enable |
EADSサーバによって出力されるメッセージログの、標準出力への出力を有効にするか、無効にするかを指定します。HMP-PCTOのトラブルシュート機能でEADSサーバのログを監視する場合は、trueを指定してください。 |
|
eads.server.connection.keepAlive.timeout |
SQL-Participant、TCC-Participantが再起動した場合、EADSサーバが検知してからコネクションを切断するまでの時間を指定します。 推奨値は、70秒です。 |
- 注※
-
Participantが再起動すると、一時的にEADSサーバに同時にアクセスする接続数が倍になる場合があります。そのための安全係数です。
Participant再起動から、eads.server.connection.keepAlive.time経過後にコネクションが切断されます。eads.server.connection.keepAlive.time間に2回以上Participant再起動を考慮する場合は、安全係数をParticipant再起動回数+1としてください。
(c) eads_command.properties(コマンド定義ファイル)
このファイルでは、設定が必要なEADSサーバのプロパティファイルのパラメタ値はありません。
(d) eads_shared.properties(共通設定ファイル)
eads_shared.propertiesのパラメタについて説明します。
values.yamlの.properties.shared.〜で設定します。
|
パラメタ |
説明 |
|---|---|
|
eads.replication.factor (values.yamlの「.properties.cluster.replicationFactor」です) |
EADSの多重度を指定してください。 多重度はEADSサーバの障害許容台数+1の値となります。 最低は2です。 2の場合、EADSサーバが1台故障しても、補助合意の継続が保証されます。 |
|
eads.replication.external.heapsize |
見積もり方法の詳細については、EADSのマニュアルを参照ください。 「表7‒12 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。 |
|
eads.java.heapsize |
見積もり方法の詳細については、EADSのマニュアルを参照ください。 「表7‒12 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。 |
|
eads.java.external.heapsize |
見積もり方法の詳細については、EADSのマニュアルを参照ください。 「表7‒12 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。 |
|
eads.cache.key.maxsize |
「表7‒12 EADSパラメタに依存しないパラメタ」の「EADS サーバに格納される key の最大サイズ」を指定してください。 |
|
eads.cache.keyCount |
見積もり方法の詳細については、EADSのマニュアルを参照ください。 「表7‒12 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。 |
(e) eads_cluster.properties(クラスタ定義ファイル)
eads_cluster.propertiesのパラメタについて説明します。
values.yamlの.cluster.〜で設定します。
|
パラメタ |
説明 |
|---|---|
|
eads.node.<EADSサーバID>.address (values.yamlの.cluster.serversです) |
EADSサーバの台数を指定してください。 最低は3台です。 台数を増やすと1台当たりのメモリ・ディスク容量を減らすことができます。 |
(f) eads_cache.<キャッシュ名>.properties(キャッシュ定義ファイル)
eads_cache.<キャッシュ名>.propertiesのパラメタについて説明します。
values.yamlの.caches.properties〜で設定します。
|
パラメタ |
説明 |
|---|---|
|
eads.cache.type (values.yamlの.caches.type〜です) |
EADSのキャッシュタイプを指定します。 Diskを指定してください。 |
|
eads.cache.eviction.policy |
EADSに格納された補助合意結果の、自動削除ポリシーを指定します。 FIFO(古いデータから自動削除)を指定してください。 |
|
eads.cache.eviction.keyCount |
自動削除でデータを削除するための閾値として使用する1レンジ当たりのデータ件数を指定します。 「表7‒12 EADSパラメタに依存しないパラメタ」に記載したパラメタの「1レンジ当たりのデータ件数」を指定してください。 |
|
eads.cache.disk.filesize |
キャッシュデータファイルのファイルサイズ(MB)を指定します。 見積もり方法の詳細は、EADSのマニュアルを参照ください。 「表7‒12 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。 |
|
eads.cache.disk.filenum |
キャッシュデータファイルのファイル数を指定します。 見積もり方法の詳細は、EADSのマニュアルを参照ください。 「表7‒12 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。 |
(g) eads_function.properties(ファンクション定義ファイル)
このファイルでは、設定が必要なEADSサーバのプロパティファイルのパラメタ値はありません。
(h) 注意事項
必要なリソース(メモリ使用量やディスク使用量など)については、EADSのマニュアルを参照して、見積もってください。
(2) EADSクライアントのパラメタ
(a) EADSクライアント定義ファイル
EADSクライアント定義ファイルおよびパラメタの詳細については、EADSのマニュアルを参照してください。
ここでは、HMP-PCTOで使用する場合に指定が必要なパラメタについて説明します。次の表で示すパラメタ以外は、デフォルトとしてください。
EADSクライアント定義は、ユーザ責務で作成します。
EADSクライアント定義は、ParticipantのKubernetesマニフェストでEADSクライアント定義ファイルに設定するように定義します。「2.5.5 SQL-ParticipantのKubernetesマニフェストの作成(SQL-Participant限定)」、または「2.5.4 TCC-ParticipantのKubernetesマニフェストの作成(TCC-Participant限定)」を参照してください。
|
パラメタ |
説明 |
|---|---|
|
eads.client.connect.servers |
任意の名称を指定してください。 |
|
eads.client.<接続先EADSサーバ>.address |
EADSサーバのDNS名※を指定してください。 |
|
eads.client.<接続先EADSサーバ>.port |
EADSサーバのポート番号を指定してください。 EADSサーバのポート番号はEADSサーバチャート用values.yamlの.service.serverに指定した値です。 |
|
eads.client.logger.dir |
"eads-log"を指定してください。 |
|
eads.client.connectionPool.poolsize |
1を指定してください。 |
- 注※
-
<EADSサーバのDNS名>:<Serviceリリース名>-eads-service-<複製インデックス>.<Namespace名>
・<Serviceリリース名>:EADSサーバデプロイ時のServiceリリース名
・<複製インデックス>:EADSサーバデプロイ時のStatefulSetが複製したEADSサーバPodの名前(<StatefulSetの名前>-[0-9]+)の末尾に割り当てられた数値です。0からシーケンシャルに割り当てられます。
・<Namespace名>:EADSサーバデプロイ時のNamespace名
EADSクライアント定義ファイルの指定例を次に示します。
EADSクライアント定義ファイルの指定例
eads.client.connect.servers=sv1,sv2,sv3 eads.client.sv1.address=eads-service-eads-service-0.my-namespace eads.client.sv1.port=24600 eads.client.sv2.address=eads-service-eads-service-1.my-namespace eads.client.sv2.port=24600 eads.client.sv3.address=eads-service-eads-service-2.my-namespace eads.client.sv3.port=24600 eads.client.logger.dir=eads-log eads.client.connectionPool.poolsize=1