JP7183384B2 - 分散コンピューティングシステムにおける共有リソースの管理 - Google Patents
分散コンピューティングシステムにおける共有リソースの管理 Download PDFInfo
- Publication number
- JP7183384B2 JP7183384B2 JP2021504583A JP2021504583A JP7183384B2 JP 7183384 B2 JP7183384 B2 JP 7183384B2 JP 2021504583 A JP2021504583 A JP 2021504583A JP 2021504583 A JP2021504583 A JP 2021504583A JP 7183384 B2 JP7183384 B2 JP 7183384B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- state
- resource
- shared resource
- transaction manager
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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
- G06F9/467—Transactional memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Description
図1は分散コンピューティングシステム100の一実施形態を示すブロック図である。分散コンピューティングシステム100は、いくつかのパーティション102A~C(ここでは「パーティション102」と個別に呼ばれる)、管理コンピューター128、およびネットワーク126を含む。各パーティション102は分割された一連の計算104A~Cおよびディスパッチエンジン106A~C(ここでは「計算104」および「ディスパッチエンジン106」と個別に呼ばれる)に加え、パーティション102A~Cの各々にわたって分布する共有リソース108A~C(ここでは「共有リソース108」と個別に呼ばれる)の複数のコピーを含む。管理コンピューター128は、分散コンピューティングシステム100のユーザーによって生成された1つまたは複数のユーザー要求132を受信するトランザクションマネージャー130を含む。
図2は本実施形態によるトランザクションマネージャー130を示すブロック図である。図2に示される実施形態では、トランザクションマネージャー130は状態マネージャー200、状態ストア202、リソースハンドルストア204、動作ハンドルストア206、ロールバックモジュール208、および復旧モジュール210を含む。他の実施形態では、トランザクションマネージャー130は、様々なアプリケーションのための付加的、より少ない、または異なるコンポーネントを含み得る。システムアーキテクチャの詳細を不明確にしないため、ネットワークインターフェース、セキュリティ機能、ロードバランサ、フェイルオーバーサーバー、管理およびネットワーク操作コンソールなどの従来のコンポーネントは示されていない。
図3Aは、本実施形態による分散コンピューティングシステム100においてトランザクションを管理するための例示的なプロセスを示す。共有リソース108A~Cを変更するトランザクションは、通常、トランザクションによって変更される共有リソース108の各コピーにおいて一貫した状態を達成すべく、各パーティション102A~C上で実行される。ただし、図3Aに示される例では、明確にするために1つのパーティションのみが示されている。この例では、トランザクションマネージャーは、スクリプトを削除するためのユーザー要求132を受信する。テンプレートリソースにはスクリプトとスクリプトで使用されるエイリアスが含まれているとすると、トランザクションマネージャーはスクリプトを削除する前に、テンプレートリソースを非アクティブ状態に設定する必要もある。これは、テンプレートが変更されているときに、他のスクリプトリソースがテンプレートを使用していないことを保証するために行われる。トランザクションマネージャーはテンプレート動作スタック300およびスクリプト動作スタック302を含む、テンプレートリソースおよびスクリプトリソースのリソースハンドルをそれぞれ取得する。テンプレート動作スタック300およびスクリプト動作スタック302は、トランザクションマネージャー130がテンプレートリソースおよびスクリプトリソースにアクセスし、要求されたトランザクションに従って両方のリソースを変更することができる。
図4Aは、本実施形態による共有リソース108を変更するためのプロセスを示す関係図である。図4Aに示される実施形態において、トランザクションマネージャーはユーザー要求から動作400を実行するための指示を受信し、リソースハンドル要求402を状態マネージャーに送信して、変更される共有リソース108へのアクセスを取得する。状態マネージャーは要求された共有リソースに対するリソースハンドルを作成300し、リソースハンドルをトランザクションマネージャーに送信406する。トランザクションマネージャーはリソースハンドルの動作ロックを入力408し、要求された動作を表す動作ハンドルを作成410する。トランザクションマネージャーは変更する共有リソースに対応する動作スタック上に動作ハンドルを配置412する。トランザクションマネージャーは動作を実行414する。動作が成功416に実行された場合、トランザクションマネージャーは結果418を、ユーザー要求を生成したユーザーに送信し、状態マネージャーにリソースハンドルがもはや不要になったことを通知420する。状態マネージャーは、ユーザーが動作ハンドルをコミットするのを待ってから428、リソースハンドルをメモリーから解放する。ただし、実行された動作が成功しなかった場合416、ロールバックモジュールは動作のロールバック422を試行する。ロールバックが成功した場合、トランザクションマネージャーが実行され、失敗した動作ハンドルが動作スタックから削除され、共有リソースは動作ハンドルの実行前に保持していた状態を再開する。ロールバックが失敗した場合、復旧モジュールは要求された動作が実行される前に、共有リソースの前の状態への復旧426を必ず試行する。
図5A、5B、および6は分散コンピューティングシステム100の各パーティション102内の共有リソース108に対応するリソース動作スタックの管理に関連するいくつかのプロセスを示している。以下の例では簡便のため、リソース動作スタックが1つのパーティションにのみ示されている。しかし、以下の例で実行される動作は分散コンピューティングシステム100内のすべてのパーティションにわたる共有リソースの各コピーに適用される。各例においては、リソース動作スタック500はスクリプト動作スタック、テンプレート動作スタック、またはスケジュール動作スタックに対応し得る。
図5Aは、本実施形態によるリソース動作スタック500上で正常な動作ハンドルをコミットするためのプロセスを示している。図5に示されるように、ステップAではリソース動作スタック500は空(すなわち、対応する共有リソースを変更する動作ハンドルがない)であり、その初期状態はヌル(null)である。ステップBにおいて、リソース動作スタック500はリソースのインスタンスの作成を要求する動作ハンドルを受信し、リソース動作スタック500の状態を状態1に更新する。1つまたは複数の実施形態においては、この動作はスクリプト動作スタック内のスクリプト、テンプレート動作スタック内のテンプレート、またはスケジュール動作スタック内のスケジュールの作成に対応し得る。ステップCにおいては、動作ハンドルは正常に実行され、ユーザーによってコミットされ、そして、リソース動作スタック500から削除されるように設定される(点線で示されているように)。最終的に、ステップDでは、正常な動作ハンドルがリソース動作スタック500から削除され、現在の状態は状態1を維持する。
図5Bは、本実施形態によるリソース動作スタック500をクリッピングするためのプロセスを示している。図5BのステップAに示されるように、リソース動作スタック500は動作スタックに対して状態3に更新するように指示する動作ハンドルを受信し、その結果、リソース動作スタックは現在の状態3を有するようになる。1つまたは複数の実施形態においては、この動作はスクリプト動作スタック内のスクリプトの更新、テンプレート動作スタック内のテンプレートの更新、またはスケジュール動作スタック内のスケジュールの更新に対応し得る。ただし、動作ハンドルがリソース動作スタック500から削除される前に、別の動作ハンドルが到着して実行される。ステップBでは、リソース動作スタック500は、動作スタックに指示する第2の動作ハンドルを受信して、リソース動作スタック500に対応する共有リソース上で、再び更新を実行する。ステップCにおいて、第2の動作ハンドルは正常に実行され、リソース動作スタックを状態4に更新し、そして、リソース動作スタック500から削除されるように設定される(点線で示されるように)。第2の更新動作ハンドルが成功であったため、それはコミットされ、リソース動作スタック500から削除される。しかし、共有リソースは現在の状態が状態4であるため、あたかもリソース動作スタックを状態3に更新する動作ハンドルが全く実行されなかったように見える可能性がある。したがって、トランザクションマネージャー130は第1の更新動作ハンドルを無効にし、第2の動作ハンドルが削除されると動作スタックからクリップする。これは、ステップDに示されており、ここで、リソース動作スタック500は再び空となり、現在の状態は4を有することとなる。
図6は本実施形態による、失敗した動作ハンドルをロールバックするためのプロセスを示している。図6に示される本実施形態のステップAにおいて、初期のリソース動作スタック500は作成動作に対応する動作ハンドルを有しており、現在の状態は1である。ステップBでは、初期の作成動作ハンドルが実行され、追加の作成動作ハンドルがリソース動作スタック500に加えられる。このステップでは、作成動作ハンドルはコミットもロールバックもされておらず、第2の作成動作ハンドルはまだ実行を終了せずに、リソース動作スタック500の現在の状態は2ではなくむしろ1のままである。ステップCにおいては、リソース動作スタック500によって参照される共有リソースが第1の作成動作ハンドルによって既に作成されているため、第2の作成動作ハンドルの実行は失敗することになる。第2の作成動作ハンドルはロールバック用にマークされ(点線で示されているように)、現在の状態は1を維持する。リソース動作スタック500は、ロールバックモジュール208によって処理される。第2の作成動作ハンドルはリソース動作スタック500の最上部にあり、ロールバックのマークが付けられているため、迅速にロールバックすることができる。ロールバックモジュール208は、第2の作成動作ハンドルに対してロールバック操作を実行し、それをリソース動作スタック500から削除する。ステップDでは、第1の作成動作ハンドルはコミットされ(点線で示されるように)、その後、現在の状態1を残してリソース動作スタック500から削除される。
図7は本実施形態によるトランザクションを管理するためのプロセスを示している。本実施形態では、図7に示されるように、トランザクションマネージャーはユーザー要求から共有リソース上でトランザクションを実行するための要求を受信700し、共有リソース上でトランザクションを実行710する。トランザクションが成功である場合、トランザクションマネージャーにトランザクションの成功を示し720、トランザクションをコミット730し、分散コンピューティングシステムのユーザーに結果を返す740。逆に、トランザクションが失敗である場合は失敗したトランザクションを示し720、ロールバックモジュールは失敗したトランザクションをロールバック750する。
図8は本実施形態による管理コンピューター800の例を示す高水準のブロック図である。チップセット804に結合された少なくとも1つのプロセッサー802が示されている。チップセット804はメモリーコントローラハブ820および入力/出力(I / O)コントローラハブ822を含む。メモリー806およびグラフィックアダプタ812はメモリーコントローラハブ820に結合され、ディスプレイデバイス818はグラフィックアダプタ812に結合される。ストレージデバイス808、キーボード810、ポインティングデバイス814、およびネットワークアダプタ816はI / Oコントローラハブ822に結合される。管理コンピューター800の他の実施形態は異なるアーキテクチャを有する。例えば、いくつかの実施形態では、メモリー806はプロセッサー802に直接結合される。
上述のいくつかの部分は、アルゴリズムのプロセスまたは操作の観点から実施形態を説明している。これらのアルゴリズムの説明および表現は、当業者達の業務内容を他の当業者に効果的に伝えるために、データ処理技術の当業者によって一般的に用いられている。これらの操作は、プロセッサーまたは同等の電気回路、マイクロコード等によって実装するための指示を備えるコンピュータープログラムによって実装されると理解される。さらに、一般性を欠くことなく、これらの機能操作の配置をモジュールと呼ぶことも便利な場合があることが認められている。説明された操作およびそれらに関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらのあらゆる組み合わせで形態化することができる。
Claims (17)
- 分散コンピュータシステムを使用してデッドロックを防止するための方法であって、
トランザクションマネージャーによって、共有リソース上でトランザクションを実行する要求を受信する工程であって、前記共有リソースは複数のコピーを有し、前記複数のコピーのそれぞれのコピーは1つまたは複数のパーティションに配置されている工程と、
前記トランザクションマネージャーによって、前記要求されたトランザクションに基づいて前記共有リソースの状態を変更する工程であって、前記変更する工程は、前記共有リソースの前記状態を第1の状態から第2の状態に変更する工程であり、
状態マネージャーによって、1つまたは複数のリソースハンドルを生成する工程であって、前記1つまたは複数のリソースハンドルは前記共有リソースを表現する工程と、
前記トランザクションマネージャーによって、1つまたは複数の動作ハンドルを生成する工程であって、前記1つまたは複数の動作ハンドルのそれぞれは動作を記述し、前記動作は共有リソースの状態を第1の状態から第2の状態に変更する工程と、
前記トランザクションマネージャーによって、前記1つまたは複数の動作ハンドルを1つまたは複数の動作スタックに加える工程であって、前記1つまたは複数の動作スタックは前記1つまたは複数のリソースハンドル内に配置される工程と、
を備える工程と、
前記トランザクションマネージャーによって、成功したトランザクションまたは失敗したトランザクションを指示する工程であって、前記指示することは、前記共有リソースの前記状態に基づいている工程と、
前記成功したトランザクションを指示することに応答して、
前記トランザクションマネージャーによって、前記トランザクションを前記複数のコピーに適用する工程と、
前記トランザクションマネージャーによって、前記共有リソースおよび前記複数のコピーをコミットする工程と、
前記トランザクションマネージャーによって、前記変更された共有リソースに関連付けられた結果を返す工程と、
前記失敗したトランザクションを指示することに応答して、
前記トランザクションマネージャーによって、前記トランザクションが前記複数のコピーを変更することを防止する工程と、
ロールバックモジュールによって、前記変更された共有リソースへのロールバックを適用する工程であって、前記ロールバックは前記共有リソースの前記状態を前記第2の状態から前記第1の状態に戻す工程と、
前記ロールバックモジュールによって、前記コピーに前記ロールバックを適用する工程と、
前記ロールバックモジュールによって、成功したロールバックまたは失敗したロールバックを指示する工程と、
を備える、方法。 - 請求項1に記載の方法であって、前記パーティションは複数のトランザクションが各コピーに対して並行して実行されることを可能にする、方法。
- 請求項1に記載の方法であって、前記共有リソースは、スクリプトリソース、テンプレートリソース、またはスケジュールリソースのうちの少なくとも1つである、方法。
- 請求項1に記載の方法であって、前記動作は、処理サイクルにおいて1つの共有リソースを変更する、方法。
- 請求項1に記載の方法であって、前記トランザクションは、処理サイクルにおいて複数の共有リソースを変更する、方法。
- 請求項1に記載の方法であって、前記失敗したトランザクションを指示することは、
前記トランザクションマネージャーによって、前記複数のコピーに対する変更を防止する工程と、
前記トランザクションマネージャーによって、前記共有リソースに関連付けられた結果を先行して阻止する工程と、
をさらに備える、方法。 - 請求項1に記載の方法であって、
前記トランザクションマネージャーによって、前記動作スタックから1つまたは複数の動作ハンドルをクリッピングする工程であって、前記1つまたは複数の動作ハンドルは無効化を有し、前記無効化は最新の動作ハンドルに基づく
工程をさらに備える、方法。 - 請求項1に記載の方法であって、前記動作スタックは、LIFOデータ構造である、方法。
- 非一時的なコンピューター可読記憶媒体であって、プロセッサーによって実行されると、
トランザクションマネージャーによって、共有リソース上でトランザクションを実行する要求を受信する工程であって、前記共有リソースは複数のコピーを有し、前記複数のコピーのそれぞれのコピーは1つまたは複数のパーティションに配置されている工程と、
前記トランザクションマネージャーによって、前記要求されたトランザクションに基づいて前記共有リソースの状態を変更する工程であって、前記変更する工程は、前記共有リソースの前記状態を第1の状態から第2の状態に変更する工程であり、
状態マネージャーによって、1つまたは複数のリソースハンドルを生成する工程であって、前記1つまたは複数のリソースハンドルは前記共有リソースを表現する工程と、
前記トランザクションマネージャーによって、1つまたは複数の動作ハンドルを生成する工程であって、前記1つまたは複数の動作ハンドルのそれぞれは動作を記述し、前記動作は共有リソースの状態を第1の状態から第2の状態に変更する工程と、
前記トランザクションマネージャーによって、前記1つまたは複数の動作ハンドルを1つまたは複数の動作スタックに加える工程であって、前記1つまたは複数の動作スタックは前記1つまたは複数のリソースハンドル内に配置される工程と、
を備える工程と、
前記トランザクションマネージャーによって、成功したトランザクションまたは失敗したトランザクションを指示する工程であって、前記指示することは、前記共有リソースの前記状態に基づいている工程と、
前記成功したトランザクションを指示することに応答して、
前記トランザクションマネージャーによって、前記トランザクションを前記複数のコピーに適用する工程と、
前記トランザクションマネージャーによって、前記共有リソースおよび前記複数のコピーをコミットする工程と、
前記トランザクションマネージャーによって、前記変更された共有リソースに関連付けられた結果を返す工程と、
前記失敗したトランザクションを指示することに応答して、
前記トランザクションマネージャーによって、前記トランザクションが前記複数のコピーを変更することを防止する工程と、
ロールバックモジュールによって、前記変更された共有リソースへのロールバックを適用する工程であって、前記ロールバックは前記共有リソースの前記状態を前記第2の状態から前記第1の状態に戻す工程と、
前記ロールバックモジュールによって、前記コピーに前記ロールバックを適用する工程と、
前記ロールバックモジュールによって、成功したロールバックまたは失敗したロールバックを指示する工程と、
を前記プロセッサーに実行させる符号化された命令を有する、非一時的なコンピューター可読記憶媒体。 - 請求項9に記載の非一時的なコンピューター可読記憶媒体であって、前記パーティションは複数のトランザクションが各コピーに対して並行して実行されることを可能にする、非一時的なコンピューター可読記憶媒体。
- 請求項9に記載の非一時的なコンピューター可読記憶媒体であって、前記共有リソースは、スクリプトリソース、テンプレートリソース、またはスケジュールリソースのうちの少なくとも1つである、非一時的なコンピューター可読記憶媒体。
- 請求項9に記載の非一時的なコンピューター可読記憶媒体であって、前記動作は、処理サイクルにおいて1つの共有リソースを変更する、非一時的なコンピューター可読記憶媒体。
- 請求項9に記載の非一時的なコンピューター可読記憶媒体であって、前記トランザクションは、処理サイクルにおいて複数の共有リソースを変更する、非一時的なコンピューター可読記憶媒体。
- 請求項9に記載の非一時的なコンピューター可読記憶媒体であって、前記失敗したトランザクションを指示することは、
前記トランザクションマネージャーによって、前記複数のコピーに対する変更を防止する工程と、
前記トランザクションマネージャーによって、前記共有リソースに関連付けられた結果を先行して阻止する工程と、
をさらに備える、非一時的なコンピューター可読記憶媒体。 - 請求項9に記載の非一時的なコンピューター可読記憶媒体であって、
前記トランザクションマネージャーによって、前記動作スタックから1つまたは複数の動作ハンドルをクリッピングする工程であって、前記1つまたは複数の動作ハンドルは無効化を有し、前記無効化は最新の動作ハンドルに基づく
工程をさらに備える、非一時的なコンピューター可読記憶媒体。 - 請求項9に記載の非一時的なコンピューター可読記憶媒体であって、前記動作スタックは、LIFOデータ構造である、非一時的なコンピューター可読記憶媒体。
- システムであって、
コンピュータープロセッサーと、
前記コンピュータープロセッサーに結合されたコンピューター可読記憶媒体と、
を備え、
前記コンピューター可読記憶媒体は実行可能コードを格納し、前記コードは、前記コンピュータープロセッサーによって実行されると、
トランザクションマネージャーによって、共有リソース上でトランザクションを実行する要求を受信する工程であって、前記共有リソースは複数のコピーを有し、前記複数のコピーのそれぞれのコピーは1つまたは複数のパーティションに配置されている工程と、
前記トランザクションマネージャーによって、前記要求されたトランザクションに基づいて前記共有リソースの状態を変更する工程であって、前記変更する工程は、前記共有リソースの前記状態を第1の状態から第2の状態に変更する工程であり、
状態マネージャーによって、1つまたは複数のリソースハンドルを生成する工程であって、前記1つまたは複数のリソースハンドルは前記共有リソースを表現する工程と、
前記トランザクションマネージャーによって、1つまたは複数の動作ハンドルを生成する工程であって、前記1つまたは複数の動作ハンドルのそれぞれは動作を記述し、前記動作は共有リソースの状態を第1の状態から第2の状態に変更する工程と、
前記トランザクションマネージャーによって、前記1つまたは複数の動作ハンドルを1つまたは複数の動作スタックに加える工程であって、前記1つまたは複数の動作スタックは前記1つまたは複数のリソースハンドル内に配置される工程と、
を備える工程と、
前記トランザクションマネージャーによって、成功したトランザクションまたは失敗したトランザクションを指示する工程であって、前記指示することは、前記共有リソースの前記状態に基づいている工程と、
前記成功したトランザクションを指示することに応答して、
前記トランザクションマネージャーによって、前記トランザクションを前記複数のコピーに適用する工程と、
前記トランザクションマネージャーによって、前記共有リソースおよび前記複数のコピーをコミットする工程と、
前記トランザクションマネージャーによって、前記変更された共有リソースに関連付けられた結果を返す工程と、
前記失敗したトランザクションを指示することに応答して、
前記トランザクションマネージャーによって、前記トランザクションが前記複数のコピーを変更することを防止する工程と、
ロールバックモジュールによって、前記変更された共有リソースへのロールバックを適用する工程であって、前記ロールバックは前記共有リソースの前記状態を前記第2の状態から前記第1の状態に戻す工程と、
前記ロールバックモジュールによって、前記コピーに前記ロールバックを適用する工程と、
前記ロールバックモジュールによって、成功したロールバックまたは失敗したロールバックを指示する工程と、
を実行する、システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/950,031 | 2018-04-10 | ||
US15/950,031 US10698724B2 (en) | 2018-04-10 | 2018-04-10 | Managing shared resources in a distributed computing system |
PCT/IB2018/055020 WO2019197887A1 (en) | 2018-04-10 | 2018-07-06 | Managing shared resources in a distributed computing system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021521570A JP2021521570A (ja) | 2021-08-26 |
JP2021521570A5 JP2021521570A5 (ja) | 2021-10-07 |
JP7183384B2 true JP7183384B2 (ja) | 2022-12-05 |
Family
ID=68096528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021504583A Active JP7183384B2 (ja) | 2018-04-10 | 2018-07-06 | 分散コンピューティングシステムにおける共有リソースの管理 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10698724B2 (ja) |
JP (1) | JP7183384B2 (ja) |
CN (1) | CN112272823B (ja) |
AU (2) | AU2018418837A1 (ja) |
CA (1) | CA3096915C (ja) |
MX (1) | MX2020010647A (ja) |
WO (1) | WO2019197887A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015191451A (ja) | 2014-03-28 | 2015-11-02 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941647B2 (en) * | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
EP1151374B1 (en) * | 1999-01-28 | 2017-08-02 | Advanced Silicon Technologies, LLC | Executing programs for a first computer architecture on a computer of a second architecture |
US7539999B2 (en) * | 2003-10-23 | 2009-05-26 | Microsoft Corporation | Kernel-level transactions |
US7730286B2 (en) | 2005-12-30 | 2010-06-01 | Intel Corporation | Software assisted nested hardware transactions |
GB0625698D0 (en) | 2006-12-21 | 2007-01-31 | Ibm | Rollback support in distributed data management systems |
US20090064141A1 (en) | 2007-08-29 | 2009-03-05 | Microsoft Corporation | Efficient utilization of transactions in computing tasks |
US8275815B2 (en) | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
US8166481B2 (en) * | 2008-10-20 | 2012-04-24 | Microsoft Corporation | Transaction processing in transactional memory |
US20100274972A1 (en) * | 2008-11-24 | 2010-10-28 | Boris Babayan | Systems, methods, and apparatuses for parallel computing |
US9165025B2 (en) * | 2009-12-11 | 2015-10-20 | International Business Machines Corporation | Transaction recovery in a transaction processing computer system employing multiple transaction managers |
CN102103518B (zh) * | 2011-02-23 | 2013-11-13 | 运软网络科技(上海)有限公司 | 一种在虚拟化环境中管理资源的系统及其实现方法 |
CN102521028B (zh) * | 2011-12-02 | 2013-07-24 | 华中科技大学 | 一种分布式环境下的事务内存系统 |
US9152509B2 (en) * | 2011-12-13 | 2015-10-06 | Advanced Micro Devices, Inc. | Transactional memory conflict management |
WO2014003974A1 (en) * | 2012-06-26 | 2014-01-03 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
EP3063630B1 (en) | 2013-10-31 | 2018-10-10 | Hewlett-Packard Enterprise Development LP | Non-blocking registration in distributed transactions |
CN103995868B (zh) * | 2014-05-20 | 2017-07-21 | 科大国创软件股份有限公司 | 面向分布式系统的全局事务管理器及事务处理方法 |
GB2528270A (en) | 2014-07-15 | 2016-01-20 | Advanced Risc Mach Ltd | Call stack maintenance for a transactional data processing execution mode |
US11556396B2 (en) * | 2015-05-08 | 2023-01-17 | Seth Lytle | Structure linked native query database management system and methods |
CN106254466B (zh) * | 2016-08-05 | 2019-10-01 | 河海大学常州校区 | 基于局域网的hdfs分布式文件共享方法 |
CN106776052B (zh) * | 2016-12-07 | 2019-12-10 | 金蝶软件(中国)有限公司 | 共享资源访问方法和装置 |
CN106874074B (zh) * | 2016-12-26 | 2020-05-05 | 哈尔滨工业大学 | 一种基于软件事务内存的并发缺陷规避系统及方法 |
US10819756B2 (en) * | 2017-04-10 | 2020-10-27 | OpenLegacy Technologies Ltd. | Atomic transaction over non-persistent protocol(s) |
US10268502B2 (en) * | 2017-06-29 | 2019-04-23 | Intel Corporation | Methods and apparatus to perform atomic transactions in nonvolatile memory under hardware transactional memory |
-
2018
- 2018-04-10 US US15/950,031 patent/US10698724B2/en active Active
- 2018-07-06 AU AU2018418837A patent/AU2018418837A1/en not_active Abandoned
- 2018-07-06 JP JP2021504583A patent/JP7183384B2/ja active Active
- 2018-07-06 CA CA3096915A patent/CA3096915C/en active Active
- 2018-07-06 MX MX2020010647A patent/MX2020010647A/es unknown
- 2018-07-06 CN CN201880094512.5A patent/CN112272823B/zh active Active
- 2018-07-06 WO PCT/IB2018/055020 patent/WO2019197887A1/en unknown
-
2022
- 2022-04-28 AU AU2022202804A patent/AU2022202804B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015191451A (ja) | 2014-03-28 | 2015-11-02 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
Non-Patent Citations (1)
Title |
---|
Oracle8i レプリケーション・ガイド リリース8.1 ,初版,ORACLE,2000年02月28日,pp.2-1~2-21 |
Also Published As
Publication number | Publication date |
---|---|
JP2021521570A (ja) | 2021-08-26 |
WO2019197887A1 (en) | 2019-10-17 |
CA3096915C (en) | 2023-07-25 |
CN112272823B (zh) | 2024-04-23 |
US10698724B2 (en) | 2020-06-30 |
US20190310877A1 (en) | 2019-10-10 |
CA3096915A1 (en) | 2019-10-17 |
EP3776201A1 (en) | 2021-02-17 |
MX2020010647A (es) | 2021-01-15 |
AU2022202804A1 (en) | 2022-05-19 |
CN112272823A (zh) | 2021-01-26 |
AU2022202804B2 (en) | 2023-05-04 |
AU2018418837A1 (en) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8126843B2 (en) | Cluster-wide read-copy update system and method | |
US10503720B2 (en) | Providing eventual consistency for multi-shard transactions | |
CN106415538B (zh) | 使用共享文件访问-rest接口的文件服务 | |
US10067791B2 (en) | Methods and apparatus for resource management in cluster computing | |
US7640249B2 (en) | System and method for transactional session management | |
US9740582B2 (en) | System and method of failover recovery | |
US11061884B2 (en) | Method and system to accelerate transaction commit using non-volatile memory | |
US7240057B2 (en) | System and method for implementing journaling in a multi-node environment | |
EP1900189B1 (en) | Parallel filesystem traversal for transparent mirroring of directories and files | |
US7760743B2 (en) | Effective high availability cluster management and effective state propagation for failure recovery in high availability clusters | |
CN105955804B (zh) | 一种处理分布式事务的方法与设备 | |
US20120102506A1 (en) | Web service patterns for globally distributed service fabric | |
US20120331150A1 (en) | Systems management operationalworkflow templates | |
US20140373026A1 (en) | Method, Apparatus and System for Coordinating Execution of Tasks in a Computing System Having a Distributed Shared Memory | |
Memishi et al. | Fault tolerance in MapReduce: A survey | |
US7757119B2 (en) | Inherited transactions in asynchronous messaging | |
US11449241B2 (en) | Customizable lock management for distributed resources | |
Shrivastava et al. | Supporting transaction predictability in replicated DRTDBS | |
JP7183384B2 (ja) | 分散コンピューティングシステムにおける共有リソースの管理 | |
US8849916B2 (en) | Infrastructure management operational workflows | |
WO2023103340A1 (zh) | 一种区块数据提交的方法及装置 | |
KR20190109638A (ko) | 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체 | |
Pandey et al. | SP-LIFT: a serial parallel linear and fast-paced recovery-centered transaction commit protocol | |
González-Aparicio et al. | A transaction platform for microservices-based big data systems | |
US11424982B2 (en) | Remediation of a system to new desired state using configuration dependency graph |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210701 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210701 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220719 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221019 |
|
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: 20221025 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221122 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7183384 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |