(57)【特許請求の範囲】
【請求項１】
トランザクション処理装置が実行するトランザクション処理方法であって、
処理対象トランザクションを受信するステップであり、前記処理対象トランザクションは、少なくとも2つのデータパーティションにおいて操作を実行するトランザクションである、ステップと、
前記少なくとも2つのデータパーティションに対応し且つ同じバージョン情報を有するデータスナップショットを取得するステップと、
前記少なくとも2つのデータパーティションに対応し且つ同じバージョン情報を有する前記データスナップショットに基づいて、前記処理対象トランザクションに対応する前記操作を実行するステップと
を含み、
前記処理対象トランザクションは、前記処理対象トランザクションのトランザクションタイプに基づいて読み取りトランザクションキュー又は書き込みトランザクションキューに追加され、
前記読み取りトランザクションキュー及び前記書き込みトランザクションキューは並列に処理される、方法。
【請求項２】
前記処理対象トランザクションは、前記少なくとも2つのデータパーティションにおいて読み取り操作を実行するトランザクションであり、
前記少なくとも2つのデータパーティションに対応し且つ同じバージョン情報を有するデータスナップショットを取得するステップは、
前記少なくとも2つのデータパーティションのそれぞれのデータスナップショットと、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットのバージョン情報とを取得するステップと、
前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットの前記バージョン情報に基づいて、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットが同じバージョン情報を有するか否かを検出するステップと、
検出結果が、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットが同じバージョンを有するものであることに応じて、前記少なくとも2つのデータパーティションにそれぞれ対応し且つ同じバージョン情報を有する前記データスナップショットが成功して取得されたと決定するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記少なくとも2つのデータパーティションに対応し且つ同じバージョンを有するデータスナップショットを取得するステップは、
前記検出結果が、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットが同じバージョンを有さないものである場合、以前のバージョンを有するデータパーティションのデータスナップショットと、再取得される前記データスナップショットのバージョン情報とを再取得するステップと、
再取得された前記データスナップショットの前記バージョン情報に基づいて、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットが同じバージョン情報を有すると決定するステップと
を更に含む、請求項２に記載の方法。
【請求項４】
前記データスナップショットの前記バージョン情報は、前記データスナップショットが生成されたときに前記データスナップショットに対応するデータパーティションへの最新の書き込みを実行する複数パーティション書き込みトランザクションの識別子を含み、前記複数パーティション書き込みトランザクションは、前記少なくとも2つのデータパーティションにおいて書き込み操作を実行するトランザクションである、請求項２又は３に記載の方法。
【請求項５】
前記処理対象トランザクションは、前記少なくとも2つのデータパーティションにおいて書き込み操作を実行するトランザクションであり、前記少なくとも2つのデータパーティションに対応し且つ同じバージョンを有する前記データスナップショットに基づいて、前記処理対象トランザクションに対応する前記操作を実行するステップは、
前記少なくとも2つのデータパーティションに対応し且つ同じバージョンを有する前記データスナップショット内の前記処理対象トランザクションに対応する前記書き込み操作を実行するステップと、
対応するデータパーティションにおけるデータとして、前記処理対象トランザクションに対応する前記書き込み操作が実行された後に取得されたデータスナップショットを記憶するステップと
を含む、請求項１に記載の方法。
【請求項６】
前記処理対象トランザクションは、前記少なくとも2つのデータパーティションにおいて書き込み操作を実行するトランザクションであり、当該方法は、
前記処理対象トランザクションに対応する前記書き込み操作が、前記少なくとも2つのデータパーティションにそれぞれ対応し且つ同じバージョンを有する前記データスナップショットに基づいてうまく実行された後に、前記少なくとも2つのデータパーティションにそれぞれ対応するバージョン情報を前記処理対象トランザクションの識別子で更新するステップを更に含む、請求項１に記載の方法。
【請求項７】
トランザクション処理装置であって、
処理対象トランザクションを受信するように構成されたトランザクション受信ユニットであり、前記処理対象トランザクションは、少なくとも2つのデータパーティションにおいて操作を実行するトランザクションである、トランザクション受信ユニットと、
前記少なくとも2つのデータパーティションに対応し且つ同じバージョンを有するデータスナップショットを取得するように構成されたスナップショット取得ユニットと、
前記少なくとも2つのデータパーティションに対応し且つ同じバージョンを有する前記データスナップショットに基づいて、前記処理対象トランザクションに対応する前記操作を実行するように構成された実行ユニットと
を含み、
前記処理対象トランザクションは、前記処理対象トランザクションのトランザクションタイプに基づいて読み取りトランザクションキュー又は書き込みトランザクションキューに追加され、
前記読み取りトランザクションキュー及び前記書き込みトランザクションキューは並列に処理される、装置。
【請求項８】
前記処理対象トランザクションは、前記少なくとも2つのデータパーティションにおいて読み取り操作を実行するトランザクションであり、
前記スナップショット取得ユニットは、
前記少なくとも2つのデータパーティションのそれぞれのデータスナップショットと、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットのバージョン情報とを取得し、
前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットの前記バージョン情報に基づいて、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットが同じバージョン情報を有するか否かを検出し、
検出結果が、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットが同じバージョンを有するものであることに応じて、前記少なくとも2つのデータパーティションにそれぞれ対応し且つ同じバージョン情報を有する前記データスナップショットが成功して取得されたと決定する
ように構成される、請求項７に記載の装置。
【請求項９】
前記スナップショット取得ユニットは、
前記検出結果が、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットが同じバージョンを有さないものである場合、以前のバージョンに対応するデータパーティションのデータスナップショットと、再取得される前記データスナップショットのバージョン情報とを再取得し、
再取得された前記データスナップショットの前記バージョン情報に基づいて、前記少なくとも2つのデータパーティションの前記それぞれのデータスナップショットが同じバージョン情報を有すると決定する
ように更に構成される、請求項８に記載の装置。
【請求項１０】
前記データスナップショットの前記バージョン情報は、前記データスナップショットが生成されたときに前記データスナップショットに対応するデータパーティションへの最新の書き込みを実行する複数パーティション書き込みトランザクションの識別子を含み、前記複数パーティション書き込みトランザクションは、前記少なくとも2つのデータパーティションにおいて書き込み操作を実行するトランザクションである、請求項８又は９に記載の装置。
【請求項１１】
前記処理対象トランザクションは、前記少なくとも2つのデータパーティションにおいて書き込み操作を実行するトランザクションであり、前記実行ユニットは、
前記少なくとも2つのデータパーティションに対応し且つ同じバージョンを有する前記データスナップショット内の前記処理対象トランザクションに対応する前記書き込み操作を実行し、
対応するデータパーティションにおけるデータとして、前記処理対象トランザクションに対応する前記書き込み操作が実行された後に取得されたデータスナップショットを記憶する
ように具体的に構成される、請求項７に記載の装置。
【請求項１２】
当該装置は、
前記処理対象トランザクションが前記少なくとも2つのデータパーティションにおいて書き込み操作を実行するトランザクションであるとき、前記処理対象トランザクションに対応する前記書き込み操作が、前記少なくとも2つのデータパーティションにそれぞれ対応し且つ同じバージョンを有する前記データスナップショットに対してうまく実行された後に、前記少なくとも2つのデータパーティションにそれぞれ対応するバージョン情報を前記処理対象トランザクションの識別子で更新するように構成された更新ユニット
を更に含む、請求項７に記載の装置。
【請求項１３】
トランザクション処理デバイスであって、
当該デバイスは、通信インタフェースと、プロセッサと、メモリとを含み、
前記メモリは、前記プロセッサにより実行できるプログラム又は命令を記憶し、
前記プロセッサは、前記メモリに記憶された前記プログラム又は前記命令を実行することにより、請求項１乃至６のうちいずれか１項に記載のトランザクション処理方法を実現するように、前記通信インタフェースを制御する、トランザクション処理デバイス。
【請求項１４】
コンピュータ読み取り可能記憶媒体であって、
前記コンピュータ読み取り可能記憶媒体は、実行可能プログラムを記憶し、前記実行可能プログラムは、請求項１乃至６のうちいずれか１項に記載のトランザクション処理方法を実現するように、プロセッサにより実行される、コンピュータ読み取り可能記憶媒体。
【請求項１５】
コンピュータに請求項１乃至６のうちいずれか１項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、データベース技術の分野に関し、特に、トランザクション処理方法、装置及びデバイスに関する。
【背景技術】
【０００２】
データベースのローカルトランザクションに基づく従来の解決策は、単一のサービスに対する一回の処理においてのみ一貫性を確保でき、複数の分散サービスの間で処理の一貫性を確保できない。したがって、多版型同時実行制御(multi-version  concurrency  control,  MVCC)を実現するために、分散サービスに対する処理の間の調整機構が確立される必要がある。
【０００３】
関連技術では、サーバは、複数パーティショントランザクション(トランザクション操作が複数のデータパーティションに関連する)と単一パーティショントランザクション(トランザクション操作が1つのデータパーティションのみに関連する)を区別し、データパーティション毎にトランザクションキューを設定する。トランザクションを受信したとき、サーバは、単一パーティショントランザクションを、対応するデータパーティションのトランザクションキューに追加し、複数パーティショントランザクションを、複数の対応するデータパーティションのトランザクションキューに追加する。トランザクションを処理するとき、サーバは、トランザクションキュー内のトランザクションを1つずつ処理する。データパーティションの間での一貫性を確保するために、サーバは、複数のデータパーティションにおける同じ複数パーティション書き込みトランザクションのために協調処理を実行する。
【０００４】
例えば、図１を参照すると、図１は、関連技術におけるトランザクション処理の概略図を示す。図１において、データパーティション1はトランザクションキュー1に対応し、データパーティション2はトランザクションキュー2に対応する。トランザクションキュー1は2つのトランザクション、すなわち、単一パーティショントランザクション1及び複数パーティショントランザクション2を含み、トランザクションキュー2は2つのトランザクション、すなわち、複数パーティショントランザクション2及び単一パーティショントランザクション3を含む。トランザクション処理プロセスにおいて、サーバは、まず、トランザクションキューに基づいて、キュー1内の単一パーティショントランザクション1とキュー2内の複数パーティショントランザクション2とを抽出する。この場合、サーバは、データパーティション1のための単一パーティショントランザクション1を実行し、データパーティション2のための複数パーティショントランザクション2を実行する。単一パーティショントランザクション1に対する処理を完了した後に、サーバは、トランザクションキュー1内の複数パーティショントランザクション2を抽出する。この場合、データパーティション1のための複数パーティショントランザクション2に対する処理が完了していないので、データパーティション2のための複数パーティショントランザクション2が完了していたとしても、サーバは、キュー2内の単一パーティショントランザクション3を直ちに実行せず、データパーティション2のための複数パーティショントランザクション2が完了した後に単一パーティショントランザクション3を実行する。
【０００５】
複数パーティショントランザクションは、通常では、長いトランザクションであり、通常では、比較的長い時間処理される。単一パーティショントランザクションは、通常では、短いトランザクションであり、比較的短い時間処理される。関連技術では、異なるトランザクションキュー内の同じ複数パーティショントランザクションが異なる処理プロセスを有するとき、複数パーティショントランザクションに対する処理が単一パーティショントランザクションをブロックし、低いシステムスループット及びサービスレベルという結果になり、ユーザ体験に影響を与える。
【発明の概要】
【０００６】
システムスループット及びサービスレベルを改善するために、この出願の実施形態は、トランザクション処理方法、装置及びデバイスを提供する。
【０００７】
第1の態様によれば、トランザクション処理方法が提供され、当該方法は、
処理対象トランザクションを受信するステップであり、処理対象トランザクションは、少なくとも2つのデータパーティションにおいて操作を実行するトランザクションである、ステップと、少なくとも2つのデータパーティションに対応し且つ一貫性を満たすデータスナップショットを取得するステップと、少なくとも2つのデータパーティションに対応し且つ一貫性を満たすデータスナップショットに基づいて、処理対象トランザクションに対応する操作を実行するステップとを含む。
【０００８】
第1の態様に記載の解決策では、少なくとも2つのデータパーティションに関連する複数パーティショントランザクションについて、一貫性を満たすデータスナップショットが、複数パーティショントランザクションに関連するデータパーティションのために取得され、複数パーティショントランザクションに対応する操作が、データスナップショットに基づいて実行される。書き込みトランザクションと読み取りトランザクションとの間のブロックを回避するための、読み取りトランザクションと書き込みトランザクションとの並列実行がサポートされ、それにより、システムスループット及びサービスレベルを改善する。
【０００９】
可能な設計では、処理対象トランザクションは、少なくとも2つのデータパーティションにおいて読み取り操作を実行するトランザクションである。
【００１０】
可能な設計では、少なくとも2つのデータパーティションに対応し且つ一貫性を満たすデータスナップショットを取得するステップは、少なくとも2つのデータパーティションのそれぞれのデータスナップショットと、少なくとも2つのデータパーティションのそれぞれのデータスナップショットのバージョン情報とを取得するステップと、少なくとも2つのデータパーティションのそれぞれのデータスナップショットのバージョン情報に基づいて、少なくとも2つのデータパーティションのそれぞれのデータスナップショットが一貫性を満たすか否かを検出するステップと、検出結果が、少なくとも2つのデータパーティションのそれぞれのデータスナップショットが一貫性を満たすものである場合、少なくとも2つのデータパーティションにそれぞれ対応し且つ一貫性を満たすデータスナップショットがうまく取得されると決定するステップとを含む。
【００１１】
上記の可能な設計の解決策では、複数パーティショントランザクションに対応するデータスナップショットが取得されるとき、データスナップショットのバージョン情報もまた取得され、一貫性を満たさないスナップショットを取得することを回避するために、複数のデータパーティションにそれぞれ対応するデータスナップショットが一貫性を満たすか否かが、データスナップショットの取得されたバージョン情報に基づいて検査される。
【００１２】
可能な設計では、少なくとも2つのデータパーティションに対応し且つ一貫性を満たすデータスナップショットを取得するステップは、検出結果が、少なくとも2つのデータパーティションのそれぞれのデータスナップショットが一貫性を満たさないものである場合、以前のバージョンを有するデータパーティションのデータスナップショットと、再取得されるデータスナップショットのバージョン情報とを再取得するステップと、再取得されたデータスナップショットのバージョン情報に基づいて、少なくとも2つのデータパーティションのそれぞれのデータスナップショットが一貫性を満たすか否かを検出するステップとを更に含む。
【００１３】
上記の可能な設計の解決策では、取得されたデータスナップショットが一貫性を満たさないとき、以前のデータスナップショットバージョンを有するデータパーティションについて、データパーティション及びバージョン情報に対応するデータスナップショットが再取得され、データスナップショットが一貫性を満たすか否かが更に決定される。
【００１４】
可能な設計では、当該方法は、検出結果が、少なくとも2つのデータパーティションのそれぞれのデータスナップショットが一貫性のないものである場合、以前のバージョンを有するデータパーティションの取得されたデータスナップショットを削除するステップを更に含む。
【００１５】
上記の可能な設計の解決策では、データスナップショットのバージョン情報は、データスナップショットが生成されたときにデータスナップショットに対応するデータパーティションへの最新の書き込みを実行する複数パーティション書き込みトランザクションの識別子を含み、複数パーティション書き込みトランザクションは、少なくとも2つのデータパーティションにおいて書き込み操作を実行するトランザクションである。
【００１６】
上記の可能な設計の解決策では、一貫性なく書き込まれたデータが複数パーティション読み取り操作中に読み取られることを回避し、データ読み取り精度を確保するために、最新の書き込みを実行する複数パーティション書き込みトランザクションの識別子が、データパーティションのバージョン情報として使用される。
【００１７】
可能な設計では、処理対象トランザクションは、少なくとも2つのデータパーティションにおいて書き込み操作を実行するトランザクションであり、少なくとも2つのデータパーティションに対応し且つ一貫性を満たすデータスナップショットに基づいて、処理対象トランザクションに対応する操作を実行するステップは、
少なくとも2つのデータパーティションに対応し且つ一貫性を満たすデータスナップショット内の処理対象トランザクションに対応する書き込み操作を実行するステップと、対応するデータパーティションにおけるデータとして、処理対象トランザクションに対応する書き込み操作が実行された後に取得されたデータスナップショットを記憶するステップとを含む。
【００１８】
可能な設計では、処理対象トランザクションは、少なくとも2つのデータパーティションにおいて書き込み操作を実行するトランザクションであり、当該方法は、
処理対象トランザクションに対応する書き込み操作が、少なくとも2つのデータパーティションにそれぞれ対応し且つ一貫性を満たすデータスナップショットに基づいてうまく実行された後に、少なくとも2つのデータパーティションにそれぞれ対応するバージョン情報を処理対象トランザクションの識別子で更新するステップを更に含む。
【００１９】
第2の態様によれば、トランザクション処理装置が提供され、当該装置は、第1の態様及び第1の態様の可能な設計の解決策によるトランザクション処理方法を実現する機能を有する。機能は、ハードウェアを使用することにより実現されてもよく、或いは、対応するソフトウェアを動作させることによりハードウェアにより実現されてもよい。ハードウェア又はソフトウェアは、機能に対応する1つ以上のユニットを含む。
【００２０】
第3の態様によれば、トランザクション処理デバイスが提供され、当該デバイスは、プロセッサと、メモリと、通信インタフェースとを含み、通信インタフェースは、プロセッサにより制御されるように構成され、当該デバイス内のプロセッサは、メモリに記憶されたプログラム又は命令を実行することにより、第1の態様及び第1の態様の可能な設計の解決策によるトランザクション処理方法を実現するように、通信インタフェースを制御する。
【００２１】
第4の態様によれば、コンピュータ読み取り可能記憶媒体が提供され、コンピュータ読み取り可能記憶媒体は、実行可能プログラムを記憶し、実行可能プログラムは、第1の態様及び第1の態様の可能な設計の解決策によるトランザクション処理方法を実現するように、プロセッサにより実行される。
【００２２】
第5の態様によれば、トランザクション処理システムが提供され、当該システムは、トランザクション処理装置と、少なくとも2つのデータパーティションとを含み、トランザクション処理装置は、第1の態様及び第1の態様の可能な設計の解決策によるトランザクション処理方法を実現するように構成される。
【図面の簡単な説明】
【００２３】
【図１】関連技術におけるトランザクション処理の概略図である。
【図２Ａ】この出願の実施形態におけるトランザクション処理システムのアーキテクチャ図である。
【図２Ｂ】この出願の実施形態における複数パーティショントランザクションに対する処理の概略フローチャートである。
【図３】この出願の例示的な実施形態によるトランザクション処理方法の方法フローチャートである。
【図４】図３に示す実施形態における第2の書き込みトランザクションキューとデータパーティションとの間の対応関係の概略図である。
【図５】図３に示す実施形態における第2の読み取りトランザクションキューとデータパーティションとの間の対応関係の概略図である。
【図６】図３に示す実施形態における第1のトランザクションキューと特殊パーティションとの間の対応関係の概略図である。
【図７】この出願の例示的な実施形態による参加ノードの概略構成図である。
【図８】この出願の例示的な実施形態によるトランザクション処理デバイスの概略実現図である。
【図９】この出願の例示的な実施形態によるトランザクション処理デバイスの概略実現図である。
【図１０】この出願の例示的な実施形態によるトランザクション処理デバイスの概略構造図である。
【図１１】この出願の例示的な実施形態によるトランザクション処理装置の構造ブロック図である。
【図１２】この出願の例示的な実施形態によるトランザクション処理システムのシステム構成図である。
【発明を実施するための形態】
【００２４】
この出願の目的、技術的解決策及び利点をより明確にするために、以下に、添付の図面を参照してこの出願の実現方式について詳細に更に説明する。
【００２５】
図２Ａは、この出願におけるトランザクション処理システムのアーキテクチャ図である。当該システムは、以下のデバイス、すなわち、トランザクション処理デバイス210及び少なくとも1つの端末デバイス220を含む。
【００２６】
トランザクション処理デバイス210は、汎用コンピュータ又はワークステーションでもよく、或いは、トランザクション処理デバイス210は、単一のサーバ、サーバクラスタ、クラウドコンピューティングセンタ等でもよい。
【００２７】
この出願の実施形態では、トランザクション処理デバイス210に対応するデータは、1つ以上のデータパーティションに分割されてもよい。パーティションは連続する値の範囲である。この出願のこの実施形態では、データパーティションは、特定のハッシュ(hash)アルゴリズムに基づいてハッシュ計算がデータフィールド(主キーフィールド又は非主キーフィールド)に対して実行された後に取得される連続区間でもよい。
【００２８】
トランザクション処理デバイス210は、有線又は無線ネットワークを通じて少なくとも1つの端末デバイス220に接続される。
【００２９】
トランザクション処理デバイス210は、少なくとも1つの端末デバイス220により送信されたトランザクションを処理するように構成される。少なくとも1つの端末デバイス220により送信されたトランザクションは、単一パーティショントランザクション又は複数パーティショントランザクションでもよい。他の観点からは、少なくとも1つの端末デバイス220により送信されたトランザクションは、読み取りトランザクション又は書き込みトランザクションでもよい。
【００３０】
実際の用途の中では、同じデータパーティションについて、書き込みトランザクションは、データパーティションに記憶されたデータを変更するが、読み取りトランザクションは、データパーティションに記憶されたデータを変更しない。したがって、書き込みトランザクション及び読み取りトランザクションは、実際には並列に実行できる。したがって、図２Ｂを参照すると、図２Ｂは、この出願の実施形態における複数パーティショントランザクションに対する処理の概略フローチャートである。図２Ｂに示すように、トランザクション処理デバイス210がトランザクションを処理するとき、複数パーティショントランザクションに対する処理のステップは以下の通りである。
【００３１】
ステップ21:処理対象トランザクションを受信し、処理対象トランザクションは、少なくとも2つのデータパーティションにおいて操作を実行するトランザクションである。
【００３２】
ステップ22:少なくとも2つのデータパーティションに対応し且つ一貫性を満たすデータスナップショットを取得する。
【００３３】
ステップ23:少なくとも2つのデータパーティションに対応し且つ一貫性を満たすデータスナップショットに基づいて、処理対象トランザクションに対応する操作を実行する。
【００３４】
具体的には、この出願のこの実施形態では、読み取り操作又は書き込み操作を実行するとき、トランザクション処理デバイスは、データパーティションにおいて操作を直接実行せず、データパーティションに対応するデータスナップショットにおいて操作を実行する。1つのデータパーティションについて、データスナップショットは、1つの書き込みトランザクション及び少なくとも1つの読み取りトランザクションのために同時に提供でき、すなわち、1つの書き込みトランザクションに対する処理及び少なくとも1つの読み取りトランザクションに対する処理が同時にサポートできる。具体的には、データパーティションに対する書き込みトランザクション及び読み取りトランザクションは互いにブロックせず、それにより、システムスループット及びサービスレベルを改善する。
【００３５】
図３は、この出願の例示的な実施形態によるトランザクション処理方法の方法フローチャートである。当該方法は、図２Ａに示すシステム内のトランザクション処理デバイス210に適用されてもよい。図３に示すように、トランザクション処理方法は以下のステップを含んでもよい。
【００３６】
ステップ301:端末デバイスにより送信された処理対象トランザクションを受信し、処理対象トランザクションが複数パーティショントランザクションである場合にはステップ302を実行し、或いは、処理対象トランザクションが単一パーティショントランザクションである場合にはステップ303を実行する。
【００３７】
単一パーティショントランザクションは、単一のデータパーティションにおいて操作を実行するトランザクションであり、複数パーティショントランザクションは、少なくとも2つのデータパーティションにおいて操作を実行するトランザクションである。
【００３８】
より具体的には、単一パーティション読み取りトランザクションは、関連する単一のデータパーティションにおいて読み取り操作を実行するトランザクションであり、単一パーティション書き込みトランザクションは、関連する単一のデータパーティションにおいて書き込み操作を実行するトランザクションである。対応して、複数パーティション読み取りトランザクションは、少なくとも2つの関連するデータパーティションにおいて読み取り操作を実行するトランザクションであり、複数パーティション書き込みトランザクションは、少なくとも2つの関連するデータパーティションにおいて書き込み操作を実行するトランザクションである。
【００３９】
この出願のこの実施形態では、端末デバイスは、トランザクション処理要求をトランザクション処理デバイスに送信してもよく、トランザクション処理要求は、処理対象トランザクションを含む。
【００４０】
トランザクション処理要求は、パーティション指示情報を含んでもよく、パーティション指示情報は、処理対象トランザクションが単一パーティショントランザクションであるか複数パーティショントランザクションであるかを示してもよい。
【００４１】
任意選択で、トランザクション処理要求は、パーティション指示情報を含まなくてもよく、パーティション指示情報は、トランザクション処理要求内のキー情報を解析することにより、トランザクション処理デバイスにより取得されてもよい。
【００４２】
ステップ302:複数パーティショントランザクションのトランザクションタイプに基づいて、複数パーティショントランザクションを第1の読み取りトランザクションキュー又は第1の書き込みトランザクションキューに追加する。
【００４３】
トランザクション処理要求は、トランザクションのトランザクションタイプを更に含んでもよく、或いは、トランザクション処理デバイスは、対応するトランザクションタイプを決定するために、処理対象トランザクションに基づいて分析を実行してもよい。
【００４４】
この出願のこの実施形態におけるトランザクションキューは、2つのレベルのキューに分類されてもよい。複数パーティショントランザクションを受信したとき、トランザクション処理デバイスは、まず、複数パーティショントランザクションを第1レベルのキューに追加し、次いで、その後の並列処理プロセスにおいて、第1レベルのキュー内の複数パーティショントランザクションを第2レベルのキューに追加する。第1レベルのキューは、第1の読み取りトランザクションキュー及び第1の書き込みトランザクションキューである。第2レベルのキューは、各データパーティションに対応する第2の読み取りトランザクションキュー及び第2の書き込みトランザクションキューである。
【００４５】
第1レベルのキューは、第1の読み取りトランザクションキュー及び/又は第1の書き込みトランザクションキューを含む。トランザクション処理デバイスが複数パーティショントランザクションを受信したとき、複数パーティショントランザクションのトランザクションタイプが読み取りトランザクションである場合、複数パーティショントランザクションは、第1の読み取りトランザクションキューに追加される。そうでなく、複数パーティショントランザクションのトランザクションタイプが書き込みトランザクションである場合、複数パーティショントランザクションは、第1の書き込みトランザクションキューに追加される。
【００４６】
ステップ303:単一パーティショントランザクションのトランザクションタイプに基づいて、単一パーティショントランザクションを、対応するデータパーティションの第2の読み取りトランザクションキュー又は第2の書き込みトランザクションキューに追加する。
【００４７】
この出願のこの実施形態では、各データパーティションは、1つの第2の書き込みトランザクションキューのみに対応するが、各第2の書き込みトランザクションキューは、1つ以上のデータパーティションに対応してもよい。トランザクション処理デバイスが単一パーティショントランザクションを受信したとき、単一パーティショントランザクションが書き込みトランザクションである場合、単一パーティショントランザクションは、単一パーティショントランザクションに対応する第2の書き込みトランザクションキューに追加される。
【００４８】
例えば、図４を参照すると、図４は、この出願の実施形態における第2の書き込みトランザクションキューとデータパーティションとの間の対応関係の概略図を示す。図４(a)に示すように、データパーティション1及びデータパーティション2は、同じ第2の書き込みトランザクションキュー(書き込みトランザクションキュー1)に対応してもよい。具体的には、データパーティション1に対する単一パーティション書き込みトランザクションとデータパーティション2に対する単一パーティション書き込みトランザクションとの双方は、書き込みトランザクションキュー1に追加される。代替として、図４(b)に示すように、2つのデータパーティションは、1つの第2の書き込みトランザクションキューにそれぞれ対応してもよい(具体的には、データパーティション1は書き込みトランザクションキュー1に対応し、データパーティション2は書き込みトランザクションキュー2に対応する)。具体的には、データパーティション1に対する単一パーティション書き込みトランザクションは、書き込みトランザクションキュー1に追加され、データパーティション2に対する単一パーティション書き込みトランザクションは、書き込みトランザクションキュー2に追加される。
【００４９】
データパーティションと第2の読み取りトランザクションキューとの間の対応関係は限定されず、1対1、1対多、又は多対多の関係でもよい。トランザクション処理デバイスが単一パーティショントランザクションを受信したとき、単一パーティショントランザクションが読み取りトランザクションである場合、単一パーティショントランザクションは、単一パーティショントランザクションに対応する第2の読み取りトランザクションキューに追加される。単一パーティショントランザクションが複数の第2の読み取りトランザクションキューに対応するとき、単一パーティショントランザクションは、複数の対応する第2の読み取りトランザクションキューのうち1つのみに追加される。
【００５０】
例えば、図５を参照すると、図５は、この出願の実施形態における第2の読み取りトランザクションキューとデータパーティションとの間の対応関係の概略図を示す。図５(a)に示すように、データパーティション1及びデータパーティション2は、同じ第2の読み取りトランザクションキュー(読み取りトランザクションキュー1)に対応してもよい。具体的には、データパーティション1に対する単一パーティション読み取りトランザクションとデータパーティション2に対する単一パーティション読み取りトランザクションとの双方は、読み取りトランザクションキュー1に追加される。代替として、図５(b)に示すように、2つのデータパーティションは、1つの第2の読み取りトランザクションキューにそれぞれ対応してもよい(具体的には、データパーティション1は読み取りトランザクションキュー1に対応し、データパーティション2は読み取りトランザクションキュー2に対応する)。具体的には、データパーティション1に対する単一パーティション読み取りトランザクションは、読み取りトランザクションキュー1に追加され、データパーティション2に対する単一パーティション読み取りトランザクションは、読み取りトランザクションキュー2に追加される。代替として、図５(c)に示すように、データパーティション1は、読み取りトランザクションキュー1と読み取りトランザクションキュー2との双方に対応してもよい。具体的には、データパーティション1に対する単一パーティション読み取りトランザクションは、読み取りトランザクションキュー1又は読み取りトランザクションキュー2に追加されてもよい。代替として、図５(d)に示すように、データパーティション1は、読み取りトランザクションキュー1と読み取りトランザクションキュー2との双方に対応してもよく、データパーティション2もまた、読み取りトランザクションキュー1と読み取りトランザクションキュー2との双方に対応してもよい。具体的には、データパーティション1に対する単一パーティション読み取りトランザクションは、読み取りトランザクションキュー1又は読み取りトランザクションキュー2に追加されてもよく、データパーティション2に対する単一パーティション読み取りトランザクションもまた、読み取りトランザクションキュー1又は読み取りトランザクションキュー2に追加されてもよい。
【００５１】
任意選択で、データパーティションと第1のトランザクションキューとの間に対応関係がないが、第1のトランザクションキューは、特殊フラグを有する特殊パーティションを割り当てられてもよい。特殊パーティションは、データを記憶するために使用されず、特殊パーティションの特殊フラグは、データパーティション又は特殊パーティションと区別するために使用される。
【００５２】
図６を参照すると、図６は、この出願の実施形態における第1のトランザクションキューと特殊パーティションとの間の対応関係の概略図を示す。図６(a)に示すように、特殊パーティションは、書き込み特殊パーティションと読み取り特殊パーティションとに分割され、1つの書き込み特殊パーティション及び1つの第1の書き込みトランザクションキューが存在し、これらは1対1の対応関係にある。全ての複数パーティション書き込みトランザクションは、書き込み特殊パーティションに対応する第1の書き込みトランザクションキューに追加される。図６(b)に示すように、1つ以上の第1の読み取りトランザクションキューが存在し(2つが図中に示されている)、各第1の読み取りトランザクションキューは1つの読み取り特殊パーティションに対応する(図に示すように、第1の読み取りトランザクションキュー1は読み取り特殊パーティション1に対応し、第1の読み取りトランザクションキュー2は読み取り特殊パーティション2に対応する)。複数パーティション読み取りトランザクションについて、複数パーティショントランザクションは、第1の読み取りトランザクションキュー1に追加されてもよく、或いは、第1の読み取りトランザクションキュー2に追加されてもよい。
【００５３】
書き込み特殊パーティションに対応する第1の書き込みトランザクションキューは、特殊書き込みキューとして第2の書き込みトランザクションキューに追加されてもよい点に留意すべきである。
【００５４】
同様に、読み取り特殊パーティションに対応する第1の読み取りトランザクションキューは、特殊読み取りキューとして第2の読み取りトランザクションキューに追加されてもよい。
【００５５】
ステップ304:読み取りトランザクションキュー及び書き込みトランザクションキューを並列に処理する。
【００５６】
この出願のこの実施形態では、ステップ302及びステップ303において、トランザクション処理デバイスが読み取りトランザクションキュー及び書き込みトランザクションキューを並列に処理するとき、トランザクション処理デバイスは、同じ書き込みトランザクションキューにおいてトランザクションを直列に処理する。具体的には、書き込みトランザクションキュー内の複数の書き込みトランザクションについて、トランザクション処理デバイスは、前の書き込みトランザクションに対する処理を完了した後にのみ、書き込みトランザクションキューにおいて次の書き込みトランザクションを処理する。トランザクション処理デバイスは、同じ読み取りトランザクションキュー内の読み取りトランザクションを直列に処理してもよく、或いは、トランザクション処理デバイスは、同じ読み取りトランザクションキュー内の読み取りトランザクションを並列に処理してもよい。例えば、読み取りトランザクションキューについて、トランザクション処理デバイスは、複数のスレッドを使用することにより、読み取りトランザクションキュー内の複数の読み取りトランザクションを同時に処理してもよい。
【００５７】
この出願のこの実施形態では、トランザクション処理デバイスは、データスナップショットを使用することによりトランザクションを処理してもよい。さらに、この出願のこの実施形態は、複数パーティション読み取りトランザクション及び複数パーティション書き込みトランザクションに対する処理に関連しており、データ一貫性の原則が複数パーティショントランザクションを処理するプロセスにおいて考慮される必要がある。したがって、この出願のこの実施形態では、トランザクションがデータスナップショットを使用することにより処理されるとき、取得されたデータスナップショットが一貫性を満たすことが確保される必要がある。具体的な処理プロセスは以下の通りでもよい。
【００５８】
1.単一パーティション読み取りトランザクション又は単一パーティション書き込みトランザクションについての処理
【００５９】
単一パーティション読み取りトランザクション又は単一パーティション書き込みトランザクションを処理するとき、トランザクション処理デバイスは、単一パーティション読み取りトランザクション又は単一パーティション書き込みトランザクションに対応するデータパーティションのデータスナップショットを取得し、データスナップショットをうまく取得した後に、データスナップショットに基づいてトランザクションの読み取り又は書き込みを実行してもよい。
【００６０】
具体的には、単一パーティション書き込みトランザクションが処理されるとき、上記のいずれかの第2の書き込みトランザクションキューについて、トランザクション処理デバイスは、第2の書き込みトランザクションキュー内の処理位置に到達する単一パーティション書き込みトランザクションを取得し(例えば、処理位置は、キューのキュー先頭位置でもよい)、単一パーティション書き込みトランザクションに対応するデータパーティションのデータスナップショットを取得し、単一パーティション書き込みトランザクションに対応する書き込みデータを取得されたデータスナップショットに書き込み、対応するデータパーティション内のデータとして、データが書き込まれた後に取得されたデータスナップショットを記憶する。データをデータスナップショットに書き込み、データパーティション内のデータとしてデータスナップショットを記憶するステップは、書き込みトランザクションのコミット(commit)と呼ばれてもよい。
【００６１】
同様に、単一パーティション読み取りトランザクションが処理されるとき、上記のいずれかの第2の読み取りトランザクションキューについて、トランザクション処理デバイスは、第2の読み取りトランザクションキューの処理位置に到達する単一パーティション読み取りトランザクションを取得し、単一パーティション読み取りトランザクションに対応するデータパーティションのデータスナップショットを取得し、取得されたデータスナップショットから単一パーティション読み取りトランザクションに対応するデータを読み取り、読み取られたデータを対応する端末デバイスに送信し、データスナップショットを削除する。
【００６２】
単一パーティショントランザクションは、単一のデータパーティションにのみ関連し、一貫性は、単一のデータパーティションのデータスナップショットについて考慮される必要はない。したがって、この出願のこの実施形態では、処理対象トランザクションが1つのデータパーティションのみに関連するとき、処理対象トランザクションに対応する取得されたデータスナップショットは、確実に一貫性を満たすと考えられてもよい。
【００６３】
2.複数パーティション読み取りトランザクションについての処理
【００６４】
読み取りトランザクションキュー内のいずれかの複数パーティショントランザクションについて、トランザクション処理デバイスは、複数パーティショントランザクションに対応するデータパーティションを決定し、データパーティションにそれぞれ対応し且つ一貫性を満たすデータスナップショットを取得し、データパーティションのそれぞれのデータスナップショットに対して複数パーティショントランザクションに対応する読み取り操作を実行してもよい。
【００６５】
本発明のこの実施形態では、データパーティションにそれぞれ対応するデータスナップショットが一貫性を満たすことは、データパーティションのうちいずれか2つについて、2つのデータパーティションのデータスナップショットが取得されたとき、2つのデータパーティションの双方に関連する最新の複数パーティション書き込みトランザクションの書き込みが2つのデータパーティションにおいて完了したことを意味する。
【００６６】
具体的には、第1の読み取りトランザクションキュー内の複数パーティショントランザクションについて、トランザクション処理デバイスは、第1の読み取りトランザクションキュー内の処理位置に到達する複数パーティショントランザクションを取得し、取得された複数パーティショントランザクションを、複数パーティショントランザクションに対応する第2の読み取りトランザクションキューに追加してもよい。複数パーティショントランザクションが第2の読み取りトランザクションキュー内の処理位置に到達したとき、トランザクション処理デバイスは、複数パーティショントランザクションに対応するデータパーティションのそれぞれのデータスナップショットを取得する。代替として、第1の読み取りトランザクションキュー内の処理位置に到達する複数パーティショントランザクションを取得した後に、トランザクション処理デバイスは、複数パーティショントランザクションに対応するデータパーティションのそれぞれのデータスナップショットを直接取得してもよい。
【００６７】
複数パーティション読み取りトランザクションは、複数のデータパーティション内のデータに対して読み取り操作を実行することであり、この出願のこの実施形態における読み取りトランザクション及び書き込みトランザクションは並列に処理され、複数パーティション書き込みトランザクションは、異なるデータパーティションについて確実に同じcommit時間を有するとは限らない。したがって、複数パーティション書き込みトランザクションはまた、外部にとって順番に見える可能性があり、特定の時点に、同じ複数パーティション読み取りトランザクションに対応する異なるデータパーティションについて取得されたデータスナップショットは、一貫性を満たさない。この場合、取得されたデータスナップショットに基づいて直接読み取られたデータは、一貫性のないものである可能性がある。したがって、この出願のこの実施形態では、複数パーティション読み取りトランザクションに関連する少なくとも2つのデータパーティションに対応し且つ一貫性を満たすデータスナップショットを取得するとき、トランザクション処理デバイスは、少なくとも2つのデータパーティションのそれぞれのデータスナップショットと、少なくとも2つのデータパーティションのそれぞれのデータスナップショットのバージョン情報とを取得し、データパーティションのそれぞれのデータスナップショット内のデータのバージョン情報に基づいて、データパーティションのそれぞれのデータスナップショットが一貫性を満たすか否かを検出し、データパーティションのそれぞれのデータスナップショットが一貫性を満たす場合、データパーティションのそれぞれのデータスナップショットに対して複数パーティショントランザクションに対応する読み取り操作を別々に実行するステップを実行してもよい。そうでなく、データパーティションのそれぞれのデータスナップショットが一貫性を満たさない場合、以前のバージョン(すなわち、最新のバージョンではない)有し且つデータバージョン情報に対応するデータパーティションについて、トランザクション処理デバイスは、以前のデータバージョンを有する取得されたデータスナップショットを削除し、データパーティションのデータスナップショットを再取得し、再取得されたデータスナップショット内のデータのバージョン情報に基づいて、データパーティションのデータスナップショットが一貫性があるか否かを検出する。
【００６８】
この出願のこの実施形態では、データスナップショット内のデータのバージョン情報は、データスナップショットが生成されるときに、データスナップショットに対応するデータパーティションへの最新の書き込みを実行する複数パーティショントランザクション(すなわち、複数パーティション書き込みトランザクション)の識別子を含む。
【００６９】
複数パーティショントランザクションを受信した後に、トランザクション処理デバイスは、対応する識別子を複数パーティショントランザクションに割り当ててもよい。具体的には、複数パーティショントランザクションの識別子は、複数パーティショントランザクションのID又は固有の番号でもよい。
【００７０】
さらに、異なる複数パーティショントランザクション識別子は、異なる複数パーティショントランザクションを処理する順序を区別するために使用されてもよい。例えば、複数パーティショントランザクション識別子はIDである。トランザクション処理デバイスが、トランザクションタイプが書き込みトランザクションである複数パーティショントランザクションにIDを割り当てるとき、複数パーティショントランザクションに割り当てられるIDは1から増加する。より小さいIDを有する複数パーティショントランザクションは、より早く処理され、より早いデータバージョンに対応する。より大きいIDを有する複数パーティショントランザクションは、より遅く処理され、より遅いデータバージョンに対応する。
【００７１】
3.複数パーティション書き込みトランザクションについての処理
【００７２】
書き込みトランザクションキュー内のいずれかの処理対象トランザクション(すなわち、複数パーティション書き込みトランザクション)について、トランザクション処理デバイスは、複数パーティション書き込みトランザクションに対応する少なくとも2つのデータパーティションを決定し、少なくとも2つのデータパーティションのそれぞれのデータスナップショットを取得し、少なくとも2つのデータパーティションのそれぞれのデータスナップショットに対して複数パーティション書き込みトランザクションに対応する書き込み操作を別々に実行し、少なくとも2つのデータパーティションのそれぞれのデータスナップショットに対して書き込み操作を別々に完了した後に、少なくとも2つのデータパーティション内のそれぞれのデータとして、少なくとも2つのデータパーティションのそれぞれのデータスナップショットを記憶してもよい。
【００７３】
この出願のこの実施形態では、トランザクション処理デバイスは、同じ書き込みトランザクションキュー内の書き込みトランザクションを直列に処理する。具体的には、書き込みトランザクションキュー内の複数の書き込みトランザクションについて、トランザクション処理デバイスは、前の書き込みトランザクションに対する処理を完了した後にのみ、書き込みトランザクションキュー内の次の書き込みトランザクションを処理する。すなわち、トランザクション処理デバイスが複数パーティション書き込みトランザクションを処理するとき、複数パーティション書き込みトランザクションに対応する少なくとも2つのデータパーティションのそれぞれに対応する前の書き込みトランザクションに対する処理が完了している。したがって、この場合、少なくとも2つのデータパーティションにそれぞれ対応する取得されたデータスナップショットは、確実に一貫性を満たす。具体的には、複数パーティション書き込みトランザクションを処理するとき、トランザクション処理デバイスは、データスナップショットに対応するバージョン情報を使用することにより、取得されたデータスナップショットが一貫性を満たすか否かを検出する必要はない。
【００７４】
任意選択で、複数パーティション書き込みトランザクション(すなわち、処理対象トランザクション)に対応する書き込み操作が、少なくとも2つのデータパーティションにそれぞれ対応し且つ一貫性を満たすデータスナップショットに基づいてうまく実行された後に、トランザクション処理デバイスは、少なくとも2つのデータパーティションにそれぞれ対応するバージョン情報を処理対象トランザクションの識別子で更に更新する。
【００７５】
具体的には、第1の書き込みトランザクションキュー内の複数パーティション書き込みトランザクションについて、トランザクション処理デバイスは、第1の書き込みトランザクションキュー内の処理位置に到達する複数パーティション書き込みトランザクションを取得し、取得された複数パーティション書き込みトランザクションを、複数パーティション書き込みトランザクションに関連するデータパーティションにそれぞれ対応する第2の書き込みトランザクションキューに追加してもよい。複数パーティション書き込みトランザクションが、データパーティションにそれぞれ対応する第2の書き込みトランザクションキュー内の全ての処理位置に到達したとき、トランザクション処理デバイスは、データパーティションのそれぞれのデータスナップショットを取得する。データパーティションは、処理対象の単一パーティション書き込みトランザクション及び複数パーティション書き込みトランザクションに同時に対応してもよい。データの一貫性がないことを回避するために、書き込みトランザクションが処理されるとき、書き込みトランザクションが単一パーティショントランザクションであるか複数パーティショントランザクションであるかにかかわらず、同じデータパーティションに対応する全ての書き込みトランザクションは直列に処理される必要がある。したがって、この出願のこの実施形態では、第1の書き込みトランザクションキュー内の複数パーティション書き込みトランザクションについて、複数パーティション書き込みトランザクションを処理するとき、トランザクション処理デバイスは、データパーティションのそれぞれの単一パーティション書き込みトランザクションと共に複数パーティション書き込みトランザクションを直列に配列するように、関連するデータパーティションにそれぞれ対応する第2の書き込みトランザクションキューのそれぞれに複数パーティション書き込みトランザクションを追加する。トランザクション処理デバイスは、データパーティションにそれぞれ対応する第2の書き込みトランザクションキューのそれぞれが複数パーティション書き込みトランザクションの実行に至るときにのみ、データパーティションに対応するデータスナップショットを取得して書き込み操作を実行する。代替として、上記のいずれかの第2の書き込みトランザクションキューが複数パーティション書き込みトランザクションの実行に至るとき、トランザクション処理デバイスは、複数パーティション書き込みトランザクションを含む他の第2の書き込みトランザクションキューが複数パーティション書き込みトランザクションの実行に至るのを待機せず、複数パーティション書き込みトランザクションの実行に至る第2の書き込みトランザクションキューに対応するデータパーティションのデータスナップショットを直接取得し、取得されたデータスナップショットにおいて書き込み操作を実行し、複数パーティション書き込みトランザクションに対応する書き込み操作が、複数パーティション書き込みトランザクションに関連する全てのデータパーティションに対応するデータスナップショットにおいて完了した後に、それぞれ対応するデータパーティション内のデータとして、複数パーティション書��込みトランザクションに対応する全ての書き込まれたデータスナップショットを記憶してもよい。
【００７６】
任意選択で、第1の書き込みトランザクションキュー内の複数パーティショントランザクションについて、トランザクション処理デバイスは、第1の書き込みトランザクションキュー内の処理位置に到達する複数パーティショントランザクションを取得し、取得された複数パーティショントランザクションを、書き込み特殊パーティションに対応する第2の書き込みトランザクションキューに追加してもよい。書き込み特殊パーティションに対応する第2の書き込みトランザクションキュー内のトランザクションにスケジューリング(すなわち、処理)が至るとき、トランザクション処理デバイスは、データパーティションのそれぞれのデータスナップショットを取得する。実行されるとき、書き込み特殊パーティションに対応する第2の書き込みトランザクションキュー内のトランザクションは、他のデータパーティションに対する単一パーティション書き込みトランザクションをブロックする。
【００７７】
実際の用途の中では、2つのデータパーティションに対応する第2の書き込みトランザクションキューは、同じキューでもよく、トランザクション処理デバイスは、複数パーティション書き込みトランザクションを、2つのデータパーティションに対応する第2の書き込みトランザクションキューに1回のみ追加する。
【００７８】
結論として、この出願のこの実施形態に記載のトランザクション処理方法によれば、複数パーティショントランザクションに関連するデータパーティションについて、トランザクション処理デバイスは、一貫性を満たすデータスナップショットを取得し、データスナップショットに基づいて、複数パーティショントランザクションに対応する読み取り操作又は書き込み操作を実行する。同じデータパーティションに対応する書き込みトランザクションと読み取りトランザクションとの間のブロックを回避するための、読み取りトランザクションと書き込みトランザクションとの並列実行がサポートされ、それにより、システムスループット及びサービスレベルを改善する。
【００７９】
この出願の実施形態では、図３に対応する実施形態におけるステップは、トランザクション処理デバイス内の異なる機能コンポーネントにより実現されてもよい。これらの機能コンポーネントは、ソフトウェア又はソフトウェアとハードウェアとの組み合わせにより実現される論理機能コンポーネントでもよい。例えば、上記の各機能コンポーネントは、独立した機能ノード(例えば、独立した仮想マシン又はプロセス)でもよく、機能ノードは、トランザクション処理を実現するために互いに相互作用する。
【００８０】
具体的には、例えば、トランザクション処理デバイス内の機能ノードは、2つのタイプに分類されてもよく、これらは、コーディネータノード及び参加ノードと呼ばれてもよい。複数パーティショントランザクションに対する処理を調整することを担う1つのコーディネータノードが存在してもよい。任意選択で、複数のコーディネータノードが存在してもよく、1つのコーディネータノードは、複数パーティション書き込み及び/又は読み取りトランザクションを処理するように構成され、他のコーディネータノードは、複数パーティション読み取りトランザクションを処理することを担うように構成される。具体的には、複数パーティション書き込みのための1つのコーディネータノードのみが存在し、複数パーティション読み取りのための複数のコーディネータノードが存在してもよい。複数の参加ノードが存在してもよく、各参加ノードは、それぞれのデータパーティションに対応し、対応するデータパーティションに関連する単一パーティショントランザクションを独立して処理するか、或いは、コーディネータノードの調整で、対応するデータパーティションに関連する複数パーティショントランザクションを処理することを担う。任意選択で、対応するデータパーティションに加えて、各参加ノードは、書き込み特殊パーティション及び読み取り特殊パーティションを有する。書き込み特殊パーティション及び読み取り特殊パーティションは、コーディネータノードにより分配される複数パーティション書き込みトランザクション及び複数パーティション読み取りトランザクションを処理するために使用される。
【００８１】
コーディネータノードは、図３に示す実施形態における第1の読み取りトランザクションキュー及び第1の書き込みトランザクションキューを管理することを担い、各参加ノードは、1つ以上のそれぞれのデータパーティションに対応する第2の読み取りトランザクションキュー及び第2の書き込みトランザクションキューを担う。
【００８２】
任意選択で、各参加ノードが担う第2の読み取りトランザクションキュー及び第2の書き込みトランザクションキューは、読み取り特殊パーティション及び書き込み特殊パーティションに対応する読み取りキュー及び書き込みキューを更に含む。
【００８３】
参加ノードにより実行されるステップは、3つの機能モジュールによりそれぞれ実現されてもよい。具体的には、図７を参照すると、図７は、この出願の例示的な実施形態による参加ノードの概略構成図である。図７において、参加ノード70は、配列モジュール701と、スケジューリングモジュール702と、記憶エンジン703とを含む。
【００８４】
配列モジュール701は、単一パーティショントランザクションを対応する第2の読み取りトランザクションキュー/第2の書き込みトランザクションキューに追加するステップを実現するように構成される。代替として、配列モジュール701は、配列のために、第1のキュー(第1の書き込みトランザクションキュー及び/又は第1の読み取りトランザクションキューを含む)からコーディネータノードにより分配される複数パーティショントランザクションを、対応する第2のキュー(第2の書き込みトランザクションキュー及び/又は第2の読み取りトランザクションキューを含む)に追加するステップを実現するように構成されてもよい。
【００８５】
スケジューリングモジュール702は、第2の読み取りトランザクションキュー/第2の書き込みトランザクションキュー内のトランザクションに対してスケジューリング処理を実行するステップを実現するように構成される。
【００８６】
記憶エンジン703は、対応するデータパーティションのデータスナップショットを取得、記憶及び削除し、取得されたデータスナップショット内のデータのバージョン情報を維持する機能を実現するように構成される。
【００８７】
任意選択で、各参加ノード70には、1つの記憶エンジン703のみが存在し、参加ノード70は、全体として1つ以上の対応するデータパーティションを使用することにより、読み取り/書き込み処理を実行する。具体的には、トランザクションが処理されるとき、トランザクションが参加ノードに対応するデータパーティションの全てに関連するか否かにかかわらず、記憶エンジン703は、全ての対応するデータパーティションのデータスナップショットを取得し、全てのデータパーティション内のデータは、1つのバージョン情報を共有する。
【００８８】
代替として、参加ノード70上に2つ以上のデータパーティションが存在するとき、参加ノード70に複数の記憶エンジン703が存在してもよく、各記憶エンジン703は、データパーティションのうち1つ以上のデータスナップショット及びバージョン情報を記憶することを担う。トランザクションを処理するとき、参加ノード70は、このノード上のデータパーティション内にあり且つトランザクションに関連するいくつかのデータパーティションのデータスナップショットのみを取得してもよい。
【００８９】
可能な実現シナリオでは、複数のデータパーティションは、同じ第2の書き込みトランザクションキューに対応する。具体的には、複数のデータパーティションに関連する単一パーティション書き込みトランザクション及び複数パーティション書き込みトランザクションは全て、同じ第2の書き込みトランザクションキューに追加される。
【００９０】
任意選択で、コーディネータノードは、参加ノードから独立した機能ノードである。コーディネータノードは、第1の読み取りトランザクションキュー及び第1の書き込みトランザクションキューを管理し、第1の読み取りトランザクションキュー及び第1の書き込みトランザクションキュー内の複数パーティショントランザクションに対する参加ノードによる処理を調整することを担う。
【００９１】
代替として、コーディネータノードはまた、参加ノードでもある。第1の読み取りトランザクションキュー及び第1の書き込みトランザクションキューを管理し、第1の読み取りトランザクションキュー及び第1の書き込みトランザクションキュー内の複数パーティショントランザクションに対する参加ノードによる処理を調整することに加えて、コーディネータノードは、対応する第2の読み取りトランザクションキュー及び第2の書き込みトランザクションキューを管理し、対応する第2の読み取りトランザクションキュー及び第2の書き込みトランザクションキュー内のトランザクションを処理することを担う。
【００９２】
代替として、コーディネータノードはまた、参加ノードでもある。コーディネータノードの第1の書き込みトランザクションキューは、第2の書き込みトランザクションキュー内にあり且つ書き込み特殊パーティションに対応する書き込みトランザクションキューであり、コーディネータノードの第1の読み取りトランザクションキューは、第2の読み取りトランザクションキュー内にあり且つ読み取り特殊パーティションに対応する読み取りトランザクションキューである。複数パーティショントランザクションは、まず、第1のトランザクションキューに追加されてもよく、スケジューリングが複数パーティショントランザクションに至るとき、その場合に、複数パーティショントランザクションは、データパーティションに対応する第2のトランザクションキューに分配される。代替として、任意選択で、複数パーティショントランザクションは、まず、第1のトランザクションキューに追加されてもよく、スケジューリングが複数パーティショントランザクションに至るとき、その場合に、複数パーティショントランザクションは、特殊パーティションに対応する第2のトランザクションキューに分配される。このノードでは、複数パーティショントランザクションが実行位置に到達したと考えられ、要求がこのノードの特殊パーティションの第2のトランザクションキューに追加される必要はない。
【００９３】
代替として、コーディネータノードはまた、参加ノードでもある。コーディネータノードの第1の書き込みトランザクションキューは、ノードの第2の書き込みトランザクションキューと等価であり、コーディネータノードの第1の読み取りトランザクションキューは、ノードの第2の読み取りトランザクションキューと等価である。複数パーティション書き込みトランザクションは、第2の書き込みトランザクションキューでもある各第1の書き込みトランザクションキューに直接追加され、同じ複数パーティション書き込みトランザクションが、第2の書き込みトランザクションキューでもある全ての第1の書き込みトランザクションキューにおいてスケジューリングされたとき、その場合に、要求が第2の書き込みトランザクションキューに分配される。このノードでは、複数パーティション書き込みトランザクションが実行位置に到達したと考えられ、要求がこのノードの全ての第2の書き込みトランザクションキューに追加される必要はない。同様に、複数パーティション読み取りトランザクションは、第2の読み取りトランザクションキューでもある第1の読み取りトランザクションキューに直接追加され、スケジューリングがトランザクションに至るとき、その場合に、要求が第2の読み取りトランザクションキューに分配される。このノードでは、複数パーティション読み取りトランザクションが実行位置に到達したと考えられ、要求がこのノードの第2の読み取りトランザクションキューに追加される必要はない。
【００９４】
図８は、この出願の例示的な実施形態によるトランザクション処理デバイスの概略実現図である。図８において、トランザクション処理デバイス80は、少なくとも1つの参加ノード(参加ノード811及び参加ノード812が図８に示されている)と、コーディネータノードと820を含んでもよい。各参加ノードは、1つ以上のデータパーティションを有する(データパーティション1及びデータパーティション2を有する参加ノード811と、データパーティション3を有する参加ノード812とが図８に示されている)。コーディネータノードは、参加ノードの1つでもよく、或いは、コーディネータノードは、独立したノードでもよい。例えば、各参加ノードは、1つの書き込みトランザクションキュー及び1つの読み取りトランザクションキューに対応する。図８において、コーディネータノード820は、第1の書き込みトランザクションキュー851及び第1の読み取りトランザクションキュー852を管理し、参加ノード811は、第2の書き込みトランザクションキュー831及び第2の読み取りトランザクションキュー832を管理し、参加ノード812は、第2の書き込みトランザクションキュー841及び第2の読み取りトランザクションキュー842を管理する。
【００９５】
図９は、この出願の例示的な実施形態によるトランザクション処理デバイスの概略実現図である。図９において、トランザクション処理デバイス80は、少なくとも1つの参加ノード(参加ノード811及び参加ノード812が図９に示されている)と、少なくとも2つのコーディネータノード820(3つのコーディネータノード820、すなわち、コーディネータノード820-1、コーディネータノード820-2及びコーディネータノード820-3が図９に示されている)とを含んでもよい。各参加ノードは、1つ以上のデータパーティションを有する(データパーティション1及びデータパーティション2を有する参加ノード811と、データパーティション3を有する参加ノード812が図９に示されている)。コーディネータノードは、参加ノードの1つでもよく、或いは、コーディネータノードは、独立したノードでもよい。例えば、各参加ノードは、1つの書き込みトランザクションキュー及び1つの読み取りトランザクションキューに対応する。図９において、3つのコーディネータノード820のそれぞれは、1つの第1の書き込みトランザクションキュー851及び2つの第1の読み取りトランザクションキュー852を管理し(第1の読み取りトランザクションキュー852は第1の読み取りトランザクションキュー852-1及び第1の読み取りトランザクションキュー852-2であり、コーディネータノード820-2は第1の読み取りトランザクションキュー852-1を対応して管理し、コーディネータノード820-3は第1の読み取りトランザクションキュー852-2を対応して管理する)、参加ノード811は、第2の書き込みトランザクションキュー831及び第2の読み取りトランザクションキュー832を管理し、参加ノード812は、第2の書き込みトランザクションキュー841及び第2の読み取りトランザクションキュー842を管理する。
【００９６】
端末デバイスがトランザクション処理要求をトランザクション処理デバイスに送信するとき、単一パーティショントランザクションに対応する要求は、単一パーティショントランザクションに対応する参加ノードに直接送信され、参加ノードは、単一パーティショントランザクションを対応する書き込みトランザクションキュー又は読み取りトランザクションキューに追加する。例えば、図８又は図９において、端末デバイスにより送信されたトランザクション処理要求を受信したとき、参加ノード811は、トランザクション処理要求に対応する単一パーティション書き込みトランザクションを書き込みトランザクションキュー831に追加し、トランザクション処理要求に対応する単一パーティション読み取りトランザクションを読み取りトランザクションキュー832に追加し、端末デバイスにより送信されたトランザクション処理要求を受信したとき、参加ノード812は、トランザクション処理要求に対応する単一パーティション書き込みトランザクションを書き込みトランザクションキュー841に追加し、トランザクション処理要求に対応する単一パーティション読み取りトランザクションを読み取りトランザクションキュー842に追加する。
【００９７】
複数パーティショントランザクションについて、端末デバイスは、対応する要求をコーディネータノード820に送信し、コーディネータノード820は、複数パーティショントランザクションを、コーディネータノード820に対応する書き込みトランザクションキュー又は読み取りトランザクションキューに追加する。具体的には、端末デバイスにより送信されたトランザクション処理要求を受信した後に、コーディネータノード820は、トランザクション処理要求に対応する複数パーティション書き込みトランザクションを書き込みトランザクションキュー851に追加し、トランザクション処理要求に対応する複数パーティション読み取りトランザクションを読み取りトランザクションキュー852に追加する。複数パーティション書き込みトランザクションを書き込みトランザクションキュー851に追加するとき、コーディネータノード820は、トランザクションIDを複数パーティション書き込みトランザクションに割り当ててもよい。
【００９８】
参加ノードによりトランザクションを処理するプロセスは以下の通りでもよい。
【００９９】
1.単一パーティショントランザクションについての処理
【０１００】
単一パーティショントランザクションは、トランザクションに関連するデータパーティションが位置する参加ノードにより処理される。例えば、図８又は図９における参加ノード811を例として使用すると、書き込みトランザクションキュー831を処理するとき、参加ノード811は、1つのスレッドを使用することにより、書き込みトランザクションキュー831内の書き込みトランザクションを直列に処理する。例えば、参加ノード811がキュー順序に基づいて書き込みトランザクションキュー831からデータパーティション1に関連する単一パーティション書き込みトランザクションを抽出した後に、参加ノード811は、データパーティション1のデータスナップショットを取得し、抽出された単一パーティション書き込みトランザクションに対応する書き込みデータを取得されたデータスナップショットに書き込んだ後に、データパーティション1内のデータとして、データが書き込まれた後に取得されたデータスナップショットを記憶する。
【０１０１】
読み取りトランザクションキュー832を処理するとき、参加ノード811は、1つのスレッドを使用することにより、読み取りトランザクションキュー832内の単一パーティション読み取りトランザクションを直列に処理する。具体的には、データパーティション1に関連する単一パーティション読み取りトランザクションについて、参加ノード811は、データパーティション1のデータスナップショットを取得し、取得されたデータスナップショットから単一パーティション読み取りトランザクションに対応するデータを読み取り、読み取られたデータを端末デバイスに送信した後に、取得されたデータスナップショットを削除してもよい。
【０１０２】
2.複数パーティション書き込みトランザクションについての処理
【０１０３】
コーディネータノードは、複数パーティション書き込みトランザクションを処理するために、参加ノードを調整する。例えば、図８又は図９に示すように、コーディネータノード820は、1つのスレッドを使用することにより、書き込みトランザクションキュー851内の複数パーティション書き込みトランザクションを直列に処理する。具体的には、各複数パーティション書き込みトランザクションについて、複数パーティション書き込みトランザクションがデータパーティション1及びデータパーティション3にデータを書き込むためのものであると仮定すると、コーディネータノード820は、複数パーティション書き込みトランザクションを参加ノード811及び参加ノード812に別々に送信する。参加ノード811は、複数パーティション書き込みトランザクションを書き込みトランザクションキュー831に追加し、参加ノード812は、複数パーティション書き込みトランザクションを書き込みトランザクションキュー841に追加する。複数パーティション書き込みトランザクションを処理するとき、参加ノード811は、データパーティション1のデータスナップショットを取得し、データスナップショットをうまく取得した後に、取得成功応答をコーディネータノードに返信するか、或いは、データスナップショットを取得するのに失敗した後に、取得失敗応答をコーディネータノードに返信する。同様に、複数パーティション書き込みトランザクションを処理するとき、参加ノード812は、データパーティション3のデータスナップショットを取得し、データスナップショットがうまく取得されたか否かに基づいて、取得成功応答又は取得失敗応答をコーディネータノードに返信する。
【０１０４】
コーディネータノード820が、参加ノードの1つにより送信された取得失敗応答を受信した場合、コーディネータノード820は、他の参加ノードに対してうまく取得されたデータスナップショットを削除するように命令するために、スナップショット削除要求を他の参加ノードに送信する。
【０１０５】
コーディネータノード820が、参加ノード811及び参加ノード812によりそれぞれ送信された取得成功応答が受信されたと決定した場合、コーディネータノード820は、トランザクション処理指示を参加ノード811及び参加ノード812に別々に送信する。参加ノード811は、データパーティション1に対応するデータスナップショットにデータを書き込み、書き込みが成功したか否かに基づいて、書き込み成功応答又は書き込み失敗応答をコーディネータノード820に返信する。さらに、参加ノード812は、データパーティション3に対応するデータスナップショットにデータを書き込み、書き込みが成功したか否かに基づいて、書き込み成功応答又は書き込み失敗応答をコーディネータノードに返信する。
【０１０６】
コーディネータノード820が、参加ノードのうち1つにより送信された書き込み失敗応答を受信した場合、コーディネータノード820は、他の参加ノードに対してうまく書き込まれたデータスナップショットを削除するように命令するために、スナップショット削除要求を他の参加ノードに送信する。
【０１０７】
コーディネータノード820が、参加ノード811及び参加ノード812によりそれぞれ送信された書き込み成功応答が受信されたと決定した場合、コーディネータノード820は、コミット指示を参加ノード811及び参加ノード812に別々に送信する。参加ノード811は、データパーティション1内のデータとして、うまく書き込まれたデータスナップショットを記憶し、記憶を完了した後に、データパーティション内1のデータのバージョン番号を複数パーティション書き込みトランザクションのトランザクションIDで更新する。参加ノード812もまた、データパーティション3内のデータとして、うまく書き込まれたデータスナップショットを記憶し、記憶を完了した後に、データパーティション3内のデータのバージョン番号を、複数パーティション書き込みトランザクションのトランザクションIDで更新する。
【０１０８】
3.複数パーティション読み取りトランザクションについての処理
【０１０９】
コーディネータノードは、複数パーティション読み取りトランザクションを処理するために、参加ノードを調整する。例えば、図８又は図９に示すように、コーディネータノード820は、1つのスレッドを使用することにより、読み取りトランザクションキュー852内の複数パーティション読み取りトランザクションを直列に処理する。具体的には、特定の複数パーティション読み取りトランザクションについて、複数パーティション読み取りトランザクションがデータパーティション1及びデータパーティション3からデータを読み取るためのものであると仮定すると、コーディネータノード820は、スナップショット取得要求を参加ノード811及び参加ノード812に別々に送信する。要求を受信した後に、参加ノード811は、データパーティション1のデータスナップショットを取得し、データスナップショット内のデータのバージョン情報をコーディネータノード820に返信する。データスナップショット内のデータのバージョン情報は、最新のコミットがデータパーティション1において完了した複数パーティション書き込みトランザクションのIDである。対応して、要求を受信した後に、参加ノード812は、データパーティション3のデータスナップショットを取得し、データスナップショット内のデータのバージョン情報をコーディネータノード820に返信する。参加ノード811により送信されたデータパーティション1のデータスナップショット内のデータのバージョン情報と、参加ノード812により送信されたデータパーティション3のデータスナップショット内のデータのバージョン情報とを受信した後に、コーディネータノード820は、バージョン情報に基づいて、データパーティション1のデータスナップショット及びデータパーティション3のデータスナップショットが一貫性を満たすか否かを検出する。
【０１１０】
本発明のこの実施形態では、データスナップショットのバージョン情報が、データスナップショットに対応するデータパーティションへの最新の書き込みを実行する複数パーティション書き込みトランザクションの識別子であるとき、少なくとも2つのデータパーティションにそれぞれ対応するデータスナップショットが一貫性を満たすことは、少なくとも2つのデータパーティションにそれぞれ対応するデータスナップショットのバージョン情報が同じであることを意味してもよい。代替として、少なくとも2つのデータパーティションにそれぞれ対応するデータスナップショットが一貫性を満たすことは、少なくとも2つのデータパーティションのそれぞれについて、データパーティションの取得されたデータスナップショットのバージョン情報がデータパーティションの予め記憶されたバージョン情報と同じであることを意味してもよい。
【０１１１】
例えば、コーディネータノード820は、以下の方式で、バージョン情報に基づいて、データパーティション1のデータスナップショット及びデータパーティション3のデータスナップショットが一貫性を満たすか否かを検出してもよい。
【０１１２】
(1)データパーティション1及びデータパーティション3が、複数パーティション書き込みが同時に実行される2つのデータパーティションである場合(すなわち、複数パーティション書き込みトランザクションがデータパーティション1に関連するとき、複数パーティション書き込みトランザクションがまた、データパーティション3にも確実に関連する)、コーディネータノード820は、2つのデータパーティションにそれぞれ対応するバージョン情報が同じであるか否かを直接比較してもよい。2つのデータパーティションにそれぞれ対応するバージョン情報が同じである場合、これは、2つのデータパーティションに対応するデータスナップショットが一貫性を満たすことを示す。2つのデータパーティションにそれぞれ対応するバージョン情報が異なる場合、コーディネータノード820は、バージョン情報に基づいて、以前のバージョンを有するデータパーティション(すなわち、最新の完成した複数パーティション書き込みトランザクションのより小さいIDに対応するデータパーティションであり、データパーティションは比較的早いバージョンを有する)を更に決定してもよい。
【０１１３】
(2)データパーティション1及びデータパーティション3が、複数パーティション書き込みが同時に実行される2つのデータパーティションでない場合(すなわち、複数パーティション書き込みトランザクションがデータパーティション1に関連するとき、複数パーティション書き込みトランザクションがデータパーティション3に関連しない可能性がある)、この場合、コーディネータノード820は、データパーティションにそれぞれ対応するバージョン情報を維持してもよい。複数パーティション書き込みトランザクションを処理するプロセスにおいて、コミット指示を参加ノードに送信した後に、コーディネータノード820は、コーディネータノード820により維持される、複数パーティション書き込みトランザクションに関連するデータパーティションのバージョン情報を複数パーティション書き込みトランザクションのIDで更新する。対応して、各参加ノードもまた、参加ノードに対応するデータパーティションのバージョン情報を維持する。複数パーティション書き込みトランザクションを処理するプロセスにおいて、参加ノードがコーディネータノード820により送信されたコミット指示を受信し、対応するデータパーティション内のデータとして、書き込みが完了した現在のデータスナップショットをうまく記憶した後に、参加ノードは、参加ノードにより維持される、データパーティションのバージョン情報を複数パーティション書き込みトランザクションのIDに更新する。複数パーティション読み取りトランザクションに対する以降の処理の中で、参加ノードは、複数パーティション読み取りトランザクションに関連するデータパーティションのデータスナップショットを取得し、データスナップショットに対応するバージョン情報をコーディネータノード820に送信する。次いで、コーディネータノード820は、参加ノードにより送信されたバージョン情報を、コーディネータノード820により維持され且つデータパーティションに対応するバージョン情報と比較する。参加ノードにより送信された、複数パーティション読み取りトランザクションに対応するデータスナップショットのバージョン情報が、コーディネータノードにより維持される、対応するデータパーティションのバージョン情報と同じである場合、これは、複数パーティション読み取りトランザクションに対応するデータパーティションの取得されたデータスナップショットが一貫性を満たすことを示す。参加ノードにより送信された、複数パーティション読み取りトランザクションに対応するデータスナップショットのバージョン情報のうち1つ以上のバージョン情報が、コーディネータノードにより維持される、対応するデータパーティションのバージョン情報と異なる場合、1つ以上のバージョン情報に対応するデータスナップショットが以前のバージョンを有すると決定されてもよい。
【０１１４】
データパーティション1のデータスナップショット及びデータパーティション3のデータスナップショットが一貫性を満たさないことを検出した場合、コーディネータノード820は、バージョン情報に基づいて、以前のバージョンを有するデータスナップショットに対応する参加ノードを決定し、データスナップショット再取得要求を決定された参加ノードに送信する。データスナップショット再取得要求を受信した後に、参加ノードは、元のデータスナップショットを削除し、データスナップショットを再取得し、再取得されたデータスナップショット内のデータのバージョン情報をコーディネータノード820に返信する。コーディネータノード820は、再取得されたデータスナップショット内のデータのバージョン情報に基づいて、データパーティション1のデータスナップショット及びデータパーティション3のデータスナップショットが一貫性を満たすか否かを更に検出する。
【０１１５】
データパーティション1のデータスナップショット及びデータパーティション3のデータスナップショットが一貫性を満たすことを検出した場合、コーディネータノード820は、参加ノード811及び参加ノード812に対して複数パーティション読み取り要求を別々に処理するように命令するために、トランザクション処理指示を参加ノード811及び参加ノード812に別々に送信する。トランザクション処理指示を受信した後に、参加ノード811及び参加ノード812は、取得されたデータスナップショットから複数パーティション読み取り要求に対応するデータを読み取り、読み取りが成功したか否かに基づいて、読み取り成功応答又は読み取り失敗応答をコーディネータノード820に送信する。
【０１１６】
参加ノード811及び参加ノード812のいずれかにより送信された読み取り失敗応答を受信した後に、コーディネータノード820は、他の参加ノードに対して取得されたデータスナップショットを削除するように命令するために、スナップショット削除要求を他の参加ノードに送信する。
【０１１７】
参加ノード811及び参加ノード812によりそれぞれ送信された読み取り成功応答を受信した後に、コーディネータノード820は、2つの参加ノードに対して取得されたデータスナップショットを削除するように命令するために、スナップショット削除要求を参加ノード811及び参加ノード812に別々に送信する。
【０１１８】
図１０は、この出願の例示的な実施形態によるトランザクション処理デバイス100の概略構造図である。トランザクション処理デバイス100は、図２Ａに示すネットワーク環境におけるトランザクション処理デバイス210として実現されてもよい。図１０に示すように、トランザクション処理デバイス100は、プロセッサ101と、通信インタフェース104とを含んでもよい。
【０１１９】
プロセッサ101は、1つ以上の処理ユニットを含んでもよい。処理ユニットは、中央処理装置(central  processing  unit,  CPU)、ネットワークプロセッサ(network  processor,  NP)等でもよい。
【０１２０】
通信インタフェース104は、ネットワークインタフェースを含んでもよい。ネットワークインタフェースは、端末デバイスに接続するように設定される。具体的には、ネットワークインタフェースは、イーサネットインタフェース又はファイバインタフェースのような有線ネットワークインタフェースを含んでもよく、或いは、ネットワークインタフェースは、無線ローカルエリアネットワークインタフェース又はセルラモバイルネットワークインタフェースのような無線ネットワークインタフェースを含んでもよい。トランザクション処理デバイス100は、ネットワークインタフェース104を通じて端末デバイスと通信してもよい。
【０１２１】
任意選択で、トランザクション処理デバイス100は、メモリ103を更に含んでもよい。プロセッサ101は、バスを通じてメモリ103及び通信インタフェース104に接続されてもよい。
【０１２２】
メモリ103は、ソフトウェアプログラムを記憶するように構成されてもよい。ソフトウェアプログラムは、プロセッサ101により実行されてもよい。さらに、メモリ103は、様々なサービスデータ又はユーザデータを更に記憶してもよい。ソフトウェアプログラムは、トランザクション受信モジュール、スナップショット取得モジュール、実行モジュール、更新モジュール等を含んでもよい。
【０１２３】
トランザクション受信モジュールは、図３に示す実施形態において端末デバイスにより送信された複数パーティショントランザクション及び単一パーティショントランザクションを受信する機能を実現するように、プロセッサ101により実行される。
【０１２４】
スナップショット取得モジュールは、図３に示す実施形態において一貫性を満たすデータスナップショットを取得する機能を実現するように、プロセッサ101により実行される。
【０１２５】
実行モジュールは、図３に示す実施形態において読み取り操作又は書き込み操作を実行する機能を実現するように、プロセッサ101により実行される。
【０１２６】
更新モジュールは、図３に示す実施形態においてデータパーティションに対応するデータスナップショット内のデータのバージョン情報を更新する機能を実現するように、プロセッサ101により実行される。
【０１２７】
任意選択で、トランザクション処理デバイス100は、出力デバイス105と、入力デバイス107とを更に含んでもよい。出力デバイス105及び入力デバイス107は、プロセッサ101に接続される。出力デバイス105は、情報を表示するように構成されたディスプレイ、音を再生するための電力増幅デバイス、プリンタ等でもよい。出力デバイス105は、表示画面、電力増幅デバイス又はプリンタに出力を提供するための出力コントローラを更に含んでもよい。入力デバイス107は、マウス、キーボード、電子スタイラス又はタッチパネルのような情報を入力するためにユーザにより使用されるデバイスでもよい。入力デバイス107は、マウス、キーボード、電子スタイラス又はタッチパネルのようなデバイスからの入力を受け取って処理するための入力コントローラを更に含んでもよい。
【０１２８】
以下は、この出願の装置の実施形態であり、これは、この出願の方法の実施形態を実行するために使用できる。この出願の装置の実施形態に開示されていない詳細については、この出願の方法の実施形態を参照する。
【０１２９】
図１１は、この出願の例示的な実施形態によるトランザクション処理装置の構造ブロック図である。トランザクション処理装置は、ハードウェア回路又はソフトウェアとハードウェアとの組み合わせを使用することにより、トランザクション処理デバイスの一部又は全部として実現されてもよく、トランザクション処理デバイスは、図２Ａに示す実施形態におけるトランザクション処理デバイス210でもよい。トランザクション処理装置は、トランザクション受信ユニット1101と、スナップショット取得ユニット1102と、実行ユニット1103と、更新ユニット1104とを含んでもよい。
【０１３０】
トランザクション受信ユニット1101は、図３に示す実施形態において端末デバイスにより送信された複数パーティショントランザクション及び単一パーティショントランザクションを受信する機能を実現するように、プロセッサ81により実行される。
【０１３１】
スナップショット取得ユニット1102は、図３に示す実施形態において一貫性を満たすデータスナップショットを取得する機能を実現するように構成される。
【０１３２】
実行ユニット1103は、図３に示す実施形態において読み取り操作又は書き込み操作を実行する機能を実現するように構成される。
【０１３３】
更新ユニット1104は、図３に示す実施形態においてデータパーティションに対応するデータスナップショット内のデータのバージョン情報を更新する機能を実現するように構成される。
【０１３４】
図１２は、この出願の例示的な実施形態によるトランザクション処理システムのシステム構成図である。図１１に示すように、トランザクション処理システムは、トランザクション処理装置122と、少なくとも2つのデータパーティション124とを含んでもよい。
【０１３５】
トランザクション処理装置122は、図１１に示すトランザクション処理装置として実現されてもよく、トランザクション処理装置は、図３に示す実施形態におけるトランザクション処理方法を実現するように構成される。
【０１３６】
上記の実施形態において提供されるトランザクション処理装置がトランザクション処理を実行するとき、上記の機能ユニットの分割は単なる例である点に留意すべきである。実際の用途では、上記の機能は、必要に応じて実現のために異なる機能ユニットに割り当てられてもよく、すなわち、デバイスの内部構造は、上記の機能の全部又は一部を実現するために、異なる機能ユニットに分割される。さらに、上記の実施形態において提供されるトランザクション処理装置と、トランザクション処理方法の方法の実施形態とは、同じ概念に基づいている。具体的な実現プロセスについては、方法の実施形態を参照し、これは、ここでは再び説明しない。
【０１３７】
この出願の上記の実施形態のシーケンス番号は、単に例示の目的のためであり、実施形態の優先度を示すことを意図するものではない。
【０１３８】
当業者は、実施形態のステップの全部又は一部がハードウェア又は関連するハードウェアに命令するプログラムにより実現されてもよいことを理解し得る。プログラムは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。記憶媒体は、読み取り専用メモリ、磁気ディスク、光ディスク等を含んでもよい。
【０１３９】
上記の説明は、単にこの出願の任意選択の実施形態であり、この出願を限定することを意図するものではない。この出願の真意及び原理から逸脱することなく行われるいずれかの変更、等価置換又は改良は、この出願の保護範囲に含まれるべきである。
【図１】
0006924898.tif 000002
【図２Ａ】
0006924898.tif 000003
【図２Ｂ】
0006924898.tif 000004
【図３】
0006924898.tif 000005
【図４】
0006924898.tif 000006
【図５】
0006924898.tif 000007
【図６】
0006924898.tif 000008
【図７】
0006924898.tif 000009
【図８】
0006924898.tif 000010
【図９】
0006924898.tif 000011
【図１０】
0006924898.tif 000012
【図１１】
0006924898.tif 000013
【図１２】
0006924898.tif 000014