JP6498352B2 - 分散型データベースシステムを用いるネットワーク内でデータベースアクセス制御を提供する方法及びアーキテクチャ - Google Patents
分散型データベースシステムを用いるネットワーク内でデータベースアクセス制御を提供する方法及びアーキテクチャ Download PDFInfo
- Publication number
- JP6498352B2 JP6498352B2 JP2018500733A JP2018500733A JP6498352B2 JP 6498352 B2 JP6498352 B2 JP 6498352B2 JP 2018500733 A JP2018500733 A JP 2018500733A JP 2018500733 A JP2018500733 A JP 2018500733A JP 6498352 B2 JP6498352 B2 JP 6498352B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- records
- node
- record
- start time
- 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
- 238000000034 method Methods 0.000 title claims description 58
- 238000004891 communication Methods 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 39
- 238000010926 purge Methods 0.000 description 35
- 239000012634 fragment Substances 0.000 description 23
- 206010000210 abortion Diseases 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 6
- 230000007958 sleep Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002028 premature Effects 0.000 description 3
- 230000002618 waking effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000002253 acid Substances 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000005381 magnetic domain Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/2308—Concurrency control
-
- 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/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
-
- 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/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- 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/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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本出願は、2015年7月10日に出願した米国特許出願第62/190,843号明細書の優先権を主張するものである。
分散型データベースシステム102は、データベースDのフラグメントDnが割り振られるN個のノード(又は「パーティション」)108を含む。一部の例において、各ノード108は、サーバコンピューティングシステム上で実行されるサーバプロセスに対応する。一部の例においては、いくつかのノード108が、単一のプロセッサ若しくはコンピューティングマシン上にホストされる可能性があり、又はノード108は、(例えば、各ノード108が独自のプロセッサ上でホストされるようにして)複数のプロセッサ若しくはコンピューティングマシンに拡散される可能性がある。
概して、分散型データベースシステム102において動作する各データベーストランザクションは、トランザクションのライフタイムを表す時間間隔に関連付けられる。時間間隔を確立するために、データベースに対して動作するトランザクションTが始まるとき、トランザクション識別子がTに割り当てられる。トランザクション識別子は、分散型データベースシステム102内のトランザクションを特定するグローバルに区別可能な番号であり、トランザクションに関する開始時間(つまり、時間間隔の始め)を明記する。一部の例においては、そのような識別子を実現するために、トランザクション識別子は、時間の概念を伝える番号の単調増加シーケンスとして生じさせられる。例えば、第1のトランザクションT[10]がトランザクション識別子「10」を有し、第2のトランザクションT[20]がトランザクション識別子「20」を有するとき、T[10]に関するトランザクション識別子がT[20]に関するトランザクション識別子よりも前に来るので、T[20]が開始する前にT[10]が開始したことを認識し得る。
一部の例において、データベースDは、多版型同時実行制御(MVCC,multi-version concurrency control)の特定の形態であるスナップショット分離技術を使用して実装される。そのようなデータベースにおいては、データベース内のデータ要素の1又は2以上に関していくつかのバージョンが存在する可能性がある。データ要素の各バージョンは、データ要素の異なるバージョンが互いに区別され得るような一意識別子を有する。一部の例においては、データ要素の各バージョンに関して、バージョンに関する一意識別子は、データベースにバージョンを書き込んだトランザクションのトランザクション識別子に対応する。つまり、トランザクションがデータ要素の新しいバージョンをデータベースに書き込むたびに、新しいバージョンを書き込むトランザクションに関するトランザクション識別子が、新しいバージョンに関する識別子として割り当てられる。例えば、xと命名されたデータ要素は、トランザクションT[25,30]、T[37,42]、及びT[53,59]によってそれぞれ書き込まれたx[25]、x[37]、及びx[53]を含むいくつかのバージョンを有する可能性がある。
上述のバージョン付与技術は、トランザクションがデータ要素のどのバージョンにアクセスすることを許容されるかを決定し、操作が競合するトランザクションを特定するために分散型データベースシステム102のノード108によって使用され得る。競合する操作のあるトランザクションが特定されるとき、トランザクションのうちの1つが、強制的にアボートさせられる可能性がある。この目的で、一部の例において、分散型データベースシステム102のノード108は、トランザクションが1又は2以上のデータ要素にアクセスしようと試みるとき、以下の規則を遵守する。
1)データ要素xが与えられたとすると、x[m]がトランザクションT[m]によって書き込まれたxのバージョンである場合、トランザクションT[i]は、xを読み取ろうと試みるとき、T[i]が開始される前にコミットされたxの最も新しいバージョンを読み取ることができる。つまり、T[i]は、T[j]がxを書き込み、T[i]が始まる前にT[j]がコミットしたような、jがi未満の最も大きなトランザクション識別子であるx[j]を読み取ることができる。
2)データ要素xが与えられたとすると、x[i]がトランザクションT[i]によって書き込まれたxのバージョンである場合、T[i]は、T[j]がxを書き込み、T[j]がT[i]と同時に存在し、T[j]が最初にコミットしたようなトランザクションT[j]が存在しない場合にコミットすることができる。
分散型データベースシステム102の分散の性質によって、通信ネットワーク106上のメッセージの送信と受信との間には本質的な遅延が存在し、ネットワークメッセージがノード108において受信され、処理される順序は、それらのネットワークメッセージが送信された順序と異なる可能性がある。この本質的な遅延が原因で、(クライアントの観点から見た)原子性を保証することは、複雑な動作である。クライアントの観点から見た原子性を保証するために、分散型データベースシステム102は、2相コミット手順を使用して分散型データベースシステム102のノード108の間のコミット操作を調整する。
図2〜6に、データ要素の新しいバージョンを書き込み、2段階コミットプロトコルを使用して成功裏にコミットするトランザクションの一例が示される。図2を参照すると、分散型データベースシステム202の一部は、第1のノード108a、第2のノード108b、及び第5のノード108cを含む。(与えられた例に関する「第1の」又は「第2の」などのノードのラベル付けは、その他の例においては、適宜それらのラベルを変更することを妨げないことに留意されたい。)第2のノード108bは、分散型データベースシステム202のためのリーダーノードとして指定される。第1のトランザクションT[52,75]は、第1のノード108a上で既に完了しており、データ要素のバージョンx[52]218が第1のノード108a上の第1のデータベースフラグメント112aに書き込まれる結果を生じた。第1のトランザクションの第1のローカルレコード220は、第1のノード108aの第1のローカルトランザクションマネージャ114aに記憶される。
図7〜11に、データ要素のバージョンを読み取り、2段階コミットプロトコルを使用してコミットするトランザクションの一例が示される。図7を参照すると、分散型データベースシステム202の一部は、第1のノード108a、第2のノード108b、及び第5のノード108cを含む。第2のノード108bは、分散型データベースシステム202のためのリーダーノードとして指定される。第1のトランザクションT[52,75]は、第1のノード108a上で既に完了しており、データ要素xのバージョンx[52]1518が第1のノード108a上の第1のデータベースフラグメント112aに書き込まれる結果を生じた。第1のトランザクションの第1のローカルレコード1520は、第1のノード108aの第1のローカルトランザクションマネージャ114aに記憶される。
上述の例示的な分散型データベーストランザクションでは、読み取り操作と書き込み操作との両方が、2段階コミット手順においていかなる複雑さに直面することもなく分散型データベース上で実行される。しかし、一部の例においては、1又は2以上のトランザクションがそれらのPREPAREフェーズにあるとき、曖昧さが発生し、分散型データベースシステム102における非効率的な動作につながる可能性がある。
一部の例においては、第1のトランザクション及び第2のトランザクションが両方ともデータ要素の異なるバージョンを書き込み済みであり、第2のトランザクションのトランザクション識別子が第1のトランザクションに関するトランザクション識別子よりも大きく、第1のトランザクションに関するコミット識別子よりも小さいようにして両方ともPREPAREフェーズにあるとき、曖昧性が、非効率を引き起こす可能性がある。特に、第2のトランザクションは、第1のトランザクションがコミットするか又はアボートするかが知られていないので、その第2のトランザクションがその書き込み操作をアボートすべきか否かを知る術がない。これは、第2のトランザクションが早まってアボートする結果となる可能性がある。
一部の例においては、第1のトランザクションがデータ要素の新しいバージョンを書き込み、PREPAREフェーズにあり、データ要素を読み取るための操作を含み、第1のトランザクションのトランザクション識別子よりも大きく、第1のトランザクションのコミット識別子よりも大きいトランザクション識別子を有する第2のトランザクションがアクティブであるとき、システムの非効率的な動作を生じる結果となる可能性がある曖昧性が発生する可能性がある。特に、第2のトランザクションは、第1のトランザクションがコミットするのか又はアボートするのかが分からないので、データ要素の新しいバージョンを読み取るべきか又はデータ要素の前のバージョンを読み取るべきかを知る術がない。
一部の例においては、2又は3以上のトランザクションに関するPREPAREメッセージなどのメッセージが、グローバルトランザクションマネージャ116から分散型データベースシステム102内のノード108に第1の順序で送信されるが、ノード108のうちの1又は2以上のローカルトランザクションマネージャ114に第1の順序とは異なる第2の順序で到着する可能性がある。PREPAREメッセージが、それらのPREPAREメッセージがグローバルトランザクションマネージャ116から送信される順序ではなくそれらのPREPAREメッセージがローカルトランザクションマネージャ114において受信される順序で処理される場合、コミットするべきトランザクションを誤ってアボートすることによって、第1のコミットするトランザクションが勝つ規則(つまり、データ要素を書き込む2つの同時トランザクションに関して、コミットする第1のトランザクションが勝ち、その他のトランザクションがアボートしなければならない)に違反するなどの副次的な作用が発生する可能性がある。そのような副次的な作用は、システムの非効率的で、潜在的に誤った動作を引き起こす可能性がある。
上述のように、分散型データベースシステム102内のノード108の各々のためのローカルトランザクションマネージャ114は、ノード108上で過去に実行されたか又は現在実行されている各トランザクションのレコードを維持する。一部の例において、このプロセスがスケーリングすることを難しくする技術的詳細が存在する。例えば、トランザクションT[10]がそのトランザクションがデータ要素のバージョンx[8]を読むことができるかどうかを決定する場合を考える。x[8]はT[8]によって書き込まれ、T[8]がT[10]の前に始まったことが知られている。しかし、T[8]がコミットした時間又はいったいT[8]がコミットをしたのかどうかは、(x[8]自体から)分からない。T[10]は、T[8]のコミット情報をxから直接得られないが、ローカルトランザクションマネージャ114に記憶されたT[8]のレコードからこの情報を得ることができる。以下の4つの場合のうちの1つが存在することになる。
1.T[8]が、まだアクティブである(そして、ローカルトランザクションマネージャ114が、T[8]がまだアクティブであることを知っている)。この場合、T[10]は、x[8]を読み取ることができない。
2.T[8]が、アボートしている(そして、ローカルトランザクションマネージャ114が、T[8]がアボートしていることを知っている)が、アボートが、x[8]をまだ「アンドゥ」していない。この場合、T[10]は、x[8]を読み取ることができない。
3.T[8]がT[10]が始まる前にコミットした、つまり、T[8]がT[8,9]である。この場合、T[10]は、x[8]を読み取ることができる。
4.T[8]がT[10]が始まった後にコミットし、したがって、T[8]が(例えば)T[8,12]である。この場合、T[10]は、x[8]を読み取ることができない。
クイックパージアルゴリズムが始まる前に、ノード108のためのローカルトランザクションマネージャ114は、コミット識別子によって順序付けられたコミットされたトランザクションのリストを含む。このリストは、可視性の計算のために必要とされる可能性があるすべてのコミットされたトランザクションを含む。クイックパージプロセスを開始するために、ローカルトランザクションマネージャ114は、分散型データベースシステム102のグローバルトランザクションマネージャ116にネットワークメッセージを送信し、分散型データベースシステム102に関するグローバル最下点及びグローバルにアクティブなトランザクションのリストを要求する。グローバルトランザクションマネージャ116は、要求された情報を含むメッセージによってローカルトランザクションマネージャ114に応答する。ローカルトランザクションマネージャ114は、コミットされたトランザクションの各々のコミット識別子をグローバル最下点と比較することを含め、コミットされたトランザクションのそのローカルトランザクションマネージャ114のリストを処理する。例示的なグローバル最下点よりも小さいコミット識別子を有するすべてのコミットされたトランザクションは、ローカルトランザクションマネージャ114からパージされる。一部の例において、クイックパージアルゴリズムは、早期終了条件(early termination condition)を用いるリニアワンパスアルゴリズム(linear one-pass algorithm)である。単一のローカルトランザクションマネージャ上で、クイックパージアルゴリズムは、正しい操作のために必要な最も小さな数のトランザクションを調べることができる。
一部の例において、上述のクイックパージアルゴリズムは、トランザクションが比較的安定した率で到着し、実行され、完了する作業負荷に対して有効である。しかし、すべての作業負荷が、これらの特徴を有するとは限らない。特に、一部の例において、クイックパージアルゴリズムは、長くランされる(long-running)トランザクション(すなわち、ライフタイムが平均よりも著しく長いトランザクション)に上手く対処しない。そのような例において、ローカルトランザクションマネージャ114は、完全パージアルゴリズムを使用する。
上述の分散型データベースシステムは、例えば、好適なソフトウェア命令を実行するプログラミング可能なコンピューティングシステムを用いて実装される可能性があり、又はフィールドプログラマブルゲートアレイ(FPGA,field-programmable gate array)などの好適なハードウェアで、若しくは何らかの混成の形態で実装される可能性がある。例えば、プログラミングされる手法において、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力デバイス又はポートを用いて入力を受け取るため、及び少なくとも1つの出力デバイス又はポートを用いて出力を与えるための)少なくとも1つのユーザインターフェースを含む(分散、クライアント/サーバ、又はグリッドなどのさまざまなアーキテクチャである可能性がある)1又は2以上のプログラミングされた又はプログラミング可能なコンピューティングシステム上で実行される1又は2以上のコンピュータプログラムのプロシージャを含み得る。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1又は2以上のモジュールを含む可能性がある。プログラムのモジュール(例えば、データフローグラフの要素)は、データリポジトリに記憶されたデータモデルに準拠するデータ構造又はその他の編成されたデータとして実装され得る。
Claims (17)
- 複数のノードを含む分散型データベースシステムにおいてデータベーストランザクションを管理するための方法であって、
前記複数のノードのうちの第1のノードに、前記システム内のトランザクションの第1の複数のレコードを維持するステップであって、前記第1の複数のレコードの中の各レコードが、トランザクションに関連付けられ、前記トランザクションの開始時間、及び前記トランザクションの前記開始時間にアクティブであった最も古いトランザクションの開始時間を含み、前記第1の複数のレコードの中のレコードのうちの1つが、前記システム内の最も古い現在アクティブなトランザクションのレコードである、前記第1の複数のレコードを維持するステップと、
前記複数のノードのうちの第2のノードに、トランザクションの第2の複数のレコードを維持するステップであって、前記第2の複数のレコードが、前記第2のノードに関連する完了したトランザクションのレコードを含み、前記第2の複数のレコードの中の各レコードが、トランザクション開始時間及びトランザクション終了時間を含む、前記第2の複数のレコードを維持するステップと、
前記システム内の前記最も古い現在アクティブなトランザクションのトランザクション開始時間にアクティブであった最も古いトランザクションの開始時間を含む、前記第1のノードからのメッセージを、前記第2のノードにおいて受信するステップと、
前記最も古いトランザクションの前記開始時間の前に発生するトランザクション終了時間を有する完了したトランザクションのすべてのレコードを前記第2の複数のレコードから削除するステップとを含む、前記方法。 - 第1のノードからのメッセージの要求を第2のノードから送信するステップをさらに含む、請求項1に記載の方法。
- システム内のアクティブなトランザクションのレコードを含む第3の複数のレコードを含む第1のノードからのメッセージを第2のノードにおいて受信するステップであって、前記第3の複数のレコードの中の各レコードが、トランザクション開始時間を含む、前記受信するステップと、
第2の複数のレコードの中の完了したトランザクションの各レコードに関して、前記第3の複数のレコードに基づいて前記レコードを削除すべきかどうかを決定するステップとをさらに含む、請求項1又は2に記載の方法。 - 第3の複数のレコードに基づいてレコードを削除すべきかどうかを決定するステップが、前記第3の複数のレコードの中のアクティブなトランザクションのレコードのトランザクション開始時間を、完了したトランザクションのレコードのトランザクション開始時間に始まり、前記完了したトランザクションの前記レコードのトランザクション終了時間に終わる時間間隔と比較することを含む、請求項3に記載の方法。
- 第3の複数のレコードに基づいてレコードを削除すべきかどうかを決定するステップが、前記第3の複数のレコードの中のアクティブなトランザクションのレコードのトランザクション開始時間のいずれも、完了したトランザクションのレコードのトランザクション開始時間に始まり、前記完了したトランザクションの前記レコードのトランザクション終了時間に終わる時間間隔内にない場合に第2の複数のレコードから前記完了したトランザクションの前記レコードを削除することを含む、請求項4に記載の方法。
- 第3の複数のレコードに基づいてレコードを削除すべきかどうかを決定するステップが、前記第3の複数のレコードの中のアクティブなトランザクションのレコードが、完了したトランザクションのレコードのトランザクション開始時間に始まり、前記完了したトランザクションの前記レコードのトランザクション終了時間に終わる時間間隔内のトランザクション開始時間に関連付けられる場合に第2の複数のレコードに前記完了したトランザクションの前記レコードを残すことを含む、請求項4に記載の方法。
- 第3の複数のレコードに基づいてレコードを削除するかどうかを決定するステップが、最も古いトランザクションの開始時間の前に発生するトランザクション終了時間を有する完了したトランザクションのすべてのレコードを第2の複数のレコードから削除した後に行われる、請求項3に記載の方法。
- 第2のノードに関連するデータ要素にアクセスするための第1のトランザクションを前記第2のノードにおいて受信するステップと、
前記第2のノードに、前記第2のノードでアクティブなトランザクションのレコードを含む第3の複数のレコードを維持するステップと、
前記第1のトランザクションが、第2の複数のレコード及び前記第3の複数のレコードのうちの一方又は両方に基づいて前記データ要素の複数のバージョンのうちの前記データ要素のバージョンにアクセスすることを許容されるかどうかを決定するステップとをさらに含む、請求項1〜7のいずれかに記載の方法。 - 第1のトランザクションが、第2の複数のレコード及び第3の複数のレコードのうちの一方又は両方に基づいてデータ要素のバージョンにアクセスすることを許容されるかどうかを決定するステップが、
前記データ要素の前記バージョンに関連する第2のトランザクションのレコードが前記第3の複数のレコードに含まれるかどうかを決定し、含まれる場合、前記第1のトランザクションが前記データ要素にアクセスすることを許容されると決定することと、
前記第2のトランザクションの前記レコードが前記第3の複数のレコードに含まれない場合、前記第2のトランザクションの前記レコードが前記第2の複数のレコードに含まれるかどうかを決定し、含まれる場合、前記第1のトランザクションの開始時間を前記第2のトランザクションの終了時間と比較して、前記第1のトランザクションが前記データ要素にアクセスすることを許容されるかどうかを決定することと、
前記第2のトランザクションの前記レコードが前記第2の複数のレコード又は前記第3の複数のレコードに含まれない場合、前記第1のトランザクションが前記データ要素にアクセスすることを許容されると決定することとを含む、請求項8に記載の方法。 - 第2のトランザクションのトランザクション終了時間が第1のトランザクションのトランザクション開始時間よりも前に発生した場合、及び第2の複数のレコードの中に第3のトランザクションのレコードが存在しない場合、前記第1のトランザクションがデータ要素のバージョンを読み取ることを許容され、前記第3のトランザクションが、前記データ要素の第2のバージョンを書き込み済みであり、前記第2のトランザクションの前記トランザクション終了時間の後、及び前記第1のトランザクションの前記トランザクション開始時間の前に発生するトランザクション終了時間を有する、請求項9に記載の方法。
- 第1のトランザクションが、データ要素のバージョンが前記第1のトランザクションによって書き込まれた場合に前記データ要素の前記バージョンを読み取ることを許容される、請求項9に記載の方法。
- 第2のトランザクションのトランザクション開始時間が第1のトランザクションのトランザクション開始時間の後に発生した場合、前記第1のトランザクションが、データ要素のバージョンを読み取ることを許容されない、請求項9に記載の方法。
- 第2の複数のレコードの完了したトランザクションのレコードが、前記レコードのトランザクション終了時間に基づいて順序付けられる、請求項1〜12のいずれかに記載の方法。
- 最も古いアクティブなトランザクションのレコードのトランザクション開始時間の前に発生するトランザクション終了時間を有する完了したトランザクションのすべてのレコードを第2の複数のレコードから削除するステップが、
前記最も古いトランザクションの前記レコードの前記トランザクション開始時間の前に発生するトランザクション終了時間を有する完了したトランザクションのレコードが特定されるまで、前記第2の複数のレコードの中の最も新しく完了したトランザクションのレコードから始まる順序で、前記第2の複数のレコードを通じて繰り返すステップと、
前記第2の複数のレコードから特定されたレコードを削除するステップを含む請求項13に記載の方法。 - 第2の複数のレコードから特定されたレコードのトランザクション終了時間の前に発生するトランザクション終了時間を有する完了したトランザクションのすべてのレコードを削除するステップをさらに含む請求項13に記載の方法。
- 複数のノードを含む分散型データベースシステムにおいてデータベーストランザクションを管理するための、ソフトウェアを非一時的形態で記憶するコンピュータ可読媒体であって、前記ソフトウェアが、コンピューティングシステムに、
前記複数のノードのうちの第1のノードに、前記システム内のトランザクションの第1の複数のレコードを維持することであって、前記第1の複数のレコードの中の各レコードが、トランザクションに関連付けられ、前記トランザクションの開始時間、及び前記トランザクションの前記開始時間にアクティブであった最も古いトランザクションの開始時間を含み、前記第1の複数のレコードの中のレコードのうちの1つが、前記システム内の最も古い現在アクティブなトランザクションのレコードである、前記第1の複数のレコードを維持することと、
前記複数のノードのうちの第2のノードに、トランザクションの第2の複数のレコードを維持することであって、前記第2の複数のレコードが、前記第2のノードに関連する完了したトランザクションのレコードを含み、前記第2の複数のレコードの中の各レコードが、トランザクション開始時間及びトランザクション終了時間を含む、前記第2の複数のレコードを維持することと、
前記システム内の前記最も古い現在アクティブなトランザクションのトランザクション開始時間にアクティブであった最も古いトランザクションの開始時間を含む、前記第1のノードからのメッセージを、前記第2のノードにおいて受信することと、
前記最も古いトランザクションの前記開始時間の前に発生するトランザクション終了時間を有する完了したトランザクションのすべてのレコードを前記第2の複数のレコードから削除することとを行わせるための命令を含む、前記コンピュータ可読媒体。 - データベーストランザクションを管理するための装置であって、
分散型データベースシステム内に配置された複数のノードであって、各ノードが、少なくとも1つのプロセッサを含む、前記複数のノードと、
前記複数のノードの間で情報を送信及び受信するために前記複数のノードのポートを接続する通信媒体とを含み、
前記複数のノードのうちの第1のノードが、前記システム内のトランザクションの第1の複数のレコードを維持するように構成され、前記第1の複数のレコードの中の各レコードが、トランザクションに関連付けられ、前記トランザクションの開始時間、及び前記トランザクションの前記開始時間にアクティブであった最も古いトランザクションの開始時間を含み、前記第1の複数のレコードの中のレコードのうちの1つが、前記システム内の最も古い現在アクティブなトランザクションのレコードであり、
前記複数のノードのうちの第2のノードが、トランザクションの第2の複数のレコードを維持するように構成され、前記第2の複数のレコードが、前記第2のノードに関連する完了したトランザクションのレコードを含み、前記第2の複数のレコードの中の各レコードが、トランザクション開始時間及びトランザクション終了時間を含み、
前記第2のノードが、前記システム内の前記最も古い現在アクティブなトランザクションのトランザクション開始時間にアクティブであった最も古いトランザクションの開始時間を含む、前記第1のノードからのメッセージを受信するように構成され、
前記第2のノードが、前記最も古いトランザクションの前記開始時間の前に発生するトランザクション終了時間を有する完了したトランザクションのすべてのレコードを前記第2の複数のレコードから削除するように構成される、前記装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562190843P | 2015-07-10 | 2015-07-10 | |
US62/190,843 | 2015-07-10 | ||
PCT/US2016/040953 WO2017011220A1 (en) | 2015-07-10 | 2016-07-05 | Method and architecture for providing database access control in a network with a distributed database system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018527653A JP2018527653A (ja) | 2018-09-20 |
JP6498352B2 true JP6498352B2 (ja) | 2019-04-10 |
Family
ID=56413915
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018500733A Active JP6498352B2 (ja) | 2015-07-10 | 2016-07-05 | 分散型データベースシステムを用いるネットワーク内でデータベースアクセス制御を提供する方法及びアーキテクチャ |
JP2018500658A Active JP6563111B2 (ja) | 2015-07-10 | 2016-07-05 | 分散型データベースシステムを用いるネットワーク内でデータベースアクセス制御を提供する方法及びアーキテクチャ |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018500658A Active JP6563111B2 (ja) | 2015-07-10 | 2016-07-05 | 分散型データベースシステムを用いるネットワーク内でデータベースアクセス制御を提供する方法及びアーキテクチャ |
Country Status (9)
Country | Link |
---|---|
US (2) | US10671576B2 (ja) |
EP (3) | EP3320453B1 (ja) |
JP (2) | JP6498352B2 (ja) |
KR (2) | KR102074087B1 (ja) |
CN (2) | CN108140028B (ja) |
AU (2) | AU2016292786B2 (ja) |
CA (2) | CA2991131C (ja) |
HK (2) | HK1254285A1 (ja) |
WO (2) | WO2017011220A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6498352B2 (ja) | 2015-07-10 | 2019-04-10 | アビニシオ テクノロジー エルエルシー | 分散型データベースシステムを用いるネットワーク内でデータベースアクセス制御を提供する方法及びアーキテクチャ |
US20180158034A1 (en) * | 2016-12-07 | 2018-06-07 | International Business Machines Corporation | Dynamic reordering of blockchain transactions to optimize performance and scalability |
EP3649558B8 (en) * | 2017-07-06 | 2024-04-17 | Chromaway AB | Method and system for a distributed computing system |
US11681667B2 (en) * | 2017-07-30 | 2023-06-20 | International Business Machines Corporation | Persisting distributed data sets into eventually consistent storage systems |
US11106670B2 (en) * | 2017-09-27 | 2021-08-31 | Sap Se | Local identifiers for database objects |
CN108363813B (zh) * | 2018-03-15 | 2020-06-02 | 北京星选科技有限公司 | 数据存储方法、装置和系统 |
CN108984639B (zh) * | 2018-06-22 | 2021-12-24 | 联想(北京)有限公司 | 服务器集群的数据处理方法和装置 |
CN109522098A (zh) * | 2018-11-28 | 2019-03-26 | 星环信息科技(上海)有限公司 | 分布式数据库中的事务处理方法、装置、系统和储存介质 |
CN109783578B (zh) * | 2019-01-09 | 2022-10-21 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
US11921701B2 (en) * | 2019-02-12 | 2024-03-05 | Ebay Inc. | Global distributed transactions across microservices |
US10880406B2 (en) * | 2019-03-05 | 2020-12-29 | Mastercard International Incorporated | Controlling access to data resources on high latency networks |
US11537565B2 (en) * | 2019-12-31 | 2022-12-27 | Micron Technology, Inc. | Lock management associated with a key-value database system |
US20220300484A1 (en) * | 2021-03-19 | 2022-09-22 | Microsoft Technology Licensing, Llc | Snapshot isolation query transactions in distributed systems |
CN112927770B (zh) * | 2021-04-12 | 2023-09-08 | 徐州市通用科技有限公司 | 医疗数据共享方法及系统 |
KR102518268B1 (ko) | 2022-04-13 | 2023-04-05 | 주식회사 비투엔 | 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법 |
US11921708B1 (en) * | 2022-08-29 | 2024-03-05 | Snowflake Inc. | Distributed execution of transactional queries |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5212788A (en) | 1990-05-22 | 1993-05-18 | Digital Equipment Corporation | System and method for consistent timestamping in distributed computer databases |
US5504899A (en) * | 1991-10-17 | 1996-04-02 | Digital Equipment Corporation | Guaranteeing global serializability by applying commitment ordering selectively to global transactions |
JP2654612B2 (ja) | 1995-02-23 | 1997-09-17 | 日本電気株式会社 | 排他ウエイト削減制御方法 |
US5999931A (en) | 1997-10-17 | 1999-12-07 | Lucent Technologies Inc. | Concurrency control protocols for management of replicated data items in a distributed database system |
US6499036B1 (en) * | 1998-08-12 | 2002-12-24 | Bank Of America Corporation | Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation |
JP4137264B2 (ja) * | 1999-01-05 | 2008-08-20 | 株式会社日立製作所 | データベース負荷分散処理方法及びその実施装置 |
US7716077B1 (en) * | 1999-11-22 | 2010-05-11 | Accenture Global Services Gmbh | Scheduling and planning maintenance and service in a network-based supply chain environment |
US7130807B1 (en) * | 1999-11-22 | 2006-10-31 | Accenture Llp | Technology sharing during demand and supply planning in a network-based supply chain environment |
US6856993B1 (en) * | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
US20020087366A1 (en) * | 2000-12-30 | 2002-07-04 | Collier Timothy R. | Tentative-hold-based protocol for distributed transaction processing |
US6785696B2 (en) * | 2001-06-01 | 2004-08-31 | Hewlett-Packard Development Company, L.P. | System and method for replication of distributed databases that span multiple primary nodes |
US7146366B2 (en) | 2002-09-13 | 2006-12-05 | Netezza Corporation | Distributed concurrency control using serialization ordering |
JP4104586B2 (ja) * | 2004-09-30 | 2008-06-18 | 株式会社東芝 | ファイル管理機能を備えたファイルシステム及びファイル管理方法 |
US8055711B2 (en) * | 2004-10-29 | 2011-11-08 | Emc Corporation | Non-blocking commit protocol systems and methods |
WO2007022560A1 (en) * | 2005-08-23 | 2007-03-01 | Position Networks Pty Ltd | A stream-oriented database machine and method |
JP2008176687A (ja) * | 2007-01-22 | 2008-07-31 | Tomohiro Iizuka | データベースのトランザクション処理 |
US20080222111A1 (en) * | 2007-03-07 | 2008-09-11 | Oracle International Corporation | Database system with dynamic database caching |
US9027030B2 (en) * | 2007-11-29 | 2015-05-05 | Red Hat, Inc. | Commit-one-phase distributed transactions with multiple starting participants |
US8219852B2 (en) * | 2008-05-01 | 2012-07-10 | Tibco Software Inc. | Java virtual machine having integrated transaction management system |
US7962458B2 (en) * | 2008-06-12 | 2011-06-14 | Gravic, Inc. | Method for replicating explicit locks in a data replication engine |
GB2472620B (en) * | 2009-08-12 | 2016-05-18 | Cloudtran Inc | Distributed transaction processing |
CN101706811B (zh) * | 2009-11-24 | 2012-01-25 | 中国科学院软件研究所 | 一种分布式数据库系统事务提交方法 |
US8356007B2 (en) * | 2010-10-20 | 2013-01-15 | Microsoft Corporation | Distributed transaction management for database systems with multiversioning |
US9251214B2 (en) * | 2010-04-08 | 2016-02-02 | Microsoft Technology Licensing, Llc | In-memory database system |
CN102103642B (zh) * | 2011-03-25 | 2016-08-03 | 北京世纪互联宽带数据中心有限公司 | 基于oltp的数据删除方法、系统及图形数据库服务器 |
CN102346460B (zh) * | 2011-05-27 | 2013-11-13 | 运软网络科技(上海)有限公司 | 一种基于事务的服务控制系统及其控制方法 |
CN102882900B (zh) * | 2011-07-11 | 2016-06-22 | 阿里巴巴集团控股有限公司 | 大规模服务器集群应用部署方法和大规模服务器集群 |
EP2740055A4 (en) | 2011-08-01 | 2015-09-09 | Tagged Inc | SYSTEMS AND METHOD FOR ASYNCHRONOUS DISTRIBUTED DATABASE MANAGEMENT |
JP5772458B2 (ja) * | 2011-09-29 | 2015-09-02 | 富士通株式会社 | データ管理プログラム、ノード、および分散データベースシステム |
US8935205B2 (en) * | 2011-11-16 | 2015-01-13 | Sap Ag | System and method of performing snapshot isolation in distributed databases |
JP2014215914A (ja) * | 2013-04-26 | 2014-11-17 | 株式会社東芝 | 端末装置、情報処理方法及び情報処理プログラム |
US9760596B2 (en) | 2013-05-13 | 2017-09-12 | Amazon Technologies, Inc. | Transaction ordering |
CN103577588A (zh) * | 2013-11-12 | 2014-02-12 | 西安雷迪维护系统设备有限公司 | 一种云数据库中分布式事务的实现方法 |
US9639437B2 (en) * | 2013-12-13 | 2017-05-02 | Netapp, Inc. | Techniques to manage non-disruptive SAN availability in a partitioned cluster |
JP6498352B2 (ja) | 2015-07-10 | 2019-04-10 | アビニシオ テクノロジー エルエルシー | 分散型データベースシステムを用いるネットワーク内でデータベースアクセス制御を提供する方法及びアーキテクチャ |
-
2016
- 2016-07-05 JP JP2018500733A patent/JP6498352B2/ja active Active
- 2016-07-05 WO PCT/US2016/040953 patent/WO2017011220A1/en active Application Filing
- 2016-07-05 JP JP2018500658A patent/JP6563111B2/ja active Active
- 2016-07-05 EP EP16739373.5A patent/EP3320453B1/en active Active
- 2016-07-05 CN CN201680052634.9A patent/CN108140028B/zh active Active
- 2016-07-05 US US15/201,931 patent/US10671576B2/en active Active
- 2016-07-05 AU AU2016292786A patent/AU2016292786B2/en active Active
- 2016-07-05 US US15/201,849 patent/US10489362B2/en active Active
- 2016-07-05 CA CA2991131A patent/CA2991131C/en active Active
- 2016-07-05 CA CA2991128A patent/CA2991128C/en active Active
- 2016-07-05 KR KR1020187004245A patent/KR102074087B1/ko active IP Right Grant
- 2016-07-05 AU AU2016292783A patent/AU2016292783B2/en active Active
- 2016-07-05 CN CN201680052502.6A patent/CN108027829B/zh active Active
- 2016-07-05 KR KR1020187004250A patent/KR102136941B1/ko active IP Right Grant
- 2016-07-05 WO PCT/US2016/040949 patent/WO2017011219A1/en active Application Filing
- 2016-07-05 EP EP21169145.6A patent/EP3882767B1/en active Active
- 2016-07-05 EP EP16739372.7A patent/EP3320452B1/en active Active
-
2018
- 2018-10-16 HK HK18113244.7A patent/HK1254285A1/zh unknown
- 2018-11-26 HK HK18115108.7A patent/HK1256051A1/zh unknown
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6498352B2 (ja) | 分散型データベースシステムを用いるネットワーク内でデータベースアクセス制御を提供する方法及びアーキテクチャ | |
JP6724039B2 (ja) | 分散型コンピューティングシステムにおけるデータベーストランザクションの処理 | |
US9760597B2 (en) | System and method for highly scalable decentralized and low contention transactional processing X | |
CN104793988B (zh) | 跨数据库分布式事务的实现方法和装置 | |
US20220197896A1 (en) | Transactional database layer above a distributed key/value store | |
CN106648840B (zh) | 事务之间的时序确定方法和装置 | |
Eldeeb et al. | Transactions for Distributed Actors in the Cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190131 |
|
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: 20190225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190312 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6498352 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |