JP2012515393A - トランザクションメモリにおけるトランザクション処理 - Google Patents

トランザクションメモリにおけるトランザクション処理 Download PDF

Info

Publication number
JP2012515393A
JP2012515393A JP2011546244A JP2011546244A JP2012515393A JP 2012515393 A JP2012515393 A JP 2012515393A JP 2011546244 A JP2011546244 A JP 2011546244A JP 2011546244 A JP2011546244 A JP 2011546244A JP 2012515393 A JP2012515393 A JP 2012515393A
Authority
JP
Japan
Prior art keywords
transaction
memory
resource manager
commit
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.)
Granted
Application number
JP2011546244A
Other languages
English (en)
Other versions
JP5501377B2 (ja
JP2012515393A5 (ja
Inventor
ダディオモブ アレクサンダー
グロフ ダナ
レバノニ ヨセフ
イー.ジョンソン ジェイムズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012515393A publication Critical patent/JP2012515393A/ja
Publication of JP2012515393A5 publication Critical patent/JP2012515393A5/ja
Application granted granted Critical
Publication of JP5501377B2 publication Critical patent/JP5501377B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

トランザクションメモリ処理システムによって、コンパイラレベルでのトランザクションメモリの概念を、上位レベルの従来のトランザクション処理システムへ統合する。コンパイラレベルでのアトミックブロックを、アトミックブロックトランザクションとして指定し、およびアトミック性および独立性の特徴を含むことができる。このアトミックブロックトランザクション内の動作は、リポジトリからのリソースマネージャの参加を含む。リポジトリは、あらかじめプログラムされたメモリリソースマネージャを含んで、トランザクションメモリを管理することができる。従来のトランザクションにおいて見られるように、コミットプロトコルを用いて動作が有効かどうかを決定することができ、トランザクションの外部にさらすことができる。しかしながら、従来のトランザクションと違って、動作のすべてが有効でない場合に、このトランザクションは、必ずしも駄目になるわけではない。むしろ、メモリの衝突によって、アトミックブロックトランザクションのロールバックおよび再実行を引き起こす。これらは、メモリリソースマネージャがコミットのために投票するまで、必要な限り繰り返されることが可能である。

Description

本発明は、トランザクションメモリにおけるトランザクション処理に関する。
共有メモリ・マルチプロセッサ・システムのための並列プログラミングは、マルチスレッドの性能を含み、同じデータへアクセスすることができる。マルチスレッドは、プロセッサ間で共有されるメモリに接続されている、マルチプロセッサ、マルチプロセッサコア、または、他の並列処理のクラスで実行する。共有メモリのモデルは、最も一般的に展開されているマルチスレッド伝達の方法である。それによって、マルチスレッドのプログラムは、順次プログラムとほぼ同じような方法で作成されることが可能である。共有メモリのモデルを実行するために、並列プログラミングは、競合およびこれと同等のものなどの望ましくない状況を引き起こしうる、共有データの並列アクセスおよび並列使用を避けるように注意する。
ロックは、共有データへの並列アクセスの問題を避けるための一般的な解決法である。ロックは、あるスレッドによってアクセスされた変数へ他のスレッドもアクセスを試みることができるが、その変数は同時には1つのスレッドによってのみ使用されうる、という前提に主として拠っている。ロックによって、1つのスレッドは、ロックが解除されるまで、変数の制御を行うこと、および、他のスレッドが変数を変更できないようにすることが可能である。ロックに基づいたプロトコルは、よく知られているが、しばしば使用が難しいと見なされる。粗い粒度でロックを使用することによって、比較的大きなデータを保護するが、通常は、粗い粒度でのロックの使用は効率的に処理をしない。スレッドは、それらが干渉しないときでさえ、互いを阻止し、このようなロックは、争いのもととなる。あるいはまた、より細かい粒度でロックを使用することによって、スケーラビリティの問題点を軽減することができるが、そのロックは、他の問題をもたらす。その理由は、正確さを保証し、およびデットロックを避けるロックの慣例的なやり方は、複雑でエラーが発生しやすくなるからである。
別の解決法は、トランザクションメモリを使用するアプリケーションを実装することである。トランザクションメモリ・システムは、スレッドの実行によって、スレッドのメモリアクセスを管理して、2または3以上のスレッドが衝突した形で同じメモリ位置へアクセスすることを試みる場合、スレッドの効果をロールバックまたは元に戻すようにする。トランザクションメモリ・システムは、ハードウエアおよび/またはソフトウエアのコンポーネントを使用して実装されうる。ソフトウエアによるトランザクションメモリ・システムによって、ソフトウエアのランタイムライブラリおよび/またはランタイム実行環境に意味をもたせ、および/またはコンパイラを使用する意味を持たせることができる。トランザクションメモリは、ある1つのスレッドによって読み出された変数は、他のスレッドによって修正されそうになく、ゆえに、その変数は、プログラムのスケーラビリティへの厳しい悪影響なく、共有できるという前提に基いて、共有メモリへのアクセスを制御するための、コンパイラレベルの並列の制御メカニズムとしてしばしば実装される。しかしながら、トランザクションメモリ・システムにおいてメモリアクセスを追跡することは、多分、プログラムの実行へオーバーヘッドを加えることになりうる。
粗いロックに基づいたプロトコルでのトランザクションメモリの1つの利点は、並列性が増加することである。トランザクションメモリにおいて、スレッドはデータへのアクセスを待つ必要がない。異なるスレッドは、安全かつ同時に、通常は同じロックのもとで保護されるデータ構造の別々の部分を修正することができる。失敗したトランザクションの再試行のオーバーヘッドにもかかわらず、多くの現実的な並列プログラムにおいて、競合がめったに起きないので、いくつかの個数のプロセッサまたはプロセッサコアから開始する、粗い粒度のロックに基づいたプロトコルを用いることによって性能が向上する。
トランザクションメモリの保証、および大規模な研究の主題であるにもかかわらず、広く使用され受け入れられるためには障害がある。例えば、プログラマーは、トランザクションメモリをよく知らず、実際的なユーザフレンドリーな実施が欠如しているので、トランザクションメモリを使用するのをためらう。
この概要は、簡単な形式にて、詳細な説明においてさらに後述される概念の抜粋を紹介するために提供される。この概要は、特許請求の範囲の主題の主要な特徴または本質的な特徴を特定することを意図しないし、特許請求の範囲の主題の範囲を限定するために使用されることも意図しない。
この開示は、コンパイラレベルでのトランザクションメモリの概念を、(データベーストランザクションなどの)上位レベルの従来のトランザクション処理へ統合することを指向している。コンパイラレベルでのアトミック(atomic)ブロックは、アトミックブロックトランザクションとして指定され、アトミック性および独立性の特徴を含むことができる。このアトミックブロックトランザクション内での動作は、利用可能なリソースマネージャのリポジトリからのリソースマネージャの参加(enlistment)を含む。そのリポジトリは、あらかじめプログラムされたメモリリソースマネージャを含んで、トランザクションメモリの管理をすることができる。従来のトランザクションにおいて見られるように、コミットプロトコルを用いて、動作が成功したかどうかを決定することができ、そして、その結果をトランザクションの外部に露出させることができる。しかしながら、従来のトランザクションと違って、このトランザクションは、動作のいくつかが有効でない場合に、必ずしも駄目になるわけではない。むしろ、メモリの衝突は、メモリを含むすべてのリソースマネージャのロールバック、およびアトミックブロックトランザクションの再実行を引き起こす。再実行は、メモリリソースマネージャの動作を含むすべての動作が成功裡に有効となるまで、必要な限り繰り返されることが可能である。
添付の図面は、実施形態のさらなる理解に供するために含まれ、この明細書に組み込まれ、および明細書の一部を構成する。これら図面は、実施形態を示し、および記述とともに実施形態の原理を説明するのに供される。他の実施形態、および実施形態の多くの意図した有利な点は、以下の詳細な説明を参照することでよりよく理解されるようになるにつれて、容易に認識されるであろう。これら図面の要素は、必ずしも互いに関連する縮尺比ではない。同様の参照番号は、対応する類似の部分を示す。
本開示の特徴を実装するコンピューティング装置の多数の可能な例のうちの1つを示すブロック図である。 図1のコンピューティングシステム例において実行されるトランザクションメモリ処理システムの一例を示すブロック図である。 図2のトランザクションメモリ処理システムにおいて使用されるプロセスの一例を示すフロー図である。 時系列に関して、図2のコミットプロトコルのプロセスの一例を示す概略図である。
以下の詳細な説明において、添付の図面を参照する。これら添付の図面は、詳細な説明をなし、これら図面において、例示によって、本発明を実施することのできる特定の実施形態を示す。本発明の範囲から逸脱することなく、他の実施形態を用いることができ、および構造上または論理上の変更を行うことができることが理解される。それゆえに、以下の詳細な説明は、限定的な意味にとられず、および本発明の範囲は、添付の特許請求の範囲によって定められる。本明細書に記載された種々の例示的な実施形態の特徴は、特に断わり書きがなされていない限り、互いに組み合わせることができることが理解される。
図1は、オペレーティング環境として採用されうる例示的なコンピュータシステムを示し、コンピューティング装置100のようなコンピューティング装置を含んでいる。基本的な構成において、コンピューティング装置100は、典型的には、少なくとも2つの処理装置(すなわち、プロセッサ102)、およびメモリ104を有するプロセッサアーキテクチャを含む。コンピューティング装置の正確な構成および種類に応じて、メモリ104は、(RAM(random access memory)のような)揮発性、(ROM(read only memory)、フラッシュメモリのような)不揮発性、またはこれら2つの組み合わせとすることができる。この基本的な構成は、図1で線106によって示されている。コンピューティング装置は、1または2以上のいくつかの形態をとることができる。このような形態は、パーソナルコンピュータ、サーバ、ハンドヘルド装置、(ビデオゲームコンソールのような)消費者向け電子装置、または他のものを含む。
コンピューティング装置100は、追加の特徴/機能を有することもできる。例えば、コンピューティング装置100は、着脱可能なストレージ108、および着脱不可能なストレージ110のような、磁気または光学ディスク、または半導体メモリ、またはフラッシュストレージ装置を含むが、これらに限られない、追加のストレージ(着脱可能および/または着脱不可能)を含むこともできる。コンピュータストレージ媒体は、コンピュータが読み取り可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージのためのいかなる適切な方法または技術において実行される、揮発性および不揮発性、着脱可能および着脱不可能な媒体を含む。メモリ104、着脱可能なストレージ108および着脱不可能なストレージ110は、すべて、コンピュータストレージ媒体の例である。コンピュータストレージ媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVD(digital versatile disc)、または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージ装置、USB(universal serial bus)フラッシュドライブ、フラッシュメモリカード、または他のフラッシュストレージ装置、または、所望の情報を格納するために使用でき、およびコンピューティング装置100によってアクセスできるいかなる他の媒体も含むが、これらに限定されない。このようなコンピュータストレージ媒体のいかなるものも、コンピューティング装置100の一部となりうる。
コンピューティング装置100は、コンピューティング装置100が、他のコンピュータ/アプリケーション/ユーザ115と通信できるようにする、1または2以上の通信接続114を含む。コンピューティング装置100は、キーボード、ポインティング装置(たとえばマウス)、ペン、音声入力装置、タッチ入力装置などの入力装置(複数可)112も含むことができる。コンピューティング装置100は、ディスプレイ、スピーカー、プリンタなどの出力装置(複数可)111も含むことができる。
コンピューティングシステム100は、システムプラットフォームを構成する、オペレーティングシステム・ソフトウエアプログラム、および1または2以上のソフトウエアアプリケーションを実行するように構成することができる。一つの例において、コンピューティングシステム100は、ランタイム環境と呼ばれるソフトウエアコンポーネントを含む。ランタイム環境は、オペレーティングシステムの一部として含まれることが可能であり、または、ソフトウエアのダウンロードとして後に含まれることが可能である。ランタイム環境は、典型的に、共通プログラミングの問題に対するあらかじめコード化された解決法を含んで、ソフトウエア開発者が、ランタイム環境で実行するためのアプリケーションなどのソフトウエアプログラムを作成することを支援する。ランタイム環境は、典型的に、バーチャルマシンも含み、それによって、ソフトウエアアプリケーションをランタイム環境で実行できるようにして、プログラマーは、特定のプロセッサ102の性能を考慮する必要がないようにする。ランタイム環境の例は、多くのものがあるがその中で、ワシントン州レッドモンドのマイクロソフト社の.NetCLR(Common Language Routine)、およびC++ルーティンを含む。
図2は、トランザクションメモリ処理システム200の例を示している。トランザクションメモリ処理システム200は、ランタイム環境において呼び出され、アトミックブロックトランザクション202をサポートすることができる。アトミックブロックトランザクション202は、スレッドにおけるソフトウエアコードのアトミックブロックとすることができる。アトミックブロックトランザクション202は、トランザクション境界201、203を含む。トランザクション境界201、203は、アトミックブロックを示し、トランザクションメモリ処理システム200に関与するコードを特定する。アトミックブロックトランザクション202は、少なくともトランザクションメモリの動作204を含むが、第2の、すなわちメモリ以外の動作206も含むように示されている。トランザクションメモリの動作204は、トランザクションメモリのメモリオペレーションを提供する。変数に影響を及ぼす動作、副次効果を及ぼす動作などの他の動作を、アトミックブロックトランザクションに含むことができる。システム200は、トランザクションメモリ動作204に対応するメモリリソースマネージャ208のように、少なくとも1つのメモリ動作に対応する少なくとも1つのメモリリソースマネージャを含む。システム200は、この例におけるメモリ以外の第2の動作206に対応するトランザクション202へ参加するメモリ以外のリソースマネージャ210のように、少なくとも1つのメモリ以外の動作に対応する少なくとも1つのメモリ以外のリソースマネージャを含むことができる。リソースマネージャ208、210は、トランザクション202に関与する動作に適したリソース212、214をそれぞれ管理する。リソースマネージャ208、210の動作は、トランザクションマネージャ216と調整される。トランザクションマネージャ216は、リソースマネージャ208、210と協働して、トランザクション202のアトミック性および独立性を確保する。トランザクションマネージャ216は、コミットプロトコル218を実装する。リソースマネージャ208、210も、コミットプロトコル218に関与する。別の例において、アトミックブロックトランザクションは、複数のリソースマネージャおよびリソースに対応する、3以上の動作を含むことができる。
トランザクション202は、単一のスレッドにより実行される互いに結合された動作のシーケンスである。スレッドは、共有メモリにおいて、他のプロセッサ上で同時に実行している他のスレッドを考慮し、または考慮しないで、データの修正を完了する。いずれにせよ、トランザクションの完了後、トランザクションメモリは、他のスレッドがアクセスしたデータへ同時に変更を行わなかったことを検証する。変更が有効化され、そしてその有効化が成功の場合、有効化された変更は、コミットオペレーションで不変とされる。有効化が失敗の場合、変更は取り消しまたは“ロールバック”され、およびトランザクション202は、有効化が成功するまで再実行される。
トランザクション202は、アトミック性および独立性の特徴を保有する。トランザクションは、アトミックであり、瞬間的に論理的に行われる。1つの動作が失敗すると、全部のトランザクションが失敗する。さらに、また、トランザクションは他のスレッドから独立しているので、変数は中間状態において他のスレッドにさらされることはない。いくつかの実施形態において、独立性は、トランザクション内で実行されているスレッドにのみ提供されるが、トランザクションの保護無しでデータへアクセスしているスレッドは、同時のトランザクションの中間状態に遭うかもしれない。ブロックの終わりに到達すると、トランザクションは、コミットされ、失敗(アボート)またはロールバックされ、および再実行される。したがって、コミットまたは失敗するユニットは、全部のプロセスよりむしろトランザクション202である。状態は、中間状態をさらすことよりむしろ元の形態に戻る。この点において、トランザクション202は、典型的には、コンパイラレベルで示され、トランザクションメモリを含むことを除いて、データベース技術のトランザクション、すなわちデータベーストランザクションと似ている。しかしながら、典型的な従来のトランザクション(例えば、データベーストランザクション)とは違って、トランザクション202は成功するまで再実行することができる。
リソースマネージャは、従来のトランザクション処理に存在し、トランザクションに関与するリソースを管理する。しかし、従来のトランザクション処理は、今までのところ、自動的に独立させ、およびメモリへの同時アクセスを同期させるために使用されていなかった。従来のトランザクション処理は、従来のトランザクションへ接続されていない、ロック、またはトランザクションメモリのメカニズムを用いる。本例の特徴は、トランザクションメモリの管理が、従来のトランザクションシステムの一部であり、共有メモリへのアクセスを制御しない従来のトランザクションとは違って、トランザクションメモリを従来の失敗のアトミック性と組み合わせているということである。トランザクションメモリの提案は、メモリおよび他のリソースにわたって、一般的な失敗のアトミック性を提供しない。トランザクションメモリの提案におけるエラー処理の複雑性は、アプリケーションが、部分的な失敗またはメモリ衝突の組み合わせから記録するのをしばしば妨げる。開発者は、いまだに、彼らが処置のとり方を知っている限られたセットのエラーの場合のための解決法を手動で作ることによって、回復機能を提供している。結果として、開発者は、生産性および品質の結果に苦しむ。加えて、手動によるエラー処理の解決法を作ることは、開発者にとって些細ではない作業をもたらしている。しかしながら、本開示の例は、トランザクションメモリを従来のトランザクション処理へ組み込むことで、失敗のアトミック性を提供する。ゆえに、すべてのサポートされた動作が実行されるか、あるいは、何も実行されなかったように見える。ランタイム環境は、メモリのためのあらかじめプログラムされたリソースマネージャとして、トランザクションメモリのメカニズムを使用することができる。他の適切な動作のためのあらかじめプログラムされたリソースマネージャは、そのようなリソースが使用されるときにランタイム環境において呼び出されうるライブラリまたはリポジトリに含まれることが可能である。
適切なリソースマネージャが、リソースマネージャのあらかじめプログラムされたライブラリに存在しない多くの場合、プログラム開発者は、使用するリソースマネージャをプログラムに書き込むか、または、それをライブラリへ加えることができる。これは、従来のトランザクション処理で使用される標準的な方法においてなされることが可能であり、これは、トランザクション処理システム200無しに、手動でエラー処理の解決法を作るよりも信頼性が高い。
さらに、従来のトランザクションにおいて使用されるリソースマネージャは、アトミック性(atomicity)、一貫性(consistency)、独立性(isolation)、および永続性(durability)(ACID)の特徴を保有する。一方、トランザクションメモリにおけるトランザクション処理は、一貫性および永続性の特徴を必要としない。結果として、リソースマネージャ208、210の例は、永続性リソースマネージャよりむしろ揮発性リソースマネージャとして実装することができる。揮発性リソースマネージャは、それらの状態を揮発性メモリに格納し、トランザクション状態の回復をサポートしない。したがって、揮発性リソースマネージャの開発は、永続性リソースマネージャの開発よりも著しく容易である。トランザクション処理システム200の場合、揮発性リソースマネージャは、永続性リソースマネージャより少ないシステムリソースを使用する。複数の揮発性リソースマネージャと共によく動作するトランザクションマネージャ216の例は、入手可能な軽量トランザクションマネージャである。このトランザクションマネージャは、より永続的なトランザクションマネージャから生じるオーバーヘッドを著しく減らすことができる。他の例は、永続性トランザクションマネージャまたはリソースマネージャを含むことができる。
リソースマネージャ208、210は、トランザクション202に自動的に参加し、トランザクションの結果にしたがって、それらの状態になされる変更へコミットまたはロールバックする。ランタイム環境は、トランザクションへの参加、およびトランザクションリソース212、214に関するトランザクションの管理を自動化することができる。トランザクション202におけるリソース212、214の参加にあたり、リソースは、トランザクションマネージャへ、動作204、206がリソースに反するトランザクションの働きを実行したいことを伝える。次に、動作204、206は、リソース212、214に反する働きを実行する。機能的なエラーまたは衝突が起きない場合、トランザクションマネージャ216は、コミットプロトコル218を適用して、リソースマネージャ208、210を通じてリソース212、214に対して、その状態にされた変更をコミットするように要求する。リソースマネージャ208、210のいずれか一方がエラーに遭遇した場合、トランザクションマネージャ216は、動作204、206によりトランザクションの内部でなされるすべての変更のロールバックを惹起させる。そうでなければ、トランザクションマネージャ216は、トランザクションをコミットさせるであろう。いずれの場合にも、トランザクションマネージャ216は、リソースマネージャ208、210へ決定を伝えることができる。
一つの例において、別のリソースマネージャがトランザクション202に参加する前に、メモリリソースマネージャ208は、初めはトランザクションマネージャとして作動する。他のリソースの動作が発生しない場合、リソースマネージャ208は、上位レベルのトランザクションマネージャ216無しで自ら実行することができる。いったん、メモリ以外のリソースマネージャ210などの別のリソースマネージャが仮にも参加するとすると、トランザクション処理システム200は、トランザクション202を、“メモリのみのトランザクション”から、トランザクションマネージャ216を採用するトランザクションへ進める。メモリリソース208は、リソースマネージャになる。
図3は、トランザクションメモリと組み合わせられるトランザクション処理で使用するプロセス例を参照番号300にて示す。参照番号302において、トランザクション202は、トランザクションメモリ処理システム200の例において実行する。トランザクションにおける動作(単数または複数)は、リソースを呼び出す。参照番号304において、プロセスは、適切なリソースマネージャが、リソースとともに動作するように自動的に参加することを要請する。そのリソースマネージャは、それがすでにトランザクションにおいて要請されているかどうかをチェックして判断する。もし要請されていなかった場合、リソースマネージャは、対応する動作が行われる前に、参加する。リソースマネージャ210は、トランザクションメモリの制御のもとで影響を及ぼされるメモリ変更を管理する。次に参照番号306において、動作は、リソースに適用されうる。参照番号306において、そのトランザクションにおける他の動作もまた、適切に参加したリソースマネージャを通じて動作する。
参照番号308において、トランザクションの終わり、または間近にて、トランザクションマネージャ216は、コミットプロトコル218を呼び出して、トランザクションが他のスレッドと衝突する場合にロールバックされるべきか、変更がコミットされるかを判断する。ある例におけるコミットプロトコル218は、1つのリソースマネージャのみがトランザクションへ参加される場合のように、1フェーズのコミットプロトコルとすることができる。別の例におけるコミットプロトコル218は、準備フェーズ310とコミットフェーズ314とを含む2フェーズのコミットプロトコルとすることができる。
特に、コミットするための要求をアプリケーションから受信すると、トランザクションマネージャ216は、2フェーズのコミットプロトコル218を使用することができる。2フェーズのコミットプロトコル218は、参照番号310において、トランザクション上で対応する投票(vote)を取得するために、参加した各リソースマネージャ208、210上で方法を呼び出すことによって、すべての参加要請された参加者の準備フェーズを開始する。リソースマネージャ208、210の各々は、それぞれ準備方法またはロールバック方法を呼び出すことによって、コミットまたはロールバックのいずれかに投票する。例えば、メモリ動作のリソースマネージャ208は、メモリ衝突が無い場合、コミットするために投票できる。コミットプロトコル218の第2フェーズにおいて、トランザクションマネージャは、すべてのリソースマネージャからいずれかの投票を受信してコミットするか、または、少なくとも1つの投票を受信してロールバックするかに応じて、適切に応答する。参照番号312において、トランザクションマネージャが、すべてのリソースマネージャからすべて一致したコミットする投票を受信した場合、参照番号314において、トランザクションマネージャ216は、各リソースマネージャのためのコミット方法を起動する。このトランザクションマネージャは、準備方法をすべて起動している。次に、リソースマネージャは、変更を永続的にして、コミットを完了する。次に、トランザクション202の解除後、参照番号316においてアプリケーションを進める。参照番号312において、いずれかのリソースマネージャが準備フェーズにおいてコミットしない投票をする場合、処理は失敗のときに次のように動作する。
メモリリソースマネージャ208により識別されるようにメモリ衝突により引き起こされた失敗は、トランザクションに参加したメモリ以外のリソースマネージャにより識別される失敗と区別できる。例えば、メモリ衝突により引き起こされた失敗によって、参照番号318において、トランザクションの自動的な再実行を行うことができる。一般に、トランザクション202を含むアプリケーションは、再実行が最終的に成功するときに、再実行に気が付かない。いくつかの実施形態において、メモリ以外のリソースマネージャ210などの他のリソースマネージャにより識別される失敗によって、トランザクションを失敗させて、再実行させない。例えば、1または2以上のメモリ以外のリソースマネージャがトランザクションのコミットに反対投票し、およびメモリリソースマネージャは、トランザクションをコミットする投票をする場合、トランザクションは再実行しない。参照番号318において、メモリリソースマネージャ208が、トランザクションのコミットに反対投票をする場合、メモリ以外のリソースマネージャのいくつか、またはすべてがコミットのために投票するにもかかわらず、参照番号318において320を介して302へのロールバックが生じる。この例では、再実行が生じる。その理由は、メモリ以外のリソースマネージャでの失敗は、メモリ衝突の結果であった可能性があるからである。すべてのリソースマネージャがトランザクションをコミットするために投票する場合、参照番号314において、トランザクションはコミットする。
図4は、2フェーズのコミットプロトコルのプロセス400の例を示す。このコミットプロトコルは、トランザクション202の終わり、または間近にて、実装することができる。このコミットプロトコルは、上述の要素308および310として実行することができる。メモリリソースマネージャ208およびトランザクションマネージャ216の動作は、同時並列の時系列402、404を参照して示される。メモリリソースマネージャ208(および、マネージャ210または他の該当するものなどの他のリソースマネージャ)により、特定のトランザクションにおいて投票することに関心があるという参加の通知406をトランザクションマネージャ216へ送る。トランザクションを備えるコードが終了するとき、通知406は、トランザクションマネージャ216が、コミットプロトコル218を開始する準備ができていることをトランザクションマネージャ216に通知する。参照番号408において、トランザクションマネージャは、準備の指令を、メモリリソースマネージャ208、およびトランザクションに参加するいずれか他のリソースマネージャへ発する。
参照番号408において、準備の指令を受信した後、参照番号410において、リソースマネージャ208、210は、それぞれのオブジェクトを有効にする処理を開始する。メモリリソースマネージャの場合、これは、メモリリソースマネージャが、他のスレッドとの衝突があったかどうかを判断するということを意味することができる。参照番号412において、リソースマネージャは、トランザクションマネージャ216へ提供される投票において検証結果を、投票として報告する。衝突がない場合、メモリリソースマネージャ208はコミットのために投票する。別な方法では、メモリリソースマネージャ208は、コミットしない投票をするか、他のリソースマネージャからのコミットのためのいずれかの投票を拒否する。
リソースマネージャのすべてがコミットのために投票する場合、参照番号414において、トランザクションマネージャ216は、メモリリソースマネージャ208およびリソースマネージャ210のような、トランザクションに参加するリソースマネージャのすべてへコミットの指令を送る。アトミックブロックトランザクションの結果としていかなるメモリの変更も、共有状態をコミットされ、他のスレッドにさらされる。メモリリソースマネージャの場合、トランザクションメモリは、コミットの指令を受信するまで、トランザクションの独立した作業のいずれもさらさない。このようなコミットの作業は、ロックの解除、バッファメモリ変更の書き戻し(ライトバック)、または暫定的なメモリ変更の取り消しを含む。参照番号416において、トランザクションの動作がいったんコミットすると、アプリケーションは次へ進む。参照番号418において、プロセス400は、キューで待機しているアプリケーションの他のコミット要求を処理することができる。
ある例において、2フェーズ・コミットプロトコルの動作は、プロセス400の順序で生じる。これらの例において、トランザクションマネージャのコミット順序を、準備の指令、およびリソースマネージャからの投票の受信と同期させる。別の例において、トランザクションメモリ処理システムは、悲観的ロックへ変換すること、およびプロセス400での参加を避けることが可能である。あるいはまた、トランザクションに関与するメモリを保証することができるトランザクションメモリ処理システムは、順番通り以外で動作を行うことができるトランザクションメモリアトミックブロックに関与する、すべての他のメモリから取り外される。
トランザクションメモリ処理システム200は、トランザクション内のトランザクション、つまり入れ子(ネステッド)トランザクションの使用を提供することもできる。このような場合、コミットプロトコル218は、データベーストランザクションの場合のように、入れ子をフラット(flat)または入れ子のままにする。フラットでは、入れ子トランザクションによるトランザクションは、1つのアトミックブロックのように見える。トランザクションがロールバックされる場合、入れ子トランザクションを含む全部のトランザクションを、再実行する。あるいはまた、トランザクションメモリ処理システムは、部分的なロールバックをサポートすることができ、ここで入れ子トランザクションは、コミットするまで再実行される。
トランザクション処理をトランザクションメモリと組み合わせることにより、生産性に利益をもたらす。開発者は、エラー処理および失敗のアトミック性の達成のために、特殊なコードを書くよりも、むしろ、リソースマネージャのあらかじめプログラムされたコードに依拠することができる。すべてのメモリアクセスは、トランザクションメモリの実装により、アトミックブロックトランザクションの範囲の中に自動的に含まれうる。その理由は、アトミックブロックおよびトランザクションの語彙的範囲は、同じだからである。これにより、開発者は、ある動作が成功し、他の動作が成功しない場合のすべての組み合わせのアドレスにコードを書くことを省くこともできる。
トランザクションリソースは、ワシントン州レッドモンドのマイクロソフト社によってサポートされるプラットフォーム上でサポートされる。このプラットフォームは、マイクロソフトSQLサーバという商品名のもとで販売されるもの、トランザクションメッセージキュー(MSMQ)、および、ウインドウズビスタ・トランザクショナルファイルシステムおよびトランザクショナルレジストリという商品名のもとで市販されているものなどのデータベースを含む。トランザクションは、ウインドウズオペレーティングシステムのバージョンNT4から利用可能なDTC(Distributed Transaction Coordinator)、ウインドウズXPより前のウインドウズのバージョンでのMTS、またはウインドウズビスタで初めて利用可能なKTM(Kernel Transaction Manager)という商品名のもとでマイクロソフト社により提供されるものなどのトランザクションマネージメント製品を使用して、作成および管理されうる。マイクロソフトから市販されている.NETなどの管理コードにおいて、システムトランザクションの特徴は、DTCを使用し、および自己のLTM(lightweight transaction manager)を提供する、管理アプリケーションプログラムのインターフェースを提供する。LTMは、メモリリソースマネージャなどの揮発性リソースマネージャの作成もする、メカニズムを提供する。かかる揮発性リソースマネージャは、データベースSQLなどの他のリソースマネージャとともにトランザクションに参加する。
特定の実施形態が、本明細書に示され、および説明されているけれども、当業者にとって、本発明の範囲から逸脱することなく、種々の代替および/または同等な実施形態を、ここに示され、および説明された特定の実施形態と置き換えることが可能であることが理解されるであろう。この出願は、本明細書で議論された特定の実施形態のいかなる改変または変形も包含することを意図する。それゆえ、本発明は、請求項およびそれらの均等物によってのみ限定されることを意図する。

Claims (15)

  1. 共有メモリへアクセスできるアトミックトランザクション(202)を制御する方法であって、
    少なくとも1つのメモリ以外のリソースマネージャ(210)を参加させること(304)と、
    トランザクションメモリ(212)を管理するように構成されたメモリリソースマネージャ(208)に参加させること(304)と、
    前記メモリ以外のリソースマネージャ(210)およびメモリのリソースマネージャ(208)が前記トランザクション(308)をコミットするために投票するかどうかを判断するように構成された、コミットプロトコルを呼び出すことと、
    前記メモリ以外のリソースマネージャ(210)およびメモリのリソースマネージャ(208)が前記トランザクション(314)をコミットするために投票する場合、前記トランザクションをコミットすることと、
    前記メモリのリソースマネージャ(208)が前記トランザクション(312)をコミットするために投票しない場合、前記トランザクション(302、318)を再実行することと、
    前記メモリ以外のリソースマネージャ(210)の少なくとも1つが前記トランザクション(312)をコミットするために投票しない場合、前記トランザクション(318)を失敗(アボート)とすることと
    を備えることを特徴とする方法。
  2. 前記共有メモリは、前記メモリリソースマネージャを参加させる前のオリジナル状態を含み、前記トランザクションを再実行することは、前記共有メモリを前記オリジナル状態へロールバックすることを含むことを特徴とする請求項1に記載の方法。
  3. 前記トランザクションをコミットすると、前記オリジナル状態への変更は、永続的なものとされ、および公開状態にされることを特徴とする請求項2に記載の方法。
  4. 前記トランザクションを再実行することは、前記トランザクションにおけるすべてのリソースマネージャがコミットするために投票するか、または前記トランザクションが失敗とされるまで、前記トランザクションを繰り返し再実行することを含むことを特徴とする請求項1に記載の方法。
  5. 前記トランザクション中にメモリ衝突が生じない場合、前記メモリリソースマネージャはコミットするために投票することを特徴とする請求項1に記載の方法。
  6. 前記トランザクションを再実行することは、前記メモリ以外のリソースマネージャが前記トランザクションをコミットするために投票するとき、および少なくとも1つのメモリリソースマネージャがアボートするために投票するときに生じることを特徴とする請求項1に記載の方法。
  7. 前記コミットプロトコルは、準備のフェーズおよびコミットのフェーズを含むことを特徴とする請求項1に記載の方法。
  8. 前記アトミックトランザクションの境界を定義することを含むことを特徴とする請求項1に記載の方法。
  9. 前記アトミックトランザクションは、入れ子アトミックトランザクションを含むことを特徴とする請求項1に記載の方法。
  10. 前記コミットプロトコルは、前記アトミックトランザクションおよび前記入れ子アトミックトランザクションをフラット化することを特徴とする請求項9に記載の方法。
  11. 前記入れ子アトミックトランザクションは、前記アトミックトランザクションが実行される前に、前期アトミックトランザクションがコミットされるまで実行されることを特徴とする請求項9に記載の方法。
  12. 前記リソースマネージャは、揮発性リソースマネージャであることを特徴とする請求項1に記載の方法。
  13. 共有メモリへアクセスできるアトミックトランザクション(202)を有するアプリケーションを動作させるように構成され、コンピューティング装置(100)上で運用されるランタイム環境であって、
    楽観的な並列性を通じて、前記共有メモリにおける変数へのアクセスを制御するように構成されたメモリ制御メカニズム(212)と、
    リソースマネージャ(208、210)のライブラリであって、少なくとも2つのリソースマネージャを、前記トランザクションに参加するように構成し、および前記コンピューティング装置(100)上でメモリ(104)にロードし、および前記少なくとも2つのリソースマネージャは、前記メモリ制御メカニズム(212)の管理に参加するように構成されたメモリリソースマネージャ(208)を含む、リソースマネージャのライブラリと、
    前記揮発性メモリ(104)にロードされ、および前記参加するリソースマネージャ(304、208、210)に結合されるトランザクションマネージャ(216)であって、前記トランザクションマネージャ(216)を、前記参加したリソースマネージャ(208、210)から、前記トランザクション(310)をコミットするかどうかについて、投票(218)を受信するように構成し、前記メモリリソースマネージャ(208)は、前記トランザクション(312)中にメモリ衝突が生じたかどうかに応じて投票する、トランザクションマネージャと
    を備えたことを特徴とするランタイム環境。
  14. 前記コンピューティング装置は、複数の並列クラスのうちの1つに配置された複数のプロセッサを含み、前記アトミックトランザクションは、少なくとも2つの前記プロセッサ上で実行する複数のスレッドを有するアプリケーションのスレッド上に含まれることを特徴とする請求項13に記載の方法。
  15. 前記メモリ制御メカニズムは、トランザクションメモリであることを特徴とする請求項13に記載のランタイム環境。
JP2011546244A 2009-01-14 2009-12-04 トランザクションメモリにおけるトランザクション処理 Expired - Fee Related JP5501377B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/353,905 US8166481B2 (en) 2008-10-20 2009-01-14 Transaction processing in transactional memory
US12/353,905 2009-01-14
PCT/US2009/066889 WO2010082983A2 (en) 2009-01-14 2009-12-04 Transaction processing in transactional memory

Publications (3)

Publication Number Publication Date
JP2012515393A true JP2012515393A (ja) 2012-07-05
JP2012515393A5 JP2012515393A5 (ja) 2012-12-27
JP5501377B2 JP5501377B2 (ja) 2014-05-21

Family

ID=42340247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011546244A Expired - Fee Related JP5501377B2 (ja) 2009-01-14 2009-12-04 トランザクションメモリにおけるトランザクション処理

Country Status (5)

Country Link
US (1) US8166481B2 (ja)
EP (1) EP2377029A4 (ja)
JP (1) JP5501377B2 (ja)
CN (1) CN102282548B (ja)
WO (1) WO2010082983A2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019512909A (ja) * 2016-02-23 2019-05-16 エヌチェーン ホールディングス リミテッドNchain Holdings Limited セキュアな投票及び配布に利用されるブロックチェーンが実装された計数システム及び方法
US11410145B2 (en) 2016-02-23 2022-08-09 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
US11455378B2 (en) 2016-02-23 2022-09-27 nChain Holdings Limited Method and system for securing computer software using a distributed hash table and a blockchain
US11606219B2 (en) 2016-02-23 2023-03-14 Nchain Licensing Ag System and method for controlling asset-related actions via a block chain
US11621833B2 (en) 2016-02-23 2023-04-04 Nchain Licensing Ag Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US11625694B2 (en) 2016-02-23 2023-04-11 Nchain Licensing Ag Blockchain-based exchange with tokenisation
US11727501B2 (en) 2016-02-23 2023-08-15 Nchain Licensing Ag Cryptographic method and system for secure extraction of data from a blockchain
US11936774B2 (en) 2016-02-23 2024-03-19 Nchain Licensing Ag Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US11972422B2 (en) 2016-02-23 2024-04-30 Nchain Licensing Ag Registry and automated management method for blockchain-enforced smart contracts

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386421B2 (en) 2010-06-28 2013-02-26 Microsoft Corporation Concurrency control for confluent trees
US8412689B2 (en) * 2010-07-07 2013-04-02 Microsoft Corporation Shared log-structured multi-version transactional datastore with metadata to enable melding trees
US20120079245A1 (en) * 2010-09-25 2012-03-29 Cheng Wang Dynamic optimization for conditional commit
US9848106B2 (en) 2010-12-21 2017-12-19 Microsoft Technology Licensing, Llc Intelligent gameplay photo capture
EP2756406B1 (en) 2011-09-14 2020-07-22 Hewlett-Packard Enterprise Development LP Imparting durability to a transactional memory system
US9110851B2 (en) * 2011-09-29 2015-08-18 Oracle International Corporation System and method for persisting transaction records in a transactional middleware machine environment
US9317549B2 (en) * 2013-06-25 2016-04-19 Optumsoft, Inc. Constraint-based consistency with snapshot isolation
US9858136B2 (en) 2014-09-30 2018-01-02 International Business Machines Corporation Resource manager failure handling in a multi-process transaction environment
US10140149B1 (en) * 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
CA3013182A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
US10310820B2 (en) * 2016-05-12 2019-06-04 Basal Nuclei Inc Programming model and interpreted runtime environment for high performance services with implicit concurrency control
US10698724B2 (en) * 2018-04-10 2020-06-30 Osisoft, Llc Managing shared resources in a distributed computing system
CN111722946A (zh) * 2020-06-28 2020-09-29 深圳壹账通智能科技有限公司 分布式事务处理方法、装置、计算机设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020364A (ja) * 1998-06-30 2000-01-21 Microsoft Corp 補償するリソ―ス・マネ―ジャ
JP2001188696A (ja) * 2000-11-20 2001-07-10 Toshiba Corp トランザクション処理の管理方法
JP2002049519A (ja) * 2000-08-03 2002-02-15 Nippon Yunishisu Kk 情報処理装置およびその方法
JP2003530646A (ja) * 2000-03-30 2003-10-14 マイクロソフト コーポレイション トランザクショナルファイルシステム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256514B (en) * 1991-05-21 1994-11-16 Digital Equipment Corp Commitment ordering for guaranteeing serializability across distributed transactions
US5504899A (en) * 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US6529932B1 (en) * 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
JP2000010810A (ja) * 1998-06-22 2000-01-14 Toshiba Corp トランザクション処理のコミット制御方法および同方法が適用される計算機システム
US6728958B1 (en) * 1998-07-31 2004-04-27 Hewlett-Packard Development Company, L.P. Volatile resource manager with pre-prepare notification
US6463456B1 (en) * 1999-09-01 2002-10-08 International Business Machines Corporation Efficient registration for distributed transaction systems
US7685583B2 (en) * 2002-07-16 2010-03-23 Sun Microsystems, Inc. Obstruction-free mechanism for atomic update of multiple non-contiguous locations in shared memory
US6938130B2 (en) * 2003-02-13 2005-08-30 Sun Microsystems Inc. Method and apparatus for delaying interfering accesses from other threads during transactional program execution
US7206903B1 (en) * 2004-07-20 2007-04-17 Sun Microsystems, Inc. Method and apparatus for releasing memory locations during transactional execution
US7856537B2 (en) * 2004-09-30 2010-12-21 Intel Corporation Hybrid hardware and software implementation of transactional memory access
US8099726B2 (en) * 2005-12-07 2012-01-17 Microsoft Corporation Implementing strong atomicity in software transactional memory
US7669015B2 (en) * 2006-02-22 2010-02-23 Sun Microsystems Inc. Methods and apparatus to implement parallel transactions
US7620850B2 (en) * 2006-06-09 2009-11-17 Sun Microsystems, Inc. Breakpoints in a transactional memory-based representation of code
US7434010B2 (en) * 2006-08-04 2008-10-07 Microsoft Corporation Combined pessimistic and optimisitic concurrency control
US8010550B2 (en) * 2006-11-17 2011-08-30 Microsoft Corporation Parallelizing sequential frameworks using transactions
US7949841B2 (en) * 2006-12-08 2011-05-24 Microsoft Corporation Protection of critical memory using replication
US7516365B2 (en) * 2007-07-27 2009-04-07 Sun Microsystems, Inc. System and method for split hardware transactions
US8108631B2 (en) * 2008-07-18 2012-01-31 Oracle America, Inc. Transactional memory support for non-coherent shared memory systems using selective write through caches
US20100083268A1 (en) * 2008-09-29 2010-04-01 Morris Robert P Method And System For Managing Access To A Resource By A Process Processing A Media Stream
US8001548B2 (en) * 2008-10-20 2011-08-16 Microsoft Corporation Transaction processing for side-effecting actions in transactional memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020364A (ja) * 1998-06-30 2000-01-21 Microsoft Corp 補償するリソ―ス・マネ―ジャ
JP2003530646A (ja) * 2000-03-30 2003-10-14 マイクロソフト コーポレイション トランザクショナルファイルシステム
JP2002049519A (ja) * 2000-08-03 2002-02-15 Nippon Yunishisu Kk 情報処理装置およびその方法
JP2001188696A (ja) * 2000-11-20 2001-07-10 Toshiba Corp トランザクション処理の管理方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019512909A (ja) * 2016-02-23 2019-05-16 エヌチェーン ホールディングス リミテッドNchain Holdings Limited セキュアな投票及び配布に利用されるブロックチェーンが実装された計数システム及び方法
US11347838B2 (en) 2016-02-23 2022-05-31 Nchain Holdings Ltd. Blockchain implemented counting system and method for use in secure voting and distribution
JP2022110150A (ja) * 2016-02-23 2022-07-28 エヌチェーン ホールディングス リミテッド セキュアな投票及び配布に利用されるブロックチェーンが実装された計数システム及び方法
JP7114469B2 (ja) 2016-02-23 2022-08-08 エヌチェーン ホールディングス リミテッド セキュアな投票及び配布に利用されるブロックチェーンが実装された計数システム及び方法
US11410145B2 (en) 2016-02-23 2022-08-09 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
US11455378B2 (en) 2016-02-23 2022-09-27 nChain Holdings Limited Method and system for securing computer software using a distributed hash table and a blockchain
US11606219B2 (en) 2016-02-23 2023-03-14 Nchain Licensing Ag System and method for controlling asset-related actions via a block chain
US11621833B2 (en) 2016-02-23 2023-04-04 Nchain Licensing Ag Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US11625694B2 (en) 2016-02-23 2023-04-11 Nchain Licensing Ag Blockchain-based exchange with tokenisation
US11727501B2 (en) 2016-02-23 2023-08-15 Nchain Licensing Ag Cryptographic method and system for secure extraction of data from a blockchain
US11755718B2 (en) 2016-02-23 2023-09-12 Nchain Licensing Ag Blockchain implemented counting system and method for use in secure voting and distribution
JP7411011B2 (ja) 2016-02-23 2024-01-10 エヌチェーン ライセンシング アーゲー セキュアな投票及び配布に利用されるブロックチェーンが実装された計数システム及び方法
US11936774B2 (en) 2016-02-23 2024-03-19 Nchain Licensing Ag Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US11972422B2 (en) 2016-02-23 2024-04-30 Nchain Licensing Ag Registry and automated management method for blockchain-enforced smart contracts

Also Published As

Publication number Publication date
CN102282548B (zh) 2015-06-17
CN102282548A (zh) 2011-12-14
JP5501377B2 (ja) 2014-05-21
EP2377029A2 (en) 2011-10-19
US20100100689A1 (en) 2010-04-22
WO2010082983A2 (en) 2010-07-22
WO2010082983A3 (en) 2010-09-10
US8166481B2 (en) 2012-04-24
EP2377029A4 (en) 2012-08-08

Similar Documents

Publication Publication Date Title
JP5501377B2 (ja) トランザクションメモリにおけるトランザクション処理
EP2150900B1 (en) Transactional memory using buffered writes and enforced serialization order
EP0735473B1 (en) Method and apparatus for managing a database in a distributed object operating environment
KR101669298B1 (ko) 트랜잭션 메모리 내에서의 부수 효과 액션들을 위한 트랜잭션 처리 기법
US7966459B2 (en) System and method for supporting phased transactional memory modes
US7793052B2 (en) System and method for implementing hybrid single-compare-single-store operations
US7860847B2 (en) Exception ordering in contention management to support speculative sequential semantics
JP2012515393A5 (ja)
US9501237B2 (en) Automatic mutual exclusion
Siek et al. Atomic RMI: A distributed transactional memory framework
US20030208489A1 (en) Method for ordering parallel operations in a resource manager
CN109901913B (zh) 一种可控重复执行次数的多线程事务存储编程模型方法
Gottschlich et al. Extending contention managers for user-defined priority-based transactions
Siek et al. Atomic RMI 2: Highly parallel pessimistic distributed transactional memory
Cotard et al. Stm-hrt: A robust and wait-free stm for hard real-time multicore embedded systems
Niederhut Software Transactional Memory in Pure Python.
Charles et al. TMBean: Optimistic Concurrency in Application Servers Using Transactional Memory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121108

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140124

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: 20140210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140311

R150 Certificate of patent or registration of utility model

Ref document number: 5501377

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

LAPS Cancellation because of no payment of annual fees