【手続補正書】
【提出日】平成23年6月20日(2011.6.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチスレッド処理環境内の１つまたは複数の実行スレッドによって実行される複数のトランザクションを管理するように動作可能なソフトウェアトランザクショナルメモリシステムを提供するステップであって、前記複数のトランザクションの実行により、前記１つまたは複数の実行スレッドからアクセス可能な共有メモリ内に配置されるオブジェクトに対するオペレーションが実行される、ステップと、
（ａ）前記オブジェクト自体への書込みと前記オブジェクト自体からの読込みを行う代わりに、前記オブジェクトのシャドウコピーへの書込みと該シャドウコピーからの読込みを行い、（ｂ）コミット中に前記複数のトランザクションの個々のトランザクションによって前記シャドウピーに対して行われた変更を、永続的なものにすべきと判断したことに応答して、前記シャドウコピーのコンテンツを前記オブジェクトに書き戻す、バッファリングされた書込みプロセスを提供するステップであって、前記バッファリングされた書込みプロセスは、オブジェクトのシャドウコピーの位置を、該オブジェクト内に記憶される該シャドウコピーへのポインタにアクセスすることによって決定する、ステップと、
前記複数のトランザクションをコミットする順序が前記複数のトランザクションの抽象的直列化順序に一致することを保証する、トランザクション順序付けプロセスを提供するステップと
を含むステップをコンピュータに実行させるためのコンピュータ実行可能命令を記録したことを特徴とするコンピュータ記録媒体。
【請求項２】
前記バッファリングされた書込みプロセスは、書込みロックが最初に取得されたときに前記オブジェクトのうちの特定の１つのオブジェクトの特定のシャドウコピーを作成するように動作可能であることを特徴とする請求項１に記載のコンピュータ記録媒体。
【請求項３】
前記バッファリングされた書込みプロセスは、前記オブジェクトのうちの特定の１つのオブジェクトの特定のシャドウコピーがすでに存在すると判断したことに応答して、該特定のシャドウコピーにアクセスするように動作可能であることを特徴とする請求項１に記載のコンピュータ記録媒体。
【請求項４】
前記トランザクション順序付けプロセスは、グローバルデータ構造を使用して、前記複数のトランザクションをコミットする前記順序が前記抽象的直列化順序に一致することを保証するように動作可能であることを特徴とする請求項１に記載のコンピュータ記録媒体。
【請求項５】
前記グローバルデータ構造は、入力コミットカウンタと終了コミットカウンタとを含み、前記入力コミットカウンタは、コミット処理に入ったトランザクションの第１の数を表し、前記終了コミットカウンタは、コミット処理を終了しトランザクションの第２の数を表すことを特徴とする請求項４に記載のコンピュータ記録媒体。
【請求項６】
前記個々のトランザクションは、コミット処理に入ると、前記入力コミットカウンタをアトミックに読み込んでインクリメントし、前記入力コミットカウンタから読み込んだ値を前記個々のトランザクションのチケット番号として割り当てることを特徴とする請求項５に記載のコンピュータ記録媒体。
【請求項７】
前記個々のトランザクションは、該個々のトランザクションがコミット処理の後に続行を許可される前、前記終了コミットカウンタが該個々のトランザクションの前記チケット番号に一致するまで待機することを特徴とする請求項６に記載のコンピュータ記録媒体。
【請求項８】
前記バッファリングされた書込みプロセス、および前記トランザクション順序付けプロセスの使用は、私有化関連問題が回避されることを保証することを特徴とする請求項１に記載のコンピュータ記録媒体。
【請求項９】
ソフトウェアトランザクショナルメモリシステムにおいて、バッファリングされた書込みを提供するための方法であって、
マルチスレッド処理環境において１つまたは複数の実行スレッドによって実行される複数のトランザクションを管理するように動作可能なソフトウェアトランザクショナルメモリシステムを提供するステップであって、前記複数のトランザクションの実行により、前記１つまたは複数の実行スレッドに対してアクセス可能な共有メモリ内に配置されたオブジェクトに対するオペレーションが実行される、ステップと、
特定のトランザクションに対する書込みロックを最初に取得したときに、特定のオブジェクトのシャドウコピーを作成するステップと、
前記特定のトランザクションの実行に応答して、前記特定のオブジェクトに対する書込みと読込みの代わりに前記シャドウコピーへの書込みと前記シャドウコピーからの読込みを行うステップであって、前記シャドウコピーへの書込みと前記シャドウコピーからの読込みは、前記特定のオブジェクトの前記シャドウコピーの位置を、前記特定のオブジェクト内に記憶された前記シャドウコピーへのポインタにアクセスすることによって決定することを含むステップと、
コミット中に前記特定のトランザクションによって前記シャドウコピーに対して行われた変更を永続的なものにすべきと判断したことに応答して、前記シャドウコピーのコンテンツを前記特定のオブジェクトに書き込むステップと
を含むことを特徴とする方法。
【請求項１０】
前記特定のオブジェクトは、オブジェクトヘッダ内に、ロックタイプおよびバージョンをトラッキングするように動作可能なトランザクショナルメモリワードを有することを特徴とする請求項９に記載の方法。
【請求項１１】
前記トランザクショナルメモリワードは、前記シャドウコピーへの前記ポインタを表すことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記特定のトランザクションは、前記特定のトランザクションが直列化された順序と同じ順序でコミット処理を終了することを許可されることを特徴とする請求項９に記載の方法。
【請求項１３】
前記特定のトランザクションは、前記特定のトランザクションのチケット番号が、コミットを許可されるべき次のトランザクションを識別するグローバルカウンタに一致するまで、コミット処理を終了しないことを特徴とする請求項１２に記載の方法。
【請求項１４】
請求項９に記載のステップをコンピュータに実行させるためのコンピュータ実行可能命令を有することを特徴とするコンピュータ記録媒体。
【請求項１５】
ソフトウェアトランザクショナルメモリシステムにおいて、トランザクションを直列化順序でコミットすることを保証するための方法であって、
マルチスレッド処理環境において１つまたは複数の実行スレッドによって実行される複数のトランザクションを管理するように動作可能なソフトウェアトランザクショナルメモリシステムを提供するステップあって、前記複数のトランザクションの実行により、前記１つまたは複数の実行スレッドに対してアクセス可能な共有メモリ内に配置されたオブジェクトに対するオペレーションが実行される、ステップと、
コミット処理に入ったトランザクションの第１の数を表す入力コミットカウンタを提供するステップであって、前記トランザクションのコミット処理は、前記トランザクションによって行われた特定のオブジェクトのシャドウコピーへの変更を、永続的なものにすべきかどうかを判断することを含み、前記シャドウコピーへの変更は、前記特定のオブジェクトに記憶された前記シャドウコピーへのポインタにアクセスすることによって前記シャドウコピーの位置を決定することを含む、ステップと、
コミット処理を終了したトランザクションの第２の数を表す終了コミットカウンタを提供するステップと、
前記複数のトランザクションのうちの特定のトランザクションがコミット処理に入ったときに、前記入力コミットカウンタをアトミックに読み込んでインクリメントし、前記入力コミットカウンタから読み込んだ値を前記特定のトランザクションのチケット番号として割り当てるステップと、
前記終了コミットカウンタが前記特定のトランザクションの前記チケット番号に一致するときに、前記特定のトランザクションをコミットするステップと
を含むことを特徴とする方法。
【請求項１６】
前記特定のトランザクションがコミットするまで、バッファリングされた書込みプロセスを使用してオブジェクトのシャドウコピーへの書込みと該シャドウコピーからの読込みを行うことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記特定のオブジェクトの前記シャドウコピーは、前記特定のトランザクションによって書込みロックが最初に取得されたときに作成されることを特徴とする請求項１６に記載の方法。
【請求項１８】
書込みは、前記特定のオブジェクトの前記シャドウコピーに行われ、読込みは、前記特定のオブジェクトの前記シャドウコピーから行われることを特徴とする請求項１７に記載の方法。
【請求項１９】
コンテンツは、コミットにおいて前記特定のトランザクションの妥当性が確認された後、前記シャドウコピーから前記特定のオブジェクトに書き込まれることを特徴とする請求項１８に記載の方法。
【請求項２０】
請求項１５に記載のステップをコンピュータに実行させるためのコンピュータ実行可能命令を有することを特徴とするコンピュータ記録媒体。