Hitachi

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


付録F HMP-PCTOで使用する用語

ここでは、HMP-PCTOで使用する用語について説明します。

表F‒1 用語解説

用語

説明

3/4合意

  • ThreeQuarters合意のこと

  • 「よんぶんのさんごうい」と呼ぶ

Alternate-Service

呼び出し元に応じて、Orchestrator-ServiceかEntity-Serviceに役割が変わるKubernetesアプリケーションおよびコンテナ

Alternate-Service(SQL)

Alternate-Service上でJDBC Proxy Driverを使用してDBにアクセスするKubernetesアプリケーションおよびコンテナ

BranchQualifier

  • トランザクション内のブランチを一意に識別するための識別子

  • X/Openトランザクション識別子XID構造のJavaマッピングのBranchQualifier

Consensus Acceptor

  • リソース更新可否の決着結果の永続化機能のこと

  • Termination Judgeから通知された投票結果を永続化したあと、投票結果を、Consensus Learnerに通知する機能を持つ

Consensus Learner

  • 分散合意習得(機能)のこと

  • 複数のMediatorの合意を習得し(受信し)、一貫した合意結果を得る機能

  • Participant内の機能の一つ

ConsensusId

  • 分散合意処理のレイヤでトランザクションを一意にするための識別子

  • RootXIDを文字列化して生成する

ConsensusLog

Mediatorで保持しているリソース更新可否の決着結果

DB Adaptor

  • データベースアダプタのこと

  • アプリケーションの要求に従ってリソースへのSQL実行やX/Openで規定するXA仕様に則ったXAインタフェース実行を行う機能を持つ

EADS

  • Hitachi Elastic Application Data Storeのこと

  • 分散KVS

  • paxos commitでは補助合意に使用する

Entity-Module

Orchestrator、Participantと連携してトランザクションの伝搬をするHMP-PCTOの機能

Entity-Service

データベースなどのリソースの参照、更新業務を行うKubernetesアプリケーションおよびコンテナ

Entity-Service(SQL)

Entity-Service上でJDBC Proxy Driverを使用してDBにアクセスするKubernetesアプリケーションおよびコンテナ

Entity-Service(TCC)

Entity-Service上でTCCパターンを使用してリソースにアクセスするKubernetesアプリケーションおよびコンテナ

Ext Cons

  • 補助合意のこと

  • External Consensusの略

External Consensus

補助合意のこと

HMP-PCTO

  • Hitachi Microservices Platform - Paxos Commit Transaction Orchestratorの略称

  • ミッションクリティカルシステムにおける分散トランザクション制御を、マイクロサービスアーキテクチャを用いたシステムで容易に実現するフレームワーク

Javaアプリケーション

  • HMP-PCTOのライブラリを使用しjava言語で作成するユーザアプリケーション

  • ユーザが作成したアプリケーションで、ユーザ任意の方法でJARファイルにビルドしたもの

JDBC Proxy Driver

  • アプリケーションやフレームワークからのJDBC Driverのメソッドの呼び出しを、Participantと連携して透過的にベンダネイティブなJDBC Driverに伝えるHMP-PCTOの機能

Kubernetesアプリケーション

  • Kubernetesクラスタにデプロイして実行するコンテナ化されたアプリケーション

  • Pod、Deployment、StatefulSetなどのワークロードリソースとして作成したもの

Learner

Consensus Learnerのこと

Mediator

  • Orchestrator、Participantと連携してPaxos Commitを実現するHMP-PCTOの機能。またはその機能を使ったKubernetesアプリケーションおよびコンテナ

  • Paxos Commitで、トランザクション制御を行うための構成要素の一つであり、Consensus AcceptorおよびTermination Judgeの機能を持つ

  • Consensus AcceptorおよびTermination Judgeは、ParticipantのTermination ProposerおよびConsensus Learnerと連動してクウォーラム型分散合意を実現する

Orchestrator

Mediator、Entity-Moduleと連携してトランザクションの制御をするHMP-PCTOの機能

Orchestrator-Service

Clientシステムからの要求を受け付けて、各サービスを呼び出して利用することで業務を実行するKubernetesアプリケーションおよびコンテナ

Orchestrator-Service(SQL)

Orchestrator-Service上でJDBC Proxy Driverを使用してDBにアクセスするKubernetesアプリケーションおよびコンテナ

Participant

  • Mediator、Entity-Moduleと連携してPaxos Commitを実現するHMP-PCTOの機能

  • Paxos Commitで、トランザクション制御を行うための構成要素の一つであり、Resource Adapter、Termination ProposerおよびConsensus Learnerの機能を持つ

  • Termination ProposerおよびConsensus Learnerは、MediatorのConsensus AcceptorおよびTermination Judgeと連動してクウォーラム型分散合意を実現する

  • SQL-Participant、TCC-Participant、およびTP1-Bridgeのことを指す

PrivilegedValue合意

  • 分散合意習得方式の一つ

  • PrivilegedValueパラメタ指定値になるように合意する分散合意習得方式

PV合意

PrivilegedValue合意のこと

RAS

  • RASIS(Reliability Availability Serviceability Integrity Security)の省略形。RASISとは、コンピュータシステムの信頼性を評価するときチェックする項目であるReliability(信頼性)、Availability(可用性)、Serviceability(保守性)、Integrity(保全性)、Security(機密性)の頭文字で構成された用語

  • HMP-PCTOのシステム運用に必要となる機能のこと。障害対策のための情報やHMP-PCTOの性能を評価するための情報を取得する

Relay-Service

HMP-PCTOの機能を用いたリソースの更新は行わない、トランザクションの伝搬を中継するアプリケーション

SQL-Adapter

  • JDBC Driverを介してSQLを実行する

  • XAインタフェース(xa_start、xa_end、xa_prepare、xa_commit、xa_rollback、およびxa_recover)を使用してRDBMSに接続し、リソースを管理する

SQL-Participant

  • Participantの特性を持ちX/OpenのXA仕様に準拠したトランザクション制御を実現するHMP-PCTOの機能

  • SQL-AdapterおよびTx+Paxos-Managerによって構成される

TCC

  • REST APIサービスに対する分散トランザクションの設計パターンの一つ

  • Try、Confirm、Cancelの機能を持つ。これらの頭文字からTCCと呼ばれる

TCC-Participant

  • Participantの特性を持ちTCCパターンを実現するHMP-PCTOの機能

  • Try、Confirm、Cancel、Recoverに対応したインタフェースを提供。ユーザがインタフェースを実装することで、TCC-Participantはリソースを管理する

Termination Judge

  • ターミネーションジャッジ(トランザクション終了審査者)のこと

  • グローバルトランザクションに含まれるParticipantから通知された投票内容を記録し、すべてのParticipantがCommit投票(リソースを更新できる)であればCommitに、1つでもRollback投票(リソースを更新できない)のParticipantがあればRollbackに、投票結果を集約する機能を持つ

  • 集約した投票結果は、Consensus Acceptorに通知する

Termination Proposer

  • ターミネーションプロポーザ(トランザクション終了提案者)のこと

  • リソースに対するSQL実行の更新可否を確認するため、X/Openが規定するXA仕様に則ってPrepareを実行し、その結果に応じた投票(Commit投票/Rollback投票)をMediatorに通知する機能を持つ

ThreeQuarters合意

  • 分散合意習得方式の一つ

  • 1/4のMediatorの故障を許容する分散合意習得方式

TP1-Acceptor

  • HMP-PCTO上のAPから、OpenTP1のSPPに対するリクエストを受け付けるサービス

TP1-Adapter

  • TP1/Client/Jを介してOpenTP1のサービスを呼び出す機能

  • XAインタフェース(xa_start、xa_end、xa_prepare、xa_commit、xa_rollback、およびxa_recover)を使用してOpenTP1に接続し、トランザクションを制御する

TP1-Bridge

  • HMP-PCTO上のAPからOpenTP1のサービスの呼び出しを橋渡しする機能。またはその機能を使ったKubernetesアプリケーションおよびコンテナ

  • Entity-Module、TP1-Acceptor、TP1-Converter、TP1-Adapter、およびTx+Paxos-Managerによって構成される

TP1-Converter

  • HMP-PCTO上のAPが扱うJSON形式のデータと、OpenTP1のAPが扱うバイナリ形式のデータの相互変換をする

  • uCosminexus Service Platform上で動作するサーブレット

Tx+Paxos-Manager

次の機能を持つSQL-ParticipantおよびTP1-Bridgeの構成要素

  • X/OpenのXA仕様に準拠したトランザクションマネージャの機能

  • Participantの機能

XID

  • トランザクションを一意に識別するための識別子

  • HMP-PCTOでのデータ構造は、X/Openトランザクション識別子XID構造のJavaマッピングで表現する

高速合意

補助合意不要で一貫した合意結果を獲得すること

コンテナ化されたアプリケーション

JavaアプリケーションやHMP-PCTOおよび関連するソフトウェアのファイルなどを、コンテナイメージとしてビルドしたもの

スパンイベント

  • Span内の構造化ログメッセージのこと

  • Spanに付加されるイベント名、タイムスタンプ、およびスパンタグで構成されるメタデータ

  • Jaegerの「Logs」

  • Azure Monitor Application Insightsの「Traceプロパティ」

  • Google Cloud PlatformのCloud Traceの「Time Events」

  • New Relicの「Span event」

スパンコンテキスト

  • Spanに関するコンテキストのこと

  • Spanを生成したサービスやアプリケーションのプロセスに関するKey-Valueのメタデータ

  • Jaegerの「Process」

  • Azure Monitor Application Insightsの「Internalプロパティ」

  • Google Cloud PlatformのCloud Traceの「トレースラベル」

  • New Relicの「Attribute」

スパンタグ

  • Spanの属性(アトリビュート)のこと

  • Spanに付加されるKey-Valueのメタデータ

  • Jaegerの「Tags」

  • Azure Monitor Application Insightsの「Custom Properties」

  • Google Cloud PlatformのCloud Traceの「トレースラベル」

  • New Relicの「Attribute」

分散合意(機能)

  • paxos commitでは複数のMediatorと複数のParticipant(Consensus Learner)で実現する

  • トランザクションの状態を複数のMediatorに分散冗長化し、一部のMediatorの故障を許容した上で(可用性向上)、複数のMediatorから得られるトランザクションの状態を、1以上のParticipant(Consensus Learner)で、一貫した合意結果として獲得し共有する機能

分散合意習得(機能)

Consensus Learnerのこと

分散合意習得方式

  • Consensus Learnerで一意となる合意結果を得るための方式

  • paxos commitではThreeQuarters合意とPrivilegedValue合意がある

補助合意

  • Consensus Learnerで、複数のMediatorの合意に不一致がある場合にConsensus Learner間で合意結果が一貫するように合意調整する機能

  • Consensus Learnerで、次の条件をすべて満たした場合に、合意結果が一貫するように合意調整する機能

    ・一部のMediatorの合意が受信できない

    ・受信できた合意だけでは合意結果の一貫性が担保できない

補助合意試行間隔タイマ

Consensus Learnerの補助合意の試行(補助合意可否の判定および補助合意リトライ)間隔タイマ

ルートXID(RootXID)

  • XIDのうち、グローバルトランザクションの基底となる識別子

  • X/Openトランザクション識別子XID構造のJavaマッピングのGlobalTransactionIdに相当する