JP6724039B2 - 分散型コンピューティングシステムにおけるデータベーストランザクションの処理 - Google Patents
分散型コンピューティングシステムにおけるデータベーストランザクションの処理 Download PDFInfo
- Publication number
- JP6724039B2 JP6724039B2 JP2017551177A JP2017551177A JP6724039B2 JP 6724039 B2 JP6724039 B2 JP 6724039B2 JP 2017551177 A JP2017551177 A JP 2017551177A JP 2017551177 A JP2017551177 A JP 2017551177A JP 6724039 B2 JP6724039 B2 JP 6724039B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- data item
- order
- lock
- processes
- 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
- 238000012545 processing Methods 0.000 title claims description 96
- 238000000034 method Methods 0.000 claims description 160
- 230000008569 process Effects 0.000 claims description 102
- 238000013500 data storage Methods 0.000 claims description 36
- 238000003860 storage Methods 0.000 claims description 14
- 238000005096 rolling process Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 description 64
- 230000000069 prophylactic effect Effects 0.000 description 11
- 239000012634 fragment Substances 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 239000002253 acid Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 235000003642 hunger Nutrition 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000037351 starvation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005381 magnetic domain Effects 0.000 description 1
- 230000007246 mechanism 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
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 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/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/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/22—Indexing; Data structures therefor; Storage structures
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本出願は、2015年4月1日に出願した米国特許出願第62/141,388号明細書の優先権を主張するものである。
図1は、デッドロック回避技術が使用され得るデータ処理システム100の例を示す。システム100は、通信ネットワーク106(例えば、WAN、LAN、又はマルチプロセッサシステム内若しくはチップ上のネットワーク)を介してM個のデータベースクライアント104と通信する分散型データベースシステム102を含む。
トランザクションの間で生じる1つの潜在的な衝突が、デッドロックである。非常に広く言えば、デッドロックは、2又は3以上の同時に実行されるトランザクションがそれぞれ他のトランザクションが排他的にアクセスすることができるリソースを必要とし、完了する前にその他のトランザクションがリソースを解放するのを待たなければならない状況である。調べられず放置されると、2又は3以上の同時に実行されるトランザクションはそれらのトランザクションの必要とされるリソースにアクセスすることができないので、それらの2又は3以上の同時に実行されるトランザクションのいずれも完了しない。
上述のように、通常の集中的なトランザクション型データベースにおいては、上述のデッドロックなどのデッドロックの検出、防止、及び/又は回避のための方法がよく知られている。しかし、分散型データベースシステム102の複数の異なるノード108によって記憶されるデータにそれぞれが働きかける複数の同時に実行されるトランザクションの場合、デッドロックの起こる見込みがより高いので、分散型データベースにおいては、デッドロックを検出し、回避するための解決策を見つけることがますます難しくなる。いくつかの分散型データベースの動作は、特に耐障害アルゴリズムによって解決することが難しい分散型コンピューティングにおける問題に対応する。いくつかの種類の障害に関しては、分散型コンピューティングにおける一部の問題が、耐障害分散型アルゴリズムによって解決することが不可能であることが分かってさえいる。
図4を参照すると、予防的デッドロック回避アルゴリズム314の例示的な応用において、2つのトランザクションT1及びT2は、分散型データベースの(データアイテムx及びyを含む)データアイテムに同時に働きかけている。データアイテムは、順序付け規則に従った順序で番号を振られ、xが、番号1を割り振られ、yが、番号2を割り振られる。以下の検討を簡潔にするために、データアイテムは、x1及びy2と呼ばれる。
(1)write_lock(x1)
(2)read_lock(y2)
一部の例においては、ロック動作がトランザクションの第1の試みにおいてデータアイテムに対して実施されるときに、順序付け規則に基づくデータアイテムの位置が、ロック動作をソートする際に後で使用するために記憶される。例えば、第1の時間遅延以内にロックが取得されたデータアイテムの位置が、記憶される可能性がある。トランザクション内のすべてのロックがソートされることを必要とする代わりに、第1の時間遅延以内に最初に取得されたロックのみを単純にソートすれば、進展を保証するのに十分である可能性があり、そのようなソートは、多数のロック動作を伴うトランザクションのためにそれほど多くの作業を必要としない可能性がある。
上述のデッドロック回避手法は、例えば、好適なソフトウェア命令を実行するプログラミング可能なコンピューティングシステムを用いて実装される(implemented)可能性があり、又はフィールドプログラマブルゲートアレイ(FPGA,field-programmable gate array)などの好適なハードウェアで、若しくは何らかの混成の形態で実装される可能性がある。例えば、プログラミングされる手法において、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力デバイス又はポートを用いて入力を受け取るため、及び少なくとも1つの出力デバイス又はポートを用いて出力を与えるための)少なくとも1つのユーザインターフェースを含む(分散、クライアント/サーバ、又はグリッドなどのさまざまなアーキテクチャである可能性がある)1又は2以上のプログラミングされた又はプログラミング可能なコンピューティングシステム上で実行される1又は2以上のコンピュータプログラムのプロシージャを含み得る。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1又は2以上のモジュールを含む可能性がある。プログラムのモジュール(例えば、データフローグラフの要素)は、データリポジトリに記憶されたデータモデルに準拠するデータ構造又はその他の編成されたデータとして実装され得る。
Claims (50)
- 複数の処理モジュールを含む分散型コンピューティングシステムにおいてトランザクションを処理するための方法であって、
前記分散型コンピューティングシステムにおいてランされる複数のプロセスがアクセス可能なデータストレージシステムにデータアイテムを記憶するステップであって、前記データアイテムが、順序付け規則によって全順序的であり、前記プロセスの少なくとも一部が、異なる処理モジュール上でランされている、前記記憶するステップと、
前記複数のプロセスのうちの2以上を使用して各プロセスの自身に割り当てられたトランザクションを処理するステップであって、前記複数のプロセスのうちの前記2以上のうちの1つを使用してトランザクションを処理することが、
前記データストレージシステムに記憶されたデータアイテムにアクセスするための1組の要求を受信することであって、前記要求が第1の順序である、前記受信すること、
前記データアイテムに対するロックの各々が第1の時間間隔以内に取得される場合に、前記ロックを前記第1の順序で順番に取得すること、
前記ロックのいずれかが前記第1の時間間隔以内に取得されない場合に、前記ロックのうちの少なくとも2つに関して前記順序付け規則に合致する第2の順序を決定すること、及び
データアイテムに対するロックを前記第2の順序で順番に取得することを含む、処理されている前記トランザクションを再始動することを含む、前記処理するステップとを含む、前記方法。 - 処理されているトランザクションを再始動することが、前記トランザクションをロールバックし、データアイテムに対する前記トランザクションを処理するために取得したすべての既存のロックを解放することを含む請求項1に記載の方法。
- 第2の順序が、少なくとも、ロックが第1の時間間隔以内に取得されたデータアイテムに関して順序付け規則に合致する請求項1又は2に記載の方法。
- 処理するステップが、順序付け規則に基づく第1の時間遅延以内にロックが取得されたデータアイテムの位置を特定する情報を記憶することをさらに含み、第2の順序を決定することが、前記第1の時間遅延以内にロックが取得された前記データアイテムの前記位置を特定する記憶された情報に少なくとも部分的に基づいて前記第2の順序を決定することを含む請求項1〜3のいずれかに記載の方法。
- 第2の順序を決定することが、前記トランザクションが処理する前記データアイテムに前記順序付け規則に従って割り振られた番号に基づいて、ロックを取得するための動作順のリストをソートすることを含む請求項1〜4のいずれかに記載の方法。
- 処理するステップが、第1の順序が順序付け規則に合致するか否かを決定し、前記第1の順序が前記順序付け規則に合致する場合に、ロックが第1の時間間隔以内に取得されなかったすべてのデータアイテムに対するロックを前記第1の時間間隔よりも長く待つことをさらに含む請求項1〜5のいずれかに記載の方法。
- 処理するステップが、1組の要求を受信したプロセスをロールバックするかどうか決定するために、複数のプロセスのうちの2以上のうちのその他のプロセスの優先度に対する、前記1組の要求を受信したプロセスの優先度を決定することをさらに含む、請求項1〜6のいずれかに記載の方法。
- 処理されているトランザクションを再始動することが、優先度を決定した後に実施される請求項7に記載の方法。
- 処理されているトランザクションを再始動することが、1組の要求によってアクセスが要求された少なくとも1つのデータアイテムに対するロックの状態が解放された状態であると決定した後に実施される請求項1〜8のいずれかに記載の方法。
- 処理するステップが、第1の順序が順序付け規則に合致するか否かを決定することをさらに含み、処理されているトランザクションを再始動することが、第1の順序が前記順序付け規則に合致しないと決定してから第2の時間間隔の後に実施される請求項1〜5のいずれかに記載の方法。
- 第2の時間間隔が、第1の時間間隔よりも長い請求項10に記載の方法。
- 第1の時間間隔が、1秒未満である請求項1〜11のいずれかに記載の方法。
- 処理するステップが、処理されているトランザクションがコミットされるか、中止されるか、又は再始動されるまでデータアイテムに対して取得されたすべてのロックを保持することと、処理されている前記トランザクションがコミットされるか、中止されるか、又は再始動されるときに前記データアイテムに対する前記ロックを解放することとをさらに含む請求項1〜12のいずれかに記載の方法。
- データアイテムに対するロックが、単一のロック解除状態及び1又は2以上のロック状態を含む少なくとも2つの状態を含む請求項1〜13のいずれかに記載の方法。
- データアイテムに対するロックを取得することが、前記データアイテムに関連するロックの状態をロック状態のうちの1つに変更することを含む請求項14に記載の方法。
- データアイテムに対するロックを解放することが、前記データアイテムに関連するロックの状態をロック状態のうちの1つからロック解除状態に変更することを含む請求項14又は15に記載の方法。
- データアイテムに対するロックが、ロックされたデータアイテムへの完全なアクセスを単一のプロセスにのみ許可する少なくとも1つの排他的ロック状態を含む請求項14〜16のいずれかに記載の方法。
- データアイテムに対するロックが、ロックされたデータアイテムへの読み取りのみのアクセスを複数のプロセスに許可する少なくとも1つの共有ロック状態を含む請求項14〜17のいずれかに記載の方法。
- 複数のプロセスの少なくとも一部が、互いに非同期にランされている請求項1〜18のいずれかに記載の方法。
- トランザクションが、データベーストランザクションを含み、データアイテムが、データベースのレコードである請求項1〜19のいずれかに記載の方法。
- データベースが、インメモリデータベースである請求項20に記載の方法。
- データストレージシステムが、データベースの複数のノードに分散される請求項20又は21に記載の方法。
- 複数のプロセスのうちの2以上の少なくとも一部が、処理モジュールのうちの異なる処理モジュール上でランされている請求項1〜22のいずれかに記載の方法。
- 1又は2以上のコンピュータによって実行されるときに、複数の処理モジュールを含む分散型コンピューティングシステムにおいてトランザクションを処理するための動作を1又は2以上のコンピュータに実施させる命令を記憶するコンピュータ可読ストレージ媒体であって、前記動作が、
前記分散型コンピューティングシステムにおいてランされる複数のプロセスがアクセス可能なデータストレージシステムにデータアイテムを記憶する動作であって、前記データアイテムが、順序付け規則によって全順序的であり、前記プロセスの少なくとも一部が、異なる処理モジュール上でランされている、前記記憶する動作と、
前記複数のプロセスのうちの2以上を使用して各プロセスの自身に割り当てられたトランザクションを処理する動作であって、前記複数のプロセスのうちの前記2以上のうちの1つを使用してトランザクションを処理することが、
前記データストレージシステムに記憶されたデータアイテムにアクセスするための1組の要求を受信することであって、前記要求が第1の順序である、前記受信すること、
前記データアイテムに対するロックの各々が第1の時間間隔以内に取得される場合に、前記ロックを前記第1の順序で順番に取得すること、
前記ロックのいずれかが前記第1の時間間隔以内に取得されない場合に、前記ロックのうちの少なくとも2つに関して前記順序付け規則に合致する第2の順序を決定すること、及び
データアイテムに対するロックを前記第2の順序で順番に取得することを含む、処理されている前記トランザクションを再始動することを含む、前記処理する動作とを含む、前記コンピュータ可読ストレージ媒体。 - トランザクションを処理するための分散型コンピューティングシステムであって、
複数の処理モジュールと、
前記分散型コンピューティングシステムにおいてランされる複数のプロセスがアクセス可能であり、データアイテムを記憶するように構成されたデータストレージシステムであって、前記データアイテムが、順序付け規則によって全順序的であり、前記プロセスの少なくとも一部が、異なる処理モジュール上でランされている、前記データストレージシステムとを含み、
前記複数のプロセスのうちの2以上が、各プロセスの自身に割り当てられたトランザクションを処理するように構成され、前記複数のプロセスのうちの前記2以上のうちの1つを使用してトランザクションを処理することが、
前記データストレージシステムに記憶されたデータアイテムにアクセスするための1組の要求を受信することであって、前記要求が第1の順序である、前記受信すること、
前記データアイテムに対するロックの各々が第1の時間間隔以内に取得される場合に、前記ロックを前記第1の順序で順番に取得すること、
前記ロックのいずれかが前記第1の時間間隔以内に取得されない場合に、前記ロックのうちの少なくとも2つに関して前記順序付け規則に合致する第2の順序を決定すること、及び
データアイテムに対するロックを前記第2の順序で順番に取得することを含む、処理されている前記トランザクションを再始動することを含む、前記分散型コンピューティングシステム。 - 複数の処理モジュールを含む分散型コンピューティングシステムにおいてトランザクションを処理するための方法であって、
前記分散型コンピューティングシステムにおいてランされる複数のプロセスがアクセス可能なデータストレージシステムにデータアイテムを記憶するステップであって、前記データアイテムが、順序付け規則によって全順序的であり、前記プロセスの少なくとも一部が、異なる処理モジュール上でランされている、前記記憶するステップと、
前記複数のプロセスのうちの2以上を使用して各プロセスの自身に割り当てられたトランザクションを処理するステップであって、前記複数のプロセスのうちの前記2以上のうちの1つを使用してトランザクションを処理することが、
前記データストレージシステムに記憶されたデータアイテムにアクセスするための1組の要求を受信することであって、前記要求が第1の順序である、前記受信すること、
前記データアイテムに対するロックの各々が第1の時間間隔以内に取得される場合に、前記ロックを前記第1の順序で順番に取得すること、
前記ロックのいずれかが前記第1の時間間隔以内に取得されない場合に、前記第1の順序が前記順序付け規則に合致するか否かを決定すること、及び
前記第1の順序が前記順序付け規則に合致しない場合に、処理されている前記トランザクションを再始動することを含む、前記処理するステップとを含む、前記方法。 - 処理されているトランザクションを再始動することが、前記トランザクションをロールバックし、データアイテムに対する前記トランザクションを処理するために取得したすべての既存のロックを解放し、第1の順序とは異なる第2の順序で順番にデータアイテムに対するロックを取得することを含む請求項26に記載の方法。
- 第2の順序が、少なくとも、ロックが第1の時間間隔以内に取得されたデータアイテムに関して順序付け規則に合致する請求項27に記載の方法。
- 処理するステップが、順序付け規則に基づく第1の時間遅延以内にロックが取得されたデータアイテムの位置を特定する情報を記憶することをさらに含み、第2の順序を決定することが、前記第1の時間遅延以内にロックが取得された前記データアイテムの前記位置を特定する記憶された情報に少なくとも部分的に基づいて前記第2の順序を決定することを含む、請求項27〜28のいずれかに記載の方法。
- 第2の順序が、前記トランザクションが処理する前記データアイテムに前記順序付け規則に従って割り振られた番号に基づいて、ロックを取得するための動作順のリストをソートすることに基づいて決定される請求項27〜29のいずれかに記載の方法。
- 処理するステップが、第1の順序が順序付け規則に合致する場合に、ロックが第1の時間間隔以内に取得されなかったすべてのデータアイテムに対するロックを前記第1の時間間隔よりも長く待つことをさらに含む請求項26〜30のいずれかに記載の方法。
- 処理するステップが、1組の要求を受信したプロセスをロールバックするかどうか決定するために、複数のプロセスのうちの2以上のうちのその他のプロセスの優先度に対する、前記1組の要求を受信したプロセスの優先度を決定することをさらに含む、請求項26〜31のいずれかに記載の方法。
- 第1の順序が順序付け規則に合致しない場合に、処理されているトランザクションを再始動することが、優先度を決定した後に実施される請求項32に記載の方法。
- 第1の順序が順序付け規則に合致しない場合に、処理されているトランザクションを再始動することが、1組の要求によってアクセスが要求された少なくとも1つのデータアイテムに対するロックの状態が解放された状態であると決定した後に実施される請求項26〜33のいずれかに記載の方法。
- 第1の順序が順序付け規則に合致しない場合に、処理されているトランザクションを再始動することが、前記第1の順序が前記順序付け規則に合致しないと決定してから第2の時間間隔の後に実施される請求項26〜33のいずれかに記載の方法。
- 第2の時間間隔が、第1の時間間隔よりも長い請求項35に記載の方法。
- 第1の時間間隔が、1秒未満である請求項26〜36のいずれかに記載の方法。
- 処理するステップが、処理されているトランザクションがコミットされるか、中止されるか、又は再始動されるまでデータアイテムに対して取得されたすべてのロックを保持することと、処理されている前記トランザクションがコミットされるか、中止されるか、又は再始動されるときに前記データアイテムに対する前記ロックを解放することとをさらに含む請求項26〜37のいずれかに記載の方法。
- データアイテムに対するロックが、単一のロック解除状態及び1又は2以上のロック状態を含む少なくとも2つの状態を含む請求項26〜38のいずれかに記載の方法。
- データアイテムに対するロックを取得することが、前記データアイテムに関連するロックの状態をロック状態のうちの1つに変更することを含む請求項39に記載の方法。
- データアイテムに対するロックを解放することが、前記データアイテムに関連するロックの状態をロック状態のうちの1つからロック解除状態に変更することを含む請求項39又は40に記載の方法。
- データアイテムに対するロックが、ロックされたデータアイテムへの完全なアクセスを単一のプロセスにのみ許可する少なくとも1つの排他的ロック状態を含む請求項39〜41のいずれかに記載の方法。
- データアイテムに対するロックが、ロックされたデータアイテムへの読み取りのみのアクセスを複数のプロセスに許可する少なくとも1つの共有ロック状態を含む請求項39〜42のいずれかに記載の方法。
- 複数のプロセスの少なくとも一部が、互いに非同期にランされている請求項26〜43のいずれかに記載の方法。
- トランザクションが、データベーストランザクションを含み、データアイテムが、データベースのレコードである請求項26〜44のいずれかに記載の方法。
- データベースが、インメモリデータベースである請求項45に記載の方法。
- データストレージシステムが、データベースの複数のノードに分散される請求項45又は46に記載の方法。
- 複数のプロセスのうちの2以上の少なくとも一部が、処理モジュールのうちの異なる処理モジュール上で施行されている請求項26〜47のいずれかに記載の方法。
- 1又は2以上のコンピュータによって実行されるときに、複数の処理モジュールを含む分散型コンピューティングシステムにおいてトランザクションを処理するための動作を1又は2以上のコンピュータに実施させる命令を記憶するコンピュータ可読ストレージ媒体であって、前記動作が、
前記分散型コンピューティングシステムにおいてランされる複数のプロセスがアクセス可能なデータストレージシステムにデータアイテムを記憶する動作であって、前記データアイテムが、順序付け規則によって全順序的であり、前記プロセスの少なくとも一部が、異なる処理モジュール上でランされている、前記記憶する動作と、
前記複数のプロセスのうちの2以上を使用して各プロセスの自身に割り当てられたトランザクションを処理する動作であって、前記複数のプロセスのうちの前記2以上のうちの1つを使用してトランザクションを処理することが、
前記データストレージシステムに記憶されたデータアイテムにアクセスするための1組の要求を受信することであって、前記要求が第1の順序である、前記受信すること、
前記データアイテムに対するロックの各々が第1の時間間隔以内に取得される場合に、前記ロックを前記第1の順序で順番に取得すること、
前記ロックのいずれかが前記第1の時間間隔以内に取得されない場合に、前記第1の順序が前記順序付け規則に合致するか否かを決定すること、及び
前記第1の順序が前記順序付け規則に合致しない場合に、処理されている前記トランザクションを再始動することを含む、前記処理する動作とを含む、前記コンピュータ可読ストレージ媒体。 - トランザクションを処理するための分散型コンピューティングシステムであって、
複数の処理モジュールと、
前記分散型コンピューティングシステムにおいてランされる複数のプロセスがアクセス可能であり、データアイテムを記憶するように構成されたデータストレージシステムであって、前記データアイテムが、順序付け規則によって全順序的であり、前記プロセスの少なくとも一部が、異なる処理モジュール上でランされている、前記データストレージシステムとを含み、
前記複数のプロセスのうちの2以上が、各プロセスの自身に割り当てられたトランザクションを処理するように構成され、前記複数のプロセスのうちの前記2以上のうちの1つを使用してトランザクションを処理することが、
前記データストレージシステムに記憶されたデータアイテムにアクセスするための1組の要求を受信することであって、前記要求が第1の順序である、前記受信すること、
前記データアイテムに対するロックの各々が第1の時間間隔以内に取得される場合に、前記ロックを前記第1の順序で順番に取得すること、
前記ロックのいずれかが前記第1の時間間隔以内に取得されない場合に、前記第1の順序が前記順序付け規則に合致するか否かを決定すること、及び
前記第1の順序が前記順序付け規則に合致しない場合に、処理されている前記トランザクションを再始動することを含む、前記分散型コンピューティングシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562141388P | 2015-04-01 | 2015-04-01 | |
US62/141,388 | 2015-04-01 | ||
PCT/US2016/023554 WO2016160416A1 (en) | 2015-04-01 | 2016-03-22 | Processing database transactions in a distributed computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018511886A JP2018511886A (ja) | 2018-04-26 |
JP6724039B2 true JP6724039B2 (ja) | 2020-07-15 |
Family
ID=55750446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017551177A Active JP6724039B2 (ja) | 2015-04-01 | 2016-03-22 | 分散型コンピューティングシステムにおけるデータベーストランザクションの処理 |
Country Status (10)
Country | Link |
---|---|
US (1) | US10140329B2 (ja) |
EP (1) | EP3278239B1 (ja) |
JP (1) | JP6724039B2 (ja) |
KR (1) | KR102103063B1 (ja) |
CN (1) | CN108337911B (ja) |
AU (1) | AU2016244128B2 (ja) |
CA (1) | CA2981476C (ja) |
HK (1) | HK1257454A1 (ja) |
SG (1) | SG11201707983QA (ja) |
WO (1) | WO2016160416A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390154B1 (en) | 2015-08-28 | 2016-07-12 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US9529923B1 (en) | 2015-08-28 | 2016-12-27 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US10747753B2 (en) | 2015-08-28 | 2020-08-18 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
AU2017357770B2 (en) | 2016-11-10 | 2020-12-24 | Hedera Hashgraph, Llc | Methods and apparatus for a distributed database including anonymous entries |
CN106775974B (zh) * | 2016-12-07 | 2019-12-10 | 国云科技股份有限公司 | 一种分布式优先级排队锁的实现方法 |
KR102454779B1 (ko) | 2016-12-19 | 2022-10-13 | 스월즈, 인크. | 이벤트들의 삭제를 가능하게 하는 분산 데이터베이스를 위한 방법 및 장치 |
US10614039B2 (en) * | 2017-04-04 | 2020-04-07 | International Business Machines Corporation | Testing of lock managers in computing environments |
US11334678B2 (en) * | 2017-07-06 | 2022-05-17 | Chromaway Ab | Method and system for a distributed computing system |
AU2018300147B2 (en) | 2017-07-11 | 2020-07-16 | Hedera Hashgraph, Llc | Methods and apparatus for efficiently implementing a distributed database within a network |
KR102452425B1 (ko) | 2017-11-01 | 2022-10-06 | 스월즈, 인크. | 고속 카피가능 데이터베이스를 효율적으로 구현하기 위한 방법들 및 장치 |
US11182379B2 (en) * | 2018-08-24 | 2021-11-23 | Oracle International Corporation | DAG based methods and systems of transaction processing in a distributed ledger |
CN109471735A (zh) * | 2018-11-14 | 2019-03-15 | 常熟理工学院 | 分布式集中控制系统的现场数据信息安全控制方法及系统 |
SG11202109729SA (en) | 2019-05-22 | 2021-10-28 | Swirlds Inc | Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database |
CN110765143B (zh) * | 2019-10-10 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、服务器和存储介质 |
US11409559B2 (en) * | 2019-10-24 | 2022-08-09 | EMC IP Holding Company, LLC | System and method for weak lock allowing force preemption by high priority thread |
US11941611B2 (en) * | 2019-12-11 | 2024-03-26 | Intuit Inc. | Shareable and nested transactions on hash chains |
US11698898B2 (en) * | 2020-11-04 | 2023-07-11 | Salesforce, Inc. | Lock wait tracing |
US11822538B2 (en) | 2020-11-05 | 2023-11-21 | Oracle International Corporation | Systems and methods of transaction identification generation for transaction-based environment |
CN113111099B (zh) * | 2021-06-15 | 2021-08-24 | 蚂蚁金服(杭州)网络技术有限公司 | 一种环路检测方法、装置、电子设备与存储介质 |
CN114546705B (zh) * | 2022-02-28 | 2023-02-07 | 北京百度网讯科技有限公司 | 操作响应方法、操作响应装置、电子设备以及存储介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0679284B2 (ja) * | 1986-04-02 | 1994-10-05 | 株式会社日立製作所 | 分散デ−タベ−スシステムのデツドロツク防止方式 |
JP2850863B2 (ja) * | 1996-06-29 | 1999-01-27 | 日本電気株式会社 | 排他制御装置 |
US7337290B2 (en) * | 2003-04-03 | 2008-02-26 | Oracle International Corporation | Deadlock resolution through lock requeing |
KR100611739B1 (ko) | 2003-12-24 | 2006-08-11 | 한국전자통신연구원 | 다중 프로세서 환경의 저널링 파일 시스템에서 병렬 자원할당 및 반납 방법 |
CN101183377B (zh) * | 2007-12-10 | 2010-09-08 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群系统 |
CN101425070B (zh) * | 2008-08-11 | 2011-04-20 | 深圳市金蝶中间件有限公司 | 一种死锁定位的方法、死锁定位装置和数据系统 |
CN101727629A (zh) * | 2008-10-10 | 2010-06-09 | 北京资和信担保有限公司 | 自组织分布式金融业务系统 |
CN101576830B (zh) | 2009-06-04 | 2011-11-30 | 中兴通讯股份有限公司 | 数据库事务锁机制的死锁检测方法及装置 |
JP5352421B2 (ja) * | 2009-10-30 | 2013-11-27 | 株式会社エヌ・ティ・ティ・データ | データアクセス装置、データアクセス方法およびデータアクセスプログラム |
CN103136308A (zh) * | 2011-11-23 | 2013-06-05 | 英业达股份有限公司 | 应用系统数据库更新的方法和系统 |
US9208190B2 (en) | 2012-05-03 | 2015-12-08 | Red Hat, Inc. | Lock reordering for optimistic locking of data on a single node to avoid transaction deadlock |
US9104714B2 (en) * | 2012-05-31 | 2015-08-11 | Red Hat, Inc. | Incremental optimistic locking of data distributed on multiple nodes to avoid transaction deadlock |
CN102831156B (zh) * | 2012-06-29 | 2014-12-31 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
KR101296778B1 (ko) | 2012-09-18 | 2013-08-14 | (주)카디날정보기술 | NoSQL 데이터베이스를 위한 결과적 트랜잭션 처리 방법 |
US20140136571A1 (en) * | 2012-11-12 | 2014-05-15 | Ecole Polytechnique Federale De Lausanne (Epfl) | System and Method for Optimizing Data Storage in a Distributed Data Storage Environment |
US9367346B2 (en) | 2013-02-20 | 2016-06-14 | Nec Corporation | Accelerating distributed transactions on key-value stores through dynamic lock localization |
US9652491B2 (en) * | 2013-04-15 | 2017-05-16 | International Business Machines Corporation | Out-of-order execution of strictly-ordered transactional workloads |
CN104252545B (zh) * | 2014-10-11 | 2017-05-31 | 南京国电南自维美德自动化有限公司 | 一种实时内存数据库的对象类型属性类型锁的实现方法 |
CN104317944B (zh) * | 2014-10-31 | 2018-07-06 | 上海实方软件有限公司 | 一种基于公式的时间戳动态调整并发控制方法 |
-
2016
- 2016-03-22 EP EP16716093.6A patent/EP3278239B1/en active Active
- 2016-03-22 KR KR1020177031717A patent/KR102103063B1/ko active IP Right Grant
- 2016-03-22 CN CN201680031962.0A patent/CN108337911B/zh active Active
- 2016-03-22 SG SG11201707983QA patent/SG11201707983QA/en unknown
- 2016-03-22 CA CA2981476A patent/CA2981476C/en active Active
- 2016-03-22 JP JP2017551177A patent/JP6724039B2/ja active Active
- 2016-03-22 US US15/077,108 patent/US10140329B2/en active Active
- 2016-03-22 AU AU2016244128A patent/AU2016244128B2/en active Active
- 2016-03-22 WO PCT/US2016/023554 patent/WO2016160416A1/en active Application Filing
-
2018
- 2018-12-28 HK HK18116689.2A patent/HK1257454A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CA2981476A1 (en) | 2016-10-06 |
JP2018511886A (ja) | 2018-04-26 |
KR102103063B1 (ko) | 2020-05-29 |
HK1257454A1 (zh) | 2019-10-18 |
EP3278239B1 (en) | 2019-08-14 |
WO2016160416A1 (en) | 2016-10-06 |
CA2981476C (en) | 2020-03-24 |
CN108337911A (zh) | 2018-07-27 |
EP3278239A1 (en) | 2018-02-07 |
AU2016244128A1 (en) | 2017-10-19 |
AU2016244128B2 (en) | 2018-08-30 |
SG11201707983QA (en) | 2017-10-30 |
US20160292213A1 (en) | 2016-10-06 |
CN108337911B (zh) | 2022-05-24 |
US10140329B2 (en) | 2018-11-27 |
KR20170132873A (ko) | 2017-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6724039B2 (ja) | 分散型コンピューティングシステムにおけるデータベーストランザクションの処理 | |
US11003689B2 (en) | Distributed database transaction protocol | |
CN107977376B (zh) | 分布式数据库系统及事务处理方法 | |
CN108027829B (zh) | 用于管理数据库事务的方法、设备和计算机可读介质 | |
Kim et al. | Ermia: Fast memory-optimized database system for heterogeneous workloads | |
US9208191B2 (en) | Lock-free, scalable read access to shared data structures | |
Thomson et al. | The case for determinism in database systems | |
US8713046B2 (en) | Snapshot isolation support for distributed query processing in a shared disk database cluster | |
US9576038B1 (en) | Consistent query of local indexes | |
Mahmoud et al. | Maat: Effective and scalable coordination of distributed transactions in the cloud | |
US20180074919A1 (en) | Hybrid Database Concurrent Transaction Control | |
US20180210914A1 (en) | Consistent query of local indexes | |
Levandoski et al. | Multi-version range concurrency control in deuteronomy | |
US11080261B2 (en) | Hybrid concurrency control | |
Padhye et al. | Scalable transaction management with snapshot isolation for NoSQL data storage systems | |
Padhye et al. | Scalable transaction management with snapshot isolation on cloud data management systems | |
JP2022503497A (ja) | バージョンベースのテーブルロック | |
JP6477169B2 (ja) | データベースの処理制御方法、処理制御プロラム及びデータベースサーバ | |
Haroon | Challenges of concurrency control in object oriented distributed database systems | |
Eldeeb et al. | Transactions for Distributed Actors in the Cloud | |
Srivastava et al. | Transaction processing in replicated data in the DDBMS | |
WO2023235054A1 (en) | Method and system for lock after qualification for update queries | |
Niles Jr | Improving performance of highly-programmable concurrent applications by leveraging parallel nesting and weaker isolation levels | |
Gahlyan et al. | Waiting Algorithm for Concurrency Control in Distributed Databases | |
JPS6394343A (ja) | フアイル制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190204 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20190416 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190716 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20191003 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191126 |
|
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: 20200601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200624 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6724039 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 |