JP2012513639A - 複製ストレージクラスタのための非同期式分散ガーベッジコレクション - Google Patents

複製ストレージクラスタのための非同期式分散ガーベッジコレクション Download PDF

Info

Publication number
JP2012513639A
JP2012513639A JP2011542575A JP2011542575A JP2012513639A JP 2012513639 A JP2012513639 A JP 2012513639A JP 2011542575 A JP2011542575 A JP 2011542575A JP 2011542575 A JP2011542575 A JP 2011542575A JP 2012513639 A JP2012513639 A JP 2012513639A
Authority
JP
Japan
Prior art keywords
negotiation
negotiation message
delete
message
storage cluster
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.)
Granted
Application number
JP2011542575A
Other languages
English (en)
Other versions
JP5479490B2 (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2012513639A publication Critical patent/JP2012513639A/ja
Application granted granted Critical
Publication of JP5479490B2 publication Critical patent/JP5479490B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems

Abstract

分散型データ複製システムにおける装置の組のうちの装置によって方法が実行され得る。方法は、分散型データ複製システムを用いて少なくとも1つ以上が複製されるオブジェクトをデータストアに記憶するステップと、データストア内のオブジェクトのスキャンを実行するステップとを備え得る。方法は、さらに、オブジェクトを指し示す参照を有さないものとして1つのオブジェクトを特定するステップと、オブジェクトの1つに関連付けられたメタデータとして削除ネゴシエーションメッセージを記憶するステップと、削除ネゴシエーションメッセージを有するメタデータを、装置の組のうちの1つ以上の別の装置に複製するステップとをさらに含む。

Description

背景
企業コンピューティングの景観は、ストレージ構造において、中央サービス構造が分散ストレージクラスタに取って代わられるという抜本的な転換期にある。企業が記憶効率を高める方法を求めるにつれ、汎用のコンピュータで作られたそのようなクラスタは、一体型のディスクアレイに比べて僅かなコストで高い能力、可用性、新しいデータ集約型アプリケーションに対する拡張性を実現し得る。ストレージクラスタの潜在能力を全て解き放つため、データは、可用性を高め、クライアントからのネットワーク距離を短くする複数の地理的な場所に亘って複製される。
ガーベッジコレクションは、大きな分散オブジェクトを管理する管理分散型ストレージシステムに対する問題となり得る。ガーベッジコレクタはもはや参照されないオブジェクトを削除することによってディスクスペースを再利用することに対して責任を有する。ストレージクラスタにおける分散型ガーベッジコレクションは機械の一般的な故障および、オブジェクトならびにそれらの参照の全体的な同時表示を得ることが不可能でなければ難しくするネットワークパーティションによってさらに複雑にされる。
概要
ある実施例によると、方法は、分散型データ複製システムにおける複数の装置のうちの装置によって実行され得る。方法は、分散型データ複製システムを用いて少なくとも1つ以上が複製されるオブジェクトを、データストアに記憶するステップと、データストア内のオブジェクトのスキャンを実行するステップと、オブジェクトのうちの1つを、オブジェクトを指し示す参照を有さないものとして特定するステップと、1つのオブジェクトに関連付けられたメタデータとして、削除ネゴシエーションメッセージを記憶するステップと、複数の装置のうちの1つ以上の別の装置に、削除ネゴシエーションメッセージを有するメタデータを複製するステップとを含み得る。
別の実施例によると、分散型データ複製システムにおける複数の装置のうちの装置は、オブジェクトに関連付けられたネゴシエーションメッセージを有するものとして、データストア内のオブジェクトを特定するための手段と、オブジェクトの状態に基づく新しいネゴシエーションメッセージを、オブジェクトに関連付けるための手段と、ストレージクラスタに新しいネゴシエーションメッセージを複製するための手段と、オブジェクトのレプリカに関連付けられた別のネゴシエーションメッセージを受け取るための手段と、別のネゴシエーションメッセージが成功したネゴシエーションを示す場合、オブジェクトを削除するための手段とを含み得る。
さらに別の実施例によると、システムは、命令およびデータストアを記憶するメモリと、プロセッサとを備える。プロセッサは、データストア内のオブジェクトが参照を有するか否か、ならびに削除ネゴシエーションメッセージがオブジェクトに関連付けられているか否かに関する、オブジェクトの状態を特定し、オブジェクトの状態に基づいてオブジェクトメタデータに新しいネゴシエーションメッセージを書込み、新しいネゴシエーションメッセージを有するメタデータを1つ以上の装置に複製し、1つ以上の装置のうちの1つから、オブジェクトに関連付けられた別のネゴシエーションメッセージを受け取るために、メモリ内の命令を実行する。新しいネゴシエーションメッセージおよび別のネゴシエーションメッセージは、オブジェクトの削除ネゴシエーションに対するコンセンサスを提供する。
さらに別の実施例によると、方法は、分散型マルチマスタデータ複製システム内のストレージクラスタ間で、1つ以上の削除ネゴシエーションメッセージを交換するステップを含み、各々の削除ネゴシエーションメッセージは、ネゴシエーションメッセージの対象であるオブジェクトのメタデータ内に含まれ、削除ネゴシエーションメッセージは、分散型マルチマスタデータ複製システムの複製層を用いてストレージクラスタ間で送られ、さらに、1つ以上の削除ネゴシエーションメッセージに基づいて、ストレージクラスタ間において、分散型コンセンサスが合意すると、オブジェクトを削除するステップを含み得る。
さらに別の実施例によると、コンピュータ読取可能メモリは、コンピュータ実行可能命令を含み得る。コンピュータ読取可能メモリは、データストア内のオブジェクトが参照を有するか否か、ならびに削除ネゴシエーションメッセージがオブジェクトに関連付けられているか否かに関する、オブジェクトの状態を特定するための1つ以上の命令と、オブジェクトの状態に基づいて、オブジェクトのメタデータに、オブジェクトに関連付けられた新しいネゴシエーションメッセージを書込むための1つ以上の命令と、新しいネゴシエーションメッセージを有するオブジェクトメタデータをストレージクラスタに複製するための1つ以上の命令と、1つ以上の別の装置から、オブジェクトに関連付けられた別のネゴシエーションメッセージを受け取るための1つ以上の命令と、オブジェクトに関連付けられた別のネゴシエーションメッセージに基づいて、オブジェクトの削除ネゴシエーションに対するコンセンサスを判定するための1つ以上の命令とを含み得る。
図面の簡単な説明
この明細書に組入れられ明細書の一部を形成する添付の図面は、ここで説明される1つ以上の実施例を記載し、記述とともに、これらの実施例を説明する。
ここで説明されるシステムおよび方法が実現され得る例示のネットワークの図である。 図1のファイルシステムの例示の構成図である。 図1のストレージクラスタの例示のコンポーネントの図である。 図1の例示のストレージクラスタの機能ブロック図である。 ここで説明されるシステムおよび方法と一致する実施例に従って用いられ得るメッセージ構造の例示の図である。 ここで説明されるシステムおよび方法と一致する実施例に従って、分散型マルチマスタデータ複製システムにおいてガーベッジコレクションを実行するための例示のプロセスのフローチャートである。 ここで説明されるシステムおよび方法と一致する実施例に従ってネゴシエーションメッセージを記述するためのページのプロセスのフローチャートである。 ここで説明されるシステムおよび方法と一致する実施例に従って、オブジェクトに対する新しい参照を作成するための例示のプロセスのフローチャートである。 ある実施例に従う例示の削除ネゴシエーションの一部を記載する図である。
詳細な説明
以下の詳細な説明は添付の図面を参照する。異なる図面における同じ参照番号は同じまたは同様の要素を特定し得る。また、以下の詳細な説明は発明を限定しない。
ここで説明されるシステムおよび/または方法は、複製ストレージクラスタに対して非同期式分散ガーベッジコレクションを実行し得る。ここで説明される実施例は、分散型マルチマスタデータ複製システムの異なるクラスタの間で削除ネゴシエーションを送るために、分散型マルチマスタデータ複製システムの下層複製層を用い得る。活動中の参照も複製された参照もシステムにはないということに分散型コンセンサスが合意したとき、オブジェクトが削除され得る。
例示のネットワーク構造
図1は、ここで説明されるシステムおよび方法が実現され得る例示のシステム100の図である。システム100は、クライアント110−1からクライアント110−N(まとめてクライアント110と呼ばれる)およびネットワーク130を介して接続された、ストレージクラスタ120−1から120−M(まとめてストレージクラスタ120と呼ばれる)を含み得る。ストレージクラスタ120は、ファイルシステム140(図1において破線で示される)を形成し得る。
ネットワーク130は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)のような電話網、イントラネット、インターネット、類似もしくは非類似のネットワーク、またはネットワークの組合せ等の1つ以上のネットワークを含み得る。クライアント110およびストレージクラスタ20は、有線、および/または無線接続を介してネットワーク130に接続され得る。
クライアント110は、パーソナルコンピュータ、無線電話、携帯情報端末(PDA)、ラップトップ、または別の種類の通信装置等の1つ以上の種類の装置、これらの装置の1つ上で実行しているスレッドまたはプロセス、および/またはこれらの装置によって実行されるオブジェクトを含み得る。ある実施例において、クライアント110は、ファイルデータを読出すもしくは変更(たとえば書込)するためにクライアント110の代わりにストレージクラスタ120と通信するアプリケーションを含む、もしくはこのアプリケーションに繋げられる。
ストレージクラスタ120は、1つ以上のサーバ装置、または、ここで説明される態様で情報を記憶、処理、検索、および/もしくは提供し得る別の種類の演算または通信装置を含み得る。1つの実施例において、ストレージクラスタ120は、ファイルに対して大型のランダムリード/ライトアクセスデータストアを維持することが可能な1つ以上のサーバ(たとえばコンピュータシステムおよび/またはアプリケーション)を含み得る。ストレージクラスタ120のデータストアは、変化が生じた場合にインデックスの一部を速やかに更新することをインデックス付けシステムに許可し得る。ストレージクラスタ120のデータストアは、1つ以上のテーブル(たとえば、ユニフォームリソースロケータ(URL)毎に1つの行を含み得るドキュメントテーブル、URLとは異なる値が入力された補助テーブル等)を含み得る。一例として、ストレージクラスタ120は、非常に大きなサイズ(たとえば数千のサーバに亘るデータのペタバイト)を計測するように設計され得る構造化データ(たとえばドキュメントのランダムアクセスストレージクラスタ)を管理するための分散型ストレージシステム(たとえば、チャンその他、「ビッグテーブル:構造化データのための分散型ストレージシステム」、第7回OSDI会報、pp.205−218(2006年11月)において説明されるような「ビッグテーブル」)内に含まれ得る。
図1には示されないが、システム100は1つ以上の専用の民生用サーバまたはハブ等の別のコンポーネント、さまざまな別のコンポーネントを含み得る。ここで用いられるように、コンポーネントはハードウェアまたはソフトウェアとハードウェアとの組合せを含み得る。民生用サーバはたとえば、クライアント110からのアクセスのために、1つ以上のストレージクラスタ120からの、データストアの読出専用のコピーを記憶し得る。ハブはたとえば、1つ以上の民生用サーバへの配布のために、1つ以上のストレージクラスタ120からのデータストアの読出専用コピーを記憶し得る。
例示のストレージクラスタ構造
図2は、ファイルシステムの例示の構造の図である。図2において示されるように、ファイルシステム140は、ストレージクラスタ120−1,120−2,120−3,および120−4を含み得る。ある実施例において、ファイルシステム140は、各々のストレージクラスタ120−1,120−2,120−3,および120−4が別のストレージクラスタに対してマスタサーバとして振る舞い得る分散型マルチマスタデータ複製システムであり得る。ファイルシステム140において、データの可用性を高め、かつ、クライアント(たとえばクライアント110)からのネットワーク距離を短くするために、(たとえば複数の地理的位置における)ストレージクラスタ120−1,120−2,120−3,および120−4に亘ってデータが複製され得る。一般的に、分散されたオブジェクトおよび参照は、異なるストレージクラスタ120において動的に作成、変形、複製および削除され得、最終的には全てのストレージクラスタ120が同じバージョンのデータに行き着くことを確実にするために下層データ複製層(図示せず)が書込指令の忠実性を維持する。したがって、データ複製層が、単一のオブジェクトに対する同じレプリカへの書込の指令を遵守する。
図2はファイルシステム140の例示の機能的なコンポーネントを示すが、別の実施例において、ファイルシステム140は図2に示されたものよりも少ない、付加的な、異なる、または異なって配置されたコンポーネントを含み得る。さらに別の実施例において、1つ以上の、ファイルシステム140の1つ以上のコンポーネントは、ファイルシステム140の1つ以上の別のコンポーネントによって実行されるものとして説明された1つ以上の別のタスクを実行し得る。
図3は、ストレージクラスタ120の例示のコンポーネントの図である。ストレージクラスタ120は、バス310、プロセッサ320、メインメモリ330、ROM340、記憶装置350、入力装置360、出力装置370、および通信インターフェイス380を含み得る。バス310は、ストレージクラスタ120のコンピュータの間での通信を許容する1つ以上のコンダクタを含み得る。
プロセッサ320は、命令を解釈し実行し得る任意のタイプのプロセッサまたはマイクロプロセッサを含み得る。メインメモリ330は、RAMまたは、情報ならびにプロセッサ320による実行のための命令を記憶し得る別の種類の動的記憶装置を含み得る。ROM340は、ROM装置または、静的情報ならびにプロセッサ320のよる使用のための命令を記憶し得る別の種類の静的記憶装置を含み得る。記憶装置350は、磁気および/または光学記録媒体ならびにその対応するドライブを含み得る。たとえば、記憶装置350は、永続的なストレージを提供する1つ以上のローカルディスク355を含み得る。ある実施例において、ストレージクラスタ120は、メインメモリ330および/または記憶装置350等の1つ以上のコンピュータ読取可能媒体内において、ファイルシステム140内に記憶されたオブジェクトに対して、メタデータを維持し得る。たとえば、ストレージクラスタ120は、バージョン番号、タイムスタンプ、カテゴリ、および/またはオブジェクトに対する参照インジケータを記憶装置350内に記憶し得る。
入力装置360はキーボード、キーパッド、ボタン、マウス、ペン等の、操作者がストレージクラスタ120に情報を入力することを可能にする1つ以上の機構を含み得る。出力装置370は、ディスプレイ、発光ダイオード(LED)等を含む、操作者に対して情報を出力する1つ以上の機構を含み得る。通信インターフェイス380は、ストレージクラスタ120が別の装置および/またはシステムと通信できるようにする任意のトランシーバのような機構を含み得る。たとえば、通信インターフェイス380は、別のストレージクラスタ120およびクライアント110と通信するための機構を含み得る。
図4はストレージクラスタ120の機能ブロック図を示す。図4に示されるように、ストレージクラスタ120はデータストア410およびガーベッジコレクタロジック420を含み得る。ある実施例において、図4において示されるように、データストア410はストレージクラスタ120内に配置され得る。別の実施例において、データストア410は、外部メモリ装置またはインデックス付けシステムに関連付けられた装置(図示せず)等の、ストレージクラスタ120と通信するシステム100の1つ以上の別の装置内に設けられてもよい。
データストア410は、検索システムに対して1つ以上のインデックスを提供するためのドキュメントテーブルおよび二次テーブルを含み得る。一例として、ドキュメントテーブルおよび二次テーブルは、URLに関連付けられた情報にアクセスすることおよび/または情報を更新することを手助けするために、URLのプロパティによって適合され得る。各データストア410の少なくとも一部は、複数のストレージクラスタ120上で複製され得る。各データストア410に対するレプリカの数はユーザが設定可能である。
ガーベッジコレクタロジック420は、以前に削除されたファイル等の、参照されていないコンテンツを取り除くためのロジックを含み得る。ガーベッジコレクタロジック420は、たとえばデータストア410から参照されていないコンテンツを取り除き得る。たとえば、ガーベッジコレクタロジック420は、データストア410からのオブジェクト(たとえばドキュメント)がもはや参照されていないか(すなわちオブジェクトを指し示すリンクを含まないオブジェクトであるか)を判断し、ストレージクラスタ120から、もはや参照されていない任意のオブジェクトを、ストレージクラスタ120を移動し、参照されていないオブジェクトを取り除く機能(たとえばマップ削減機能)を介して取り除き得る。オブジェクが、オブジェクトを指し示すリンクを有していれば、そのオブジェクトは「参照されている」または「活動している」であり得る。したがって、ガーベッジコレクタロジック420は、活動しているオブジェクトを維持する一方でストレージクラスタ120から不必要な情報を取り除き得る。
オブジェクトは別のストレージクラスタ120内において存在し得るため、そのオブジェクトを取り除くことは単にオブジェクトを削除することほど単純ではない。したがって、ガーベッジコレクタロジック420は、ファイルシステム140の異なるストレージクラスタ120間で送られ得る削除ネゴシエーションメッセージを作成し得る。ガーベッジコレクタロジック420は、システム内に活動している参照も、複製された参照も存在しないということに、(たとえばそのオブジェクトのレプリカを含むファイルシステム140の全てのストレージクラスタ120の間において)分散型コンセンサスが合意した場合、オブジェクトを削除し得る。ガーベッジコレクタロジック420は、削除ネゴシエーションの対象となっているオブジェクトのメタデータ内に削除ネゴシエーションメッセージを含み得る。そしてメッセージは、オブジェクトのレプリカを含む全ての別のストレージクラスタ120に対して非同期的に複製され得る。
ガーベッジコレクタロジック420によって作成されたメッセージは、たとえば、削除ネゴシエーションを起動するための「Delete」インジケータ、削除ネゴシエーションに対して肯定応答を提供するための応答(「ACK」)インジケータ、削除ネゴシエーションに対して否定応答を提供するための否定応答(「NACK」)インジケータ、および応答が別のストレージクラスタ120から受取られたという確認を与えるための同期(「GotAll」)インジケータを含み得る。ある実施例において、未処理のDeleteまたはACKメッセージを有するオブジェクトに対しては新しい参照は付与されない。メッセージは、メッセージの形式および使用は以下により詳細に説明される。
図3はストレージクラスタ120の例示の機能的なコンポーネントを示すが、別の実施例において、ストレージクラスタ120は図3に示される機能的なコンポーネントよりも少ない、付加的な、異なる、または異なって配置されたコンポーネントを含み得る。さらに別の実施例において、ストレージクラスタ120の1つ以上の機能的なコンポーネントは、1つ以上の別の機能的なコンポーネントによって実行されるものとして説明された1つ以上の別のタスクを実行し得る。
例示のメッセージ構造
図5は、例示の実施例において用いられ得るネゴシエーションメッセージに対する例示のメッセージ構造500の図を与える。図5に示されるように、メッセージ構造500は、メッセージ部510、ストレージクラスタ識別部520、およびネゴシエーション要求識別部530を含み得る。メッセージ部510は、たとえば、「Delete」インジケータ、「ACK」インジケータ、「NACK」インジケータ、または「GotAll」インジケータを含み得る。ストレージクラスタ識別部520は、メッセージ部510内のメッセージを起動するストレージクラスタ120に対する固有の識別情報(たとえばクラスタID)を含み得る。ネゴシエーション要求識別部530は、オリジナルの削除ネゴシエーションに対する固有の識別情報(たとえばReqID)を含み得る。
メッセージ構造500は、メッセージ:クラスタID:ReqIDの形式で記述され得る。たとえば、オブジェクトに対する削除ネゴシエーションは、メッセージ「Delete:01:5555」を用いてストレージクラスタ120−1によって起動され得る。ここで、「01」はストレージクラスタ120−1に対するクラスタIDであって、「5555」はReqIDである。ストレージクラスタ120−2による、ネゴシエーションに対する応答は、「ACK:02:5555」であり得る。ここで、ストレージクラスタ120−2に対するクラスタIDであり、「5555」は、依然として、応答(およびオリジナルのネゴシエーションに関連する任意の将来のメッセージ」に対するReqIDである。
例示のプロセスフロー
図6は、分散型マルチマスタデータ複製システム(たとえばファイルシステム140)においてガーベッジコレクションを実行するための例示のプロセス600のフローチャートである。ある実施例において、プロセス600は、ストレージクラスタ120のうちの1つによって実行される。別の実施例において、プロセス600のうちのいくつかまたは全ては、ストレージクラスタ120を含みあるいは除く別の装置または装置の組によって実行され得る。プロセス600は各ストレージクラスタ120において周期的に実現され得、かつ、ストレージクラスタ120内のオブジェクトの全てあるいは一部のスキャンを含み得る。以下に説明するプロセス600の特定の例において、ファイルシステム140のストレージクラスタ120−1に対して参照が作成され得る。ここで、ストレージクラスタ120−1は、「01」のクラスタIDを含む。
図6に記載されるように、プロセス600は、オブジェクトのスキャンの実行(ブロック610)、および、参照されておらず、ネゴシエートされたオブジェクトの識別(ブロック620)で始まり得る。たとえば、ストレージクラスタ120−1(たとえばガーベッジコレクタロジック420を用いる)は、ストレージクラスタ120−1(たとえばデータストア410内)に記憶されたオブジェクトの全てあるいは一部のスキャンを実行し得る。スキャンは、たとえば、オブジェクトに関連付けられたメタデータを読むことによって、参照を有しないオブジェクトおよび削除ネゴシエーションメッセージを有するオブジェクトを識別し得る。
オブジェクトに対して完了した削除ネゴシエーションが特定されたか否かが判断され得る(ブロック630)。完了した削除ネゴシエーションは、たとえば、成功あるいは失敗した削除ネゴシエーションの指標である。たとえば、ストレージクラスタ120−1は、成功あるいは失敗した削除ネゴシエーションを確認するメタデータを有するオブジェクトを特定し得る。
オブジェクトに対して完了した削除ネゴシエーションが特定された場合(ブロック360−YES)、ストレージクラスタを起動することによって、成功した削除ネゴシエーションあるいは失敗した削除ネゴシエーションメッセージを有するオブジェクトが削除され得る(ブロック640)。例示の実施例において、ストレージクラスタ120−1が以前にオブジェクトに対して削除ネゴシエーションを起動し、かつ、オブジェクトを削除可能であることを、(たとえば、オブジェクトメタデータに対してACKメッセージおよび/あるいはGotAllメッセージを書き込むことによって)オブジェクトのレプリカを記憶する全ての別のストレージクラスタが認識したことを示すオブジェクトにおいて、ストレージクラスタ120−1がメタデータを特定する場合、ストレージクラスタ120−1はオブジェクトならびに関連するメタデータを削除し得る。たとえば、ストレージクラスタ120−1内のスキャンが、オブジェクトのレプリカを記憶する全ての別のストレージクラスタ(たとえばストレージクラスタ120−2,120−3,および120−4)からの「Delete:01:ReqID」および「GotAll:*:ReqID」(ここで「*」は、各ストレージクラスタ120に対するストレージクラスタIDを示す)を有するオブジェクトに遭遇した場合、オブジェクトおよびメタデータは削除され得る。したがって、ストレージクラスタ120−1は、成功したネゴシエーションのイニシエータであり得る。
さらにブロック640を参照して、別の例示の実施例において、ストレージクラスタ120−1が以前にオブジェクトに対して削除ネゴシエーションを起動し、かつ、オブジェクトが削除されるべきでないことを、少なくとも1つの別のストレージクラスタ120が、NACKメッセージを書き込むことによって示したことを示すオブジェクトにおいてストレージクラスタがメタデータを特定した場合、ストレージクラスタ120−1は、オリジナルのネゴシエーションメッセージと別のストレージクラスタ120からの全ての対応するメッセージを含むメタデータを削除している。たとえば、全ての別のストレージクラスタからの「Delete:01:ReqID」、「ACK:*:ReqID」および「NACK:*:ReqID」(ここで「*」はストレージクラスタIDを示す)を有するオブジェクトにストレージクラスタ120−1内のスキャンが遭遇し、かつ少なくとも1つのNACKメッセージが存在する場合、ReqIDに対応する全てのDelete、NCK、ACKおよびNACKメッセージが、オブジェクトに関連付けられたメタデータから削除され得る。したがって、ストレージクラスタ120−1は、失敗したネゴシエーションのイニシエータであり得る。
完了した削除ネゴシエーションがオブジェクトに対して特定されない場合(ブロック630−NO)、ネゴシエーションメッセージがオブジェクトステータスに基づいてオブジェクトメタデータに書き込まれ得る(ブロック650)。ここでさらに説明されるように、オブジェクトのステータスに基づいて、メッセージ(たとえば「Delete」、「ACK」、「NACK」、「GotAll」)が1つのクラスタ内のオブジェクトメタデータに書き込まれ、オブジェクトのレプリカを含む全ての別のクラスタに複製される。たとえば、オブジェクトステータスに依存して、ストレージクラスタ120−1が、オブジェクトを削除するために新しいネゴシエーションメッセージを書き込み得る。代替的に、ストレージクラスタ120−1が継続中のネゴシエーションに応答してACKメッセージ、NACKメッセージ、またはGotAllメッセージを書き込み得る。ネゴシエーションメッセージの使用は図7に関してさらに説明される。
オブジェクトメタデータが別のストレージクラスタに対して複製され得る(ブロック660)。たとえば、ストレージクラスタ120−1は、ストレージクラスタ120−2、ストレージクラスタ120−3、ストレージクラスタ120−4等にネゴシエーションメッセージを複製するために、分散型マルチマスタデータ複製システムの下層の複製層を用い得る。したがって、ネゴシエーションメッセージは、別々のメッセージとしてよりも、むしろオブジェクトメタデータと共に別のクラスタに分散され得る。
ストレージクラスタ(たとえばストレージクラスタ120−1)内の全てのオブジェクトがスキャンされるまでプロセス600が繰返され、周期的に繰返され得る。分散型マルチマスタデータ複製システム(たとえばファイルシステム140)内の各々の別のストレージクラスタ(たとえばストレージクラスタ120−2,120−3,...、120−M)によってプロセス600が同様に実行され得る。したがって、別のストレージクラスタから複製されたオブジェクトメタデータは、ストレージクラスタ120−1からのネゴシエーションメッセージに応答してネゴシエーションメッセージを含み得る。削除のために別のストレージクラスタによって印が付けられたオブジェクトに対するネゴシエーションを非同期的に実行するために、各々のストレージクラスタは、ファイルシステムの複製層においてネゴシエーションメッセージを交換し続け得る。
図7は、図6において参照されたネゴシエーションメッセージを書き込むための例示のプロセス650のフローチャートである。プロセス650は、分散型マルチマスタデータ複製システム(たとえばファイルシステム140)内のストレージクラスタ(たとえばストレージクラスタ120の1つ)によって実行され得る。分散型マルチマスタデータ複製システムのストレージクラスタ120−1(「01」のクラスタIDを有する)およびストレージクラスタ120−2(「02」のクラスタIDを有する)について述べられ得る。
継続中のネゴシエーションが存在するかどうかが判断される(ブロック710)。たとえば、ストレージクラスタ120−1(たとえばガーベッジコレクタロジック420を用いる)は、オブジェクトに対するメタデータが削除ネゴシエーションメッセージを含むかどうかを判断し得る。1つの実施例において、オブジェクトに対する削除ネゴシエーションは、ストレージクラスタ120−1によって以前に起動することが可能であったか、または、たとえば別のストレージクラスタ(たとえばストレージクラスタ120−2,120−3,または120−4うちの1つ)によって起動され得た。
継続しているネゴシエーションが存在しないと判断された場合(ブロック710−NO)、いずれかの参照がオブジェクトを指すかどうかが判断され得る(ブロック715)。たとえば、ストレージクラスタ120−1(たとえばガーベッジコレクタロジック420を用いる)は、(たとえば参照の有向グラフを分析することによって)特定のオブジェクトが参照を有するかどうかを判断する。オブジェクトを指す参照がないと判断された場合(ブロック715−NO)、新しい「削除」メッセージが書き込まれ得る(ブロック720)。たとえば、参照を有さないオブジェクタにストレージクラスタ120−1内のスキャンが遭遇し、かつ、継続中のネゴシエーション(たとえば「Delete」メッセージがない)がない場合、ストレージクラスタ120−1は、固有のReqIDを生成し、オブジェクトに対して新しい削除ネゴシエーションメッセージ(たとえば「Delete:01:ReqID」)を書き込むことができる。参照がオブジェクトを指すと判断された場合(ブロック715−YES)、メッセージが要求されない(ブロック790)。たとえば、ストレージクラスタ120−1内のスキャンが参照を有するオブジェクトに遭遇し、かつ、継続中の削除ネゴシエーションがない場合、このとき、オブジェクトは付加的な処理を要求し得ない。
継続中のネゴシエーションが存在すると判断された場合(ブロック710−YES)、いずれかの参照がオブジェクトを指すかどうかが判断され得る(ブロック730)。たとえば、ストレージクラスタ120−1(たとえばガーベッジコレクタロジック420を用いる)は、特定のオブジェクトが参照を有するかどうかを判断し得る。参照がオブジェクトを指すと判断された場合(ブロック730−YES)、以前の否定応答が既にオブジェクトのメタデータ内に記憶されているかどうかが判断され得る(ブロック735)。たとえば、ストレージクラスタ120−1(たとえばガーベッジコレクタロジック420を用いる)は、ストレージクラスタ120−1からのNACKメッセージ(たとえば「NACK:01:ReqID」)が既にオブジェクトのメタデータ内に含まれているかどうかを判断し得る。
以前の否定応答が既にオブジェクトのメタデータに記憶されてはいないと判断された場合(ブロック735−NO)、否定応答(「NACK」)メッセージが書き込まれ得る(ブロック740)。たとえば、参照ならびに別のストレージクラスタ(たとえばストレージクラスタ120−2)からの継続中のネゴシエーション(たとえば「Delete:02:ReqID」)を有するオブジェクトにストレージクラスタ120−1内のスキャンが遭遇した場合、ストレージクラスタ120−1は、否定応答(たとえば「NACK:01:ReqID」)をオブジェクトのメタデータに書き込み得る。以前の否定応答が既にオブジェクトのメタデータ内に記憶されていると判断された場合(ブロック735−YES)、このときにさらなるオブジェクトの処理は要求されない(ブロック790)。
オブジェクトを指すリファレンスがないと判断された場合(ブロック730−NO)、全てのACKが受取られたかどうかが判断される(ブロック750)。たとえば、ストレージクラスタ120−1(たとえばガーベッジコレクタロジック420を用いる)は、システム140内の各ストレージクラスタ120からの応答(たとえば「ACK:*:ReqID」、ここで「*」はストレージクラスタIDを示す)がオブジェクトのメタデータ内に含まれているかどうかを判断し得る。全てのACKが受取られたと判断された場合(ブロック750−YES)、「GotAll」メッセージが書き込まれ得る(ブロック760)。たとえば、削除メッセージ(たとえば「Delete:02:ReqID」)ならびにシステム140内の各ストレージクラスタ120からの応答(たとえば「ACK:*:ReqID」、ここで「*」はストレージクラスタIDを示す)を有するオブジェクトにストレージクラスタ120−1内のスキャンが遭遇した場合、ストレージクラスタ120−1はイニシエータストレージクラスタ120−2による使用のために応答確認メッセージ(たとえば「GotAll:01:ReqID」)を書き込み得る。全てのACKが受取られてはいないと判断された場合(ブロック750−NO)、以前の応答がオブジェクトのメタデータ内に既に記憶されているかどうかが判断され得る(ブロック770)。たとえば、ストレージクラスタ120−1(たとえばガーベッジコレクタロジック420を用いる)は、ストレージクラスタ120−1(たとえば「ACK:01:ReqID」)からのACKメッセージが既にオブジェクトのメタデータ内に含まれているかどうかを判断し得る。
以前の応答がオブジェクトのメタデータに既に記憶されてはいないと判断された場合(ブロック770−NO)、新しい応答(「ACK」)メッセージが書き込まれ得る(ブロック780)。たとえば、参照を有さず、かつ、別のレプリカ(たとえばストレージクラスタ120−2)からの継続中のネゴシエーション(たとえば「Delete:02:ReqID」)を有するオブジェクトにストレージクラスタ120−1内のスキャンが遭遇した場合、ストレージクラスタ120−1はオブジェクトのメタデータに対して応答(たとえば「ACK:01:ReqID」)を書き込み得る。以前の応答が既にオブジェクトのメタデータに記憶されていると判断された場合(ブロック770−YES)、このときにさらなるオブジェクトの処理は要求されない(ブロック790)。
図8は、ここで説明されるシステムおよび方法と一致する実施例に従って新しい参照をオブジェクトに対して生成するための例示のプロセス800のフローチャートを提供する。プロセス800は、分散型マルチマスタデータ複製システム(たとえばファイルシステム140)内のストレージクラスタ(たとえばストレージクラスタ120の1つ)によって実行され得る。プロセス800の特定の例について、ファイルシステム140のストレージクラスタ120−1(クラスタID「01」を有する)に対して参照が作成され得る。
オブジェクトに対する参照表示が受取られ得る(ブロック810)。たとえば、ストレージクラスタ120−1は、オブジェクトに対して新しい参照を加えるための要求を受取り得る。ストレージクラスタにおいて起動されたネゴシエーションメッセージに対してオブジェクトメタデータが見直され得る(ブロック820)。たとえば、ストレージクラスタ120−1は、任意の削除ネゴシエーションメッセージ、および、特に、ストレージクラスタ120−1によって以前に起動された任意のDeleteまたはACKネゴシエーションメッセージ(たとえば「Delete:01:ReqID」または「ACK:01:ReqID」)を特定するためにオブジェクトのメタデータを見直し得る。ここで説明される実施例において、ストレージクラスタ120−1によって起動されたDeleteまたはACKメッセージを有するオブジェクトメタデータ内に継続するネゴシエーションを有するオブジェクトに対して、ストレージクラスタ120−1は新しい参照を書き込み得ない。
DeleteまたはACKメッセージが存在するかどうかが判断される(ブロック830)。DeleteまたはACKメッセージが存在する場合(ブロック830−YES)、別のストレージクラスタ内のレプリカがフェイルオーバーとして用いられ得る(ブロック840)。たとえば、オブジェクトメタデータ内において「Delete:01:ReqID」メッセージをストレージクラスタ120−1が特定した場合、メッセージは、オブジェクトに対する新しい参照の書込からストレージクラスタ120−1を有効にロックアウトする。したがって、ストレージクラスタ120−1内のオブジェクトに対する参照の書込要求は別のストレージクラスタ(たとえばストレージクラスタ120−2)に転送される。
DeleteまたはACKメッセージが存在しない場合(ブロック830−NO)、オブジェクトに対して新しい参照が書き込まれ得る(ブロック850)。たとえば、ストレージクラスタ120−1は、活動中のオブジェクトに対して単に要求された参照を書き込む。
事例
図9は、ここで説明される実施例に従う例示の削除ネゴシエーションの一部を実行する例示のネットワークを提供する。ガーベッジコレクションアルゴリズムは各々のストレージクラスタXX,YYおよびZZにおいて周期的に実行し、ストレージクラスタ内の全てのオブジェクトをスキャンし得る。メッセージ(たとえばDelete、ACK、NACK、GotAll)は、1つのクラスタ(たとえばストレージクラスタYY)内のオブジェクトのメタデータに対してガーベッジコレクタによって書き込まれ、かつ、オブジェクトのレプリカを含む全ての別のクラスタ(たとえばストレージクラスタXXおよびZZ)に対して複製され得る。
ここで説明される原則に一致するガイドラインを用いて、ガベッジコレクタによって用いられるガーベッジコレクションアルゴリズムは作動し得る。参照を有さないオブジェクトにストレージクラスタYY内のガーベッジコレクタのスキャンが遭遇し、かつ、継続中のネゴシエーションが無い(たとえば、Delete:YY:ReqIDメッセージが無い)場合、ストレージクラスタYY内のガーベッジコレクタは、固有のReqID(たとえば、22222)の生成し、オブジェクトのメタデータに対して「Delete:YY:22222」を書き込むことができる。ストレージクラスタXX内のガーベッジコレクタのスキャンが、別のレプリカからの(たとえば、ストレージクラスタYYからの)削除ネゴシエーション(たとえば、Delete:YY:22222)に初めて遭遇する場合、オブジェクトが参照を有しないか、そうでなければ「NACK:XX:22222」を有すると、ガーベッジコレクタは、「ACK:XX:22222」を書き込む。ストレージクラスタXXは、未処理のDelete:XX:ReqIDまたはACK:XX:ReqIDメッセージを有するオブジェクトに対して新しい参照を不可することができない。ストレージクラスタXX内のガーベッジコレクタのスキャンが、全ての別のレプリカからのDelete:YY:22222およびACK:*:22222に初めて遭遇する場合、ガーベッジコレクタは、GotAll:XX:22222を書き込み得る。この場合、ストレージクラスタXXは、イニシエータではない。ストレージクラスタYYのガーベッジコレクタのスキャンが、全ての別のレプリカからのDelete:YY:22222およびGotAll:*:22222に遭遇した場合、オブジェクトおよびメタデータが削除される。(ストレージクラスタYYは、成功したネゴシエーションのイニシエータである)。ストレージクラスYY内のガーベッジコレクタのスキャンが、別のレプリカからのDelete:YY:22222、ACK:XX:22222およびNACK:ZZ:22222に遭遇すると、少なくとも1つのNACKメッセージがあるので、ReqIDに対応する全てのDelete、ACKおよびNACKメッセージは、オブジェクトのメタデータから削除される。この場合、ストレージクラスタYYは、失敗したネゴシエータのイニシエータである。
図9のシステムにおいて、ストレージクラスタXX,YYおよびZZは、各々、オブジェクトメタデータのレプリカを記憶するように設計され得る。図9は、オブジェクト「オブジェクト1」のメタデータのレプリカ(「メタデータ1A」)を示す。メタデータ1Aは、ストレージクラスタXXに送られた、ストレージクラスタYYにより起動された削除ネゴシエーションを含む。応答において、ストレージクラスタXXは、オブジェクトメタデータに対して返信メッセージを付加し、ストレージクラスタYYにメタデータレプリカ(「メタデータ1B」)を送り得る。図9のファイルシステムにおいて、メタデータ1Aおよびメタデータ1Bは、ストレージクラスタZZ(図示せず)に対しても複製され得る。ストレージクラスタXX,YYおよびZZ間で送られる後のメタデータレプリカ(図示せず)は、オブジェクト1を削除するかあるいはオブジェクト1を放置する、ならびに、ストレージクラスタYYによって起動されたネゴシエーションに関連するメッセージを削除するということに、分散型コンセンサスが合意するため、オブジェクト1のメタデータ内に付加的なネゴシエーションメッセージを含み得る。
ここで説明されるシステムおよび/または方法のアプリケーションは、活動中のレプリカを有するオブジェクトが削除されずに、常時利用可能であり得るように、プロトコル可用性補償を提供することができる。たとえば、さらに図9を参照して、ストレージクラスタXX内のオブジェクト1の活動中のレプリカがある場合、オブジェクト削除ネゴシエーションは、ストレージクラスタXXによって肯定応答されず、したがって、オブジェクト1は削除されない。また、ストレージクラスタYYによって起動された削除ネゴシエーションが進行中である場合、ストレージクラスタYY内のクローン要求(たとえば、新しいオブジェクト参照を生成する要求)が、フェイルオーバ(たとえば、自動切換)を通して、ストレージクラスタXX内のオブジェクト1の活動中のレプリカに引き継がれる。
ここで説明されるシステム及および/または方法のアプリケーションは、プロトコルライブネス補償を提供し得る。たとえば、任意の起動された削除ネゴシエーション要求Delete:XX:ReqIDに対して、ストレージクラスタYY内のガーベッジコレクタのスキャンプロセスは、最終的には、ACK:YY:ReqIDまたはNACK:YY:ReqIDを書込み、ストレージクラスタXX内のネゴシエーションプロセスは、全てのこれらのACKおよび/またはNACKが複製されたときにYesまたはNoの判断を下して終了する。そして、判断が肯定であって、下層の複製層を介して別のストレージクラスタYYおよびZZに伝搬するストレージクラスタXXによる実際の削除を最終的に引き起こす場合に、ストレージクラスタの全てによってオブジェクトのメタデータに対してGotAll:*:ReqIDが書き込まれ得る。活動中のレプリカが、たとえばストレージクラスタZZ内に存在する場合、判断は否定であり、イニシエータ(たとえばストレージクラスタXX)は、ネゴシエーションメッセージを削除することによってオブジェクトのメタデータが浄化される。浄化されたメタデータは、最終的には、ACKを書き込んだ全てのストレージクラスタに伝搬され、そこでオブジェクトが利用可能になる。
ここで説明されるシステムおよび/方法のアプリケーションは、オブジェクトが削除された後で、ファントム参照が再出現できないことの補償も提供できる。たとえば、オブジェクト1が、XXにおいて最初に削除されたと想定する。ガーベッジコレクションアルゴリズムに基づき、別のストレージクラスタからのGotAll:*:ReqIDが、削除が行なわれる前にストレージクラスタXXに対して複製されていなければならない。この推論によって、さらに別のストレージクラスタZZから複製されたファントム参照から、ストレージクラスタYY域の全ての複製データが浄化される。これは、別のストレージクラスタ、特にストレージクラスタZZからの全てのACKが受け取られたときに、ストレージクラスタYYがGotAll:YY:ReqIDを書き込む一方で、ACK:ZZ:ReqIDが書き込まれた後ではストレージクラスタZZに新たな参照を付加することができず、かつ、このときにはストレージクラスタZZ内に活動中の参照がなかったということに起因する。なお、ACK:YY:ReqIDが書き込まれた後であって、ACK:ZZ:ReqIDが複製される前にはストレージクラスタYYにストレージクラスタZZから参照がまだ複製され得るが、単一のレプリカに対する書込みの順番を複製層が遵守するので、ACK:ZZ:ReqIDがストレージクラスタYYに複製される時までに、すべてのそのような参照が削除される。
ここに説明されるシステムおよび/または方法のアプリケーションは、さらに、ノープロトコルガーベッジ補償を提供することができる。たとえば、削除ネゴシエーションが失敗すると、イニシエータは、Delete、ACKおよびNACKネゴシエーションメッセージを削除し、複製を介して別のオブジェクトレプリカに削除が伝搬する。イニシエータにより削除される前にイニシエータによって全ての関連するメッセージが受け取られなければならないようにアルゴリズムが構成されているため、ガーベッジは残らない。
結論
ここで説明されたシステムおよび/または方法は、複製ストレージクラスタに対して、可用性、ライブネスおよび一貫性保証を与える非同期式分散ガーベッジコレクションアルゴリズムを提供し得る。アルゴリズムは、異なるクラスタ間でメッセージを移送するために下層の複製層を用いる。各削除ネゴシエーションはクラスタのうちの1つにおけるガーベッジコレクタロジックによって起動され、固有の識別子を有する。アルゴリズムは、複数の同時ネゴシエーションをサポートする。オブジェクトは、分散型コンセンサスが合意したときにイニシエータによって削除され得、そうでなければネゴシエーションは無効であり得る。
実施例の前述の説明は、解説と説明を提供するが、完全なものであることや開示された形式通りに発明を限定することを意図するものではない。上記の教示を踏まえて修正および変更が可能であり、または発明の実施から理解される。
たとえば、別の実施例において、異なるストレージクラスタにおけるガーベッジコレクタが、複製層を用いずに、直接通信するガーベッジコレクションアルゴリズムの同期式バージョンが用いられ得る。また、図6および7に関して一連のブロックが説明されたが、別の実施例においてブロックの順番を変更してもよい。さらに、非従属のブロックが平行的に実行され得る。
ここで説明されるように、実施の形態が、図において記載された実施例においてソフトウェア、ファームウェアおよびハードウェアの多くの異なる形式で実現され得ることが明らかである。ここで説明された実施の形態を実現するために用いられる実際のソフトウェアコードまたは専用の制御ハードウェアは発明を限定するものではない。したがって、実施の形態の作動および挙動は特定のソフトウェアコードを参照することなしに説明された。ソフトウェアおよび制御ハードウェアはここでの説明に基づく実施の形態を実現するために設計され得ることが理解される。
さらに、ここで説明されたある実施例は1つ以上の機能を実行する「ロジック」として実現され得る。このロジックは、プロセッサ、マイクロプロセッサなどのハードウェア、アプリケーション特有の集積回路、または、フィールドプログラマブルゲートアレイ、あるいはハードウェアとソフトウェアとの組合せ(たとえばソフトウェア、プロセッサにより実行されるソフトウェア)。
この明細書において用いられるときの「含む」という用語は、述べられた特徴、整数、ステップ、または構成要素が存在することを特定するものとされるが、1つ以上の別の特徴、整数、ステップ、構成要素またはそれらの組の存在または付加を妨げるものではない。
特許請求の範囲および/または明細書中の開示において特定の特徴の組合せが記載されているが、これらの組合せは、発明の開示を限定することを意図するものではない。実際に、特許請求の範囲および/または明細書中の開示において具体的には記載されていない方法で、これらの特徴の多くが組み合わせられ得る。
本明細書の説明において用いられる要素、動作、または命令は、明確に記載されない限り、発明にとって重要であり不可欠なものとして解釈されるべきではない。また、ここで用いられるように、「ある」という冠詞は1つ以上の品目を含む。1つだけの品目が意図される場合、「1つ」という用語または類似の言葉が用いられる。さらに、「基づく」という表現は、ここで用いられるように、明確に述べられない限り、「少なくとも部分的に基づく」ことが意図される。

Claims (24)

  1. 分散型データ複製システムにおける複数の装置のうちの装置によって実行される方法であって、
    前記分散型データ複製システムを用いて少なくとも1つ以上が複製されるオブジェクトを、データストアに記憶するステップと、
    前記データストア内の前記オブジェクトのスキャンを実行するステップと、
    前記オブジェクトのうちの1つを、前記オブジェクトを指し示す参照を有さないものとして特定するステップと、
    前記1つの前記オブジェクトに関連付けられたメタデータとして、削除ネゴシエーションメッセージを記憶するステップと、
    前記複数の装置のうちの1つ以上の別の装置に、前記削除ネゴシエーションメッセージを有する前記メタデータを複製するステップとを備える、方法。
  2. 前記分散型マルチマスタデータ複製システムの下層複製層を用いて、前記削除ネゴシエーションメッセージを有する前記メタデータが複製される、請求項1に記載の方法。
  3. 前記別の1つのオブジェクトに関連付けられたメタデータにおいて別の削除ネゴシエーションメッセージを有するものとして、前記オブジェクトの別の1つを特定するステップをさらに備える、請求項1に記載の方法。
  4. 前記別の1つの前記オブジェクトに関連付けられたメタデータとしての前記別の削除ネゴシエーションメッセージに対する応答、否定応答または確証のうちの1つを記憶するステップと、
    前記複数の装置のうちの1つ以上の装置に、前記削除ネゴシエーションメッセージに対する前記応答または前記否定応答を有する前記別の1つの前記オブジェクトのメタデータを複製するステップとをさらに備える、請求項3に記載の方法。
  5. 別の削除ネゴシエーションメッセージが失敗したネゴシエーションを示す場合、前記オブジェクトメタデータから前記ネゴシエーションメッセージを削除するステップをさらに備える、請求項3に記載の方法。
  6. 別の削除ネゴシエーションメッセージが成功したネゴシエーションを示す場合、前記オブジェクトを削除するステップをさらに備える、請求項3に記載の方法。
  7. 前記削除ネゴシエーションメッセージを記憶するステップは、ネゴシエーションメッセージインジケータ、ストレージクラスタ識別子、および固有のネゴシエーション要求識別子を書き込むステップを含む、請求項1に記載の方法。
  8. 前記削除ネゴシエーションメッセージを有する前記オブジェクトの前記1つには、新しい参照を付与できない、請求項1に記載の方法。
  9. 分散型データ複製システムにおける複数の装置のうちの装置であって、
    前記オブジェクトに関連付けられたネゴシエーションメッセージを有するものとして、データストア内のオブジェクトを特定するための手段と、
    前記オブジェクトの状態に基づく新しいネゴシエーションメッセージを、前記オブジェクトに関連付けるための手段と、
    ストレージクラスタに前記新しいネゴシエーションメッセージを複製するための手段と、
    前記オブジェクトのレプリカに関連付けられた別のネゴシエーションメッセージを受け取るための手段と、
    前記別のネゴシエーションメッセージが成功したネゴシエーションを示す場合、前記オブジェクトを削除するための手段とを備える、装置。
  10. 前記別のネゴシエーションメッセージが失敗したネゴシエーションを示す場合、前記新しいネゴシエーションメッセージと前記別のネゴシエーションメッセージとを削除するための手段をさらに備える、請求項9に記載のシステム。
  11. 命令およびデータストアを記憶するメモリと、
    前記データストア内のオブジェクトが参照を有するか否か、ならびに削除ネゴシエーションメッセージが前記オブジェクトに関連付けられているか否かに関する、前記オブジェクトの状態を特定し、
    前記オブジェクトの前記状態に基づいて前記オブジェクトメタデータに新しいネゴシエーションメッセージを書込み、
    前記新しいネゴシエーションメッセージを有する前記メタデータを1つ以上の装置に複製し、前記1つ以上の装置のうちの1つから、前記オブジェクトに関連付けられた別のネゴシエーションメッセージを受け取るために、前記メモリ内の前記命令を実行するプロセッサとを備え、
    前記新しいネゴシエーションメッセージおよび前記別のネゴシエーションメッセージは、前記オブジェクトの削除ネゴシエーションに対するコンセンサスを提供する、システム。
  12. 前記新しいネゴシエーションメッセージおよび前記別のネゴシエーションメッセージは、前記オブジェクトに関連付けられたメタデータに埋め込まれ、前記ネゴシエーションメッセージは、分散型マルチマスタデータ複製環境における複製層を用いて交換される、請求項11に記載のシステム。
  13. 前記プロセッサは、さらに、前記端末状態が失敗した削除ネゴシエーションを示す場合、前記オブジェクトメタデータから前記新しいネゴシエーションメッセージを削除するように構成される、請求項12に記載のシステム。
  14. 前記プロセッサは、さらに、前記端末状態が成功した削除ネゴシエーションを示す場合、前記オブジェクトを削除するように構成される、請求項12に記載のシステム。
  15. 前記新しいネゴシエーションメッセージは、
    ネゴシエーションメッセージインジケータと、
    ストレージクラスタ識別子と、
    固有のネゴシエーション要求識別子とを備える、請求項11に記載のシステム。
  16. 前記ネゴシエーションメッセージインジケータは、
    削除ネゴシエーションを起動するための削除インジケータ、
    前記削除ネゴシエーションに対する肯定応答を提供するための応答インジケータ、
    前記削除ネゴシエーションに対する否定応答を提供するための否定応答インジケータ、または、
    別のストレージクラスタから応答が受け取られたことの確証を与えるための同期インジケータのうちの1つを含む、請求項15に記載のシステム。
  17. 分散型マルチマスタデータ複製システム内のストレージクラスタ間で、1つ以上の削除ネゴシエーションメッセージを交換するステップを備え、各々の前記削除ネゴシエーションメッセージは、前記ネゴシエーションメッセージの対象であるオブジェクトのメタデータ内に含まれ、前記削除ネゴシエーションメッセージは、前記分散型マルチマスタデータ複製システムの複製層を用いて前記ストレージクラスタ間で送られ、さらに、
    前記1つ以上の削除ネゴシエーションメッセージに基づいて、前記ストレージクラスタ間において、分散型コンセンサスが合意すると、前記オブジェクトを削除するステップを備える、方法。
  18. 前記削除ネゴシエーションメッセージの各々は、
    ネゴシエーションメッセージインジケータと、
    ストレージクラスタ識別子と、
    固有のネゴシエーション要求識別子とを含む、請求項17に記載の方法。
  19. 前記ネゴシエーションメッセージインジケータは、
    削除ネゴシエーションを起動するための削除インジケータと、
    前記削除ネゴシエーションに対して肯定応答を提供するための応答インジケータと、
    前記削除ネゴシエーションに対して否定応答を提供するための否定応答インジケータと、
    別のストレージクラスタから応答が受け取られたことの確証を提供するための同期インジケータとを含む、請求項17に記載の方法。
  20. 前記削除インジケータまたは前記応答インジケータは、前記削除インジケータまたは前記応答インジケータを起動した前記ストレージクラスタが前記オブジェクトに対して新しい参照を加えることを不可能にする、請求項19に記載の方法。
  21. コンピュータ実行可能命令を備えるコンピュータ読取可能メモリであって、
    データストア内のオブジェクトが参照を有するか否か、ならびに削除ネゴシエーションメッセージが前記オブジェクトに関連付けられているか否かに関する、前記オブジェクトの状態を特定するための1つ以上の命令と、
    前記オブジェクトの前記状態に基づいて、前記オブジェクトのメタデータに、前記オブジェクトに関連付けられた新しいネゴシエーションメッセージを書込むための1つ以上の命令と、
    前記新しいネゴシエーションメッセージを有する前記オブジェクトメタデータをストレージクラスタに複製するための1つ以上の命令と、
    1つ以上の別の装置から、前記オブジェクトに関連付けられた別のネゴシエーションメッセージを受け取るための1つ以上の命令と、
    前記オブジェクトに関連付けられた前記別のネゴシエーションメッセージに基づいて、前記オブジェクトの削除ネゴシエーションに対するコンセンサスを判定するための1つ以上の命令とを備える、コンピュータ読取可能メモリ。
  22. 前記コンセンサスが、失敗したネゴシエーションを示す場合、前記新しいネゴシエーションメッセージおよび前記別のネゴシエーションメッセージを削除するための1つ以上の命令と、
    前記コンセンサスが、成功したネゴシエーションを示す場合、前記オブジェクトを削除するための1つ以上の命令とをさらに備える、請求項21に記載のコンピュータ読取可能メモリ。
  23. 前記新しいネゴシエーションメッセージおよび前記別のネゴシエーションメッセージの書込み順序の忠実性を維持するための1つ以上の命令をさらに備える、請求項21に記載のコンピュータ読取可能メモリ。
  24. 前記削除ネゴシエーションメッセージが起動された後は、前記オブジェクトへの新しい参照の付加を不可能にするための1つ以上の命令をさらに備える、請求項21に記載のコンピュータ読取可能メモリ。
JP2011542575A 2008-12-22 2009-12-22 複製ストレージクラスタのための非同期式分散ガーベッジコレクション Active JP5479490B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13985308P 2008-12-22 2008-12-22
US61/139,853 2008-12-22
PCT/US2009/069228 WO2010075401A2 (en) 2008-12-22 2009-12-22 Asynchronous distributed garbage collection for replicated storage clusters

Publications (2)

Publication Number Publication Date
JP2012513639A true JP2012513639A (ja) 2012-06-14
JP5479490B2 JP5479490B2 (ja) 2014-04-23

Family

ID=42267618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011542575A Active JP5479490B2 (ja) 2008-12-22 2009-12-22 複製ストレージクラスタのための非同期式分散ガーベッジコレクション

Country Status (9)

Country Link
US (2) US8346820B2 (ja)
EP (1) EP2380101B1 (ja)
JP (1) JP5479490B2 (ja)
CN (1) CN102317939B (ja)
AU (1) AU2009330067B2 (ja)
BR (1) BRPI0922542B1 (ja)
CA (1) CA2747786C (ja)
DE (1) DE202009019149U1 (ja)
WO (1) WO2010075401A2 (ja)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930331B2 (en) 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
US8429194B2 (en) 2008-09-15 2013-04-23 Palantir Technologies, Inc. Document-based workflows
WO2010075401A2 (en) 2008-12-22 2010-07-01 Google Inc. Asynchronous distributed garbage collection for replicated storage clusters
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US9280532B2 (en) 2011-08-02 2016-03-08 Palantir Technologies, Inc. System and method for accessing rich objects via spreadsheets
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US8719417B1 (en) * 2011-10-14 2014-05-06 Google Inc. Resource allocation in distributed systems
US9378526B2 (en) * 2012-03-02 2016-06-28 Palantir Technologies, Inc. System and method for accessing data objects via remote references
CN102722445B (zh) * 2012-06-06 2015-03-25 北京航空航天大学 一种内存垃圾收集器中对象状态的阶段式跟踪记录方法
US8898410B1 (en) 2013-02-20 2014-11-25 Google Inc. Efficient garbage collection in a data storage device
US8855999B1 (en) 2013-03-15 2014-10-07 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US10275778B1 (en) 2013-03-15 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
US9230280B1 (en) 2013-03-15 2016-01-05 Palantir Technologies Inc. Clustering data based on indications of financial malfeasance
US8903717B2 (en) 2013-03-15 2014-12-02 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US8930897B2 (en) 2013-03-15 2015-01-06 Palantir Technologies Inc. Data integration tool
US9600558B2 (en) 2013-06-25 2017-03-21 Google Inc. Grouping of objects in a distributed storage system based on journals and placement policies
US9158472B2 (en) 2013-06-25 2015-10-13 Google Inc. Hierarchical chunking of objects in a distributed storage system
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
WO2015065369A1 (en) * 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Asynchronous garbage collection in a distributed database system
US9396202B1 (en) 2013-12-27 2016-07-19 Google Inc. Weakly synchronized garbage collection and compaction for aggregated, replicated object stores
US9043696B1 (en) 2014-01-03 2015-05-26 Palantir Technologies Inc. Systems and methods for visual definition of data associations
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9419992B2 (en) 2014-08-13 2016-08-16 Palantir Technologies Inc. Unwanted tunneling alert system
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10031934B2 (en) 2014-09-30 2018-07-24 International Business Machines Corporation Deleting tuples using separate transaction identifier storage
US10255304B2 (en) 2014-09-30 2019-04-09 International Business Machines Corporation Removal of garbage data from a database
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US10452651B1 (en) 2014-12-23 2019-10-22 Palantir Technologies Inc. Searching charts
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US9672257B2 (en) 2015-06-05 2017-06-06 Palantir Technologies Inc. Time-series data storage and processing database system
US9384203B1 (en) 2015-06-09 2016-07-05 Palantir Technologies Inc. Systems and methods for indexing and aggregating data records
US9407652B1 (en) 2015-06-26 2016-08-02 Palantir Technologies Inc. Network anomaly detection
US10650024B2 (en) 2015-07-30 2020-05-12 Google Llc System and method of replicating data in a distributed system
US9537880B1 (en) 2015-08-19 2017-01-03 Palantir Technologies Inc. Anomalous network monitoring, user behavior detection and database system
US10402385B1 (en) 2015-08-27 2019-09-03 Palantir Technologies Inc. Database live reindex
US9454564B1 (en) 2015-09-09 2016-09-27 Palantir Technologies Inc. Data integrity checks
JP6457364B2 (ja) 2015-09-11 2019-01-23 東芝メモリ株式会社 メモリシステム
US10044745B1 (en) 2015-10-12 2018-08-07 Palantir Technologies, Inc. Systems for computer network security risk assessment including user compromise analysis associated with a network of devices
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US9753935B1 (en) 2016-08-02 2017-09-05 Palantir Technologies Inc. Time-series data storage and processing database system
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10884875B2 (en) 2016-12-15 2021-01-05 Palantir Technologies Inc. Incremental backup of computer data files
US10223099B2 (en) 2016-12-21 2019-03-05 Palantir Technologies Inc. Systems and methods for peer-to-peer build sharing
US10289529B2 (en) 2017-01-26 2019-05-14 International Business Machines Corporation Testing a guarded storage facility
US10459631B2 (en) 2017-03-28 2019-10-29 Nicira, Inc. Managing deletion of logical objects of a managed system
US10896097B1 (en) 2017-05-25 2021-01-19 Palantir Technologies Inc. Approaches for backup and restoration of integrated databases
GB201708818D0 (en) 2017-06-02 2017-07-19 Palantir Technologies Inc Systems and methods for retrieving and processing data
US10248562B2 (en) 2017-06-30 2019-04-02 Microsoft Technology Licensing, Llc Cost-based garbage collection scheduling in a distributed storage environment
US10241716B2 (en) 2017-06-30 2019-03-26 Microsoft Technology Licensing, Llc Global occupancy aggregator for global garbage collection scheduling
US11334552B2 (en) 2017-07-31 2022-05-17 Palantir Technologies Inc. Lightweight redundancy tool for performing transactions
US10417224B2 (en) 2017-08-14 2019-09-17 Palantir Technologies Inc. Time series database processing system
US10216695B1 (en) 2017-09-21 2019-02-26 Palantir Technologies Inc. Database system for time series data storage, processing, and analysis
US10614069B2 (en) 2017-12-01 2020-04-07 Palantir Technologies Inc. Workflow driven database partitioning
US11281726B2 (en) 2017-12-01 2022-03-22 Palantir Technologies Inc. System and methods for faster processor comparisons of visual graph features
US11016986B2 (en) 2017-12-04 2021-05-25 Palantir Technologies Inc. Query-based time-series data display and processing system
CN108415986B (zh) * 2018-02-11 2020-10-30 杭州朗和科技有限公司 一种数据处理方法、装置、系统、介质和计算设备
US20190303035A1 (en) * 2018-03-27 2019-10-03 EMC IP Holding Company LLC Copying garbage collector for geographically distributed data storage environment
GB201807534D0 (en) 2018-05-09 2018-06-20 Palantir Technologies Inc Systems and methods for indexing and searching
US11048430B2 (en) 2019-04-12 2021-06-29 Netapp, Inc. Object store mirroring where during resync of two storage bucket, objects are transmitted to each of the two storage bucket
US11481319B2 (en) * 2020-05-22 2022-10-25 Vmware, Inc. Using data mirroring across multiple regions to reduce the likelihood of losing objects maintained in cloud object storage
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132563A (ja) * 2000-10-25 2002-05-10 Hitachi Ltd 分散型計算機システムにおける重複配置複製データの複製方式
JP2004289843A (ja) * 2003-03-24 2004-10-14 Sensormatic Electronics Corp ビデオシステムにおいてデータを通信するシステムおよび方法
JP2005504455A (ja) * 2001-04-25 2005-02-10 インフォトーン コミュニケイションズ コーポレイション 適応マルチプロトコル通信システム
JP2006185041A (ja) * 2004-12-27 2006-07-13 Matsushita Electric Ind Co Ltd コンテンツ分散配置システム、端末及びコンテンツ分散配置システムの動作方法
WO2007067480A1 (en) * 2005-12-05 2007-06-14 Microsoft Corporation Resource freshness and replication
JP2007199920A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd ストレージ装置及びその制御方法
WO2008005212A2 (en) * 2006-06-29 2008-01-10 Network Appliance, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
JP2008158661A (ja) * 2006-12-21 2008-07-10 Hitachi Ltd アクセス制御方法、アクセス制御装置、及びアクセス制御プログラム
WO2008115770A1 (en) * 2007-03-22 2008-09-25 Microsoft Corporation Remote data access techniques for portable devices
US20080256143A1 (en) * 2007-04-11 2008-10-16 Data Domain, Inc. Cluster storage using subsegmenting
US20080294696A1 (en) * 2007-05-22 2008-11-27 Yuval Frandzel System and method for on-the-fly elimination of redundant data

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665520A (en) * 1985-02-01 1987-05-12 International Business Machines Corporation Optimistic recovery in a distributed processing system
US5485613A (en) * 1991-08-27 1996-01-16 At&T Corp. Method for automatic memory reclamation for object-oriented systems with real-time constraints
US5446901A (en) * 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
US5852666A (en) * 1996-07-01 1998-12-22 Sun Microsystems, Inc. Capability security for distributed object systems
JP3385957B2 (ja) * 1998-03-04 2003-03-10 日本電気株式会社 分散システム、メモリ管理装置及び方法、並びに記録媒体
US6615383B1 (en) * 1998-05-29 2003-09-02 Sun Microsystems, Inc. System and method for message transmission between network nodes connected by parallel links
US6594698B1 (en) * 1998-09-25 2003-07-15 Ncr Corporation Protocol for dynamic binding of shared resources
US6865657B1 (en) * 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
US6513059B1 (en) * 2000-08-24 2003-01-28 Cambira Corporation Adaptive collaborative intelligent network system
US6839752B1 (en) * 2000-10-27 2005-01-04 International Business Machines Corporation Group data sharing during membership change in clustered computer system
US8364948B2 (en) * 2004-07-02 2013-01-29 Hewlett-Packard Development Company, L.P. System and method for supporting secured communication by an aliased cluster
US7581232B2 (en) * 2005-05-16 2009-08-25 Microsoft Corporation Coordinating reference counting between entities executing within separate address spaces
CN100512293C (zh) * 2005-09-07 2009-07-08 华为技术有限公司 一种会话初始化协议消息体内容处理方法及网络
US7660831B2 (en) * 2007-01-07 2010-02-09 Apple Inc. Synchronization methods and systems
WO2010075401A2 (en) 2008-12-22 2010-07-01 Google Inc. Asynchronous distributed garbage collection for replicated storage clusters

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132563A (ja) * 2000-10-25 2002-05-10 Hitachi Ltd 分散型計算機システムにおける重複配置複製データの複製方式
JP2005504455A (ja) * 2001-04-25 2005-02-10 インフォトーン コミュニケイションズ コーポレイション 適応マルチプロトコル通信システム
JP2004289843A (ja) * 2003-03-24 2004-10-14 Sensormatic Electronics Corp ビデオシステムにおいてデータを通信するシステムおよび方法
JP2006185041A (ja) * 2004-12-27 2006-07-13 Matsushita Electric Ind Co Ltd コンテンツ分散配置システム、端末及びコンテンツ分散配置システムの動作方法
WO2007067480A1 (en) * 2005-12-05 2007-06-14 Microsoft Corporation Resource freshness and replication
JP2007199920A (ja) * 2006-01-25 2007-08-09 Hitachi Ltd ストレージ装置及びその制御方法
WO2008005212A2 (en) * 2006-06-29 2008-01-10 Network Appliance, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
JP2008158661A (ja) * 2006-12-21 2008-07-10 Hitachi Ltd アクセス制御方法、アクセス制御装置、及びアクセス制御プログラム
WO2008115770A1 (en) * 2007-03-22 2008-09-25 Microsoft Corporation Remote data access techniques for portable devices
US20080256143A1 (en) * 2007-04-11 2008-10-16 Data Domain, Inc. Cluster storage using subsegmenting
US20080294696A1 (en) * 2007-05-22 2008-11-27 Yuval Frandzel System and method for on-the-fly elimination of redundant data

Also Published As

Publication number Publication date
US20100161688A1 (en) 2010-06-24
AU2009330067A1 (en) 2011-07-14
CA2747786C (en) 2015-06-09
BRPI0922542B1 (pt) 2020-10-13
US20130124470A1 (en) 2013-05-16
US8346820B2 (en) 2013-01-01
CA2747786A1 (en) 2010-07-01
AU2009330067B2 (en) 2013-05-02
WO2010075401A3 (en) 2010-11-11
DE202009019149U1 (de) 2017-01-30
CN102317939A (zh) 2012-01-11
JP5479490B2 (ja) 2014-04-23
WO2010075401A2 (en) 2010-07-01
CN102317939B (zh) 2014-05-21
EP2380101A2 (en) 2011-10-26
EP2380101B1 (en) 2019-10-30
US9081841B2 (en) 2015-07-14

Similar Documents

Publication Publication Date Title
JP5479490B2 (ja) 複製ストレージクラスタのための非同期式分散ガーベッジコレクション
JP5433074B2 (ja) ストレージクラスタを指定可能な複製されたコンテンツのための非同期的分散オブジェクトアップロード
JP5902222B2 (ja) コンピュータによって実行される方法、分散型記憶システム、および、コンピュータ読取可能な記録媒体
JP5339432B2 (ja) ストレージシステム
JP5516575B2 (ja) データ挿入システム
WO2011027775A1 (ja) 分散ストレージシステム、分散ストレージ方法および分散ストレージ用プログラムとストレージノード
US20080028169A1 (en) Extending non-volatile storage at a computer system
JP2012164343A (ja) データの削除を管理するための方法
CN102938784A (zh) 应用于分布式存储系统中的数据存储方法和系统
US11645333B1 (en) Garbage collection integrated with physical file verification
Al Hubail Data replication and fault tolerance in AsterixDB
Pandey et al. A review on google file system
JP2008097087A (ja) 階層構造オブジェクトのコピー方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130409

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130709

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140212

R150 Certificate of patent or registration of utility model

Ref document number: 5479490

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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