Hitachi

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


7.3.1 Mediator

Mediatorのパラメタを説明します。

〈この項の構成〉

(1) Helmチャートのパラメタ

Helmチャートの各パラメタの値は設定範囲に従って設定してください。

次の表に記載されていないパラメタは設定を変更しないでください。

表7‒11 MediatorのHelmチャートのパラメタ

パラメタ

説明

設定範囲

デフォルト値

namespace

MediatorのNamespace名を設定してください。

String

my-namespace

replicas

起動するMediator数を設定してください。

Orchestratorのjp.co.Hitachi.soft.hmppcto.learner.consensus-typeにThree-Quartersを設定した場合は、5以上の値を設定してください。

Integer

2-64

なし

必ず設定してください。

image

3.3.3 Mediatorコンテナイメージの作成(通常版限定)」で作成したMediatorのコンテナイメージを設定してください。

String

なし

必ず設定してください。

imagePullSecrets

コンテナイメージをPullする際の資格情報を設定してください。

次のように指定します。

imagePullSecrets:
- name: regcred

資格情報が不要な場合は、設定不要です。

List<Object>

[]

(半角左角括弧と半角右角括弧です)

imagePullPolicy

MediatorのコンテナイメージをPullする際のポリシー設定をしてください。

String

IfNotPresent|Always|Never

IfNotPresent

dependencyCheck.image

3.3.4 Dependency-Checkerコンテナイメージの作成(通常版限定)」で作成したDependency-Checkerのコンテナイメージを設定してください。

String

なし

dependencyCheck.enabledにtrueを設定した場合は、必ず設定してください。

dependencyCheck.imagePullPolicy

Dependency-CheckerのコンテナイメージをPullする際のポリシー設定をしてください。

String

IfNotPresent|Always|Never

IfNotPresent

dependencyCheck.retryCount

初期化コンテナで実行するデプロイ依存関係チェックスクリプトのリトライ回数を設定してください。

Integer

0-1080

30

dependencyCheck.retryIntervalSeconds

初期化コンテナで実行するデプロイ依存関係チェックスクリプトのリトライ間隔秒数を設定してください。

Integer

0-360

10

dependencyCheck.connectTimeoutSeconds

初期化コンテナで実行するデプロイ依存関係チェックスクリプトの接続タイムアウト秒数を設定してください。

Integer

1-360

10

dependencyCheck.readTimeoutSeconds

初期化コンテナで実行するデプロイ依存関係チェックスクリプトの応答タイムアウト秒数を設定してください。

Integer

1-360

10

dependencyCheck.targets

初期化コンテナで実行するデプロイ依存関係チェックスクリプトのターゲットKubernetesオブジェクト群を設定してください。

指定方法の詳細は「5.5.1 デプロイ依存関係チェックスクリプト(dependency_check.sh)」を参照してください。

List<String>

  • - my-namespace/deployments/logstash

  • - my-namespace/deployments/jaeger-query

  • - my-namespace/deployments/jaeger-collector

  • - my-namespace/deployments/prometheus

  • - my-namespace/deployments/metricbeat

  • - my-namespace/daemonsets/filebeat

livenessProbe.InitialDelaySeconds

Liveness Probeの初回実行待機秒数を設定してください。

Integer

0以上

180

livenessProbe.periodSeconds

Liveness Probeの実行間隔秒数を設定してください。

Integer

1以上

30

livenessProbe.failureThreshold

Liveness Probeの最大失敗回数を設定してください。

Integer

1以上

3

livenessProbe.timeoutSeconds

Liveness Probeのタイムアウト秒数を設定してください。

Integer

1以上

10

livenessProbe.healthCheck.retryCount

Liveness Probeで実行するトランザクションヘルスチェックスクリプトのリトライ回数を設定してください。

Integer

0-1080

0

livenessProbe.healthCheck.retryIntervalSeconds

Liveness Probeで実行するトランザクションヘルスチェックスクリプトのリトライ間隔秒数を設定してください。

Integer

0-360

0

livenessProbe.healthCheck.connectTimeoutSeconds

Liveness Probeで実行するトランザクションヘルスチェックスクリプトの接続タイムアウト秒数を設定してください。

Integer

1-360

10

livenessProbe.healthCheck.readTimeoutSeconds

Liveness Probeで実行するトランザクションヘルスチェックスクリプトの応答タイムアウト秒数を設定してください。

Integer

1-360

10

postStart.healthCheck.retryCount

postStartフックで実行するトランザクションヘルスチェックスクリプトのリトライ回数を設定してください。

Integer

0-1080

30

postStart.healthCheck.retryIntervalSeconds

postStartフックで実行するトランザクションヘルスチェックスクリプトのリトライ間隔秒数を設定してください。

Integer

0-360

10

postStart.healthCheck.connectTimeoutSeconds

postStartフックで実行するトランザクションヘルスチェックスクリプトの接続タイムアウト秒数を設定してください。

Integer

1-360

10

postStart.healthCheck.readTimeoutSeconds

postStartフックで実行するトランザクションヘルスチェックスクリプトの応答タイムアウト秒数を設定してください。

Integer

1-360

10

preStop.waitTransactions.retryCount

preStopフックで実行する未決着トランザクション待機スクリプトのリトライ回数を設定してください。

Integer

0-1080

30

preStop.waitTransactions.retryIntervalSeconds

preStopフックで実行する未決着トランザクション待機スクリプトのリトライ間隔秒数を設定してください。

Integer

0-360

10

preStop.waitTransactions.connectTimeoutSeconds

preStopフックで実行する未決着トランザクション待機スクリプトの接続タイムアウト秒数を設定してください。

Integer

1-360

10

preStop.waitTransactions.readTimeoutSeconds

preStopフックで実行する未決着トランザクション待機スクリプトの応答タイムアウト秒数を設定してください。

Integer

1-360

10

terminationGracePeriodSeconds

Podの安全な停止待機秒数を設定してください。

Integer

0-2147483647

330

participant.sender.threadPoolSize

MediatorからParticipantへの送信に使用するスレッド数を設定してください。

1トランザクションの分散合意時に、トランザクションに参加したParticipant数分のスレッドを使用して送信します。スレッドが不足した場合は、キューイングしてスレッドが空くのを待ってから送信します。

スレッドの空き待ちを回避するための理論上の必要なスレッド数は、同時実行トランザクション数×Participant数です。

ただし、トランザクションの分散合意処理が重ならないかぎりは、理論上の必要なスレッド数は必要ありません。通常はデフォルト値を使用してください。

Integer

1-1000

30

participant.sender.queueSize

MediatorからParticipantへの送信に使用するスレッドの割り当て待ちキューのサイズを指定してください。

理論上の必要な設定値は次のとおりです。

{m+(p−1)×m×m}×p×p×t

m:トランザクションに参加するMediator数

p:トランザクションに参加するParticipant数

t:同時実行するトランザクション数

Integer

1-2147483647

25

mediator.judge.threadPoolSize

Mediatorの分散合意処理に使用するスレッド数を設定してください。

スレッドが不足した場合は、キューイングしてスレッドが空くのを待ってから処理を実行します。スレッドの空き待ちを発生しないようにするための理論上必要なスレッド数は、トランザクションに参加するParticipant数×同時実行するトランザクション数です。

ただし、処理の実行が重ならないかぎりは、理論上必要なスレッド数は必要ありません。通常はデフォルト値を使用してください。

Integer

1-1000

30

mediator.judge.queueSize

Mediatorの分散合意処理に使用するスレッドの割り当て待ちキューのサイズを指定してください。

理論上の必要なスレッド数は次のとおりです。

{m+(p−1)×m×m}×p×t

m:トランザクションに参加するMediator数

p:トランザクションに参加するParticipant数

t:同時実行するトランザクション数

Integer

1-2147483647

25

grpc.server.threadPoolSize

Mediatorが受信に使用するスレッド数を設定してください。

スレッドが不足した場合は、キューイングしてスレッドが空くのを待ってから処理を実行します。スレッドの空き待ちを発生しないようにするための理論上必要なスレッド数は、トランザクションに参加するParticipant数×同時実行するトランザクション数です。

ただし、処理の実行が重ならないかぎりは、理論上必要なスレッド数は必要ありません。通常はデフォルト値を使用してください。

Integer

1-1000

30

grpc.server.queueSize

Mediatorが受信に使用するスレッドの割り当て待ちキューのサイズを指定してください。

理論上の必要なスレッド数は次のとおりです。

[{m+(p−1)×m×m}×p+1]×t

m:トランザクションに参加するMediator数

p:トランザクションに参加するParticipant数

t:同時実行するトランザクション数

Integer

1-2147483647

25

consensusLog.size

ConsensusLogファイルに保持するConsensusLogの数を設定してください。

TPS(1秒当たりのトランザクション処理件数)×8以上を設定してください。

この設定値を超えるConsensusLogの保持が発生した場合、該当するMediatorは分散合意に参加しません。

なお、この設定値に1024(1つのConsensusLogのサイズ)を乗算し、1,048,576(ボリュームの書き込み容量不足にならないための予備サイズ(1MB))を加算したサイズを、MediatorのPodに割り当てるConsensusLogの永続ボリュームクレームのサイズに使用します。

Long

256-100000

256

consensusLog.io.threadPoolSize

ConsensusLogファイルへの書き込みに使用するスレッド数を設定してください。

スレッドが不足した場合は、キューイングしてスレッドが空くのを待ってから処理を実行します。スレッドの空き待ちを発生しないようにするための理論上必要なスレッド数は、同時実行するトランザクション数です。

ただし、処理の実行が重ならないかぎりは、理論上必要なスレッド数は必要ありません。通常はデフォルト値を使用してください。

Integer

1-1000

12

consensusLog.io.queueSize

ConsensusLogファイルへの書き込みに使用するスレッドの割り当てを待つキューのサイズを指定してください。

理論上必要な設定値は、同時実行するトランザクション数です。

ただし、トランザクションの分散合意処理が重ならないかぎりは、理論上必要な設定値は必要ありません。通常はデフォルト値を使用してください。

Integer

1-2147483647

25

consensusLog.io.watchInSeconds

ConsensusLogファイルへの書き込みおよび読み出し時のIO監視時間を秒で設定してください。0を指定した場合、IO監視を行いません。

この設定値を短く設定すると、IOハングアップした場合に早期に検知できます。ただし、ハードウェアやドライバが障害検知するよりも短い時間を設定するとハードウェアやドライバによる障害理由が失われるおそれがあります。

IO監視時間を超過した場合は障害メッセージを出力します。

Integer

0-3600

240

consensusLog.io.blockSize

ConsensusLogファイルのブロックサイズをバイトで設定してください。

1024の倍数を設定してください。

ブロックサイズは1回のファイルIOのサイズです。

Integer

1024-16384

4096

consensusLog.storageClassName

3.4.2 MediatorのConsensusLogの永続ボリュームおよびストレージクラスのKubernetesマニフェストの作成」で作成するMediatorのPodに割り当てるConsensusLogの永続ボリュームのストレージクラス名を設定してください。

String

なし

必ず設定してください。

http.port

Mediatorのhttpポート番号を設定してください。

動的ポートなど、ほかのポートと重ならないよう設定してください。

なお、この設定値はトランザクションヘルスチェックスクリプトおよび未決着トランザクション待機スクリプトのコマンド引数のhttpポート番号にも使用します。

Integer

1024-65535

20554

grpc.port

MediatorのgRPCを受信するポート番号を設定してください。

動的ポートなど、ほかのポートと重ならないよう設定してください。

Integer

1024-65535

20551

grpc.useTls

暗号化通信を行うかどうかを指定します。

true:暗号化通信を行います。

false:暗号化通信を行いません。

Boolean

true|false

false

grpc.tls.secretName

(3) MediatorのgRPC通信機能の暗号化通信用シークレットの作成」でユーザが作成した「MediatorのgRPC通信機能の暗号化通信用シークレット」のKubernetesオブジェクト名称を指定します。

String

なし

grpc.useTlsにtrueを設定した場合は、必ず設定してください。

grpc.tls.clientAuth.enabled

クライアント認証を行うかどうかを指定します。

true:クライアント認証を行います。

false:クライアント認証を行いません。

trueを設定する場合は、必ずgrpc.useTlsにtrueを設定してください。

Boolean

true|false

false

grpc.tls.session.cacheSize

SSLセッション情報のキャッシュ数を指定します。0を指定するとgRPCのデフォルト値が使用されます。

Integer

0-2147483647

0

grpc.tls.session.timeout

キャッシュしたSSLセッション情報の保持時間(秒)を指定します。0を指定するとgRPCのデフォルト値が使用されます。

Integer

0-65535

0

grpc.keepalive.interval

PING要求電文の送信間隔を秒単位で指定します。0を指定した場合はPING要求電文を送信しません。1〜9を指定した場合は10秒となります。

ネットワーク機器の無通信監視タイマなどによるTCPコネクション切断回避が目的の場合は、無通信監視タイマ値より小さい値を指定してください。

Integer

0-100000

0

grpc.keepalive.timeout

PING応答電文の応答待ち時間を秒単位で指定します。

PING要求電文の送信後、このタイマの指定値以内にPING応答電文を受信できない場合はTCPコネクションを切断します。

Integer

1-65535

60

grpc.watchtime

Participantへの要求電文に対する応答電文の待ち時間を秒単位で指定します。0を指定した場合は、タイマ監視をせずに無限に応答を待ちます。

MediatorからParticipantに要求電文を送信すると、Participantからはすぐに要求を受け付けた旨の応答電文を送信するため、応答電文の待ち時間はgRPC通信の送受信時間として許容できる待ち時間となります。

Integer

0-65535

5

mediator.judge.proposalLogLimitNum

Mediatorが管理するProposal Logが、Participantからトランザクション完了通知を受信できないで、滞留してしまった場合にProposal Logとして許容できる数(Proposal Logが保存を許容できるグローバルトランザクション数)を指定します。

滞留したProposal Logがこのパラメタの件数を超えた場合、トランザクションの完了を確認するためMediatorからParticipantへトランザクション完了確認通知を送信します。

このパラメタの件数が小さ過ぎる場合、トランザクション完了通知の送信頻度が多くなり、通信量が増加します。

このパラメタの件数が大き過ぎる場合、トランザクション完了通知の送信頻度が少なくなり、メモリを圧迫します。

Proposal Logに使用するメモリ量は、グローバルトランザクションに含まれるParticipantの構成によって可変となります。

Proposal Log 1件当たりのメモリ使用量は次のとおりです。

1400+(800×トランザクションに参加したParticipant数)

Integer

1-17000

512

tracing.instanceId

共通のtracing.instance-idと同じです。「(1) jp.co.Hitachi.soft.hmppctoのパラメタ」を参照してください。

tracing.url

共通のtracing.urlと同じです。「(1) jp.co.Hitachi.soft.hmppctoのパラメタ」を参照してください。

tracing.traceUse

共通のtracing.trace-useと同じです。「(1) jp.co.Hitachi.soft.hmppctoのパラメタ」を参照してください。

timezone

Mediatorコンテナのタイムゾーンを指定します。ユーザ責務のKubernetes アプリケーションと同じタイムゾーンに設定することを推奨します。

このパラメタに指定した値は環境変数TZユーザに設定します。

このパラメタに指定した値がタイムゾーンとして不正な文字列である場合、Mediatorコンテナのタイムゾーンは協定世界時(UTC)となります。

String

Asia/Tokyo

java.options

MediatorのJavaプロセス起動時にJava VMに渡すオプションを指定します。

半角スペース区切りで複数のオプションを指定できます。

このパラメタには「-XX:+UseG1GC」オプションを必ず含めてください。「-XX:+UseG1GC」オプションを含めなかった場合、「-XX:+UseG1GC」オプションを含めた場合と比較して、Mediatorの実行性能およびメモリ性能が低下することがあります。

String

-XX:+UseG1GC

ucars.snapshots.claimName

3.4.10 uCosminexus Application Runtime with Java for Spring Bootスナップショットログの永続ボリュームおよび永続ボリューム要求のKubernetesマニフェストの作成(通常版限定)」で作成するuCosminexus Application Runtime with Java for Spring BootスナップショットログのPersistentVolumeClaimリソースの名称(.metadata.nameフィールドに指定した値)を設定してください。

String

なし

必ず設定してください。

(凡例)

−:該当しません。

注※

コンテナオーケストレーションに設定する値であるため、最大値、最大文字数および許容される文字パターンはコンテナオーケストレーションに依存します。詳細はKubernetesドキュメントを参照してください。