(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-21
(45)【発行日】2024-03-29
(54)【発明の名称】分散トランザクション処理方法、端末およびコンピュータ読み取り可能な記憶媒体
(51)【国際特許分類】
G06F 16/27 20190101AFI20240322BHJP
G06F 16/23 20190101ALI20240322BHJP
【FI】
G06F16/27
G06F16/23
(21)【出願番号】P 2022579071
(86)(22)【出願日】2021-06-22
(86)【国際出願番号】 CN2021101470
(87)【国際公開番号】W WO2021259240
(87)【国際公開日】2021-12-30
【審査請求日】2022-12-21
(31)【優先権主張番号】202010576647.4
(32)【優先日】2020-06-22
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】511151662
【氏名又は名称】中興通訊股▲ふん▼有限公司
【氏名又は名称原語表記】ZTE CORPORATION
【住所又は居所原語表記】ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan Shenzhen,Guangdong 518057 China
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(74)【代理人】
【識別番号】110002505
【氏名又は名称】弁理士法人航栄事務所
(72)【発明者】
【氏名】スイ ジアン
(72)【発明者】
【氏名】ルー チンユアン
(72)【発明者】
【氏名】ジン ウェンウェン
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特開2017-027326(JP,A)
【文献】特開2016-095638(JP,A)
【文献】特開2004-158977(JP,A)
【文献】特開2011-215923(JP,A)
【文献】立岡 佐到士,エンティティBeanのクラスタリング CMPエンティティBeanの排他制御,JAVA PRESS,日本,(株)技術評論社,2004年10月15日,第38巻,p.200-206
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
グローバルトランザクション管理マスターノードが分散トランザクション固有識別子情報の増分情報を計算ノードに同期するステップであって、前記分散トランザクション固有識別子情報はグローバルトランザクション管理マスターノードによって設けられるステップと、
前記計算ノードがストレージノードから操作待ちデータの分散トランザクション固有識別子情報を取得して、操作待ちデータの検証を行うステップと、
検証結果に基づき操作待ちデータを処理するステップと、を含む
分散トランザクション処理方法。
【請求項2】
前記分散トランザクション固有識別子情報の増分情報は、分散トランザクション固有識別子情報新規追加情報および分散トランザクション固有識別子情報解放情報を含む
請求項1に記載の分散トランザクション処理方法。
【請求項3】
前記グローバルトランザクション管理マスターノードが前記分散トランザクション固有識別子情報の増分情報を前記計算ノードに同期すると同時に、前記グローバルトランザクション管理マスターノードはさらに、前記分散トランザクション固有識別子情報の増分情報をスレーブノードに同期する
請求項1に記載の分散トランザクション処理方法。
【請求項4】
操作待ちデータの検証を行うステップは、
前記計算ノードが、ローカルで同期された分散トランザクション固有識別子情報の増分情報に基づき、アクティブな分散トランザクション固有識別子情報リストを取得することと、
前記操作待ちデータの分散トランザクション固有識別子情報が前記アクティブな分散トランザクション固有識別子情報リストにあるか否かを判断することと、を含む
請求項1~3の何れか一項に記載の分散トランザクション処理方法。
【請求項5】
検証結果に基づき操作待ちデータを処理するステップは、
前記操作待ちデータの分散トランザクション固有識別子情報が前記アクティブな分散トランザクション固有識別子情報リストにないことに応答して、前記計算ノードが前記操作待ちデータを直接操作するか、または前記操作待ちデータを直接クライアントに返すことを含む
請求項4に記載の分散トランザクション処理方法。
【請求項6】
検証結果に基づき操作待ちデータを処理するステップは、
前記操作待ちデータの分散トランザクション固有識別子情報が前記アクティブな分散トランザクション固有識別子情報リストにあることに応答して、前記計算ノードが前記操作待ちデータの対応するトランザクションを保留にすることを含む
請求項4に記載の分散トランザクション処理方法。
【請求項7】
前記計算ノードが前記操作待ちデータの対応するトランザクションを保留にした後、時間閾値内において、グローバルトランザクション管理マスターノードが同期した前記操作待ちデータの分散トランザクション固有識別子情報解放情報を受信したことに応答して、前記操作待ちデータを直接操作するか、または前記操作待ちデータを直接クライアントに返すことを含む
請求項6に記載の分散トランザクション処理方法。
【請求項8】
前記計算ノードが前記操作待ちデータの対応するトランザクションを保留にした後、時間閾値内において、グローバルトランザクション管理マスターノードが同期した前記操作待ちデータの分散トランザクション固有識別子情報解放情報を受信していないことに応答して、タイムアウトエラー情報をクライアントに返す
請求項6に記載の分散トランザクション処理方法。
【請求項9】
プロセッサおよびメモリを含み、
前記プロセッサはメモリに記憶された1つまたは複数のコンピュータプログラムを実行して、請求項1~8の何れか一項に記載の分散トランザクション処理方法を実現するためのものである
端末。
【請求項10】
1つまたは複数のコンピュータプログラムが記憶され、前記1つまたは複数のコンピュータプログラムが1つまたは複数のプロセッサにより実行される時に、前記1つまたは複数のプロセッサに請求項1~8の何れか一項に記載の分散トランザクション処理方法を実現させる
コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願の実施例は分散トランザクション処理分野に関するものであるがこれに限らず、具体的に分散トランザクション処理方法、端末および記憶媒体に関するものである。
【背景技術】
【0002】
市場における分散データベース製品はますます増えており、各製品間の競争も非常に激しく、高性能の分散トランザクション並行処理方式は競争力の核心である。関連技術において、計算ノードは、現在処理しているトランザクションがアクティブであるか否かをグローバルトランザクション管理マスターノードに繰り返し確認する必要があり、このことは計算ノードとグローバルトランザクション管理マスターノードとの間のネットワークトラフィックの負担を大きくし、また、計算ノードはストレージノードから操作待ちデータを繰り返し取得する必要もある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
如何にして分散データベースにおける計算ノードとグローバルトランザクション管理マスターノードとのやり取り回数を減らし、分散トランザクション処理時間を短縮し、計算ノードの並行能力を高めるか、如何にして計算ノードのCPU使用率を節減して分散トランザクション処理性能を効果的に向上させるかということが解決の待たれる課題となっている。
【課題を解決するための手段】
【0004】
本願は、グローバルトランザクション管理マスターノードが分散トランザクション固有識別子情報の増分情報を計算ノードに同期するステップであって、前記分散トランザクション固有識別子情報はグローバルトランザクション管理マスターノードによって設けられるステップと、前記計算ノードがストレージノードから操作待ちデータの分散トランザクション固有識別子情報を取得して、操作待ちデータの検証を行うステップと、検証結果に基づき操作待ちデータを処理するステップと、を含む、分散トランザクション処理方法を提供する。
【0005】
本願は、プロセッサおよびメモリを含み、前記プロセッサはメモリに記憶された1つまたは複数のコンピュータプログラムを実行して、本願の分散トランザクション処理方法を実現するためのものである、端末をさらに提供する。
【0006】
本願は、1つまたは複数のコンピュータプログラムが記憶され、前記1つまたは複数のコンピュータプログラムが1つまたは複数のプロセッサにより実行されると、本願の分散トランザクション処理方法を実現する、コンピュータ読み取り可能な記憶媒体をさらに提供する。
【図面の簡単な説明】
【0007】
【
図1】本願が提供する分散トランザクション処理方法の基本フロー図である。
【
図2】本願が提供するグローバルトランザクション管理マスターノードが全ての計算ノードおよびスレーブノードに同時に増分情報を同期する構造概念図である。
【
図3】本願が提供する分散トランザクション処理過程における各ノードの相互作用概念図である。
【
図4】本願が提供する分散トランザクション処理方法のフロー図である。
【発明を実施するための形態】
【0008】
本願の目的、技術案、利点をより明確にするために、以下に具体的な実施の形態と図面を組み合わせて本願の実施例についてさらに詳細に説明する。ここで説明する具体的な実施例は本願の解釈にのみ用いられ、本願を限定するためのものではないと理解すべきである。
【0009】
分散データベースにおける計算ノードとグローバルトランザクション管理マスターノードとのやり取り回数を減らすために、本願の実施例は分散トランザクション処理方法を提供する。
図3は本願が提供する分散トランザクション処理過程における各ノードの相互作用概念図であり、
図1は本願が提供する分散トランザクション処理方法の基本フロー図であって、当該方法はステップS101~S103を含む。
【0010】
ステップS101において、グローバルトランザクション管理マスターノードが分散トランザクション固有識別子情報の増分情報を計算ノードに同期し、分散トランザクション固有識別子情報はグローバルトランザクション管理マスターノードによって設けられる。
【0011】
なお、全ての分散トランザクション個別識別子情報はみなグローバルトランザクション管理マスターノードにて生成され、異なるトランザクションを識別するために用いられると理解すべきである。分散トランザクション固有識別子情報の増分情報は、分散トランザクション固有識別子情報新規追加情報および分散トランザクション固有識別子情報解放情報を含む。計算ノードが、ローカルで分散トランザクション固有識別子情報解放情報を同期して得た場合、当該トランザクションは非アクティブ状態になっているということを示し、つまり、計算ノードは操作処理を直接行うことができる。
【0012】
図2はグローバルトランザクション管理マスターノードが全ての計算ノードおよびスレーブノードに同時に増分情報を同期する構造概念図である。
図2に示すように、グローバルトランザクション管理マスターノードは、リアルタイムで分散トランザクション固有識別子情報の増分情報を全ての計算ノードに同期すると同時に、グローバルトランザクション管理マスターノードはさらに、分散トランザクション固有識別子情報の増分情報をリアルタイムでスレーブノードに同期する。
【0013】
グローバルトランザクション管理マスターノードは高い有用性を具備する。本方法は、1つのマスターノード+複数のスレーブノードというモデルに適用することができ、複数のマスターノード+複数のスレーブノードというモデルにも適用することができる。計算ノードはグローバルトランザクション管理マスターノードから分散トランザクション固有識別子情報を同期するだけで、スレーブノードとしては使用されない。
【0014】
ステップS102において、計算ノードがストレージノードから操作待ちデータの分散トランザクション固有識別子情報を取得して、操作待ちデータの検証を行う。
【0015】
操作待ちデータの検証を行うステップは、計算ノードが、ローカルで同期された分散トランザクション固有識別子情報の増分情報に基づき、アクティブな分散トランザクション固有識別子情報リストを取得することと、操作待ちデータの分散トランザクション固有識別子情報がアクティブな分散トランザクション固有識別子情報リストにあるか否かを判断することと、を含んでよい。
【0016】
ステップS103において、検証結果に基づき操作待ちデータを処理する。
【0017】
操作待ちデータの分散トランザクション固有識別子情報がアクティブな分散トランザクション固有識別子情報リストにない場合、計算ノードは操作待ちデータを直接操作するか、または操作待ちデータを直接クライアントに返す。
【0018】
操作待ちデータの分散トランザクション固有識別子情報がアクティブな分散トランザクション固有識別子情報リストにある場合、計算ノードは操作待ちデータの対応するトランザクションを保留にする。
【0019】
時間閾値tを設け、計算ノードが操作待ちデータの対応するトランザクションを保留にした後、時間閾値t内において、グローバルトランザクション管理マスターノードが同期した操作待ちデータの分散トランザクション固有識別子情報解放情報を受信した場合は、操作待ちデータの分散トランザクション固有識別子情報がアクティブな分散トランザクション固有識別子情報リストにないことを示し、操作待ちデータを直接操作するか、または操作待ちデータを直接クライアントに返す。
【0020】
計算ノードが操作待ちデータの対応するトランザクションを保留にした後、時間閾値t内において、グローバルトランザクション管理マスターノードが同期した操作待ちデータの分散トランザクション固有識別子情報解放情報を受信していない場合は、タイムアウトエラー情報をクライアントに返す。
【0021】
本願が提供する分散トランザクション処理方法によれば、グローバルトランザクション管理マスターノードが分散トランザクション固有識別子情報の増分情報をリアルタイムで計算ノードに同期し、計算ノードがストレージノードから操作待ちデータの分散トランザクション固有識別子情報を取得して、計算ノードがローカルに記憶した分散トランザクション固有識別子情報リストに基づき、操作待ちデータの検証を行って、検証結果に基づき操作待ちデータを処理する。分散データベースにおける計算ノードとグローバルトランザクション管理マスターノードとのやり取り回数を減らしている。グローバルトランザクション管理マスターノードが分散トランザクション固有識別子情報の増分情報を計算ノードに同期することで、計算ノードは、操作待ちデータの個別識別子情報をグローバルトランザクション管理マスターノードから繰り返し取得する必要がなくなり、計算ノードがアクティブなトランザクション個別識別子を繰り返し照会することによりトランザクション遅延が増えるという課題を解決しており、業務並行性は著しく向上し、計算ノードとグローバルトランザクション管理マスターノードとの間のネットワークトラフィックの負担を大幅に低減しており、これにより、計算ノードのネットワークトラフィックの負担を軽減している。処理待ちデータの分散トランザクション個別識別子情報がアクティブな分散トランザクション個別識別子情報リストにあることが検証された時に、計算ノードは操作待ちデータの対応するトランザクションを保留にし、計算ノードはストレージノードから繰り返しデータを取得する必要がなくなる。
【0022】
ここではクライアントにより計算ノードに更新(update)文を送信することを例として本願について説明する。
図4に示すように、本例示において、分散トランザクション処理方法は以下のステップ1~ステップ3を含む。
【0023】
ステップ1において、クライアントが計算ノードにupdate文を送信する(削除(delete)、選択(select)も同様である)。
【0024】
ステップ2において、計算ノードはupdateのwhere条件に基づき、同じwhere条件のselect ... for update文を生成し、当該select文はストレージノードにおいてupdate待ちの行の対応する分散トランザクション固有識別子の値が照会された時に主に用いられる。その後、固有識別子の値をローカルの分散トランザクション固有識別子アクティブリストと検証、比較し、ストレージノードにおいてupdate待ちの行の対応する分散トランザクション固有識別子がアクティブ状態であればupdate操作を保留にし、つまり、グローバルトランザクション管理マスターノードが同期する当該固有識別子の解放信号を受信するまで、トランザクションの実行を一時停止する。
【0025】
ステップ3において、ストレージノードのupdate待ちの行の対応するトランザクション固有識別子がアクティブでないと計算ノードが判断した時、または当該固有識別子の解放信号を受信した時、update文を引き続き実行し、ストレージノードにおけるデータを修正する。
【0026】
本願が提供する分散トランザクション処理方法によれば、グローバルトランザクション管理マスターノードが分散トランザクション固有識別子情報の増分情報をリアルタイムで計算ノードに同期し、計算ノードがストレージノードから操作待ちデータの分散トランザクション固有識別子情報を取得して、計算ノードがローカルに記憶した分散トランザクション固有識別子情報リストに基づき、操作待ちデータの検証を行って、検証結果に基づき操作待ちデータを処理する。分散データベースにおける計算ノードとグローバルトランザクション管理マスターノードとのやり取り回数を減らしている。グローバルトランザクション管理マスターノードが分散トランザクション固有識別子情報の増分情報を計算ノードに同期することで、計算ノードは、操作待ちデータの個別識別子情報をグローバルトランザクション管理マスターノードから繰り返し取得する必要がなくなり、計算ノードがアクティブなトランザクション個別識別子を繰り返し照会することによりトランザクション遅延が増えるという課題を解決しており、業務並行性は著しく向上し、計算ノードとグローバルトランザクション管理マスターノードとの間のネットワークトラフィックの負担を大幅に低減しており、これにより、計算ノードのネットワークトラフィックの負担を軽減している。処理待ちデータの分散トランザクション個別識別子情報がアクティブな分散トランザクション個別識別子情報リストにあることが検証された時に、計算ノードは操作待ちデータの対応するトランザクションを保留にし、計算ノードはストレージノードから繰り返しデータを取得する必要がなくなる。
【0027】
本願は端末をさらに提供する。
図5に示すように、当該端末はプロセッサ51と、メモリ52と、通信バス53を含む。
【0028】
通信バス53は、プロセッサ51とメモリ52との間の通信接続を実現するためのものである。
【0029】
プロセッサ51は、メモリ52に記憶された1つまたは複数のコンピュータプログラムを実行して、本願の分散トランザクション処理方法を実現するためのものである。
【0030】
本願はコンピュータ読み取り可能な記憶媒体をさらに提供し、当該コンピュータ読み取り可能な記憶媒体は、(コンピュータ読み取り可能な命令、データ構造、コンピュータモジュールまたはその他のデータのような)情報を記憶するための如何なる方法または技術においても実施される、揮発性または不揮発性の、リムーバブルまたは非リムーバブルな媒体である。コンピュータ読み取り可能な記憶媒体は、RAM(Random Access Memory、ランダムアクセスメモリ)、ROM(Read-Only Memory、リードオンリーメモリ)、EEPROM(Electrically Erasable Programmable read only memory、電気的に消去可能なプログラム可能な読み取り専用メモリ)、フラッシュメモリまたはその他のメモリ技術、CD-ROM(Compact Disc Read-Only Memory、光ディスク読み取り専用メモリ)、デジタル多目的ディスク(DVD)またはその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、その他の磁気ストレージデバイス、あるいは所望の情報を記憶でき、コンピュータによりアクセス可能な任意のその他の媒体を含むがこれらに限らない。
【0031】
本願のコンピュータ読み取り可能な記憶媒体は、1つまたは複数のコンピュータプログラムを記憶することができ、記憶された1つまたは複数のコンピュータプログラムがプロセッサにより実行されると、本願の分散トランザクション処理方法を実現する。
【0032】
上記にて開示した方法における全て、またはあるステップ、システム、装置内の機能モジュール/ユニットはソフトウェア(演算装置が実施可能なコンピュータプログラムコードを用いて実現できる)、ファームウェア、ハードウェアおよびその適切な組み合わせにより実施することができるということは当業者にとって自明である。ハードウェアの実施の形態において、上述の説明にて言及した機能モジュール/ユニット間の区分は必ずしも物理的構成要素の区分に対応するとは限らず、例えば、1つの物理的構成要素は複数の機能を有してよく、または1つの機能あるいはステップは若干の物理的構成要素の連携によって実行されてよい。ある物理的構成要素または全ての物理的構成要素は、中央処理器、データ信号処理器、マイクロプロセッサのようなプロセッサにより実行されるソフトウェアとして実施されてよく、またはハードウェアとして実施されてよく、あるいは専用集積回路のような集積回路として実現されてよい。
【0033】
このほか、通信媒体には一般的にコンピュータ読み取り可能な命令、データ構造、コンピュータプログラムモジュールまたは搬送波もしくはその他の伝送機構などの変調データ信号におけるその他のデータが含まれ、さらに任意のデータ配信媒体が含まれてよいということは当業者にとって公知の事項である。よって、本願は如何なる特定のハードウェアおよびソフトウェアの組み合わせにも制限されない。
【0034】
以上の内容は、具体的な実施の形態を組み合わせて本願の実施例についてなしたさらなる詳細な説明であって、本願の具体的な実施がこれらの説明にのみ限られると判断してはならない。本願の思想を逸脱しないことを前提として、当業者は若干の簡単な演繹または置き換えをなしてよく、これらも全て本願の請求範囲に属すると見なされる。