JP5335934B2 - 分散データ処理の方法および装置 - Google Patents

分散データ処理の方法および装置 Download PDF

Info

Publication number
JP5335934B2
JP5335934B2 JP2011547873A JP2011547873A JP5335934B2 JP 5335934 B2 JP5335934 B2 JP 5335934B2 JP 2011547873 A JP2011547873 A JP 2011547873A JP 2011547873 A JP2011547873 A JP 2011547873A JP 5335934 B2 JP5335934 B2 JP 5335934B2
Authority
JP
Japan
Prior art keywords
node
content
nodes
list
identified
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011547873A
Other languages
English (en)
Other versions
JP2012516496A (ja
Inventor
マリヴォエ、キム
デニス、ヘールト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2012516496A publication Critical patent/JP2012516496A/ja
Application granted granted Critical
Publication of JP5335934B2 publication Critical patent/JP5335934B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Description

本明細書で述べる技術は、概して、分散コンピュータシステムの分野、より詳細には、分散コンピュータシステムに記憶したデータを処理する技術に関する。
分散コンピュータシステムは、相互に接続し、データ共有やタスク処理のアクティビティを調整できる、2台以上のコンピュータの集合体である。分散システム内の各コンピュータはノードと呼ばれ、独自の処理および記憶リソースを設けている。
いくつかの分散コンピュータシステムでは、ユーザが認識する集積計算設備は1台であっても、実際には、この計算設備が、複数の本質的に異なる地理的位置に複数の別個のコンピュータを備えている可能性がある。
少なくとも1つの通信媒体で接続した複数のノードを備える分散コンピュータシステムにおいてコンテンツユニットを処理する方法であって、複数のノードの各々は、複数のノードのものとは別のハードウェア処理リソースおよび記憶リソースを有する少なくとも1つの独立コンピュータを備え、独立ノードの各々は複数のコンテンツユニットを記憶し、複数のノードは少なくとも第1ノードと第2ノードを備え、この方法は、(A)第1、第2ノードの各々上で、これらのノードに記憶されているコンテンツユニットの識別子のリストを生成する動作を備え、(B)動作(A)で生成したリストを、複数のサブリストに分割する動作をさらに備え、サブリストの各々は特定範囲の識別子を含み、(C)第1ノードを第2ノードへ、動作(B)で生成した、第2ノードに割り当てられた範囲の識別子を含むサブリストを送信し、第2ノードから第1ノードへ、動作(B)で生成した、第1ノードに割り当てられた範囲の識別子を含むサブリストを送信する動作をさらに備え、(D)第1ノードにて、第2ノードからのサブリストを受信し、第2ノードからのサブリストを動作(B)で生成した少なくとも1つの他のサブリストと結合して第1結合リストを生成し、また、第2ノードにて、第1ノードからのサブリストを受信し、第1ノードからのサブリストを動作(B)で生成した少なくとも1つの他のサブリストと結合して第2結合リストを生成する動作をさらに備え、(E)第1ノードにて、第1結合リスト内で識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別し、また、第2ノードにて、第2結合リスト内で識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別する動作をさらに備え、(F)動作(E)で、第1結合リスト内で識別された少なくとも1つのコンテンツユニットが処理を許可するものであると判断された場合に;(F1)処理を許可するものと識別された少なくとも1つのコンテンツユニットについて処理を行うために、複数のノードの中から少なくとも1つを選択し、(F2)第1ノードから動作(F1)で選択した複数のノードの中の少なくとも1つへ、動作(E)で処理を許可するものと識別された少なくとも1つのコンテンツユニットを処理せよとの、少なくとも1つの命令を送信する。別の実施形態は、分散コンピュータシステム上で実行された際に上述の方法を実行するという命令でエンコードされた、少なくとも1つのコンピュータ読み出し可能な記憶媒体に関する。
分散コンピュータシステムであって、この分散コンピュータシステムは、少なくとも1つの通信媒体で接続した複数のノードを備え、複数のノードの各々は、別々のハードウェア処理リソースおよび記憶リソースを有する独立コンピュータであり、独立ノードの各々は複数のコンテンツユニットを記憶し、複数のノードのうち少なくとも1つは少なくとも1つの制御装置を備え、制御装置は、ノードに記憶されているコンテンツユニットの識別子のリストを生成し、識別子の各リストを複数のサブリストに分割し、サブリストの各々は特定範囲の識別子を含んでおり、サブリストの少なくともいくつかを、これらのサブリスト内の識別子範囲を受信するように割り当てられた、分散コンピュータシステム内の他のノードへ送信し、少なくとも1つの他のノードから少なくとも1つのサブリストを受信し、少なくとも1つのサブリストを識別子リストからのサブリストと結合して、結合リストを生成し、結合リスト内で識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別し、処理を許可するものとして識別されたコンテンツユニットの各々について処理を実行するために、少なくとも1つのノードを選択し、少なくとも1つの選択されたノードの各々に、そのノードによって処理されるべく選択されたコンテンツユニットを処理せよとの、少なくとも1つの命令を送信する。
本発明のいくつかの実施形態による、分散記憶装置システムに記憶されたコンテンツユニットを処理する例証的な工程のフローチャートである。 図1の工程を実現する複数の独立ノードを設けた分散コンピュータシステムのブロック図である。 図2の分散コンピュータシステムで使用できる独立ノードの1例のブロック図である。 いくつかの実施形態による、分散コンピュータシステム内で損失したコンテンツユニットを再生させる例証的な工程のフローチャートである。 いくつかの実施形態による、分散コンピュータシステム内で不要な重複コンテンツユニットを識別し削除する例証的な工程のフローチャートである。
出願人は、特定のデータアイテムを許可処理として識別できるよう、また、処理を許可するデータアイテムを分散方式で処理できるよう、各ノードに何のデータが記憶されているかを判断することが有用な状況が分散コンピュータシステムには多くあると理解している。
例えば、分散コンピュータシステムは、コンテンツユニットを、データの保護の目的で分散コンピュータシステムの複数のノードにかけて、いくつかまたはすべてのコンテンツユニットを分散させる方法で記憶することができる。つまり、例えば、1つのコンテンツユニットを複数に断片化し、これらの断片についてパリティ情報を計算することで、1つ以上の断片が損失した場合に、その損失した断片(1または複数)を残りの断片とパリティ情報を使用して再生することができるようになる。あるいは、1つのコンテンツユニットを断片化するのではなく、コンテンツユニット全体を1つのノードに記憶し、このコンテンツのミラーコピーを別のノードに記憶してもよい。分散システム内の1つのノードか、このようなノード内の記憶デバイスが障害を起こした場合、残りのノードにどのコンテンツまたはコンテンツの断片が記憶されているかを判断することで、障害により損失したそのコンテンツユニット断片またはコンテンツユニットを識別できるようにすることが望ましい。
各ノードにどのコンテンツユニットが記憶されているかを判断することが有益である状況の別の例には、分散システムに記憶されている、削除可能な冗長コンテンツユニットまたはコンテンツの断片があるかどうかを判断することが望ましいかどうかというものがある。例えば、ノードまたはノード内の記憶デバイスが障害を起こした場合、障害を起こしたノードまたは記憶デバイスに記憶されているコンテンツユニットまたは断片を再生することができる。障害を起こしたノードまたは記憶デバイスが後にオンラインで戻ってくる場合には、不要なコンテンツユニットまたは断片を識別し、これを削除することが望ましい。
出願者は、特定のコンテンツユニットを許可処理として識別できるよう、また、処理の許可を行うコンテンツユニットを分散方法で処理できるようにするために、分散計算システム内の各ノードにどのコンテンツユニットが記憶されているかを判断することが有益である状況が他にも多く生じ得ると理解している。
したがって、いくつかの実施形態は、分散システムの各ノードにどのコンテンツユニットが記憶されているかを識別し、これらのコンテンツユニットが許可されている場合には、どの処理か判断し、これらコンテンツユニットの処理を分散計算システムの複数のノードにかけて分散させる処理に関する。
このような処理の1例を図1に示す。図1の処理は動作101のダンプ段階から開始する。この動作101では、分散システム内の各ノードが、記憶しているコンテンツユニットのリストを作成する。これに関して本発明は限定されていないため、この段階はあらゆる適切な方法で行うことができる。例えば、いくつかの実施形態では、各ノードに記憶されたコンテンツユニットをノード上のファイルシステムに記憶したり、ファイルシステム内に記憶されている全てのコンテンツユニットのリスト作成の要求をファイルシステムに送信したりすることができる。
次に、工程は動作103の結合段階へ続くが、ここでは、分散システム内の各ノードが、記憶しているコンテンツユニットのリストの各部分を、同システム内でその部分を担当する別のノードへ送信する。例えば、いくつかの実施形態では、各コンテンツユニットは、分散計算システム内で各コンテンツユニットを一意に識別する識別子を持つことができる。識別子の範囲の一部を各ノードに割り当てることができる。例えば、3個のノードを持つ分散システムでは、「A」〜「H」で始まる識別子をノード1に割り当て、「I」〜「P」で始まる識別子をノード2に割り当て、「Q」〜「Z」で始まる識別子をノード3に割り当てることができる。したがって、上の例では、ノード1は、記憶しているコンテンツユニットリストを、3個のコンテンツユニットの範囲に対応した3つのリストに分割し、リストの「I」〜「P」で始まる識別子を含んだ部分をノード2に、「Q」〜「Z」で始まる識別子を含んだ部分をノード3に送信する。
次に、工程は動作105の処理段階へ続く。この段階では、ノードが、さらなる処理を許可すると識別されたコンテンツユニットの処理を行う。
図1の工程は、あらゆる適切な分散システム上で実現することができる。この工程を実現できる分散システムの1例を図2に示す。
図2では、分散コンピュータシステム201は複数の独立ノード203a、203b、・・・203nを備える。これに関連して本発明は限定されないため、分散コンピュータシステム201は任意数の適切なノードを持つことが可能である。各ノード203は、独自の処理および記憶リソースを備えた独立コンピュータである。ノード203は、そのアクティビティの調整、データの共用、タスクの処理を行うべく、ネットワーク205を介して相互に通信する。クライアント207は、分散コンピュータシステム201との間でデータアクセスと処理要求を送受信する。クライアントは分散システム201が複数の独立ノードを備えていることを知得していないので、クライアント207からは、このシステム201は単一の統合型コンピュータシステムにしか見えない。
簡略化の目的で、図2は、単一のクライアントコンピュータが分散システムにアクセスしている様子を示している。しかし、分散コンピュータシステムは、任意数のクライアントコンピュータからのアクセス要求を処理できるが、単一のクライアントコンピュータでの使用に制限されないという点を理解すべきである。
いくつかの実施形態では、分散システムはオブジェクトアドレス指定が可能な記憶装置(OAS)システムであってよい。OASシステムでは、記憶されているコンテンツユニットをオブジェクト識別子によって識別するが、このオブジェクト識別子は、OASシステム上でコンテンツユニットの記憶および取り出しを行うクライアントから見ると、識別子が識別するクライアントユニットのいかなる物理および/または論理記憶場所から独立である。そのため、分散システムの各ノードは、そのオブジェクト識別子を用いてコンテンツユニットを識別することができる。
いくつかの実施形態で使用できる1つのタイプのOASシステムは、コンテンツのアドレス指定が可能な記憶装置(CAS)システムである。CASシステムにおいて、コンテンツユニット用のオブジェクト識別子はコンテンツアドレスである。コンテンツアドレスは、少なくとも一部が、識別するコンテンツユニットのコンテンツの少なくとも一部を使用して生成される、特定タイプのオブジェクト識別子である。例えば、いくつかの実施形態で使用できる1つのタイプのコンテンツアドレスは、1つのコンテンツユニットの全てまたは一部のコンテンツをハッシュ機能を使ってハッシュし、これによって得たハッシュ値を、同コンテンツユニットの全てまたは一部のコンテンツアドレスとして使用することで生成できる。
コンピュータシステム201のノードは、本発明がこれに関して制限されないため、あらゆる適切な方法で実現できる。いくつかの実施形態では、分散システムの1または複数のノードを図3に示すように実現できる。図3では、ノード301は、独自の記憶および処理リソースを持った独立コンピュータである。ノード301は、プロセッサ303、コンピュータ読み出し可能な記憶媒体305、入/出力インターフェース307を備えている。コンピュータ読み出し可能な記憶媒体305は、1または複数の実体的な記憶媒体を備え、また、コンピュータ読み出し可能な命令を記憶することができる。この命令は、プロセッサ303によって実行されると、ノード301に、図1に関連して上述した処理のうちノード301が担う部分を実行させる。ノード301は、入出力(I/O)インターフェース307を介し、他のコンピュータ(例えば、分散システム内の他のノードおよび/または分散システム外のコンピュータ)との間で通信の送受信を行うことができる。
コンピュータ読み出し可能な記憶媒体305は任意の適切なタイプの記憶媒体、例えばディスクドライブ、ディスクドライブアレイ、RAM、および/またはその他任意の適切なタイプの実体的な記憶媒体を備えていてよい。さらに、いくつかの実施形態では、コンピュータ読み出し記憶媒体305を備えた記憶媒体のいくつかまたは全てが、プロセッサ303と同じ物理パッケージまたはボックスの中に在る必要はない。他のエンティティはコンピュータ読み出し可能な記憶媒体305に記憶されたデータにプロセッサ303を介してアクセスするので、コンピュータ読み出し可能な記憶媒体305は、むしろ、プロセッサ303と同じノードの一部であると考えられる。
上述したように、図1に示す工程は、多くの異なる処理タスクを達成するために使用できる。この工程を特定の分散処理タスクを実行するべくどう使用されるかを示すいくつかの例を以下に述べる。しかし、図1の工程は、以下に示す特定の例証的な処理タスクを実行することに限定されるものではないことが理解されるべきである。むしろ、図1の工程は、あらゆる数の分散処理タスクを実行するために使用でき、これらのうち2つの例を以下に示す。
コンテンツユニット再生
いくつかの実施形態では、図1の工程は、損失したコンテンツユニットまたはその断片を再生するために使用できる。
例えば、分散記憶装置システムは、コンテンツユニットを複数の断片に分割し、この断片からパリティ情報を計算するデータ保護スキームを採用することができる。断片とパリティ情報は分散方式で複数のノードにかけて記憶され、全ての断片が同一のノードに記憶されることはない。複数のノードのうちの1つ、またはその記憶デバイスが障害を起こし、断片が損失した場合には、残りの断片とパリティ情報を使用して損失した断片を再生することができる。分散記憶装置システムは、代替としてまたはこれに加えて、コンテンツユニット全体を1つのノードに記憶し、そのミラーコピーを別のノードに記憶するという保護スキームを採用することもできる。
ノードまたはノード内の記憶デバイスが障害を起こした場合、その記憶デバイスにはどのコンテンツユニットまたはコンテンツユニットの断片が記憶されていたかを判断し、これらを再生できるようにすることが望ましい。いくつかの実施形態では、障害を起こしたノードまたは記憶デバイスに記憶されているコンテンツユニットまたは断片を、別の記憶デバイスまたはノードに記憶されている全てのコンテンツユニットまたは断片から判断し、これらのコンテンツユニットに欠けている、あるいはミラーコピーがない断片はどれかを決定することで判断できる。
これは図1の工程を使用して達成できる。分散システム内の1つのノードを、分散システム内の複数のノードの中でも図1の工程を調整する中央ノードとして指定できる。中央ノードは、分散システム内のコンテンツユニットの範囲全体をサブ範囲に分割し、サブ範囲を分散システム内のノードに割り当てることができる。
いくつかの実施形態では、分散システム内にn個のオペレーションノードが在る場合、コンテンツユニットの範囲をn個のサブ範囲に分割することが可能である。例えば、3つのオペレーションノードを設けた分散システムでは、「A」〜「H」で始まる識別子を持つコンテンツユニットをノード1に割り当て、「I」〜「P」で始まる識別子を持つコンテンツユニットをノード2に割り当て、「Q」〜「Z」で始まる識別子を持つコンテンツユニットをノード3に割り当てることができる。
いくつかの実施形態では、中央ノードは、工程の各動作をいつ実行するべきかを、これらの動作の実行に有用なあらゆる情報をノードに提供することによってノードに命令することで、工程の調整を担う。
分散システム内の各ノードは、割り当てられた範囲のコンテンツユニットの断片またはミラーコピーが損失していないかを判断する責任を負ってもよい。図4は、これを達成する工程の1例を示す。
図4の工程は、工程のダンプ段階の開始を構成する動作401で始まっている。動作401では、各ノードが、記憶しているコンテンツユニットまたはその断片のリストを生成する。本発明はこれに関して限定されていないため、この生成はあらゆる適切な方法で行うことができる。例えば、いくつかの実施形態では、分散コンピュータシステム内のノードはコンテンツユニットまたはその断片を、ファイルシステム内のファイルとして記憶することができる。コンテンツユニットまたは断片の記憶をこの方法で行うノードは、全ての記憶ファイルのリストを提供するようにファイルシステムに対して要求することで、自己が記憶しているコンテンツユニットのリストを生成できる。
いくつかの実施形態では、各ノードは、生成する識別子のリストを分類することで、識別子を分類順序で記憶することが可能になる。こうすることで、動作407(後述)でリストの結合が促進され、また、ノードが、比較的少ないメモリフットプリントを用いる簡単なマージソートを使用してリストを結合できるようになる。
工程は次に、やはりダンプ段階の一部である動作403へ進む。動作403では、各ノードが、自己のリストを、中央ノードが判断したサブ範囲に対応するn個のサブ範囲に分割する。
工程は次に動作405へ進む。動作405〜動作411では工程の結合段階が続く。動作405では、各ノードが自己のリストの各サブ範囲を、そのサブ範囲を担当するノードに送信する。例えば、中央ノードがコンテンツユニットの範囲を3つのサブ範囲に分割する上述の例では、「A」〜「H」で始まる識別子を持ったコンテンツユニットをノード1に、「I」〜「P」で始まる識別子を持ったコンテンツユニットをノード2に、「Q」〜「Z」で始まる識別子を持ったコンテンツユニットをノード3に割り当てることができる。動作405では、ノード1は、自己が記憶する「I」〜「P」で始まる識別子を持ったコンテンツユニットのリストをノード2へ、「Q」〜「Z」で始まる識別子を持ったコンテンツユニットのリストをノード3へ送信する。ノード1はサブ範囲「A」〜「H」を割り当てられているので、「A」〜「H」で始まる識別子を持ったコンテンツユニットの自己のリストを記憶することができる。
上の例では、各ノードは識別子のサブリストを、そのサブリストを担当するノードに「押し付ける」。しかし、本発明はこれに関して限定されないため、いくつかの実施形態にあるように、ノードは、自己が担当する他ノードの識別子のサブリストを引っ張ることもできる。例えば、上の例では、ノード1がノード2に対して、ノード2が生成した「A」〜「H」で始まる識別子のサブリストを要求し、これに応じてノード2がこのサブリストを送信することができる。同様に、ノード1がノード3に対して、ノード3が生成した「A」〜「H」で始まる識別子のサブリストを要求し、これに応じてノード3がこのサブリストを送信できる。
工程は次に動作407へ進む。動作407では、各ノードが、他ノードから受信したリストを自己が担当するサブ範囲のリストと結合し、この結合リストを分類する。例えば、コンテンツユニットを3つのサブ範囲に分割している上の例では、ノード1がノード2から、ノード2によって記憶された「A」〜「H」で始まる識別子を持つコンテンツユニットのリストを受信し、さらに、ノード3から、ノード3によって記憶された「A」〜「H」で始まる識別子を持つコンテンツユニットの別のリストを受信することができる。ノード1は、これらのリストを「A」〜「H」で始まる識別子を持つ自己のコンテンツユニットのリストと結合し、この結合リストを、中の識別子が分類順序で並ぶ形で分類することができる。ノード2とノード3が、それぞれ担当するコンテンツユニットのサブ範囲について、同じ工程を実行することが可能である。
ノードが受信したサブリストの結合は、任意の適切な方法で行う。例えば、いくつかの実施形態では、これらのサブリストどうしをマージソートを用いて結合することで、出来上がったリストが分類順序で並ぶようにしている。
工程は次に動作409へ進む。動作409では、動作407で作成した結合リストを使用して、どのコンテンツユニットまたは断片が損失したかを判断する。例えば、上の例を続けると、ノード1は自己の結合リストを使用して、識別子が「A」〜「H」で始まるコンテンツユニットまたは断片のどれが(もし有れば)損失したかを判断することができる。本発明はこれに関して限定されないため、これはあらゆる適切な方法で行える。
例えば、分散システムが採用したデータ保護スキームが、複数のミラーコピーを分散システムの異なる複数のノードに記憶する例では、ノードは自己の結合リストを使用して、分散システム内にコンテンツユニットのミラーコピーがいくつ記憶されているか、また、追加のコピーを生成すべきであるかを判断する。
上の例を続けると、例えば、コンテンツユニットが識別子「ABC」を持っている場合、ノード1は、動作407で生成した結合リストにこの識別子が何回出てくるかを判断する。識別子が出てくる回数は1回だけであるが、記憶装置システムのデータ保護スキームがコンテンツユニットのコピーを2つ記憶すべきであると指定している場合には、ノード1は、コンテンツユニットの追加コピーを生成し、記憶するべきだと判断することができる。
分散システムが採用したデータ保護スキームがコンテンツユニットを断片に分割し、これらの断片についてパリティ情報を生成する実施形態では、ノードは結合リストを用いて、損失した断片はあるか、また、それらの断片のパリティ情報が損失したかを判断できる。本発明がこれに関連して限定されていないため、これは任意の適切な方法で行われる。
例えば、いくつかの実施形態では、1つのコンテンツユニットを6個のデータ断片と1個のパリティ断片に分割できる。コンテンツユニット全体のための識別子(つまり、アクセスするエンティティが分散システム上のコンテンツユニットにアクセスするために使用する識別子)が「ABC」である場合、各断片に、コンテンツユニット全体のための識別子を含む上に断片の識別も行う識別子を割り当てることができる。したがって、例えば、コンテンツユニット「ABC」の断片に、識別子ABC.1、ABC.2、ABC.3、ABC.4、ABC.5、ABC.6、ABC.7を割り当てることができる。ノードは結合リストを使用して、コンテンツユニットの1つの断片が欠けていないかどうかを、そのコンテンツユニットの断片識別子のいずれかが結合リストに載っていないと断定することによって判断できる。
上の例では、説明したデータ保護スキームは、7個の断片(つまり、6個のデータ断片と1個のパリティ断片)を使用してコンテンツユニットを保護する。しかし、これ以外の断片スキームの使用も可能であるため、本発明はこれに限定されるものではない。
動作409で、ノードにコンテンツユニットまたは断片の欠如が識別された場合には、工程は動作411へ進み、ここでは、各ノードが、動作409で欠如していると判断したコンテンツユニットまたは断片の再生を担当するのが他のノードのうちのどれであるかを判断し、これらのノードに対して、欠如したコンテンツユニットまたは断片を再生するよう命令を送信する。或るノードが、欠如していると判断されたコンテンツユニットまたは断片の再生の担当であると判断する状況において、このノードは命令を自己に送信する必要はなく(送信することは可能)、むしろ動作413へ進むことができる。
ノードは、欠如したコンテンツユニットまたは断片の再生がどのノードの担当であるかをあらゆる適切な方法で判断することができるが、これに関連して本発明は限定されない。
いくつかの実施形態では、中央ノードは、各ノードが使用できるアルゴリズムを定義することで、どのノードが特定のコンテンツユニットまたは断片の再生の担当であるかを、そのコンテンツユニットまたは断片の識別子に基づいて判断することが可能である。これに関連して本発明は限定されないため、任意の適切なアルゴリズムを使用できる。いくつかの実施形態では、コンテンツユニットまたは断片の再生の処理ロードを分散システム内のオペレーションノードにかけて均等に分散するよう試みるアルゴリズムを定義する。
1つのノードから別のノードへの、コンテンツユニットまたは断片を再生せよとの命令は、任意の適切な方法で送信でき、また、任意の適切な情報を含んでいてよい。例えば、いくつかの実施形態では、1つのノードから他のノードへ送信された命令は、再生すべきコンテンツユニットまたは断片を、その識別子を特定することによって識別する。
上の例では、ノードは、特定のコンテンツユニットに処理を実行するよう他のノードに命令するための通信を開始する。しかし、本発明はこれに関して限定されず、いくつかの実施形態では、コンテンツユニットの処理を担当するノードが1つ以上の他のノードに対し、そのノードがコンテンツユニット処理の担当である旨の通信を送信し、また、要求があればこれらのコンテンツユニットを送信することができる。本発明はこれに関して限定されないため、これは任意の適切な方法で行うことができる。
例えば、いくつかの実施形態では、処理ノードが、処理するコンテンツユニットを要求するためにどのノード(1または複数)に接触するか、また、そのノード(1または複数)からどのようにしてコンテンツユニットを要求するかを、従来の方法によって、または中央ノードから受信した情報によって判断することができる。
いくつかの実施形態では、中央ノードはこの処理を、同じ処理に参加しているシステム内の他のノードが処理を許可するコンテンツユニットの識別を完了した場合にのみ(例えば動作409)、各ノードが自己が担当するコンテンツユニットを要求できるよう調整することができる。
動作411の後、工程は、処理段階の開始である動作413へ進む。動作413では、各ノードが、自己が再生を担当するコンテンツユニットまたは断片の再生を行う。これは、本発明がこれに関連して限定されないため、任意の適切な方法で行うことができる。
例えば、分散システムが採用したデータ保護スキームが複数のミラーコピーを記憶する実施形態では、ノードは、コンテンツユニットの追加コピーを再生せよとの命令を受信すると、命令の中で識別されているコンテンツユニットの要求を、そのコンテンツユニットの残りのコピーを記憶しているコンテンツユニットの中に入れて分散システムへ送信し、コンテンツユニットの追加のコピーを作成し、これを自己の内部記憶デバイスの1つまたは別のノードに記憶することができる。
分散システムが採用したデータ保護スキームがコンテンツユニットを断片に分割し、これらの断片にパリティ情報を生成する実施形態では、ノードは、欠如している断片を再生せよとの命令を受信すると、断片を記憶している記憶装置システム内の残りの断片をそのノードに要求し、この残りの断片を使用して欠如した断片を再生し、再生した断片を自己の内部記憶デバイスのうちの1つまたは別のノードに記憶することができる。
動作413が完了すると工程は終了である。前述からわかるように、図4に示す工程によって、分散システムが、損失しているコンテンツユニットまたはコンテンツユニットの断片がないか判断し、損失しているコンテンツユニットまたは断片を再生できるようになる。どのコンテンツユニットまたは断片が損失しているかを判断し(損失がある場合)、任意の損失したコンテンツユニットまたは断片を再生する処理ロードが、分散コンピュータシステムの複数のノードにかけて分散されることで、1つのノードがロード全体を負担する必要がなくなる。
重複データ排除
出願人は、いくつかの実施形態では、図1の工程を使用して、不要な重複が存在するコンテンツユニットを識別し、この不要な重複を分散コンピュータシステムから除去できると理解した。
不要な重複は、多数の理由で、分散コンピュータシステム上に存在する。例えば、ノードまたはノード内の記憶デバイスに障害が起こった場合、そのノードまたは記憶デバイスに記憶されているコンテンツユニットを再生することができる。障害を起こしたノードまたは記憶デバイスが後にオンラインで戻ってくる場合には、障害に反応して再生された追加のまたは不要なコンテンツユニットのコピーが存在する可能性がある。これらの不要なコンテンツユニットを削除して、分散システム内の記憶スペースを空けることが望ましい。
さらに、分散コンピュータシステムは、コンテンツユニットを記憶する要求を受信することができる。このような要求を受信した場合には、分散コンピュータシステムが同じ内容のコンテンツユニットを既に記憶していないかどうかを識別することが望ましく、もしそのコンテンツユニットのコピーが既に存在するのであれば、コンテンツユニットの新規コピーを記憶装置システム上に保持する必要はない。あるいは、記憶要求を受けてから、そのコンテンツユニットのコピーが既に記憶されているかどうかを判断するのではなく、コンピュータシステムは要求に応じてコンテンツユニットを記憶した上で、不要な重複を識別/削除するチェックを定期的に行ってもよい。
図5は、コンテンツユニットの不要な重複が分散システム上に存在するかどうか識別し、不要な重複を除去するために、図1の工程を実現する例証的な工程を示す。
図4に関連して上述した例と類似し、分散システム内の1つのノードを、工程を調整する中央ノードに指定することができる。中央ノードは、分散システム内のコンテンツユニットの全体範囲をサブ範囲に分割し、サブ範囲を分散システム内のノードに割り当てる。本発明はこれに関連して限定されないため、範囲をサブ範囲に分割する任意の適切な方法を使用し、これらのサブ範囲を任意の適切な方法でノードに割り当てることが可能である。
いくつかの実施形態では、中央ノードには、工程内の各動作をいつ実行するかを、これらの動作の実行に有用なあらゆる情報をノードに提供して命令することで、工程の調整を行う責務がある。
図5の工程は、工程のダンプ段階の開始である動作501から始まる。動作501で、各ノードが、記憶しているコンテンツユニットのリストを生成する。図4に関連して上述したように、本発明はこれに関連して限定されていないため、これは任意の適切な方法で行える。例えば、いくつかの実施形態では、分散コンピュータシステム内のノードはコンテンツユニットまたは断片を、ファイルシステム内のファイルとして記憶できる。この方法でコンテンツユニットまたは断片を記憶するノードは、記憶している全ファイルのリストを提供するようファイルシステムに対して要求することで、リストを生成できる。
いくつかの実施形態では、各ノードは生成する識別子のリストを分類し、これらの識別子がリスト上の分類された順序で並ぶようにしてもよい。こうすることにより、動作507(後述)でのサブリストの結合を促進でき、また、ノードが、比較的少ないメモリフットプリントを用いる簡単なマージソートを使用してリストを結合できるようになる。
工程は次に動作503へ進む。動作503では、各ノードがリストを、中央ノードが決定し割り当てたサブ範囲に対応する、n個のサブ範囲に分割する。
工程は次に動作505へ進む。動作505〜動作511は、工程の結合段階で構成されている。動作505で、各ノードはリストの各サブ範囲を、そのサブ範囲を担当するノードに送信する。本発明がこれに関連して制限されていないため、これは任意の適切な方法で行える。例えば、動作505を、図4の動作405に類似した方式で実行してもよい。
動作505が終了すると、工程は動作507へ進む。動作507では、各ノードが、他ノードからのリストを自己が担当するサブ範囲のリストと結合し、結合したリストを分類する。
ノードが受信したサブリストは任意の適切な方法で結合することができる。例えば、いくつかの実施形態では、これらのサブリストをマージソートを用いて結合することで、サブリストを結合して得た結合リストが分類順序で並ぶようにすることができる。
工程は次に動作509へ進む。動作509では、動作507で作成した結合リストを使用して、コンテンツユニットの不要な重複を識別する。本発明がこれに関連して限定されていないため、これは任意の適切な方法で行える。例えば、ノードは自己の結合リストを使用して、或るコンテンツユニットのコピーが分散コンテンツシステム内にいくつ記憶されているかを判断することができる。記憶すべき数以上のコピーが記憶されている場合には、ノードは、そのコンテンツユニットの1または複数のコピーを削除すべきであると判断できる。したがって、例えば、分散記憶装置システムが、1つのコンテンツユニットの2個のコピーを異なるノードに記憶するデータ保護スキームを採用しており、動作509で、ノードが分散記憶装置システム内にコンテンツユニットのコピーが3個記憶されていると判断した場合には、ノードはそのコンテンツユニットのコピーを1つ削除すべきだと判断できる。
動作509の後、工程は動作511へ進む。動作511では、各ノードが、動作509で識別されたコンテンツユニットの不要なコピーの削除を担当するのは、他のノードのうちのどれであるかを判断する。本発明がこれに関連して限定されていないため、これは任意の適切な方法で行える。
例えば、いくつかの実施形態では、ノードは、動作507で自己の結合リストを生成する際に、結合リストに載っている識別子を持つ各々のコンテンツユニットをどのノードが記憶しているかを識別する情報を、この結合リストに含めることができる。動作509で、ノードが或るコンテンツユニットを削除すべきと識別する場合、ノードは、そのコンテンツユニットのコピーをどのノードが記憶しているかを結合リストから判断し、これらのノードの中から、コンテンツユニットのコピーの削除を行うノードを1つ選択することができる。
本発明はこれに関連して限定されていないため、ノードは、削除すべきそのコンテンツユニットのコピーを任意の適切な方法で削除するノードを選択することができる。いくつかの実施形態では、中央ノードはアルゴリズムを定義でき、このアルゴリズムは、各ノードが、コンテンツユニットのコピーを記憶している複数のノードのうちのどれを選択してコピーを削除させるか判断するために使用する。これに関連して本発明は限定されないため、任意の適切なアルゴリズムの使用が可能である。いくつかの実施形態では、このアルゴリズムは、コンテンツユニット削除の処理ロードを分散システム内のオペレーションノード間で均等に分散するべく試みるように定義できる。
ノードは、削除されるべき不要なコピーが存在するコンテンツユニットを識別し、そのコンテンツのコピーを削除させるノードを選択したら、コンテンツユニットのコピーに選択したノードに対して命令を送信する。この命令は任意の適切な方法で送信でき、また、任意の適切な情報を含んでいてよい。例えばいくつかの実施形態では、この命令は、選択したノードに、コンテンツユニットを削除するよう命令し、また、削除すべきコンテンツユニットをその識別子を使用して識別する情報を含んでいてよい。
上の例では、ノードが、他のノードに特定のコンテンツユニットの処理を実行するよう命令する通信を開始する。しかし、いくつかの実施形態と同様に本発明はこれに関連して限定されないため、コンテンツユニットの処理を担当するノードが、1または複数の他のノードに対して、それらが処理を担当するコンテンツユニットを要求する通信を送信でき、また、これらのコンテンツユニットは要求に応じて送信されることができる。本発明はこれに関連して限定されていないため、これは任意の適切な方法で行える。
例えばいくつかの実施形態では、処理ノードは、処理するコンテンツユニットを要求するためにどのノード(1または複数)に接触すべきか、そして、そのノード(1または複数)からどのようにしてコンテンツユニットを要求するかを、従来の方法によって、または中央ノードから受信した情報によって判断することができる。
いくつかの実施形態では、中央ノードはこの工程を調整し、処理に参加しているシステム内の他のノードが、処理を許可するコンテンツユニットの識別を完了した際にのみ、各ノードが自己が処理を担当するコンテンツユニットを要求できるようにすることができる。
動作511の後に、処理は、処理段階の開始である動作513へ進む。動作513では、各ノードが、削除するよう命令されたコンテンツユニットを削除し、工程が終了する。前出からわかるように、図5に示す工程によって、分散システムが、内部に不要な重複コンテンツユニットが存在するどうかを判断し、これらの不要な重複を削除できるようになる。これらのタスクを実行するための処理ロードが分散コンピュータシステムの複数のノードにかけて分散されることにより、1つのノードだけが全体のロードを担う必要がなくなる。
図4、図5に関連して上述した例では、図1の工程は、分散システムに記憶された全てのコンテンツユニットについて実行される単一工程として実現される。出願人は、分散システムに多数のコンテンツユニットが記憶されている場合には、全コンテンツユニットについて一度で工程を実行することはシステムに多大な処理負担をかける可能性があると理解した。いくつかのケースでは、分散システムに記憶されているコンテンツユニット数が非常に大きい場合には、処理負担が多大になり、システムがクライアントコンピュータからのアクセス要求をタイミング良く処理できなくなってしまう。
そのため、いくつかの実施形態では、図1、図4、図5の工程は増分的に実行することができる。例えばいくつかの実施形態では、これらの工程を、最初に分散システム内のコンテンツユニットの一部について実行し、次に別の一部について実行し、これを分散システム内の全てのコンテンツユニットが処理されるまで繰り返すことができる。
図4、図5に関連して上述した例では、コンテンツユニットのための識別子を使用して、各ノードに記憶されているコンテンツユニットのリストを作成し、コンテンツユニットにアクセスし、処理の許可を行うコンテンツユニットを処理する役目を持ったノードを識別する。任意の適切なタイプの識別子を使用できる。分散コンピュータシステムがOASシステムである実施形態では、これらの識別子は、OASシステムにアクセスするクライアントコンピュータから見た場合に、識別するコンテンツユニットのどの物理および/または論理的な記憶装置の場所からも独立なオブジェクト識別子であってよい。
いくつかの実施形態では、OASシステムはCASシステムであってよく、また、これらの識別子は、その少なくとも一部分が、識別するコンテンツユニットのコンテンツの少なくとも一部から生成されたコンテンツアドレスであってよい。
上述した本発明の実施形態は、様々な方法のいずれかによって実現できる。例えば、これらの実施形態をハードウェア、ソフトウェア、またはこれらの組み合わせによって実現することができる。ソフトウェアにて実現した場合、ソフトウェアコードを、1台のコンピュータまたは分散型の複数のコンピュータ間に提供された、任意の適切なハードウェアプロセッサ上またはハードウェアプロセッサの集合体上で実行することができる。上述の機能を実行する任意のコンポーネントまたはコンポーネントの集合体は、総体的に、上述の機能を制御する1または複数の制御装置として考えられると理解されるべきである。この1または複数の制御装置は多数の方法で実現でき、この方法には例えば、マイクロコードまたはソフトウェアを使用して上で引用した機能を実行するようにプログラムされた専用ハードウェアあるいは汎用ハードウェア(例えば1または複数のプロセッサ)を用いるものがある。
これに関連して、本発明の実施形態の1つの実現は、プロセッサ上で実行すると本発明の実施形態の上述の機能を実行するコンピュータプログラム(例えば複数の命令)でエンコードされた、少なくとも1つのコンピュータ読み出し可能な記憶媒体(例えばコンピュータメモリ、フロッピーディスク、コンパクトディスク、テープなど)を備えていると理解されるべきである。コンピュータ読み出し可能な記憶媒体は、記憶されたプログラムをあらゆるコンピュータリソース上にロードすることで、本明細書で述べた本発明の態様を実現できるよう、携帯可能であってよい。さらに、実行時に上述の機能を実行するコンピュータプログラムへの言及は、ホストコンピュータ上で実行中のアプリケーションプログラムに限定されない点が理解されるべきである。むしろ、本明細書中では用語「コンピュータプログラム」を、本発明の上述の態様を実現するべくプロセッサをプログラミングするために採用できる、任意のタイプのコンピュータコード(例えばソフトウェアまたはマイクロコード)に言及する一般的な意味で使用している。
本明細書で使用している表現および専門用語は説明の目的としたものであり、限定と考えられるべきではない。「含む」、「備える」、「持つ」、「含有する」、「関与する」およびこれらの応用形の使用は、以降に挙げる項目と追加の項目を包括することを意図している。
本発明のいくつかの実施形態を詳細に説明したが、当業者には様々な変更および改善が容易に明白となるだろう。このような変更と改善は、本発明の精神および範囲から逸脱しないものとする。したがって、前出の説明は例示の方法のみによるものであり、限定を意図したものではない。本発明は、以下の請求の範囲とその同等物によって定義されたとおりにのみ限定される。

Claims (20)

  1. 少なくとも1つの通信媒体で接続した複数のノードを備える分散コンピュータシステムにおいてコンテンツユニットを処理する方法であって、前記複数のノードの各々は、前記複数のノードのうちの他のノードのものとは別個のハードウェア処理リソースおよび記憶リソースを有する少なくとも1つの独立コンピュータを備え、独立ノードの各々は複数のコンテンツユニットを記憶し、前記複数のノードは少なくとも第1ノードと第2ノードとを含み、前記方法は、
    (A)前記第1及び第2ノードの各々上において、ノードに記憶されているコンテンツユニットの識別子のリストを生成する動作と、
    (B)前記動作(A)で生成されたリストを、複数のサブリストに分割する動作であって、前記サブリストの各々は特定範囲の識別子を含む、前記分割する動作と、
    (C)前記第1ノードから前記第2ノードへ、前記動作(B)で生成された、前記第2ノードに割り当てられた範囲の識別子を含むサブリストを送信し、前記第2ノードから前記第1ノードへ、前記動作(B)で生成された、前記第1ノードに割り当てられた範囲の識別子を含むサブリストを送信する動作と、
    (D)前記第1ノードにて、前記第2ノードからのサブリストを受信し、前記第2ノードからのサブリストを、前記動作(B)で生成された少なくとも1つの他のサブリストと結合して第1結合リストを生成し、前記第2ノードにて、前記第1ノードからのサブリストを受信し、前記第1ノードからのサブリストを、前記動作(B)で生成された少なくとも1つの他のサブリストと結合して第2結合リストを生成する動作と、
    (E)前記第1ノードにて、前記第1結合リストにおいて識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別し、第2ノードにて、前記第2結合リストにおいて識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別する動作と、
    (F)前記動作(E)で、前記第1結合リストにおいて識別された少なくとも1つのコンテンツユニットが処理を許可するものであると判断された場合に、
    (F1)処理を許可するものと識別された前記少なくとも1つのコンテンツユニットについて処理を行うために、前記複数のノードの中から少なくとも1つを選択する動作と、
    (F2)前記第1ノードから、前記動作(F1)で選択された前記複数のノードの中の少なくとも1つへ、前記動作(E)で処理を許可するものと識別された前記少なくとも1つのコンテンツユニットを処理せよとの少なくとも1つの命令を送信する動作と
    を含む、方法。
  2. 前記第1及び第2ノードは、それぞれ自己に記憶されている前記複数のコンテンツユニットをファイルシステム内のファイルに記憶し、前記第1及び第2ノード上で、ノード上のコンテンツユニットの識別子のリストを生成する動作は、前記第1及び第2ノードの各々上で、ノード上のファイルシステムに、前記ファイルシステムに記憶されているファイルのリストを作成するように要求を送信する動作を含む、請求項1に記載の方法。
  3. 前記分散コンピュータシステムはオブジェクトアドレス指定可能な記憶装置(OAS)システムであり、前記動作(A)で生成された前記識別子のリストの各々の中の各識別子は、分散システムにおける対応するコンテンツユニットの物理的および論理的な記憶場所のいずれからも独立なオブジェクトアドレスである、請求項1に記載の方法。
  4. 前記OASシステムはコンテンツアドレス指定可能な記憶装置(CAS)システムであり、前記識別子のリストの各々の中の各識別子は、少なくともその一部が、対応するコンテンツユニットのコンテンツの少なくとも一部から生成されたコンテンツアドレスである、請求項3に記載の方法。
  5. 前記動作(E)はさらに、前記第1ノードにて、前記第1結合リスト内で識別されたコンテンツユニットのいずれかが再生および識別を許可するかどうかを識別し、前記第2ノードにて、前記第2結合リスト内で識別されたコンテンツユニットのいずれかが再生を許可するかどうかを識別する動作を含む、請求項1に記載の方法。
  6. 前記動作(F1)は、再生を許可するものとして識別された少なくとも1つのコンテンツユニットについて再生を実行するために、前記複数のノードの少なくとも1つを選択する動作をさらに含み、前記動作(F2)は、前記第1ノードから前記複数のノードのうち前記動作(F1)で選択された少なくとも1つへ、前記動作(E)で再生を許可するものと識別された少なくとも1つのコンテンツユニットを再生せよとの少なくとも1つの命令を送信する動作をさらに含む、請求項5に記載の方法。
  7. 前記動作(E)はさらに、前記第1ノードにて、前記第1結合リスト内で識別されたコンテンツユニットのいずれかが削除および識別を許可するかどうかを識別し、前記第2ノードにて、前記第2結合リスト内で識別されたコンテンツユニットのいずれかが削除を許可するかどうかを識別する動作をさらに含む、請求項1に記載の方法。
  8. 少なくとも1つのコンピュータ読み出し可能な記憶媒体であって、前記記憶媒体は、実行時に、少なくとも1つの通信媒体で接続している複数のノードを備えた分散コンピュータシステムにおいてコンテンツユニットを処理する方法を実行する命令でエンコードされており、前記複数のノードの各々は、前記複数のノードのうちの他のノードのものとは別個のハードウェア処理リソースおよび記憶リソースを有する少なくとも1つの独立コンピュータを含み、独立ノードの各々は複数のコンテンツユニットを記憶し、前記複数のノードは少なくとも第1ノードと第2ノードとを含み、前記方法は、
    (A)前記第1及び第2ノードの各々上において、ノードに記憶されているコンテンツユニットの識別子のリストを生成する動作と、
    (B)前記動作(A)で生成されたリストを、複数のサブリストに分割する動作であって、前記サブリストの各々は特定範囲の識別子を含む、前記分割する動作と、
    (C)前記第1ノードから前記第2ノードへ、前記動作(B)で生成された、前記第2ノードに割り当てられた範囲の識別子を含むサブリストを送信し、前記第2ノードから前記第1ノードへ、前記動作(B)で生成された、前記第1ノードに割り当てられた範囲の識別子を含むサブリストを送信する動作と、
    (D)前記第1ノードにて、前記第2ノードからのサブリストを受信し、前記第2ノードからのサブリストを、前記動作(B)で生成された少なくとも1つの他のサブリストと結合して第1結合リストを生成し、前記第2ノードにて、前記第1ノードからのサブリストを受信し、前記第1ノードからのサブリストを、前記動作(B)で生成された少なくとも1つの他のサブリストと結合して第2結合リストを生成する動作と、
    (E)前記第1ノードにて、前記第1結合リストにおいて識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別し、第2ノードにて、前記第2結合リストにおいて識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別する動作と、
    (F)前記動作(E)で、前記第1結合リストにおいて識別された少なくとも1つのコンテンツユニットが処理を許可するものであると判断された場合に、
    (F1)処理を許可するものと識別された前記少なくとも1つのコンテンツユニットについて処理を行うために、前記複数のノードの中から少なくとも1つを選択する動作と、
    (F2)前記第1ノードから、前記動作(F1)で選択された前記複数のノードの中の少なくとも1つへ、前記動作(E)で処理を許可するものと識別された前記少なくとも1つのコンテンツユニットを処理せよとの少なくとも1つの命令を送信する動作と
    を含む、少なくとも1つのコンピュータ読み出し可能な記憶媒体。
  9. 前記第1及び第2ノードは、それぞれ自己に記憶されている前記複数のコンテンツユニットをファイルシステム内のファイルに記憶し、前記第1及び第2ノード上で、ノード上のコンテンツユニットの識別子のリストを生成する動作は、前記第1及び第2ノードの各々上で、ノード上のファイルシステムに、前記ファイルシステムに記憶されているファイルのリストを作成するように要求を送信する動作を含む、請求項8に記載の少なくとも1つのコンピュータ読み出し可能な記憶媒体。
  10. 前記分散コンピュータシステムはオブジェクトアドレス指定可能な記憶装置(OAS)システムであり、前記動作(A)で生成された前記識別子のリストの各々の中の各識別子は、分散システムにおける対応するコンテンツユニットの物理的および論理的な記憶場所のいずれからも独立なオブジェクトアドレスである、請求項8に記載の少なくとも1つのコンピュータ読み出し可能な記憶媒体。
  11. 前記OASシステムはコンテンツアドレス指定可能な記憶装置(CAS)システムであり、前記識別子のリストの各々の中の各識別子は、少なくともその一部が、対応するコンテンツユニットのコンテンツの少なくとも一部から生成されたコンテンツアドレスである、請求項10に記載の少なくとも1つのコンピュータ読み出し可能な記憶媒体。
  12. 前記動作(E)はさらに、前記第1ノードにて、前記第1結合リスト内で識別されたコンテンツユニットのいずれかが再生および識別を許可するかどうかを識別し、前記第2ノードにて、前記第2結合リスト内で識別されたコンテンツユニットのいずれかが再生を許可するかどうかを識別する動作を含む、請求項8に記載の少なくとも1つのコンピュータ読み出し可能な記憶媒体。
  13. 前記動作(F1)は、再生を許可するものとして識別された少なくとも1つのコンテンツユニットについて再生を実行するために、前記複数のノードの少なくとも1つを選択する動作をさらに含み、前記動作(F2)は、前記第1ノードから前記複数のノードのうち前記動作(F1)で選択された少なくとも1つへ、前記動作(E)で再生を許可するものと識別された少なくとも1つのコンテンツユニットを再生せよとの少なくとも1つの命令を送信する動作をさらに含む、請求項12に記載の少なくとも1つのコンピュータ読み出し可能な記憶媒体。
  14. 前記動作(E)はさらに、前記第1ノードにて、前記第1結合リスト内で識別されたコンテンツユニットのいずれかが削除および識別を許可するかどうかを識別し、前記第2ノードにて、前記第2結合リスト内で識別されたコンテンツユニットのいずれかが削除を許可するかどうかを識別する動作をさらに含む、請求項8に記載の少なくとも1つのコンピュータ読み出し可能な記憶媒体。
  15. 分散コンピュータシステムであって、
    少なくとも1つの通信媒体で接続された複数のノードを備え、前記複数のノードの各々は、別個のハードウェア処理リソースおよび記憶リソースを有する独立コンピュータであり、独立ノードの各々は複数のコンテンツユニットを記憶し、前記複数のノードのうち少なくとも1つは少なくとも1つの制御装置を含み、前記制御装置は、
    ノードに記憶されているコンテンツユニットの識別子のリストを生成すること、
    識別子の各リストを複数のサブリストに分割することであって、前記サブリストの各々は特定範囲の識別子を含んでいる、前記分割すること、
    前記サブリストの少なくともいくつかを、当該サブリスト内の範囲の識別子を受信するように割り当てられた、前記分散コンピュータシステム内の他のノードへ送信すること、
    少なくとも1つの他のノードから少なくとも1つのサブリストを受信し、前記少なくとも1つのサブリストを前記識別子のリストからのサブリストと結合して、結合リストを生成すること、
    前記結合リスト内で識別されたコンテンツユニットのいずれかが処理を許可するかどうかを識別すること、
    処理を許可するものとして識別された前記コンテンツユニットの各々について処理を実行するために、少なくとも1つのノードを選択すること、
    前記少なくとも1つの選択されたノードの各々に、ノードによって処理されるべく選択されたコンテンツユニットを処理せよとの、少なくとも1つの命令を送信すること
    を行なう、分散コンピュータシステム。
  16. 前記ノードの各々は、ノードに記憶されている複数のコンテンツユニットをファイルシステム内のファイルに記憶し、前記少なくとも1つの制御装置は、前記ファイルシステムに、前記複数のノードのうち少なくとも1つ上のファイルシステムに記憶されているファイルを列挙せよとの要求を送信することにより、識別子のリストを生成する、請求項15に記載の分散コンピュータシステム。
  17. 前記分散コンピュータシステムは、オブジェクトアドレス指定可能な記憶装置(OAS)システムであり、前記識別子のリストの中の各識別子は、分散システムにおける対応するコンテンツユニットのいかなる物理的および論理的な記憶場所からも独立である、請求項15に記載の分散コンピュータシステム。
  18. 前記OASシステムは、コンテンツアドレス指定可能な記憶装置(CAS)システムであり、前記識別子のリストの中の各識別子は、少なくともその一部が、対応するコンテンツユニットのコンテンツの少なくとも一部から生成されたコンテンツアドレスである、請求項17に記載の分散コンピュータシステム。
  19. 前記少なくとも1つの制御装置は、前記結合リスト内で識別されたコンテンツユニットのいずれかが再生を許可するかどうかを識別する、請求項15に記載の分散コンピュータシステム。
  20. 前記少なくとも1つの制御装置は、前記結合リスト内の識別されたコンテンツユニットのいずれかが削除を許可するかどうかを識別する、請求項15に記載の分散コンピュータシステム。
JP2011547873A 2009-01-29 2009-01-29 分散データ処理の方法および装置 Active JP5335934B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/000567 WO2010087793A1 (en) 2009-01-29 2009-01-29 Method and apparatus for processing distributed data

Publications (2)

Publication Number Publication Date
JP2012516496A JP2012516496A (ja) 2012-07-19
JP5335934B2 true JP5335934B2 (ja) 2013-11-06

Family

ID=42395852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011547873A Active JP5335934B2 (ja) 2009-01-29 2009-01-29 分散データ処理の方法および装置

Country Status (4)

Country Link
US (1) US8725789B2 (ja)
EP (1) EP2391946B1 (ja)
JP (1) JP5335934B2 (ja)
WO (1) WO2010087793A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103180839B (zh) 2011-08-26 2016-10-05 松下知识产权经营株式会社 内容管理装置及内容管理方法
JP6221624B2 (ja) * 2013-10-23 2017-11-01 富士電機株式会社 流体種類判別装置及び流体種類判別方法
CN114466012B (zh) * 2022-02-07 2022-11-25 北京百度网讯科技有限公司 内容初始化方法、装置、电子设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009432A (en) * 1998-07-08 1999-12-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
US20020161850A1 (en) * 2001-01-29 2002-10-31 Ulrich Thomas R. Data path accelerator for storage systems
JP2003233522A (ja) * 2002-02-12 2003-08-22 Minolta Co Ltd ネットワークシステム
SE0202450D0 (sv) * 2002-08-15 2002-08-15 Ericsson Telefon Ab L M Non-repudiation of digital content
JP2004128597A (ja) * 2002-09-30 2004-04-22 Victor Co Of Japan Ltd コンテンツ再生システム
US7162571B2 (en) * 2003-12-09 2007-01-09 Emc Corporation Methods and apparatus for parsing a content address to facilitate selection of a physical storage location in a data storage system
JP4546538B2 (ja) * 2004-11-16 2010-09-15 株式会社エヌ・ティ・ティ・ドコモ モバイルネットワーク内の共有ファイルに関する情報を管理する方法、装置およびプログラム製品
JP4674504B2 (ja) * 2005-07-26 2011-04-20 ブラザー工業株式会社 管理装置、ノード装置、コンテンツ情報管理処理プログラム、確認要求処理プログラム、情報配信システム、及び情報配信方法
US7529972B2 (en) 2006-01-03 2009-05-05 Emc Corporation Methods and apparatus for reconfiguring a storage system
JP2009533723A (ja) * 2006-03-28 2009-09-17 イーエムシー コーポレイション 記憶システムからコンテンツを転送するための方法および装置
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory

Also Published As

Publication number Publication date
JP2012516496A (ja) 2012-07-19
US20120005253A1 (en) 2012-01-05
US8725789B2 (en) 2014-05-13
EP2391946A1 (en) 2011-12-07
WO2010087793A1 (en) 2010-08-05
EP2391946B1 (en) 2018-03-07
EP2391946A4 (en) 2012-11-07

Similar Documents

Publication Publication Date Title
US11093159B2 (en) Storage system with storage volume pre-copy functionality for increased efficiency in asynchronous replication
US8307019B2 (en) File management method and storage system
US10817385B2 (en) Storage system with backup control utilizing content-based signatures
US10496668B1 (en) Optimized tender processing of hash-based replicated data
US20200326877A1 (en) Storage system with efficient detection and clean-up of stale data for sparsely-allocated storage in replication
EP3108371B1 (en) Modified memory compression
JP6231669B2 (ja) データ書込み要求処理方法及びストレージアレイ
US10715622B2 (en) Systems and methods for accelerating object stores with distributed caching
US20170317991A1 (en) Offloading storage encryption operations
CN104580439B (zh) 一种云存储系统中使数据均匀分布的方法
US20120323864A1 (en) Distributed de-duplication system and processing method thereof
JP2011191933A (ja) ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP6254293B2 (ja) データ重複排除方法及びストレージアレイ
US10924275B1 (en) Creating multiple encrypted volumes from a single source
US11137929B2 (en) Storage system configured to support cascade replication
CN109144406A (zh) 分布式存储系统中元数据存储方法、系统及存储介质
US20230350863A1 (en) Methods and systems for scalable deduplication
JP5335934B2 (ja) 分散データ処理の方法および装置
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
JP5444728B2 (ja) ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム
TW201638799A (zh) 計算系統中之軟體影像的分佈式存儲
CN109308288B (zh) 数据处理方法及装置
US10789002B1 (en) Hybrid data deduplication for elastic cloud storage devices
US9256648B2 (en) Data handling in a cloud computing environment
JP2021077374A (ja) 情報ライフサイクル管理のための同期オブジェクト配置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130614

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130731

R150 Certificate of patent or registration of utility model

Ref document number: 5335934

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250