JP7284791B2 - 分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法 - Google Patents
分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法 Download PDFInfo
- Publication number
- JP7284791B2 JP7284791B2 JP2021153818A JP2021153818A JP7284791B2 JP 7284791 B2 JP7284791 B2 JP 7284791B2 JP 2021153818 A JP2021153818 A JP 2021153818A JP 2021153818 A JP2021153818 A JP 2021153818A JP 7284791 B2 JP7284791 B2 JP 7284791B2
- Authority
- JP
- Japan
- Prior art keywords
- distributed transaction
- data consistency
- strategy
- feedback information
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法に関する。
クラウドネイティブやアジャイル開発の潮流を受け、マイクロサービスアーキテクチャの市場は成長が見込まれている。一方、マイクロサービス環境下における分散トランザクション(つまりマイクロサービス間のデータ整合性の維持)の複雑さが技術課題になっている。
クラウドネイティブを前提としたシステムでは、データ整合性の考え方として、Sagaパターン(トランザクションのワークフロー管理)と呼ばれる、アプリケーション実装でのデータ整合性維持が必要となる。従って、従来、ミドルウェアが担っていた処理についてアプリケーションの実装が必要となり、分散トランザクション処理の実行前・中・後での包括的な支援が必要となる。
ここで、Sagaパターンとは、複数の(マイクロ)サービスで実行される一連のローカルトランザクションとして分散トランザクションを管理する手法である。言い換えれば、Sagaパターンとは、ローカルトランザクションのワークフローにより(マイクロ)サービスをまたがるデータ整合性を維持する手法である。Sagaパターンでは、いずれかのローカルトランザクションが失敗した場合は、補償トランザクションにより以前の処理を打ち消す(例えばhttps://www.techscore.com/blog/2018/12/05/saga-in-microservices/参照)。Sagaパターンには、特定のサービスがワークフローを管理するOrchestration型と管理しないChoreography型の2つが主流である。以降、特記しない限り、本明細書における分散トランザクションシステムではOrchestration型のSagaパターンを用いるものとする。
また、マイクロサービス環境下における分散トランザクション処理として、Reconcileという処理が知られている。Reconcileは、データの突合処理、もしくは突合によるデータ不整合の修正処理であり、分散トランザクションのコンテキストにおいて、なんらかの理由で失敗したSagaに対し、データの突合処理を実施し、データの不整合を修正する処理である。
分散トランザクションシステムにおけるデータ整合性維持に関しては、特許文献1~特許文献3に開示された技術がある。特許文献1に開示された技術は、インダウトトランザクションとリカバリ情報とを突き合わせることによりインダウトトランザクションのコミット/ロールバックを決定するものであり、特許文献2に開示された技術は、サービス定義パッケージに基づきクラウド環境内にて適切なサービスを発見、構築、及び提供するものであり、特許文献3に開示された技術は、ルール表に基づきトランザクションを他のノードに事前に送付し、障害発生時に他のノードで処理を継続するものである。
特許文献1に開示された技術によりReconcileに必要な情報を出力し、特許文献2に開示された技術によりSagaオーケストレータサービス、Reconcileサービスを構築することによりフィードバック系を構築することができる。また、特許文献3に開示された技術によりトランザクション処理を他のノードに事前に送付することにより障害発生時も処理を継続することができる。
しかし、SagaやReconcileなど役割の異なるノードが混在し、かつ各ノードの存在有無が事前に決まっていない環境下において、各ノードの役割に応じた戦略を自立分散的に実施し、システム構成に応じた適切なフィードバック系を構成したいというニーズにはこれら技術は適用できない。
本発明は、上記事情に鑑みなされたものであり、その目的は、各データ整合性維持技術が実装されたサービス間の疎結合性を維持(=相手の存在を前提としない)しつつ、一貫したデータ整合性を維持(存在するサービス同士は適切に連携させる)することにより、システム全体のデータの整合性を維持することが可能な分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法を提供することにある。
上記課題を解決すべく、本発明の一つの観点に従う分散トランザクションシステムは、1以上の装置とこれら装置の間を通信可能に接続するネットワークからなり、これら装置の間で分散トランザクションを提供する分散トランザクションシステムであって、分散トランザクションシステムにおいて存在する各装置が提供するサービスを管理するサービス情報管理装置と、分散トランザクションシステムにおいてデータの整合性維持に関わる戦略が記述されたデータ整合性戦略を管理するデータ整合性戦略管理装置と、分散トランザクションを実行し、この分散トランザクションの実行後に、データ整合性戦略管理装置及びサービス情報管理装置に問い合わせを行い、データ整合性戦略、サービス情報、及び実行結果に基づきデータ整合性維持に関わるフィードバック情報を出力する分散トランザクション処理装置と、フィードバック情報を取得し、データ整合性維持に関わる処理を実行する1以上のデータ整合性維持装置とを含むことを特徴とする。
本発明によれば、各データ整合性維持技術が実装されたサービス間の疎結合性を維持(=相手の存在を前提としない)しつつ、一貫したデータ整合性を維持(存在するサービス同士は適切に連携させる)することにより、システム全体のデータの整合性を維持することが可能な分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法を実現することができる。
以下、本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、以下の説明において、「メモリ」は、1以上のメモリであり、典型的には主記憶デバイスでよい。メモリ部における少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
また、以下の説明において、「プロセッサ」は、1以上のプロセッサである。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、GPU(Graphics Processing Unit)のような他種のプロセッサでもよい。少なくとも1つのプロセッサは、シングルコアでもよいしマルチコアでもよい。以下の説明では、プロセッサの代表としてCPUを例に挙げて説明するが、上述したように、プロセッサはCPUに限定されない。
また、少なくとも1つのプロセッサは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサでもよい。
本開示において、記憶装置(ストレージ)は、1台のHDD(Hard Disk Drive)やSSD(Solid State Drive)等の1台のストレージドライブ、複数台のストレージドライブを含むRAID装置、及び複数のRAID装置を含む。また、ドライブがHDDである場合には、例えば、SAS(Serial Attached SCSI) HDDを含んでもよく、NL-SAS(ニアラインSAS) HDDを含んでもよい。
また、以下の説明において、「xxxテーブル」といった表現により、入力に対して出力が得られる情報を説明することがあるが、この情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。
また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明において、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶資源(例えば、メモリ)及び/又は通信インターフェースデバイス(例えば、ポート)を用いながら行うため、処理の主語がプログラムとされてもよい。プログラムを主語として説明された処理は、プロセッサまたはそのプロセッサを有する計算機が行う処理としてもよい。
なお、以降の説明において、“○○部は”と動作主体を記した場合、それは、ストレージシステムを構成する情報処理装置のプロセッサがメモリに格納されたプログラムである○○部の処理内容を読み出してロードしたうえで○○部の機能(詳細後記)を実現することを意味する。
プログラムは、計算機のような装置にインストールされてもよいし、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体にあってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
なお、実施例を説明する図において、同一の機能を有する箇所には同一の符号を付し、その繰り返しの説明は省略する。
また、以下の説明において、同種の要素を区別しないで説明する場合には、参照符号(又は、参照符号のうちの共通符号)を使用し、同種の要素を区別して説明する場合は、要素の識別番号(又は参照符号)を使用することがある。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
図1は、実施形態に係る分散トランザクションシステムの一例である情報処理システムの概略構成を示す図である。
本実施形態の情報処理システム1は、サービス情報管理装置10、データ整合性戦略管理装置20、分散トランザクション処理装置30、データ整合性維持装置40及び参加サービス装置50を有する。
参加サービス装置50は、本実施例では複数存在しているが、図1(及び図2)では1台についてのみその構成を図示している。個々の参加サービス装置50は、分散トランザクション処理装置30からの指示により少なくとも1つのローカルトランザクションを実行する。ローカルトランザクションは参加サービス装置50の参加サービス処理部51により実行され、ローカルトランザクション実行に必要なデータ等はデータベース52に格納されている。
サービス情報管理装置10は、情報処理システム1システムにおいて存在する各装置20~50が提供する(マイクロ)サービスを管理する装置であり、実際の動作はサービス情報管理部11により実行され、各装置20~50が提供するサービスに関する情報であるサービス情報はサービス情報格納部12に格納される。
データ整合性戦略管理装置20は、システムにおいてデータの整合性維持に関わる戦略が記述されたデータ整合性戦略を管理する。具体的には、データ整合性戦略管理装置20は、ユーザから提供(入力)されたデータ整合性戦略を格納して要求があればこれを出力するとともに、データ整合性戦略の実行結果も格納する。これらデータ整合性戦略の管理処理はデータ整合性戦略管理部21により行われ、データ整合性戦略はデータ整合性戦略格納部22に格納され、データ整合性戦略実行結果はデータ整合性戦略実行結果格納部23に格納される。
分散トランザクション処理装置30は、ユーザから分散トランザクションの実行指示があったら、個々の参加サービス装置50に対してローカルトランザクションの実行を指示することで分散トランザクションを実行する。そして、この分散トランザクションの実行後に、データ整合性戦略管理装置20及びサービス情報管理装置10に問い合わせを行い、データ整合性戦略、サービス情報、及び実行結果に基づきデータ整合性維持に関わるフィードバック情報を出力する。分散トランザクション処理は分散トランザクション処理部31により実行され、サービス情報管理装置10からサービス情報を取得する処理はサービス情報取得部32により行われ、データ整合性戦略管理装置20からデータ整合性戦略を取得する処理はデータ整合性戦略取得部33により行われ、フィードバック情報出力処理はフィードバック情報出力部34により行われる。
データ整合性維持装置40は、参加サービス装置50により実行されるローカルトランザクションのデータ整合性維持処理を行う。ここにいうデータ整合性維持処理には、Reconcile等が含まれる。また、データ整合性維持装置は、分散トランザクション処理装置30からフィードバック情報を取得し、データ整合性維持に関わる処理を実行する。データ整合性維持装置40は、本実施例では複数存在しているが、図1(及び図2)では1台についてのみその構成を図示している。データ整合性維持処理はデータ整合性維持部41により実行され、サービス情報管理装置10からサービス情報を取得する処理はサービス情報取得部42により実行され、データ整合性戦略管理装置20からデータ整合性戦略を取得する処理はデータ整合性戦略取得部43により実行され、ユーザにフィードバック情報を出力する処理はフィードバック情報出力部44により実行される。
図2は、実施形態に係る情報処理システム1のハードウェア構成の一例を示す図である。情報処理システム1を構成する各装置10~50は同一の構成を有するので、サービス情報管理装置10を例に挙げて説明する。
サービス情報管理装置10は、各種情報処理が可能な装置から構成される。サービス情報管理装置10は、プロセッサの一例であるCPU100、主メモリ101、ストレージ102、キーボード103、マウス104、ディスプレイ105及び通信インターフェースデバイスであるNIC(Network Interface Controller)106を有する。
プロセッサ100は、既に説明したように、例えばCPU(Central Processing Unit)、GPU(Graphic Processing Unit)、FPGA(Field-Programmable Gate Array)等である。主メモリ101は、例えばRAM(Random Access Memory)、ROM(Read Only Memory)等の半導体記憶媒体である。ストレージ102は、既に説明したように、例えばHDD(Hard Disk Drive)などの磁気記憶媒体、を有する。また、DVD(Digital Versatile Disk)等の光ディスク及び光ディスクドライブの組み合わせもストレージ102として用いられる。その他、磁気テープメディアなどの公知の記憶媒体もストレージ102として用いられる。
ストレージ102には、ファームウェアなどのプログラムが格納されている。サービス情報管理装置10の動作開始時(例えば電源投入時)にファームウェア等のプログラムをこのストレージ102から読み出して主メモリ101に展開して実行し、サービス情報管理装置10の全体制御を行う。また、ストレージ102には、プログラム以外にもサービス情報管理装置10の各処理に必要なデータ等が格納されている。
情報処理システム1を構成する各装置10~50はネットワーク60により相互に接続されており、相互に通信可能である。
次に、図3のシーケンス図及び図4~図12を参照して、本実施形態の情報処理システム1の動作について説明する。
まず、ユーザはデータ整合性戦略を入力する(ステップS300)。入力されたデータ整合性戦略はデータ整合性戦略管理装置20のデータ整合性戦略格納部22に格納される。
図5は、データ整合性戦略管理装置20のデータ整合性戦略格納部22に格納されているデータ整合性戦略テーブル500の一例を示す図である。
データ整合性戦略テーブル500は、エントリとして、ID501、Type502及びStrategy503を有する。ID501は個々のデータ整合性戦略を特定するためのIDであり、Type502は、データ整合性戦略が実行されるそれぞれのサービスの種類であり、Strategy503はType502で特定されるサービスにおいて実行されるデータ整合性戦略の具体的内容である。
ここで、データ整合性戦略テーブル500のStrategy503に記載されているSagaフローについて図4を参照して説明する。既に説明したように、Sagaフローは、それぞれのローカルトランザクションをワークフローとして記述したものである。図4に示す例では、ローカルトランザクション1、ローカルトランザクション2及びローカルトランザクション3の順にローカルトランザクションが実行される。個々のローカルトランザクションは、これも既に説明したように、少なくとも1つの参加サービス装置50により実行され、好ましくは、個々のローカルトランザクションは1つの参加サービス装置50により実行される。
また、データ整合性戦略管理装置20のデータ整合性戦略格納部22に格納されているデータ整合性戦略には、図6に示すフィードバック情報変換処理テーブル600が含まれていてもよい。
図6に示すフィードバック情報変換処理テーブル600は、エントリとして、Type601、Target602及びProgram603を有する。Type601は実行されるサービスのタイプであり、Target602は、Type601により特定されるサービスの出力先であり、Program603はフィードバック情報の出力情報変換処理の際に行われるプログラム及び変換処理である。Program603の具体的内容の一例を図7に示す。
図3に戻って、ユーザは分散トランザクション処理装置30に対して分散トランザクションの実行を指示する(ステップS301)。分散トランザクションの実行を要求された分散トランザクション処理装置30は、データ整合性戦略管理装置20に対して、このデータ整合性戦略管理装置20に格納されたデータ整合性戦略の出力を要求する(ステップS302)。データ整合性戦略管理装置20は、分散トランザクション処理装置30からの要求に応じてデータ整合性戦略(データ整合性戦略テーブル500)を分散トランザクション処理装置30に送出する(ステップS303)。
次いで、分散トランザクション処理装置30は、ステップS303で入手したデータ整合性戦略を参照しつつ、各参加サービス装置50に対してローカルトランザクションの実行を要求し(ステップS304)、参加サービス装置50は、分散トランザクション処理装置30からの要求に基づいてローカルトランザクションを実行し、その実行結果を分散トランザクション処理装置30に返信する(ステップS305)。
次いで、分散トランザクション処理装置30は、サービス情報管理装置10に対してサービス情報を要求し(ステップS306)、サービス情報管理装置10は、サービス情報格納部12に格納されているサービス情報を分散トランザクション処理装置30に送出する(ステップS307)。
図10は、サービス情報管理装置10のサービス情報格納部12に格納されているサービス情報(サービス情報管理テーブル)1000の一例を示す図である。
サービス情報管理テーブル1000は、エントリとして、Type1001、Service Name1002及びIP1003を有する。Type1001はサービスのタイプであり、Service Name1002はType1001に記述されたサービスの名称であり、IP1003はサービスが所在する情報処理システム1内のIPアドレスである。
次いで、分散トランザクション処理装置30のフィードバック情報出力部34はフィードバック情報を生成し(ステップS308)、生成したフィードバック情報をデータ整合性維持装置40に出力する(ステップS309)。フィードバック情報の詳細については後述する。これにより、フィードバック情報がローカルトランザクションが実行されるたびに、順次生成されることとなる。
データ整合性維持装置40は、データ整合性戦略テーブル500のType501及びStrategy503の組み合わせから、このデータ整合性戦略テーブル500に規定されるデータ整合性戦略を実行する(ステップS310)。なお、データ整合性戦略の実行タイミングは、このタイミングに限らず、例えば、テストの場合には、システム更新のタイミングで実行されてもよい。次いで、データ整合性維持装置40は、フィードバック情報変換処理テーブル600のType601及びTarget602を参照し、これらの組み合わせで特定されるProgram603を特定し、このProgram603を実行する。そして、データ整合性維持装置40は、Program603の実行結果に基づいてフィードバック情報を生成し(ステップS311)、ユーザ及び他のデータ整合性維持装置40に出力する(ステップS312、S313)。
一方、分散トランザクション処理装置30は、分散トランザクションの実行結果をデータ整合性戦略管理装置20に出力する(ステップS314)。
この後、データ整合性維持装置40はデータ整合性維持処理実行結果を出力し、このデータ整合性維持処理実行結果はデータ整合性戦略管理装置20のデータ整合性戦略実行結果格納部23に格納される(ステップS315)。
データ整合性戦略管理装置20のデータ整合性戦略実行結果格納部23に格納されているデータ整合性戦略実行結果(データ整合性戦略実行結果テーブル)1100の一例を図11に示す。
図11に示すデータ整合性戦略実行結果テーブル1100は、エントリとして、戦略ID1101、実行回数1102、手動介入回数1103、平均回復時間1104及びSaga実行結果1105を有する。
戦略ID1101は、データ整合性戦略テーブル500のID501と同じであり、実行回数1102は、戦略ID1101により特定されるデータ整合性戦略の実行回数であり、手動介入回数1103は、データ整合性維持処理の結果、ユーザによる手動介入がなされた回数であり、平均回復時間1104は、手動介入の結果データ整合がされるまでの時間であり、Saga実行結果1105は、直近のSagaフローの実行結果である。
次いで、データ整合性戦略管理装置20は、上位のデータ整合性戦略テーブルに基づいて上位のデータ整合性戦略を実行する(ステップS316)。
図12は、上位のデータ整合性戦略テーブル1200の一例を示す図である。上位のデータ整合性戦略テーブル1200は、エントリとして、ID1201及びStrategy1202を有する。
図12に示す上位のデータ整合性戦略テーブル1200のStrategy1202を参照して、データ整合性戦略管理装置20により実行される上位のデータ整合性戦略の具体的一例について説明する。
まず、データ整合性戦略管理装置20は、データ整合性戦略管理装置20のデータ整合性戦略実行結果格納部23に格納されているデータ整合性戦略実行結果テーブル1100を取得する。次いで、データ整合性戦略管理装置20は、取得したデータ整合性戦略実行結果テーブル1100において、手動介入回数1103が10回以上であり、かつ、平均回復時間1104が1.0時間以上である(下位の)データ整合性戦略があるか否かを判定する。そして、判定が「ある」ならば、データ整合性戦略実行結果テーブル1100のSaga実行結果1105を集約し、フィードバック情報を生成して(図3のステップS317)、生成したフィードバック情報をユーザに出力する(ステップS318)。
図8は、分散トランザクション処理装置30によるデータ整合性戦略実行処理を示すフローチャートである。
まず、分散トランザクション処理装置30は、データ整合性戦略管理装置20に対してデータ整合性戦略を要求し、データ整合性戦略管理装置20からデータ整合性戦略を応答として受信する(ステップS800)。次いで、分散トランザクション処理装置30は、例えば図4に示すようなワークフローであるSagaフローを実行し、このワークフローに規定された順にそれぞれの参加サービス装置50に対してローカルトランザクションの実行を要求し、それぞれの参加サービス装置50から結果を受信する(ステップS801)。
次いで、分散トランザクション処理装置30は、参加サービス装置50に実行を要求したSagaフォローの実行が失敗したか否かを判定する(ステップS802)。そして、Sagaフローの実行が失敗したと判定したら(ステップS802においてYES)、プログラムはステップS803に進み、Sagaフローの実行が成功したと判定したら(ステップS802においてNO)、図8のフローチャートに示す処理を終了する。
ステップS803では、参加サービス装置50に対してReconcileサービスの情報を要求し、参加サービス装置50からこの応答を受信する。
次いで、分散トランザクション処理装置30は、参加サービス装置50にReconcileサービスがあるか否かを判定する(ステップS804)。そして、Reconcileサービスがあると判定したら(ステップS804においてYES)、プログラムはステップS805に進み、Reconcileサービスがないと判定したら(ステップS804においてNO)、図8のフローチャートに示す処理を終了する。
ステップS805では、分散トランザクション処理装置30は、データ整合性戦略に含まれるフィードバック情報変換処理(テーブル600)に基づいて、フィードバック情報を生成する。次いで、分散トランザクション処理装置30は、データ整合性維持装置40に対して、ステップS805で生成したフィードバック情報を出力する(ステップS806)。
そして、分散トランザクション処理装置30は、データ整合性戦略管理装置20に対して分散トランザクション実行結果を出力する(ステップS807)。
図9は、フィードバック情報の一例を示す図である。
本実施例におけるフィードバック情報900は、エントリとして、Item901及びContent902を有する。本実施例のフィードバック情報900は情報処理システム1におけるデータ整合性維持に関わるものであり、Item901はデータ整合性維持処理を特定するための名称、Content902はItem901により特定される処理の内容である。
既に説明したように、分散トランザクション処理装置30はサービス情報管理装置10からサービス情報(管理テーブル1000)を取得し、このサービス情報に基づいてフィードバック情報900を生成する。より詳細には、分散トランザクション処理装置30はデータ整合性戦略(テーブル500)を参照し、このデータ整合性戦略(テーブル500)の処理結果に対応したサービスの有無をサービス情報(管理テーブル1000)を用いて確認し、その確認結果をフィードバック情報900として生成する。図9に示す例では、図9の中央上部に示すように、Sagaフローが実在すること、そして、Sagaフローの所在先がフィードバック情報900に記述される。
次いで、データ整合性維持装置40は、分散トランザクション処理装置30からフィードバック情報900を受信し、データ整合性維持処理を行った上で、このデータ整合性維持処理結果の少なくとも一部をフィードバック情報900に追記する。図9に示す例では、データ整合性維持装置40は、Sagaフローの実行ログを参照し、Sagaフローの実行結果をフィードバック情報900に追記する。
従って、Reconcileを行う際には、このフィードバック情報900を参照することで、Reconcileに必要な情報等を入手することができる。
図13は、ユーザがデータ整合性戦略管理装置20にデータ整合性戦略を入力する際に、データ整合性戦略管理装置20から送信される入力画面の一例を示す図である。図13に示すデータ整合性戦略管理画面1300は、データ整合性戦略テーブル500を入力するためのデータ整合性戦略編集画面1301と、フィードバック情報変換処理テーブル600を入力するためのフィードバック変換処理編集画面1302とを有する。
図14は、データ整合性戦略管理装置20から出力されるフィードバック情報をユーザが閲覧する際に、データ整合性戦略管理装置20から送信される出力画面の一例を示す図である。図14に示すフィードバック情報出力画面1400は、フィードバック情報として、Sagaフローである分散トランザクションシナリオ及び現在障害が発生しているローカルトランザクションを示す分散トランザクションシナリオ画面1401と、上位のデータ整合性戦略の実行結果であるシステム拡張案を示すシステム拡張案画面1402と、データ整合性戦略実行結果テーブル1100を示す実行履歴画面1403とを有する。
このように構成される本実施形態によれば、各データ整合性維持技術が実装されたサービス間の疎結合性を維持(=相手の存在を前提としない)しつつ、一貫したデータ整合性を維持(存在するサービス同士は適切に連携させる)することにより、システム全体のデータの整合性を維持することが可能となる。
なお、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)、Python等の広範囲のプログラム又はスクリプト言語で実装できる。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
1…情報処理システム 10…サービス情報管理装置 20…データ整合性戦略管理装置 30…分散トランザクション処理装置 40…データ整合性維持装置 50…参加サービス装置 60…ネットワーク 500…データ整合性戦略テーブル 600…フィードバック情報変換処理テーブル 900…フィードバック情報 1000…サービス情報管理テーブル 1100…データ整合性戦略実行結果テーブル 1200…データ整合性戦略テーブル 1300…データ整合性戦略管理画面 1400…フィードバック情報出力画面
Claims (10)
- 1以上の装置とこれら装置の間を通信可能に接続するネットワークからなり、これら装置の間で分散トランザクションを提供する分散トランザクションシステムであって、
前記分散トランザクションシステムにおいて存在する前記各装置が提供するサービスをサービス情報として管理するサービス情報管理装置と、
前記分散トランザクションシステムにおいてデータの整合性維持に関わる戦略が記述されたデータ整合性戦略を管理するデータ整合性戦略管理装置と、
分散トランザクションを実行し、この分散トランザクションの実行後に、前記データ整合性戦略管理装置及びサービス情報管理装置に問い合わせを行い、前記データ整合性戦略、前記サービス情報、及び前記分散トランザクションの実行結果に基づきデータ整合性維持に関わるフィードバック情報を出力する分散トランザクション処理装置と、
前記フィードバック情報を取得し、前記データ整合性維持に関わる処理を実行する1以上のデータ整合性維持装置と、
を含むことを特徴とする分散トランザクションシステム。 - 前記データ整合性戦略は、前記データ整合性維持に関わる処理の種別と、前記フィードバック情報を取得する前記データ整合性維持装置が提供する処理の種別と、それらの組み合わせで規定されるフィードバック情報変換処理プログラムと、を含む
ことを特徴とする請求項1記載の分散トランザクションシステム。 - 前記データ整合性戦略管理装置は、各分散トランザクション処理に対応する下位の前記データ整合性戦略と、前記下位のデータ整合性戦略に基づいた実行結果を用いてシステム構成の変更に関わる前記フィードバック情報の出力を制御する上位の前記データ整合性戦略と、を管理する
ことを特徴とする請求項1記載の分散トランザクションシステム。 - 前記データ整合性維持装置の処理がリコンサイル(突合でのデータ不整合修正)、テスト(データ不整合防止のテストシナリオ生成)、及びFault Injection(データ不整合防止の障害シナリオ生成)の少なくとも一つである
ことを特徴とする請求項1記載の分散トランザクションシステム。 - 前記データ整合性維持装置は、前記フィードバック情報の出力に、ユーザに対するフィードバック情報の出力を含む
ことを特徴とする請求項1記載の分散トランザクションシステム。 - 1以上の装置とこれら装置の間を通信可能に接続するネットワークからなり、これら装置の間で分散トランザクションを提供する分散トランザクションシステムにおける分散トランザクション処理方法であって、
前記分散トランザクションシステムにおいて存在する前記各装置が提供するサービスをサービス情報として管理し、
前記分散トランザクションシステムにおいてデータの整合性維持に関わる戦略が記述されたデータ整合性戦略を管理し、
分散トランザクションを実行し、この分散トランザクションの実行後に、前記データ整合性戦略、前記サービス情報、及び前記分散トランザクションの実行結果に基づきデータ整合性維持に関わるフィードバック情報を出力し、
データ整合性維持装置により、前記フィードバック情報を取得し、前記データ整合性維持に関わる処理を実行する
ことを特徴とする分散トランザクションシステムにおける分散トランザクション処理方法。 - 前記データ整合性戦略は、前記データ整合性維持に関わる処理の種別と、前記フィードバック情報を取得する前記データ整合性維持装置が提供する処理の種別と、それらの組み合わせで規定されるフィードバック情報変換処理プログラムと、を含む
ことを特徴とする請求項6記載の分散トランザクションシステムにおける分散トランザクション処理方法。 - 各分散トランザクション処理に対応する下位の前記データ整合性戦略と、前記下位のデータ整合性戦略に基づいた実行結果を用いてシステム構成の変更に関わる前記フィードバック情報の出力を制御する上位の前記データ整合性戦略と、を管理する
ことを特徴とする請求項6記載の分散トランザクションシステムにおける分散トランザクション処理方法。 - 前記データ整合性維持装置の処理がリコンサイル(突合でのデータ不整合修正)、テスト(データ不整合防止のテストシナリオ生成)、及びFault Injection(データ不整合防止の障害シナリオ生成)の少なくとも一つである
ことを特徴とする請求項6記載の分散トランザクションシステムにおける分散トランザクション処理方法。 - 前記フィードバック情報の出力に、ユーザに対するフィードバック情報の出力を含む
ことを特徴とする請求項6記載の分散トランザクションシステムにおける分散トランザクション処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021153818A JP7284791B2 (ja) | 2021-09-22 | 2021-09-22 | 分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法 |
US17/682,201 US11474997B1 (en) | 2021-09-22 | 2022-02-28 | Distributed transaction system and distributed transaction processing method in distributed transaction system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021153818A JP7284791B2 (ja) | 2021-09-22 | 2021-09-22 | 分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023045424A JP2023045424A (ja) | 2023-04-03 |
JP7284791B2 true JP7284791B2 (ja) | 2023-05-31 |
Family
ID=83603588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021153818A Active JP7284791B2 (ja) | 2021-09-22 | 2021-09-22 | 分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11474997B1 (ja) |
JP (1) | JP7284791B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004260279A (ja) | 2003-02-24 | 2004-09-16 | Nippon Telegr & Teleph Corp <Ntt> | ピアグループの構成方法、属性情報更新方法、分断検出方法およびピアならびに該方法を実行するためのプログラム |
JP2010146103A (ja) | 2008-12-16 | 2010-07-01 | Nec Corp | 補償処理手順方式選択装置、方法、プログラム及びそれを記録した記録媒体、並びにワークフローシステム |
JP2010157202A (ja) | 2008-12-31 | 2010-07-15 | Sap Ag | 分散トランザクション回復システムおよび方法 |
JP2012230667A (ja) | 2011-04-26 | 2012-11-22 | Sap Ag | 高負荷のビジネスプロセスのスケーラビリティ |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4551662B2 (ja) | 2003-07-11 | 2010-09-29 | 新日鉄ソリューションズ株式会社 | 計算機システム、計算機、データ通信方法及びプログラム |
US9760584B2 (en) | 2012-03-16 | 2017-09-12 | Oracle International Corporation | Systems and methods for supporting inline delegation of middle-tier transaction logs to database |
US10122596B2 (en) | 2012-09-07 | 2018-11-06 | Oracle International Corporation | System and method for providing a service management engine for use with a cloud computing environment |
US10270841B1 (en) * | 2016-03-04 | 2019-04-23 | Quest Software Inc. | Systems and methods of real-time container deployment |
CN109947845A (zh) * | 2018-11-23 | 2019-06-28 | 阿里巴巴集团控股有限公司 | 一种区块链存证方法、装置和计算机设备 |
US11445035B2 (en) * | 2020-01-24 | 2022-09-13 | Enterpriseweb, Llc | Graph knowledge base for modeling and processing stateful cloud-native applications |
-
2021
- 2021-09-22 JP JP2021153818A patent/JP7284791B2/ja active Active
-
2022
- 2022-02-28 US US17/682,201 patent/US11474997B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004260279A (ja) | 2003-02-24 | 2004-09-16 | Nippon Telegr & Teleph Corp <Ntt> | ピアグループの構成方法、属性情報更新方法、分断検出方法およびピアならびに該方法を実行するためのプログラム |
JP2010146103A (ja) | 2008-12-16 | 2010-07-01 | Nec Corp | 補償処理手順方式選択装置、方法、プログラム及びそれを記録した記録媒体、並びにワークフローシステム |
JP2010157202A (ja) | 2008-12-31 | 2010-07-15 | Sap Ag | 分散トランザクション回復システムおよび方法 |
JP2012230667A (ja) | 2011-04-26 | 2012-11-22 | Sap Ag | 高負荷のビジネスプロセスのスケーラビリティ |
Also Published As
Publication number | Publication date |
---|---|
US11474997B1 (en) | 2022-10-18 |
JP2023045424A (ja) | 2023-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200092178A1 (en) | Decision tables and flow engine for building automated flows within a cloud based development platform | |
EP3428811A1 (en) | Database interface agent for a tenant-based upgrade system | |
CN105339939B (zh) | 对在线热备份数据库的复制 | |
Neamtiu et al. | Cloud software upgrades: Challenges and opportunities | |
CN102999406B (zh) | 从硬件故障模式的增强转储数据收集的方法和*** | |
US7809663B1 (en) | System and method for supporting the utilization of machine language | |
US7984115B2 (en) | Extensible application platform | |
US20110029854A1 (en) | Web content management | |
CN104281468A (zh) | 分布式虚拟机图像管理的方法和*** | |
BRPI0618711A2 (pt) | reposicionamento dinámico de fluxo de trabalho por usuários finais | |
BR112019025269A2 (pt) | microprocessador incluindo um modelo corporativo | |
US20190188049A1 (en) | Apparatus and method to select services for executing a user program based on a code pattern included therein | |
CN101763301B (zh) | 用于测试引导镜像的***和方法 | |
EP2610762A1 (en) | Database version management system | |
US11893458B2 (en) | Machine learning lifecycle management | |
US20090150859A1 (en) | Dynamic validation of models using constraint targets | |
US20200104404A1 (en) | Seamless migration of distributed systems | |
JP2018060570A (ja) | 単一テーブルから複数テーブルへの参照データセグメント化 | |
CN104731641A (zh) | 用于复制计算***的批量作业的方法与*** | |
CN101727318A (zh) | 用于促进持久化应用编程接口的方法和装置 | |
Seybold et al. | Experiences of models@ run-time with EMF and CDO | |
US11741393B2 (en) | Machine learning lifecycle management | |
JP7284791B2 (ja) | 分散トランザクションシステム及び分散トランザクションシステムにおける分散トランザクション処理方法 | |
EP3624027A1 (en) | Decision tables and flow engine for building automated flows within a cloud based development platform | |
US20120317073A1 (en) | Replication Support for Procedures with Arguments of Unsupported Types |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220309 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230425 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230519 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7284791 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |