JP2014513849A - 参照カウント伝播 - Google Patents

参照カウント伝播 Download PDF

Info

Publication number
JP2014513849A
JP2014513849A JP2014511416A JP2014511416A JP2014513849A JP 2014513849 A JP2014513849 A JP 2014513849A JP 2014511416 A JP2014511416 A JP 2014511416A JP 2014511416 A JP2014511416 A JP 2014511416A JP 2014513849 A JP2014513849 A JP 2014513849A
Authority
JP
Japan
Prior art keywords
local
node
objects
medium
nodes
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
JP2014511416A
Other languages
English (en)
Other versions
JP5932024B2 (ja
Inventor
ビーバーソン,アーサー・ジェイ
チットラプ,キショア
チェルコウィツ,ジョン・マイケル
マンジャナサ,ソウミャ
Original Assignee
シンプリヴィティ・コーポレーション
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 シンプリヴィティ・コーポレーション filed Critical シンプリヴィティ・コーポレーション
Publication of JP2014513849A publication Critical patent/JP2014513849A/ja
Application granted granted Critical
Publication of JP5932024B2 publication Critical patent/JP5932024B2/ja
Expired - Fee Related 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/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • 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/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

複数のネットワークノードに記憶されたオブジェクトインスタンスを追跡するための方法およびシステムが、提供され、その追跡は、いつオブジェクトがネットワークノードにわたって参照を有さず、安全に割当てを解除され得るかのグローバル判定を可能にする。本発明の一態様によれば、各ノードは、オブジェクトを追跡し、任意選択でそのノードでオブジェクトを記憶するためのローカルオブジェクト記憶装置を有し、そのローカルオブジェクト記憶装置は、そのネットワークにわたってそのオブジェクトのローカルに記憶されたインスタンスを集団で共用する。1つまたは複数のアプリケーション、たとえばファイルシステムおよび/または記憶システムは、オブジェクトとしてそのアプリケーションのすべての永続的データを記憶するためにそのローカルオブジェクト記憶装置を使用する。

Description

[001]本発明は、データオブジェクトの記憶に関し、より詳細には、オブジェクトの参照のグローバルビューを維持しながら、ピアトゥピアネットワーク内の複数のノードで記憶されたオブジェクトを追跡するための方法および装置に関する。
[002]性能または冗長性を目的として、現代の記憶システムは、TCP/IPネットワークなどネットワークと相互接続された、ノードと称される、離散的構成要素から構築され得る。各ノードは、通常は、CPU、記憶装置、メモリなどを有する完全に機能するコンピュータである。そのようなシステム内のノードの編成は、ピアトゥピアネットワークでもよく、これはすべてのノードが同等であることを意味する(すなわち、中央の管理権限は存在せず、どのノードも特権を与えられない)。同等のピアとして、ノードは、それらの間で通信して状態を解決する。記憶システムをピアトゥピアネットワークとして編成することで、ノードは性能および/または容量を徐々に増やすことができ、1つのノードが故障した場合、その記憶システムはまた作動するので、より回復力のあるスケーラブルなストレージ解決策を提供することができる。
[003]単なるコンピュータの集合体とピアトゥピアネットワーク記憶システムを区別するものは、そのシステム内のノードが、下にあるデータ記憶装置、各ノードの健全性などに関して互いに通信するということである。具体的には、そのシステム内のノードは、性能およびデータ完全性を目的として情報を複写および交換することができる。この情報は、データオブジェクトまたはファイルの形でもよく、オブジェクトはファイルの一部でもよい。
[004]オブジェクトがそのシステムを介して伝播されるとき、データ構造体は、a)どこにそれらのオブジェクトがあるかを知っていること、およびb)いつそれらのオブジェクトがもはや必要とされなくなるかを知っていることが必要とされる。オブジェクトが参照カウント、すなわちオブジェクトが別のオブジェクトまたは他のデータ構造体によって参照される回数、を有する、先行技術のシステムでは、オブジェクトは、その参照カウントがゼロまで下がったときに、安全に割当てを解除するまたは削除すること(たとえば、ごみ集め)が可能である。
[005]しかし、毎秒数百万のオブジェクトが渡されているとき、数十億のオブジェクトの参照カウントを追跡することは、単純化したアルゴリズムが使用される場合、受け入れ難いネットワークトラフィックおよびCPUコストをもたらす。
[006]もう1つの課題は、参照カウントが実際にゼロであることを判定し、次いで、すべてのオブジェクトインスタンスが削除され得るようにそれらを発見することである。オブジェクトを追跡してこれらの問題を克服するためのより効率的なおよび高信頼のプロトコルへの継続的なニーズが存在する。
[007]本発明の一態様では、複数のネットワークノードにわたるオブジェクト参照を追跡するためのシステムおよび方法が提供され、オブジェクトはネットワークの1つまたは複数のノードでオブジェクトの1つまたは複数のインスタンス(オブジェクトのインスタンスが同一データを含む)を記憶することによってノードの間で分散される。このネットワークでは、その間に何らかの階層またはマスタ/スレーブ関係、すなわち1つのインスタンスが1次である、または別のインスタンスより特権的である関係が存在するインスタンスとは対照的に、オブジェクトのインスタンスは、すべて同等(ピアトゥピア)でもよい。これらのピアトゥピアインスタンスは、集中型管理エージェントなしで、ネットワークノードによって集合的に管理され得る。本発明の様々な実施形態に従って以下に記載されるように、複数のネットワークノードに記憶されたこれらのオブジェクトインスタンスを追跡するための方法およびシステムが提供され、その追跡は、いつオブジェクトがそのネットワークノードにわたって参照を有さず、安全に割当てを解除することができるかのグローバル判定を可能にする。
[008]本発明の一態様によれば、各ノードは、オブジェクトを追跡し、任意選択でそのノードでオブジェクトを記憶するためのローカルオブジェクト記憶装置を有し、そのローカルオブジェクト記憶装置は、そのネットワークにわたってそのオブジェクトのローカルに記憶されたインスタンスを集合的に共用する。1つまたは複数のアプリケーション、たとえばファイルシステムおよび/または記憶システムは、オブジェクトとしてそのアプリケーションのすべての永続的データを記憶するためのローカルオブジェクト記憶装置を使用する。そのアプリケーションは、記憶された各オブジェクトの参照カウントを必要とすることがあり、その参照カウントはそれぞれのオブジェクトの参照の数を備える。本発明の一態様によれば、オブジェクトのグローバル参照カウントは、それぞれのノードでのオブジェクト名の参照のローカル参照カウントLRC(オブジェクトインスタンスとは対照的な)を各ノードで維持することによって、追跡することができ、LRCの値はそのローカルノード上の参照カウント調整の合計を備え、LRCはローカルオブジェクト記憶装置で記憶されたそのオブジェクトの任意のインスタンスから独立している。インスタンスカウントから参照カウントを分離することによって、本方法は、先行技術の方法に反して、LRCの負の値(符号付きの整数)を可能にする。さらに、本明細書でグローバル参照カウントGRCと称される、複数のノードからのLRCの合計を計算することによって、結果として生じるGRCは、オブジェクトとして永続的データを記憶するためにそのネットワークノードを使用する特定のアプリケーションについて、オブジェクトがそのアプリケーションによってもう参照されないという理由で、そのオブジェクト(そのすべてのインスタンス)の割当てを解除することが安全であるかどうかを判定するために使用することができる。GRCがゼロであると判定された場合におよびその場合にのみ、特定のオブジェクトのオブジェクトインスタンスの割当てを解除することは安全である。
[009]本発明のもう1つの態様によれば、それらのノードのうちの1つまたは複数でのオブジェクトインスタンスの配置は、そのオブジェクトの名とは独立して実行される。オブジェクト名に基づくオブジェクト記憶場所を強制する先行技術の方法に反して、本発明の様々な実施形態では、ノード上のオブジェクトインスタンスの配置は、たとえば、ネットワークもしくはシステム性能またはデータ信頼性に基づき、オブジェクトの実際のまたは意図された使用によって判定され得る。たとえば、ローカルオブジェクト記憶装置は、どのファイルシステム(複数可)が特定のオブジェクトを参照するかを知り、そのオブジェクトを使用するファイルシステム(複数可)に応じてそれらのノードのうちの1つまたは複数でのそのオブジェクトの好ましい配置を判定することができる。本システムは、そのオブジェクトが何か、たとえばそのオブジェクトの名、に応じてノードでのデータオブジェクトの配置を制約する先行技術のシステムよりも大幅に頑強で効率的である。
[010]本発明のもう1つの態様によれば、各ローカルノードは、そのオブジェクトが記憶されたローカルノード上の物理的な場所にオブジェクト名をマップするためのそれ自体のローカル索引を維持する。このマッピング索引は、たとえば、そのオブジェクトインスタンスが記憶されたローカルノード上の1つまたは複数の場所へのポインタを備えることができる。ローカルマッピング索引のエントリは、所与のオブジェクト名について、LRC、および、そのローカルノード上の1つまたは複数の記憶場所へのポインタを含み得る。
[011]本発明の一実施形態によれば、
記憶されたオブジェクトの共用のための複数のネットワークノードにおいて、そのオブジェクトがそのネットワークノードにわたってグローバルに固有の名を有し、そのオブジェクト名は、そのオブジェクトがそのノードでどこに記憶されるかに基づいて変化しないこと、
そのローカルノードで記憶された任意のオブジェクトインスタンスから独立して、オブジェクト名の参照のローカル参照カウントLRCを各ノードで維持するステップであって、そのLRCが符号付きの整数として維持される、ステップ、
オブジェクト名を参照解除(de−referencing)することにより、負のLRC値を生成することができることを含む方法を実行するための実行可能プログラム命令を含む、コンピュータ可読記録媒体が提供される。
[012]一実施形態において、本方法は、
LRCの合計を備えるグローバル参照カウントGRCを判定するステップを含む。
[013]一実施形態で、その判定するステップは、
そのGRCがゼロであると判定されたときに、割当て解除のためのオブジェクトインスタンスを識別するステップを含む。
[014]一実施形態で、その判定するステップは、
オブジェクトが割当てを解除され得るかを判定するためにノード間の最終的一貫性ネットワークプロトコルを実施するステップを含む。
[015]一実施形態で、その判定するステップは、
それらのネットワークノードのうちの1つのノードにある範囲のオブジェクト識別子の所有権を割り当てるステップであって、その1つのノードがその範囲のすべてまたは1サブセットについてその判定するステップを開始する、ステップを含む。
[016]一実施形態で、本方法のステップは、
各ノードでローカルオブジェクト記憶装置を維持するステップであって、そのローカルオブジェクト記憶装置が、グローバルに固有のオブジェクト名の名前空間を集合的に備える、ステップを含む。
[017]一実施形態において、本方法は、
そのローカルオブジェクト記憶装置が、オブジェクト名のローカルマッピング索引、LRC、および、そのオブジェクトがそのローカルノードで記憶された任意の物理オブジェクト場所へのポインタを維持することを含む。
[018]一実施形態において、本方法は、
各オブジェクトが、そのオブジェクト名としてそのオブジェクトの内容から導出されたオブジェクトフィンガープリントを有することを含む。
[019]一実施形態において、本方法は、
そのフィンガープリントが、そのオブジェクト内容のハッシュを備えることを含む。
[020]一実施形態において、本方法は、
ファイルシステムのすべての永続的データを記憶するための方法として集合的にピアトゥピアネットワーク記憶システム内のそれらのノードのうちの1つまたは複数でそれらのオブジェクト記憶装置を使用する、ファイルシステムを含む。
[021]一実施形態において、本方法は、
− すべてのファイルシステムデータ、メタデータおよびファイルが、そのオブジェクト記憶装置(複数可)のオブジェクトを備え、各オブジェクトがそのオブジェクト名としてオブジェクトフィンガープリントを有することと、
− ファイルシステムオブジェクトの集合体がまた、そのオブジェクト記憶装置(複数可)のオブジェクトを備え、各集合体が複数のそのファイルシステムオブジェクトのマッピングを備え、その集合体の内容から導出されたそれ自体のオブジェクトフィンガープリントを有し、その中でその集合体の1つまたは複数のオブジェクトへの変更がその集合体オブジェクトフィンガープリントを変更することと、
− その名前空間ファイルシステム内のあらゆるオブジェクトがそのルートオブジェクトを介してアクセス可能であるような、ルートオブジェクトフィンガープリントを有する、ファイルシステムルートオブジェクトとを含む。
[022]一実施形態において、本方法は、
そのオブジェクト名とは独立してオブジェクトの1つまたは複数のインスタンスを記憶するための場所(複数可)としてそれらのノードのうちの1つまたは複数を、ネットワークまたはシステム性能または信頼性に基づき、選択するステップを含む。
[023]一実施形態において、本方法は、
その記憶されたオブジェクトの共用が、オブジェクト名、LRCおよび記憶されたオブジェクトの場所に関してノード間で通信するステップを備えることを含む。
[024]一実施形態において、本方法は、
アプリケーションがオブジェクト名を参照解除(de−references)し、そのオブジェクトのインスタンスがローカルオブジェクト記憶装置で記憶されていないときに、そのローカルオブジェクト記憶装置がマイナス1のLRCを生成することを含む。
[025]一実施形態において、本方法は、
その記憶システムのすべての永続的データを記憶するための方法として集合的にピアトゥピアネットワーク記憶システム内のノードのうちの1つまたは複数でオブジェクト記憶装置を使用する、記憶システムを含む。
[026]本発明のもう1つの実施形態によれば、
オブジェクトがネットワークノードにわたってグローバルに固有の名を有し、各ノードがローカルノード上のオブジェクトを命名および記憶するためのローカルオブジェクト記憶装置を有し、そのローカルオブジェクト記憶装置がそれらのオブジェクトを共用する、複数のネットワークノードで動作する分散ピアトゥピア記憶システム内のデータオブジェクトの参照を追跡する方法
を実行するための実行可能命令を含む、コンピュータ可読記録媒体が提供され、
その方法は、
複数のローカルノードの各々で、そのローカルノードでデータオブジェクトのインスタンスを記憶するための1つまたは複数の場所を判定するステップと、
複数のローカルノードの各々で、そのオブジェクト名にそのローカルノード上のその記憶されたインスタンスの1つまたは複数の場所をマップするステップであって、その場所がそのオブジェクト名を変更しない、ステップと、
複数のローカルノードの各々で、オブジェクト名の参照のローカル参照カウントLRCを維持するステップであって、そのLRCの値がそのローカルノード上のそのオブジェクトの参照カウント調整の合計を備え、そのLRCが、その参照されるオブジェクトの任意のインスタンスがそのローカルノードで記憶されたかどうかとは独立している、ステップと
を含む。
[027]本発明のもう1つの実施形態によれば、
複数のネットワークノードについて、各ノードがそれぞれのノードでオブジェクトを記憶するためのローカルオブジェクト記憶装置を有し、そのオブジェクトがそれらのネットワークノードにわたってグローバルに固有の名を有することと、
そのローカルオブジェクト記憶装置が、それらのオブジェクトのうちの1つまたは複数を共用することと、
アプリケーションが、オブジェクトとして永続的データを記憶するためにそのローカルオブジェクト記憶装置を使用し、そのアプリケーションが、それぞれのオブジェクトの参照の数を備えるそれらのネットワークノードで記憶された各オブジェクトの参照カウントを要求することと、
各ノードでそれらのオブジェクト名の参照のローカル参照カウントLRCを維持するステップであって、そのLRCの値がそのローカルノード上の参照カウント調整の合計を備え、そのLRCが、そのLRCの負の値を可能にするために、そのローカルオブジェクト記憶装置で記憶された参照されるオブジェクトの任意のインスタンスから独立している、ステップと、
それらのLRCの合計を備えるグローバル参照カウントGRCを判定するステップとを含む方法を実行するための実行可能プログラム命令を含む、コンピュータ可読記録媒体が提供される。
[028]一実施形態では、
そのアプリケーションは、ファイルシステムまたは記憶システムを備える。
[029]本発明のもう1つの実施形態によれば、
各ノードがそれぞれのノードでオブジェクトを記憶するためのローカルオブジェクト記憶装置を有し、それらのオブジェクトがそのネットワークノードにわたってグローバルに固有の名を有する、複数のネットワークノードと、
それらのオブジェクトのうちの1つまたは複数を共用する、ローカルオブジェクト記憶装置と、
オブジェクトとして永続的データを記憶するためにそれらのローカルオブジェクト記憶装置を使用するアプリケーションであって、それぞれのオブジェクトへの参照の数を備える、そのネットワークノードで記憶された各オブジェクトの参照カウントを必要とする、アプリケーションと、
各ノードでオブジェクト名の参照のローカル参照カウントLRCを維持するための手段であって、そのLRCの値がそのローカルノードでの参照カウント調整の合計を備え、そのLRCが、そのLRCの負の値を可能にするために、そのローカルオブジェクト記憶装置で記憶された参照されるオブジェクトの任意のインスタンスから独立している、手段と、
LRCの合計を備えるグローバル参照カウントGRCを判定するための手段とを備える、装置が提供される。
[030]本発明のもう1つの実施形態によれば、
各ノードがそれぞれのノードでオブジェクトを記憶するためのローカルオブジェクト記憶装置を有し、それらのオブジェクトがそのネットワークノードにわたってグローバルに固有の名を有する、複数のネットワークノードと、
それらのオブジェクトのうちの1つまたは複数を共用する、ローカルオブジェクト記憶装置と、
オブジェクトとして永続的データを記憶するためにそのローカルオブジェクト記憶装置を使用するアプリケーションであって、それぞれのオブジェクトの参照の数を備えるそのネットワークノードで記憶された各オブジェクトの参照カウントを必要とする、アプリケーションと、
各ノードでオブジェクト名の参照のローカル参照カウントLRCを維持するための手段であって、そのLRCの値がそのローカルノードでの参照カウント調整の合計を備え、そのLRCが、そのLRCの負の値を可能にするために、そのローカルオブジェクト記憶装置で記憶された参照されるオブジェクトの任意のインスタンスから独立している、手段と、
ネットワークまたはシステム性能または信頼性に基づき、そのオブジェクト名から独立したオブジェクトインスタンスを記憶するための場所として、それらのローカルオブジェクト記憶装置のうちの1つまたは複数を選択するための手段とを備える、装置が提供される。
[031]本発明のこれらのおよび他の態様が、様々な詳細な実施形態に関して以下により具体的に説明される。
[032]添付の図面は、以下のように、本発明の1つまたは複数の実施形態を説明する。
本発明の一実施形態を実施するための複数のネットワークノードの概略図である。 オブジェクトブローカを介してネットワークと通信するネットワークの1つのノード上のローカルオブジェクト記憶装置の概略図である。 2つのネットワークノードアリスとボブの間のオブジェクトの共用の概略図である。 ノードボブにあるローカルマッピング索引の概略図である。 ネットワークのノードアリスとボブの間のグローバル参照カウント調整の概略図である。 アプリケーションのビューからのオブジェクトの複数の独立した参照を示す、ファイルシステム論理ビューの概略図である。 負の参照カウントが本発明に従って許される、ネットワークの3つのノード上のオブジェクト参照の追跡の一例である。 ローカル参照カウントを維持するためのネットワーク上の2つのノードアリスとボブの間の通信の流れ図である。 それらのネットワークノードにわたって参照カウントおよびインスタンスカウントの両方の調整を実施するための3つのノードアリス、ボブおよびイブの間のネットワーク通信の概略図である。
[033]本発明の一実施形態で、データ記憶システムは、ネットワーク上の複数のノードにわたって分散され、各ノードはそれ自体のローカルオブジェクト記憶装置を有し、そのローカルオブジェクト記憶装置はオブジェクトを共用する。ネットワークノードのこのグループは汎用命名規則に従い、そのネットワークで記憶された各オブジェクトは、そのネットワークにわたってグローバルに固有の名を有する。この実施形態で、それらの複数のノードはピアトゥピアネットワークとして動作し、どのノードも1次ではない。集中命名機関は存在せず、その代わりに、各々のローカルノード上のローカルエージェントが、ノード間の通信を必要とせずに、共通ハッシュアルゴリズムを使用してオブジェクトの名を判定することによって、そのオブジェクト名を独立して判定しそれに合意することができる。強いハッシュアルゴリズムを使用することによって、衝突は回避される。
[034]この実施形態で、それらの複数のローカルオブジェクト記憶装置は、数十億のオブジェクトを管理するものであり、各オブジェクトは小さく、たとえば、長さ4、8、16、32、64、128または256KB(キロバイト)である。そのオブジェクト記憶装置内のオブジェクトは不透明であり、任意の複数のビットを備える。そのオブジェクト記憶装置は、それらのビットの意味的知識を有さず、そうではなくて、ファイルシステム、または別法としてブロック記憶システムなど上位層アプリケーションが、意味的内容(意味)、および、オブジェクト間の関係もしくは参照を定義する。各ローカルオブジェクト記憶装置は、オブジェクトインスタンスがローカルに記憶され得る物理的な場所へのオブジェクト名のマッピングのためのローカル索引(たとえば、物理的な場所へのポインタ)を含む。各ローカルオブジェクト記憶装置はまた、オブジェクト名のローカル参照カウントLRCを維持する。しかし、先行技術とは対照的に、オブジェクト名のローカル参照カウントはオブジェクトインスタンスから分離される(独立している)。そのLRCは、符号付きの整数として維持され、オブジェクトインスタンスのカウントとは対照的にオブジェクト名の参照の累計で構成される。また、そのLRCを際立たせるのは、符号付きの整数としてのその維持であり、それによって負の値を許容することである。各々の新たな参照および参照解除に応じてLRCの調整、すなわち、参照を追加するには+1、そして、参照を削除するには−1、が行われる。
[035]一例では、ファイルシステムアプリケーションは、オブジェクトがそのファイルシステム内で参照された回数を備えるグローバル参照カウントを維持する。ここで、永続的データのファイルシステム記憶が複数のノード上の1つまたは複数のローカルオブジェクト記憶装置で集合的に実施される場合、ファイルシステムビューからのグローバル参照カウントは、それぞれのオブジェクトへのそれらの複数のネットワークノードにわたる参照の数を備える。一実施形態で、そのファイルシステムは、そのファイルシステムおよび記憶システムの両方を含み、そして、NASなどファイル移送プロトコルを使用する、ファイラとして知られる物理デバイスとして、実施することができる。もう1つの実施形態で、ファイルシステムに加えてまたはその代わりに、ブロック記憶サーバは、永続的データオブジェクトを記憶するために、1つまたは複数のノードで集合的にそれらのローカルオブジェクト記憶装置を使用する。そのブロックサーバは、複数の物理記憶ディスクで記憶された仮想ディスクとして現われる物理デバイスであり、iSCSIまたはFCoEなどブロック移送プロトコルを使用する。
[036]オブジェクトインスタンスからローカル参照カウントを分離することによって、そのシステムは、オブジェクト特性に関係なくそれらのローカルノードのうちの任意の1つまたは複数でのオブジェクト(インスタンス)の配置を許す。代わりに、そのローカルノードは、各々、そのローカルノードでの参照カウント調整の履歴(合計)を備えるオブジェクト名の参照のローカルカウントを維持する。これらのローカル参照カウントはもはや、本願によるオブジェクトインスタンスの数には関係せず(たとえば、ファイルシステムまたはブロックサーバ)、したがって、そのローカル参照カウントの値は、負の値(それらがオブジェクトインスタンスの数に関係している場合には可能ではないことになる)でもよい。参照カウントをインスタンスの数と分離することによって、そのオブジェクトは、グローバル参照カウントまたはローカル参照カウントから独立して、ネットワークまたはシステムの性能または信頼性の向上の理由あるいは任意の他の理由でネットワーク上のどこにでも置くことができる。これは、そのオブジェクト名に基づいて配置を限定する、分散ハッシュテーブルおよび他の同様のアルゴリズムなど、オブジェクトの配置のための先行技術のアルゴリズムとは対照的である。その一方、本発明によれば、それらのノードにわたるオブジェクトの要望どおりの多数のインスタンス、あるいは、任意の目的、たとえば、ネットワークトラフィックを減らすため、処理時間を減らすため、またはデータ複製もしくは回復の目的で、要望どおりの少数のインスタンスを作ることができる。
[037]本発明のもう1つの態様によれば、参照カウントからインスタンスの数を分離することによって問題が生じる、すなわち、オブジェクトが安全に削除可能かどうかの判定するためにローカル参照カウントに頼ることがもはや可能ではなくなる。本発明の一実施形態によれば、この問題は、それらのネットワークノードにわたるすべてのローカル参照カウントの合計を備えるグローバル参照カウント(GRC)を計算することによって、解決する。このGRCは、それらのネットワークノードのすべてにわたるオブジェクトへのすべての参照の合計と厳密に等しいことになる。そのGRCがゼロである場合におよびその場合にのみ、オブジェクトは、割当てを解除され得る(たとえば、削除される)。しかし、ローカル参照カウント調整はそのネットワークの他のノードと調整されるので、そのGRCを知ることは困難であり、理想的には、そのシステムは活発に修正される(たとえば、オブジェクトがそれらのローカルノードで読取りおよび書込みされる)間に、GRCを計算することが望まれることになる。
[038]本発明の一実施形態によれば、GRCは、ネットワーク内の異なるノードに対して、グローバル名前空間内のオブジェクト識別子(以下、オブジェクト名)の所有権を割り当てることによって、判定される。そのネットワーク内のすべてのノードがその名前空間の一部を所有する必要はない。しかし、その名前空間全体が、それらのノードのすべてまたはサブセットによってカバーされる必要がある。ある範囲の識別子を所有するノードは、その範囲内の1つまたは複数のオブジェクトのGRC(複数可)の計算、およびオブジェクトのその結果として生じる割当て解除(たとえば、ごみ集め)を開始する。一実施形態によれば、最終的一貫性に基づくネットワークプロトコルが使用され、そこでは、システムがまだ活発に修正されている(たとえば、オブジェクトが読取りまたは書込みされ、オブジェクト参照カウントが修正される)間に、GRCが計算される。以下にさらに詳しく説明するように、所有者ノードは、それについてGRCが判定されることになる1つまたは複数のオブジェクト識別子のタグを提供し、ローカルノードは、このタグを使用してそれぞれのオブジェクトにラベルを付け(そのノード上の活動が継続することを可能にし)、そして、それらのノードは、タグ付けされたメッセージを交換し、すべてのノードがその所有者ノードにそれぞれのオブジェクトについてのそれらのローカル参照カウントを提供し、その所有者ノードがそのローカル参照カウントの合計としてGRCを計算することを可能にする。
[039]同様の方式で、所有者ノードは、インスタンス調整を開始および実行することができ、そこで、その所有者ノードは、各それぞれのノードでオブジェクトのインスタンスの数に関してそれらのローカルノードのすべてからメッセージを受信する。その所有者ノードは、次いで、SLA(サービス内容合意書)および他のメトリクスに従ってそれらのネットワークノードにわたるインスタンスの所望の数および場所を計算し、次いで、オブジェクトインスタンスの所望の追加または削除を実行するようにその他のノードに指示することができる。
[040]本発明のこれらのおよび他の態様が、添付の図面に示された実施形態に関して以下にさらに詳細に説明される。これらの実施形態は、例として提供され、様々な修正形態が当業者には容易に明らかとなろう。したがって、本発明は、開示される実施形態によって限定されるものではない。いくらかの入門資料が背景として含まれ、実施形態のコンテキストを提供する。
[041]図1は、コンピュータネットワーク、ここではピアトゥピアネットワーク10内の複数のネットワークノード12、14、16の概略図である。各ノードはサーバ11a、11b、11cを含み、それらのサーバはネットワーク(クラウド17として示す)によってともに結合され、TCP/IPなど標準通信プロトコルを使用して互いに通信する。サーバ11は、インテルに基づくサーバ(たとえば、IBM3650サーバ)を含むがこれに限定されない任意のタイプのサーバでもよい。
[042]各ノード12、14、16は、ローカル15ユーザのビュー18でローカルノードと称され、サーバ11およびデータ記憶装置13の両方(ここでは複数の記憶ディスクとして示す)を含む。これらのローカル構成要素は、ともに結合され、システムバス20を介して通信する。各サーバは、プロセッサ、メモリ、およびネットワークインターフェースを含むことができ、ディスプレイ、キーボードおよび/またはマウスなどユーザインターフェースデバイスをさらに含み得る。そのネットワークインターフェースは、各サーバをノードのネットワークに結合させる。
[043]グローバルに、それらの複数のネットワークノードは、グローバルネットワーク10と称される。このグローバルネットワークを見るユーザ19は、ネットワークのグローバルビューを有する。本発明の様々な実施形態に従って以下に説明するように、ソフトウェアおよび/またはハードウェアが、本発明の様々なシステムおよび方法の実施形態を実行するために各々のネットワークノードで提供される。
[044]図2は、本発明で使用するためのオブジェクトに基づくファイルシステムの一実施形態を示す。これによりその内容全体を参照によって本願明細書に引用したものとする、2010年6月25日出願のFile system(ファイルシステム)という名称の同時係属および共同所有の米国特許出願第12/823,922号でさらに具体的に説明されるように、コンピュータプログラムおよび/または電子回路製品が、1つまたは複数のコンピュータ記憶装置でファイルを名前付けおよび記憶するために提供される。その製品は、オブジェクト記憶装置72を使用する名前空間ファイルシステム70を実施するための実行可能命令または論理回路を備える。一例では、その名前空間ファイルシステムは、仮想ファイルシステム層とブロック記憶抽象化層の間の記憶スタック内の層である。すべてのファイルシステムデータは、データ、メタデータ、およびファイルを含むオブジェクトを備える。各オブジェクトは、そのオブジェクト名としてオブジェクトフィンガープリントを有し、そのフィンガープリントはそのオブジェクト内容のハッシュである。ファイルシステムオブジェクトの集合体はまた、そのオブジェクト記憶装置のオブジェクトを備え、各集合体は、複数のファイルシステムオブジェクトのマッピングを備え、その集合体の内容から導出されたそれ自体のオブジェクトフィンガープリントを有し、その集合体の1つまたは複数のオブジェクトへの変更がその集合体オブジェクトフィンガープリントを変更する。ファイルシステムルートオブジェクトは、その名前空間ファイルシステム内のあらゆるオブジェクトがそのルートオブジェクトを介してアクセス可能であるような、そのファイルシステム内のすべてのオブジェクトから導出されたオブジェクトフィンガープリントを有する。そのルートオブジェクト内の追跡変更は、ファイルシステム活動の履歴、すなわち、ファイルシステムスナップ、を提供する。ファイルシステムiノード数のマッピングおよびファイルシステムオブジェクトフィンガープリントを備える、iノードマップオブジェクトが提供され、そのファイルシステムをPOSIXに準拠させる。
[045]図2に示すように、米国特許出願第12/823,922号のオブジェクト記憶装置は、本発明に従って修正されて、複数のネットワークノードで機能する。図2は、そのファイルシステムのすべての永続的データオブジェクトを記憶するためのオブジェクト記憶装置72を使用するグローバル名前空間ファイルシステム70を示す。以下にさらに説明するように、名前空間ファイルシステム70は、ここで、図1に示すように、複数のネットワークノード12、14、16にある複数のピアトゥピアローカルオブジェクト記憶装置を使用する。この目的のために、各ローカルノード72aは、ここで、ローカルマッピング索引73と、物理記憶装置(ディスク)74と、ローカルノード12、14、16の間で共用されるオブジェクトの割当ておよび追跡に関する通信を送信/受信するためにネットワーク17とインターフェースをとるオブジェクトブローカ76とを含む。
[046]図3は、本発明の一実施形態による分散オブジェクト記憶装置の動作を概略的に示し、名前空間ファイルシステムは、ネットワークの様々なローカルノードに存在する複数のローカルオブジェクト記憶装置を共用する。図示された実施形態で、第1のローカルノード80はアリスと称され、第2のローカルノード82はボブと称される。ファイルシステムFS81は、ノードアリスと、参照オブジェクトP、QおよびRとに存在する。FSのコピーが、ノードボブにFSルート署名を単に送信することによって、ノードボブで発行され得る(ステップ1)。そのルート署名は、そのファイルシステム内のすべてのオブジェクトに同じく由来するオブジェクトを参照するので、その名前空間ファイルシステム内のあらゆるオブジェクトがそのルートオブジェクトを介してアクセス可能である。したがって、その参照されるオブジェクト(P、Q、R)自体をノードボブに転送する必要はない。ボブでのファイルシステムFSのこの発行は、破線の三角83として示されて、そのファイルシステムルートオブジェクトはノードボブに非破線の円84として記入され、そのルートオブジェクトが現在ノードボブに存在していることを示す。
[047]ノードボブのFSoが続いてオブジェクトPを必要とする場合(ステップ2)、それは、ノードボブのそのローカル索引85を検査し、Pがノードボブに存在しないことを発見することになる。したがって、ノードボブオブジェクトブローカ86は、要求メッセージ90をそのネットワークのその他のノードに送信し、それらがオブジェクトPを有するかを尋ねることになる。この例では、ノードアリスがその要求を受信し、そのローカル索引88を検査し、それは、オブジェクトPがアリスのローカルオブジェクト記憶装置89に存在することを示す。ノードアリスは、Pのインスタンスでノードボブに応答メッセージ91を送信する。オブジェクトPは、ここで、ノードボブのそのローカルオブジェクト記憶装置で記憶され得る。
[048]図4は、分散オブジェクト記憶装置でのオブジェクト共用、さらに具体的には、ローカルノードで維持されるローカル参照カウントLRCがいかにして負の値を有することを許されるかのさらなる例を示す。ここでは再び、オブジェクトP、QおよびRを有するファイルシステムFS81が、ノードアリス80に存在する(ステップ1)。そのコピーが、ノードアリスからノードボブにファイルシステムルートオブジェクトを送信することによって、ノードボブ82に転送される(ステップ2)。ノードボブのローカルユーザ92は、次いで、そのファイルがファイルシステムFSの部分であり、そのファイルがPを偶然含む、ファイルを削除するための命令を提供する(ステップ3)。Pを参照解除することによってこの命令を実施しようと試みて(ステップ4)、ノードボブは、オブジェクトPの参照についてそのローカルオブジェクト記憶装置を検査する。しかし、ノードボブのローカルマッピング索引85は、オブジェクトPについてゼロの参照カウントを示す。オブジェクトPの削除命令を実施するために、そのローカル索引エントリでPの参照カウントは、ゼロ(0)からマイナス1(−1)に、1減らされる。ローカル参照カウントLRCについて負の値を維持するこの能力は、過度のネットワークトラフィックを生成することになる、ネットワークにわたるオブジェクトインスタンスの即時の探索または調整を必要とせずに、グローバルビューで(すなわち、ノードのそのネットワークにわたる)参照値を保存する。そのノードにわたる参照カウント調整、すなわち参照カウントのグローバル計算GRCは、必要があれば、後から実行されて、そのネットワークにわたってオブジェクトPのすべてのインスタンスの割当てを解除すること(たとえば、ごみ集めのために)が適切かを判定することができる。
[049]図5は、グローバル参照カウント判定の一例をさらに示す。本グローバル参照カウント、GRCは、所与のアプリケーションによって参照されるオブジェクトへのそのネットワークノード全体でのすべての参照の合計である。GRCは、その様々なローカルノードで記憶されたすべてのローカル参照カウント、LRC、を合計することによって、判定される。ここでは、GRCを計算するために、時間の所与のインスタンスで、それらのすべてのLRCを知ることが可能であると仮定する。この仮定の下で、図5は、プラス1(+1)のローカル参照カウントを有するオブジェクトP、プラス1(+1)のローカル参照カウントを有するオブジェクトQ、および、プラス3(+3)のローカル参照カウントを有するオブジェクトZのエントリを含む、ノードアリス80のローカルオブジェクト記憶装置索引を示す。ノードボブ82は、プラス1(+1)のローカル参照カウントを有するオブジェクトX、プラス1(+1)のローカル参照カウントを有するオブジェクトY、および、プラス1(+1)のローカル参照カウントを有するオブジェクトZのエントリを有するローカルオブジェクト記憶装置索引を有する。このとき、オブジェクトZのGRCは、プラス3(+3)であるノードアリス上の、およびプラス1(+1)であるノードボブ上の、Zのローカル参照カウントの合計であり、オブジェクトZのGRCはプラス4(+4)である。これは、オブジェクトZへのそのネットワークノード内の参照がまだ存在し、Zは割当てを解除されるべきではないことを示す。オブジェクトZのGRCがゼロである場合にのみ、オブジェクトZの割当てを解除することは安全である。
[050]図6は、ファイルシステム内のオブジェクトへの独立した参照の概念、および、オブジェクト記憶装置102がそのオブジェクトの場所(そのオブジェクトが記憶された)の物理ビューを維持する間に、オブジェクト記憶装置102を使用するファイルシステム100がどのようにそのオブジェクトのファイルシステム論理ビュー(すなわち、そのオブジェクトの内容の知識)を維持するかを示す。図6では、2つの独立した参照が、ツリー構造で示され、そのツリーの最上部またはルートで、スラッシュ(/)は特定のファイルシステムを指示する。そのツリーの最上部のノードの下に、ファイルFOOおよびファイルBARの各々への2つの分岐がある。ファイルFOOの下には、オブジェクトAおよびBへの分岐がある。オブジェクトBARの下には、オブジェクトBおよびQへの分岐がある。この例では、オブジェクトBへの2つの独立した参照が存在し、一方はファイルFOOを介し、もう一方はファイルBARを介する。したがって、そのオブジェクト記憶装置は、オブジェクトBの2の参照カウント(B2)を含む。残りのオブジェクトA、Q、FOO、BARおよび/は、各々、1の参照カウントを有する。
[051]図7は、どのようにして本発明によるオブジェクト参照およびオブジェクトインスタンスの分離が、ノードのネットワークにわたるグローバル参照カウントの判定を可能にしたままで、可能にされ得るかをさらに示す。本発明で、ローカル参照カウント単独では、インスタンスが削除可能かどうかを判定しない。むしろ、前述のように、インスタンスが削除可能かどうかを判定するのは、オブジェクトのすべてのインスタンスの割当てを、(そのオブジェクトへのファイルシステム内の参照がもはや存在しないために)解除することが安全であるかどうかを判定する、すべてのローカル参照カウントを合計することによって取得されるグローバルビューのみである。たとえば、図7は、ネットワークノードアリス80、ボブ82およびイブ94を示す。ファイルFOOは、ノードアリスのローカルオブジェクト記憶装置103内に記憶されたオブジェクトPを含み、ノードアリスの索引はオブジェクトPのプラス1(+1)のローカル参照カウントを有する。ノードボブ82は、そのローカルオブジェクト記憶装置104内に記憶されたオブジェクトPのコピーを有さず、そして、オブジェクトPのローカル参照カウントはマイナス1(−1)である。ノードイブ94は、そのローカルオブジェクト記憶装置105内にオブジェクトPのインスタンスを有さず、オブジェクトPのローカル参照カウントはプラス1(+1)である。したがって、ノードボブおよびノードイブで、オブジェクトPの参照カウントは、それぞれノードボブまたはノードイブに記憶されたインスタンスが存在するかどうかとは関係がない。しかし、オブジェクトPの3つのローカル参照カウントの合計を備える、オブジェクトPのグローバル参照カウントGRCが計算されるとき、その計算される合計はプラス1(+1)であり、オブジェクトPの参照がまだ存在し、Pは割当てを解除されるべきではないことを指示する。
[052]図8は、複数のノードにわたるローカル参照カウントの維持の一例を説明する流れ図である。前述のように、すべての保留中の参照カウントがファイルシステムAを通して完全に伝播されたと仮定し、任意のオブジェクトOについて、ファイルシステムPのOのグローバル参照カウントは、それらのネットワークノードにわたるオブジェクトOへのすべての参照の合計に完全に一致する。図8で、ローカルノードアリスおよびローカルノードボブは、各々、それら自体のローカルオブジェクト記憶装置およびオブジェクトブローカを有する。ノードアリスのファイルシステムPは、オブジェクトAおよびBを含む。ファイルシステムPは、ノードアリスのオブジェクトAへの2つの参照を有し、ノードアリスのオブジェクトAのローカル参照カウントはプラス2(A)である。オブジェクトBのローカル参照カウントは、ノードアリスでプラス1(B)である。ノードボブのファイルシステムQは、参照されるオブジェクトAを1度有し、したがって、ノードBのオブジェクトAのローカル参照カウントはプラス1(A)である。
[053]ノードボブのオブジェクトブローカは、ここで、オブジェクトAをノードアリスに複製することを望む。ノードアリスのブローカは、ノードボブによって送信された要求を受信し、ノードアリスのオブジェクトAのローカル参照カウントをプラス3(A)に増やす。
[054]その後、ノードアリスのファイルシステムPは、ファイルシステムPのコピーをノードボブに移動させることを望む。ノードボブのファイルシステムPがオブジェクトBを読み取るとき、それは、ノードボブのローカルオブジェクト記憶装置内でオブジェクトBを見つけることができない。ノードボブのそのオブジェクトブローカは、次いで、ノードアリスにオブジェクトBの読取り要求を送信する。ノードアリスのオブジェクトブローカは、ノードアリスのローカルオブジェクト記憶装置からBを読み取り、オブジェクトBをノードボブに送信し、オブジェクトBは、次いで、ノードボブのファイルシステムに提供される。
[055]その後、ノードボブのファイルシステムQは、Aへのその第1の参照を参照解除し、オブジェクトAのローカル参照カウントをゼロ(A)に減らす。続いて、ノードボブのファイルシステムQは、オブジェクトAの第2の参照解除を発行し、ノードボブのオブジェクトAのローカル参照カウントをマイナス1(A−1)に減らす。先行技術では、負の参照カウントは許されず、ノードボブは他方のノードと通信して、オブジェクトAの負の参照カウントを受け付けるために別のノードを見つける必要があることになる。しかし、本発明によれば、即時の調整を行う必要はなく、このネットワークトラフィックは回避される。代わりに、以下にさらに説明するように、調整は、求められるまで延期することができる。
[056]本発明のもう1つの態様によれば、それらのローカルノードは、特定の範囲のオブジェクト識別子、または全鍵空間内の鍵(以下、オブジェクト名)、の所有権を与えられる。その所有者ノードは、参照カウント伝播を開始する責任を負う。その記憶システム内のあらゆるノードがその鍵空間の一部を所有する必要はない。しかし、鍵空間全体が、ノードの何らかのセットによってカバーされる必要がある。その鍵の所有者(ノード)は、対応するオブジェクトのグローバル参照カウントGRCを計算する責任を負う。一実施形態で、本方法は、ローカル参照カウントおよびローカルインスタンスカウントの両方を集計するステップを含む。他の実施形態では、一方または他方の集計が、実行され得る。
[057]一例では、集計プロセスは、以下のステップを含み得る。
a.所有者ノード(タグ付け)
その所有者が、特定の時点にGRCの計算を指示するための識別子である固有のタグを作成する。
その所有者が、そのGRCが計算されることになる鍵の範囲RKを決定する。
その所有者が、その記憶システム内のすべてのノードに(RK,T)を送信する。
b.受信者ノード(複数可)(累算)
受信された各(RK,T)について、その受信者は、Tでローカルであるすべての鍵をタグ付けする必要がある。
タグTの記入の後、RK内の鍵への任意のさらなる修正が、明確である必要がある、
RK内の各鍵について、受信者は、タグTとともにその所有者ノードに、そのローカル参照カウント、および、インスタンスのローカル数を送り返す。
c.所有者ノード(調整)
その所有者が、グローバル参照カウントを判定するために、それ自体のローカル参照カウントとともに、その他のノードから受信されるローカル参照カウントを合計する。そのグローバル参照カウントがゼロである場合、その所有者は、次いで、すべての他のノードにタグTを有する削除メッセージを送信し、その所有者ノード上のその鍵の任意のローカルインスタンスを削除する、
その受信するノードおよびその所有者ノードは、そのオブジェクトへのTの記入の後に活動が存在する場合、そのオブジェクトを実際に削除しなくてもよい、
その所有者はまた、そのネットワークの様々なノードのそのオブジェクトのインスタンスの数を見直し、様々なインスタンスが、性能を向上させるためなどに追加または削除され得るかどうかを判定する。
d.受信者ノード(複数可)(アクション)
その受信者は、その削除命令を実行し、Tでその所有者に確認を送り返す、
その受信者は、そう命令された場合にインスタンス作成に関する命令を実行し、Tでその所有者に確認を送り返す。
[059]調整のこの方法は、「最終的整合性」を実現する。ノード間のメッセージが受信または処理される順番は、最終的に、それらがすべてその所有者ノードに戻る限り、重要ではない。そのタグは、そのノードが調整プロセスに従事している間に、その受信者ノードがセットRKで活動を継続することを可能にするバリアの機能を果たす。一実施形態で、そのタグは、GUID(グローバルに固有のID)である。
[060]このタグ付けおよび集計プロセスの一例が、図9に示される。ここで、ノードアリスは、その鍵空間の一部を所有し、その範囲の2次部分で作動することを決定する。アリスは、固有のタグTを生成し、そのタグTとともに、所望の範囲KRについてローカル参照カウントおよびローカルインスタンスカウントの両方の累算要求を送出する。
[061]ノードボブおよびイブは、最終的に、鍵範囲KR、タグT、についてアリスから要求を受信する。その要求は、任意の順番でノードボブおよびイブに到達することができる。各受信者ノードは、その鍵範囲にタグ付けする必要がある。たとえば、ノードボブ上の鍵範囲KR内のオブジェクトXが修正されることになる場合、ボブはバリアを作成する必要があり、たとえば、ここで2つのオブジェクトX、すなわち、一方のオブジェクトXtagおよび他方のオブジェクトXotherが存在する。各受信者ノードは、次いで、範囲R内のあらゆる鍵Kについて、そのローカル参照カウント(refs)、および、そのローカルノード上のインスタンス(物理インスタンスへのポインタ、lons)の数とともにノードアリスに応答する。
[062]所有者ノードアリスは、ここで、タグTの下の範囲R内のあらゆる鍵Kのグローバル参照カウントおよびグローバルインスタンスカウントを計算するのに十分な情報を有する。アリスは、すべてのノードからの応答を累算する。オブジェクトのグローバル参照カウントGRCがゼロである場合、アリスは、すべてのノードに命令を送信してそのオブジェクトの割当てを解除することができる。その受信者は、確認メッセージで応答する。アリスは、インスタンスがその他のノードのうちの1つまたは複数で作成または削除されるべきかどうかを判定するための様々な方法(たとえば、サービス内容合意書)を適用することができる。そのグローバル参照カウントがゼロである場合にのみ、すべてのインスタンスが削除され得る。
さらなる実施形態
[063]本発明は、両方とも2010年6月25日に出願され、両方とも2009年6月26日出願された米国仮特許出願第61/269,633号の優先権を主張する、A.J.BeaversonおよびP.Bowdenによる同時係属のおよび共同所有のFile System(ファイルシステム)という名称の米国特許出願第12/823,922号と、P.BowdenおよびA.J.BeaversonによるScalable Indexing(スケーラブル索引付け)という名称の米国特許出願第12/823,452号で開示されるものなど、ファイルシステムおよび/またはファイルシステムの索引を実施するために使用することができる。これらの出願の各々に対して優先権が主張され、各々の完全な開示は、参照によってその全体を本明細書に組み込む。
[064]本発明の実施形態は、デジタル電子回路で、あるいは、コンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで、実施することができる。本発明の実施形態は、たとえば、データ処理装置、たとえば、プログラマブルプロセッサ、コンピュータ、もしくは複数のコンピュータ、による実行のために、またはその動作を制御するために、たとえば機械可読記憶装置で、コンピュータプログラム製品、すなわちコンピュータ可読記録媒体で有形に実施されたコンピュータプログラム、として実施することができる。コンピュータプログラムは、コンパイルされたまたは解釈された言語を含む任意の形のプログラミング言語で書き込むことができ、それは、スタンドアロンプログラムとして、または、モジュールとして、構成要素、サブルーチン、もしくは、コンピューティング環境で使用するのに適した他のユニットを含む、任意の形で配備することができる。コンピュータプログラムは、1つのコンピュータ上に、または、1つの現場にある複数のコンピュータ上に配備されて実行され得る、あるいは、複数の現場に分散され、通信ネットワークによって相互接続され得る。
[065]本発明の実施形態の方法のステップは、入力データ上で動作することおよび出力を生成することによって本発明の機能を実行するためにコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行することができる。方法のステップはまた、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)、によって実行することができ、本発明の装置は、専用論理回路として実施することができる。
[066]コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用マイクロプロセッサの両方と、任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサとを含む。一般に、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの本質的要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶装置、たとえば磁気、光磁気ディスクまたは光ディスク、を含む、あるいは、そこからデータを受信する、もしくはそこにデータを転送する、またはその両方を行うために動作可能なように結合されることになる。コンピュータプログラム命令およびデータを実施するのに適した情報搬送波は、例として半導体メモリデバイス、たとえばEPROM、EEPROMおよびフラッシュメモリデバイス、と、磁気ディスク、たとえば内部ハードディスクまたは取外し可能ディスク、と、光磁気ディスクと、CD ROMおよびDVD−ROMディスクとを含む、すべての形の不揮発性メモリを含む。そのプロセッサおよびそのメモリは、専用論理回路によって補完され得る、または専用論理回路に組み込まれ得る。
[067]前述の説明は、本発明の範囲を説明するものであり、それを限定するものではないことを理解されたい。

Claims (20)

  1. 方法を実行するための実行可能プログラム命令を含むコンピュータ可読記録媒体であって、前記方法は、
    記憶されたオブジェクトの共用のための複数のネットワークノードにおいて、前記オブジェクトが前記ネットワークノードにわたってグローバルに固有のオブジェクト名を有するようにするステップであって、前記オブジェクト名は、前記オブジェクトが前記ノードでどこに記憶されるかに基づいて変化しない、ステップと、
    ローカルノードで記憶される任意のオブジェクトインスタンスとは独立したオブジェクト名の参照のローカル参照カウントLRCを各ノードで維持するステップであって、前記LRCが符号付きの整数として維持される、ステップと
    を含み、オブジェクト名を参照解除することにより、負のLRC値を生成することができることを特徴とするコンピュータ可読記録媒体。
  2. 請求項1に記載の媒体であって、前記方法が、
    前記LRCの合計を含むグローバル参照カウントGRCを判定するステップ
    を含むことを特徴とする媒体。
  3. 請求項2に記載の媒体であって、前記判定するステップが、
    前記GRCがゼロであると判定されたときに、割当て解除のためのオブジェクトインスタンスを識別するステップ
    を含むことを特徴とする媒体。
  4. 請求項3に記載の媒体であって、前記判定するステップが、
    オブジェクトが割当てを解除され得るかを判定するために前記ノード間の最終的一貫性ネットワークプロトコルを実施するステップ
    を含むことを特徴とする媒体。
  5. 請求項3に記載の媒体であって、前記判定するステップが、
    前記ネットワークノードのうちの1つのノードにある範囲のオブジェクト識別子の所有権を割り当てるステップであって、前記1つのノードが、前記範囲のすべてまたは1サブセットについて前記判定するステップを開始する、ステップ
    を含むことを特徴とする媒体。
  6. 請求項1に記載の媒体であって、前記方法のステップが、
    各ノードでローカルオブジェクト記憶装置を維持するステップであって、ローカルオブジェクト記憶装置はグローバルに固有のオブジェクト名の名前空間を集合的に備える、ステップ
    を含むことを特徴とする媒体。
  7. 請求項6に記載の媒体であって、前記方法は、
    前記ローカルオブジェクト記憶装置により、オブジェクト名のローカルマッピング索引、LRC、および、前記オブジェクトが前記ローカルオブジェクト記憶装置上で記憶される任意の物理オブジェクト場所へのポインタを維持するステップ
    を含むことを特徴とする媒体。
  8. 請求項1に記載の媒体であって、前記方法が、
    各オブジェクトが、そのオブジェクト名として前記オブジェクトの内容から導出されたオブジェクトフィンガープリントを有すること
    を含むことを特徴とする媒体。
  9. 請求項8に記載の媒体であって、前記方法が、
    前記フィンガープリントが、前記オブジェクト内容のハッシュを含むこと
    を含むことを特徴とする媒体。
  10. 請求項6に記載の媒体であって、前記方法が、
    ファイルシステムが、該ファイルシステムのすべての永続的データを記憶するための方法として集合的にピアトゥピアネットワーク記憶システム内の1つまたは複数の前記ノードで前記オブジェクト記憶装置を使用するステップ
    を含むことを特徴とする媒体。
  11. 請求項10に記載の媒体であって、前記方法が、
    すべてのファイルシステムデータ、メタデータおよびファイルが、1つまたは複数の前記オブジェクト記憶装置のオブジェクトを含み、各オブジェクトがそのオブジェクト名としてオブジェクトフィンガープリントを有することと、
    ファイルシステムオブジェクトの集合体が、1つまたは複数の前記オブジェクト記憶装置のオブジェクトも含み、各集合体が複数の前記ファイルシステムオブジェクトのマッピングを含み、前記集合体の前記内容から導出された該集合体自体のオブジェクトフィンガープリントを有し、前記集合体の1つまたは複数のオブジェクトへの変更が前記集合体のオブジェクトフィンガープリントを変更することと、
    ファイルシステムルートオブジェクトが、名前空間ファイルシステム内のあらゆるオブジェクトがルートオブジェクトを介してアクセス可能であるような、ルートオブジェクトフィンガープリントを有することと
    を含むことを特徴とする媒体。
  12. 請求項1に記載の方法であって、前記方法が、
    ネットワークまたはシステムの性能または信頼性に基づき、前記オブジェクト名とは独立したオブジェクトの1つまたは複数のインスタンスを記憶するための1つまたは複数の場所として前記ノードのうちの1つまたは複数を選択するステップ
    を含むことを特徴とする方法。
  13. 請求項1に記載の媒体であって、前記方法が、
    前記記憶されたオブジェクトの前記共用が、記憶されたオブジェクトのオブジェクト名、LRCおよび場所に関してノード間で通信するステップを含む
    ことを特徴とする媒体。
  14. 請求項6に記載の媒体であって、前記方法が、
    アプリケーションがオブジェクト名を参照解除し、前記オブジェクトのインスタンスがローカルオブジェクト記憶装置で記憶されていないときに、前記ローカルオブジェクト記憶装置がマイナス1のLRCを生成すること
    を含むことを特徴とする媒体。
  15. 請求項6に記載の媒体であって、前記方法が、
    記憶システムが、該記憶システムのすべての永続的データを記憶するための方法として集合的にピアトゥピアネットワーク記憶システム内の前記ノードのうちの1つまたは複数で前記オブジェクト記憶装置を使用するステップ
    を含むことを特徴とする媒体。
  16. 複数のネットワークノードで動作する分散ピアトゥピア記憶システム内のデータオブジェクトの参照を追跡する方法を実行するための実行可能命令を含むコンピュータ可読記録媒体であって、前記オブジェクトが前記ネットワークノードにわたってグローバルに固有のオブジェクト名を有し、各ノードが前記ローカルノードでオブジェクトを命名および記憶するためのローカルオブジェクト記憶装置を有し、前記ローカルオブジェクト記憶装置が前記オブジェクトを共用し、
    前記方法が、
    複数のローカルノードの各々で、前記ローカルノードでデータオブジェクトのインスタンスを記憶するための1つまたは複数の場所を求めるステップと、
    複数のローカルノードの各々で、前記オブジェクト名に前記ローカルノード上の前記記憶されたインスタンスの前記1つまたは複数の場所をマップするステップであって、前記場所により前記オブジェクト名は変更されない、ステップと、
    複数のローカルノードの各々で、オブジェクト名の参照のローカル参照カウントLRCを維持するステップであって、前記LRCの値が前記ローカルノード上の前記オブジェクトの参照カウント調整の合計を含み、前記LRCが参照される前記オブジェクトの任意のインスタンスが前記ローカルノードで記憶されたかどうかとは独立した、ステップと
    を含むことを特徴とするコンピュータ可読記録媒体。
  17. 複数のネットワークノードについて、各ノードがそれぞれの前記ノードでオブジェクトを記憶するためのローカルオブジェクト記憶装置を有するようにするステップであって、前記オブジェクトが前記ネットワークノードにわたってグローバルに固有の名を有するステップと、
    前記ローカルオブジェクト記憶装置が前記オブジェクトのうちの1つまたは複数を共用するステップと、
    アプリケーションがオブジェクトとして永続的データを記憶するために前記ローカルオブジェクト記憶装置を使用するステップであって、前記アプリケーションは、それぞれの前記オブジェクトの参照の数を含む前記ネットワークノードで記憶された各オブジェクトの参照カウントを必要とする、ステップと、
    各ノードでオブジェクト名の参照のローカル参照カウントLRCを維持するステップであって、前記LRCの値が前記ローカルノード上の参照カウント調整の合計を含み、前記LRCが、前記LRCの負の値を可能にするために前記ローカルオブジェクト記憶装置で記憶された参照される前記オブジェクトの任意のインスタンスから独立している、ステップと、
    前記LRCの合計を含むグローバル参照カウントGRCを判定するステップと
    を含む方法を実行するための実行可能プログラム命令を含むことを特徴とするコンピュータ可読記録媒体。
  18. 請求項17に記載の媒体であって、前記アプリケーションが、ファイルシステムまたは記憶システムを備えることを特徴とする媒体。
  19. 複数のネットワークノードであって、各ノードがそれぞれの前記ノードでオブジェクトを記憶するためのローカルオブジェクト記憶装置を有し、前記オブジェクトが前記ネットワークノードにわたってグローバルに固有のオブジェクト名を有する、複数のネットワークノードと、
    前記オブジェクトのうちの1つまたは複数を共用する前記ローカルオブジェクト記憶装置と、
    オブジェクトとして永続的データを記憶するための前記ローカルオブジェクト記憶装置を使用するアプリケーションであって、それぞれの前記オブジェクトへの参照の数を含む前記ネットワークノードで記憶された各オブジェクトの参照カウントを必要とするアプリケーションと、
    各ノードでオブジェクト名の参照のローカル参照カウントLRCを維持するための手段であって、前記LRCの値が前記ローカルノード上の参照カウント調整の合計を含み、前記LRCが、前記LRCの負の値を可能にするために前記ローカルオブジェクト記憶装置で記憶された参照される前記オブジェクトの任意のインスタンスから独立している、手段と、
    前記LRCの合計を含むグローバル参照カウントGRCを判定するための手段と
    を備えることを特徴とする装置。
  20. 複数のネットワークノードであって、各ノードがそれぞれの前記ノードでオブジェクトを記憶するためのローカルオブジェクト記憶装置を有し、前記オブジェクトが前記ネットワークノードにわたってグローバルに固有のオブジェクト名を有する、複数のネットワークノードと、
    前記オブジェクトのうちの1つまたは複数を共用する前記ローカルオブジェクト記憶装置と、
    オブジェクトとして永続的データを記憶するための前記ローカルオブジェクト記憶装置を使用するアプリケーションであって、それぞれの前記オブジェクトへの参照の数を含む前記ネットワークノードで記憶された各オブジェクトの参照カウントを必要とするアプリケーションと、
    各ノードでオブジェクト名の参照のローカル参照カウントLRCを維持するための手段であって、前記LRCの値が前記ローカルノード上の参照カウント調整の合計を備え、前記LRCが、前記LRCの負の値を可能にするために前記ローカルオブジェクト記憶装置で記憶された参照される前記オブジェクトの任意のインスタンスから独立している、手段と、
    ネットワークまたはシステムの性能または信頼性に基づき、前記オブジェクト名から独立したオブジェクトインスタンスを記憶するための場所として前記ローカルオブジェクト記憶装置のうちの1つまたは複数を選択するための手段と
    を備えることを特徴とする装置。
JP2014511416A 2011-05-13 2012-05-11 参照カウント伝播 Expired - Fee Related JP5932024B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/106,927 US8346810B2 (en) 2011-05-13 2011-05-13 Reference count propagation
US13/106,927 2011-05-13
PCT/US2012/037471 WO2012158501A1 (en) 2011-05-13 2012-05-11 Reference count propagation

Publications (2)

Publication Number Publication Date
JP2014513849A true JP2014513849A (ja) 2014-06-05
JP5932024B2 JP5932024B2 (ja) 2016-06-08

Family

ID=46178789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014511416A Expired - Fee Related JP5932024B2 (ja) 2011-05-13 2012-05-11 参照カウント伝播

Country Status (9)

Country Link
US (3) US8346810B2 (ja)
EP (1) EP2712452B1 (ja)
JP (1) JP5932024B2 (ja)
CN (1) CN103635902B (ja)
BR (1) BR112013029296A8 (ja)
CA (2) CA2836026C (ja)
ES (1) ES2535943T3 (ja)
HK (1) HK1196443A1 (ja)
WO (1) WO2012158501A1 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AR074941A1 (es) 2009-01-07 2011-02-23 Bayer Cropscience Sa Plantas transplastomicas exentas de marcador de seleccion
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9628438B2 (en) 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US9552382B2 (en) * 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
JP2016526717A (ja) 2013-06-12 2016-09-05 エグザブロックス・コーポレーション ハイブリッドガベージコレクション
US9471710B2 (en) 2013-06-14 2016-10-18 International Business Machines Corporation On-the-fly encoding method for efficient grouping and aggregation
JP2016526720A (ja) 2013-06-19 2016-09-05 エグザブロックス・コーポレーション クラスタベースの記憶システムにおけるデータスクラビング
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
CA2867585A1 (en) * 2013-10-15 2015-04-15 Coho Data Inc. Methods, devices and systems for coordinating network-based communication in distributed server systems with sdn switching
US10248556B2 (en) 2013-10-16 2019-04-02 Exablox Corporation Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9985829B2 (en) 2013-12-12 2018-05-29 Exablox Corporation Management and provisioning of cloud connected devices
US9774582B2 (en) 2014-02-03 2017-09-26 Exablox Corporation Private cloud connected device cluster architecture
US9830324B2 (en) 2014-02-04 2017-11-28 Exablox Corporation Content based organization of file systems
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US10210191B2 (en) * 2014-03-20 2019-02-19 International Business Machines Corporation Accelerated access to objects in an object store implemented utilizing a file storage system
US20150347402A1 (en) * 2014-05-29 2015-12-03 Netapp, Inc. System and method for enabling a client system to generate file system operations on a file system data set using a virtual namespace
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9672248B2 (en) 2014-10-08 2017-06-06 International Business Machines Corporation Embracing and exploiting data skew during a join or groupby
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10209979B2 (en) 2015-02-26 2019-02-19 Red Hat, Inc. System and method for distributed revision control
US9922064B2 (en) 2015-03-20 2018-03-20 International Business Machines Corporation Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables
US10303791B2 (en) 2015-03-20 2019-05-28 International Business Machines Corporation Efficient join on dynamically compressed inner for improved fit into cache hierarchy
US10650011B2 (en) 2015-03-20 2020-05-12 International Business Machines Corporation Efficient performance of insert and point query operations in a column store
US10108653B2 (en) * 2015-03-27 2018-10-23 International Business Machines Corporation Concurrent reads and inserts into a data structure without latching or waiting by readers
US10831736B2 (en) 2015-03-27 2020-11-10 International Business Machines Corporation Fast multi-tier indexing supporting dynamic update
US10541938B1 (en) * 2015-04-06 2020-01-21 EMC IP Holding Company LLC Integration of distributed data processing platform with one or more distinct supporting platforms
US11449322B2 (en) 2015-05-08 2022-09-20 Desktop 365, Inc. Method and system for managing the end to end lifecycle of a cloud-hosted desktop virtualization environment
US10303453B2 (en) 2015-05-08 2019-05-28 Desktop 365, LLC Method and system for managing the end to end lifecycle of the virtualization environment for an appliance
US10296219B2 (en) * 2015-05-28 2019-05-21 Vmware, Inc. Data deduplication in a block-based storage system
US10049118B2 (en) * 2015-06-01 2018-08-14 Netapp, Inc. Consistency checker for global de-duplication clustered file system
US10248678B2 (en) 2015-08-25 2019-04-02 International Business Machines Corporation Enabling placement control for consistent hashing-based object stores
US10474654B2 (en) 2015-08-26 2019-11-12 Storagecraft Technology Corporation Structural data transfer over a network
US10430587B2 (en) * 2015-10-28 2019-10-01 Hrl Laboratories, Llc System and method for maintaining security tags and reference counts for objects in computer memory
US10585627B2 (en) 2016-03-24 2020-03-10 Microsoft Technology Licensing, Llc Distributed metadata management in a distributed storage system
CN107291710B (zh) * 2016-03-30 2020-07-03 杭州海康威视数字技术股份有限公司 一种用于分布式数据库系统的更新数据的方法及装置
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores
US10360248B1 (en) * 2016-06-30 2019-07-23 EMC IP Holding Company LLC Method and system for processing search queries using permission definition tokens
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10671245B2 (en) 2017-03-29 2020-06-02 Microsoft Technology Licensing, Llc Collection and control of user activity set data and activity set user interface
US10732796B2 (en) 2017-03-29 2020-08-04 Microsoft Technology Licensing, Llc Control of displayed activity information using navigational mnemonics
US10853220B2 (en) 2017-04-12 2020-12-01 Microsoft Technology Licensing, Llc Determining user engagement with software applications
US10693748B2 (en) 2017-04-12 2020-06-23 Microsoft Technology Licensing, Llc Activity feed service
US10705911B2 (en) * 2017-04-24 2020-07-07 Hewlett Packard Enterprise Development Lp Storing data in a distributed storage system
CN107220323A (zh) * 2017-05-22 2017-09-29 郑州云海信息技术有限公司 一种文件删除方法及系统
US11580088B2 (en) 2017-08-11 2023-02-14 Microsoft Technology Licensing, Llc Creation, management, and transfer of interaction representation sets
US11403073B2 (en) * 2018-06-13 2022-08-02 Mz Ip Holdings, Llc System and method for enabling communication between disparate computer languages by sharing objects
US10996853B2 (en) * 2019-07-30 2021-05-04 EMC IP Holding Company LLC Deduplicated data block ownership determination
US11467963B2 (en) * 2020-10-12 2022-10-11 EMC IP Holding Company, LLC System and method for reducing reference count update contention in metadata blocks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009230661A (ja) * 2008-03-25 2009-10-08 Hitachi Ltd ストレージ装置及びこれの制御方法
US20100082672A1 (en) * 2008-09-26 2010-04-01 Rajiv Kottomtharayil Systems and methods for managing single instancing data
JP2010113523A (ja) * 2008-11-06 2010-05-20 Fujitsu Ltd コンテンツの削除更新プログラム
WO2010100733A1 (ja) * 2009-03-05 2010-09-10 日立ソフトウエアエンジニアリング株式会社 統合重複排除システム、データ格納装置、及びサーバ装置
WO2010151813A1 (en) * 2009-06-26 2010-12-29 Simplivt Corporation File system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377991B1 (en) * 1998-05-29 2002-04-23 Microsoft Corporation Method, computer program product, and system for migrating URLs within a dynamically changing distributed cache of URLs
SE516171C2 (sv) * 1999-07-21 2001-11-26 Ericsson Telefon Ab L M Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflöde
US6754789B2 (en) * 2002-02-22 2004-06-22 Mcgraw-Edison Company Distributed fault resilient shared memory
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009230661A (ja) * 2008-03-25 2009-10-08 Hitachi Ltd ストレージ装置及びこれの制御方法
US20100082672A1 (en) * 2008-09-26 2010-04-01 Rajiv Kottomtharayil Systems and methods for managing single instancing data
JP2010113523A (ja) * 2008-11-06 2010-05-20 Fujitsu Ltd コンテンツの削除更新プログラム
WO2010100733A1 (ja) * 2009-03-05 2010-09-10 日立ソフトウエアエンジニアリング株式会社 統合重複排除システム、データ格納装置、及びサーバ装置
WO2010151813A1 (en) * 2009-06-26 2010-12-29 Simplivt Corporation File system

Also Published As

Publication number Publication date
US8898195B2 (en) 2014-11-25
US9104679B2 (en) 2015-08-11
CA2954450A1 (en) 2012-11-22
JP5932024B2 (ja) 2016-06-08
CN103635902B (zh) 2017-02-15
EP2712452B1 (en) 2015-04-22
ES2535943T3 (es) 2015-05-19
US20130110894A1 (en) 2013-05-02
CA2836026C (en) 2017-02-28
EP2712452A1 (en) 2014-04-02
US20120290629A1 (en) 2012-11-15
BR112013029296A2 (pt) 2017-01-31
US8346810B2 (en) 2013-01-01
BR112013029296A8 (pt) 2017-10-10
WO2012158501A1 (en) 2012-11-22
CA2836026A1 (en) 2012-11-22
US20150081720A1 (en) 2015-03-19
CN103635902A (zh) 2014-03-12
AU2012256137A1 (en) 2013-11-28
HK1196443A1 (en) 2014-12-12

Similar Documents

Publication Publication Date Title
JP5932024B2 (ja) 参照カウント伝播
US9357004B2 (en) Reference count propagation
US10664493B2 (en) Replication of data objects from a source server to a target server
US10942813B2 (en) Cloud object data layout (CODL)
US8856233B2 (en) Peer-to-peer redundant file server system and methods
US8909657B2 (en) Content based file chunking
KR20210075845A (ko) 네이티브 키-밸류 분산 스토리지 시스템
WO2020236130A1 (en) Apparatus, system, and method for managing an object-based file system
AU2012256137B2 (en) Reference count propagation

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20140110

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150410

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160229

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160427

R150 Certificate of patent or registration of utility model

Ref document number: 5932024

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees