JP6110020B2 - 参照カウンタ完全性チェック - Google Patents

参照カウンタ完全性チェック Download PDF

Info

Publication number
JP6110020B2
JP6110020B2 JP2016510740A JP2016510740A JP6110020B2 JP 6110020 B2 JP6110020 B2 JP 6110020B2 JP 2016510740 A JP2016510740 A JP 2016510740A JP 2016510740 A JP2016510740 A JP 2016510740A JP 6110020 B2 JP6110020 B2 JP 6110020B2
Authority
JP
Japan
Prior art keywords
references
check
counter
unique identifier
readable medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016510740A
Other languages
English (en)
Other versions
JP2016520910A (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 JP2016520910A publication Critical patent/JP2016520910A/ja
Application granted granted Critical
Publication of JP6110020B2 publication Critical patent/JP6110020B2/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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • 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
    • 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/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Description

関連出願の相互参照
本出願は、2013年4月23日に申請された米国仮出願第61/815215号の利益を主張する。前述された出願の開示は、本明細書においてすべての目的のために参照により援用される。
本開示は、概してデータ処理に関し、より詳細には参照カウンタ完全性チェックに関する。
このセクションに記載されるアプローチは追求された可能性があるが、必ずしもこれまでに着想され又は追求されてきたアプローチではない。したがって、その他の方法で示されない限り、このセクションに記載されるアプローチのいずれも、単にこのセクションに含まれることを理由として先行技術と見なすと仮定されるべきではない。
コンピュータシステムにおいて、ランダムアクセスメモリ(RAM)、ハードディスクドライブ(HDD)又は何らかの他のデータ記憶装置に記憶されるデータは、参照を有するオブジェクトとして通常編成され、上記参照は、オブジェクトを参照している。オブジェクトは、該オブジェクトを指し示す多くの参照を有し得るものであり、逆に言うと、このオブジェクト自体は、他のオブジェクトを指し示す参照を含み得る。
コンピュータメモリ及びハードディスク記憶装置のリソースを効率的に利用するために、所与のオブジェクトが該オブジェクトを参照している何らかの参照を有するか知ることは、重要である。オブジェクトを参照する参照がない場合、このことは、このオブジェクトがもはや使用されておらず、ゆえにオブジェクトデータベースから除去されてもよいことを意味し、オブジェクトにより使用されるコンピュータメモリ又はハードディスクストレージの中のスペースは、非占有としてラベル付けされ、新しいデータオブジェクトにより使用されることができる。
いくつかのコンピュータシステムは、簡易な参照カウント手法を使用して、どれほどの数の参照が所与のオブジェクトを参照しているかを追跡することができる。新しい参照がオブジェクトに追加されるたびに、オブジェクトに関連付けられた参照カウンタが1だけインクリメントされ、相応に、所与のオブジェクトを参照する参照が除去されるたびに、参照カウンタが1だけデクリメントされる。オブジェクトの参照カウンタについての記憶された値がこれまでにゼロに達した場合、このオブジェクトは解放することができ、このオブジェクトが他のオブジェクトを参照している場合、その参照カウンタは順にデクリメントすることができる。こうして、1つのオブジェクトの削除は、解放されるオブジェクトの再帰的なカスケードと参照カウントの広範なデクリメントとを引き起こす可能性がある。したがって、参照の間違ったカウントは、オブジェクトの参照カウンタがゼロになることとオブジェクトの削除とに起因して、大量のデータロスをもたらす可能性がある。
いくつかの状況が、間違った参照カウントを引き起こす可能性がある(例えば、カウンタが正しくインクリメントされていないのにその後デクリメントされる、同じ参照のカウンタが2回以上デクリメントされる、誤ったオブジェクトのカウンタがデクリメントされる、あるいは、参照カウンタが破損している)。こうしたエラーは、データ破損とソフトウェアバグとの双方によって引き起こされる可能性があり、データ破損やソフトウェアバグは、常に起こり得ることである。したがって、間違った参照カウンタに起因したオブジェクトの偶然の削除を防止するさらなる方策が取られるべきである。
本発明の概要は、以下で詳細な説明においてさらに説明される概念のうち選択されたものを簡易化された形式で紹介するために提供される。本発明の概要は、請求される対象事項の重要な特徴又は必須の特徴を識別するものではなく、請求される対象事項の範囲の特定を支援するものとして使用されるものでもない。
本明細書に開示される手法は、参照カウントの完全性のチェックに関する。従来の参照カウントは、オブジェクトを参照する新しい参照が追加されるときにオブジェクトの参照カウンタを1だけインクリメントすることと、オブジェクトを参照する既存の参照が削除されるときに参照カウンタを1だけデクリメントすることとを含む。
理論上、本明細書に記載される参照カウントの整合性のチェック法は、下記のとおり実施することができる。オブジェクトを参照するすべての参照の完全なリストが、オブジェクトの存続期間の間に記録され、保持される場合、参照カウンタをチェックすることは簡単であろう。このリストは、各参照に関連付けられた一意識別子を含むことになる。参照を追加することは、参照カウンタをインクリメントし、この参照に関連付けられた一意識別子を記録することになる。参照カウンタをデクリメントするとき、ソフトウェアは、削除される参照の識別子を提供することになる。こうして、オブジェクトに対する新しい参照が削除されようとするたび、その対応する識別子をリストが既に含んでいるかを決定し、この決定に基づいて、参照カウンタをデクリメントするか、あるいはこのデクリメントがインクリメントとマッチしない可能性があるかを判断することは、簡単であろう。上記のマッチしないことは、エラー、ソフトウェアバグ又は破損を示している。
しかしながら、参照カウンタの完全性をチェックするための上記の理論上の手法は、可変である参照の一意識別子のリストに起因して、かなりのさらなる記憶空間及び計算時間を必要とするであろうため、実用的ではない。
いくつかの実施形態において、参照の識別子のリストを保持することを含ませた手法は、識別子が任意の順序で追加され又は除去され得るように数学的に生成された固定サイズ値の算出で概算することができ、いったんすべての識別子が除去されると、この固定サイズ識別子は初期値に戻ることになる。
一意識別子は、様々なハッシュ関数によって生成することができる。ハッシュ関数は各参照について一意の識別子をもたらすことが望ましいが、厳密に必要とはされない。この保証をすることができないハッシュ関数は、単純にいくらかの精度を失い、どの参照がエラー状態にあるかの決定においていくらかの多義性を取り込むおそれがあるが、依然としてソフトウェアバグという根本原因を決定するのに有用であり得る。
いずれにせよ、固定サイズチェック値のデータ破損は多義性をもたらす可能性があることが留意されるべきである。
いくつかの実施形態において、ハッシュ関数は、SHA1、SHA3などの暗号学的ハッシュである。他の実施形態において、ハッシュ関数はTigerを含んでもよく、Tigerは、64ビットプラットフォーム上での効率のための暗号学的ハッシュ関数である。Tigerハッシュ値のサイズは192ビットである。特定のハッシュサイズを仮定するプロトコルとの互換性のために、切り詰められた(Truncated)バージョン(Tiger/128及びTiger/160として知られる)が使用されてもよい。SHAファミリーとは違い、この切り詰められたバージョンは完全なTiger/192ハッシュ値の単にプレフィックスであるため、特徴的な初期化値は定義されない。
フルサイズのハッシュを記憶することが、計算時間又は利用可能メモリの観点であまりに高価であるとき、ハッシュ値のサンプルを使用して、識別子の一意性を保証することにおいて精度のいくらかのロスを伴いながら、ハッシュ値をより短い数へと圧縮してもよい。例えば、ハッシュ関数としてSHA1が使用されるとき、これは160ビットの識別子をもたらす。SHA1値を、64ビットなどのコンピュータのネイティブなサイズ型に圧縮することは、より速い計算をもたらす。圧縮は、様々な形態をとってよく、64ビットのプレフィックス若しくはサフィックス、又はハッシュ値に適用される任意の他の数学的関数をとってもよい。
いくつかの実施形態において、識別子は、SHA1ハッシュの64ビットのプレフィックスであり、上記識別子が、参照カウンタがインクリメントされるときにチェック値に対して加算され、参照カウンタがデクリメントされるときに減算される(注釈:ここで「加算される」及び「減算される」は、正確な数学的定義の加算及び減算を意味する)。
本願実施形態は、限定ではなく例として添付図面の図において図示され、これにおいて、同様の参照は同様の要素を示す。
例示的なデータオブジェクトと、オブジェクトを参照する参照と、オブジェクトに関連付けられた正しい参照カウンタとを示す。 例示的なデータオブジェクトと、オブジェクトを参照する参照と、オブジェクトに関連付けられた間違った参照カウンタとを示す。 例示的なデータオブジェクトと、オブジェクトを参照する参照と、参照のハッシュと、ハッシュのソースと、参照カウンタと、オブジェクトに関連付けられた参照チェックとを示す。 オブジェクトを参照する新しい参照が追加された後、オブジェクトに関連付けられた参照カウンタ及び参照チェックを変更する方法を示すプロセスフロー図である。 オブジェクトを参照する既存の参照が除去された後、オブジェクトに関連付けられた参照カウンタ及び参照チェックを変更する方法を示すプロセスフロー図である。 マシンのコンピューティング装置の概略表現をコンピュータシステムの例示的電子形態において示し、これにおいて、本明細書に論じられる方法論のうち任意の1又は複数をマシンに実行させる命令セットを実行することができる。
下記の詳細な説明は、添付図面に対する参照を含み、添付図面は、詳細な説明の一部をなす。図面は、例示的な実施形態に従って例示を示す。これらの例示的な実施形態は、本明細書において「例」とも呼ばれ、当業者が本願対象事項を実施することを可能にするほど十分に詳細に説明される。本願実施形態は組み合わせられてもよく、他の実施形態が利用されてもよく、あるいは、請求される範囲から逸脱することなく構造的、論理的及び電気的な変更がなされてもよい。それゆえに、下記の詳細な説明は限定的な意味でとられるべきではなく、上記範囲は別記される請求項とその均等物とによって定義される。本文献において、特許文献に一般的であるとおり、用語「一の(“a”,“an”)」は、1又は2以上を含むように使用される。本文献において、用語「又は」は、非排他的な「又は」を指すように使用され、したがって、「A又はB」は、他に示されない限り、「BでなくA」と「AでなくB」と「A及びB」とを含む。
本明細書に開示される実施形態の手法は、様々なテクノロジーを使用して実施されてよい。例えば、本明細書に説明される方法は、コンピュータシステム上で実行されるソフトウェアにおいて、あるいは、マイクロプロセッサ若しくは他の専用に設計された特定用途向け集積回路(ASIC)の組み合わせ、プログラム可能ロジック装置、又はこれらの様々な組み合わせを利用するハードウェアにおいて実施されてよい。具体的に、本明細書に説明される方法は、ディスクドライブなどの記憶媒体又はコンピュータ可読媒体上に存在する一連のコンピュータ実行可能命令によって実施されてもよい。本明細書に説明される方法は、コンピュータ(例えば、デスクトップコンピュータ、タブレットコンピュータ、ラップトップコンピュータ)、ゲームコンソール、手持ち型ゲーム用装置、携帯電話、スマートフォン、スマートテレビジョンシステムなどによって実施できることに留意すべきである。
本明細書に記載されるテクノロジーは、ファイルシステムにおいてデータオブジェクトに関連付けられた参照カウンタを追跡することに関する。様々な実施形態において、参照カウンタの完全性をチェックする方法が、参照チェックをオブジェクトに関連付けることを含み得る。参照チェックは、オブジェクトを参照するいかなる参照も追加される前、予め定義された初期値に設定される。上記方法は、オブジェクトを参照する各参照に一意識別子を関連付けることに続き得る。上記方法は、データオブジェクトに関連付けられた参照チェックに対して、参照に関連付けられた識別子を加算し及び減算する2項演算のペアを決定することに進み得る。オブジェクトを参照する新しいオブジェクト参照が追加されるとき、上記方法は、参照カウンタを1だけ増やし、参照チェックに対して新しい参照に関連付けられた一意識別子を追加することを含み得る。オブジェクトを参照する既存の参照が除去されるとき、上記方法は、オブジェクトの参照カウンタを1だけ減らし、参照チェックから既存の参照に関連付けられた一意識別子を減算することを含み得る。上記方法はさらに、参照カウンタがゼロであるかを決定することに進み得る。参照カウンタがゼロに等しい場合、上記方法は、参照チェックが所定初期値に等しいかを決定することを可能にし得る。参照カウンタがゼロであると同時に参照チェックが所定初期値に等しくない場合、上記方法は、ファイルシステムに対してエラーメッセージを送信することを含み得る。
ファイルシステムにおいて、データオブジェクトの存続期間の間、オブジェクトに関連付けられる参照カウンタがある。このカウンタは、ファイルシステムの中のいくつの他のオブジェクトがこのオブジェクトを参照しているかを示す。図1は、データオブジェクトDとこのオブジェクトDを参照する3つの参照A、B及びCとの一例を示している。オブジェクトDに関連付けられた参照カウンタRCは、3に等しい。
何らかのファイルシステムの失敗(例えば、コンピュータの不整合な停止及び開始、又はソフトウェアバグ)に起因して、データオブジェクトの参照カウンタが間違っている場合がある。いくつかの状況において、参照カウンタは、オブジェクトを参照する参照の数より少ない数を保有している可能性がある。図2は、参照カウンタにおける不整合の一例を示している。図2において、4つの参照A、B、C及びEがオブジェクトDを参照している。しかしながら、オブジェクトEのための参照を加算することに失敗があったため、オブジェクトDに関連付けられた参照カウンタは、4ではなく3に等しい。このことは、参照A、B及びCが除去される場合に参照カウンタがゼロになり、オブジェクトDがオブジェクトストアから解放される可能性があることを意味する。このことは、オブジェクトEがDにアクセスできない状態のままにすることになるが、このオブジェクトはさらに、その参照を決して追加されないオブジェクトでもある。しかしながら、オブジェクトEが、オブジェクトが開放される前に、その参照を除去しようと誤って試みた場合、このことは、A、B又はCに対してデータロスをもたらすであろう。例えば、A及びBがその参照を除去した場合、参照カウンタを1にすることになる。それから、誤って加算されなかったEがその参照を除去した場合、このことは、Cが依然として参照を有し、Cは最初正しくその参照を加算したにもかかわらず、参照カウンタを0の状態にすることになり、Dは解放されることになる。こうして、参照チェックがない場合、オブジェクトCは、オブジェクトEにより成された誤りのためにデータロスという不利益をもたらされる。
図3に示されるとおり、参照チェック(又は、REFCHK)と呼ばれるさらなるパラメータを、ファイルシステムにおいて各データオブジェクトに関連付けることができる。図3の例において、データオブジェクトDは、参照A、B及びCによって参照されている。オブジェクトDに関連付けられた参照カウンタRCは、3に等しい。オブジェクトDを参照する各参照(A、B及びC)は一意識別子(ハッシュA、ハッシュB及びハッシュC)を有し、この一意識別子は「オブジェクト識別子」又は「ハッシュ」と呼ばれる。オブジェクトDの参照チェックは、識別子のソース(sources)と呼ばれる参照オブジェクト識別子の一部に基づいて算出することができる。特定の実施形態において、オブジェクト識別子及び他の参照は、長さにおいて20バイトであり得る。様々な実施形態において、一意オブジェクト識別子は、様々なハッシュ関数によって生成することができる。いくつかの実施形態において、ハッシュ関数は、SHA1、SHA3などの暗号学的ハッシュである。他の実施形態において、ハッシュ関数は、Tiger、64ビットプラットフォーム上での効率のための暗号学的ハッシュ関数を含み得る。特定の実施形態において、識別子のソースは、長さにおいて64ビットであり得る。いくつかの実施形態において、識別子のソースは、オブジェクト識別子を圧縮することによって得ることができる。特定の実施形態において、識別子のソースは、オブジェクト識別子の先頭64ビットとして定義することができる。
オブジェクト自身を参照している参照を有さないオブジェクトのための参照チェックは、予め定義された初期値initに等しいと仮定される。
いくつかの実施形態において、参照チェックの算出を定義するために、一組のソースについて、加算2項演算[+]を導入することができる。加算演算は、結合性及び可換性を有さなければならず、換言すると、任意のソースa、b及びcについて、下記の
(a[+]b)[+]c=a[+](b[+]c),
a[+]b=b[+]c
が当てはまらなければならない。
加算演算は、減算演算[−]とペアにされる。減算演算[−]は、任意のソースa、b及びcについて、下記の一組の式
a[+]b=c,
c[−]b=a
によって定義される。
いくつかの実施形態において、規則的な(regular)整数の加算及び減算演算を2項演算のペアとして使用して、参照チェックの計算方法を定義することができる。他の実施形態において、論理XOR演算が、加算及び減算双方の演算の役割を果たすことができる。
参照チェックを修正するために使用される加算2項演算の結合性及び可換性に起因して、参照カウンタの値は、ソースが加算し又は減算されてきた順序に依存しない。
少なくとも1つの特別な例において、オブジェクトを参照する参照が1つだけあるとき、この参照のソースは、このオブジェクトに関連付けられた参照チェックを使用して識別することができる。すべてのあり得る参照のセットの大域的な分析を通して、上記のことを、参照チェック組み合わせを計算することによって、2又はそれ以上の参照オブジェクトに拡張することが可能である。
図4は、一例示的実施形態に従い、オブジェクトを参照する参照が追加された後、オブジェクトに関連付けられた参照カウンタ及び参照チェック値を変更する方法400を示すプロセスフロー図である。ステップ410において、オブジェクトを参照する新しい参照が追加されるたびに、ステップ420において、オブジェクトに関連付けられた参照カウンタが1だけ増やされる。ステップ430において、参照チェックは、参照チェックの古い値に対して適用される加算2項演算の結果として設定され、参照のハッシュのソースが加算される。
図5は、一例示的実施形態に従い、オブジェクトを参照する既存の参照が除去された後、オブジェクトに関連付けられた参照カウンタ及び参照チェック値を変更する方法500を示すプロセスフロー図である。ステップ510において、オブジェクトを参照する参照が除去されるたびに、ステップ520において、オブジェクトに関連付けられた参照カウンタが1だけ減らされる。ステップ530において、参照のソースは、減算2項演算を使用して参照チェックから減算される。
ステップ540において、方法500は、オブジェクトの参照カウンタがゼロであるかをチェックすることに進み得る。参照カウンタがゼロである場合、オブジェクトストアからオブジェクトを削除する前に、ステップ560において、参照チェックを関与させたさらなるテストを実行することができる。参照カウンタがゼロであると同時に参照チェックが予め定義された初期値initに等しい場合、ステップ580において、オブジェクトはオブジェクトストアから安全に解除することができる。
参照カウンタがゼロであり、さらなるテストが参照チェックはinitに等しくないことを示している場合、このことは、参照カウンタが壊れていることを示し、ステップ570において、対応するエラーメッセージがファイルシステムに送信される。
いくつかの実施形態において、オブジェクトを参照する一組の参照を個々に追加し及び除去するよりも、上記一組の参照を一度にすべて追加し及び除去することが便利であろう。こうした場合、単一のソースを上記一組の参照に割り当てることができ、オブジェクトに関連付けられた参照カウンタ及び参照チェックを修正するために、1回だけの加算又は減算演算が必要とされることになる。
図6は、マシンのコンピューティング装置の概略表現を、コンピュータシステム600の例示的電子形態において示しており、これにおいて、本明細書に論じられる方法論のうち任意の1又は複数をマシンに実行させる命令セットを実行することができる。様々な例示的な実施形態において、マシンは、スタンドアロン装置として稼働し、あるいは他のマシンに接続され(例えば、ネットワーク化され)てもよい。ネットワーク化された配置において、マシンは、サーバ‐クライアントネットワーク環境の中でサーバ又はクライアントマシンのキャパシティにおいて、あるいはピアツーピア(又は分散型)ネットワーク環境の中でピアマシンとして稼働してもよい。マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント、セルラー電話、ポータブル音楽プレーヤ(例えば、MP3(Moving Picture Experts Group Audio Layer 3)プレーヤなどのポータブルハードドライブオーディオ装置)、ゲーム用パッド、ポータブルゲームコンソール、車載コンピュータ、スマートホームコンピュータ、又はマシンが取るべき措置を指定する命令セット(順次の又は別な方法の)を実行する能力がある任意のマシンであってよい。さらに、単一のマシンだけが例示されているが、用語「マシン」は、一の(又は複数の)命令セットを個々に又は連帯して実行して本明細書に論じられる方法論のうち任意の1又は複数を実行するマシンのいかなる集合をも含むとみなされるものとする。
例示的なコンピュータシステム600は、一のプロセッサ又は複数のプロセッサ605(例えば、中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)、又は双方)、メインメモリ610及びスタティックメモリ615を含み、これらは、バス620を介して互いに通信する。コンピュータシステム600は、さらに、ビデオディスプレイユニット625(例えば、液晶ディスプレイ(LCD)又は陰極線管(CRT))を含んでよい。コンピュータシステム600は、さらに、英数字入力装置(例えば、キーボード)、カーソル制御装置(例えば、マウス)、マイクロフォン、デジタルカメラ、ビデオカメラなどの、少なくとも1つの入力装置630を含む。コンピュータシステム600は、さらに、ディスクドライブユニット635、信号生成装置640(例えば、スピーカ)、及びネットワークインタフェース装置645を含む。
ディスクドライブユニット635には、非一時的コンピュータ可読媒体650を含み、これに、本明細書に記載された方法論又は機能のうち任意の1又は複数を具現化し、あるいはその任意の1又は複数によって利用される1又は複数の命令セット及びデータ構造(例えば、命令655)が記憶される。命令655は、コンピュータシステム600による該命令の実行の間、メインメモリ610内及び/又はプロセッサ605内に、完全に又は少なくとも部分的に存在してもよい。メインメモリ610とプロセッサ605とは、マシン可読媒体を構成してもよい。
命令655は、さらに、複数の周知のトランスファープロトコル(例えば、ハイパーテキストトランスファープロトコル(HTTP)、CAN、シリアル及びModbus)のうちいずれかを利用するネットワークインタフェース装置645を介してネットワーク660を通じて送られ、あるいは受信されてもよい。例えば、ネットワーク660は、インターネット、ローカルイントラネット、PAN(パーソナルエリアネットワーク)、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、MAN(メトロポリタンエリアネットワーク)、仮想プライベートネットワーク(VPN)、ストレージエリアネットワーク(SAN)、フレームリレー接続、高度インテリジェントネットワーク(AIN)接続、同期光ネットワーク(SONET)接続、デジタルT1、T3、E1若しくはE3回線、デジタルデータサービス(DDS)接続、DSL(デジタル加入者回線)接続、イーサネット接続、ISDN(統合サービスデジタル通信網)回線、ケーブルモデム、ATM(非同期転送モード)接続、又はFDDI(光ファイバ分散データインターフェース)若しくはCDDI(銅線分散データインターフェース)接続のうち、1又は複数を含んでよい。さらに、通信は、GPRS(General Packet Radio Service)、GSM(Global System for Mobile Communication)、CDMA(符号分割多重アクセス)若しくはTDMA(時分割多重アクセス)、セルラーフォンネットワーク、GPS、CDPD(セルラーデジタルパケットデータ)、RIM(リサーチ・イン・モーション社)デュプレックス・ページング・ネットワーク、Bluetooth無線、又はIEEE802.11ベースの無線周波数ネットワークを含む、様々なワイヤレスネットワークのいずれかに対するリンクを含んでもよい。
コンピュータ可読媒体650は、一例示的な実施形態において単一の媒体であるように示されているが、用語「コンピュータ可読媒体」は、1又は複数の命令セットを記憶する単一の媒体又は複数の媒体(例えば、集中型若しくは分散型のデータベース、並びに/又は関連するキャッシュ及びサーバ)を含むとみなされるべきである。用語「コンピュータ可読媒体」は、マシンによる実行のために命令セットを記憶し、エンコードし又は運ぶ能力があってマシンに本出願に係る方法論のうち任意の1又は複数を実行させる任意の媒体、あるいは、上記の命令セットによって利用される又は上記の命令セットに関連付けられたデータ構造を記憶し、エンコードし又は運ぶ能力がある任意の媒体を含むともみなされるものとする。用語「コンピュータ可読媒体」は、したがって、これらに限定されないが、ソリッドステートメモリと光の及び磁気の媒体とを含むとみなされるものとする。こうした媒体には、制限なく、ハードディスク、フロッピーディスク、フラッシュメモリカード、デジタルビデオディスク(DVD)、RAM、読取専用メモリ(ROM)などを含んでもよい。
本明細書に説明される例示的な実施形態は、ハードウェアにおいて又はソフトウェアとハードウェアとの組み合わせにおいてコンピュータ上にインストールされたコンピュータ実行可能命令(例えば、ソフトウェア)を含む稼働環境で実施することができる。コンピュータ実行可能命令は、コンピュータプログラミング言語で書かれてもよく、あるいはファームウエアロジックで具現化されてもよい。広く認められた標準に合うプログラミング言語で書かれる場合、上記の命令は、様々なハードウェアプラットフォーム上で、及び様々なオペレーティングシステムに対するインタフェースのために実行されてよい。これらに限定されないが、本願方法を実施するためのコンピュータソフトウェアプログラムは、任意の数の適切なプログラミング言語、例えば、ハイパーテキストマークアップ言語(HTML)、ダイナミックHTML、拡張マークアップ言語(XML)、拡張スタイルシート言語(XSL)、文書スタイル意味指定言語(DSSSL)、カスケーディングスタイルシート(CSS)、同期マルチメディア統合言語(SMIL)、ワイヤレスマークアップ言語(WML)、JavaTM、JiniTM、C、C++、Perl、UNIXシェル、ビジュアルベーシック若しくはビジュアルベーシックスクリプト、仮想現実マークアップ言語(VRML)、ColdFusionTM、又は、他のコンパイラ、アセンブラ、インタプリタ、若しくは他のコンピュータ言語若しくはプラットフォームなどで書かれてよい。
上述のとおり、参照カウンタの完全性をチェックする方法が開示された。本明細書に記載されたテクノロジーは、オブジェクトに対して指し示される参照が除去された場合にエラーを捕らえる能力を提供する。本明細書に記載されたテクノロジーは、さらに、オブジェクトに関連付けられた参照カウンタがゼロである場合に、このオブジェクトをオブジェクトストアから安全に解除することができるかを決定する能力を提供する。
実施形態は、特定の例示的な実施形態を参照して説明されているが、本出願のより広い主旨及び範囲から逸脱することなく様々な修正及び変更が上記の例示的な実施形態に対してなされ得ることが明らかになるであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。

Claims (24)

  1. ファイルシステムにおけるオブジェクトの参照カウンタの完全性をチェックする方法であって、当該方法は、
    前記オブジェクトに参照チェックを関連付けるステップであり、前記参照チェックは、前記オブジェクトを参照するいかなる参照も追加される前、所定初期値に設定される、ステップと、
    前記オブジェクトを参照する各参照に一意識別子を関連付けるステップと、
    前記オブジェクトに関連付けられた参照チェックに対して、参照に関連付けられた一意識別子を加算し及び減算する2項演算のペアを決定するステップと、
    を含み、
    前記オブジェクトを参照する新しい参照が追加されることに応答して、当該方法は、
    前記参照カウンタを1だけ増やすステップと、
    前記参照チェックに対して、前記新しい参照に関連付けられた一意識別子を加算するステップと、
    をさらに含み、
    前記オブジェクトを参照する既存の参照が除去されることに応答して、当該方法は、
    前記オブジェクトの参照カウンタを1だけ減らすステップと、
    前記参照チェックから、前記既存の参照に関連付けられた一意識別子を減算するステップと、
    前記参照カウンタがゼロに等しいと決定するステップと、
    前記参照チェックが前記所定初期値に等しいと決定するステップと、
    前記参照チェックが前記所定初期値に等しくない場合、前記ファイルシステムにエラーメッセージを送るステップと、
    をさらに含む、
    方法。
  2. 前記オブジェクトにおいて参照している参照に関連付けられた一意識別子は、前記オブジェクトのハッシュを圧縮することによって決定される、請求項1に記載の方法。
  3. 前記オブジェクトのハッシュを圧縮することは、前記オブジェクトのハッシュの先頭64ビットを切り詰めることを含む、請求項2に記載の方法。
  4. 前記オブジェクトのハッシュはハッシュ関数によって決定される、請求項2に記載の方法。
  5. 前記ハッシュ関数はSHAファミリーの暗号学的ハッシュ関数の1つである、請求項4に記載の方法。
  6. 前記ハッシュ関数はTigerハッシュ関数の1つである、請求項4に記載の方法。
  7. 前記加算の2項演算は結合性及び可換性を有する、請求項1に記載の方法。
  8. 前記減算の2項演算([−])は、前記加算の2項演算([+])を用いて、任意の一意識別子a、b及びcについて、
    a[+]b=c,
    c[−]b=a
    の式により定義される、請求項1に記載の方法。
  9. 前記加算の2項演算は規則的な整数加算である、請求項1に記載の方法。
  10. 前記加算の2項演算はビット単位のXOR演算である、請求項1に記載の方法。
  11. 前記オブジェクトの参照カウンタが1に等しいと決定するステップと、
    一組のあり得る参照を受け取るステップと、
    前記参照カウンタが1に等しい場合、前記一組のあり得る参照からの各参照の一意識別子と前記オブジェクトに関連付けられた参照チェックと比較して、前記オブジェクトを参照している可能性が高い参照を決定するステップと、
    をさらに含む請求項1に記載の方法。
  12. 前記オブジェクトの参照カウンタが1より大きいと決定するステップと、
    一組のあり得る参照を受け取るステップと、
    前記参照カウンタが1より大きい場合、
    前記一組のあり得る参照から参照の組み合わせを選択するステップ、
    前記参照の組み合わせからの参照に関連付けられた一意識別子の総和を算出するステップ、及び
    前記総和と前記オブジェクトの参照チェックとを比較するステップ、
    によって、前記オブジェクトを参照する参照のリストを決定するステップと、
    をさらに含む請求項1に記載の方法。
  13. 命令を記憶させた非一時的プロセッサ可読媒体であって、前記命令は、1又は複数のプロセッサにより実行されると、オブジェクトの参照カウンタの完全性をチェックする方法のステップを前記1又は複数のプロセッサに実行させ、前記方法は、
    前記オブジェクトに参照チェックを関連付けるステップであり、前記参照チェックは、前記オブジェクトを参照するいかなる参照も追加される前、所定初期値に設定される、ステップと、
    前記オブジェクトを参照する各参照に一意識別子を関連付けるステップと、
    前記オブジェクトに関連付けられた参照チェックに対して、参照に関連付けられた一意識別子を加算し及び減算する2項演算のペアを決定するステップと、
    前記オブジェクトを参照する新しい参照が追加されるとき、
    前記参照カウンタを1だけ増やすステップと、
    前記参照チェックに対して、前記新しい参照に関連付けられた一意識別子を加算するステップと、
    前記オブジェクトを参照する既存の参照が除去されるとき、
    前記オブジェクトの参照カウンタを1だけ減らすステップと、
    前記参照チェックから、前記既存の参照に関連付けられた一意識別子を減算するステップと、
    前記参照カウンタがゼロに等しいと決定するステップと、
    前記参照カウンタがゼロに等しい場合、
    前記参照チェックが前記所定初期値に等しいと決定するステップと、
    前記参照チェックが前記所定初期値に等しくない場合、ファイルシステムにエラーメッセージを送るステップと、
    を含む、非一時的プロセッサ可読媒体。
  14. 前記オブジェクトにおいて参照している参照に関連付けられた一意識別子は、前記オブジェクトのハッシュを圧縮することによって決定される、請求項13に記載の非一時的プロセッサ可読媒体。
  15. 前記オブジェクトのハッシュを圧縮することは、前記オブジェクトのハッシュの先頭64ビットを切り詰めることを含む、請求項14に記載の非一時的プロセッサ可読媒体。
  16. 前記オブジェクトのハッシュはハッシュ関数によって決定される、請求項14に記載の非一時的プロセッサ可読媒体。
  17. 前記ハッシュ関数はSHAファミリーの暗号学的ハッシュ関数の1つである、請求項16に記載の非一時的プロセッサ可読媒体。
  18. 前記ハッシュ関数はTigerハッシュ関数の1つである、請求項16に記載の非一時的プロセッサ可読媒体。
  19. 前記加算の2項演算は結合性及び可換性を有する、請求項13に記載の非一時的プロセッサ可読媒体。
  20. 前記減算の2項演算([−])は、前記加算の2項演算([+])を用いて、任意の一意識別子a、b及びcについて、
    a[+]b=c,
    c[−]b=a
    の式により定義される、請求項13に記載の非一時的プロセッサ可読媒体。
  21. 前記加算の2項演算は規則的な整数加算である、請求項13に記載の非一時的プロセッサ可読媒体。
  22. 前記加算の2項演算はビット単位のXOR演算である、請求項13に記載の非一時的プロセッサ可読媒体。
  23. 前記方法は、
    前記オブジェクトの参照カウンタが1に等しいと決定するステップと、
    一組のあり得る参照を受け取るステップと、
    前記参照カウンタが1に等しい場合、前記一組のあり得る参照からの各参照の一意識別子と前記オブジェクトに関連付けられた参照チェックと比較して、前記オブジェクトを参照している可能性が高い参照を決定するステップと、
    をさらに含む、請求項13に記載の非一時的プロセッサ可読媒体。
  24. 前記方法は、
    前記オブジェクトの参照カウンタが1より大きいことをチェックするステップと、
    一組のあり得る参照を受け取るステップと、
    前記参照カウンタが1より大きい場合、
    前記一組のあり得る参照から参照の組み合わせを選択するステップ、
    前記参照の組み合わせからの参照に関連付けられた一意識別子の総和を算出するステップ、及び
    前記総和と前記オブジェクトの参照チェックとを比較するステップ、
    によって、前記オブジェクトを参照する参照のリストを決定するステップと、
    をさらに含む、請求項13に記載の非一時的プロセッサ可読媒体。
JP2016510740A 2013-04-23 2014-04-22 参照カウンタ完全性チェック Active JP6110020B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361815215P 2013-04-23 2013-04-23
US61/815,215 2013-04-23
US14/257,905 US9552382B2 (en) 2013-04-23 2014-04-21 Reference counter integrity checking
US14/257,905 2014-04-21
PCT/US2014/035008 WO2014176264A1 (en) 2013-04-23 2014-04-22 Reference counter integrity checking

Publications (2)

Publication Number Publication Date
JP2016520910A JP2016520910A (ja) 2016-07-14
JP6110020B2 true JP6110020B2 (ja) 2017-04-05

Family

ID=51729807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016510740A Active JP6110020B2 (ja) 2013-04-23 2014-04-22 参照カウンタ完全性チェック

Country Status (4)

Country Link
US (1) US9552382B2 (ja)
EP (1) EP2989549A4 (ja)
JP (1) JP6110020B2 (ja)
WO (1) WO2014176264A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332365B2 (en) 2009-03-31 2012-12-11 Amazon Technologies, Inc. Cloning and recovery of data volumes
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
US9514137B2 (en) 2013-06-12 2016-12-06 Exablox Corporation Hybrid garbage collection
US9715521B2 (en) 2013-06-19 2017-07-25 Storagecraft Technology Corporation Data scrubbing in cluster-based storage systems
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
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
WO2015120071A2 (en) 2014-02-04 2015-08-13 Exablox Corporation Content based organization of file systems
US9785510B1 (en) 2014-05-09 2017-10-10 Amazon Technologies, Inc. Variable data replication for storage implementing data backup
US9734021B1 (en) 2014-08-18 2017-08-15 Amazon Technologies, Inc. Visualizing restoration operation granularity for a database
WO2016200403A1 (en) 2015-06-12 2016-12-15 Hewlett Packard Enterprise Development Lp Disk storage allocation
US10474654B2 (en) 2015-08-26 2019-11-12 Storagecraft Technology Corporation Structural data transfer over a network
US10567500B1 (en) 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10423493B1 (en) 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores
US10733045B2 (en) 2016-07-14 2020-08-04 Microsoft Technology Licensing, Llc Online repair of metadata for structured data including file systems
US10990581B1 (en) 2017-09-27 2021-04-27 Amazon Technologies, Inc. Tracking a size of a database change log
US10754844B1 (en) 2017-09-27 2020-08-25 Amazon Technologies, Inc. Efficient database snapshot generation
US11182372B1 (en) 2017-11-08 2021-11-23 Amazon Technologies, Inc. Tracking database partition change log dependencies
US11042503B1 (en) 2017-11-22 2021-06-22 Amazon Technologies, Inc. Continuous data protection and restoration
US11269731B1 (en) 2017-11-22 2022-03-08 Amazon Technologies, Inc. Continuous data protection
US10621049B1 (en) 2018-03-12 2020-04-14 Amazon Technologies, Inc. Consistent backups based on local node clock
US11126505B1 (en) 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US11042454B1 (en) 2018-11-20 2021-06-22 Amazon Technologies, Inc. Restoration of a data source
US10956284B2 (en) 2019-01-07 2021-03-23 International Business Machines Corporation Using hardware transactional memory to optimize reference counting
CA3167877A1 (en) * 2020-02-25 2021-09-02 Production Robots Engineering Limited Realtime distribution of granular data streams on a network

Family Cites Families (189)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8303167A (nl) 1983-09-14 1985-04-01 Philips Nv Alleenstaande dienstverlenende inrichting met micro-computer, die beschermd is tegen storingen.
US4660130A (en) 1984-07-24 1987-04-21 Texas Instruments Incorporated Method for managing virtual memory to separate active and stable memory blocks
CA2055295C (en) 1991-11-12 2000-05-23 Jean Gilles Fecteau Logical mapping of data objects using data spaces
GB2265734A (en) 1992-03-27 1993-10-06 Ibm Free memory cell management system
JPH06110759A (ja) * 1992-09-30 1994-04-22 Toshiba Corp ファイルシステム
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US6167437A (en) 1997-09-02 2000-12-26 Silicon Graphics, Inc. Method, system, and computer program product for page replication in a non-uniform memory access system
US5950205A (en) 1997-09-25 1999-09-07 Cisco Technology, Inc. Data transmission over the internet using a cache memory file system
US6098079A (en) 1998-04-02 2000-08-01 Mitsubishi Electric Information Technology Center America, Inc. (Ita) File version reconciliation using hash codes
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6154747A (en) 1998-08-26 2000-11-28 Hunt; Rolf G. Hash table implementation of an object repository
GB9825102D0 (en) 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
JP2000207266A (ja) 1999-01-13 2000-07-28 Mitsubishi Electric Corp レプリカシステムおよびレプリカ方法
US6480950B1 (en) 2000-01-24 2002-11-12 Oracle International Corporation Software paging system
US7266555B1 (en) 2000-03-03 2007-09-04 Intel Corporation Methods and apparatus for accessing remote storage through use of a local device
EP1285354B1 (en) 2000-05-09 2004-03-03 Sun Microsystems, Inc. Method and apparatus for proximity discovery of services
US8219662B2 (en) 2000-12-06 2012-07-10 International Business Machines Corporation Redirecting data generated by network devices
US7216136B2 (en) 2000-12-11 2007-05-08 International Business Machines Corporation Concurrent collection of cyclic garbage in reference counting systems
SE0004736D0 (sv) 2000-12-20 2000-12-20 Ericsson Telefon Ab L M Mapping system and method
US20030028514A1 (en) 2001-06-05 2003-02-06 Lord Stephen Philip Extended attribute caching in clustered filesystem
US7222187B2 (en) 2001-07-31 2007-05-22 Sun Microsystems, Inc. Distributed trust mechanism for decentralized networks
US7134041B2 (en) * 2001-09-20 2006-11-07 Evault, Inc. Systems and methods for data backup over a network
US6973049B2 (en) 2001-10-16 2005-12-06 Corrigent Systems Ltd. Auto-configuration of network interfaces in a bidirectional ring network
US7117505B2 (en) 2001-11-29 2006-10-03 Veritas Operating Corporation Methods, systems, and apparatus to interface with storage objects
US7177980B2 (en) 2001-12-18 2007-02-13 Storage Technology Corporation Cache storage system and method
US7392421B1 (en) 2002-03-18 2008-06-24 Symantec Operating Corporation Framework for managing clustering and replication
US6968439B2 (en) 2002-08-29 2005-11-22 Micron Technology, Inc. Single segment data object management
EP1537496B1 (en) 2002-09-10 2008-07-02 Exagrid Systems, Inc. Data protection system and method
US20040111610A1 (en) 2002-12-05 2004-06-10 Canon Kabushiki Kaisha Secure file format
GB0301726D0 (en) 2003-01-24 2003-02-26 Ecebs Ltd Improved smartcard
US7043494B1 (en) 2003-01-28 2006-05-09 Pmc-Sierra, Inc. Fast, deterministic exact match look-ups in large tables
US7177886B2 (en) 2003-02-07 2007-02-13 International Business Machines Corporation Apparatus and method for coordinating logical data replication with highly available data replication
JP4068473B2 (ja) 2003-02-19 2008-03-26 株式会社東芝 ストレージ装置、分担範囲決定方法及びプログラム
US7478096B2 (en) * 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
US7403961B1 (en) 2003-03-14 2008-07-22 Xilinx, Inc. Dangling reference detection and garbage collection during hardware simulation
US7379954B2 (en) 2003-07-08 2008-05-27 Pillar Data Systems, Inc. Management of file system snapshots
US6988180B2 (en) * 2003-09-29 2006-01-17 Microsoft Corporation Method and apparatus for lock-free, non-blocking hash table
US7496690B2 (en) 2003-10-09 2009-02-24 Intel Corporation Method, system, and program for managing memory for data transmission through a network
US7596704B2 (en) 2003-10-10 2009-09-29 Jing-Jang Hwang Partition and recovery of a verifiable digital secret
CA2548542C (en) 2003-11-13 2011-08-09 Commvault Systems, Inc. System and method for performing a snapshot and for restoring data
US7480760B2 (en) 2003-12-17 2009-01-20 Wegener Communications, Inc. Rotational use of memory to minimize write cycles
US8103772B2 (en) 2003-12-24 2012-01-24 Sap Aktiengesellschaft Cluster extension in distributed systems using tree method
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US8185663B2 (en) 2004-05-11 2012-05-22 Hewlett-Packard Development Company, L.P. Mirroring storage interface
US7065611B2 (en) 2004-06-29 2006-06-20 Hitachi, Ltd. Method for controlling storage policy according to volume activity
US7715396B2 (en) 2004-08-19 2010-05-11 Microsoft Corporation Network routing
US7613703B2 (en) 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
CN1761219B (zh) 2004-10-12 2010-04-28 华为技术有限公司 在mpls环网中实现拓扑结构自动发现的方法
US20060083247A1 (en) 2004-10-14 2006-04-20 Sun Microsystems, Inc. Prefix lookup using address-directed hash tables
US7694167B2 (en) 2004-10-22 2010-04-06 Microsoft Corporation Maintaining routing consistency within a rendezvous federation
US20120310892A1 (en) 2004-12-21 2012-12-06 Dam Tru Q System and method for virtual cluster file server
WO2006098723A1 (en) 2005-03-10 2006-09-21 Thomson Licensing Hybrid mesh routing protocol
JP5043820B2 (ja) 2005-03-11 2012-10-10 ロックソフト リミテッド 低冗長記憶システムで索引を行う方法
US8356021B2 (en) 2005-03-11 2013-01-15 Ross Neil Williams Method and apparatus for indexing in a reduced-redundancy storage system
US8442996B2 (en) 2005-04-12 2013-05-14 Enrico Maim Methods for granting access to resources modifiable by users in a computer environment, and resources structured therefore
US7539836B1 (en) 2005-04-18 2009-05-26 Netapp, Inc. Method and system for configuring a data storage object
US20070005746A1 (en) 2005-06-30 2007-01-04 Roe Bryan Y Enhanced network discovery service
US8296550B2 (en) 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
JP3894335B1 (ja) * 2005-10-04 2007-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースの整合性を判断する装置、およびその方法
US20070130232A1 (en) 2005-11-22 2007-06-07 Therrien David G Method and apparatus for efficiently storing and managing historical versions and replicas of computer data files
US8554758B1 (en) 2005-12-29 2013-10-08 Amazon Technologies, Inc. Method and apparatus for monitoring and maintaining health in a searchable data service
US20070179997A1 (en) 2006-01-30 2007-08-02 Nooning Malcolm H Iii Computer backup using native operating system formatted file versions
US7454592B1 (en) 2006-02-16 2008-11-18 Symantec Operating Corporation Block-level and hash-based single-instance storage
CN101046755B (zh) * 2006-03-28 2011-06-15 郭明南 一种计算机自动内存管理的系统及方法
US20070233828A1 (en) 2006-03-31 2007-10-04 Jeremy Gilbert Methods and systems for providing data storage and retrieval
US7801128B2 (en) 2006-03-31 2010-09-21 Amazon Technologies, Inc. Managing communications between computing nodes
US9195665B2 (en) 2006-04-28 2015-11-24 Hewlett-Packard Development Company, L.P. Method and system for data retention
US20070271303A1 (en) 2006-05-18 2007-11-22 Manuel Emilio Menendez Personal file version archival management and retrieval
US8255420B2 (en) 2006-05-23 2012-08-28 Noryan Holding Corporation Distributed storage
US8099605B1 (en) 2006-06-05 2012-01-17 InventSec AB Intelligent storage device for backup system
US8990270B2 (en) 2006-08-03 2015-03-24 Hewlett-Packard Development Company, L. P. Protocol virtualization for a network file system
US7990979B2 (en) 2006-08-25 2011-08-02 University Of Florida Research Foundation, Inc. Recursively partitioned static IP router tables
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US7895666B1 (en) 2006-09-01 2011-02-22 Hewlett-Packard Development Company, L.P. Data structure representation using hash-based directed acyclic graphs and related method
US7539783B2 (en) 2006-09-22 2009-05-26 Commvault Systems, Inc. Systems and methods of media management, such as management of media to and from a media storage library, including removable media
US20090307292A1 (en) 2006-09-26 2009-12-10 Xiaofeng Li Dynamically changing a garbage collector in a managed runtime system
US7827218B1 (en) 2006-11-18 2010-11-02 X-Engines, Inc. Deterministic lookup using hashed key in a multi-stride compressed trie structure
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US7987278B2 (en) 2006-12-18 2011-07-26 Ricoh Company, Ltd. Web services device profile on a multi-service device: dynamic addition of services
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US8935206B2 (en) 2007-01-31 2015-01-13 Hewlett-Packard Development Company, L.P. Snapshots in distributed storage systems
JP5020673B2 (ja) 2007-03-27 2012-09-05 株式会社日立製作所 重複したファイルの記憶を防ぐコンピュータシステム
WO2008125336A2 (de) 2007-04-15 2008-10-23 Phoenix Contact Gmbh & Co. Kg Verfahren und steuergerät zur steuerung eines automatisierungssystems
EP2015587B1 (fr) 2007-05-14 2012-01-25 Apple Inc. Procédé de mémorisation d'un objet multimédia, structure de donnée et terminal associé
US7725437B2 (en) 2007-07-31 2010-05-25 Hewlett-Packard Development Company, L.P. Providing an index for a data store
JP4386932B2 (ja) 2007-08-17 2009-12-16 富士通株式会社 ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
US8069317B2 (en) 2007-10-12 2011-11-29 International Business Machines Corporation Providing and utilizing high performance block storage metadata
US8447733B2 (en) 2007-12-03 2013-05-21 Apple Inc. Techniques for versioning file systems
US8140599B1 (en) 2007-12-07 2012-03-20 Emc Corporation Garbage collection for merged collections
US8244846B2 (en) 2007-12-26 2012-08-14 Symantec Corporation Balanced consistent hashing for distributed resource management
US8171244B2 (en) 2008-02-01 2012-05-01 Imation Corp. Methods for implementation of worm mode on a removable disk drive storage system
JP5091704B2 (ja) 2008-02-06 2012-12-05 株式会社日立製作所 ストレージ構成回復方法及びストレージ管理システム
US8019882B2 (en) 2008-06-27 2011-09-13 Microsoft Corporation Content identification for peer-to-peer content retrieval
JP5146174B2 (ja) 2008-07-28 2013-02-20 富士通株式会社 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法
US8078646B2 (en) * 2008-08-08 2011-12-13 Oracle International Corporation Representing and manipulating RDF data in a relational database management system
WO2010061260A1 (en) 2008-11-03 2010-06-03 Elvin Slavik Method, system, and product for managing spatial data in a database
US8353018B2 (en) 2008-11-13 2013-01-08 Yahoo! Inc. Automatic local listing owner authentication system
JP5396848B2 (ja) 2008-12-16 2014-01-22 富士通株式会社 データ処理プログラム、サーバ装置およびデータ処理方法
US8886714B2 (en) 2011-08-08 2014-11-11 Ctera Networks Ltd. Remote access service for cloud-enabled network devices
US9344438B2 (en) 2008-12-22 2016-05-17 Qualcomm Incorporated Secure node identifier assignment in a distributed hash table for peer-to-peer networks
US8132168B2 (en) 2008-12-23 2012-03-06 Citrix Systems, Inc. Systems and methods for optimizing a process of determining a location of data identified by a virtual hard drive address
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8515911B1 (en) 2009-01-06 2013-08-20 Emc Corporation Methods and apparatus for managing multiple point in time copies in a file system
US8566362B2 (en) 2009-01-23 2013-10-22 Nasuni Corporation Method and system for versioned file system using structured data representations
US8397051B2 (en) 2009-02-23 2013-03-12 Autonomy, Inc. Hybrid hash tables
US8301654B2 (en) 2009-02-24 2012-10-30 Hitachi, Ltd. Geographical distributed storage system based on hierarchical peer to peer architecture
US20100262797A1 (en) 2009-04-10 2010-10-14 PHD Virtual Technologies Virtual machine data backup
US8886206B2 (en) 2009-05-01 2014-11-11 Digimarc Corporation Methods and systems for content processing
US20100332401A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US8320282B2 (en) 2009-07-30 2012-11-27 Calix, Inc. Automatic control node selection in ring networks
US8706980B2 (en) 2009-07-30 2014-04-22 Cleversafe, Inc. Method and apparatus for slice partial rebuilding in a dispersed storage network
US8285925B1 (en) 2009-07-31 2012-10-09 Amazon Technologies, Inc. Management of object mapping information corresponding to a distributed storage system
US8843762B2 (en) 2009-09-04 2014-09-23 Gradiant, Centro Tecnolóxico de Telecomunicacións de Galicia Cryptographic system for performing secure iterative computations and signal processing directly on encrypted data in untrusted environments
US9053060B2 (en) * 2009-09-29 2015-06-09 Canon Kabushiki Kaisha Information processing apparatus having file system consistency recovery function, and control method and storage medium therefor
CN102577318B (zh) 2009-10-01 2015-07-15 瑞典爱立信有限公司 用于应用范围管理的方法和装置
JP2011095976A (ja) 2009-10-29 2011-05-12 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理装置及び方法及びプログラム
US8868510B2 (en) 2009-12-03 2014-10-21 Sybase, Inc. Managing data storage as an in-memory database in a database management system
US8452739B2 (en) 2010-03-16 2013-05-28 Copiun, Inc. Highly scalable and distributed data de-duplication
US8458131B2 (en) * 2010-02-26 2013-06-04 Microsoft Corporation Opportunistic asynchronous de-duplication in block level backups
US8458299B2 (en) 2010-03-17 2013-06-04 Hitachi, Ltd. Metadata management method for NAS global namespace design
FR2959089B1 (fr) 2010-04-16 2012-08-03 Inst Nat Rech Inf Automat Outil de gestion de ressources et d'infrastructures informatiques et reseaux
US20110264880A1 (en) 2010-04-23 2011-10-27 Tatu Ylonen Oy Ltd Object copying with re-copying concurrently written objects
US8566354B2 (en) 2010-04-26 2013-10-22 Cleversafe, Inc. Storage and retrieval of required slices in a dispersed storage network
US8504718B2 (en) 2010-04-28 2013-08-06 Futurewei Technologies, Inc. System and method for a context layer switch
US8984241B2 (en) 2010-07-07 2015-03-17 Nexenta Systems, Inc. Heterogeneous redundant storage array
AU2011274428B2 (en) 2010-07-09 2015-10-01 State Street Corporation Systems and methods for private cloud computing
US10013354B2 (en) 2010-07-28 2018-07-03 Sandisk Technologies Llc Apparatus, system, and method for atomic storage operations
US20120030260A1 (en) 2010-07-30 2012-02-02 Maohua Lu Scalable and parallel garbage collection method and system for incremental backups with data de-duplication
US8407438B1 (en) 2010-08-16 2013-03-26 Symantec Corporation Systems and methods for managing virtual storage disk data
US8495093B2 (en) 2010-08-18 2013-07-23 International Business Machines Corporation Multiway trie data structure that dynamically adjusts node sizes in a manner that reduces memory footprint and improves access speed
JP5514041B2 (ja) 2010-08-25 2014-06-04 日本電信電話株式会社 識別子割当て方法及びプログラム
US8473778B2 (en) 2010-09-08 2013-06-25 Microsoft Corporation Erasure coding immutable data
US8972366B2 (en) 2010-09-29 2015-03-03 Red Hat, Inc. Cloud-based directory system based on hashed values of parent and child storage locations
US8738846B2 (en) 2010-10-15 2014-05-27 Arkologic Limited File system-aware solid-state storage management system
US8239584B1 (en) 2010-12-16 2012-08-07 Emc Corporation Techniques for automated storage management
US8484408B2 (en) 2010-12-29 2013-07-09 International Business Machines Corporation Storage system cache with flash memory in a raid configuration that commits writes as full stripes
WO2012092553A1 (en) 2010-12-31 2012-07-05 Desktone, Inc. Providing virtual desktops using resources accessed on public computer networks
US9311135B2 (en) 2011-01-18 2016-04-12 Scality, S.A. Method for generating universal objects identifiers in distributed multi-purpose storage systems
US9251087B2 (en) 2011-02-11 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for virtual memory management
US8510267B2 (en) 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
US8341312B2 (en) 2011-04-29 2012-12-25 International Business Machines Corporation System, method and program product to manage transfer of data to resolve overload of a storage system
US8572290B1 (en) 2011-05-02 2013-10-29 Board Of Supervisors Of Louisiana State University And Agricultural And Mechanical College System and architecture for robust management of resources in a wide-area network
US8433681B2 (en) 2011-05-12 2013-04-30 Dell Products L.P. System and method for managing replication in an object storage system
US8346810B2 (en) * 2011-05-13 2013-01-01 Simplivity Corporation Reference count propagation
US8949182B2 (en) 2011-06-17 2015-02-03 International Business Machines Corporation Continuous and asynchronous replication of a consistent dataset
US8843998B2 (en) 2011-06-27 2014-09-23 Cliqr Technologies, Inc. Apparatus, systems and methods for secure and selective access to services in hybrid public-private infrastructures
US8880837B2 (en) 2011-08-24 2014-11-04 International Business Machines Corporation Preemptively allocating extents to a data set
WO2013039535A1 (en) 2011-09-12 2013-03-21 Microsoft Corporation Querying and repairing data
EP2575379A1 (en) 2011-09-29 2013-04-03 Alcatel Lucent Apparatuses and computer program products for discovering and accessing local services via WiFi hotspots
US9372827B2 (en) 2011-09-30 2016-06-21 Commvault Systems, Inc. Migration of an existing computing system to new hardware
US9455996B2 (en) 2011-10-03 2016-09-27 New York University Generating progressively a perfect hash data structure, such as a multi-dimensional perfect hash data structure, and using the generated data structure for high-speed string matching
US9081834B2 (en) 2011-10-05 2015-07-14 Cumulus Systems Incorporated Process for gathering and special data structure for storing performance metric data
IN2014CN04333A (ja) 2011-12-05 2015-09-04 Qualcomm Inc
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US8818951B1 (en) 2011-12-29 2014-08-26 Emc Corporation Distributed file system having separate data and metadata and providing a consistent snapshot thereof
US9804649B2 (en) 2011-12-30 2017-10-31 Schneider Electric It Corporation Systems and methods of remote communication
US8782344B2 (en) 2012-01-12 2014-07-15 Fusion-Io, Inc. Systems and methods for managing cache admission
US9489827B2 (en) 2012-03-12 2016-11-08 Cisco Technology, Inc. System and method for distributing content in a video surveillance network
US9213581B2 (en) 2012-03-14 2015-12-15 Sap Se Method and system for a cloud frame architecture
US9043567B1 (en) 2012-03-28 2015-05-26 Netapp, Inc. Methods and systems for replicating an expandable storage volume
US20130263151A1 (en) 2012-04-03 2013-10-03 Microsoft Corporation Consistent Hashing Table for Workload Distribution
US9628438B2 (en) 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US8868926B2 (en) 2012-04-06 2014-10-21 Exablox Corporation Cryptographic hash database
CN108347713B (zh) 2012-04-27 2021-12-28 交互数字专利控股公司 Wtru及由wtru执行的方法
WO2013164878A1 (ja) 2012-05-01 2013-11-07 株式会社日立製作所 計算機システムの管理装置および管理方法
US9323589B2 (en) 2012-05-15 2016-04-26 Oracle International Corporation Self registration of event—consumers/producers and auto discovery
US20130346839A1 (en) 2012-06-20 2013-12-26 Francis Dinha Private tunnel network portal
US20130346591A1 (en) 2012-06-21 2013-12-26 Alcatel-Lucent Usa Inc. Clientless Cloud Computing
US9003477B2 (en) 2012-06-27 2015-04-07 Microsoft Technology Licensing, Llc Model for managing hosted resources using logical scopes
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US9002792B2 (en) 2012-11-19 2015-04-07 Compellent Technologies Confirming data consistency in a data storage environment
US9715507B2 (en) * 2013-03-28 2017-07-25 Ctera Networks, Ltd. Techniques for reconciling metadata and data in a cloud storage system without service interruption
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
US9786197B2 (en) 2013-05-09 2017-10-10 Rockwell Automation Technologies, Inc. Using cloud-based data to facilitate enhancing performance in connection with an industrial automation system
JP2016527741A (ja) 2013-05-21 2016-09-08 エグザブロックス・コーポレーション 自動データリング発見及び設定
US9389651B2 (en) 2013-05-22 2016-07-12 Exablox Corporation Modular electronics chassis
US9514137B2 (en) 2013-06-12 2016-12-06 Exablox Corporation Hybrid garbage collection
US9715521B2 (en) 2013-06-19 2017-07-25 Storagecraft Technology Corporation Data scrubbing in cluster-based storage systems
US8991950B2 (en) 2013-07-10 2015-03-31 Exablox Corporation Modular electronics chassis
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
US20150066524A1 (en) 2013-09-05 2015-03-05 Dorsata, Inc. Methods and systems for the implementation of web based collaborative clinical pathways
JP2016539401A (ja) 2013-10-11 2016-12-15 エグザブロックス・コーポレーション 階層的データアーカイビング
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
WO2015120071A2 (en) 2014-02-04 2015-08-13 Exablox Corporation Content based organization of file systems

Also Published As

Publication number Publication date
JP2016520910A (ja) 2016-07-14
EP2989549A1 (en) 2016-03-02
WO2014176264A1 (en) 2014-10-30
US20140317065A1 (en) 2014-10-23
US9552382B2 (en) 2017-01-24
EP2989549A4 (en) 2016-09-21

Similar Documents

Publication Publication Date Title
JP6110020B2 (ja) 参照カウンタ完全性チェック
US9514137B2 (en) Hybrid garbage collection
US9715521B2 (en) Data scrubbing in cluster-based storage systems
KR102128138B1 (ko) 플레이스홀더에 의한 하이드레이션 및 디하이드레이션 기법
WO2017059798A1 (zh) 序列化与反序列化的方法、装置、系统以及电子设备
CN106933703B (zh) 一种数据库数据备份的方法、装置及电子设备
US20150006475A1 (en) Data deduplication in a file system
US20130067237A1 (en) Providing random access to archives with block maps
JP2014526748A (ja) 効率的なデータ回復
US20140108817A1 (en) Method for processing and verifying remote dynamic data, system using the same, and computer-readable medium
CN110597825B (zh) 基于区块链的数据处理方法、装置及节点设备
US20140156687A1 (en) Identifying duplicate files
WO2023016426A1 (zh) 一种异步二元共识方法、装置、电子设备及存储介质
CN111966631A (zh) 一种可快速分发的镜像文件生成方法、系统、设备和介质
JP5753946B2 (ja) フォントファイルをダウンロードする方法およびシステム
US9043275B2 (en) Data synchronization using string matching
Guido et al. Rapid differential forensic imaging of mobile devices
CN115699584A (zh) 使用将未压缩/已压缩内容相关的索引的压缩/解压缩
US9256503B2 (en) Data verification
WO2017177752A1 (zh) 一种文件存储方法及装置
US8984028B2 (en) Systems and methods for storing data and eliminating redundancy
US9948587B2 (en) Data deduplication at the network interfaces
CN110674084A (zh) 用于数据保护的方法、设备和计算机可读存储介质
CN111444194B (zh) 一种块链式账本中索引的清除方法、装置及设备
US20200250134A1 (en) System and method for adaptive aggregated snapshot deletion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170308

R150 Certificate of patent or registration of utility model

Ref document number: 6110020

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250