(57)【特許請求の範囲】
【請求項１】
少なくとも１つの通信媒体で接続した複数のノードを備える分散コンピュータシステムにおいてコンテンツユニットを処理する方法であって、前記複数のノードの各々は、前記複数のノードのうちの他のノードのものとは別個のハードウェア処理リソースおよび記憶リソースを有する少なくとも１つの独立コンピュータを備え、独立ノードの各々は複数のコンテンツユニットを記憶し、前記複数のノードは少なくとも第１ノードと第２ノードとを含み、前記方法は、
（Ａ）前記第１及び第２ノードの各々上において、ノードに記憶されているコンテンツユニットの識別子のリストを生成する動作と、
（Ｂ）前記動作（Ａ）で生成されたリストを、複数のサブリストに分割する動作であって、前記サブリストの各々は特定範囲の識別子を含む、前記分割する動作と、
（Ｃ）前記第１ノードから前記第２ノードへ、前記動作（Ｂ）で生成された、前記第２ノードに割り当てられた範囲の識別子を含むサブリストを送信し、前記第２ノードから前記第１ノードへ、前記動作（Ｂ）で生成された、前記第１ノードに割り当てられた範囲の識別子を含むサブリストを送信する動作と、
（Ｄ）前記第１ノードにて、前記第２ノードからのサブリストを受信し、前記第２ノードからのサブリストを、前記動作（Ｂ）で生成された少なくとも１つの他のサブリストと結合して第１結合リストを生成し、前記第２ノードにて、前記第１ノードからのサブリストを受信し、前記第１ノードからのサブリストを、前記動作（Ｂ）で生成された少なくとも１つの他のサブリストと結合して第２結合リストを生成する動作と、
（Ｅ）前記第１ノードにて、前記第１結合リストにおいて識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別し、第２ノードにて、前記第２結合リストにおいて識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別する動作と、
（Ｆ）前記動作（Ｅ）で、前記第１結合リストにおいて識別された少なくとも１つのコンテンツユニットが処理を許可するものであると判断された場合に、
（Ｆ１）処理を許可するものと識別された前記少なくとも１つのコンテンツユニットについて処理を行うために、前記複数のノードの中から少なくとも１つを選択する動作と、
（Ｆ２）前記第１ノードから、前記動作（Ｆ１）で選択された前記複数のノードの中の少なくとも１つへ、前記動作（Ｅ）で処理を許可するものと識別された前記少なくとも１つのコンテンツユニットを処理せよとの少なくとも１つの命令を送信する動作と
を含む、方法。
【請求項２】
前記第１及び第２ノードは、それぞれ自己に記憶されている前記複数のコンテンツユニットをファイルシステム内のファイルに記憶し、前記第１及び第２ノード上で、ノード上のコンテンツユニットの識別子のリストを生成する動作は、前記第１及び第２ノードの各々上で、ノード上のファイルシステムに、前記ファイルシステムに記憶されているファイルのリストを作成するように要求を送信する動作を含む、請求項１に記載の方法。
【請求項３】
前記分散コンピュータシステムはオブジェクトアドレス指定可能な記憶装置（ＯＡＳ）システムであり、前記動作（Ａ）で生成された前記識別子のリストの各々の中の各識別子は、分散システムにおける対応するコンテンツユニットの物理的および論理的な記憶場所のいずれからも独立なオブジェクトアドレスである、請求項１に記載の方法。
【請求項４】
前記ＯＡＳシステムはコンテンツアドレス指定可能な記憶装置（ＣＡＳ）システムであり、前記識別子のリストの各々の中の各識別子は、少なくともその一部が、対応するコンテンツユニットのコンテンツの少なくとも一部から生成されたコンテンツアドレスである、請求項３に記載の方法。
【請求項５】
前記動作（Ｅ）はさらに、前記第１ノードにて、前記第１結合リスト内で識別されたコンテンツユニットのいずれかが再生および識別を許可するかどうかを識別し、前記第２ノードにて、前記第２結合リスト内で識別されたコンテンツユニットのいずれかが再生を許可するかどうかを識別する動作を含む、請求項１に記載の方法。
【請求項６】
前記動作（Ｆ１）は、再生を許可するものとして識別された少なくとも１つのコンテンツユニットについて再生を実行するために、前記複数のノードの少なくとも１つを選択する動作をさらに含み、前記動作（Ｆ２）は、前記第１ノードから前記複数のノードのうち前記動作（Ｆ１）で選択された少なくとも１つへ、前記動作（Ｅ）で再生を許可するものと識別された少なくとも１つのコンテンツユニットを再生せよとの少なくとも１つの命令を送信する動作をさらに含む、請求項５に記載の方法。
【請求項７】
前記動作（Ｅ）はさらに、前記第１ノードにて、前記第１結合リスト内で識別されたコンテンツユニットのいずれかが削除および識別を許可するかどうかを識別し、前記第２ノードにて、前記第２結合リスト内で識別されたコンテンツユニットのいずれかが削除を許可するかどうかを識別する動作をさらに含む、請求項１に記載の方法。
【請求項８】
少なくとも１つのコンピュータ読み出し可能な記憶媒体であって、前記記憶媒体は、実行時に、少なくとも１つの通信媒体で接続している複数のノードを備えた分散コンピュータシステムにおいてコンテンツユニットを処理する方法を実行する命令でエンコードされており、前記複数のノードの各々は、前記複数のノードのうちの他のノードのものとは別個のハードウェア処理リソースおよび記憶リソースを有する少なくとも１つの独立コンピュータを含み、独立ノードの各々は複数のコンテンツユニットを記憶し、前記複数のノードは少なくとも第１ノードと第２ノードとを含み、前記方法は、
（Ａ）前記第１及び第２ノードの各々上において、ノードに記憶されているコンテンツユニットの識別子のリストを生成する動作と、
（Ｂ）前記動作（Ａ）で生成されたリストを、複数のサブリストに分割する動作であって、前記サブリストの各々は特定範囲の識別子を含む、前記分割する動作と、
（Ｃ）前記第１ノードから前記第２ノードへ、前記動作（Ｂ）で生成された、前記第２ノードに割り当てられた範囲の識別子を含むサブリストを送信し、前記第２ノードから前記第１ノードへ、前記動作（Ｂ）で生成された、前記第１ノードに割り当てられた範囲の識別子を含むサブリストを送信する動作と、
（Ｄ）前記第１ノードにて、前記第２ノードからのサブリストを受信し、前記第２ノードからのサブリストを、前記動作（Ｂ）で生成された少なくとも１つの他のサブリストと結合して第１結合リストを生成し、前記第２ノードにて、前記第１ノードからのサブリストを受信し、前記第１ノードからのサブリストを、前記動作（Ｂ）で生成された少なくとも１つの他のサブリストと結合して第２結合リストを生成する動作と、
（Ｅ）前記第１ノードにて、前記第１結合リストにおいて識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別し、第２ノードにて、前記第２結合リストにおいて識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別する動作と、
（Ｆ）前記動作（Ｅ）で、前記第１結合リストにおいて識別された少なくとも１つのコンテンツユニットが処理を許可するものであると判断された場合に、
（Ｆ１）処理を許可するものと識別された前記少なくとも１つのコンテンツユニットについて処理を行うために、前記複数のノードの中から少なくとも１つを選択する動作と、
（Ｆ２）前記第１ノードから、前記動作（Ｆ１）で選択された前記複数のノードの中の少なくとも１つへ、前記動作（Ｅ）で処理を許可するものと識別された前記少なくとも１つのコンテンツユニットを処理せよとの少なくとも１つの命令を送信する動作と
を含む、少なくとも１つのコンピュータ読み出し可能な記憶媒体。
【請求項９】
前記第１及び第２ノードは、それぞれ自己に記憶されている前記複数のコンテンツユニットをファイルシステム内のファイルに記憶し、前記第１及び第２ノード上で、ノード上のコンテンツユニットの識別子のリストを生成する動作は、前記第１及び第２ノードの各々上で、ノード上のファイルシステムに、前記ファイルシステムに記憶されているファイルのリストを作成するように要求を送信する動作を含む、請求項８に記載の少なくとも１つのコンピュータ読み出し可能な記憶媒体。
【請求項１０】
前記分散コンピュータシステムはオブジェクトアドレス指定可能な記憶装置（ＯＡＳ）システムであり、前記動作（Ａ）で生成された前記識別子のリストの各々の中の各識別子は、分散システムにおける対応するコンテンツユニットの物理的および論理的な記憶場所のいずれからも独立なオブジェクトアドレスである、請求項８に記載の少なくとも１つのコンピュータ読み出し可能な記憶媒体。
【請求項１１】
前記ＯＡＳシステムはコンテンツアドレス指定可能な記憶装置（ＣＡＳ）システムであり、前記識別子のリストの各々の中の各識別子は、少なくともその一部が、対応するコンテンツユニットのコンテンツの少なくとも一部から生成されたコンテンツアドレスである、請求項１０に記載の少なくとも１つのコンピュータ読み出し可能な記憶媒体。
【請求項１２】
前記動作（Ｅ）はさらに、前記第１ノードにて、前記第１結合リスト内で識別されたコンテンツユニットのいずれかが再生および識別を許可するかどうかを識別し、前記第２ノードにて、前記第２結合リスト内で識別されたコンテンツユニットのいずれかが再生を許可するかどうかを識別する動作を含む、請求項８に記載の少なくとも１つのコンピュータ読み出し可能な記憶媒体。
【請求項１３】
前記動作（Ｆ１）は、再生を許可するものとして識別された少なくとも１つのコンテンツユニットについて再生を実行するために、前記複数のノードの少なくとも１つを選択する動作をさらに含み、前記動作（Ｆ２）は、前記第１ノードから前記複数のノードのうち前記動作（Ｆ１）で選択された少なくとも１つへ、前記動作（Ｅ）で再生を許可するものと識別された少なくとも１つのコンテンツユニットを再生せよとの少なくとも１つの命令を送信する動作をさらに含む、請求項１２に記載の少なくとも１つのコンピュータ読み出し可能な記憶媒体。
【請求項１４】
前記動作（Ｅ）はさらに、前記第１ノードにて、前記第１結合リスト内で識別されたコンテンツユニットのいずれかが削除および識別を許可するかどうかを識別し、前記第２ノードにて、前記第２結合リスト内で識別されたコンテンツユニットのいずれかが削除を許可するかどうかを識別する動作をさらに含む、請求項８に記載の少なくとも１つのコンピュータ読み出し可能な記憶媒体。
【請求項１５】
分散コンピュータシステムであって、
少なくとも１つの通信媒体で接続された複数のノードを備え、前記複数のノードの各々は、別個のハードウェア処理リソースおよび記憶リソースを有する独立コンピュータであり、独立ノードの各々は複数のコンテンツユニットを記憶し、前記複数のノードのうち少なくとも１つは少なくとも１つの制御装置を含み、前記制御装置は、
ノードに記憶されているコンテンツユニットの識別子のリストを生成すること、
識別子の各リストを複数のサブリストに分割することであって、前記サブリストの各々は特定範囲の識別子を含んでいる、前記分割すること、
前記サブリストの少なくともいくつかを、当該サブリスト内の範囲の識別子を受信するように割り当てられた、前記分散コンピュータシステム内の他のノードへ送信すること、
少なくとも１つの他のノードから少なくとも１つのサブリストを受信し、前記少なくとも１つのサブリストを前記識別子のリストからのサブリストと結合して、結合リストを生成すること、
前記結合リスト内で識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別すること、
処理を許可するものとして識別された前記コンテンツユニットの各々について処理を実行するために、少なくとも１つのノードを選択すること、
前記少なくとも１つの選択されたノードの各々に、ノードによって処理されるべく選択されたコンテンツユニットを処理せよとの、少なくとも１つの命令を送信すること
を行なう、分散コンピュータシステム。
【請求項１６】
前記ノードの各々は、ノードに記憶されている複数のコンテンツユニットをファイルシステム内のファイルに記憶し、前記少なくとも１つの制御装置は、前記ファイルシステムに、前記複数のノードのうち少なくとも１つ上のファイルシステムに記憶されているファイルを列挙せよとの要求を送信することにより、識別子のリストを生成する、請求項１５に記載の分散コンピュータシステム。
【請求項１７】
前記分散コンピュータシステムは、オブジェクトアドレス指定可能な記憶装置（ＯＡＳ）システムであり、前記識別子のリストの中の各識別子は、分散システムにおける対応するコンテンツユニットのいかなる物理的および論理的な記憶場所からも独立である、請求項１５に記載の分散コンピュータシステム。
【請求項１８】
前記ＯＡＳシステムは、コンテンツアドレス指定可能な記憶装置（ＣＡＳ）システムであり、前記識別子のリストの中の各識別子は、少なくともその一部が、対応するコンテンツユニットのコンテンツの少なくとも一部から生成されたコンテンツアドレスである、請求項１７に記載の分散コンピュータシステム。
【請求項１９】
前記少なくとも１つの制御装置は、前記結合リスト内で識別されたコンテンツユニットのいずれかが再生を許可するかどうかを識別する、請求項１５に記載の分散コンピュータシステム。
【請求項２０】
前記少なくとも１つの制御装置は、前記結合リスト内の識別されたコンテンツユニットのいずれかが削除を許可するかどうかを識別する、請求項１５に記載の分散コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で述べる技術は、概して、分散コンピュータシステムの分野、より詳細には、分散コンピュータシステムに記憶したデータを処理する技術に関する。
【背景技術】
【０００２】
分散コンピュータシステムは、相互に接続し、データ共有やタスク処理のアクティビティを調整できる、２台以上のコンピュータの集合体である。分散システム内の各コンピュータはノードと呼ばれ、独自の処理および記憶リソースを設けている。
【０００３】
いくつかの分散コンピュータシステムでは、ユーザが認識する集積計算設備は１台であっても、実際には、この計算設備が、複数の本質的に異なる地理的位置に複数の別個のコンピュータを備えている可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
少なくとも１つの通信媒体で接続した複数のノードを備える分散コンピュータシステムにおいてコンテンツユニットを処理する方法であって、複数のノードの各々は、複数のノードのものとは別のハードウェア処理リソースおよび記憶リソースを有する少なくとも１つの独立コンピュータを備え、独立ノードの各々は複数のコンテンツユニットを記憶し、複数のノードは少なくとも第１ノードと第２ノードを備え、この方法は、（Ａ）第１、第２ノードの各々上で、これらのノードに記憶されているコンテンツユニットの識別子のリストを生成する動作を備え、（Ｂ）動作（Ａ）で生成したリストを、複数のサブリストに分割する動作をさらに備え、サブリストの各々は特定範囲の識別子を含み、（Ｃ）第１ノードを第２ノードへ、動作（Ｂ）で生成した、第２ノードに割り当てられた範囲の識別子を含むサブリストを送信し、第２ノードから第１ノードへ、動作（Ｂ）で生成した、第１ノードに割り当てられた範囲の識別子を含むサブリストを送信する動作をさらに備え、（Ｄ）第１ノードにて、第２ノードからのサブリストを受信し、第２ノードからのサブリストを動作（Ｂ）で生成した少なくとも１つの他のサブリストと結合して第１結合リストを生成し、また、第２ノードにて、第１ノードからのサブリストを受信し、第１ノードからのサブリストを動作（Ｂ）で生成した少なくとも１つの他のサブリストと結合して第２結合リストを生成する動作をさらに備え、（Ｅ）第１ノードにて、第１結合リスト内で識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別し、また、第２ノードにて、第２結合リスト内で識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別する動作をさらに備え、（Ｆ）動作（Ｅ）で、第１結合リスト内で識別された少なくとも１つのコンテンツユニットが処理を許可するものであると判断された場合に；（Ｆ１）処理を許可するものと識別された少なくとも１つのコンテンツユニットについて処理を行うために、複数のノードの中から少なくとも１つを選択し、（Ｆ２）第１ノードから動作（Ｆ１）で選択した複数のノードの中の少なくとも１つへ、動作（Ｅ）で処理を許可するものと識別された少なくとも１つのコンテンツユニットを処理せよとの、少なくとも１つの命令を送信する。別の実施形態は、分散コンピュータシステム上で実行された際に上述の方法を実行するという命令でエンコードされた、少なくとも１つのコンピュータ読み出し可能な記憶媒体に関する。
【０００５】
分散コンピュータシステムであって、この分散コンピュータシステムは、少なくとも１つの通信媒体で接続した複数のノードを備え、複数のノードの各々は、別々のハードウェア処理リソースおよび記憶リソースを有する独立コンピュータであり、独立ノードの各々は複数のコンテンツユニットを記憶し、複数のノードのうち少なくとも１つは少なくとも１つの制御装置を備え、制御装置は、ノードに記憶されているコンテンツユニットの識別子のリストを生成し、識別子の各リストを複数のサブリストに分割し、サブリストの各々は特定範囲の識別子を含んでおり、サブリストの少なくともいくつかを、これらのサブリスト内の識別子範囲を受信するように割り当てられた、分散コンピュータシステム内の他のノードへ送信し、少なくとも１つの他のノードから少なくとも１つのサブリストを受信し、少なくとも１つのサブリストを識別子リストからのサブリストと結合して、結合リストを生成し、結合リスト内で識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別し、処理を許可するものとして識別されたコンテンツユニットの各々について処理を実行するために、少なくとも１つのノードを選択し、少なくとも１つの選択されたノードの各々に、そのノードによって処理されるべく選択されたコンテンツユニットを処理せよとの、少なくとも１つの命令を送信する。
【図面の簡単な説明】
【０００６】
【図１】本発明のいくつかの実施形態による、分散記憶装置システムに記憶されたコンテンツユニットを処理する例証的な工程のフローチャートである。
【図２】図１の工程を実現する複数の独立ノードを設けた分散コンピュータシステムのブロック図である。
【図３】図２の分散コンピュータシステムで使用できる独立ノードの１例のブロック図である。
【図４】いくつかの実施形態による、分散コンピュータシステム内で損失したコンテンツユニットを再生させる例証的な工程のフローチャートである。
【図５】いくつかの実施形態による、分散コンピュータシステム内で不要な重複コンテンツユニットを識別し削除する例証的な工程のフローチャートである。
【発明を実施するための形態】
【０００７】
出願人は、特定のデータアイテムを許可処理として識別できるよう、また、処理を許可するデータアイテムを分散方式で処理できるよう、各ノードに何のデータが記憶されているかを判断することが有用な状況が分散コンピュータシステムには多くあると理解している。
【０００８】
例えば、分散コンピュータシステムは、コンテンツユニットを、データの保護の目的で分散コンピュータシステムの複数のノードにかけて、いくつかまたはすべてのコンテンツユニットを分散させる方法で記憶することができる。つまり、例えば、１つのコンテンツユニットを複数に断片化し、これらの断片についてパリティ情報を計算することで、１つ以上の断片が損失した場合に、その損失した断片（１または複数）を残りの断片とパリティ情報を使用して再生することができるようになる。あるいは、１つのコンテンツユニットを断片化するのではなく、コンテンツユニット全体を１つのノードに記憶し、このコンテンツのミラーコピーを別のノードに記憶してもよい。分散システム内の１つのノードか、このようなノード内の記憶デバイスが障害を起こした場合、残りのノードにどのコンテンツまたはコンテンツの断片が記憶されているかを判断することで、障害により損失したそのコンテンツユニット断片またはコンテンツユニットを識別できるようにすることが望ましい。
【０００９】
各ノードにどのコンテンツユニットが記憶されているかを判断することが有益である状況の別の例には、分散システムに記憶されている、削除可能な冗長コンテンツユニットまたはコンテンツの断片があるかどうかを判断することが望ましいかどうかというものがある。例えば、ノードまたはノード内の記憶デバイスが障害を起こした場合、障害を起こしたノードまたは記憶デバイスに記憶されているコンテンツユニットまたは断片を再生することができる。障害を起こしたノードまたは記憶デバイスが後にオンラインで戻ってくる場合には、不要なコンテンツユニットまたは断片を識別し、これを削除することが望ましい。
【００１０】
出願者は、特定のコンテンツユニットを許可処理として識別できるよう、また、処理の許可を行うコンテンツユニットを分散方法で処理できるようにするために、分散計算システム内の各ノードにどのコンテンツユニットが記憶されているかを判断することが有益である状況が他にも多く生じ得ると理解している。
【００１１】
したがって、いくつかの実施形態は、分散システムの各ノードにどのコンテンツユニットが記憶されているかを識別し、これらのコンテンツユニットが許可されている場合には、どの処理か判断し、これらコンテンツユニットの処理を分散計算システムの複数のノードにかけて分散させる処理に関する。
【００１２】
このような処理の１例を図１に示す。図１の処理は動作１０１のダンプ段階から開始する。この動作１０１では、分散システム内の各ノードが、記憶しているコンテンツユニットのリストを作成する。これに関して本発明は限定されていないため、この段階はあらゆる適切な方法で行うことができる。例えば、いくつかの実施形態では、各ノードに記憶されたコンテンツユニットをノード上のファイルシステムに記憶したり、ファイルシステム内に記憶されている全てのコンテンツユニットのリスト作成の要求をファイルシステムに送信したりすることができる。
【００１３】
次に、工程は動作１０３の結合段階へ続くが、ここでは、分散システム内の各ノードが、記憶しているコンテンツユニットのリストの各部分を、同システム内でその部分を担当する別のノードへ送信する。例えば、いくつかの実施形態では、各コンテンツユニットは、分散計算システム内で各コンテンツユニットを一意に識別する識別子を持つことができる。識別子の範囲の一部を各ノードに割り当てることができる。例えば、３個のノードを持つ分散システムでは、「Ａ」〜「Ｈ」で始まる識別子をノード１に割り当て、「Ｉ」〜「Ｐ」で始まる識別子をノード２に割り当て、「Ｑ」〜「Ｚ」で始まる識別子をノード３に割り当てることができる。したがって、上の例では、ノード１は、記憶しているコンテンツユニットリストを、３個のコンテンツユニットの範囲に対応した３つのリストに分割し、リストの「Ｉ」〜「Ｐ」で始まる識別子を含んだ部分をノード２に、「Ｑ」〜「Ｚ」で始まる識別子を含んだ部分をノード３に送信する。
【００１４】
次に、工程は動作１０５の処理段階へ続く。この段階では、ノードが、さらなる処理を許可すると識別されたコンテンツユニットの処理を行う。
図１の工程は、あらゆる適切な分散システム上で実現することができる。この工程を実現できる分散システムの１例を図２に示す。
【００１５】
図２では、分散コンピュータシステム２０１は複数の独立ノード２０３ａ、２０３ｂ、・・・２０３ｎを備える。これに関連して本発明は限定されないため、分散コンピュータシステム２０１は任意数の適切なノードを持つことが可能である。各ノード２０３は、独自の処理および記憶リソースを備えた独立コンピュータである。ノード２０３は、そのアクティビティの調整、データの共用、タスクの処理を行うべく、ネットワーク２０５を介して相互に通信する。クライアント２０７は、分散コンピュータシステム２０１との間でデータアクセスと処理要求を送受信する。クライアントは分散システム２０１が複数の独立ノードを備えていることを知得していないので、クライアント２０７からは、このシステム２０１は単一の統合型コンピュータシステムにしか見えない。
【００１６】
簡略化の目的で、図２は、単一のクライアントコンピュータが分散システムにアクセスしている様子を示している。しかし、分散コンピュータシステムは、任意数のクライアントコンピュータからのアクセス要求を処理できるが、単一のクライアントコンピュータでの使用に制限されないという点を理解すべきである。
【００１７】
いくつかの実施形態では、分散システムはオブジェクトアドレス指定が可能な記憶装置（ＯＡＳ）システムであってよい。ＯＡＳシステムでは、記憶されているコンテンツユニットをオブジェクト識別子によって識別するが、このオブジェクト識別子は、ＯＡＳシステム上でコンテンツユニットの記憶および取り出しを行うクライアントから見ると、識別子が識別するクライアントユニットのいかなる物理および／または論理記憶場所から独立である。そのため、分散システムの各ノードは、そのオブジェクト識別子を用いてコンテンツユニットを識別することができる。
【００１８】
いくつかの実施形態で使用できる１つのタイプのＯＡＳシステムは、コンテンツのアドレス指定が可能な記憶装置（ＣＡＳ）システムである。ＣＡＳシステムにおいて、コンテンツユニット用のオブジェクト識別子はコンテンツアドレスである。コンテンツアドレスは、少なくとも一部が、識別するコンテンツユニットのコンテンツの少なくとも一部を使用して生成される、特定タイプのオブジェクト識別子である。例えば、いくつかの実施形態で使用できる１つのタイプのコンテンツアドレスは、１つのコンテンツユニットの全てまたは一部のコンテンツをハッシュ機能を使ってハッシュし、これによって得たハッシュ値を、同コンテンツユニットの全てまたは一部のコンテンツアドレスとして使用することで生成できる。
【００１９】
コンピュータシステム２０１のノードは、本発明がこれに関して制限されないため、あらゆる適切な方法で実現できる。いくつかの実施形態では、分散システムの１または複数のノードを図３に示すように実現できる。図３では、ノード３０１は、独自の記憶および処理リソースを持った独立コンピュータである。ノード３０１は、プロセッサ３０３、コンピュータ読み出し可能な記憶媒体３０５、入／出力インターフェース３０７を備えている。コンピュータ読み出し可能な記憶媒体３０５は、１または複数の実体的な記憶媒体を備え、また、コンピュータ読み出し可能な命令を記憶することができる。この命令は、プロセッサ３０３によって実行されると、ノード３０１に、図１に関連して上述した処理のうちノード３０１が担う部分を実行させる。ノード３０１は、入出力（Ｉ／Ｏ）インターフェース３０７を介し、他のコンピュータ（例えば、分散システム内の他のノードおよび／または分散システム外のコンピュータ）との間で通信の送受信を行うことができる。
【００２０】
コンピュータ読み出し可能な記憶媒体３０５は任意の適切なタイプの記憶媒体、例えばディスクドライブ、ディスクドライブアレイ、ＲＡＭ、および／またはその他任意の適切なタイプの実体的な記憶媒体を備えていてよい。さらに、いくつかの実施形態では、コンピュータ読み出し記憶媒体３０５を備えた記憶媒体のいくつかまたは全てが、プロセッサ３０３と同じ物理パッケージまたはボックスの中に在る必要はない。他のエンティティはコンピュータ読み出し可能な記憶媒体３０５に記憶されたデータにプロセッサ３０３を介してアクセスするので、コンピュータ読み出し可能な記憶媒体３０５は、むしろ、プロセッサ３０３と同じノードの一部であると考えられる。
【００２１】
上述したように、図１に示す工程は、多くの異なる処理タスクを達成するために使用できる。この工程を特定の分散処理タスクを実行するべくどう使用されるかを示すいくつかの例を以下に述べる。しかし、図１の工程は、以下に示す特定の例証的な処理タスクを実行することに限定されるものではないことが理解されるべきである。むしろ、図１の工程は、あらゆる数の分散処理タスクを実行するために使用でき、これらのうち２つの例を以下に示す。
コンテンツユニット再生
いくつかの実施形態では、図１の工程は、損失したコンテンツユニットまたはその断片を再生するために使用できる。
【００２２】
例えば、分散記憶装置システムは、コンテンツユニットを複数の断片に分割し、この断片からパリティ情報を計算するデータ保護スキームを採用することができる。断片とパリティ情報は分散方式で複数のノードにかけて記憶され、全ての断片が同一のノードに記憶されることはない。複数のノードのうちの１つ、またはその記憶デバイスが障害を起こし、断片が損失した場合には、残りの断片とパリティ情報を使用して損失した断片を再生することができる。分散記憶装置システムは、代替としてまたはこれに加えて、コンテンツユニット全体を１つのノードに記憶し、そのミラーコピーを別のノードに記憶するという保護スキームを採用することもできる。
【００２３】
ノードまたはノード内の記憶デバイスが障害を起こした場合、その記憶デバイスにはどのコンテンツユニットまたはコンテンツユニットの断片が記憶されていたかを判断し、これらを再生できるようにすることが望ましい。いくつかの実施形態では、障害を起こしたノードまたは記憶デバイスに記憶されているコンテンツユニットまたは断片を、別の記憶デバイスまたはノードに記憶されている全てのコンテンツユニットまたは断片から判断し、これらのコンテンツユニットに欠けている、あるいはミラーコピーがない断片はどれかを決定することで判断できる。
【００２４】
これは図１の工程を使用して達成できる。分散システム内の１つのノードを、分散システム内の複数のノードの中でも図１の工程を調整する中央ノードとして指定できる。中央ノードは、分散システム内のコンテンツユニットの範囲全体をサブ範囲に分割し、サブ範囲を分散システム内のノードに割り当てることができる。
【００２５】
いくつかの実施形態では、分散システム内にｎ個のオペレーションノードが在る場合、コンテンツユニットの範囲をｎ個のサブ範囲に分割することが可能である。例えば、３つのオペレーションノードを設けた分散システムでは、「Ａ」〜「Ｈ」で始まる識別子を持つコンテンツユニットをノード１に割り当て、「Ｉ」〜「Ｐ」で始まる識別子を持つコンテンツユニットをノード２に割り当て、「Ｑ」〜「Ｚ」で始まる識別子を持つコンテンツユニットをノード３に割り当てることができる。
【００２６】
いくつかの実施形態では、中央ノードは、工程の各動作をいつ実行するべきかを、これらの動作の実行に有用なあらゆる情報をノードに提供することによってノードに命令することで、工程の調整を担う。
【００２７】
分散システム内の各ノードは、割り当てられた範囲のコンテンツユニットの断片またはミラーコピーが損失していないかを判断する責任を負ってもよい。図４は、これを達成する工程の１例を示す。
【００２８】
図４の工程は、工程のダンプ段階の開始を構成する動作４０１で始まっている。動作４０１では、各ノードが、記憶しているコンテンツユニットまたはその断片のリストを生成する。本発明はこれに関して限定されていないため、この生成はあらゆる適切な方法で行うことができる。例えば、いくつかの実施形態では、分散コンピュータシステム内のノードはコンテンツユニットまたはその断片を、ファイルシステム内のファイルとして記憶することができる。コンテンツユニットまたは断片の記憶をこの方法で行うノードは、全ての記憶ファイルのリストを提供するようにファイルシステムに対して要求することで、自己が記憶しているコンテンツユニットのリストを生成できる。
【００２９】
いくつかの実施形態では、各ノードは、生成する識別子のリストを分類することで、識別子を分類順序で記憶することが可能になる。こうすることで、動作４０７（後述）でリストの結合が促進され、また、ノードが、比較的少ないメモリフットプリントを用いる簡単なマージソートを使用してリストを結合できるようになる。
【００３０】
工程は次に、やはりダンプ段階の一部である動作４０３へ進む。動作４０３では、各ノードが、自己のリストを、中央ノードが判断したサブ範囲に対応するｎ個のサブ範囲に分割する。
【００３１】
工程は次に動作４０５へ進む。動作４０５〜動作４１１では工程の結合段階が続く。動作４０５では、各ノードが自己のリストの各サブ範囲を、そのサブ範囲を担当するノードに送信する。例えば、中央ノードがコンテンツユニットの範囲を３つのサブ範囲に分割する上述の例では、「Ａ」〜「Ｈ」で始まる識別子を持ったコンテンツユニットをノード１に、「Ｉ」〜「Ｐ」で始まる識別子を持ったコンテンツユニットをノード２に、「Ｑ」〜「Ｚ」で始まる識別子を持ったコンテンツユニットをノード３に割り当てることができる。動作４０５では、ノード１は、自己が記憶する「Ｉ」〜「Ｐ」で始まる識別子を持ったコンテンツユニットのリストをノード２へ、「Ｑ」〜「Ｚ」で始まる識別子を持ったコンテンツユニットのリストをノード３へ送信する。ノード１はサブ範囲「Ａ」〜「Ｈ」を割り当てられているので、「Ａ」〜「Ｈ」で始まる識別子を持ったコンテンツユニットの自己のリストを記憶することができる。
【００３２】
上の例では、各ノードは識別子のサブリストを、そのサブリストを担当するノードに「押し付ける」。しかし、本発明はこれに関して限定されないため、いくつかの実施形態にあるように、ノードは、自己が担当する他ノードの識別子のサブリストを引っ張ることもできる。例えば、上の例では、ノード１がノード２に対して、ノード２が生成した「Ａ」〜「Ｈ」で始まる識別子のサブリストを要求し、これに応じてノード２がこのサブリストを送信することができる。同様に、ノード１がノード３に対して、ノード３が生成した「Ａ」〜「Ｈ」で始まる識別子のサブリストを要求し、これに応じてノード３がこのサブリストを送信できる。
【００３３】
工程は次に動作４０７へ進む。動作４０７では、各ノードが、他ノードから受信したリストを自己が担当するサブ範囲のリストと結合し、この結合リストを分類する。例えば、コンテンツユニットを３つのサブ範囲に分割している上の例では、ノード１がノード２から、ノード２によって記憶された「Ａ」〜「Ｈ」で始まる識別子を持つコンテンツユニットのリストを受信し、さらに、ノード３から、ノード３によって記憶された「Ａ」〜「Ｈ」で始まる識別子を持つコンテンツユニットの別のリストを受信することができる。ノード１は、これらのリストを「Ａ」〜「Ｈ」で始まる識別子を持つ自己のコンテンツユニットのリストと結合し、この結合リストを、中の識別子が分類順序で並ぶ形で分類することができる。ノード２とノード３が、それぞれ担当するコンテンツユニットのサブ範囲について、同じ工程を実行することが可能である。
【００３４】
ノードが受信したサブリストの結合は、任意の適切な方法で行う。例えば、いくつかの実施形態では、これらのサブリストどうしをマージソートを用いて結合することで、出来上がったリストが分類順序で並ぶようにしている。
【００３５】
工程は次に動作４０９へ進む。動作４０９では、動作４０７で作成した結合リストを使用して、どのコンテンツユニットまたは断片が損失したかを判断する。例えば、上の例を続けると、ノード１は自己の結合リストを使用して、識別子が「Ａ」〜「Ｈ」で始まるコンテンツユニットまたは断片のどれが（もし有れば）損失したかを判断することができる。本発明はこれに関して限定されないため、これはあらゆる適切な方法で行える。
【００３６】
例えば、分散システムが採用したデータ保護スキームが、複数のミラーコピーを分散システムの異なる複数のノードに記憶する例では、ノードは自己の結合リストを使用して、分散システム内にコンテンツユニットのミラーコピーがいくつ記憶されているか、また、追加のコピーを生成すべきであるかを判断する。
【００３７】
上の例を続けると、例えば、コンテンツユニットが識別子「ＡＢＣ」を持っている場合、ノード１は、動作４０７で生成した結合リストにこの識別子が何回出てくるかを判断する。識別子が出てくる回数は１回だけであるが、記憶装置システムのデータ保護スキームがコンテンツユニットのコピーを２つ記憶すべきであると指定している場合には、ノード１は、コンテンツユニットの追加コピーを生成し、記憶するべきだと判断することができる。
【００３８】
分散システムが採用したデータ保護スキームがコンテンツユニットを断片に分割し、これらの断片についてパリティ情報を生成する実施形態では、ノードは結合リストを用いて、損失した断片はあるか、また、それらの断片のパリティ情報が損失したかを判断できる。本発明がこれに関連して限定されていないため、これは任意の適切な方法で行われる。
【００３９】
例えば、いくつかの実施形態では、１つのコンテンツユニットを６個のデータ断片と１個のパリティ断片に分割できる。コンテンツユニット全体のための識別子（つまり、アクセスするエンティティが分散システム上のコンテンツユニットにアクセスするために使用する識別子）が「ＡＢＣ」である場合、各断片に、コンテンツユニット全体のための識別子を含む上に断片の識別も行う識別子を割り当てることができる。したがって、例えば、コンテンツユニット「ＡＢＣ」の断片に、識別子ＡＢＣ．１、ＡＢＣ．２、ＡＢＣ．３、ＡＢＣ．４、ＡＢＣ．５、ＡＢＣ．６、ＡＢＣ．７を割り当てることができる。ノードは結合リストを使用して、コンテンツユニットの１つの断片が欠けていないかどうかを、そのコンテンツユニットの断片識別子のいずれかが結合リストに載っていないと断定することによって判断できる。
【００４０】
上の例では、説明したデータ保護スキームは、７個の断片（つまり、６個のデータ断片と１個のパリティ断片）を使用してコンテンツユニットを保護する。しかし、これ以外の断片スキームの使用も可能であるため、本発明はこれに限定されるものではない。
【００４１】
動作４０９で、ノードにコンテンツユニットまたは断片の欠如が識別された場合には、工程は動作４１１へ進み、ここでは、各ノードが、動作４０９で欠如していると判断したコンテンツユニットまたは断片の再生を担当するのが他のノードのうちのどれであるかを判断し、これらのノードに対して、欠如したコンテンツユニットまたは断片を再生するよう命令を送信する。或るノードが、欠如していると判断されたコンテンツユニットまたは断片の再生の担当であると判断する状況において、このノードは命令を自己に送信する必要はなく（送信することは可能）、むしろ動作４１３へ進むことができる。
【００４２】
ノードは、欠如したコンテンツユニットまたは断片の再生がどのノードの担当であるかをあらゆる適切な方法で判断することができるが、これに関連して本発明は限定されない。
【００４３】
いくつかの実施形態では、中央ノードは、各ノードが使用できるアルゴリズムを定義することで、どのノードが特定のコンテンツユニットまたは断片の再生の担当であるかを、そのコンテンツユニットまたは断片の識別子に基づいて判断することが可能である。これに関連して本発明は限定されないため、任意の適切なアルゴリズムを使用できる。いくつかの実施形態では、コンテンツユニットまたは断片の再生の処理ロードを分散システム内のオペレーションノードにかけて均等に分散するよう試みるアルゴリズムを定義する。
【００４４】
１つのノードから別のノードへの、コンテンツユニットまたは断片を再生せよとの命令は、任意の適切な方法で送信でき、また、任意の適切な情報を含んでいてよい。例えば、いくつかの実施形態では、１つのノードから他のノードへ送信された命令は、再生すべきコンテンツユニットまたは断片を、その識別子を特定することによって識別する。
【００４５】
上の例では、ノードは、特定のコンテンツユニットに処理を実行するよう他のノードに命令するための通信を開始する。しかし、本発明はこれに関して限定されず、いくつかの実施形態では、コンテンツユニットの処理を担当するノードが１つ以上の他のノードに対し、そのノードがコンテンツユニット処理の担当である旨の通信を送信し、また、要求があればこれらのコンテンツユニットを送信することができる。本発明はこれに関して限定されないため、これは任意の適切な方法で行うことができる。
【００４６】
例えば、いくつかの実施形態では、処理ノードが、処理するコンテンツユニットを要求するためにどのノード（１または複数）に接触するか、また、そのノード（１または複数）からどのようにしてコンテンツユニットを要求するかを、従来の方法によって、または中央ノードから受信した情報によって判断することができる。
【００４７】
いくつかの実施形態では、中央ノードはこの処理を、同じ処理に参加しているシステム内の他のノードが処理を許可するコンテンツユニットの識別を完了した場合にのみ（例えば動作４０９）、各ノードが自己が担当するコンテンツユニットを要求できるよう調整することができる。
【００４８】
動作４１１の後、工程は、処理段階の開始である動作４１３へ進む。動作４１３では、各ノードが、自己が再生を担当するコンテンツユニットまたは断片の再生を行う。これは、本発明がこれに関連して限定されないため、任意の適切な方法で行うことができる。
【００４９】
例えば、分散システムが採用したデータ保護スキームが複数のミラーコピーを記憶する実施形態では、ノードは、コンテンツユニットの追加コピーを再生せよとの命令を受信すると、命令の中で識別されているコンテンツユニットの要求を、そのコンテンツユニットの残りのコピーを記憶しているコンテンツユニットの中に入れて分散システムへ送信し、コンテンツユニットの追加のコピーを作成し、これを自己の内部記憶デバイスの１つまたは別のノードに記憶することができる。
【００５０】
分散システムが採用したデータ保護スキームがコンテンツユニットを断片に分割し、これらの断片にパリティ情報を生成する実施形態では、ノードは、欠如している断片を再生せよとの命令を受信すると、断片を記憶している記憶装置システム内の残りの断片をそのノードに要求し、この残りの断片を使用して欠如した断片を再生し、再生した断片を自己の内部記憶デバイスのうちの１つまたは別のノードに記憶することができる。
【００５１】
動作４１３が完了すると工程は終了である。前述からわかるように、図４に示す工程によって、分散システムが、損失しているコンテンツユニットまたはコンテンツユニットの断片がないか判断し、損失しているコンテンツユニットまたは断片を再生できるようになる。どのコンテンツユニットまたは断片が損失しているかを判断し（損失がある場合）、任意の損失したコンテンツユニットまたは断片を再生する処理ロードが、分散コンピュータシステムの複数のノードにかけて分散されることで、１つのノードがロード全体を負担する必要がなくなる。
重複データ排除
出願人は、いくつかの実施形態では、図１の工程を使用して、不要な重複が存在するコンテンツユニットを識別し、この不要な重複を分散コンピュータシステムから除去できると理解した。
【００５２】
不要な重複は、多数の理由で、分散コンピュータシステム上に存在する。例えば、ノードまたはノード内の記憶デバイスに障害が起こった場合、そのノードまたは記憶デバイスに記憶されているコンテンツユニットを再生することができる。障害を起こしたノードまたは記憶デバイスが後にオンラインで戻ってくる場合には、障害に反応して再生された追加のまたは不要なコンテンツユニットのコピーが存在する可能性がある。これらの不要なコンテンツユニットを削除して、分散システム内の記憶スペースを空けることが望ましい。
【００５３】
さらに、分散コンピュータシステムは、コンテンツユニットを記憶する要求を受信することができる。このような要求を受信した場合には、分散コンピュータシステムが同じ内容のコンテンツユニットを既に記憶していないかどうかを識別することが望ましく、もしそのコンテンツユニットのコピーが既に存在するのであれば、コンテンツユニットの新規コピーを記憶装置システム上に保持する必要はない。あるいは、記憶要求を受けてから、そのコンテンツユニットのコピーが既に記憶されているかどうかを判断するのではなく、コンピュータシステムは要求に応じてコンテンツユニットを記憶した上で、不要な重複を識別／削除するチェックを定期的に行ってもよい。
【００５４】
図５は、コンテンツユニットの不要な重複が分散システム上に存在するかどうか識別し、不要な重複を除去するために、図１の工程を実現する例証的な工程を示す。
図４に関連して上述した例と類似し、分散システム内の１つのノードを、工程を調整する中央ノードに指定することができる。中央ノードは、分散システム内のコンテンツユニットの全体範囲をサブ範囲に分割し、サブ範囲を分散システム内のノードに割り当てる。本発明はこれに関連して限定されないため、範囲をサブ範囲に分割する任意の適切な方法を使用し、これらのサブ範囲を任意の適切な方法でノードに割り当てることが可能である。
【００５５】
いくつかの実施形態では、中央ノードには、工程内の各動作をいつ実行するかを、これらの動作の実行に有用なあらゆる情報をノードに提供して命令することで、工程の調整を行う責務がある。
【００５６】
図５の工程は、工程のダンプ段階の開始である動作５０１から始まる。動作５０１で、各ノードが、記憶しているコンテンツユニットのリストを生成する。図４に関連して上述したように、本発明はこれに関連して限定されていないため、これは任意の適切な方法で行える。例えば、いくつかの実施形態では、分散コンピュータシステム内のノードはコンテンツユニットまたは断片を、ファイルシステム内のファイルとして記憶できる。この方法でコンテンツユニットまたは断片を記憶するノードは、記憶している全ファイルのリストを提供するようファイルシステムに対して要求することで、リストを生成できる。
【００５７】
いくつかの実施形態では、各ノードは生成する識別子のリストを分類し、これらの識別子がリスト上の分類された順序で並ぶようにしてもよい。こうすることにより、動作５０７（後述）でのサブリストの結合を促進でき、また、ノードが、比較的少ないメモリフットプリントを用いる簡単なマージソートを使用してリストを結合できるようになる。
【００５８】
工程は次に動作５０３へ進む。動作５０３では、各ノードがリストを、中央ノードが決定し割り当てたサブ範囲に対応する、ｎ個のサブ範囲に分割する。
工程は次に動作５０５へ進む。動作５０５〜動作５１１は、工程の結合段階で構成されている。動作５０５で、各ノードはリストの各サブ範囲を、そのサブ範囲を担当するノードに送信する。本発明がこれに関連して制限されていないため、これは任意の適切な方法で行える。例えば、動作５０５を、図４の動作４０５に類似した方式で実行してもよい。
【００５９】
動作５０５が終了すると、工程は動作５０７へ進む。動作５０７では、各ノードが、他ノードからのリストを自己が担当するサブ範囲のリストと結合し、結合したリストを分類する。
【００６０】
ノードが受信したサブリストは任意の適切な方法で結合することができる。例えば、いくつかの実施形態では、これらのサブリストをマージソートを用いて結合することで、サブリストを結合して得た結合リストが分類順序で並ぶようにすることができる。
【００６１】
工程は次に動作５０９へ進む。動作５０９では、動作５０７で作成した結合リストを使用して、コンテンツユニットの不要な重複を識別する。本発明がこれに関連して限定されていないため、これは任意の適切な方法で行える。例えば、ノードは自己の結合リストを使用して、或るコンテンツユニットのコピーが分散コンテンツシステム内にいくつ記憶されているかを判断することができる。記憶すべき数以上のコピーが記憶されている場合には、ノードは、そのコンテンツユニットの１または複数のコピーを削除すべきであると判断できる。したがって、例えば、分散記憶装置システムが、１つのコンテンツユニットの２個のコピーを異なるノードに記憶するデータ保護スキームを採用しており、動作５０９で、ノードが分散記憶装置システム内にコンテンツユニットのコピーが３個記憶されていると判断した場合には、ノードはそのコンテンツユニットのコピーを１つ削除すべきだと判断できる。
【００６２】
動作５０９の後、工程は動作５１１へ進む。動作５１１では、各ノードが、動作５０９で識別されたコンテンツユニットの不要なコピーの削除を担当するのは、他のノードのうちのどれであるかを判断する。本発明がこれに関連して限定されていないため、これは任意の適切な方法で行える。
【００６３】
例えば、いくつかの実施形態では、ノードは、動作５０７で自己の結合リストを生成する際に、結合リストに載っている識別子を持つ各々のコンテンツユニットをどのノードが記憶しているかを識別する情報を、この結合リストに含めることができる。動作５０９で、ノードが或るコンテンツユニットを削除すべきと識別する場合、ノードは、そのコンテンツユニットのコピーをどのノードが記憶しているかを結合リストから判断し、これらのノードの中から、コンテンツユニットのコピーの削除を行うノードを１つ選択することができる。
【００６４】
本発明はこれに関連して限定されていないため、ノードは、削除すべきそのコンテンツユニットのコピーを任意の適切な方法で削除するノードを選択することができる。いくつかの実施形態では、中央ノードはアルゴリズムを定義でき、このアルゴリズムは、各ノードが、コンテンツユニットのコピーを記憶している複数のノードのうちのどれを選択してコピーを削除させるか判断するために使用する。これに関連して本発明は限定されないため、任意の適切なアルゴリズムの使用が可能である。いくつかの実施形態では、このアルゴリズムは、コンテンツユニット削除の処理ロードを分散システム内のオペレーションノード間で均等に分散するべく試みるように定義できる。
【００６５】
ノードは、削除されるべき不要なコピーが存在するコンテンツユニットを識別し、そのコンテンツのコピーを削除させるノードを選択したら、コンテンツユニットのコピーに選択したノードに対して命令を送信する。この命令は任意の適切な方法で送信でき、また、任意の適切な情報を含んでいてよい。例えばいくつかの実施形態では、この命令は、選択したノードに、コンテンツユニットを削除するよう命令し、また、削除すべきコンテンツユニットをその識別子を使用して識別する情報を含んでいてよい。
【００６６】
上の例では、ノードが、他のノードに特定のコンテンツユニットの処理を実行するよう命令する通信を開始する。しかし、いくつかの実施形態と同様に本発明はこれに関連して限定されないため、コンテンツユニットの処理を担当するノードが、１または複数の他のノードに対して、それらが処理を担当するコンテンツユニットを要求する通信を送信でき、また、これらのコンテンツユニットは要求に応じて送信されることができる。本発明はこれに関連して限定されていないため、これは任意の適切な方法で行える。
【００６７】
例えばいくつかの実施形態では、処理ノードは、処理するコンテンツユニットを要求するためにどのノード（１または複数）に接触すべきか、そして、そのノード（１または複数）からどのようにしてコンテンツユニットを要求するかを、従来の方法によって、または中央ノードから受信した情報によって判断することができる。
【００６８】
いくつかの実施形態では、中央ノードはこの工程を調整し、処理に参加しているシステム内の他のノードが、処理を許可するコンテンツユニットの識別を完了した際にのみ、各ノードが自己が処理を担当するコンテンツユニットを要求できるようにすることができる。
【００６９】
動作５１１の後に、処理は、処理段階の開始である動作５１３へ進む。動作５１３では、各ノードが、削除するよう命令されたコンテンツユニットを削除し、工程が終了する。前出からわかるように、図５に示す工程によって、分散システムが、内部に不要な重複コンテンツユニットが存在するどうかを判断し、これらの不要な重複を削除できるようになる。これらのタスクを実行するための処理ロードが分散コンピュータシステムの複数のノードにかけて分散されることにより、１つのノードだけが全体のロードを担う必要がなくなる。
【００７０】
図４、図５に関連して上述した例では、図１の工程は、分散システムに記憶された全てのコンテンツユニットについて実行される単一工程として実現される。出願人は、分散システムに多数のコンテンツユニットが記憶されている場合には、全コンテンツユニットについて一度で工程を実行することはシステムに多大な処理負担をかける可能性があると理解した。いくつかのケースでは、分散システムに記憶されているコンテンツユニット数が非常に大きい場合には、処理負担が多大になり、システムがクライアントコンピュータからのアクセス要求をタイミング良く処理できなくなってしまう。
【００７１】
そのため、いくつかの実施形態では、図１、図４、図５の工程は増分的に実行することができる。例えばいくつかの実施形態では、これらの工程を、最初に分散システム内のコンテンツユニットの一部について実行し、次に別の一部について実行し、これを分散システム内の全てのコンテンツユニットが処理されるまで繰り返すことができる。
【００７２】
図４、図５に関連して上述した例では、コンテンツユニットのための識別子を使用して、各ノードに記憶されているコンテンツユニットのリストを作成し、コンテンツユニットにアクセスし、処理の許可を行うコンテンツユニットを処理する役目を持ったノードを識別する。任意の適切なタイプの識別子を使用できる。分散コンピュータシステムがＯＡＳシステムである実施形態では、これらの識別子は、ＯＡＳシステムにアクセスするクライアントコンピュータから見た場合に、識別するコンテンツユニットのどの物理および／または論理的な記憶装置の場所からも独立なオブジェクト識別子であってよい。
【００７３】
いくつかの実施形態では、ＯＡＳシステムはＣＡＳシステムであってよく、また、これらの識別子は、その少なくとも一部分が、識別するコンテンツユニットのコンテンツの少なくとも一部から生成されたコンテンツアドレスであってよい。
【００７４】
上述した本発明の実施形態は、様々な方法のいずれかによって実現できる。例えば、これらの実施形態をハードウェア、ソフトウェア、またはこれらの組み合わせによって実現することができる。ソフトウェアにて実現した場合、ソフトウェアコードを、１台のコンピュータまたは分散型の複数のコンピュータ間に提供された、任意の適切なハードウェアプロセッサ上またはハードウェアプロセッサの集合体上で実行することができる。上述の機能を実行する任意のコンポーネントまたはコンポーネントの集合体は、総体的に、上述の機能を制御する１または複数の制御装置として考えられると理解されるべきである。この１または複数の制御装置は多数の方法で実現でき、この方法には例えば、マイクロコードまたはソフトウェアを使用して上で引用した機能を実行するようにプログラムされた専用ハードウェアあるいは汎用ハードウェア（例えば１または複数のプロセッサ）を用いるものがある。
【００７５】
これに関連して、本発明の実施形態の１つの実現は、プロセッサ上で実行すると本発明の実施形態の上述の機能を実行するコンピュータプログラム（例えば複数の命令）でエンコードされた、少なくとも１つのコンピュータ読み出し可能な記憶媒体（例えばコンピュータメモリ、フロッピーディスク、コンパクトディスク、テープなど）を備えていると理解されるべきである。コンピュータ読み出し可能な記憶媒体は、記憶されたプログラムをあらゆるコンピュータリソース上にロードすることで、本明細書で述べた本発明の態様を実現できるよう、携帯可能であってよい。さらに、実行時に上述の機能を実行するコンピュータプログラムへの言及は、ホストコンピュータ上で実行中のアプリケーションプログラムに限定されない点が理解されるべきである。むしろ、本明細書中では用語「コンピュータプログラム」を、本発明の上述の態様を実現するべくプロセッサをプログラミングするために採用できる、任意のタイプのコンピュータコード（例えばソフトウェアまたはマイクロコード）に言及する一般的な意味で使用している。
【００７６】
本明細書で使用している表現および専門用語は説明の目的としたものであり、限定と考えられるべきではない。「含む」、「備える」、「持つ」、「含有する」、「関与する」およびこれらの応用形の使用は、以降に挙げる項目と追加の項目を包括することを意図している。
【００７７】
本発明のいくつかの実施形態を詳細に説明したが、当業者には様々な変更および改善が容易に明白となるだろう。このような変更と改善は、本発明の精神および範囲から逸脱しないものとする。したがって、前出の説明は例示の方法のみによるものであり、限定を意図したものではない。本発明は、以下の請求の範囲とその同等物によって定義されたとおりにのみ限定される。
【図１】
0005335934.tif 000002
【図２】
0005335934.tif 000003
【図３】
0005335934.tif 000004
【図４】
0005335934.tif 000005
【図５】
0005335934.tif 000006