Hitachi

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


7.4.2 HMP-PCTOのKubernetesアプリケーションのグレースフルシャットダウンが開始できる条件

HMP-PCTOのKubernetesアプリケーションのグレースフルシャットダウンが開始できる条件を次の表に示します。

表7‒4 HMP-PCTOのKubernetesアプリケーションのグレースフルシャットダウンが開始できる条件

Kubernetesアプリケーション

グレースフルシャットダウンが開始できる条件(AND条件)

Orchestrator

  • トランザクション境界内で処理中の件数が0件

  • 処理中リクエスト件数が0件

Entity-Service(Participantコンテナを含まないPodとする場合)

  • 処理中リクエスト件数が0件

SQL-Participant

  • 未決着トランザクション件数が0件

  • 処理中リクエスト件数が0件

TCC-Participant

  • 未決着トランザクション件数が0件

  • 処理中リクエスト件数が0件

TP1-Bridge(TP1連携機能を使用する場合)

  • 未決着トランザクション件数が0件

  • 処理中リクエスト件数が0件

Mediator

  • 未決着トランザクション件数が0件

各Kubernetesアプリケーションのグレースフルシャットダウンが開始できる条件について、詳細を説明します。

Orchestrator

Orchestratorは、トランザクション決着に関わるPodのため、トランザクションをできる限り決着させるために「トランザクション境界内で処理中の件数」が0件であることを条件とします。

また、Orchestratorは、ユーザのリクエストハンドラでユーザアプリケーション処理を実施しているため、リクエストへの応答をできる限り完了させるために「処理中リクエスト件数」が0件であることも条件とします。

Entity-Service(Participantコンテナを含まないPodとする場合)

Entity-Service(Participantコンテナを含まないPodとする場合)は、ユーザのリクエストハンドラでユーザアプリケーション処理を実施しているため、リクエストへの応答をできる限り完了させるために「処理中リクエスト件数」が0件であることを条件とします。

なお、Entity-Service(Participantコンテナを含まないPodとする場合)は、トランザクション決着に関わるPodではないため、ほかのKubernetesアプリケーションのような「未決着トランザクション件数」は条件に含みません。

また、グレースフルシャットダウンが開始できる条件が「処理中リクエスト件数」だけなので、グローバルトランザクションが処理中でも、自Podはシャットダウンすることがあります。このとき、このKubernetesアプリケーションがオートスケール機能を使用している場合は、ほかのKubernetesアプリケーションからこのKubernetesアプリケーションへ再度リクエストが来たとき、並行して稼働している別Podでリクエストを受け付けます。

SQL-Participant、TCC-ParticipantおよびTP1-Bridge(TP1連携機能を使用する場合)

SQL-Participant、TCC-ParticipantおよびTP1-Bridge(TP1連携機能を使用する場合)は、トランザクション決着に関わるPodのため、トランザクションをできる限り決着させるために「未決着トランザクション件数」が0件であることを条件とします。

SQL-Participant、TCC-ParticipantおよびTP1-Bridge(TP1連携機能を使用する場合)は、前述のOrchestratorやEntity-Service(Participantコンテナを含まないPodとする場合)ユーザアプリケーション処理を完了させるために、できる限り応答を返す必要があります。そのため、「処理中リクエスト件数」が0件であることも条件とします。

Mediator

Mediatorは、トランザクション決着に関わるPodのため、トランザクションをできる限り決着させるために「未決着トランザクション件数」が0件であることを条件とします。

なお、Mediatorは、ユーザアプリケーション処理を含まないため、ほかのKubernetesアプリケーションのような「処理中リクエスト件数」は条件に含みません。