JP2012515393A

Transaction processing in transactional memory

Abstract

The transaction memory processing system integrates the concept of transaction memory at the compiler level into the traditional transaction processing system at the higher level. Atomic blocks at the compiler level can be specified as atomic block transactions and include atomic and independent features. The behavior within this atomic block transaction involves the participation of the resource manager from the repository. The repository can manage transactional memory, including a pre-programmed memory resource manager. As seen in traditional transactions, the commit protocol can be used to determine if an operation is valid and exposed to the outside of the transaction. However, unlike traditional transactions, this transaction does not necessarily fail if all of the actions are not valid. Rather, memory conflicts cause rollback and re-execution of atomic block transactions. These can be repeated as long as necessary until the memory resource manager votes for the commit.

Term

Projected expiry 4 December 2029.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

15 claims: 4 independent, 11 dependent

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