【手続補正書】
【提出日】平成25年12月17日(2013.12.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
トランザクションに関与するオブジェクトの１つ又は複数の指示を取得するステップと、
前記トランザクションに関与する前記オブジェクトのための、記憶装置における記憶位置の第１のセットを特定するステップと、
前記トランザクションとの関係において修正されたオブジェクトの論理的コピーを作成するステップと、
前記論理的コピーのための、前記記憶装置における記憶位置の第２のセットを決定するステップと、
前記オブジェクトの前記論理的コピーを原子単位で結び付ける関連付けを作成するステップと、
前記記憶装置上の前記オブジェクトのオリジナルを維持したまま前記関連付け及び前記論理的コピーを前記記憶装置に書き込む１つ又は複数の要求を送信するステップと、
障害が発生した後にリカバリ動作を実施するステップと、
を含み、前記リカバリ動作は、
前記トランザクションとの関係において修正されたオブジェクトの全てのコピーが前記記憶装置に存在するか否かを判断するステップと、
前記トランザクションとの関係において修正されたオブジェクトのうちの１つに対応するオブジェクトのコピーが前記記憶装置に存在しないと判断された場合に、前記トランザクションとの関係において修正されたオブジェクトの前記記憶装置内に存在する全ての前記コピーに対する修正を放棄するステップと、
を含む、少なくとも部分的にコンピューターによって実現される方法。
【請求項２】
トランザクションに関与するオブジェクトの１つ又は複数の指示を取得する前記ステップは、前記トランザクションとの関係において前記オブジェクトを修正する要求と共に前記オブジェクトの識別子を受信するステップを含み、前記トランザクションに関与する前記オブジェクトのための、記憶装置における記憶位置の第１のセットを特定する前記ステップは、前記識別子を探索テーブルにおけるキーとして利用するステップであって、前記探索テーブルは前記キーを前記オブジェクトが記憶装置内に記憶されている位置と関連付けている、ステップを含む、請求項１に記載の方法。
【請求項３】
前記第２のセットに含まれる各記憶位置は、前記第１のセットに含まれる各記憶位置と異なり、前記オブジェクトの論理的コピーを作成する前記ステップは、前記トランザクションの間に修正されたオブジェクトの一部分のコピーを作成するステップを含む、請求項１に記載の方法。
【請求項４】
前記オブジェクトの前記論理的コピーを原子単位で結び付ける関連付けを作成する前記ステップは、前記論理的コピーのペア間のリンクを作成するステップを含み、各リンクは、前記ペアの論理的コピーのうちの少なくとも１つに対する正しいコンテンツを示すハッシュ値を含む、請求項１に記載の方法。
【請求項５】
前記関連付け及び前記論理的コピーを書き込む１つ又は複数の要求を送信する前記ステップは、前記論理的コピーのためのそれぞれの記憶位置を示すデータ構造を書き込む１つ又は複数の要求を送信するステップ、前記論理的コピーのうち１つを除いてそれ以外の全てを前記記憶装置に書き込む１つ又は複数の要求を送信するステップ、及び、前記論理的コピーのうちの当該１つを書き込む要求の送信を予め定められたイベントが発生するまで待機するステップを含む、請求項１に記載の方法。
【請求項６】
前記論理的コピーのうちの当該１つを書き込む要求の送信を予め定められたイベントが発生するまで待機する前記ステップは、別のトランザクションが完了するまで、予め定められた時間期間が経過するまで、及びチェックポイントに到達するまで、のうちの１つ又は複数の間、待機するステップを含む、請求項５に記載の方法。
【請求項７】
前記リカバリ動作は、更に、
不揮発性記憶装置内のオブジェクトの最後に知られた正しい記憶位置を示す第１のデータ構造を取得するステップと、
前記論理的コピーが記憶されることが予定された前記不揮発性記憶装置の記憶位置を示す別のデータ構造を取得するステップであって、前記別のデータ構造は更に、前記論理的コピーの正しいコンテンツを示しているハッシュからなる第１のセットを示す、ステップと、
前記記憶位置に配置されたコンテンツを読み出すステップと、
前記コンテンツのハッシュからなる第２のセットを計算するステップと、
もし前記ハッシュの第１及び第２のセットの対応する要素が等しければ、前記論理的コピーが前記記憶位置に記憶されていることを示すように前記第１のデータ構造を更新するステップと、
もし前記ハッシュの第１及び第２のセットの対応する要素の何れかが等しくなければ、前記リカバリ動作を終了するステップと、
を含む、請求項１に記載の方法。
【請求項８】
全ての論理的コピーを前記記憶装置の不揮発性メモリへ掃き出すことに成功した後に、前記オブジェクトの前記オリジナルに関連付けられた記憶位置が使用可能であること、及び前記論理的コピーに関連付けられた記憶位置が有効であることを示すステップを更に含む、請求項１に記載の方法。
【請求項９】
コンピューター実行可能命令を有するコンピューター記憶媒体であって、前記コンピューター実行可能命令は、実行されると、
１つ又は複数のトランザクションの更新に関与するオブジェクトの指示を取得するステップと、
前記オブジェクトを記憶装置の第１の記憶位置において特定するステップと、
前記１つ又は複数のトランザクションとの関係において前記オブジェクトに対して行われた変更を含む、前記オブジェクトの論理的コピーを作成するステップと、
前記論理的コピーを記憶するための、前記記憶装置の第２の記憶位置を決定するステップと、
変更された前記論理的コピーを前記第２の記憶位置に書き込む要求を送信するステップと、
前記要求の送信と共に、別のトランザクションに関連する論理的コピーが存在する場合に当該論理的コピーが書き込まれるべき次の記憶位置を示すデータを供給するステップと、
前記論理的コピーが前記第２の記憶位置に記憶されていることを示すように揮発性データ構造を更新するステップと、
前記揮発性データ構造に対する変更を前記記憶装置に書き込む要求を送信し、前記変更を書き込む要求の送信と共に、前記記憶装置に関連付けられたキャッシュを前記記憶装置の不揮発性メモリに書き込むことを前記記憶装置のコントローラーへ指示するフラッシュコマンドを、前記記憶装置へ送信するステップと、
を含むアクションを実行する、コンピューター記憶媒体。
【請求項１０】
前記オブジェクトを記憶装置の第１の記憶位置において特定する前記ステップは、前記オブジェクトの識別子を受信するステップ、及び、前記識別子を用いて、識別子と記憶位置とを関連付けるデータ構造における関連付けを探索するステップを含む、請求項９に記載のコンピューター記憶媒体。
【請求項１１】
リカバリアクションを実行するステップを更に含み、当該ステップは、
リンクされたリストの先頭位置を特定するステップであって、前記リンクされたリストの各要素は、前記リンクされたリストによって特定される前記記憶装置の記憶位置に書き込まれるべき論理的コピーに関連付けられている、ステップと、
前記リンクされたリストの要素が前記要素に関連付けられた記憶位置に書き込まれていない論理的コピーに関連付けられるまで、前記リンクされたリストを反復適用するステップと、
前記リンクされたリストの反復適用と共に、論理的コピーが前記要素によって特定される前記記憶位置に書き込まれた各要素に対して、前記論理的コピーに関連付けられたオブジェクトのための新たな記憶位置を示すようにデータ構造を更新するステップと、
を含む、請求項９に記載のコンピューター記憶媒体。
【請求項１２】
トランザクションに関与するオブジェクトを修正する要求を受信するように動作可能なインターフェースと、
不揮発性メモリ及び揮発性メモリを有する記憶装置と、
前記不揮発性メモリへの書き込みを、前記書き込みの要求が受信された順序と異なる順序で続行することを潜在的に可能にする記憶装置コントローラーと、
アクションを実行するように動作可能なＩ／Ｏマネージャーであって、前記アクションは、
前記オブジェクトを前記記憶装置の第１の記憶位置において特定するステップと、
前記トランザクションとの関係において前記オブジェクトに対して行われた変更を含む、前記オブジェクトの論理的コピーを作成するステップと、
前記論理的コピーを記憶するための、前記記憶装置の第２の記憶位置を決定するステップと、
変更された前記論理的コピーを前記第２の記憶位置に書き込む要求を送信するステップと、
前記論理的コピーが前記第２の記憶位置に記憶されていることを示すように揮発性データ構造を更新するステップと、
を含むＩ／Ｏマネージャーと、
アクションを実行するように動作可能なリカバリマネージャーであって、前記アクションは、
前記オブジェクトの変更された前記論理的コピー、及び、前記オブジェクトに原子性を有して結合されている少なくとも１つの他のオブジェクトのそれぞれに対する変更された論理的コピーが、前記第２の記憶位置に書き込まれたか否かを判断するステップと、
前記オブジェクトの前記論理的コピーと前記少なくとも１つの他のオブジェクトのそれぞれに対する前記論理的コピーとのうちの少なくとも一方に対応する変更が前記第２の記憶位置に書き込まれなかったと判断された場合に、前記オブジェクトの前記論理的コピー及び前記少なくとも１つの他のオブジェクトの前記論理的コピーに対応する前記第２の記憶位置に書き込まれた変更を放棄するステップと、
を含むリカバリマネージャーと、
を含む、計算機環境におけるシステム。
【請求項１３】
前記インターフェースは更に、前記トランザクションに関与する前記少なくとも１つの他のオブジェクトのうちの１つを修正する要求を受信するように動作可能であり、前記Ｉ／Ｏマネージャーは更に、付加的なアクションを実行するように動作可能であり、前記付加的なアクションは、
前記少なくとも１つの他のオブジェクトのうちの前記１つと前記オブジェクトを１つに結び付ける関連付けを作成するステップと、
変更された前記論理的コピーを前記第２の記憶位置に書き込む要求の前記送信と共に、前記関連付けを書き込む要求を前記記憶装置コントローラーへ送信するステップと、
を含む、請求項１２に記載のシステム。
【請求項１４】
前記揮発性データ構造を書き込む要求、及び、前記記憶装置の前記揮発性メモリから前記不揮発性メモリへデータを掃き出すように前記記憶装置コントローラーに指示するフラッシュ要求を、前記記憶装置コントローラーへ送信するように動作可能なチェックポイントマネージャーを更に含む、請求項１２に記載のシステム。
【請求項１５】
前記リカバリマネージャーは、前記オブジェクトの変更された前記論理的コピーの記憶されたハッシュと前記第２の記憶位置から読み出されたコンテンツにより計算されるハッシュとの比較に基づいて、前記オブジェクトの変更された前記論理的コピーが前記第２の記憶位置に書き込まれたかどうかを決定するように更に動作可能であり、もし前記ハッシュが等しければ前記オブジェクトの前記論理的コピーが前記第２の記憶位置に記憶されていることを示すよう別のデータ構造を更新するように更に動作可能である、請求項１２に記載のシステム。