Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


8.3.3 EADS(通常版限定)

EADSをHMP-PCTOで動作させる際に、指定するパラメタを説明します。

EADSのパラメタの設定方法は、次の2とおりに分けられます。

なお、EADSのデフォルト値のままとする設定は記載されていません。

プロパティの仕様や指定方法については、マニュアル「Elastic Application Data Store ユーザーズガイド」を参照してください。

マニュアル「Elastic Application Data Store ユーザーズガイド」に記載されている見積もり式で使用するパラメタのうち、EADSパラメタに依存しないパラメタは次のとおりです。

表8‒14 EADSパラメタに依存しないパラメタ

パラメタ

説明

キャッシュ数

1

ディスクキャッシュを1個だけ使用します。

さらにそのキャッシュではデータ自動削除機能(FIFOモード)を有効にします。

詳細は「(f) eads_cache.<キャッシュ名>.properties(キャッシュ定義ファイル)」を参照してください。

EADS サーバに格納される key の最大サイズ(単位:バイト)

164

最大160文字(ASCIIコード)で構成された文字列です。

マニュアル「Elastic Application Data Store ユーザーズガイド」から、160+4で見積もっています。

EADS サーバに格納される value の最大サイズ(単位:バイト)

17

最大8文字(ASCIIコード)で構成されたJavaのjava.lang.String型インスタンスであり、java.io.ObjectOutputStream クラスで直列化したあとのバイト数は最大15バイトになります。

マニュアル「Elastic Application Data Store ユーザーズガイド」から、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)はデフォルト値です。

コンパクションの実施間隔を変更したい場合は「(18) EADSのセットアップ(通常版限定)」で、eztool compactionコマンドを定期的に実行する際のeads-command-cronjob-chart.tgzで指定するscheduleフィールドの値を変更してください。

マニュアル「Elastic Application Data Store ユーザーズガイド」の見積もり式の「コンパクションの実施間隔(単位:時)」には、この値を3600(秒/時)で割った値を設定してください。

注※1

例えばMAX(A, B)であった場合、AとBのどちらか大きい方の値を返します。

注※2

安全係数は2以上を推奨します。

注※3

余裕値係数の見積もり方法の詳細は、マニュアル「Elastic Application Data Store ユーザーズガイド」を参照してください。

〈この項の構成〉

(1) EADSサーバのパラメタ

設定が必要なEADSサーバのプロパティファイルのパラメタ値について説明します。

(a) EADSサーバチャート用values.yamlファイル

EADSサーバ用のパラメタ指定値は、EADSサーバチャート用values.yamlファイルで設定します。values.yamlのサンプルを次に示します。

values.yamlファイルでの設定は、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
  - eads.server.connection.keepAlive.timeout=70
  - eads.failureDetector.heartbeat.timeout=10000
  - eads.failureDetector.connection.timeout=2500
  - eads.failureDetector.read.timeout=2500
  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.〜で設定します。

表8‒15 eads_server.propertiesのパラメタ

パラメタ

説明

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秒です。

eads.failureDetector.heartbeat.timeout

ハートビートのタイムアウト時間をミリ秒単位で指定します。

10000を指定してください。ただし、実行環境に影響を受けるため、通信遅延が原因でタイムアウトが頻繁に発生する場合は、長めの値に調整してください。

このパラメタの指定値を変更すると、次のパラメタに影響します。

  • eads.failureDetector.connection.timeout

  • eads.failureDetector.read.timeout

eads.failureDetector.connection.timeout

生存確認の接続タイムアウト時間をミリ秒単位で指定します。

2500を指定してください。なお、ハートビートのタイムアウト時間(eads.failureDetector.heartbeat.timeout)を変更した場合は、指定値を見直してください。

このパラメタの指定値は、ハートビートのタイムアウト時間の1/4を目安としてください。

eads.failureDetector.read.timeout

生存確認の受信タイムアウト時間をミリ秒で指定します。

2500を指定してください。なお、ハートビートのタイムアウト時間(eads.failureDetector.heartbeat.timeout)を変更した場合は、指定値を見直してください。

このパラメタの指定値は、ハートビートのタイムアウト時間の1/4を目安としてください。

注※

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.〜で設定します。

表8‒16 eads_shared.propertiesのパラメタ

パラメタ

説明

eads.replication.factor

(values.yamlの「.properties.cluster.replicationFactor」です)

EADSの多重度を指定してください。

多重度はEADSサーバの障害許容台数+1の値となります。

最低は2です。

2の場合、EADSサーバが1台故障しても、補助合意の継続が保証されます。

eads.replication.external.heapsize

見積もり方法の詳細については、マニュアル「Elastic Application Data Store ユーザーズガイド」を参照ください。

表8‒14 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。

eads.java.heapsize

見積もり方法の詳細については、マニュアル「Elastic Application Data Store ユーザーズガイド」を参照ください。

表8‒14 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。

eads.java.external.heapsize

見積もり方法の詳細については、マニュアル「Elastic Application Data Store ユーザーズガイド」を参照ください。

表8‒14 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。

eads.cache.key.maxsize

表8‒14 EADSパラメタに依存しないパラメタ」の「EADS サーバに格納される key の最大サイズ」を指定してください。

eads.cache.keyCount

見積もり方法の詳細については、マニュアル「Elastic Application Data Store ユーザーズガイド」を参照ください。

表8‒14 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。

(e) eads_cluster.properties(クラスタ定義ファイル)

eads_cluster.propertiesのパラメタについて説明します。

values.yamlの.cluster.〜で設定します。

表8‒17 eads_cluster.propertiesのパラメタ

パラメタ

説明

eads.node.<EADSサーバID>.address

(values.yamlの.cluster.serversです)

EADSサーバの台数を指定してください。

最低は3台です。

台数を増やすと1台当たりのメモリ・ディスク容量を減らすことができます。

(f) eads_cache.<キャッシュ名>.properties(キャッシュ定義ファイル)

eads_cache.<キャッシュ名>.propertiesのパラメタについて説明します。

values.yamlの.caches.properties〜で設定します。

表8‒18 eads_cache.<キャッシュ名>.propertiesのパラメタ

パラメタ

説明

eads.cache.type

(values.yamlの.caches.type〜です)

EADSのキャッシュタイプを指定します。

Diskを指定してください。

eads.cache.eviction.policy

EADSに格納された補助合意結果の、自動削除ポリシーを指定します。

FIFO(古いデータから自動削除)を指定してください。

eads.cache.eviction.keyCount

自動削除でデータを削除するための閾値として使用する1レンジ当たりのデータ件数を指定します。

表8‒14 EADSパラメタに依存しないパラメタ」に記載したパラメタの「1レンジ当たりのデータ件数」を指定してください。

eads.cache.disk.filesize

キャッシュデータファイルのファイルサイズ(MB)を指定します。

見積もり方法の詳細は、マニュアル「Elastic Application Data Store ユーザーズガイド」を参照ください。

表8‒14 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。

eads.cache.disk.filenum

キャッシュデータファイルのファイル数を指定します。

見積もり方法の詳細は、マニュアル「Elastic Application Data Store ユーザーズガイド」を参照ください。

表8‒14 EADSパラメタに依存しないパラメタ」に記載したパラメタで見積もった値を指定してください。

(g) eads_function.properties(ファンクション定義ファイル)

このファイルでは、設定が必要なEADSサーバのプロパティファイルのパラメタ値はありません。

(h) 注意事項

必要なリソース(メモリ使用量やディスク使用量など)については、マニュアル「Elastic Application Data Store ユーザーズガイド」を参照して、見積もってください。

(2) EADSクライアントのパラメタ

(a) EADSクライアント定義ファイル

EADSクライアント定義ファイルおよびパラメタの詳細についてはマニュアル「Elastic Application Data Store ユーザーズガイド」を参照してください。

ここでは、HMP-PCTOで使用する場合に指定が必要なパラメタについて説明します。次の表で示すパラメタ以外は、デフォルトとしてください。

EADSクライアント定義は、ユーザ責務で作成します。

EADSクライアント定義は、ParticipantのKubernetesマニフェストでEADSクライアント定義ファイルに設定するように定義します。「2.6.4 SQL-ParticipantのKubernetesマニフェストの作成(SQL-Participant限定)」、または「2.6.5 TCC-ParticipantのKubernetesマニフェストの作成(TCC-Participant限定)」を参照してください。

表8‒19 EADSクライアント定義ファイル

パラメタ

説明

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