【手続補正書】
【提出日】平成17年2月1日(2005.2.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
異なるデータ項目コピーを含み得る多数のキャッシュを備えたシステム内でキャッシュを管理するための方法であって、
前記多数のキャッシュの第１のノード内のデータ項目を修正して修正されたデータ項目を作成するステップと、
前記第１のノードからの前記修正されたデータ項目を永続的記憶装置に永続的に記憶せずに、前記修正されたデータ項目を前記第１のノードから前記多数のキャッシュの第２のノードに送信するステップと、
前記修正されたデータ項目が前記第１のノードから前記第２のノードに送信された後、前記第１のノードが前記データ項目のマスタに対して前記データ項目を永続的記憶装置に書込むための要求を送信するステップと、
前記要求に応答して、前記マスタが前記多数のキャッシュと協調して前記データ項目を永続的記憶装置に書込ませるステップとを含む、方法。
【請求項２】
前記方法は、順序づけられた一連のビン内で、データ項目の過去イメージバージョンのためのエントリを維持するステップを含み、
前記順序づけられた一連の中の各ビンは、時間範囲に対応し、
ある特定のビンは、データ項目が前記第１のノード内で修正される時間をカバーする時間範囲に対応し、
要求を送信する前記ステップは、前記順序づけられた一連のビンのうちのある特定のビンを永続的記憶装置に書込むための要求を送信することによって行なわれる、請求項１に記載の方法。
【請求項３】
前記マスタが前記多数のキャッシュと協調して前記データ項目を永続的記憶装置に書込ませる前記ステップは、前記マスタが前記多数のキャッシュにデータ項目を永続的記憶装置に書込ませて前記特定のビンの時間範囲中に修正されたデータ項目のすべての過去イメージバージョンをカバーするステップを含む、請求項２に記載の方法。
【請求項４】
前記多数のキャッシュがデータ項目を永続的記憶装置に書込んで前記特定のビンの時間範囲中に修正されたデータ項目のすべての過去イメージバージョンをカバーした後、前記
特定のビンを空にするステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記特定のビンを空にする前記ステップは、
前記特定のビンの時間範囲内の、最後にダーティ化された時間を有する過去イメージに関連する前記特定のビン内のエントリを破棄するステップと、
前記特定のビンの時間範囲よりも後の最後にダーティ化された時間を有する過去イメージに関連する前記特定のビン内のエントリを１つ以上の他のビンに移動させるステップとを含む、請求項４に記載の方法。
【請求項６】
マスタに対して要求を送信する前記ステップは、前記要求をグローバルロックマネージャに送信することによって行なわれる、請求項１に記載の方法。
【請求項７】
マスタに対して要求を送信する前記ステップは、分散ロック管理システム内の複数のロックマネージャのうちの１つであるロックマネージャに前記要求を送信することによって行なわれる、請求項１に記載の方法。
【請求項８】
前記データ項目が永続的記憶装置に書込まれたことに応答して、前記データ項目が永続的記憶装置に書込まれたことを表わす書込通知メッセージを前記マスタから該当のノードに送信するステップをさらに含む、請求項１に記載の方法。
【請求項９】
書込通知メッセージを送信する前記ステップは、複数のデータ項目が永続的記憶装置に書込まれたことを少なくとも１つの該当のノードに通知する単一のメッセージを、前記マスタが前記少なくとも１つの該当のノードに送信するステップを含む、請求項８に記載の方法。
【請求項１０】
前記第１のノードが前記データ項目のマスタに対して前記データ項目を永続的記憶装置に書込むための要求を送信する前記ステップは、前記第１のノードが、複数のデータ項目を永続的記憶装置に書込むことを要求する単一のメッセージを前記マスタに送信するステップを含み、前記複数のデータ項目は前記データ項目を含む、請求項１に記載の方法。
【請求項１１】
単一のメッセージを送信する前記ステップは、ビンを識別するメッセージを送信して前記ビンに属するすべてのデータ項目が永続的記憶装置に書込まれることを要求するステップを含む、請求項１０に記載の方法。
【請求項１２】
前記ビンは、時間範囲に関連し、前記時間範囲中に前記第１のノードによってまずダーティ化され、かつ後に、永続的記憶装置にまず初めに書込まれることなく他のノードに転送されたデータ項目を含む、請求項１１に記載の方法。
【請求項１３】
書込通知メッセージを前記マスタから該当のノードに送信する前記ステップは、
書込通知メッセージを第１のセットの該当ノードに即座に送信するステップを含み、
前記第１のセットの該当ノードは、前記データ項目が永続的記憶装置に書込まれることを要求した該当のノードを含み、書込通知メッセージを前記マスタから該当のノードに送信する前記ステップはさらに、
第２のセットのノードへの書込通知メッセージの送信を遅延するステップを含み、
前記第２のセットのノードは、前記第１のセットの該当ノードに属さない該当のノードを含む、請求項８に記載の方法。
【請求項１４】
前記マスタから該当のノードに送信する前記ステップは、少なくとも１つの該当のノードへの書込通知メッセージの送信を遅延するステップを含む、請求項８に記載の方法。
【請求項１５】
書込通知メッセージは、少なくとも１つの該当のノードによって行なわれるロック要求に応答して、前記少なくとも１つの該当のノードに送信される、請求項１４に記載の方法。
【請求項１６】
書込通知メッセージは、前記データ項目が永続的記憶装置に書込まれることを前記少なくとも１つの該当のノードが要求したことに応答して、前記少なくとも１つの該当のノードに送信される、請求項１４に記載の方法。
【請求項１７】
書込通知メッセージは、前記少なくとも１つの該当のノードが別のデータ項目を別のノードに転送するように前記マスタが前記少なくとも１つの該当のノードに送信するping要求内で前記少なくとも１つの該当のノードに送信される、請求項１４に記載の方法。
【請求項１８】
協調する前記ステップは、
前記修正されたバージョンと少なくとも同じぐらい新しい前記データ項目のバージョンが既に永続的記憶装置に書込まれたかを判断するステップと、
前記修正されたバージョンと少なくとも同じぐらい新しい前記データ項目のバージョンが既に永続的記憶装置に書込まれていた場合、書込通知メッセージを前記マスタから送信して、前記修正されたバージョンと少なくとも同じぐらい新しい前記データ項目のバージョンが既に永続的記憶装置に書込まれたことを前記第１のノードに通知するステップとを含む、請求項１に記載の方法。
【請求項１９】
協調する前記ステップは、前記修正されたバージョンと少なくとも同じぐらい新しい前記データ項目のバージョンがまだ永続的記憶装置に書込まれていない場合には前記マスタから書込実行メッセージを送信して前記修正されたバージョンが永続的記憶装置に書込まれるための許可を与えるステップを含む、請求項１８に記載の方法。
【請求項２０】
協調する前記ステップは、
前記データ項目のある特定のバージョンを有する、前記多数のキャッシュのある特定のノードを選択するステップを含み、前記特定のバージョンは、前記第１のノード内の前記修正されたデータ項目と少なくとも同じぐらい新しく、協調する前記ステップはさらに、
前記データ項目の前記特定のバージョンを前記特定のノードから永続的記憶装置に書込ませるステップを含む、請求項１に記載の方法。
【請求項２１】
ある特定のノードを選択する前記ステップは、前記データ項目の最も最近に修正されたバージョンを有する、前記多数のキャッシュのうちのノードを選択するステップを含む、請求項２０に記載の方法。
【請求項２２】
前記データ項目の前記特定のバージョンが永続的記憶装置に書込まれたという確認を前記マスタが受取ったことに応答して、前記データ項目が永続的記憶装置に書込まれたことを前記マスタが前記第１のノードに知らせるステップをさらに含む、請求項２０に記載の方法。
【請求項２３】
前記データ項目の前記特定のバージョンが永続的記憶装置に書込まれたという確認を前記マスタが受取ったことに応答して、前記データ項目が永続的記憶装置に書込まれたことを前記マスタがキャッシュセットに知らせるステップをさらに含み、
前記キャッシュセットは、前記特定のバージョンよりも新しくはない前記データ項目の修正バージョンを含む、前記特定のノード以外のキャッシュを含む、請求項２０に記載の方法。
【請求項２４】
異なるデータ項目コピーを含み得る多数のキャッシュを備えたシステム内でキャッシュ
を管理するための方法であって、
第１のキャッシュ内のデータ項目を修正して修正されたデータ項目を作成するステップと、
前記修正されたデータ項目を永続的記憶装置に書込んだことに応答して、以下のステップを行なうステップとを含み、前記以下のステップは、
前記第１のキャッシュに関連したノードが、前記多数のキャッシュ内の他のいずれかのキャッシュが前記データ項目のダーティバージョンを作成したかを判断するステップと、
前記多数のキャッシュ内の他のいずれかのキャッシュが前記データ項目のダーティバージョンを作成していた場合、前記第１のキャッシュに関連したノードが前記データ項目のマスタに対して、前記修正されたデータ項目が永続的記憶装置に書込まれたことを知らせるステップとを含み、
前記多数のキャッシュ内の他のキャッシュが前記データ項目のダーティバージョンを作成していなかった場合、修正されたデータ項目を書込むステップは、前記修正されたデータ項目が永続的記憶装置に書込まれたことを前記マスタに知らせることなく行なわれる、方法。
【請求項２５】
前記多数のキャッシュ内の他のいずれかのキャッシュが前記データ項目のダーティバージョンを作成したかを判断する前記ステップは、前記データ項目に関連するグローバルダーティフラグを調べるステップを含む、請求項２４に記載の方法。
【請求項２６】
前記第１のキャッシュ内のデータ項目を修正する前に、前記データ項目は第２のキャッシュ内で修正されており、
前記データ項目は、前記第２のキャッシュ内で修正されているときと、前記第１のキャッシュ内で修正されているときとの間に永続的に記憶されることはなく、
前記第２のキャッシュに関連するノードは、前記データ項目がグローバルにダーティであることを示すように前記グローバルダーティフラグがセットされるようにする、請求項２５に記載の方法。
【請求項２７】
前記第２のキャッシュに関連する前記ノードは、前記データ項目を前記第２のキャッシュから前記多数のキャッシュのうちの別のキャッシュに転送したことに応答して前記グローバルダーティフラグがセットされるようにする、請求項２６に記載の方法。
【請求項２８】
異なるデータ項目コピーを含み得る多数のキャッシュを備えたシステム内でキャッシュを管理するための方法であって、
第１のキャッシュ内のデータ項目を修正して修正されたデータ項目を作成するステップと、
第１のノードに関連したノードが前記修正されたデータ項目を永続的記憶装置に書込むことを望む場合、以下のステップを行なうステップとを含み、前記以下のステップは、
前記第１のキャッシュに関連したノードが前記データ項目に対する所有権を現在有さない場合、前記第１のキャッシュに関連した前記ノードが前記データ項目のマスタに対して、前記データ項目が永続的記憶装置に書込まれるための要求を送信するステップと、
前記第１のキャッシュに関連した前記ノードが前記データ項目に対する所有権を現在有する場合、前記データ項目が永続的記憶装置に書込まれるための要求を前記マスタに送信することなく、前記第１のノードが前記データ項目を永続的記憶装置に書込むステップとを含む、方法。
【請求項２９】
データ項目内の排他ロックのホルダを前記データ項目のオーナーに指定するステップをさらに含む、請求項２８に記載の方法。
【請求項３０】
データ項目を管理するための方法であって、前記方法は、
データ項目上で排他ロックを有するノードがデータ項目を永続的記憶装置に書込むことを望む場合、以下のステップを行なうステップを含み、前記以下のステップは、
前記データ項目に関連したモードがローカルであるか、またはグローバルであるかを判断するステップと、
前記データ項目に関連した前記モードがローカルである場合、前記ノードは、前記データ項目のマスタと通信することなく、前記データ項目を永続的記憶装置に書込むステップと、
前記データ項目に関連した前記モードがグローバルである場合、前記ノードはメッセージを前記データ項目の前記マスタに送信して永続的記憶装置への前記データ項目の書込を要求するステップとを含む、方法。
【請求項３１】
前記データ項目に関連した前記モードはグローバルであり、
前記方法はさらに、
前記ノードが、前記データ項目を永続的記憶装置に書込む許可を前記マスタから受取るステップと、
前記データ項目を永続的記憶装置に書込んだ後、前記モードをグローバルからローカルに変更するステップとを含む、請求項３０に記載の方法。
【請求項３２】
前記データ項目に関連した前記モードはローカルであり、
前記ノードが永続的記憶装置への前記データ項目の書込を完了する前に、前記ノードは、前記データ項目上の前記排他ロックを別のノードに転送する、請求項３０に記載の方法。
【請求項３３】
前記ノードは、前記データ項目上の前記排他ロックを別のノードに転送する前に、前記モードをローカルからグローバルに変更する、請求項３２に記載の方法。
【請求項３４】
前記ノードは、前記ノードが永続的記憶装置への前記データ項目の書込を完了したときを前記マスタに知らせる、請求項３２に記載の方法。
【請求項３５】
前記マスタは、前記ノードが永続的記憶装置への前記データ項目の書込を完了したことを前記ノードが前記マスタに知らせたことに応答して、前記ノードが永続的記憶装置への前記データ項目の書込を完了したことを他のノードに知らせる、請求項３２に記載の方法。
【請求項３６】
他のノードは、前記ノードが永続的記憶装置への前記データ項目の書込を完了したことを前記ノードが前記マスタに知らせた後、前記マスタからのメッセージに応答して、前記モードをグローバルからローカルに変更する、請求項３３に記載の方法。
【請求項３７】
データ項目を管理するための方法であって、前記方法は、
データ項目が１つのノードから別のノードへと転送されるとき、以下のステップを行なうステップを含み、前記以下のステップは、
前記データ項目がノードによってダーティ化されており、さらには前記データ項目に関連するモードがローカルである場合、前記データ項目を別のノードに送信する前に前記モードをローカルからグローバルに変更するステップと、
前記データ項目が前記ノードによってダーティ化されておらず、さらには前記データ項目に関連する前記モードがローカルである場合、前記モードを変更することなく前記データ項目を他のノードに送信するステップと、
前記モードがローカルである場合には許可を要求することなく前記他のノードが前記データ項目を永続的記憶装置に書込むことを可能にするステップと、
前記モードがグローバルである場合には、前記データ項目を永続的記憶装置に書込むた
めの許可を前記他のノードが得ることを必要とするステップとを含む、方法。
【請求項３８】
前記ノードは、前記ノードが永続的記憶装置に前記データ項目を書込むことを完了する前に、前記データ項目を前記他のノードに転送する、請求項３７に記載の方法。
【請求項３９】
前記ノードが前記データ項目を永続的記憶装置に書込むことを完了した後に、前記ノードは、前記データ項目のマスタにメッセージを送信して前記データ項目が永続的記憶装置に書込まれたことを表わす、請求項３８に記載の方法。
【請求項４０】
前記他のノードは、グローバルモードのデータ項目を受信し、
前記他のノードは、前記ノードの前記マスタに対して、前記データ項目を書込むための許可を求めて要求を送信し、
前記マスタは、前記モードをグローバルからローカルへと変更するように前記他のノードに知らせることによって、前記要求に応答する、請求項３９に記載の方法。
【請求項４１】
データ項目のバージョンを管理するための方法であって、前記方法は、
データ項目の書込中バージョンが永続的記憶装置に書込まれている間に、データ項目のダーティバージョンが第１のノードから第２のノードに転送されるとき、以下のステップを行うステップを含み、前記以下のステップは、
前記書込中バージョンについてのバージョン情報を前記第２のノードに伝達するステップと、
前記バージョン情報に基づいて、前記第２のノードが、第１のバージョンセットに属するデータ項目のいずれかのバージョンが第２のバージョンセットに属するデータ項目のいずれかのバージョンと併合されることを妨げるステップとを含み、
前記第１のバージョンセットは、前記書込中バージョンと少なくとも同じぐらい古い前記第２のノード内のデータ項目のすべてのバージョンを含み、
前記第２のバージョンセットは、前記書込中バージョンよりも新しい前記第２のノード内のデータ項目のバージョンを含む、方法。
【請求項４２】
伝達する前記ステップは、前記データ項目に割当てられたマスタによって行なわれる、請求項４１に記載の方法。
【請求項４３】
前記第２のノードは、前記第１のセット内の複数のバージョンを含み、
前記第２のノードは、前記複数のバージョンを併合する、請求項４１に記載の方法。
【請求項４４】
前記書込中バージョンが永続的記憶装置にうまく書込まれたときを前記第２のノードに知らせるステップと、
前記書込中バージョンが永続的記憶装置にうまく書込まれたことが前記第２のノードに知らされた後、前記第２のノードが前記第１のバージョンセット内のすべてのバージョンを破棄することを可能にするステップとをさらに含む、請求項４１に記載の方法。
【請求項４５】
前記書込中バージョンが永続的記憶装置にうまく書込まれたときを前記第２のノードに知らせるステップと、
前記書込中バージョンが永続的記憶装置にうまく書込まれたことが前記第２のノードに知らされた後、前記第２のノードが、前記複数のバージョンを併合することによって作成された併合バージョンを破棄することを可能にするステップとをさらに含む、請求項４３に記載の方法。
【請求項４６】
データ項目の過去イメージを管理するための方法であって、前記方法は、
データ項目の第１の過去バージョンが間もなく永続的記憶装置に書込まれるか、または
永続的記憶装置への書込によってカバーされる可能性を推定するステップと、
推定された可能性がある特定のしきい値を超える場合、データ項目の前記第１の過去バージョンとは別のデータ項目の第２の過去バージョンを記憶するステップと、
推定された可能性がある特定のしきい値を下回る場合、データ項目の前記第２の過去バージョンをデータ項目の前記第１の過去バージョンと併合するステップとを含む、方法。
【請求項４７】
推定する前記ステップは、データ項目の前記第１の過去バージョンに関連した時間と、リドゥログファイル内の最近のエントリに関連した時間との比較に基づく、請求項４６に記載の方法。
【請求項４８】
推定する前記ステップは、データ項目の前記第１の過去バージョンに関連した時間と、チェックポイント待ち行列のヘッドにおけるエントリに関連した時間との比較に基づく、請求項４６に記載の方法。
【請求項４９】
請求項1〜４８のいずれか１項に記載の方法をコンピュータに実行させるためのプログラムを記録した記録媒体。