JP6256931B2 - 分散型記憶システムにおけるキャッシュおよび非キャッシュの使用 - Google Patents

分散型記憶システムにおけるキャッシュおよび非キャッシュの使用 Download PDF

Info

Publication number
JP6256931B2
JP6256931B2 JP2016526888A JP2016526888A JP6256931B2 JP 6256931 B2 JP6256931 B2 JP 6256931B2 JP 2016526888 A JP2016526888 A JP 2016526888A JP 2016526888 A JP2016526888 A JP 2016526888A JP 6256931 B2 JP6256931 B2 JP 6256931B2
Authority
JP
Japan
Prior art keywords
data
node
storage
received
metadata
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
JP2016526888A
Other languages
English (en)
Other versions
JP2017501476A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2017501476A publication Critical patent/JP2017501476A/ja
Application granted granted Critical
Publication of JP6256931B2 publication Critical patent/JP6256931B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Description

一般的に、分散型記憶システムは、対応するデータを記憶するための異なる位置に配置された複数のノードを含み得る。通常、複数の記憶ノードは、ネットワークを介して互いに相互接続されている。複数の記憶ノード間の通信により、複数の記憶ノードは、記憶されたデータを集合的に管理することが可能となる。コンピュータは、1または複数のノードで記憶されたデータを取得すべく、分散型記憶システムと通信することが可能である。
必要に応じて、データの複数のバックアップコピーが分散型記憶システムにおいて記憶され得る。例えば、分散型記憶システムにおける第1の記憶ノードは、データの一次コピーを記憶するように構成され得る。分散型記憶システムにおける第2の記憶ノードは、一次データのバックアップコピーを記憶するように構成され得る。複数のノードのうち1つが入手可能でなくなると、残りの記憶ノードは、対応するデータを取得すべくアクセスされ得る。
分散型記憶システムは、クラウドインフラストラクチャにおいて、低コストで信頼性のあるデータのストレージを提供するための手段として普及してきた。分散型記憶システムは、多くの場合、ソフトウェアにおいて実装され、標準の高容量のサーバ上で実行され、データを記憶するハードディスクドライブ等の安価な回転媒体を利用する。場合によっては、データを記憶するべく回転ディスクを含むことに加えて、従来の分配ストレージシステムにおける複数の記憶ノードもまた、データを記憶するキャッシュリソース(1または複数のソリッドステートメモリデバイス等)を含み得る。
本明細書における複数の実施形態に従って、分散型記憶システムの第1のノードで受信されたデータのストレージおよび第2のノードでの対応する複製データのストレージを示す例示的な図である。 本明細書における複数の実施形態に従って、分散型記憶システムの第2のノードで受信されたデータのストレージおよび第1のノードで対応する複製データのストレージを示す例示的な図である。 本明細書における複数の実施形態に従って、分散型記憶システムの一次データの追跡を保持するためのマップ情報の使用および複数の異なるノードで記憶されたバックアップデータを示す例示的な図である。 本明細書における複数の実施形態に従って、マップ情報を示す例示的な図である。 本明細書における複数の実施形態に従って、分散型記憶システムにおけるノード障害からの回復およびデータの複製を示す例示的な図である。 本明細書における複数の実施形態に従って、分散型記憶システムにおけるノード障害からの回復およびデータの複製を示す例示的な図である。 本明細書における複数の実施形態に従って、分散型記憶システムにおける異なるコンテンツのストレージを示すアップデートされたマップ情報を示す例示的な図である。 本明細書における複数の実施形態に従って、1または複数の方法を実行するための処理アーキテクチャを示す例示的な図である。 本明細書における複数の実施形態に係る方法を示す例示的なフローチャートである。
回転ディスクドライブの代わりとしてのソリッドステートメモリデバイス等のキャッシュの普及に関する1つの理由は、性能である。ソリッドステートメモリ(例えば、1または複数の静止している物理回路デバイス)におけるデータのアクセスは、通常、ディスク(例えば、物理的に回転している記憶媒体)において記憶されたデータへのアクセスよりもはるかに迅速である。データを記憶すべく、ソリッドステートメモリを回転ディスクドライブの代わりに用いることの不都合な点は、容量コストである。つまり、ソリッドステートドライブは、より迅速なアクセスを提供するが、対応するメモリデバイスにデータを記憶するためのビット当たりのコストは、ディスクドライブにおいてデータを記憶するためのビット当たりのコストよりも大幅に高くなり得る。
上記で検討されたように、従来の分配ストレージシステムにおける各ノードは、データを記憶すべく、不揮発性キャッシュリソースおよび対応するディスクドライブリソースの両方を含み得る。データを記憶する場合、データを受信する一次ノードは、最初に、一次ノードの対応するキャッシュリソースにおいて受信されたデータのコピーを記憶してよい。キャッシュにおいてデータを記憶する1つの理由は、データが頻繁に取得される可能性があることである。キャッシュにおいてデータを記憶する他の理由は、データが近い将来に取得される可能性があることである。
一次ノードは、データがいつキャッシュから除去されるかを判断するように構成され得る。データをキャッシュから除去する1つの理由は、データはほとんど取得されず、より頻繁に取得されるであろうデータによって置き換えられ得ることである。キャッシュからデータを除去する他の理由は、データが近い将来、取得されると予想されず、近い将来に取得される可能性がより高いデータによって置き換えられ得ることである。一次ノードが、キャッシュリソースにおける受信されたデータのコピーが、キャッシュから除去されるべきであることを判断した場合、一次ノードは、キャッシュからディスクドライブリソースへのデータの転送を開始してよい。転送後、一次ノードは、次に、他のデータを記憶するためにキャッシュリソースにおける複数の記憶セルを使えるようにするべく、キャッシュリソースにおける受信されたデータのコピーを消去する。
上記で検討されたように、場合によっては、分散型記憶システムにおいて第1の記憶ノードで記憶されたデータの複製は、また、分散型記憶システムの第2の記憶ノードにおいても記憶されることが望ましい。これは、冗長性を提供する。複製データの記憶は、多くの場合、複数の記憶ノードのうち1つが機能不全になる複数の状況において有用である。例えば、第1の記憶ノードは、障害に遭遇し得、対応するデータへのアクセスを阻止し得る。データの複製は、分散型記憶システムにおいて第2の記憶ノードで記憶されることから、クライアントデバイスは、第2の記憶ノードからデータの複製を取得し得る。
本開示は、従来の分配ストレージシステムは、キャッシュおよび非キャッシュリソースにおいて効率的にデータを記憶しないという見解を含む。例えば、分散型記憶システムにおける従来のストレージロジックは、キャッシュにおける受信されたデータを、そのようなデータがアクセスされる可能性が低いにもかかわらず、記憶してよい。
本明細書において検討されるように、場合によっては、分散型記憶システムにおいて第1の記憶ノードで記憶されたデータの複製は、また、分散型記憶システムの第2の記憶ノードにおいても記憶されることが望ましい。これは、冗長性を提供する。複製データのストレージは、多くの場合、複数の記憶ノードのうち1つが機能不全になる複数の状況において有用である。例えば、第1の記憶ノードは、障害に遭遇し得、対応するデータへのアクセスを阻止し得る。データの複製は、分散型記憶システムにおいて第2の記憶ノードで記憶されることから、クライアントデバイスは、第2の記憶ノードからデータの複製を取得し得る。
本開示は、従来の分配ストレージシステムは、キャッシュおよび非キャッシュリソースにおいて効率的にデータを記憶しないという見解を含む。例えば、分散型記憶システムにおける従来のストレージロジックは、キャッシュにおける受信されたデータを、そのようなデータがアクセスされる可能性が低いにもかかわらず、記憶してよい。
本明細書における複数の実施形態は、分散型ストレージ環境において、キャッシュおよび非キャッシュリソースの改善された使用を提供することを含む。
例えば、本明細書における複数の実施形態は、対応するデータストレージを集合的に管理する複数のノードを含む分散型記憶システムを含む。分散型記憶システムの1または複数のノードの各々は、データを記憶するべく、キャッシュリソース(不揮発性メモリストレージリソース等)および不揮発性非キャッシュリソース(ディスクドライブ、ソリッドステートドライブ等)の両方を含むように構成され得る。
本明細書において検討されるように、例示的な一実施形態において、キャッシュリソースにおいて記憶されたデータにアクセスするアクセス時間は、非キャッシュリソースにおいて記憶されたデータにアクセスするアクセス時間よりも実質的に高速である。
複数の従来の技術とは対照的に、記憶するためのデータを受信すると、分散型記憶システムにおけるそれぞれのノードは、受信されたデータに基づいてメタデータを生じさせる。メタデータは、キャッシュストレージリソースにおける、受信されたデータの記憶を回避するか否か、および、受信されたデータをレポジトリの非キャッシュストレージリソースに記憶するか否かを示し得る。本明細書における複数の実施形態は、有用である。それは、メタデータが、キャッシュにおいてデータのストレージが不必要と見なされる場合、キャッシュにおける対応する受信されたデータのストレージを阻止することを示し得るからである。
より具体的な実施形態において、それぞれの記憶ノードにおけるデータ記憶制御ロジックは、受信されたデータがどのように記憶されるかを制御するのに、(対応する受信されたデータのために生成される)メタデータを使用する。例えば、述べられたように、メタデータの状態は、それぞれの記憶ノードに関連する対応するキャッシュリソースにおいて受信されたデータの記憶を阻止することを示し得る。そのような場合、受信されたメタデータに従って、データ記憶制御ロジックは、対応する記憶ノードのキャッシュリソースにおいてデータを記憶することとは対照的に、対応する非キャッシュリソースにおいて受信されたデータの記憶を開始する。
複数の更なる実施形態に従って、メタデータは、それぞれの記憶ノードで受信されたデータのコピーが、分散型記憶システムにおいて他の位置で既に記憶された複製データであるかどうかを示し得る。記憶用のデータを受信するそれぞれのノードは、受信されたデータが、分散型記憶システムにおいて他のノードから入手可能なデータの複製であるかどうかを判断するように構成され得る。データが、複製されたデータ(データが最初に分散型記憶システムにおいて記憶された場合の最初の複製から等)、または再構築から(損傷ノードから喪失されたデータが、他のノードでの記憶用に複製された場合等)である場合、それぞれのノードは、受信されたデータが非キャッシュリソースにおいて記憶されるべきであることを示すべく、対応するメタデータを生じさせる。
従って、本明細書におけるいくつかの実施形態は、非キャッシュリソースに記憶された複製データが、仮にアクセスされるとしても、頻繁にはアクセスされない可能性があることから、複製データがキャッシュ内に記憶されることを阻止することを含み得る。それは、データの他のコピーが、分散型記憶システムにおける異なるノードから既に入手可能であるからである。述べられたように、複数の対応するキャッシュリソースにおけるより多くの記憶セルが、アクセスされる可能性がより高い他のデータを記憶するために次に使用され得る。
ここで、複数の図をより具体的に参照し、図1は、本明細書における複数の実施形態に従って、分散型記憶システムの実装を示す例示的な図である。
示されるように、ネットワーク環境100は、コンピュータシステム110−1、コンピュータシステム110−2等を含む。コンピュータシステム110の各々は、ネットワーク190上において分散型記憶システム115へのアクセスを有する。分散型記憶システム115における複数のノードは、コンピュータシステム110に代わってデータを記憶する。ネットワーク190は、通信をサポートする任意の好適な1または複数のタイプのネットワークを含み得る。例えば、ネットワーク190は、インターネット、1または複数のローカルエリアネットワーク、1または複数の広域エリアネットワーク、携帯電話ネットワーク、WiFi(商標)ネットワーク等を含み得る。ネットワーク190上での複数の通信を介して、複数のコンピュータシステム110は、分散型記憶システム115の複数の記憶ノードからデータを取得し、分散型記憶システム115内にデータを記憶する能力を有する。ネットワーク190上での複数の通信は、任意の適切なタイプのネットワーク通信プロトコルに基づき得る。例えば、一実施形態において、複数の通信は、HTTP(ハイパーテキスト伝送プロトコル)、FTP(ファイル伝送プロトコル)、TCP(送信制御プロトコル)、UDP(ユーザデータグラムプロトコル)等の1または複数のインターネットプロトコルに基づく。
分散型記憶システム115は、データのストレージを管理すべく、任意の好適な数のノードを含む。この例示的な実施形態において、示されるように、分散型記憶システム115は、記憶ノード121、記憶ノード122、記憶ノード123等を含む。一実施形態において、分散型記憶システム115における記憶ノードの各々は、ネットワーク190等の好適なリンク上において、互いに通信することが可能である。
非限定的な例として、分散型記憶システム115におけるノードの各々は、データの対応するリポジトリへのアクセスを提供するように構成され得る。この例示的な実施形態において、示されるように、ノード121は、データ記憶制御ロジック131との複数の通信を介してレポジトリ191に対する読出し/書込みアクセスを有し、ノード122は、データ記憶制御ロジック132との複数の通信を介してレポジトリ192に対する読出し/書込みアクセスを有し、ノード123は、データ記憶制御ロジック133との複数の通信を介してレポジトリ193において記憶されたデータに対する読出し/書込みアクセスを有する、等である。
一実施形態において、分散型記憶システム115におけるノードの各々は、対応するコンピュータプロセッサハードウェアまたは本明細書において検討されるような複数の動作を実行するソフトウェアを表す。各ノードに関連している対応するデータ記憶制御ロジック(ハードウェアまたはソフトウェア)は、ノードによって同じ位置に配置され、実行され得る。あるいは、対応するデータ記憶制御ロジックは、ノードに関して遠隔の位置に配置されたコンピュータ処理ハードウェアにおいて実行され得る、または存在し得る。従って、ノード121および対応するデータ記憶制御ロジック131は、同じ位置に配置され得るか、または異なる位置に配置され得、対応するデータ記憶制御ロジック132におけるノード122は、同じ位置に配置され得るか、または異なる位置に配置され得る等である。
更に示されるように、各ノードに関連しているストレージリソースは、キャッシュストレージリソースおよび非キャッシュストレージリソースを含み得る。例えば、レポジトリ191は、キャッシュストレージリソース181−1および非キャッシュストレージリソース181−2を含み、レポジトリ192は、キャッシュストレージリソース182−1および非キャッシュストレージリソース182−2を含み、レポジトリ193は、キャッシュストレージリソース183−1および非キャッシュストレージリソース183−2を含む等である。本明細書において検討されるように、一実施形態において、キャッシュストレージリソースおよび非キャッシュストレージリソースの各々は、不揮発性ストレージリソースである。
複数の更なる実施形態に従って、それぞれの不揮発性キャッシュリソースのデータアクセス時間は、それぞれの不揮発性非キャッシュリソースのデータアクセス時間よりも実質的に短くてよい。例えば、キャッシュストレージリソース181−1からデータを読み出すまたはそこへデータを書込むアクセス時間は、非キャッシュストレージリソース181−2からデータを読み出すまたはそこへデータを書込むアクセス時間よりも実質的に短くてよく、キャッシュストレージリソース182−1からデータを読み出すまたはそこへデータを書込むアクセス時間は、非キャッシュストレージリソース182−2からデータを読み出すまたはそこへデータを書込むアクセス時間よりも実質的に短くてよく、キャッシュストレージリソース183−1からデータを読み出すまたはそこへデータを書込むアクセス時間は、非キャッシュストレージリソース183−2からデータを読み出すまたはそこへデータを書込むアクセス時間よりも実質的に短くてよい、等である。
更に、非限定的な例として、分散型記憶システム115におけるキャッシュストレージリソースの各々は、データを記憶すべく1または複数の不揮発性メモリデバイスを含むソリッドステートドライブを表し得る。より具体的な例として、キャッシュストレージリソースの各々(キャッシュストレージリソース181−1、キャッシュストレージリソース182−1、キャッシュストレージリソース183−1、...等)は、相変化メモリ(PCM)、3次元クロスポイントメモリ、抵抗メモリ、ナノワイヤメモリ、強誘電トランジスタランダムアクセスメモリ(FeTRAM)、NANDフラッシュまたはNORフラッシュ等のフラッシュメモリ、磁気抵抗ランダムアクセスメモリ(MRAM)、メモリスタ技術を組み込むメモリ、スピン移動トルク(STT)‐MRAM等の1もしくは複数の不揮発性タイプメモリデバイス、もしくはデータの記憶を可能にする任意の適切なタイプの不揮発性メモリであり得る、またはそれらを含み得る。
分散型記憶システム115において複数の異なるノードで非キャッシュストレージリソースの各々(非キャッシュストレージリソース181−2、非キャッシュストレージリソース182−2、非キャッシュストレージリソース183−2、...等)は、対応するデータを記憶すべく、複数の記憶セルの1または複数の回転するディスクを含むディスクドライブストレージリソースであり得る。
この例示的な実施形態において、コンピュータシステム110−1は、示されるように分散型記憶システム115において、データA(画像データ、アプリケーションデータ、文書、...等)の記憶を開始すべく、ノード121と通信すると仮定されたい。この目標を達成するべく、コンピュータシステム110−1は、データAをネットワーク190上でノード121へと記憶用に送信する。示されるように、記憶ノード121は、データAを受信する。
レポジトリ191において記憶するためのデータAを受信することに応答し、ノード121は、データAに関連しているメタデータM1を生成する。メタデータM1は、データAの記憶に関して誘導を提供すべく、任意の好適なビット数の情報であり得るか、またはそれを含み得る。
この例示的な実施形態において、ノード121は、データAが複製データ(すなわち、分散型記憶システム115において既に記憶されているデータ)ではないことを知っていると仮定されたい。なぜならば、データは、分散型記憶システム115における記憶用にコンピュータシステム110−1から新たに受信されたデータであるからである。必要な場合、ノード121は、データのコピーがそれぞれのノードで既に記憶されているかを判断すべく、複数の他のノードと通信し得る。ノード121は、データAが分散型記憶システム115における他の箇所において記憶された複製データではないことを反映させるべく、メタデータM1を生成する。
示されるように、レポジトリ191内に対応するデータAを記憶することを促進するため、ノード121は、ネットワーク190等の好適な通信リンク上で通信し、データAのコピーおよびメタデータM1をデータ記憶制御ロジック131へ転送する。このように、ノード121は、受信されたデータAの通知および対応する生成されたメタデータM1をデータ記憶制御ロジック131へ提供する。
一実施形態において、メタデータM1は、レポジトリ191において受信されたデータAを記憶するための誘導を提供する制御情報、ラベル情報等である。非限定的な例として、メタデータM1は、論理0に設定されて、データAがキャッシュストレージリソース181−1におけるストレージに適格であることを示す単一のビットであり得る。
更にこの例示的な実施形態において、データ記憶制御ロジック131は、データAのコピーおよび対応するメタデータM1を受信する。この例において、メタデータM1は、キャッシュストレージリソース181−1におけるデータAの記憶を阻止することを示さないことから、データ記憶制御ロジック131がキャッシュストレージリソース181−1内にデータAの記憶を開始すると仮定されたい。
レポジトリ191においてデータAの記憶を開始することに加えて、ノード121は、ノード122に対し、複製A'を生じさせ、転送する。この例において、複製A'は、キャッシュストレージリソース181−1において記憶されたデータAのバックアップコピーを表す。複製A'を他のノード(ノード122等)で記憶することは、ノード121に関連する障害があり、対応するデータAが対応するリポジトリ191から取得できない場合において、有用である。
ノード122は、複製A'を受信し、レポジトリ192において、この受信されたデータの対応する記憶を開始する。受信されたデータ(複製A')は、(それがノード121から複製データとして受信されたことから、またはノード121がそうであることを示すメッセージを送信することから)データのバックアップコピーであることがノード122によって既知であり、ノード122は、キャッシュストレージリソース182−1内での複製A'の記憶を阻止するためのメタデータM2を生じさせる。より具体的には、分散型記憶システム115において、複製データA'のコピー(A)がノード(ノード121等)から入手可能であることの検出に応答し、ノード122は、データ記憶制御ロジック132に、キャッシュストレージリソース182−1内での受信されたデータA'の記憶を回避し、代わりに受信された複製データA'を非キャッシュストレージリソースネイへ記憶することを指し示すメタデータM2を生成する。
更に非限定的な例として、メタデータM2は、論理1に設定されて、記憶ノード122で受信された複製データA'がキャッシュストレージリソース181−1において記憶されるべきでないことを示す単一のビットであり得る。従って、上記で述べたように、ノード122で生成されたメタデータは、どのように対応するデータを記憶するかに関する誘導を提供するステータス情報、ラベル、タグ、制御情報等としての機能を果たし得る。
記憶を完了すべく、ノード122は、A'および対応するメタデータM2をデータ記憶制御ロジック132へ転送する。データ記憶制御ロジック132は、複製A'に関連するメタデータM2を分析する。キャッシュストレージリソース内での複製A'の記憶を阻止することをメタデータM2が指し示すので、データ記憶制御ロジック132は、非キャッシュストレージリソース182−2内で複製A'の記憶を開始する。
従って、データの記憶を制御する、対応するメタデータの生成を介して、キャッシュストレージリソースの182−1の複数の記憶セルは、複製データA'を記憶するために不必要に消費されない。複製データA'は、データA(一次コピー等)がノード121との複数の通信およびキャッシュストレージリソース181−1からのデータの取得を介してコンピュータシステム110−1によって入手可能であることから、仮にあったとしても、多くの場合は、アクセスされる可能性があまり高くない。
図2は、本明細書における複数の実施形態に従って、分散型記憶システムにおいて、第2のノードで受信されたデータの記憶および第1のノードで対応する複製データの記憶を示す例示的な図である。
この例示的な実施形態において、コンピュータシステム110−2は、示されるように、分散型記憶システム115においてデータB(画像データ、アプリケーションデータ、文書データ、...等)の記憶を開始すべく、ノード122と通信すると仮定されたい。この目標を達成すべく、コンピュータシステム110−2は、ネットワーク190上においてデータBを、記憶用にノード122へ送信する。
記憶ノード122は、データBを受信する。記憶用のデータBを受信することに応答し、ノード121は、データBに関連するメタデータM3を生成する。メタデータM3は、任意の好適なビット数の情報であり得るか、またはそれを含み得る。生成されたメタデータM3は、データBの記憶に関する誘導を提供する。
この例示的な実施形態において、ノード122は、データBが、分散型記憶システム115におけるデータを記憶するよう要求する新たな要求を受信することから、データBは複製データではない(すなわち、分散型記憶システム115において既に記憶されているデータではない)ことを知っていると仮定されたい。メタデータを生成する場合、ノード122は、メタデータM3を生成し、データBが、分散型記憶システム115の他の箇所において記憶された複製データではないことを反映させる。データBは、複製データではないことから、データBは、キャッシュストレージリソース182−1内での記憶に適格である。
示されるように、ノード122で対応するデータBを記憶することを促進するため、ノード122は、データBのコピーおよび対応する生成されたメタデータM3を、データ記憶制御ロジック132へ転送する。このように、ノード122は、受信されたデータBおよびメタデータM3の通知をデータ記憶制御ロジック132へ提供する。
一実施形態において、メタデータM3は、レポジトリ192において、受信されたデータBを記憶するための誘導を提供する制御情報である。非限定的な例として、メタデータM3は、論理ゼロに設定されて、データBがキャッシュストレージリソース182−1内での記憶に適格であることを示す単一のビットであり得る。
更にこの例示的な実施形態において、データ記憶制御ロジック132は、データBのコピーおよび対応するメタデータM3を受信する。メタデータM3は、キャッシュストレージリソース182−1内でのデータBの記憶を阻止することを指し示さないことから、データ記憶制御ロジック132は、キャッシュストレージリソース182−1内でのデータBの記憶を開始すると仮定されたい。
レポジトリ192におけるデータBの記憶を開始することに加えて、ノード122は、複製B'(データBのコピー)をノード121に対して生じさせ、転送する。この例において、複製B'は、キャッシュストレージリソース182−1内に記憶されたデータBのバックアップコピーを表す。他のノード(ノード121等)での複製B'(すなわち、データBのコピー)の記憶は、ノード122に関連する障害があり、対応するデータBが、ノード122でレポジトリ192から取得できない場合に有用である。
ノード121は、複製B'を受信し、レポジトリ192内での、この受信されたデータの対応する記憶を開始する。受信されたデータ(複製B')は、(それがノード122から複製データとして受信されたことから)データのバックアップコピーであることがノード121によって既知であり、ノード121は、レポジトリ191においてキャッシュストレージリソース181−1内への複製B'の記憶を阻止すべく、メタデータM4を生じさせる。
一実施形態において、複製データB'のコピーが、分散型記憶システム115において、ノード(ノード122等)から入手可能であることの検出に応答し、ノード121は、メタデータM4を生成し、データ記憶制御ロジック131に対して、キャッシュストレージリソース181−1において受信されたデータB'の記憶を回避し、代わりにレポジトリ191の非キャッシュストレージリソース181−2において受信された複製データを記憶することを指し示す。
前に検討されたように、生成されたメタデータM4は、論理1に設定されて、複製データB'がキャッシュストレージリソース181−1内に記憶されるべきでないことを示す単一のビットであり得る。従って、ノード121によって生成されるメタデータは、どのように対応するデータB'を記憶するかに関する誘導を提供するステータス情報、ラベル、タグ、制御情報等としての機能を果たしてよい。
更にこの例示的な実施形態において、記憶を完了するべく、ノード121は、データB'および対応するメタデータM4をデータ記憶制御ロジック131へ転送する。データ記憶制御ロジック131は、複製データB'に関連するメタデータM4を分析する。この例においてメタデータM4は、キャッシュストレージリソースにおいて複製B'の記憶を(それが複製データとして検出されたことから)阻止することを指し示し、データ記憶制御ロジック131は、非キャッシュストレージリソース181−2内への複製B'の記憶を開始する。
従って、データの記憶を制御する、対応するメタデータM4の生成を介して、キャッシュストレージリソースの181−1の複数の記憶セルは、複製データB'を記憶するために不必要には無駄に消費されない。複製データB'は、データB(一次コピー等)が、ノード122との複数の通信およびキャッシュストレージリソース182−1からのデータBの取得を介し、コンピュータシステム110−2(または場合によっては他のコンピュータ)によって入手可能であることから、仮にアクセスされるとしても、非常に頻繁にはアクセスされる可能性はあまり高くない。
図3は、本明細書における複数の実施形態に従って、分散型記憶システムにおいて複数の異なるノードで記憶された一次コンテンツおよびバックアップコンテンツの追跡を保持するべく、マップ情報の使用を示す例示的な図である。示されるように、コンピュータシステム110−1(または他の適切なリソース)は、対応するデータが入手可能である分散型記憶システム115において、複数の対応するノードを示すマップ情報112−1を生じさせるように構成され得る。
例えば、前に検討されたように、コンピュータシステム110−1は、分散型記憶システム115においてデータAの記憶を開始した。データを記憶するよう依頼する要求を受信することに応答し、分散型記憶システム115における適切なノード121は、対応するデータAを記憶した。そのような処理の間、ノード121等の適切なリソース(または、セントラルマネージャ等、他の適切なリソース)は、分散型記憶システム115において、データの一次コピー(すなわち、データA)が入手可能である位置を示すノード情報(ネットワークアドレス情報等)をコンピュータシステム110−1に通信するように構成され得る。この例においては、データAがノード121で記憶されているという通知を受信することに基づいて、マップ情報112−1は、データAがノード121から取得可能であることを示す。
一構成に従って、コンピュータシステム110−1は、また、対応するデータのバックアップコピーが分散型記憶システム115において記憶されている場所を示すノード情報も受信し得る。例えば、ノード122は、レポジトリ192において複製A'(すなわち、データAのコピー)を記憶することを思い出されたい。そのような場合、コンピュータシステム110−1は、データA'が、分散型記憶システム115においてノード122(または、セントラルマネージャ等、他の適切なリソース)での複数の通信を介して入手可能であることを通知され得る。
一実施形態において、コンピュータシステム110−1は、データA'が取得可能であるノード122のための対応するネットワークアドレスまたはポインタを含むようにマップ情報112−1を生じさせる。
コンピュータシステム110−2(または他の適切なリソース)は、対応するデータが入手可能である分散型記憶システム115において対応する複数のノードを示すマップ情報112−2を生じさせるように構成され得る。例えば、前に検討されたように、コンピュータシステム110−2は、分散型記憶システム115においてデータBの記憶を開始した。データを記憶するよう依頼する要求を受信することに応答し、分散型記憶システム115において適切なノード122は、対応するデータBを記憶した。そのような処理の間、分散型記憶システム115におけるノード122等の適切なリソース(または、セントラルマネージャ等のリソース)は、データの一次コピー(すなわち、データB)が入手可能である位置を示すノード情報をコンピュータシステム110−2に通信する。この例において、データBがノード122で記憶されたという通知を受信することに基づいて、コンピュータシステム110−2は、データBがノード122から取得可能であることを示すマップ情報112−2を生じさせる。
一構成に従って、コンピュータシステム110−2は、また、対応するデータのバックアップコピーB'が分散型記憶システム115において記憶されている場所を示すノード情報も受信する。例えば、ノード121は、レポジトリ192において複製B'(すなわち、データBのコピー)を記憶することを思い出されたい。そのような場合、コンピュータシステム110−2は、データB'が、分散型記憶システム115においてノード121との複数の通信を介して入手可能であることを通知され得る。一実施形態において、コンピュータシステム110−2は、データB'が取得可能であるノード121を指定する、ネットワークアドレス、ポインタ等のリソースを含むべくマップ情報112−2を生じさせる。
また更に複数の非限定的な例の実施形態に従って、分散型記憶システム115におけるセントラルマネージャまたは1または複数のノード等のリソースは、互いの間で通信し、異なるコンテンツおよび対応するコンテンツが記憶されている場所を示すマップ情報117を生成するように構成され得る。対応するマップ情報117の例は、図4において示される。
図4に示されるように、この例示的な実施形態において、マップ情報117は、データAがノード121との複数の通信を介して入手可能であることを示し、マップ情報117は、複製データA'がノード122との複数の通信を介して入手可能であることを示し、マップ情報117は、データBがノード122との複数の通信を介して入手可能であることを示し、マップ情報117は、複製データB'がノード122との複数の通信を介して入手可能であることを示す等である。
マップ情報112−1、マップ情報112−2等のマップ情報は、一次コンテンツおよびバックアップコンテンツの位置を判断するのに有用である。例えば、それぞれのコンピュータシステムが、タイムアウト期間内に第1のノードからコンテンツを取得することが不可能である場合、対応するコンピュータシステムは、代わりにバックアップコピーを取得するべく、第2のノードと通信するように構成され得る。
より具体的に、コンピュータシステム110−1は、ノード121からデータAを取得することを試みると仮定されたい。2秒等のタイムアウト(他の好適な時間のアクセスマネージャ)内にノード121からの応答が無い場合、コンピュータシステム110−1は、バックアップコピーA'を取得するべく、ノード122と(マップ情報112−1によって指定されるように)通信を開始する。このように、コンピュータシステムは、対応するデータの位置を識別すべく、マップ情報112を使用し得る。
以下で検討されるように、記憶されたコンテンツにおけるマップ情報117は、喪失データの修復を必要とする、分散型記憶システム115におけるノード障害が発生した場合に有用であり得ることに留意されたい。
図5は、本明細書における複数の実施形態に従って、分散型記憶システムにおけるノード障害からの回復およびデータの複製を示す例示的な図である。
この例示的な実施形態において、ノード122またはデータ記憶制御ロジック132、レポジトリ192における複数の記憶セル等の複数の関連するコンポーネントが機能不全になると仮定されたい。
ノード122に関連する障害は、ノード122が、ネットワーク190上で複数のコンピュータシステム110によってアクセスされる能力が不能になること、データ記憶制御ロジック132がレポジトリ192において記憶された対応するデータを取得する能力が不能になること、レポジトリ192における複数の記憶セルが、データを記憶することに失敗すること等の結果をもたらし得る。
ノード122に関連する障害は、幾つものやり方で検出されてもよい。例えば、分散型記憶システム115において、1または複数のノードは、複数の他のノードと通信(ハートビート信号を介して等)するように構成され得、これらのステータスを判断し得る。ノード122等のノードが通信に応答しない場合、ノード障害が生じており、レポジトリ192において記憶された対応するデータは、取得可能でないと仮定され得る。
障害を検出すると、分散型記憶システム115における複数のノードは、レポジトリ192内の利用不可のデータを複数の他のノードに複製するべく、互いに通信する。
より具体的に、この例示的な実施形態において、ノード122に関連している障害は、キャッシュストレージリソース182−2において記憶されたデータA'へのアクセスを阻止する。前に検討されたように、マップ情報117に基づいて、ノード121に関連しているキャッシュストレージリソース181−1は、データAのコピーを記憶することが既知である。
分散型記憶システム115において、データAのバックアップコピーが記憶されることを保証するべく、ノード122に関連している障害を検出することに応答して、ノード121は、データ記憶制御ロジック131との通信を介してキャッシュストレージリソース181−1からのデータAのコピーの取得を開始する。
データAのコピーを取得した後、データ記憶制御ロジック131は、複製コピーA"を生じさせる。ノード121は、複製A"(すなわち、データA)のコピー)を、ノード123に示されるようにノード123へ転送する。従って、ノード123によって受信されたデータA"は、分散型記憶システム115において故障したノード122で記憶された利用不可のデータA'の複製を表す。
ノード121(または分散型記憶システム115に関連している他の適切なリソース)は、データA"が、記憶されたデータのコピーであることをノード123へ通知する。ノード121から受信されたデータA"が再構築データ(すなわち、故障したノード122に関連しているレポジトリ192において記憶されたデータA'のコピー)であることを検出することに応答して、ノード123は、メタデータM5を生成し、データ記憶制御ロジック133に対し、キャッシュストレージリソース183−1内への受信されたデータA"の記憶を回避することを指し示し、受信されたデータA"を、レポジトリ193の非キャッシュストレージリソース183−2において記憶する。
従って、本明細書における複数の実施形態は、非故障ノード121のキャッシュストレージリソース181−1内に記憶されたデータAに基づいて、故障したノードで記憶されたデータA'のコピー(すなわち、データA")を生じさせること、およびレポジトリ193の非キャッシュストレージリソース183−2において、データA"の記憶を開始することを含み得る。
図6は、本明細書における複数の実施形態に従って、分散型記憶システムにおけるノード障害からの回復およびデータの複製を示す例示的な図である。この例示的な実施形態において、ノード122に関連している障害もまた、キャッシュストレージリソース182−1において記憶されたデータBへのアクセスを阻止する。前に検討されたように、マップ情報117に基づいて、ノード121に関連している非キャッシュストレージリソース181−2がデータB'を記憶することは、既知である。データBのバックアップコピーが分散型記憶システム115において記憶されていることを保証すべく、本明細書における複数の実施形態は、ノード122に関連している障害を検出することに応答して、ノード121が、データ記憶制御ロジック131への通信を介してキャッシュストレージリソース181−1からの複製データB'のコピーの取得を開始することを含む。
この例において、分散型記憶システム115における複数のノードの間でノード124は、データBに関連しているバックアップコピーを生じさせ、記憶するように(他のノードまたはセントラルマネージャ等のリソースによって)選択されていたと仮定されたい。そのような場合、ノード121は、示されるように、複製B"(すなわち、元データBのコピー)をノード124へ転送する。ノード124によって受信されたデータB"は、故障したノード122で記憶されたデータBの複製を表す。
受信されたデータB"は、故障したノード122に関連しているレポジトリ192において記憶されたデータBのコピーであることを検出することに応答して、ノード124は、メタデータM6を生成し、データ記憶制御ロジック134に対し、キャッシュストレージリソース184−1において受信されたデータB"の記憶を回避することを指し示し、受信されたデータB"を、レポジトリ194の非キャッシュストレージリソース184−2等の非キャッシュストレージリソース内に記憶する。
従って、本明細書における複数の実施形態は、非障害ノード121の非キャッシュストレージリソース181−2において記憶されたデータB'に基づいて故障したノードで記憶されたデータBのコピー(すなわちデータB")を生じさせることを含み得る。
上記で検討されたように、修復の後に、本明細書における複数の実施形態は、分散型記憶システム115において記憶されたコンテンツの現在の状態を反映させるべく、それぞれのマップ情報をアップデートすることを含み得る。例えば、分散型記憶システム115と関連しているそれぞれのリソース(ノードまたはセントラルマネージャ等)は、データAがノード121から入手可能であり、バックアップデータA"が、ここで、ノード123から入手可能であること等を示すべく、コンピュータシステム110−1と通信し、マップ情報112−1をアップデートするように構成され得る。
類似の方法で、分散型記憶システム115に関連しているそれぞれのリソース(ノードまたはセントラルマネージャ等)は、データB'がノード121から入手可能であり、バックアップデータB"が、ここで、ノード124から入手可能であること等を示すべく、コンピュータシステム110−2と通信し、マップ情報112−2をアップデートするように構成され得る。
図7は、本明細書における複数の実施形態に従って、分散型記憶システムにおける異なるコンテンツのストレージを示すアップデートされたマップ情報を示す例示的な図である。より更なる複数の限定しない例示的な実施形態に従って、分散型記憶システム115においてセントラルマネージャまたは1または複数のノードは、障害に起因する再構築の後に記憶されたデータの状態を示すべく、マップ情報117をアップデートするように構成され得る。
図7に示されるように、アップデートされたマップ情報117は、データAがノード121を介してアクセス可能であることを示し、アップデートされたマップ情報117は、(修復または再構築からの)複製データA"が、ノード122を介してアクセス可能であることを示し、アップデートされたマップ情報117は、データB'が、ノード121を介してアクセス可能であることを示し、アップデートされたマップ情報117は、複製データB"(修復または再構築から)が、ノード124を介してアクセス可能であることを示す、等である。
図8は、本明細書における複数の実施形態に従って本明細書で検討されるように、複数の動作の何れかを実装するためのコンピュータシステムの例示的なブロック図である。
分散型記憶システム115におけるノード121等のコンピュータシステム850は、本明細書において検討されるように、複数の動作の何れかを実行するように構成され得る。一実施形態において、分散型記憶システム115におけるそれぞれのノードは、データ管理アプリケーション140−1を実行する。分散型記憶システム115におけるノードの各々、データ記憶制御ロジック等は、本明細書において検討されるように、機能を実行するための類似のハードウェアを含み得る。
更に示されるように、本実例のコンピュータシステム850は、コンピュータ可読記憶媒体812をプロセッサハードウェア813に結合させる相互接続811を含み得る。コンピュータ可読記憶媒体812は、デジタル情報が、プロセッサハードウェア813(すなわち、1または複数のプロセッサデバイス)、I/Oインタフェース814、通信用インタフェース817等の複数のリソースによって記憶され取得される非一時的なタイプの媒体(すなわち、任意のタイプのハードウェア記憶媒体)であってよい。
通信インタフェース817は、ネットワーク190との接続を提供し、分散型記憶システム115およびコンピュータシステム110における複数の他のノードとの通信をサポートする。
コンピュータシステム850は、ネットワーク環境100におけるノード121を表すと仮定されたい。そのような場合、I/Oインタフェース814は、データ記憶制御ロジック131およびレポジトリ191等の複数のリソースへのコンピュータシステム850接続を提供する。望まれる場合、データ記憶制御ロジック131によって提供される機能は、また、コンピュータシステム850において処理として実行され得る。
コンピュータ可読記憶媒体812は、メモリ、光ストレージ、ハードドライブ、フロッピー(登録商標)ディスク等の任意のハードウェア記憶デバイスであってよい。一実施形態において、コンピュータ可読記憶媒体812(例えば、コンピュータ可読ハードウェアストレージ)は、複数の命令および/またはデータを記憶する。
一実施形態において、通信用インタフェース817は、コンピュータシステム850および対応するプロセッサハードウェア813が、複数の遠隔の源から情報を取得し、複数の他のコンピュータ(複数のノード等)と通信するべく、ネットワーク190等のリソース上で通信することを可能にする。I/Oインタフェース814は、プロセッサハードウェア813が、データ記憶制御ロジック131と通信し、データを取得してレポジトリ191内に記憶することを可能にする。
示されるように、コンピュータ可読記憶媒体812は、プロセッサ813によって実行されるデータ管理アプリケーション140−1(例えば、ソフトウェア、ファームウェア等)で符号化される。データ管理アプリケーション140−1は、本明細書において検討されるように、複数の動作の何れかを実装するための複数の命令を含むように構成され得る。
一実施形態の動作の間、プロセッサハードウェア813は、コンピュータ可読記憶媒体812において記憶されたデータ管理アプリケーション140−1の複数の命令を起動し、実行し、遂行し、解釈するべく、または他の場合は、実施するべく、相互接続811の使用を介してコンピュータ可読記憶媒体812にアクセスする。
データ管理アプリケーション140−1の実行は、プロセッサ813においてデータ管理プロセス140−2等の処理機能を生じさせる。言い換えると、プロセッサ813に関連しているデータ管理プロセス140−2は、コンピュータシステム850におけるプロセッサハードウェア813内でまたはそこにおいてデータ管理アプリケーション140−1を実行するという1または複数の態様を表す。
当業者らは、コンピュータシステム850が、データ管理アプリケーション140−1を実行すべく、複数のハードウェアリソース、複数のソフトウェアリソース等の割り当ておよび使用を制御するオペレーティングシステム等、複数の他の処理および/または複数のソフトウェアおよびハードウェアコンポーネントを含み得ることは理解するであろう。
複数の異なる実施形態に従って、コンピュータシステム850は、モバイルコンピュータ、モバイル電話、パーソナルコンピュータシステム、無線デバイス、基地局、電話機器、デスクトップコンピュータ、ラップトップ、ノートブック、ネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルド型コンピュータ、ワークステーション、ネットワークコンピュータ、アプリケーションサーバ、ストレージデバイス、カメラ等の家庭用電子デバイス、カムコーダ、セットトップボックス、モバイルデバイス、ビデオゲームコンソール、ハンドヘルド型ビデオゲームデバイス、スイッチ等の周辺機器、モデム、ルータ、または一般的に任意のタイプのコンピューティングまたは電子デバイスを含むが限定はされない、様々なタイプのデバイスの何れかであってよいことに留意されたい。
複数の異なるリソースによってサポートされる機能は、ここで、図9において複数のフローチャートを用いて検討されるであろう。以下のフローチャートにおける処理は、任意の適切な順番で実行され得ることに留意されたい。
図9は、複数の実施形態に係る例示的な方法を示すフローチャート900である。上記で検討されたように、複数の概念に関し、おそらくいくつかの重複があることに留意されたい。
処理操作910において、分散型記憶システム115におけるノードは、データを受信する。処理操作920において、ノードは、受信されたデータに基づいてメタデータを生じさせる。一実施形態において、メタデータは、受信されたデータが分散型記憶システムにおいて記憶されたデータの複製であるかどうかを示す。本明細書において検討されたように、受信されたデータは、分散型記憶システム115における対応するデータのバックアップコピーを最初に記憶する場合に生成された複製データであってよい。他の実施形態に従って、述べられるように、受信されたデータは、ノード障害に応答して生じるデータ再構築処理の間に生成される複製データであってよい。
処理操作930において、ノードは、メタデータに従って、分散型記憶システム115において受信されたデータの記憶を開始する。本明細書において検討されるような複数のリソースは何れも、本明細書において開示された方法動作の何れかまたは全てを実行および/またはサポートするべく、1または複数のコンピュータ化されたデバイス、サーバ、基地局、無線通信機器、通信管理システム、ワークステーション、ハンドヘルド型またはラップトップコンピュータ、または類似のもの等を含み得る。言い換えると、1または複数のコンピュータ化されたデバイスまたはプロセッサは、複数の異なる実施形態を実行すべく、本明細書において説明されたように動作するようにプログラミングされ得る、および/または構成され得る。
本明細書において更なる他の複数の実施形態は、本明細書において開示されるように、複数の動作を実行するための複数のソフトウェアプログラム、ファームウェア、ロジック等を含む。一つのそのような実施形態は、複数のソフトウェア命令が、後の実行のために符号化されている非一時的コンピュータ可読記憶媒体(すなわち、コンピュータ可読ハードウェア記憶媒体)を含むコンピュータプログラム製品を備える。複数の命令は、1または複数のプロセッサを有するコンピュータ化されたデバイスにおいて実行される場合、本明細書において開示されるように、プロセッサが複数の動作を実行するようにプログラムする、および/またはプロセッサに複数の動作を実行させる。そのような複数の構成は、光媒体(例えば、CD−ROM)、フロッピー(登録商標)ディスク、ハードディスク、メモリ等の非一時的コンピュータ可読記憶媒体、または、1または複数のROM、RAM、PROMにおけるファームウェア等の他の媒体において、または、特定用途向け集積回路(ASIC)等のロジックとして、構成されまたは符号化された、ソフトウェア、ファームウェア、コード、複数の命令、データ(例えば、複数のデータ構造)等として提供され得る。ソフトウェアまたはファームウェアまたは他のそのような複数の構成は、コンピュータ制御デバイス上にインストールされ得、コンピュータ制御デバイスに本明細書において説明された複数の技術を実行させ得る。
従って、本明細書における複数の実施形態は、本明細書において検討されるように、複数の動作をサポートする装置、方法、システム、コンピュータプログラム製品等を対象とする。
一実施形態は、複数の命令、ロジック等が記憶されているコンピュータ可読記憶媒体および/またはシステムを含み、1または複数の不揮発性メモリデバイスを含むメモリシステムの構成を管理する。複数の命令および/またはロジックは、それぞれのコンピュータの少なくとも1つのプロセッサデバイスによって実行される場合、少なくとも1つのプロセッサデバイスに、分散型記憶システムにおける特定のノードでデータを受信させ、受信されたデータに基づいてメタデータを生じさせ、受信されたデータの通知およびメタデータをデータ記憶制御ロジックに対して提供させ、特定のノードは、キャッシュストレージリソースおよび非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信しており、メタデータは、受信されたデータを、特定のノードでのレポジトリにおいて記憶することを制御する。本明細書において検討されるように、処理の何れも、任意の適切な順番で実行され得ることに留意されたい。
本明細書において検討されるように、装置、システム、方法、装置、コンピュータ可読記憶媒体における複数の命令等は、また、ソフトウェアプログラム、ファームウェア、またはソフトウェア、ハードウェアおよび/またはファームウェアのハイブリッド、またはプロセッサデバイス内、オペレーティングシステム内もしくはソフトウェアアプリケーション内等の単独のハードウェアとして、厳密に具現化され得ることは理解されるべきである。
更に、本明細書における複数の異なる特徴、複数の技術、複数の構成等の各々は、本開示の異なる箇所において検討され得るが、複数の概念の各々は、好適な場合、任意選択で互いに独立して、または互いに組み合わせて実行され得ることを意図していることに留意されたい。開示された複数の特徴の如何なる置き換えも可能である。
従って、本明細書において説明されたように、1または複数実施形態は、多くの異なるやり方において具現化され、表示され得る。
本明細書における複数の技術は、1または複数の不揮発性メモリデバイスにおいて検出される障害から回復することに十分に適していることに更に留意されたい。しかしながら、本明細書における複数の実施形態は、そのような複数の用途においての使用に限定はされず、本明細書で検討される複数の技術は、他の複数の用途にもまた、十分適していることに留意すべきである。
複数の具体的な実施形態が具体的に示され、説明されてきた一方、添付の特許請求の範囲によって定義されるように、本願の趣旨および範囲から逸脱することなく、様々な形態および詳細における変更が、内部でなされてもよいことは、当業者らによって理解されるであろう。そのような複数の変形は、本願の範囲によって包含されるように意図されている。そのようなものとして、本願の複数の実施形態の上述の説明は、限定的であることは意図していない。むしろ、本明細書における複数の実施形態に対する任意の限定は、以下の特許請求の範囲において示される。ここで、本実施形態に係る発明の例を項目として記載する。
[項目1]
データストレージを集合的に管理する複数のノードを含む分散型記憶システムにおいてデータを記憶するための方法であって、
不揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信している、上記分散型記憶システムにおける特定のノードで、データを受信する段階と、
上記受信されたデータに基づいてメタデータを生じさせる段階と、
上記受信されたデータの通知および上記メタデータを、上記データ記憶制御ロジックに提供する段階と、を備え、
上記メタデータは、上記レポジトリにおける上記特定のノードでの、上記受信されたデータの記憶を制御する、
方法。
[項目2]
上記不揮発性キャッシュストレージリソースのアクセス時間は、上記不揮発性非キャッシュストレージリソースのアクセス時間よりも実質的に短く、
上記メタデータを生じさせる段階は、上記不揮発性キャッシュストレージリソースにおイテ上記受信されたデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて上記受信されたデータを記憶することを、上記データ記憶制御ロジックに対して指し示す上記メタデータを生成する段階を含む、項目1に記載の方法。
[項目3]
上記不揮発性キャッシュストレージリソースは、不揮発性メモリであり、
上記不揮発性非キャッシュストレージリソースは、ディスクドライブストレージリソースであり、
上記メタデータを生成する段階は、上記受信されたデータのコピーが上記分散型記憶システムにおける上記特定のノードとは他のノードから入手可能であることを検出することに応答して、上記不揮発性キャッシュストレージリソースにおける上記受信されたデータの記憶を回避する上記メタデータを生成する段階を含む、項目1または2に記載の方法。
[項目4]
上記通知を生じさせる段階は、データが上記レポジトリの上記不揮発性キャッシュストレージリソースにおける記憶に適格であることを、上記特定のノードの上記データ記憶制御ロジックに対して指し示す上記メタデータを生成する段階を含む、項目1または2に記載の方法。
[項目5]
項目4に記載の方法であって、
上記受信されたデータは、第1のデータであり、上記特定のノードは、第1のノードであり、上記メタデータは、第1のメタデータであり、
上記方法は、
上記第1のノードで、上記分散型記憶システムにおける第2のノードで記憶されたデータの複製である第2のデータを受信する段階と、
上記第1のノードの上記データ記憶制御ロジックに対し、上記不揮発性キャッシュストレージリソースにおいて上記受信された第2のデータの記憶を回避し、上記受信された第2のデータを上記不揮発性非キャッシュストレージリソースにおいて記憶することを指し示す第2のメタデータを生成する段階と、
上記第2のデータおよび上記第2のメタデータを、上記第1のノードの上記データ記憶制御ロジックへ転送する段階と、を更に備える、方法。
[項目6]
上記受信されたデータは、上記分散型記憶システムにおける故障したノードで記憶されたデータの複製を表し、
上記故障したノードにおける障害は、上記故障したノードによって管理されるデータへのアクセスを阻止し、
当該方法は、
上記受信されたデータが上記故障したノードにおいて記憶されたデータのコピーであることを検出することに応答して上記不揮発性キャッシュストレージリソースにおいて上記受信されたデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて上記受信されたデータを記憶することを、上記データ記憶制御ロジックに対して指し示す上記メタデータを生成する段階を更に備える、項目1に記載の方法。
[項目7]
上記分散型記憶システムにおける非障害ノードにおいて記憶されたデータに基づいて、上記故障したノードで記憶された上記データの複製を生じさせる段階を更に備え、
上記特定のノードは、上記分散型記憶システムにおける第1の記憶ノードであり、上記故障したノードは、上記分散型記憶システムにおける第2の記憶ノードであり、上記非障害ノードは、上記分散型記憶システムにおける第3の記憶ノードである、項目6に記載の方法。
[項目8]
上記受信されたデータは、第1のデータであり、
上記特定のノードは、第1のノードであり、
上記メタデータは、上記不揮発性キャッシュストレージリソースにおいて上記第1のデータを記憶することを指し示す第1のメタデータであり、
当該方法は、
上記第1のノードで、上記分散型記憶システムにおける第2のノードで記憶されたデータの複製である第2のデータを受信する段階と、
上記不揮発性キャッシュストレージリソースにおいて上記受信された第2のデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて前記受信されたデータを記憶することを、上記データ記憶制御ロジックに対して指し示す第2のメタデータを上記第1のノードで生成する段階と、
上記第2のデータおよび上記第2のメタデータを、上記第1のノードにおけるデータ記憶制御ロジックへ転送する段階と、を更に備える、項目1に記載の方法。
[項目9]
上記不揮発性キャッシュストレージリソースにおいて上記受信されたデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて上記受信されたデータを記憶することを、上記データ記憶制御ロジックに対して指し示す上記メタデータを生成する段階と、
上記受信されたデータの複製である複製データを生成する段階と、
上記複製データを上記分散型記憶システムにおける第2のノードへ転送する段階と、を更に備える、項目1に記載の方法。
[項目10]
上記分散型記憶システムにおける上記第2のノードで上記複製データを受信する段階であって、上記第2のノードは、上記第2のノードに関連している上記不揮発性非キャッシュストレージリソースにおいて、上記複製データを記憶することを指し示すメタデータを生成する、段階と、
上記第2のノードにおいて、上記第2のノードに関連している不揮発性非キャッシュストレージリソースにおける上記複製データ、および上記複製データの記憶用に上記メタデータを転送する段階と、を更に備える、項目9に記載の方法。
[項目11]
データストレージを集合的に管理する複数の相互接続されたノードを備える分散型記憶システムであって、 上記複数の相互接続されたノードは、特定のノードを含み、
上記特定のノードは、
不揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信しており、
上記分散型記憶システムと通信しているリソースからデータを受信し、
上記受信されたデータに基づいてメタデータを生じさせ、
上記受信されたデータの通知および上記メタデータを上記データ記憶制御ロジックに提供する、ように動作可能であり、上記メタデータは、上記レポジトリにおける上記受信されたデータの記憶を制御する、分散型記憶システム。
[項目12]
上記特定のノードは、上記メタデータを生成し、上記不揮発性キャッシュストレージリソースにおいて上記受信されたデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて上記受信されたデータを記憶することを、上記データ記憶制御ロジックに対して指し示す、項目11に記載の分散型記憶システム。
[項目13]
上記キャッシュストレージリソースは、不揮発性メモリであり、
上記不揮発性非キャッシュストレージリソースは、ディスクドライブストレージリソースであり、
上記特定のノードは、上記受信されたデータのコピーが上記分散型記憶システムにおける上記特定のノードとは他のノードから入手可能であることを検出することに応答して、上記不揮発性キャッシュストレージリソースにおいて上記受信されたデータの記憶を回避する上記メタデータを生成する、項目11または12に記載の分散型記憶システム。
[項目14]
上記特定のノードは、上記受信されたデータが上記レポジトリの上記不揮発性キャッシュストレージリソースにおける記憶に適格であることを、上記データ記憶制御ロジックに対して指し示す上記メタデータを生成する、項目11または12に記載の分散型記憶システム。
[項目15]
上記受信されたデータは、第1のデータであり、
上記特定のノードは、第1のノードであり、
上記メタデータは、第1のメタデータであり、
上記特定のノードは、
上記第1のノードで、上記分散型記憶システムにおける第2のノードで記憶されたデータの複製である第2のデータを受信し、
上記不揮発性キャッシュストレージリソースにおいて上記受信された第2のデータの記憶を回避し、上記不揮発性非キャッシュストレージリソースにおいて、上記受信された第2のデータを記憶することを、上記データ記憶制御ロジックに対して指し示す、第2のメタデータを生成し、
上記第2のデータおよび上記第2のメタデータを、上記第1のノードの上記データ記憶制御ロジックへ転送する、ように更に動作可能である、項目14に記載の分散型記憶システム。
[項目16]
上記受信されたデータは、上記分散型記憶システムにおける故障したノードで記憶されたデータの複製を表し、
上記故障したノードにおける対応する障害は、上記故障したノードによって管理されるデータへのアクセスを阻止し、
上記特定のノードは、上記受信されたデータが上記故障したノードにおいて記憶されたデータのコピーであることを検出することに応答して、上記不揮発性キャッシュストレージリソースにおいて、上記受信されたデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて上記受信されたデータを記憶することを、上記データ記憶制御ロジックに対して指し示す上記メタデータを生成する、ように更に動作可能である、項目11に記載の分散型記憶システム。
[項目17]
上記特定のノードは、上記分散型記憶システムにおける第1のノードであり、
上記故障したノードは、上記分散型記憶システムにおける第2のノードであり、
上記分散型記憶システムは、
第3のノードで記憶されたデータに基づいて、上記故障したノードで記憶されたデータの複製を生じさせる上記第3のノード、を更に備える、項目16に記載の分散型記憶システム。
[項目18]
上記受信されたデータは、第1のデータであり、
上記特定のノードは、第1のノードであり、
上記メタデータは、上記不揮発性キャッシュストレージリソースにおいて上記第1のデータを記憶することを指し示す第1のメタデータであり、
上記特定のノードは、
上記分散型記憶システムにおける第2のノードで記憶されたデータの複製である第2のデータを受信し、
上記不揮発性キャッシュストレージリソースにおいて上記受信された第2のデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて前記受信された第2のデータを記憶することを、上記データ記憶制御ロジックに対して指し示す第2のメタデータを生成し、
上記第2のデータおよび上記第2のメタデータを上記データ記憶制御ロジックへ転送する、ように更に動作可能である、項目11に記載の分散型記憶システム。
[項目19]
上記特定のノードは、
上記不揮発性キャッシュストレージリソースにおいて上記受信されたデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて上記受信されたデータを記憶することを、上記データ記憶制御ロジックに対して指し示す上記メタデータを生成し、
上記受信されたデータの複製である複製データを生成し、上記複製データを、上記分散型記憶システムにおける第2のノードに転送する、ように更に動作可能である、項目11に記載の分散型記憶システム。
[項目20]
上記第2のノードは、
上記複製データを受信し、
上記第2のノードに関連している上記不揮発性非キャッシュストレージリソースにおいて上記複製データを記憶することを指し示すメタデータを生成し、
上記第2のノードに関連している不揮発性非キャッシュストレージリソースにおける前記複製データ、および上記複製データの記憶用に上記生成されたメタデータを転送する、ように動作可能である、項目19に記載の分散型記憶システム。
[項目21]
項目11、12、16、18および19のうちいずれか一項に記載の分散型記憶システムへのアクセスを有するコンピュータシステムであって、上記分散型記憶システムの前記特定のノードによって受信された上記データの少なくとも一部に基づいて、画像をレンダリングするためのディスプレイスクリーンを含む、コンピュータシステム。
[項目22]
複数の命令が記憶されているコンピュータ可読記憶ハードウェアであって、上記複数の命令は、コンピュータプロセッサハードウェアによって実行される場合、上記コンピュータプロセッサハードウェアに、
分散型記憶システムにおける複数のノードのうちの1つであり、不揮発性キャッシュトレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信する上記分散型記憶システムにおける特定のノードでデータを受信し、上記受信されたデータに基づいてメタデータを生じさせ、
上記受信されたデータの通知、および上記特定のノードにおいて上記レポジトリにおける上記受信されたデータの記憶を制御する上記メタデータを上記データ記憶制御ロジックに提供する動作を実行させる、コンピュータ可読記憶ハードウェア。
[項目23]
上記複数の命令は、上記コンピュータプロセッサハードウェアに、
上記不揮発性キャッシュストレージリソースにおいて上記受信されたデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて上記受信されたデータを記憶することを上記データ記憶制御ロジックに対して指し示す上記メタデータを生成する、動作を更に実行させる、項目22に記載のコンピュータ可読記憶ハードウェア。
[項目24]
上記複数の命令は、上記コンピュータプロセッサハードウェアに、
上記受信されたデータのコピーが上記分散型記憶システムにおける上記特定のノードとは他のノードから入手可能であることを検出することに応答して、上記メタデータを生成する動作を更に実行させる、項目23に記載のコンピュータ可読記憶ハードウェア。
[項目25]
上記受信されたデータは、上記分散型記憶システムにおける故障したノードで記憶されたデータの複製を表し、上記故障したノードにおける障害は、上記故障したノードによって管理されるデータへのアクセスを阻止し、
上記複数の命令は、上記コンピュータプロセッサハードウェアに、
上記受信されたデータが上記故障したノードで記憶されたデータのコピーであることを検出することに応答して、上記不揮発性キャッシュストレージリソースにおいて上記受信されたデータの記憶を回避し、上記レポジトリの上記不揮発性非キャッシュストレージリソースにおいて上記受信されたデータを記憶することを上記データ記憶制御ロジックに指し示す上記メタデータを生成する動作を更に実行させる、項目22に記載のコンピュータ可読記憶ハードウェア。

Claims (25)

  1. データストレージを集合的に管理する複数のノードを含む分散型記憶システムにおいてデータを記憶するための方法であって、
    不揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信している、前記分散型記憶システムにおける第1のノードで、第1のデータを受信する段階と、
    前記受信された第1のデータに基づいて第1のメタデータを生成する段階と、
    前記受信された第1のデータおよび前記第1のメタデータを、前記データ記憶制御ロジックに転送する段階と、
    を備え
    前記第1のメタデータは、前記受信された第1のデータの複製が前記分散型記憶システムにおける前記第1のノードとは異なる第2のノードから入手可能であることを検出することに応答して、前記不揮発性キャッシュストレージリソースにおける前記受信された第1のデータの記憶を回避することを、前記データ記憶制御ロジックに対して指し示す、
    法。
  2. 前記不揮発性キャッシュストレージリソースのアクセス時間は、前記不揮発性非キャッシュストレージリソースのアクセス時間よりも短く、
    前記第1のメタデータは、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第1のデータを記憶することを、前記データ記憶制御ロジックに対して指し示す、
    請求項1に記載の方法。
  3. 前記不揮発性キャッシュストレージリソースは、不揮発性メモリであり、
    前記不揮発性非キャッシュストレージリソースは、ディスクドライブストレージリソースである、
    求項1または2に記載の方法。
  4. 記第1のメタデータは前記受信された第1のデータが前記レポジトリの前記不揮発性キャッシュストレージリソースにおいて記憶されるべきことを、前記第1のノードの前記データ記憶制御ロジックに対して指し示す、
    請求項1から3のいずれか1項に記載の方法。
  5. 記第1のノードで、前記分散型記憶システムにおける第2のノードで記憶されたデータの複製である第2のデータを受信する段階と、
    前記第1のノードの前記データ記憶制御ロジックに対し、前記不揮発性キャッシュストレージリソースにおいて前記受信された第2のデータの記憶を回避し、前記受信された第2のデータを前記不揮発性非キャッシュストレージリソースにおいて記憶することを指し示す第2のメタデータを生成する段階と、
    前記第2のデータおよび前記第2のメタデータを、前記第1のノードの前記データ記憶制御ロジックへ転送する段階と、
    を更に備える、
    請求項4に記載の方法。
  6. データストレージを集合的に管理する複数のノードを含む分散型記憶システムにおいてデータを記憶するための方法であって、
    不揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信している、前記分散型記憶システムにおける第1のノードで、第1のデータを受信する段階と、
    前記受信された第1のデータに基づいて第1のメタデータを生成する段階と、
    前記受信された第1のデータおよび前記第1のメタデータを、前記データ記憶制御ロジックに転送する段階と、
    を備え、
    前記受信された第1のデータは、前記分散型記憶システムにおける故障した第2のノードで記憶されたデータの複製を表し、
    前記故障した第2のノードにおける故障は、前記故障した第2のノードによって管理される第2のデータへのアクセスを阻止し、
    前記方法は、
    前記受信された第1のデータが前記故障したノードにおいて記憶された第2のデータの複製であることを検出することに応答して前記不揮発性キャッシュストレージリソースにおいて前記受信された第1のデータの記憶を回避し、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第1のデータを記憶することを、前記データ記憶制御ロジックに対して指し示す前記第1のメタデータを生成する段階を
    更に備える
    法。
  7. 前記分散型記憶システムにおける故障していない第3のノードにおいて記憶された第3のデータに基づいて、前記故障した第2のノードで記憶された前記第2のデータの複製を生成する段階と、
    前記第1のノードで、前記第2のデータの複製を受信する段階と、
    を更に備える、
    求項6に記載の方法。
  8. データストレージを集合的に管理する複数のノードを含む分散型記憶システムにおいてデータを記憶するための方法であって、
    不揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信している、前記分散型記憶システムにおける第1のノードで、第1のデータを受信する段階と、
    前記受信された第1のデータに基づいて第1のメタデータを生成する段階と、
    前記受信された第1のデータおよび前記第1のメタデータを、前記データ記憶制御ロジックに転送する段階と、
    を備え、
    第1のメタデータは、前記不揮発性キャッシュストレージリソースにおいて前記第1のデータを記憶することを指し示し、
    前記方法は、
    前記第1のノードで、前記分散型記憶システムにおける第2のノードで記憶されたデータの複製である第2のデータを受信する段階と、
    前記不揮発性キャッシュストレージリソースにおいて前記受信された第2のデータの記憶を回避し、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第2のデータを記憶することを、前記データ記憶制御ロジックに対して指し示す第2のメタデータを前記第1のノードで生成する段階と、
    前記第2のデータおよび前記第2のメタデータを、前記第1のノードにおける前記データ記憶制御ロジックへ転送する段階と、
    を更に備える
    法。
  9. 前記不揮発性キャッシュストレージリソースにおいて前記受信された第1のデータの記憶を回避し、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第1のデータを記憶することを、前記データ記憶制御ロジックに対して指し示す前記第1のメタデータを生成する段階と、
    前記分散型記憶システムにおける第2のノードの故障を検出することに応答して、前記受信された第1のデータの複製である複製データを生成する段階と、
    前記複製データを前記分散型記憶システムにおける第3のノードへ転送する段階と、
    を更に備える、
    請求項1に記載の方法。
  10. 前記分散型記憶システムにおける前記第3のノードで前記複製データを受信する段階と、
    前記第3のノード、前記第3のノードの前記不揮発性非キャッシュストレージリソースにおいて、前記複製データを記憶することを指し示す第3のメタデータを生成する段階と
    更に備える、
    請求項9に記載の方法。
  11. データストレージを集合的に管理する複数の相互接続されたノードを備える分散型記憶システムであって、
    前記複数の相互接続されたノードは、第1のノードを含み
    揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信している、前記分散型記憶システムにおける前記第1のノードは、前記分散型記憶システムと通信しているリソースから第1のデータを受信し、
    前記受信された第1のデータに基づいて第1のメタデータを生成し
    前記受信された第1のデータおよび前記第1のメタデータを前記データ記憶制御ロジックに転送する、
    ように動作可能であり
    前記第1のメタデータは、前記受信された第1のデータの複製が前記分散型記憶システムにおける前記第1のノードとは異なる第2のノードから入手可能であることを検出することに応答して、前記不揮発性キャッシュストレージリソースにおいて前記受信された第1のデータの記憶を回避することを、前記データ記憶制御ロジックに対して指し示す、
    散型記憶システム。
  12. 第1のメタデータは、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第1のデータを記憶することを、前記データ記憶制御ロジックに対して指し示す、
    請求項11に記載の分散型記憶システム。
  13. 前記不揮発性キャッシュストレージリソースは、不揮発性メモリであり、
    前記不揮発性非キャッシュストレージリソースは、ディスクドライブストレージリソースである、
    求項11または12に記載の分散型記憶システム。
  14. 前記第1のメタデータは、前記受信された第1のデータが前記レポジトリの前記不揮発性キャッシュストレージリソースにおいて記憶されるべきことを、前記第1のノードの前記データ記憶制御ロジックに対して指し示す、
    請求項11から13のいずれか1項に記載の分散型記憶システム。
  15. 記第1のノードで、前記分散型記憶システムにおける第2のノードで記憶されたデータの複製である第2のデータを受信し、
    前記第1のノードのデータ記憶制御ロジックに対し、前記不揮発性キャッシュストレージリソースにおいて前記受信された第2のデータの記憶を回避し、前記不揮発性非キャッシュストレージリソースにおいて、前記受信された第2のデータを記憶することを指し示す、第2のメタデータを生成し、
    前記第2のデータおよび前記第2のメタデータを、前記第1のノードの前記データ記憶制御ロジックへ転送する、
    ように更に動作可能である、
    請求項14に記載の分散型記憶システム。
  16. データストレージを集合的に管理する複数の相互接続されたノードを備える分散型記憶システムであって、
    前記複数の相互接続されたノードは、第1のノードを含み、
    不揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信している、前記第1のノードは、前記分散型記憶システムと通信しているリソースから第1のデータを受信し、
    前記受信された第1のデータに基づいて第1のメタデータを生成し、
    前記受信された第1のデータおよび前記第1のメタデータを前記データ記憶制御ロジックに転送する、
    ように動作可能であり、
    前記受信された第1のデータは、前記分散型記憶システムにおける故障した第2のノードで記憶されたデータの複製を表し、
    前記故障した第2のノードにおける対応する故障は、前記故障した第2のノードによって管理される第2のデータへのアクセスを阻止し、
    前記第1のノードは、前記受信された第1のデータが前記故障した第2のノードにおいて記憶された第2のデータの複製であることを検出することに応答して、前記不揮発性キャッシュストレージリソースにおいて、前記受信された第1のデータの記憶を回避し、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第1のデータを記憶することを、前記データ記憶制御ロジックに対して指し示す前記第1のメタデータを生成する、
    ように更に動作可能である
    散型記憶システム。
  17. 記分散型記憶システムは、
    前記分散型記憶システムにおける故障していない第3のノードにおいて記憶された第3のデータに基づいて、前記故障した第2のノードで記憶された前記第2のデータの複製を生成する前記第3のノードと、
    を更に備え、
    前記第1のノードは、
    前記第2のデータの複製を受信する、
    ように更に動作可能である、
    請求項16に記載の分散型記憶システム。
  18. データストレージを集合的に管理する複数の相互接続されたノードを備える分散型記憶システムであって、
    前記複数の相互接続されたノードは、第1のノードを含み、
    不揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信している、前記第1のノードは、前記分散型記憶システムと通信しているリソースから第1のデータを受信し、
    前記受信された第1のデータに基づいて第1のメタデータを生成し、
    前記受信された第1のデータおよび前記第1のメタデータを前記データ記憶制御ロジックに転送する、
    ように動作可能であり、
    第1のメタデータは、前記不揮発性キャッシュストレージリソースにおいて前記第1のデータを記憶することを指し示し、
    前記第1のノードは、
    前記分散型記憶システムにおける第2のノードで記憶されたデータの複製である第2のデータを受信し、
    前記不揮発性キャッシュストレージリソースにおいて前記受信された第2のデータの記憶を回避し、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第2のデータを記憶することを、前記データ記憶制御ロジックに対して指し示す第2のメタデータを生成し、
    前記第2のデータおよび前記第2のメタデータを、前記第1のノードにおける前記データ記憶制御ロジックへ転送する、
    ように更に動作可能である
    散型記憶システム。
  19. 前記第1のノードは、
    前記不揮発性キャッシュストレージリソースにおいて前記受信された第1のデータの記憶を回避し、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第1のデータを記憶することを、前記データ記憶制御ロジックに対して指し示す前記第1のメタデータを生成し、
    前記分散型記憶システムにおける第2のノードの故障を検出することに応答して、前記受信された第1のデータの複製である複製データを生成し、
    前記複製データを前記分散型記憶システムにおける第3のノードに転送する、
    ように更に動作可能である、
    請求項11に記載の分散型記憶システム。
  20. 前記分散型記憶システムにおける第3のノードは、前記複製データを受信し、
    前記第3のノードの前記不揮発性非キャッシュストレージリソースにおいて前記複製データを記憶することを指し示す第3のメタデータを生成する、
    うに動作可能である、
    請求項19に記載の分散型記憶システム。
  21. 請求項11から20のいずれか一項に記載の分散型記憶システムへのアクセスを有するコンピュータシステムであって、
    前記分散型記憶システムの前記第1のノードによって受信された前記第1のデータの少なくとも一部に基づいて、画像をレンダリングするためのディスプレイスクリーンを含む、
    コンピュータシステム。
  22. 複数の命令が記憶されているコンピュータ可読記憶ハードウェアであって、
    前記複数の命令は、コンピュータプロセッサハードウェアによって実行される場合、前記コンピュータプロセッサハードウェアに、
    分散型記憶システムにおける複数のノードのうちの1つであり、
    不揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信している、前記分散型記憶システムにおける第1のノードで、第1のデータを受信し、
    前記受信された第1のデータに基づいて第1のメタデータを生成し
    前記受信された第1のデータおび前第1のメタデータを前記データ記憶制御ロジックに転送する
    動作を実行させ、
    前記第1のメタデータは、前記受信された第1のデータの複製が前記分散型記憶システムにおける前記第1のノードとは異なる第2のノードから入手可能であることを検出することに応答して、前記不揮発性キャッシュストレージリソースにおいて前記受信された第1のデータの記憶を回避することを、前記データ記憶制御ロジックに対して指し示す、
    コンピュータ可読記憶ハードウェア。
  23. 前記第1のメタデータは、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第1のデータを記憶することを前記データ記憶制御ロジックに対して指し示す、
    求項22に記載のコンピュータ可読記憶ハードウェア。
  24. 前記不揮発性キャッシュストレージリソースは、不揮発性メモリであり、
    前記不揮発性非キャッシュストレージリソースは、ディスクドライブストレージリソースである、
    求項22または23に記載のコンピュータ可読記憶ハードウェア。
  25. 複数の命令が記憶されているコンピュータ可読記憶ハードウェアであって、
    前記複数の命令は、コンピュータプロセッサハードウェアによって実行される場合、前記コンピュータプロセッサハードウェアに、
    分散型記憶システムにおける複数のノードのうちの1つであり、
    不揮発性キャッシュストレージリソースおよび不揮発性非キャッシュストレージリソースを含むレポジトリへのアクセスを有するデータ記憶制御ロジックと通信している、前記分散型記憶システムにおける第1のノードで、第1のデータを受信し、
    前記受信された第1のデータに基づいて第1のメタデータを生成し、
    前記受信された第1のデータおよび前記第1のメタデータを、前記データ記憶制御ロジックに転送する、
    動作を実行させ、
    前記受信された第1のデータは、前記分散型記憶システムにおける故障した第2のノードで記憶された第2のデータの複製を表し、
    前記故障した第2のノードにおける故障は、前記故障した第2のノードによって管理される第2のデータへのアクセスを阻止し、
    前記複数の命令は、前記コンピュータプロセッサハードウェアに、
    前記受信された第1のデータが前記故障したノードで記憶された第2のデータの複製であることを検出することに応答して、前記不揮発性キャッシュストレージリソースにおいて前記受信された第1のデータの記憶を回避し、前記レポジトリの前記不揮発性非キャッシュストレージリソースにおいて前記受信された第1のデータを記憶することを前記データ記憶制御ロジックに指し示す前記第1のメタデータを生成する
    動作を更に実行させる
    ンピュータ可読記憶ハードウェア。
JP2016526888A 2013-12-11 2013-12-11 分散型記憶システムにおけるキャッシュおよび非キャッシュの使用 Active JP6256931B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/074290 WO2015088505A1 (en) 2013-12-11 2013-12-11 Cache and non-cache usage in a distributed storage system

Publications (2)

Publication Number Publication Date
JP2017501476A JP2017501476A (ja) 2017-01-12
JP6256931B2 true JP6256931B2 (ja) 2018-01-10

Family

ID=53371610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016526888A Active JP6256931B2 (ja) 2013-12-11 2013-12-11 分散型記憶システムにおけるキャッシュおよび非キャッシュの使用

Country Status (6)

Country Link
US (1) US20160274806A1 (ja)
EP (1) EP3080717B1 (ja)
JP (1) JP6256931B2 (ja)
KR (2) KR102030517B1 (ja)
RU (1) RU2643642C2 (ja)
WO (1) WO2015088505A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230809B2 (en) * 2016-02-29 2019-03-12 Intel Corporation Managing replica caching in a distributed storage system
US10169152B2 (en) 2016-09-12 2019-01-01 International Business Machines Corporation Resilient data storage and retrieval
US11249671B2 (en) * 2017-04-28 2022-02-15 Netapp, Inc. Methods for improved data replication across hybrid cloud volumes using data tagging and devices thereof
US10768820B2 (en) 2017-11-16 2020-09-08 Samsung Electronics Co., Ltd. On-demand storage provisioning using distributed and virtual namespace management
CN110633046A (zh) * 2018-06-22 2019-12-31 北京东土科技股份有限公司 一种分布式系统的存储方法、装置、存储设备及存储介质
KR102497130B1 (ko) * 2021-11-11 2023-02-07 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6678700B1 (en) * 2000-04-27 2004-01-13 General Atomics System of and method for transparent management of data objects in containers across distributed heterogenous resources
US7774466B2 (en) * 2002-10-17 2010-08-10 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed storage area network system
JP4267421B2 (ja) * 2003-10-24 2009-05-27 株式会社日立製作所 リモートサイト及び/又はローカルサイトのストレージシステム及びリモートサイトストレージシステムのファイル参照方法
US8055845B2 (en) * 2005-02-03 2011-11-08 Hewlett-Packard Development Company, L.P. Method of cooperative caching for distributed storage system
US7613750B2 (en) * 2006-05-29 2009-11-03 Microsoft Corporation Creating frequent application-consistent backups efficiently
US8909871B2 (en) 2006-08-03 2014-12-09 International Business Machines Corporation Data processing system and method for reducing cache pollution by write stream memory access patterns
US7613947B1 (en) * 2006-11-30 2009-11-03 Netapp, Inc. System and method for storage takeover
US8732386B2 (en) * 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
JP5104828B2 (ja) * 2009-08-24 2012-12-19 富士通株式会社 オブジェクトベースストレージシステム、キャッシュ制御装置、キャッシュ制御方法
US8782323B2 (en) * 2009-10-30 2014-07-15 International Business Machines Corporation Data storage management using a distributed cache scheme
US8825685B2 (en) * 2009-11-16 2014-09-02 Symantec Corporation Selective file system caching based upon a configurable cache map
US9514055B2 (en) * 2009-12-31 2016-12-06 Seagate Technology Llc Distributed media cache for data storage systems
US8868508B2 (en) * 2010-02-09 2014-10-21 Google Inc. Storage of data in a distributed storage system
US8464003B2 (en) * 2010-02-17 2013-06-11 Hitachi, Ltd. Method and apparatus to manage object based tier
US8966184B2 (en) * 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
JP5626034B2 (ja) * 2011-03-07 2014-11-19 日本電気株式会社 ファイルシステム
JP2012221419A (ja) * 2011-04-13 2012-11-12 Hitachi Ltd 情報記憶システム及びそのデータ複製方法
US8782344B2 (en) * 2012-01-12 2014-07-15 Fusion-Io, Inc. Systems and methods for managing cache admission

Also Published As

Publication number Publication date
RU2643642C2 (ru) 2018-02-02
KR20160068881A (ko) 2016-06-15
WO2015088505A1 (en) 2015-06-18
EP3080717A4 (en) 2017-09-06
KR101778907B1 (ko) 2017-09-26
RU2016118362A (ru) 2017-11-16
EP3080717B1 (en) 2020-03-04
EP3080717A1 (en) 2016-10-19
JP2017501476A (ja) 2017-01-12
KR102030517B1 (ko) 2019-10-10
KR20170105133A (ko) 2017-09-18
US20160274806A1 (en) 2016-09-22

Similar Documents

Publication Publication Date Title
JP6256931B2 (ja) 分散型記憶システムにおけるキャッシュおよび非キャッシュの使用
JP6280146B2 (ja) 分散型キャッシング(caching)オブジェクトを除去する方法、システム、およびサーバ
JP5986577B2 (ja) Aluaの選好および状態遷移のホストによる検出および処理
US10154109B2 (en) Delivering content to electronic devices using local caching servers
RU2595482C2 (ru) Обеспечение прозрачной отработки отказа в файловой системе
CN109285091B (zh) 服务咨询系统和方法
US20190034551A1 (en) Delivering content to electronic devices using local caching servers
US20170228285A1 (en) Data durability in stored objects
US9792150B1 (en) Detecting site change for migrated virtual machines
US20150186411A1 (en) Enhancing Reliability of a Storage System by Strategic Replica Placement and Migration
CN103765373A (zh) 数据存储方法、数据存储装置和存储设备
EP3731099B1 (en) System and method for accelerating application service restoration
US20160179638A1 (en) Switch failure recovery system
US9367453B1 (en) System and method for migrating cache data
WO2016176227A1 (en) Distributed storage of software images in computing systems
CN111488247B (zh) 一种管控节点多次容错的高可用方法及设备
CN116389233B (zh) 容器云管理平台主备切换系统、方法、装置和计算机设备
US10896201B2 (en) Synchronization of block based volumes
US9858193B1 (en) System and method for apportioning storage
US9971532B2 (en) GUID partition table based hidden data store system
JP6309432B2 (ja) 秘密計算システム及び方法並びに管理サーバ及びプログラム
JP5608551B2 (ja) 仮想マシンシステム、及びその制御方法
CN114172917B (zh) 一种分布式缓存系统及其部署的方法
US11663241B2 (en) System and method for catalog service
CN118193127A (zh) 一种虚拟机镜像的更换方法及计算设备

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171027

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: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171128

R150 Certificate of patent or registration of utility model

Ref document number: 6256931

Country of ref document: JP

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