JP2004514968A - 共通デジタルシーケンスを識別するシステム - Google Patents
共通デジタルシーケンスを識別するシステム Download PDFInfo
- Publication number
- JP2004514968A JP2004514968A JP2002540319A JP2002540319A JP2004514968A JP 2004514968 A JP2004514968 A JP 2004514968A JP 2002540319 A JP2002540319 A JP 2002540319A JP 2002540319 A JP2002540319 A JP 2002540319A JP 2004514968 A JP2004514968 A JP 2004514968A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- predetermined number
- breakpoint
- digital sequence
- number pattern
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
【著作権に関する通知/許可】
この特許文献の開示の一部は、著作権保護の対象となる材料を含んでよい。著作権所有者は、米国登録商標特許庁の特許ファイルまたはレコードに記載されているような特許の開示の特許文献が誰によってファクシミリ再生されても異論はないが、それ以外においては、いかなるものに対しても全ての著作権の権利を確保する。以下の通知はソフトウェア、データおよび該当する場合には図面を含む以下の説明に適用される。Copyright 2000, Undoo Technologies
【0002】
【発明の背景】
本発明は、一般的に、デジタルシーケンスのブレークポイントを求める「スティッキーバイト」のくくり出しを用いて、データシーケンスを組織化しないで決定するシステムおよび方法の分野に関する。より詳細には、本発明は、最適に近い共通性を一般的に生ずる、データセットをピースに分割する効率的かつ有効な方法に関する。
【0003】
現代のコンピュータシステムは、総計すると何十億桁ものバイトになる莫大な量のデータを保持している。信じられないことに、この量は年ごとに4倍になる傾向があり、コンピュータ大容量記憶アーキテクチャの最もみごとな進歩でさえも追いつくことができない。
【0004】
大部分のコンピュータ大容量記憶システムで保持されるデータは、以下の興味深い特徴を有すると見られている:1)それはほとんど全くランダムでなく、事実上非常に冗長である;2)このデータに特有のシーケンスの数は、実際にデータが占める記憶空間のなかで非常に低い割合となる。3)かなりの量の労力がこの量のデータの管理を試みるのに必要とされ、その多くが冗長の除去(すなわち複製ファイル、ファイルの古いバージョン、パージログ、アーカイブ処理等)の識別に関係している。4)大量の資本的資源が、不必要なコピーを作成し、それらコピーを局所型媒体に保存することなどに捧げられる。
【0005】
冗長コピーくくり出しシステムは、別な方法では何桁も必要とされる記憶量の数を減らすであろう。しかしながら、大容量データをそれらの共通のシーケンスにくくり出すシステムでは、シーケンスを求める方法を使用しなければならない。1つのデータシーケンスを別のシーケンスと比較することを試みる従来の方法は、一般的に、計算の極度な複雑性を被ることになり、したがって、これらの方法は比較的小さいデータセットをくくり出すことにのみ使用可能である。より大きなデータセットのくくり出しは、一般的に、任意の固定サイズを用いるといった単純な方法を用いて成されるだけである。これらの方法は、多くの環境下で十分なくくり出しができず、大きいデータセットの効率的なくくり出しは、コンピュータ科学分野において今まで長きにわたり持続的に厄介な問題であった。
【0006】
【発明の概要】
共通シーケンスを識別できるように、デジタルシーケンスのブレークポイントを求める「スティッキーバイト」のくくり出しを用いて、データシーケンスを組織化しないで決定するシステムおよび方法が、本願に開示されている。スティッキーバイトのくくり出しは、最適に近い共通性を一般的に生ずる、データセットをピースに分割する効率的な方法を提供する。本願で開示されるように、これは、ハッシュ値の定期的なリセット、或いは好適な実施例においてはローリングハッシュ合計、を有するハッシュ関数を用いることによって実現されてよい。さらに、本願で開示されている特に典型的な実施例において、閾値関数は、デジタルまたは数のシーケンス(例えばデータのシーケンス)に区分を決定的に設定するのに利用される。ローリングハッシュおよび閾値関数の双方は、最小限の計算が必要とされるようできている。この低オーバーヘッドは、くくり出しエンジンまたは全データセットにわたる後続の同期を好む他のアプリケーションに対する表現のデータシーケンスを速やかに分割することを可能にする。
【0007】
本願で開示されるシステムおよび方法の重要な利点の内の一つは、計算が良好に機能するための(従来のくくり出しているシステムのような)通信も比較も必要としないことである。これは分散環境において特に当てはまり、従来のシステムが1つのシーケンスを別のシーケンスと比較するのに通信を必要とするのに対して、本発明のシステムおよび方法は、次に考えられるシーケンスだけを用いて隔離状態で実行可能である。
【0008】
オペレーションにおいて、コンピュータ間の通信の必要がなく、またファイルのデータコンテンツに関係なく、多重関連および無関連のコンピュータシステム上で共通要素を見つけることができるように、本発明のシステムおよび方法は、数のシーケンス(例えばファイルのバイト)を分割する完全自動手段を提供する。概括的にいえば、共通シーケンスを、それらシーケンスを見つけるオペレーションにおける検索、比較、通信、または他の処理要素との調整の必要なく見つけることができるように、数要素のシーケンス(すなわちバイトシーケンス)を分割する完全自動手段を含むデータ処理システムに関するシステムおよび方法が、本願に開示されている。本発明のシステムおよび方法は、パーティション間で共通性を最適化するのに求められるタイプおよびサイズのシーケンスを生ずる分布を有する数シーケンスを分割する「スティッキーバイト」ポイントを生成する。
【0009】
添付の図と共に取り入れられた好適な実施例の以下の説明を参照することによって、本発明の上述ならびに他の特徴および目的、またそれらを達成する方法がより明瞭になり、本発明は最大限理解されるであろう。
【0010】
【代表的な実施例の説明】
本発明は、インターネットのような公衆通信回線を使っている企業コンピューティングシステムのような分散コンピューティング環境に関して、図示され説明される。しかしながら、本発明の重要な特徴は、特定のアプリケーションのニーズに合うよう上方および下方に容易に基準化されるということである。したがって、相反するものに対して指示がない限り、本発明は従来のLANシステムのような小さなネットワーク環境と同様に相当に大きくかつ複雑なネットワーク環境にも適用できる。
【0011】
図1に関して、本発明はネットワーク10上の新規のデータ記憶システムとともに利用できる。この図において、典型的なインターネットワーク環境10は、多重広域ネットワーク(「WAN」)14とローカルエリアネットワーク(「LAN」)16間の論理および物理接続によって形成されるグロ―バルインターネットワークを備えるインターネットを含んでよい。インターネットバックボーン12は、データトラフィックのバルクを運ぶメインラインおよびルーターを表す。バックボーン12は、例えばGTE、MCI、Sprint、UUNetおよびAmerica Onlineといった主要なインターネットサービスプロバイダ(「ISP」)によって管理されるシステムの最大ネットワークによって形成される。単独接続ラインはインターネットバックボーン12へのWAN 14およびLAN 16の接続を好都合に図示するのに用いられているが、現実には、複数パスでルート可能な物理接続が多重WAN 14とLAN 16間に存在することは理解されるべきである。これは、単一または多重故障ポイントに直面した際にインターネットワーク10を強力にする。
【0012】
「ネットワーク」は汎用のシステムを備え、通常、ノード18で作動するプロセス間の論理接続を可能にする物理接続を切り替える。ネットワークによって実現される物理接続は、一般的に、ネットワークを使っているプロセス間で確立される論理接続から独立している。このように、ファイル転送、メール転送などに及ぶ異種のプロセスセットが、同じ物理的なネットワークを使うことができる。逆に言えば、ネットワークは、ネットワークを用いて論理的に接続されているプロセスには見えない異質の物理的なネットワーク技術のセットから形成可能である。ネットワークによって実現されるプロセス間の論理接続が物理接続から独立しているので、インターネットワークは長距離にわたる仮想的に無制限のノード数に容易に基準化される。
【0013】
対照的に、システムバス、周辺コンポーネント相互接続(「PCI」)バス、インテリジェントドライブエレクトロニクス(「IDE」)バス、小型コンピューターシステムインターフェース(「SCSI」)バスなどといった内部データ経路は、コンピュータシステム内で特殊目的接続を実現する物理接続を画成する。これらの接続は、プロセス間の論理接続に対してフィジカルデバイス間の物理接続を実現する。これらの物理接続は、コンポーネント、該接続に結合できる限定された数のデバイス、および該接続を介して接続できる条件付きフォーマットのデバイス間の限られた距離によって特徴づけられている。
【0014】
本発明の特定のインプリメンテーションで、記憶装置はノード18に配置されてよい。あらゆるノード18のストレージが、一つのハードディスクを備えてよく、或いは一つの論理ボリュームとして構成される多重ハードディスクを有する従来のRAIDデバイスのような管理された記憶システムを備えてもよい。重要なこととして、本発明は、ノード内で行なうのとは対照的に、ノードの全域にわたって冗長オペレーションを管理するので、任意のノード内のストレージの特定の構成はあまり重要ではない。
【0015】
オプションとして、ノード18のうちの1つ以上が、分散型かつ共同的なやり方でノード18にわたってデータストレージを管理するストレージ割付け管理(「SAM」)プロセスを実現してもよい。SAMプロセスは、全体として、システムを集中制御しないか或いはほとんどしないように機能するのが望ましい。SAMプロセスは、ノード18全域にわたってデータ分布を提供し、RAID記憶サブシステムで見つけられるパラダイムと同様の方法で、ネットワークノード18全域にわたって故障を許容するやり方でリカバリを実現する。
【0016】
しかしながら、SAMプロセスは、一つのノード内または一つのコンピュータ内ではなくノードの全域にわたって機能するので、該プロセスは従来のRAIDシステムよりも大きな故障許容とストレージ効率レベルを可能にする。たとえば、SAMプロセスは、ネットワークノード18、LAN 16またはWAN 14が利用できなくなった場合でさえも回復可能である。さらに、一部のインターネットバックボーン12が故障または輻輳によって利用できなくなった場合でさえも、SAMプロセスはアクセス可能なままであるノード18で分配されるデータを用いて回復可能である。このように、本発明はインターネットワークの強力な性質に影響を及ぼし、先例のない可用性、信頼性、障害の許容範囲および堅固性を提供する。
【0017】
図2に関して、本発明が実現される典型的なネットワークコンピューティング環境のより詳細な概念図が表される。先行図のインターネットワーク10(またはこの図でのインターネット118)は、スーパーコンピュータ即ちデータセンター104からハンドヘルド即ちペンベースのデバイス114の範囲に及ぶ、異質のコンピューティング装置およびメカニズム102のセットの相互接続ネットワーク100を可能にする。このようなデバイスは異なるデータストレージのニーズを有しているが、それらはネットワーク100を介してデータを検索する能力を共有しており、それら自身のリソース内のデータに作用する。IBM互換機デバイス108、マッキントッシュデバイス110およびラップトップコンピューター112といったパーソナルコンピュータまたはワークステーションクラスデバイスと同様にメインフレームコンピュータ(例えばVAXステーション106およびIBM AS/400ステーション116)を含む異種のコンピューティング装置102は、インターネットワーク10およびネットワーク100を介して容易に相互接続する。図示されてはいないが、移動式および他のワイヤレスデバイスをインターネットワーク10に結合してもよい。
【0018】
インターネットベースのネットワーク120は一組の論理接続を備えており、その幾つかはインターネット118を介して複数の内部ネットワーク122間に作られる。概念的に、インターネットベースのネットワーク120はWAN 14(図1)と同種であり、それは地理的に遠いノード間での論理接続を可能にしている。インターネットベースのネットワーク120は、インターネット118、または専用回線、Fibre Channelなどを含む他の公共および私用のWAN技術を用いて実現されてもよい。
【0019】
同様に、内部ネットワーク122は概念的にLAN 16(図1)と同種であり、それはWAN 14よりも限られたスタンスにわたって論理接続を可能にしている。内部ネットワーク122は、 Ethernet、Fiber Distributed Data Interface(「FDDI」)、Token Ring、AppleTalk、Fibre Channel、などを含むさまざまなLAN技術を用いて実現されてもよい。
【0020】
各内部ネットワーク122は、独立したノード(RAIN)エレメント124の一つ以上の冗長配列を接続し、RAINノード18(図1)を実現する。各RAINエレメント124は、プロセッサ、メモリおよび一つ以上の大容量記憶装置(例えばハードディスク)を備える。RAINエレメント124はまた、従来のIDE またはSCSIコントローラであってよく、RAIDコントローラのような管理コントローラであってもよいハードディスクコントローラを含む。RAINエレメント124は、物理的に分散してよく、冷却および電力といったリソースを共有している一つ以上のラックで同じ位置に配置されてもよい。各ノード18(図1)は他のノード18から独立しており、1つのノード18の故障または不稼働が他のノード18の可用性に影響を及ぼさず、1つのノード18に格納されているデータは他のノード18に格納されているデータから復元可能である。
【0021】
特定の典型的なインプリメンテーションにおいて、RAINエレメント124は、PCIバスを支持するマザーボードおよび従来のATまたはATXケースに収容される256メガバイトのランダムアクセスメモリー(「RAM」)上に取り付けられるインテルベースのマイクロプロセッサーのような商品コンポーネントを用いたコンピュータを備えてもよい。SCSIまたはIDEコントローラは、マザーボード上でおよび/またはPCIバスに接続された拡張カードによって実現されてよい。コントローラがマザーボード上のみで実現される場合、PCI拡張バスがオプションとして使われてもよい。特定のインプリメンテーションにおいて、マザーボードは、各RAINエレメント124が最高4つ以上のEIDEハードディスクを含むよう、2つのマスタリングEIDEチャネルおよび2つの付加マスタリングEIDEチャネルを実現するのに用いられるPCI拡張カードを実現できる。特定のインプリメンテーションにおいて、各ハードディスクは、RAINエレメントにつき320ギガバイト以上の総記憶容量の80ギガバイトハードディスクを備えてよい。RAINエレメント124内のハードディスク容量および構成は、特定のアプリケーションのニーズを満たすよう容易に増大または低減できる。外被もまた、電源および冷却デバイス(図示せず)といった支持メカニズムを収容する。
【0022】
各RAINエレメント124は、オペレーティングシステムを実行する。特定のインプリメンテーションにおいて、UNIXまたはLinuxのようなUnixバリアントオペレーティングシステムが、使われてよい。しかしながら、 DOS、マイクロソフトウインドウズ、アップルマッキントッシュOS、OS/2、マイクロソフトウインドウズNTなどを含む他のオペレーティングシステムを、パフォーマンスにおける予測可能な変更を行なうことで同等に置換え可能であることが企図される。選択されたオペレーティングシステムは、アプリケーションソフトウェアおよびプロセスを実行するプラットホームを形成し、ハードディスクコントローラを介して大容量記憶域にアクセスするファイルシステムを実現する。様々なアプリケーションソフトウェアおよびプロセスが各RAINエレメント124上で実現され、適切なネットワークプロトコル(例えばユーザーデータグラムプロトコル(「UDP」)、伝送制御プロトコル(TCP)、インターネットプロトコル(IP)など)を用いたネットワークインターフェースを介して、ネットワークの接続性を提供できる。
【0023】
図3に関しては、ロジックフローチャートが、本発明のハッシュファイルシステムにコンピュータファイルをエントリするステップを表すために示されており、ファイルのハッシュ値が、セットまたはデータベースに予め維持されるファイルのハッシュ値と照合される。いかなるデジタルシーケンスもまた、全く同様に本発明のハッシュファイルシステムに入力できるが、入力されるデジタルシーケンスがコンピュータファイルから成る本例は教訓的である。
【0024】
プロセス200は、コンピューターファイルデータ202(例えば「ファイルA」)を本発明のハッシュファイルシステム(「HF」)に入力することから始まり、ハッシュ関数がステップ204で実行される。次いで、ファイルAのハッシュを表すデータ206が判断ステップ208でハッシュファイル値を含むセットのコンテンツと比較される。データ206が既にセットにある場合、ファイルのハッシュ値はステップ210でハッシュレシピに加えられる。このハッシュレシピは、データ、並びにシステムに入力されたコンピューターファイルデータのクラスに従って、ファイル、ディレクトリ、ボリュームまたは全体システムを復元するのに必要な関連する構成から成る。ハッシュ値を含み、データに対応しているセット212のコンテンツは、判断ステップ208の比較演算のために既存のハッシュ値214の形で提供される。一方、ファイルAのハッシュ値がその時点でセットに存在しない場合、ファイルは、ステップ216で(以下でより完全に説明されるように)ハッシュピースに分割される。
【0025】
図4に関しては、更なるロジックフローチャートが、デジタルシーケンス(例えばファイルまたは他のデータシーケンス)をブレークアップしてハッシュピースにするプロセス300でのステップを表すために提供される。このプロセス300は、多数のデータピースと同様にそれに対応している確率的に固有のハッシュ値を各ピースに対して最終的に生成することになる。
【0026】
ファイルデータ302は、システムの他のピースとの共通性あるいは後にステップ304で共通していることが明らかになるピースの可能性に基づいたピースに分割される。ファイルデータ302に関するステップ304のオペレーションの結果は、代表的な例において、A1〜A5と名づけられた4つのファイルピース306を生成する。
【0027】
ファイルピース306の各々は、次いで、A1〜A5のピース306の各々に確率的に固有の数が割り当てられるよう、個々のハッシュ関数オペレーションを通して各々を配置することによってステップ308で操作される。ステップ308のオペレーションの結果、ピース306(A1〜A5)の各々は、関連づけられた、確率的に固有のハッシュ値310(それぞれA1ハッシュ〜A5ハッシュとして示される)を有することになる。ステップ304のファイル分割プロセスは、ここで開示されている固有の「スティッキーバイト」オペレーションとともに、更に詳細に以下で説明される。
【0028】
更に図5に関しては、別のロジックフローチャートが、ファイルの各ピース306のハッシュ値310を、セット212で維持されている既存のハッシュ値214と比較するプロセス400を表すために示される。特に、ステップ402で、ファイルの各ピース306のハッシュ値310は既存のハッシュ値214および新しいハッシュ値408と比較され、対応する新しいデータピース406がセット212に加えられる。このように、セット212に予め存在していないハッシュ値408が、それらに関連づけられたデータピース406と共に加えられる。プロセス400はまた、全てのファイルピースに対する一つのハッシュ値が様々なピース306のハッシュ値310と同値であることを示しているレコード404を生成することになる。
【0029】
更に図6は、ファイルハッシュまたはディレクトリリストハッシュ値を既存のディレクトリリストハッシュ値と比較し、新しいファイルまたはディレクトリリストハッシュ値をセットディレクトリリストに加えるプロセス500を図示している別のロジックフローチャートを示す。プロセス500は、ファイル名、ファイルメタデータ(例えば日付、時間、ファイルの長さ、ファイルタイプ等)およびディレクトリの各項目のファイルのハッシュ値の累積リストを備える記憶データ502上で機能する。ステップ504で、ハッシュ関数はディレクトリリストのコンテンツに実行される。判断ステップ506は、ディレクトリリストのハッシュ値が既存のハッシュ値214のセット212であるかどうかを判断するよう機能する。判断が肯定である場合、プロセス500は、別のファイルハッシュまたはディレクトリリストハッシュをディレクトリリストに加えるために戻る。これに対して、ディレクトリリストのハッシュ値がセット212にすでにない場合、ディレクトリリストのハッシュ値およびデータはステップ508でセット212に加えられる。
【0030】
更に図7に関しては、代表的なコンピュータファイル(すなわち「ファイルA」)のピース306とそれらに対応するハッシュ値310の比較600が、典型的なファイルの特定ピースの編集の前後双方で示される。この例では、レコード404はファイルA1〜A5のピースの各々のハッシュ値310と同様にファイルAのハッシュ値を含む。ファイルAの代表的な編集または変更は、306AのファイルピースのピースA2(A2−bによって表される)のデータの変化と共にハッシュ値310Aのハッシュ値A2−bの対応する変化を生成可能である。編集されたファイルピースは、ファイルAの修正ハッシュ値およびピースA2−bの修正ハッシュ値を含む更新済みレコード404Aを生成する。
【0031】
更に図8に関しては、本発明のシステムおよび方法によって導き出される複合データ(例えば複合データ702および704)は明示的に表されるデータ706と実質的に同じものであるが、「レシピ」すなわち式によって作成されるという事実を図示している概念図700が示される。図示される例において、このレシピは、対応するハッシュ708によって表されるデータの連結またはハッシュによって表されるデータを用いた関数の結果を含む。データブロック706は示されるように可変長数量であってよく、ハッシュ値708はそれに関連づけられたデータブロックから導き出される。既に述べたように、ハッシュ値708は対応するデータピースの確率的に固有のIDであるが、全く固有のIDがその代わりに使われるか、或いは確率的に固有のIDと混在させることもできる。複合データ702、704はまた、多くのレベルが深い他の複合データを参照でき、一方、複合データのハッシュ値708はレシピが生成するデータの値またはレシピ自体のハッシュ値から導き出されることが可能であることもまた注目されるべきである。
【0032】
更に図9に関しては、ハッシュファイルシステムおよび方法がデータ802を編成し、それらが表すデータへのポインタとしてハッシュ値806を使用することによって冗長シーケンスの再利用を最適化するのにどのように利用できるかを別の概念図800で示していて、データ802は、明確なバイトシーケンス808(原子データ)か或いはシーケンスのグループ(コンポジット)804として表されてよい。
【0033】
図800は、レシピおよびあらゆるレベルで再利用されるデータの強大な共通性を図示する。本発明のハッシュファイルシステムの基本構成は、本質的に、ハッシュ値806が従来のポインタの代わりに使われる「ツリー」または「ブッシュ」である。ハッシュ値806はレシピで使われて、データまたはそれ自体がレシピでありえる別のハッシュ値を示している。したがって、本質において、レシピは他のレシピを示し、他のレシピはさらに他のレシピを示し、最終的に幾つかの特定データを示し、その特定データ自体は更に多くのデータを示す他のレシピを示してよく、最後にはデータだけにかかる。
【0034】
更に図10に関しては、典型的な160ビットのハッシュ値902のハッシュファイルシステムアドレス変換機能の実例となる簡略図900が示される。ハッシュ値902は図示されるように前部904および後部906を備えるデータ構造を含み、図900は対応するデータを含むシステムにおいて特定のノードのロケーションに行くためにハッシュ値902の使用を可能にするよう用いられる特定の「0(1)」オペレーションを図示する。
【0035】
図900は、ハッシュ値902のデータ構造の前部904がストライプ識別(「ID」)908へのハッシュ・プレフィックスを示すのにどのように用いられることができるか、また、次に、ストライプIDをIPアドレスにマップし、IDクラスをIPアドレス910にマップするのにどのように利用されるかを図示する。この例では、「S2」はインデックスノード37 912のストライプ2を示す。ノード37のインデックス・ストライプ912は、次いで、リファレンス番号914によって示されるデータノード73のストライプ88を示す。次いで、オペレーションにおいて、ハッシュ値902自体がシステムのどのノードが関連したデータを含むのかを示すのに使用でき、ハッシュ値902の別の部分はどのデータストライプがその特定のノードにあるのかを示すのに使用でき、ハッシュ値902の更に別の部分はそのストライプ内のどこにデータが存在するのかを示すのに使用できる。この3ステッププロセスを通して、ハッシュ値902によって表されるデータがシステムに既に存在するかどうかを迅速に判断することができる。
【0036】
更に図11に関しては、本発明のシステムおよび方法で使用されるインデックス・ストライプ分割機能1000の簡略的な典型図が示される。この図において、典型的な機能1000は、ストライプ1002(S2)を1つのストライプが充分にいっぱいになるように2つのストライプ1004(S2)と1006(S7)に効果的に分割するのに使用可能であることが示されている。この例では、奇数のエントリはストライプ1006(S7)に動かされ、一方偶数のエントリはストライプ1004に残る。この機能1000は、システム全体のサイズが大きくなり複雑さが増すにつれて、ストライプエントリをどう処理することができるかを示す1つの例である。
【0037】
更に図12に関しては、本発明のシステムおよび方法の全体機能の簡略図1100は、例えば、Day1に多数のプログラムおよびドキュメントファイル1102Aおよび1104Aを有する代表的な家庭用コンピュータのデータのバックアップに用いられているのを示しており、プログラムファイル1102BはDay2に同じものを残し、一方、ドキュメントファイル1104Bのうちの1つはDay2で編集され(Y.doc)、第3のドキュメントファイル(Z.doc)が加えられる。
【0038】
図1100は、コンピュータファイルシステムがピースに分けられ、次いでピースからオリジナルデータを復元するためにグロ―バルデータ保護回路(「gDPN」)上に一連のレシピとしてリストされることができる方法の詳細を示す。この非常に小さいコンピュータシステムは、「スナップショット」の形で「Day1」で、次いでその後「Day2」で示される。「Day1」上で「program files H5」および「my documents H6」が数字1106で図示され、前者はレシピ1108によって表されており、第1の実行可能ファイルはハッシュ値H1 1114で表され、第2の実行可能ファイルはハッシュ値H2 1112で表されている。ドキュメントファイルはハッシュ値H6 1110によって表され、第1のドキュメントはハッシュ値H3 1118で表され、第2のドキュメントファイルはハッシュ値H4 1116によって表されている。その後、「Day2」で数字1120によって示される「program files H5」および「my documents H10」は、「program files H5」は変更されていないが、「my document H10」は変更されたことを示している。数字1122によって示されるH10は、「X.doc」が依然としてハッシュ値H3 1118で表されていることを示し、一方「Y.doc」は今では数字1124においてハッシュ値H8で表されていることを示している。新しいドキュメントファイル「Z.doc」は、数字1126においてハッシュ値H9で表される。
【0039】
この例では、Day2で幾つかのファイルが変更され、他は変更されていないことがわかる。変更されたファイルにおいて、それらのうちの幾つかのピースは変更されておらず、他のピースは変更されている。本発明のハッシュファイルシステムの使用を通して、コンピュータシステムの「スナップショット」がDay1で作成可能であり(次に存在できるようコンピュータファイルの再生に必要なレシピを生成する)、次いでDay2で以前の日のレシピの幾つかの再使用、他のレシピの再定式化、ならびに新規のレシピの追加によって、その時点でのシステムが記述される。このように、コンピュータシステムを共に構成するファイルは、スナップショットがとられたDay1およびDay2のいかなる時点でもその全体において、並びにいかなる後続日にとられたスナップショットからでも、再現可能である。したがって、本発明のハッシュファイルシステムに委ねられたコンピュータファイルのいかなるバージョンも、初めに委ねられた後であればいつでも、システムから検索できる。
【0040】
更に図13に関しては、多数の「スティッキーバイト」1204によってマークされる特定のドキュメントファイルの様々なピースの比較1200が、編集前(Day1 1202A)および編集後(Day2 1202B)の双方で示されており、それによってピースのうちの一つが変更され、他のピースは同じままである。
【0041】
たとえば、Day1に、ファイル1202Aは、可変長ピース1206(1.1)、1208(1.2)、1210(2.1)、1212(2.)、1214(2.3)および1216(3.1)を備える。Day2では、ピース1206、1208、1210、1214および1216は同じままであり(したがって同じハッシュ値を有する)、一方、ピース1212は編集されてピース1212Aを生成する(したがって異なるハッシュ値を有する)。
【0042】
更に図14を参照すると、本発明のインプリメンテーションで使用できる代表的なスティッキーバイト(またはスティッキーポイント)くくり出しプロセス1300が示されている。プロセス1300は、ステップ1302でハッシュ値を「0」にセットして、プロセスを初期化することから始まる。
【0043】
入力コンピュータファイルのコンテンツを備えるデータオブジェクト1304は、入力ファイルソースからのキャラクタを読みとるステップ1306で実行される。ステップ1308において、ステップ1306で読みとられたキャラクタは、32ビット値のアレイ(このサイズのアレイは、例として記載されているだけである)にインデックスを付けるために利用される。その後、ステップ1310で、ステップ1308で見つかったインデックスを付けられた32ビット値は、現在の32ビットハッシュ値に排他的OR化(「XOR化」)される。
【0044】
判断ステップ1312で、予め決められたパターンが見つかった場合(例えば、最下位ビット「0」の選択された数)、スティッキーバイトはその時点でステップ1314において入力ファイルに配置される。一方、予め決められたパターンが判断ステップ1312で見つからなかった場合、判断ステップ1316において、入力ファイルでの予め決められたキャラクタの閾値数(以下でより完全に説明するように、プロセス1300のローリングハッシュ関数によって操作されている)を超えたかどうかによって判断が下される。予め決められた閾値数を超えた場合、判断ステップ1312で検索される予め決められたパターン(例えば最下位ビット「0」のより小さい選択数)の幾つかのサブセット数が見つかったかどうかを確かめるために、プロセス1300は判断ステップ1318に進む。そうであった場合、スティッキーバイトはステップ1314に置かれる。
【0045】
あるいは、判断ステップ1316において予め決められた閾値を超えなかった場合、プロセス1300は、既存の32ビットハッシュ値を1ビットポジションにわたってシフトさせる(「右」か「左」に)ステップ1320に進む。判断ステップ1322において、プロセス1300が作用するさらに別のキャラクタが存在する場合、入力ファイルソースの次のキャラクタはステップ1306で読みとられる。判断ステップ1318で予め決められたパターンのサブセットが見つからなかった場合、あるいは、ステップ1314でスティッキーバイトが配置された場合、上述したように、プロセスはステップ1320に進む。
【0046】
データ・スティッキーバイト(または「スティッキーポイント」)は、共通ブロック要素がコンピュータ間で通信する必要なく複数の関連したおよび無関連のコンピュータで見つかるようコンピュータファイルをサブ分割するユニークな完全自動化の方法である。スティッキーポイントを見つける手段は、本質的に完全に数学的であり、ファイルのデータコンテンツに関係なく均等かつ適切に実行される。ハッシュファイルシステムの使用を通して、全てのデータオブジェクトはインデックスを付けられ、格納され、例えば、限定されるものではないが、MD4、MD5、SHAまたはSHA−1といった業界標準チェックサムを用いて検索されてよい。オペレーションにおいて、2つのファイルが同じチェックサムを有する場合、それらが同一ファイルであることは非常に可能性が高いと考えられ得る。本願で開示されているシステムおよび方法を用いると、データスティッキーポイントは、標準的な数理分布およびターゲットサイズが僅かな割合である標準偏差で生成できる。
【0047】
データスティッキーポイントは、統計学的には稀なnバイトの配列である。この場合、現在の32ビットオリエンテッドマイクロプロセッサ技術でのインプリメンテーションにおいて容易であるという理由から、例においては32ビットが使われている。ハッシュファイルシステムを実行するために利用されるハッシュ関数は適度に複雑な計算を必要とするが、それは現代コンピュータシステムの機能の範囲内では問題ない。ハッシュ関数は本質的に確率的であり、いかなるハッシュ関数でも2つの異なるデータオブジェクトに対して同じ結果をもたらすことができる。しかしながら、本願に開示されているシステムおよび方法は、従来のコンピュータハードウェアオペレーションでは容認されているエラー率よりはるかに低い、信頼できる使用のために許容できるレベル(すなわち何兆分の1の可能性)まで衝突の確率を減らす、周知でありかつ研究されたハッシュ関数を用いて、この問題を緩和している。
【0048】
本発明のスティッキーバイトくくり出しシステムをより完全に説明するために、以下の定義を付随させる。
【0049】
ローリングハッシュ
ローリングハッシュ関数は、標準ハッシュ関数の本質的な性質を維持しているが、その入力値の限られたメモリを有するようにデザインされている。具体的には、ハッシュ関数は以下の特性を有する:
1.固定長または可変長ウィンドウ(シーケンスの長さ)を有する;
2.同一のデータウィンドウを与えられた同一値を生じる;
すなわち、決定性がある。理想的には、生成されたハッシュ合計は、正当な値の全ての範囲に均一にまたがっている;
3.そのハッシュ合計は、ウィンドウの前か或いは後のデータに影響されない。
【0050】
本発明の特定のインプリメンテーションで、32ビットローリングハッシュ関数が使われてよい。その一般的なオペレーションは、以下の通りである: 1)既存の32ビットハッシュ値を1ビットにわたって(左か右に)シフトさせる; 2)入力ファイルソースからのキャラクタを読みとる; 3)そのキャラクタを用いて、32ビット値のアレイにインデックスを付ける;および 4)インデックス付き32ビット値を現在の32ビットハッシュにXOR化する。次いで、オペレーションを繰り返す。
【0051】
ローリングハッシュ値は次いで32ビット値のままであり、全ての32ビットがXOR演算の影響を受ける。シフト段階において、ビットのうちの一つが、残りの31ビットから離れてローリングハッシュ「ウィンドウ」から移動し、残された31ビットは1つの場所にわたって移動するが、それ以外に変化はない。この結果、ウィンドウは1つのユニットにわたって移動する。
【0052】
少数のビットのみが、例えば最下位「0」の幾つかの数といった多くのアプリケーションで一般に使われるので、更なる計算の労力が、「スティッキーバイト」の決定において要求されはしないが、64ビット(または他のサイズ)のローリングハッシュが使われてよい点に留意する必要がある。 利用される関数が適切に分散された数を生じると仮定した場合、32のビット数に対して、ゼロの最大数はもちろん32であり、平均して40億のキャラクタ毎に一回のみ発生する。40億キャラクタはおよそ4ギガバイトのデータであり、大きな「チャンク」である。64ビットハッシュ値を用いることは更に大きなチャンクサイズを生成する際の助けになるが、本願に開示されている本発明の特定のインプリメンテーションは約2Kのチャンクサイズを使用しているので、32ビットローリングハッシュの全範囲を必要とすることはほとんどない。
【0053】
以下のC言語例について考えてみる。ここで、「f」はバイトアレイであり、「i」はそのアレイへのインデックスであり、「hash」は計算されるハッシュ合計である。単純なローリングハッシュは以下のように書くことができる:
【0054】
このハッシュは、大きくランダム化された整数値を生成する、入力バイト値(0〜255)によってインデックス付けされる第2のアレイ「スクランブル」を含むことによって、改善可能である:
【0055】
このローリングハッシュ関数の例は、32ビット値の範囲にわたってかなり均一な数をもたらす。
【0056】
閾値関数
閾値関数は、或る値が任意のレベルより上か下かを求める計算を実行する。
このアクションは不連続な結果を生じ、一部の値は閾値の上に、また他の値は閾値の下になる。閾値関数は、オプションとして、その入力値に対して或る変換を実行することもできる。例として:
あるいは:
【0057】
スティッキーバイトのくくり出しに関する本発明のシステムおよび方法は、有利にデータセットを共通性を助長するシーケンスに分割する。続いての例は、現代の32ビットマイクロプロセッサで特に適切に実行できる閾値関数と共に32ビットローリングハッシュを利用した、好適なインプリメンテーションの実例である。
【0058】
32ビットのローリングハッシュは、分割される入力シーケンスとしてバイトアレイ「f」を用いて生成される。ここで:
1.f[i] は、「f」に含まれるバイトシーケンスのi番目のバイトである;
2.「スクランブル」は、生成されたハッシュ合計でビットが「かき回される」ように選択された32ビット整数の256要素アレイである。これらの整数は、それらの複合型排他的論理和(「XOR」)がゼロに等しくなる(該整数が複合型の1と0ビットのバイナリ同等を有することを意味する)特徴を有するように、一般的に選択される;
3.「^」オペレータは、排他的論理和関数である;
4.length_of_byte_sequence は、分割されるシーケンスの長さである;
5.関数「output_sticky_point」は、分割要素インデックスと共に呼び出される;
6.「閾値」は、所望の長さのシーケンスが生成されるよう選択される値である。すなわち、値が大きくなればなるほど、より長いシーケンスが生成される。
【0059】
例1:
// シーケンス「f」の各バイトに対して、「hash」はファイルのローリングハッシュを表す;
// sticky_bitsは、より大きな値がより低い頻度で生成されるという特徴を有する非均一な値である;
// この計算は、現在のバイトをパーティションの最後と考える必要があるかどうかを判断する;
// 「last_sticky_point」は、既存のパーティションの長さを閾値計算の要素として求めるのに(オプションとして)用いられる前のパーティションのインデックスを覚えている;
【0060】
本発明のシステムおよび方法は、値のシーケンスを通して順次に進み、ローリングハッシュ合計値を計算する。インデックス「i」におけるそのハッシュ合計値は、インデックスi−31〜iにおけるバイトにのみ依存している。31未満のiの場合、ハッシュ合計は0〜iの間のバイトに対する値を反映する。広範なバイト値を用いる「f」の入力テキストおよび適切に選択されたランダム化値のセットが「スクランブル」に存在すると仮定した場合、ハッシュ合計は適切に分散された値域を生じ、所望の32ビット数範囲に広くかつ均一にまたがる。一部のバイトシーケンスが適切に分散された数を生じない点に留意する必要があるが、この動作を有するバイトシーケンスは典型的な入力テキストに関しては一般的でない。
【0061】
「sticky_bits」値は、現在のハッシュ合計を使って計算される。この値は、非常に非均一な分散を有するよう、また32ビット値の全範囲にまたがる数を生成するようにできていて、以下の表1で示されるように、より大きな値はそれらの大きさに反比例して生成される:
【表1】
【0062】
更なる変更なしで、この特定の例は、平均の95%となる、標準偏差を含むシーケンスの長さを有する統計プロパティを実証する。これを補正するために、「sticky_bits」値は、現在のシーケンスの長さと組み合わされ、より均一に間隔をあけられたパーティションを生成することができる。この点に関しては、「sticky_weighting」は、「sticky_bits」値の重み対現在のパーティションの長さを調節するのに用いられるファクタである:
【0063】
例2:
// シーケンス「f」の各バイトに対して、「hash」はファイルのローリングハッシュを表す;
// sticky_bitsは、より大きな値がより低い頻度で生成されるという特徴を有する非均一な値である;
// この計算は、現在のバイトをパーティションの最後と考える必要があるかどうかを判断する;
// 「last_sticky_point」は、既存のパーティションの長さを閾値計算の要素として求めるのにオプションとして用いられる前のパーティションのインデックスを覚えている;
【0064】
本発明のシステムおよび方法のこの特定の実施例において、調整は、より一貫したパーティションサイズを作り出すために成されてきた。これは、潜在的なパーティションサイズが増加するのにつれて、閾値への「圧力」を本質的に増大させてパーティションを作成することによって、達成される。これを達成する様々な方法が際限なくあるが、前述の例は一つの実例を示すことを意図している点に留意されたい。
【0065】
理解されるように、本願で開示されているデータシーケンスを組織化しないで決定する本発明のシステムおよび方法は、現代のコンピュータプロセッサを用いて大容積のデータをそれらの共通シーケンスにくくり出す、効率的かつ容易な達成手段を提供する。従来のくくり出し技術と異なり、それは、共通性を確立するために、シーケンス比較、コミュニケーションまたは前のアクションの履歴記録を必要としない。 更に、本発明のシステムおよび方法は、分割されるデータのタイプの影響を本質的に受けず、テキストファイル、バイナリファイル、セット画像、オーディオおよびビデオクリップ、静止画像等に一貫して実行する。
【0066】
本願に開示されているスティッキーバイトくくり出し技術はまた、共通性がシーケンス内の可変ロケーションにある場合でも、その共通性を識別するのに役立つパーティションを有利に作成する;例えば、特定のドキュメントファイルの2つのバージョン間の差が小さなものだけだったにしても、スティッキーバイトくくり出しは、キャラクタの挿入または削除にもかかわらず、くくり出されたドキュメント間に高い共通性をもたらす。更に、本発明のシステムおよび方法は、「スライドする」か又は絶対位置を変更するデータで、共通性を識別するのに役立つパーティションまたはブレークポイントを生成する。
【0067】
本質において、本発明のシステムおよび方法は、共通データシーケンスを迅速かつ効率的に見つける方法における問題点を効果的に解決する。更に、それは、前述の分割方式に基づく情報を格納するようにできているシステムに高い可能性で存在しているデータシーケンスの別のコード化を検索するのに使用することができる。本発明のスティッキーバイトくくり出し技術は、典型的なコンピュータファイルシステムで共通シーケンスを検索する場合に特に適切に機能し、最も有名な圧縮アルゴリズムをも含み、多くが基本ファイルサイズ低減技術として共通性くくり出しを利用する幾つかのテスト組合せに対して非常に高い圧縮比をもたらす。
【0068】
本願で用いられるように、用語「インターネットインフラ」は様々なハードウェアおよびソフトウェアメカニズムを含んでいるが、該用語は、主に、一つのネットワークノードから別のネットワークノードにデータパケットを移動させる機能を有するルーター、ルーターソフトウェアおよびこれらのルーター間の物理リンクを指す。また、本願で用いられるように、「デジタルシーケンス」はコンピュータプログラムファイル、コンピュータアプリケーション、データファイル、ネットワークパケット、マルチメディア(オーディオおよびビデオを含む)といったストリーミングデータ、テレメトリーデータ、およびデジタルまたは数字シーケンスによって表されることができる他のあらゆるデータフォームを含むことができるが、これに限定されるものではない。
【0069】
特定の例示的なスティッキーバイトくくり出し技術およびコンピュータシステムに関連して本発明の原理を以上で説明してきたが、前述の説明は例としてのみ成されており、本発明の範囲を限定するものではないことは明白に理解されたであろう。特に、前述の開示内容の教示が他の変形実施例を当業者に示唆していることは理解されたであろう。このような変形実施例は、それ自体が既に知られており、本願で既に説明された特徴の代わりにまたはそれに加えて使用可能な他の特徴を含んでもよい。特許請求の範囲は本出願において特定の特徴の組合せに対して明確に述べているが、本願における開示の範囲はまた、特許請求の範囲と同一の発明に関連があるにせよ、また本発明が直面したものと同じ技術的な問題の全てを軽減するにせよ、当業者には明らかな明示的または暗示的に開示されている特徴のあらゆる新規な特徴または組合わせ、またはそれを一般化した例または変形実施例を含むことを理解されたい。出願人は、これによって本出願のまたはそこから導き出される更なる出願の全ての手続き中に、前記の特徴および/または前記の特徴の組合せを新しい特許請求の範囲に発展させる権利を確保する。
【図面の簡単な説明】
【図1】
本発明のシステムおよび方法を実施可能な代表的なネットワーク化されたコンピュータ環境の高レベル図解である。
【図2】
本発明のシステムおよび方法のユーティライゼーションに対して可能な操作環境のより詳細な概念図であり、ここで、任意の数のコンピュータまたはデータセンターで維持されるファイルは、インターネット接続を介した、例えば地理的に多様なロケーションに位置する多くの独立ノードの冗長アレイ(「RAIN」)ラックに対する分散型コンピュータシステムに格納されてよい。
【図3】
本発明のハッシュファイルシステムにコンピュータファイルをエントリするステップを表すロジックフローチャートであり、ここで、ファイルのハッシュ値は、セット(データベース)で予め維持されるファイルのハッシュ値とチェックされる。
【図4】
ファイルまたは他のデータシーケンスをハッシュされたピースにブレークアップするステップを表す更なるロジックフローチャートであり、多くのデータピースを生成させるのに加えて、各ピースに対して確率的に固有のハッシュ値を対応させる。
【図5】
ファイルの各ピースのハッシュ値とセットまたはデータベースの既存のハッシュ値との比較を表す別のロジックフローチャートであり、レコードの生成は、全ファイルピースに対して単一のハッシュ値と様々なピースのハッシュ値との等価を示し、そこで、新しいデータピースおよびそれに対応する新しいハッシュ値がセットに加えられる。
【図6】
ファイルハッシュまたはディレクトリリストハッシュ値を既存のディレクトリリストハッシュ値と比較して、新しいファイルまたはディレクトリリストハッシュ値をセットディレクトリリストに加えるステップを示す、更に別のロジックフローチャートである。
【図7】
典型的なファイルの特定のピースの編集の前後に、代表的なコンピュータファイルのピースをそれに対応するハッシュ値と比較している。
【図8】
本発明のシステムおよび方法によって導き出されることができる複合データが明示的に表されるデータと事実上同一ではあるが、「レシピ」(例えばその対応しているハッシュによって表されるデータの連結またはハッシュによって表されるデータを用いた関数の結果)によって、その代わりに作成されてもよいという事実の概念図である。
【図9】
本発明のハッシュファイルシステムおよび方法が、ハッシュ値をそれらが表すデータへのポインターとして使用することによって、冗長シーケンスの再利用を最適化するためにデータを編成するのにどのように利用可能であるかを表す別の概念図であり、ここで、データは、明確なバイトシーケンス(原子データ)またはシーケンスのグループ(複合物)として表されてよい。
【図10】
典型的な160ビットハッシュ値のハッシュファイルシステムアドレス変換関数を示す簡略図である。
【図11】
本発明のシステムおよび方法で用いられるインデックス・ストライプ分割関数の典型的な簡略図である。
【図12】
Day 1に多くのプログラムおよびドキュメントファイルを有している典型的な家庭用コンピュータのデータのバックアップに用いられる本発明のシステムおよび方法の全体的な機能を示す簡略図であり、ドキュメントファイルの一つが第3のドキュメントファイルを加えると共にDay 2で編集される。
【図13】
多くの「スティッキーバイト」によってマークされる特定のドキュメントファイルの様々なピースの編集の前後両方での比較を示し、ピースのうちの一方はそれによって変更され、他方のピースは同じままである。
【図14】
本発明による典型的なスティッキーバイトくくり出しプロセスの代表的なフローチャートである。
Claims (54)
- デジタルシーケンスを分割する方法であって、
少なくとも前記デジタルシーケンスの一部にハッシュ関数を実行するステップと、
前記ハッシュ関数によって生成されたハッシュ値を第1の予め決められた数パターンに対してモニタするステップと、
前記第1の予め決められた数パターンが発生した場合、前記デジタルシーケンスにブレークポイントをマークするステップと、
を備える方法。 - 前記ハッシュ関数を実行するステップは、ローリングハッシュ関数手段によって実行される、請求項1記載の方法。
- 前記第1の予め決められた数パターンは、ビットパターンである、請求項1記載の方法。
- 前記ハッシュ関数を実行するステップは、構造上効率的なnビットハッシュ関数手段によって実行される、請求項1記載の方法。
- 前記構造上効率的なnビットハッシュ関数は、32ビットハッシュ関数を備える、請求項4記載の方法。
- 前記第1の予め決められた数パターンは、連続ビットシーケンスを備える、請求項1記載の方法。
- 前記連続ビットシーケンスは複数の末端ビットを備える、請求項6記載の方法。
- 前記複数の末端ビットは11ビットを備える、請求項7記載の方法。
- 前記11ビットは「0」である、請求項7記載の方法。
- 前記ハッシュ値をモニタする前記ステップに対して閾値制限を決めるステップと、
前記閾値制限が達成された場合、前記モニタステップに対して少なくとも第2の予め決められた数パターンを確立するステップと、
前記第2の予め決められた数パターンが発生した場合、代わりに前記デジタルシーケンスに前記ブレークポイントをマークするステップと、
を更に備える、請求項1記載の方法。 - 前記第2の予め決められた数パターンは、ビットパターンである、請求項10記載の方法。
- 前記第2の予め決められた数パターンは、前記第1の予め決められた数パターンのサブセットである、請求項11記載の方法。
- 前記第1の予め決められた数パターンは連続した11ビットシーケンスを備え、前記第2の予め決められた数パターンは前記11ビットのうちの10を備える、請求項12記載の方法。
- 前記第1の予め決められた数パターンは11の連続した「0」を備え、前記第2の予め決められた数パターンは10の連続した「0」を備える、請求項13記載の方法。
- 前記ハッシュ値をモニタする前記ステップに対して閾値制限を決めるステップと、
前記デジタルシーケンスに前記ブレークポイントをマークする確率を上げるステップと、
を更に備える、請求項1記載の方法。 - 前記デジタルシーケンスに前記ブレークポイントをマークする確率を上げる前記ステップは、少なくとも所望のチャンクサイズの関数である、請求項15記載の方法。
- 前記デジタルシーケンスに前記ブレークポイントをマークする確率を上げる前記ステップは、少なくとも前記デジタルシーケンスの現在の部分の長さの関数である、請求項15記載の方法。
- 前記デジタルシーケンスに前記ブレークポイントをマークする確率を上げる前記ステップは、
前記ハッシュ値をモニタする前記ステップに第2の予め決められた数パターンを利用するステップと、
前記第2の予め決められた数パターンが発生した場合、代わりに前記ブレークポイントをマークするステップと、
によって実行される、請求項15記載の方法。 - 第1のデジタルシーケンスで第1のブレークポイントを決める方法であって、
前記第1のデジタルシーケンスのサブセットグループを決めるステップと、
ハッシュ値で第1の予め決められた数パターンを得るまで、前記第1のデジタルシーケンスの開始位置から始まっている前記第1のデジタルシーケンスの前記サブセットグループにハッシュ関数を実行するステップと、
前記ハッシュ値で前記第1の予め決められた数パターンを得た場合に、前記第1のブレークポイントをマークするステップと、
を備える方法。 - 前記数パターンはビットパターンを備える、請求項19記載の方法。
- 前記ハッシュ関数を実行するステップは、ローリングハッシュ関数手段によって実行される、請求項19記載の方法。
- 前記ハッシュ値で前記第1の予め決められた数パターンを再び得るまで、前記第1のブレークポイントから前記第1のデジタルシーケンスのサブセットグループにハッシュ関数を更に実行するステップと、
前記ハッシュ値で前記第1の予め決められた数パターンを再び得た場合に、前記第1のデジタルシーケンスに別のブレークポイントをマークするステップと、
を更に備える、請求項19記載の方法。 - 前記ハッシュ関数を更に実行するステップは、ローリングハッシュ関数手段によって実行される、請求項22記載の方法。
- 前記ハッシュ値で第2の予め決められた数パターンを決めるステップと、
確立された閾値制限を達成するまで、前記第1のデジタルシーケンスの前記サブセットグループに前記ハッシュ関数を実行するステップを継続するステップと、
前記ハッシュ値で前記第2の予め決められた数パターンを得た場合、代わりに前記第1のブレークポイントをマークするステップと、
を更に備える、請求項19記載の方法。 - 前記ハッシュ値で前記第1の予め決められた数パターンを得るまで、第2のデジタルシーケンスの開始位置から始まっている前記サブセットグループにハッシュ関数を実行するステップと、
前記ハッシュ値で前記第1の予め決められた数パターンを得た場合に、前記第2のデジタルシーケンスに第2のブレークポイントをマークするステップと、
前記第1のブレークポイントで予め決められたハッシュ値を前記第2のブレークポイントで予め決められたハッシュ値と比較するステップと、
前記開始位置から前記第1のブレークポイントまでの前記第1のデジタルシーケンスの対応部分を、前記開始位置から前記第2のブレークポイントまでの前記第2のデジタルシーケンスの対応部分と同等視するステップと、
を更に備える、請求項19記載の方法。 - コンピュータープログラム製品であって、前記コンピュータープログラム製品は、
デジタルシーケンスが分割されるよう中に含まれるコンピュータ可読コードを有するコンピュータ可使用媒体を備え、前記コンピュータ可使用媒体が、
コンピュータに、少なくとも一部の前記デジタルシーケンスに対してハッシュ関数を実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
コンピュータに、第1の予め決められた数パターンに対する前記ハッシュ関数によって生成されるハッシュ値のモニタを行わせるよう構成されたコンピュータ可読プログラムコード・デバイスと、
前記第1の予め決められた数パターンが発生した場合に、コンピュータに、前記デジタルシーケンスへのブレークポイントのマークを行わせるよう構成されたコンピュータ可読プログラムコード・デバイスと、
を備える、コンピュータープログラム製品。 - コンピュータに前記ハッシュ関数を実行させるよう構成された前記コンピュータ可読プログラムコード・デバイスは、ローリングハッシュ関数手段によって実行される、請求項26記載のコンピュータープログラム製品。
- 前記第1の予め決められた数パターンはビットパターンである、請求項26記載のコンピュータープログラム製品。
- コンピュータに前記ハッシュ関数を実行させるよう構成された前記コンピュータ可読プログラムコード・デバイスは、構造上効率的なnビットハッシュ関数手段によって実行される、請求項26記載のコンピュータープログラム製品。
- 前記構造上効率的なnビットハッシュ関数は、32ビットハッシュ関数を備える、請求項29記載のコンピュータープログラム製品。
- 前記第1の予め決められた数パターンは、連続ビットシーケンスを備える、請求項26記載のコンピュータープログラム製品。
- 前記連続ビットシーケンスは複数の末端ビットを備える、請求項31記載のコンピュータープログラム製品。
- 前記複数の末端ビットは11ビットを備える、請求項32記載のコンピュータープログラム製品。
- 前記11ビットは「0」である、請求項32記載のコンピュータープログラム製品。
- コンピュータに、前記ハッシュ値をモニタする前記ステップに対して閾値制限を決めるステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
前記閾値制限が達成された場合に、コンピュータに、前記モニタステップに対して少なくとも第2の予め決められた数パターンを確立するステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
前記第2の予め決められた数パターンが発生した場合に、コンピュータに、代わりに前記デジタルシーケンスに前記ブレークポイントをマークするステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
を更に備える、請求項26記載のコンピュータープログラム製品。 - 前記第2の予め決められた数パターンはビットパターンである、請求項35記載のコンピュータープログラム製品。
- 前記第2の予め決められた数パターンは、前記第1の予め決められた数パターンのサブセットである、請求項36記載のコンピュータープログラム製品。
- 前記第1の予め決められた数パターンは連続した11ビットシーケンスを備え、前記第2の予め決められた数パターンは前記11ビットのうちの10を備える、請求項37記載のコンピュータープログラム製品。
- 前記第1の予め決められた数パターンは11の連続した「0」を備え、前記第2の予め決められた数パターンは10の「0」を備える、請求項38記載のコンピュータープログラム製品。
- コンピュータに、前記ハッシュ値をモニタする前記ステップに対して閾値制限を決めるステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
コンピュータに、前記デジタルシーケンスに前記ブレークポイントをマークする確率を上げるステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
を更に備える、請求項26記載のコンピュータープログラム製品。 - コンピュータに、前記デジタルシーケンスに前記ブレークポイントをマークする前記確率を上げるステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスは、少なくとも所望のチャンクサイズの関数である、請求項40記載のコンピュータープログラム製品。
- コンピュータに、前記デジタルシーケンスに前記ブレークポイントをマークする前記確率を上げるステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスは、少なくとも前記デジタルシーケンスの現在の部分の長さの関数である、請求項40記載のコンピュータープログラム製品。
- コンピュータに、前記デジタルシーケンスに前記ブレークポイントをマークする前記確率を上げるステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスは、
コンピュータに、前記ハッシュ値をモニタする前記ステップに第2の予め決められた数パターンを利用するステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
前記第2の予め決められた数パターンが発生した場合に、コンピュータに、代わりに前記ブレークポイントをマークするステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
によって実行される、請求項40記載のコンピュータープログラム製品。 - コンピュータープログラム製品であって、前記コンピュータープログラム製品は、
第1のデジタルシーケンスで第1のブレークポイントが決定されるよう中に含まれるコンピュータ可読コードを有するコンピュータ可使用媒体を備え、前記コンピュータ可使用媒体が、
コンピュータに、前記第1のデジタルシーケンスのサブセットグループを決めるステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
ハッシュ値で第1の予め決められた数パターンを得るまで、コンピュータに、前記第1のデジタルシーケンスの開始位置から始まっている前記第1のデジタルシーケンスの前記サブセットグループにハッシュ関数を実行するステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
前記ハッシュ値で前記第1の予め決められた数パターンを得た場合に、コンピュータに、前記第1のブレークポイントをマークするステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
を備える、コンピュータープログラム製品。 - 前記数パターンはビットパターンを備える、請求項44記載のコンピュータープログラム製品。
- コンピュータに前記ハッシュ関数を実行させるよう構成された前記コンピュータ可読プログラムコード・デバイスは、ローリングハッシュ関数手段によって実行される、請求項44記載のコンピュータープログラム製品。
- 前記ハッシュ値で前記第1の予め決められた数パターンを再び得るまで、コンピュータに、前記第1のブレークポイントから前記第1のデジタルシーケンスのサブセットグループにハッシュ関数を更に実行するステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
前記ハッシュ値で前記第1の予め決められた数パターンを再び得た場合に、コンピュータに、前記第1のデジタルシーケンスに別のブレークポイントをマークするステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
を更に備える、請求項44記載のコンピュータープログラム製品。 - コンピュータに前記ハッシュ関数を実行させるよう構成された前記コンピュータ可読プログラムコード・デバイスは、ローリングハッシュ関数手段によって実行される、請求項47記載のコンピュータープログラム製品。
- コンピュータに、前記ハッシュ値で第2の予め決められた数パターンを決めるステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
確立された閾値制限を達成するまで、コンピュータに、前記第1のデジタルシーケンスの前記サブセットグループに前記ハッシュ関数を実行するステップを継続するステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
前記ハッシュ値で前記第2の予め決められた数パターンを得た場合、コンピュータに、代わりに前記第1のブレークポイントをマークするステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
を更に備える、請求項44記載のコンピュータープログラム製品。 - 前記ハッシュ値で前記第1の予め決められた数パターンを得るまで、コンピュータに、第2のデジタルシーケンスの開始位置から始まっている前記サブセットグループにハッシュ関数を実行するステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
前記ハッシュ値で前記第1の予め決められた数パターンを得た場合に、コンピュータに、前記第2のデジタルシーケンスに第2のブレークポイントをマークするステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
コンピュータに、前記第1のブレークポイントで予め決められたハッシュ値を前記第2のブレークポイントで予め決められたハッシュ値と比較するステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
コンピュータに、前記開始位置から前記第1のブレークポイントまでの前記第1のデジタルシーケンスの対応部分を、前記開始位置から前記第2のブレークポイントまでの前記第2のデジタルシーケンスの対応部分と同等視するステップを実行させるよう構成されたコンピュータ可読プログラムコード・デバイスと、
を更に備える、請求項44記載のコンピュータープログラム製品。 - 前記デジタルシーケンスに前記ブレークポイントをマークする前記確率を上げるステップは、前記シーケンスの一部のコンテンツ部分の関数である、請求項15記載の方法。
- 前記ハッシュ関数は、可能な出力値の範囲を均一にカバーしない優先ハッシュ合計を生じるよう選択される、請求項1記載の方法。
- 前記ハッシュ関数は、その実行中にダイナミックに選択されるか或いは変更される、請求項1記載の方法。
- 前記ハッシュ関数は、該ハッシュ関数への入力値として現在のロケーションの相対値または絶対値を含む、請求項1記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24592000P | 2000-11-06 | 2000-11-06 | |
US09/777,149 US6810398B2 (en) | 2000-11-06 | 2001-02-05 | System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences |
PCT/US2001/031306 WO2002037689A1 (en) | 2000-11-06 | 2001-10-04 | System for identifying common digital sequences |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004514968A true JP2004514968A (ja) | 2004-05-20 |
JP2004514968A5 JP2004514968A5 (ja) | 2005-12-22 |
JP4263477B2 JP4263477B2 (ja) | 2009-05-13 |
Family
ID=26937560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002540319A Expired - Lifetime JP4263477B2 (ja) | 2000-11-06 | 2001-10-04 | 共通デジタルシーケンスを識別するシステム |
Country Status (7)
Country | Link |
---|---|
US (2) | US6810398B2 (ja) |
EP (1) | EP1344321A4 (ja) |
JP (1) | JP4263477B2 (ja) |
KR (1) | KR100878861B1 (ja) |
AU (2) | AU9666501A (ja) |
CA (1) | CA2426577A1 (ja) |
WO (1) | WO2002037689A1 (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006031668A (ja) * | 2004-07-15 | 2006-02-02 | Hitachi Ltd | データ価値に基づく階層型ストレージ管理の為の方法と装置 |
JP2006039598A (ja) * | 2004-06-24 | 2006-02-09 | Katsuya Ishihara | コンピュータシステムのデータ連携方法及びデータ連携装置 |
JP2008015870A (ja) * | 2006-07-07 | 2008-01-24 | Fujitsu Social Science Laboratory Ltd | レイアウト変換機能を有するデータ処理装置およびデータ管理部品プログラムとそのプログラムを記録した記録媒体 |
JP2008513891A (ja) * | 2004-09-15 | 2008-05-01 | ディリジェント テクノロジーズ コーポレイション | データを検索し記憶するシステム及び方法 |
JP2009512077A (ja) * | 2005-10-12 | 2009-03-19 | データキャッスル・コーポレーション | データ・バックアップのための方法およびシステム |
JP2009545062A (ja) * | 2006-07-24 | 2009-12-17 | マーベル ワールド トレード リミテッド | RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ |
JP4592115B1 (ja) * | 2009-05-29 | 2010-12-01 | 誠 後藤 | ファイル格納システム、サーバ装置及びプログラム |
WO2012029258A1 (en) * | 2010-08-31 | 2012-03-08 | Nec Corporation | Storage system |
JP2012513069A (ja) * | 2008-12-18 | 2012-06-07 | コピウン,インク. | コンテンツアウェア・データ分割およびデータ重複排除のための方法ならびに装置 |
US8275782B2 (en) | 2004-09-15 | 2012-09-25 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
JP2013514557A (ja) * | 2010-08-31 | 2013-04-25 | 日本電気株式会社 | ストレージシステム |
JP2014511129A (ja) * | 2010-12-29 | 2014-05-08 | アマゾン・テクノロジーズ・インコーポレーテッド | データシステムにおける受信器側データの重複排除 |
Families Citing this family (144)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509420B2 (en) * | 2000-02-18 | 2009-03-24 | Emc Corporation | System and method for intelligent, globally distributed network storage |
US7080314B1 (en) * | 2000-06-16 | 2006-07-18 | Lucent Technologies Inc. | Document descriptor extraction method |
US6810398B2 (en) * | 2000-11-06 | 2004-10-26 | Avamar Technologies, Inc. | System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences |
US6904482B2 (en) * | 2001-11-20 | 2005-06-07 | Intel Corporation | Common boot environment for a modular server system |
US7370120B2 (en) * | 2001-12-07 | 2008-05-06 | Propel Software Corporation | Method and system for reducing network latency in data communication |
US7047488B2 (en) | 2002-07-19 | 2006-05-16 | Open Invention Network | Registry driven interoperability and exchange of documents |
EP2325743B1 (en) | 2003-01-31 | 2012-12-19 | Good Technology Corporation | Asynchronous real-time retrieval of data |
US7870218B2 (en) * | 2003-04-09 | 2011-01-11 | Nec Laboratories America, Inc. | Peer-to-peer system and method with improved utilization |
US9678967B2 (en) * | 2003-05-22 | 2017-06-13 | Callahan Cellular L.L.C. | Information source agent systems and methods for distributed data storage and management using content signatures |
US7949666B2 (en) * | 2004-07-09 | 2011-05-24 | Ricoh, Ltd. | Synchronizing distributed work through document logs |
US20060031230A1 (en) * | 2004-07-21 | 2006-02-09 | Kumar Sinha M | Data storage systems |
JP4810915B2 (ja) * | 2005-07-28 | 2011-11-09 | 日本電気株式会社 | データ検索装置及び方法、並びにコンピュータ・プログラム |
US7801871B2 (en) * | 2005-08-09 | 2010-09-21 | Nexsan Technologies Canada Inc. | Data archiving system |
US7747831B2 (en) | 2006-03-20 | 2010-06-29 | Emc Corporation | High efficiency portable archive and data protection using a virtualization layer |
US7831787B1 (en) | 2006-03-20 | 2010-11-09 | Emc Corporation | High efficiency portable archive with virtualization |
US8832045B2 (en) | 2006-04-07 | 2014-09-09 | Data Storage Group, Inc. | Data compression and storage techniques |
WO2007118243A2 (en) * | 2006-04-07 | 2007-10-18 | Data Storage Group | Data compression and storage techniques |
US9317222B1 (en) | 2006-04-24 | 2016-04-19 | Emc Corporation | Centralized content addressed storage |
US9235477B1 (en) | 2006-04-24 | 2016-01-12 | Emc Corporation | Virtualized backup solution |
US8190742B2 (en) * | 2006-04-25 | 2012-05-29 | Hewlett-Packard Development Company, L.P. | Distributed differential store with non-distributed objects and compression-enhancing data-object routing |
JP5204099B2 (ja) | 2006-05-05 | 2013-06-05 | ハイバー インコーポレイテッド | グループ・ベースの完全および増分コンピュータ・ファイル・バックアップ・システム、処理および装置 |
US8065273B2 (en) | 2006-05-10 | 2011-11-22 | Emc Corporation | Automated priority restores |
US9684739B1 (en) | 2006-05-11 | 2017-06-20 | EMC IP Holding Company LLC | View generator for managing data storage |
US7673099B1 (en) | 2006-06-30 | 2010-03-02 | Emc Corporation | Affinity caching |
US8261068B1 (en) | 2008-09-30 | 2012-09-04 | Emc Corporation | Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit |
US7720892B1 (en) | 2006-06-30 | 2010-05-18 | Emc Corporation | Bulk updates and tape synchronization |
US7930559B1 (en) | 2006-06-30 | 2011-04-19 | Emc Corporation | Decoupled data stream and access structures |
US7640262B1 (en) | 2006-06-30 | 2009-12-29 | Emc Corporation | Positional allocation |
US8416954B1 (en) | 2008-09-30 | 2013-04-09 | Emc Corporation | Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management |
US8479004B2 (en) | 2006-08-31 | 2013-07-02 | Ricoh Co., Ltd | Paper-based document logging |
US7725704B1 (en) | 2006-09-22 | 2010-05-25 | Emc Corporation | Techniques for performing a prioritized data restoration operation |
US8082231B1 (en) | 2006-09-22 | 2011-12-20 | Emc Corporation | Techniques using identifiers and signatures with data operations |
US7685171B1 (en) | 2006-09-22 | 2010-03-23 | Emc Corporation | Techniques for performing a restoration operation using device scanning |
DE102006055964A1 (de) | 2006-11-24 | 2008-05-29 | Bdt-Solutions Gmbh | Verfahren und Vorrichtung zur Datensicherung |
US7844581B2 (en) | 2006-12-01 | 2010-11-30 | Nec Laboratories America, Inc. | Methods and systems for data management using multiple selection criteria |
US8214517B2 (en) * | 2006-12-01 | 2012-07-03 | Nec Laboratories America, Inc. | Methods and systems for quick and efficient data management and/or processing |
CA2705379C (en) | 2006-12-04 | 2016-08-30 | Commvault Systems, Inc. | Systems and methods for creating copies of data, such as archive copies |
US7840537B2 (en) | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US7733910B2 (en) * | 2006-12-29 | 2010-06-08 | Riverbed Technology, Inc. | Data segmentation using shift-varying predicate function fingerprinting |
US7853750B2 (en) * | 2007-01-30 | 2010-12-14 | Netapp, Inc. | Method and an apparatus to store data patterns |
US8006094B2 (en) | 2007-02-21 | 2011-08-23 | Ricoh Co., Ltd. | Trustworthy timestamps and certifiable clocks using logs linked by cryptographic hashes |
US20080243688A1 (en) * | 2007-03-28 | 2008-10-02 | Hart Peter E | Method and Apparatus for Recording Transactions with a Portable Logging Device |
US8996483B2 (en) | 2007-03-28 | 2015-03-31 | Ricoh Co., Ltd. | Method and apparatus for recording associations with logs |
US8028106B2 (en) * | 2007-07-06 | 2011-09-27 | Proster Systems, Inc. | Hardware acceleration of commonality factoring with removable media |
CN101382885B (zh) * | 2007-09-06 | 2012-05-09 | 联想(北京)有限公司 | 一种数据文件的多版本控制方法及装置 |
US7783604B1 (en) * | 2007-12-31 | 2010-08-24 | Emc Corporation | Data de-duplication and offsite SaaS backup and archiving |
US7949630B1 (en) * | 2007-12-31 | 2011-05-24 | Emc Corporation | Storage of data addresses with hashes in backup systems |
US8825971B1 (en) | 2007-12-31 | 2014-09-02 | Emc Corporation | Age-out selection in hash caches |
US9098495B2 (en) | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8484162B2 (en) | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8219524B2 (en) | 2008-06-24 | 2012-07-10 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8984025B1 (en) * | 2008-06-30 | 2015-03-17 | Symantec Corporation | Method and apparatus for processing a transform function, a reference file and parameter information that represent a data file |
US8166263B2 (en) | 2008-07-03 | 2012-04-24 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US9063947B2 (en) * | 2008-08-18 | 2015-06-23 | Hewlett-Packard Development Company, L.P. | Detecting duplicative hierarchical sets of files |
JP5414223B2 (ja) * | 2008-09-16 | 2014-02-12 | 株式会社日立ソリューションズ | インターネットバックアップにおける転送データ管理システム |
AU2009296695B2 (en) | 2008-09-26 | 2013-08-01 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US8185733B2 (en) | 2008-10-02 | 2012-05-22 | Ricoh Co., Ltd. | Method and apparatus for automatically publishing content based identifiers |
US8117343B2 (en) * | 2008-10-28 | 2012-02-14 | Hewlett-Packard Development Company, L.P. | Landmark chunking of landmarkless regions |
US8412677B2 (en) | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
US8527465B1 (en) | 2008-12-24 | 2013-09-03 | Emc Corporation | System and method for modeling data change over time |
US8166314B1 (en) | 2008-12-30 | 2012-04-24 | Emc Corporation | Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown |
US8291497B1 (en) * | 2009-03-20 | 2012-10-16 | Symantec Corporation | Systems and methods for byte-level context diversity-based automatic malware signature generation |
US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US9141621B2 (en) | 2009-04-30 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Copying a differential data store into temporary storage media in response to a request |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
US8776158B1 (en) | 2009-09-30 | 2014-07-08 | Emc Corporation | Asynchronous shifting windows caching for forward and backward video streaming |
US9747105B2 (en) * | 2009-12-17 | 2017-08-29 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US8156306B1 (en) | 2009-12-18 | 2012-04-10 | Emc Corporation | Systems and methods for using thin provisioning to reclaim space identified by data reduction processes |
US8140821B1 (en) | 2009-12-18 | 2012-03-20 | Emc Corporation | Efficient read/write algorithms and associated mapping for block-level data reduction processes |
US9104872B2 (en) * | 2010-01-28 | 2015-08-11 | Bank Of America Corporation | Memory whitelisting |
US11301592B2 (en) | 2010-01-28 | 2022-04-12 | Pure Storage, Inc. | Distributed storage with data obfuscation and method for use therewith |
US8959366B2 (en) | 2010-01-28 | 2015-02-17 | Cleversafe, Inc. | De-sequencing encoded data slices |
US20190108366A1 (en) * | 2010-01-28 | 2019-04-11 | International Business Machines Corporation | Secure data transmission utilizing distributed storage |
US9135264B2 (en) * | 2010-03-12 | 2015-09-15 | Copiun, Inc. | Distributed catalog, data store, and indexing |
WO2011116087A2 (en) | 2010-03-16 | 2011-09-22 | Copiun, Inc. | Highly scalable and distributed data de-duplication |
JP5372853B2 (ja) | 2010-07-08 | 2013-12-18 | 株式会社日立製作所 | デジタルシーケンス特徴量算出方法及びデジタルシーケンス特徴量算出装置 |
EP2609517B1 (en) | 2010-08-24 | 2020-04-01 | BlackBerry Limited | Constant access gateway and de-duplicated data cache server |
US8578109B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US8935492B2 (en) | 2010-09-30 | 2015-01-13 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US8577851B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Content aligned block-based deduplication |
US20120150818A1 (en) | 2010-12-14 | 2012-06-14 | Commvault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US8930320B2 (en) | 2011-09-30 | 2015-01-06 | Accenture Global Services Limited | Distributed computing backup and recovery system |
WO2013070792A1 (en) | 2011-11-07 | 2013-05-16 | Nexgen Storage, Inc. | Primary data storage system with staged deduplication |
US9235589B2 (en) | 2011-12-13 | 2016-01-12 | International Business Machines Corporation | Optimizing storage allocation in a virtual desktop environment |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US9251186B2 (en) | 2012-06-13 | 2016-02-02 | Commvault Systems, Inc. | Backup using a client-side signature repository in a networked storage system |
US10114839B2 (en) | 2012-08-21 | 2018-10-30 | EMC IP Holding Company LLC | Format identification for fragmented image data |
US9405684B1 (en) * | 2012-09-28 | 2016-08-02 | Emc Corporation | System and method for cache management |
US20140143553A1 (en) * | 2012-11-20 | 2014-05-22 | Cloudioh Inc. | Method and Apparatus for Encapsulating and Encrypting Files in Computer Device |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US9665591B2 (en) | 2013-01-11 | 2017-05-30 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
CN104102576A (zh) * | 2013-04-12 | 2014-10-15 | 阿里巴巴集团控股有限公司 | 一种多版本测试方法和装置 |
WO2014184857A1 (ja) * | 2013-05-13 | 2014-11-20 | 株式会社日立製作所 | 重複排除システム及びその方法 |
US9690837B1 (en) * | 2013-06-28 | 2017-06-27 | EMC IP Holding Company LLC | Techniques for preserving redundant copies of metadata in a data storage system employing de-duplication |
US10339109B2 (en) | 2013-07-15 | 2019-07-02 | International Business Machines Corporation | Optimizing hash table structure for digest matching in a data deduplication system |
US9892048B2 (en) | 2013-07-15 | 2018-02-13 | International Business Machines Corporation | Tuning global digests caching in a data deduplication system |
US9286314B2 (en) | 2013-07-15 | 2016-03-15 | International Business Machines Corporation | Applying a maximum size bound on content defined segmentation of data |
US10296597B2 (en) | 2013-07-15 | 2019-05-21 | International Business Machines Corporation | Read ahead of digests in similarity based data deduplicaton |
US10133502B2 (en) | 2013-07-15 | 2018-11-20 | International Business Machines Corporation | Compatibility and inclusion of similarity element resolutions |
US9244830B2 (en) | 2013-07-15 | 2016-01-26 | Globalfoundries Inc. | Hierarchical content defined segmentation of data |
US9892127B2 (en) | 2013-07-15 | 2018-02-13 | International Business Machines Corporation | Global digests caching in a data deduplication system |
US10229132B2 (en) | 2013-07-15 | 2019-03-12 | International Business Machines Corporation | Optimizing digest based data matching in similarity based deduplication |
US10296598B2 (en) | 2013-07-15 | 2019-05-21 | International Business Machines Corporation | Digest based data matching in similarity based deduplication |
US10229131B2 (en) | 2013-07-15 | 2019-03-12 | International Business Machines Corporation | Digest block segmentation based on reference segmentation in a data deduplication system |
US9268786B2 (en) | 2013-07-15 | 2016-02-23 | International Business Machines Corporation | Applying a minimum size bound on content defined segmentation of data |
US9891857B2 (en) | 2013-07-15 | 2018-02-13 | International Business Machines Corporation | Utilizing global digests caching in similarity based data deduplication |
US9594766B2 (en) | 2013-07-15 | 2017-03-14 | International Business Machines Corporation | Reducing activation of similarity search in a data deduplication system |
US10789213B2 (en) | 2013-07-15 | 2020-09-29 | International Business Machines Corporation | Calculation of digest segmentations for input data using similar data in a data deduplication system |
US9836474B2 (en) | 2013-07-15 | 2017-12-05 | International Business Machines Corporation | Data structures for digests matching in a data deduplication system |
US9922042B2 (en) | 2013-07-15 | 2018-03-20 | International Business Machines Corporation | Producing alternative segmentations of data into blocks in a data deduplication system |
US10073853B2 (en) | 2013-07-17 | 2018-09-11 | International Business Machines Corporation | Adaptive similarity search resolution in a data deduplication system |
EP3080709A4 (en) * | 2013-09-09 | 2017-07-05 | Unitedlex Corp. | Interactive case management system |
US10776321B1 (en) * | 2013-12-07 | 2020-09-15 | Trilio Data, Inc. | Scalable de-duplication (dedupe) file system |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US10346256B1 (en) | 2014-12-19 | 2019-07-09 | EMC IP Holding Company LLC | Client side cache for deduplication backup systems |
KR101613146B1 (ko) | 2015-03-24 | 2016-04-18 | 주식회사 티맥스데이터 | 데이터베이스 암호화 방법 |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US10061663B2 (en) | 2015-12-30 | 2018-08-28 | Commvault Systems, Inc. | Rebuilding deduplication data in a distributed deduplication data storage system |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
CN107203567A (zh) | 2016-03-18 | 2017-09-26 | 伊姆西公司 | 用于搜索字串的方法和设备 |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10158483B1 (en) | 2018-04-30 | 2018-12-18 | Xanadu Big Data, Llc | Systems and methods for efficiently and securely storing data in a distributed data storage system |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US10896261B2 (en) | 2018-11-29 | 2021-01-19 | Battelle Energy Alliance, Llc | Systems and methods for control system security |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
EP3681094B1 (en) * | 2019-01-09 | 2021-11-10 | British Telecommunications public limited company | Impeding data access |
WO2020144027A1 (en) * | 2019-01-09 | 2020-07-16 | British Telecommunications Public Limited Company | Variable data protection |
WO2020197599A1 (en) | 2019-03-27 | 2020-10-01 | BigID Inc. | Dynamic document clustering and keyword extraction |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US20210173811A1 (en) | 2019-12-04 | 2021-06-10 | Commvault Systems, Inc. | Optimizing the restoration of deduplicated data stored in multi-node replicated file systems |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09114717A (ja) * | 1995-09-11 | 1997-05-02 | Sun Microsyst Inc | コンピュータ・オペレーティング・システムのジャーナリング・ファイル・システムのための単一トランザクション技術 |
US5990810A (en) * | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating such subblocks |
JP2003524243A (ja) * | 2000-02-18 | 2003-08-12 | アヴァマー テクノロジーズ インコーポレイテッド | 共通性ファクタリングシステムに用いられるハッシュファイルシステムおよび方法 |
Family Cites Families (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3668647A (en) | 1970-06-12 | 1972-06-06 | Ibm | File access system |
US4215402A (en) | 1978-10-23 | 1980-07-29 | International Business Machines Corporation | Hash index table hash generator apparatus |
US4404676A (en) * | 1981-03-30 | 1983-09-13 | Pioneer Electric Corporation | Partitioning method and apparatus using data-dependent boundary-marking code words |
US4887235A (en) | 1982-12-17 | 1989-12-12 | Symbolics, Inc. | Symbolic language data processing system |
US4649479A (en) | 1985-02-28 | 1987-03-10 | International Business Machines Corp. | Device driver and adapter binding technique |
US4901223A (en) | 1986-04-30 | 1990-02-13 | International Business Machines Corporation | Method and apparatus for application software control of echo response |
US4761785B1 (en) | 1986-06-12 | 1996-03-12 | Ibm | Parity spreading to enhance storage access |
US4887204A (en) | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
US4897781A (en) | 1987-02-13 | 1990-01-30 | International Business Machines Corporation | System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment |
US5005122A (en) | 1987-09-08 | 1991-04-02 | Digital Equipment Corporation | Arrangement with cooperating management server node and network service node |
US5109515A (en) | 1987-09-28 | 1992-04-28 | At&T Bell Laboratories | User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services |
US5485474A (en) * | 1988-02-25 | 1996-01-16 | The President And Fellows Of Harvard College | Scheme for information dispersal and reconstruction |
AU601328B2 (en) | 1988-05-26 | 1990-09-06 | Digital Equipment Corporation | Temporary state preservation for a distributed file service |
US5146568A (en) | 1988-09-06 | 1992-09-08 | Digital Equipment Corporation | Remote bootstrapping a node over communication link by initially requesting remote storage access program which emulates local disk to load other programs |
US4982324A (en) | 1988-12-19 | 1991-01-01 | International Business Machines Corporation | Method of and system for using device drivers to couple the communication and data storage of remote computer systems |
US5532694A (en) * | 1989-01-13 | 1996-07-02 | Stac Electronics, Inc. | Data compression apparatus and method using matching string searching and Huffman encoding |
US5089958A (en) | 1989-01-23 | 1992-02-18 | Vortex Systems, Inc. | Fault tolerant computer backup system |
US5018060A (en) | 1989-01-26 | 1991-05-21 | Ibm Corporation | Allocating data storage space of peripheral data storage devices using implied allocation based on user parameters |
US4929946A (en) * | 1989-02-09 | 1990-05-29 | Storage Technology Corporation | Adaptive data compression apparatus including run length encoding for a tape drive system |
JPH0833958B2 (ja) | 1989-05-30 | 1996-03-29 | 沖電気工業株式会社 | 顧客情報処理システム |
US5239637A (en) | 1989-06-30 | 1993-08-24 | Digital Equipment Corporation | Digital data management system for maintaining consistency of data in a shadow set |
US5454099A (en) | 1989-07-25 | 1995-09-26 | International Business Machines Corporation | CPU implemented method for backing up modified data sets in non-volatile store for recovery in the event of CPU failure |
US5133065A (en) | 1989-07-27 | 1992-07-21 | Personal Computer Peripherals Corporation | Backup computer program for networks |
US5163148A (en) | 1989-08-11 | 1992-11-10 | Digital Equipment Corporation | File backup system for producing a backup copy of a file which may be updated during backup |
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5276867A (en) | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data storage system with improved data migration |
US5276860A (en) | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data processor with improved backup storage |
US5218695A (en) | 1990-02-05 | 1993-06-08 | Epoch Systems, Inc. | File server system having high-speed write execution |
US5307481A (en) | 1990-02-28 | 1994-04-26 | Hitachi, Ltd. | Highly reliable online system |
US5479654A (en) | 1990-04-26 | 1995-12-26 | Squibb Data Systems, Inc. | Apparatus and method for reconstructing a file from a difference signature and an original file |
DE69126066T2 (de) | 1990-06-29 | 1997-09-25 | Oracle Corp | Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs |
US5239647A (en) | 1990-09-07 | 1993-08-24 | International Business Machines Corporation | Data storage hierarchy with shared storage level |
US5317728A (en) | 1990-09-07 | 1994-05-31 | International Business Machines Corporation | Storage management of a first file system using a second file system containing surrogate files and catalog management information |
US5210866A (en) | 1990-09-12 | 1993-05-11 | Storage Technology Corporation | Incremental disk backup system for a dynamically mapped data storage subsystem |
US5162986A (en) | 1990-10-19 | 1992-11-10 | Allen-Bradley Company, Inc. | Remote downloading and uploading of motion control program information to and from a motion control I/O module in a programmable controller |
US5155835A (en) | 1990-11-19 | 1992-10-13 | Storage Technology Corporation | Multilevel, hierarchical, dynamically mapped data storage subsystem |
US5278838A (en) | 1991-06-18 | 1994-01-11 | Ibm Corp. | Recovery from errors in a redundant array of disk drives |
US5239659A (en) | 1991-06-19 | 1993-08-24 | Storage Technology Corporation | Phantom duplex copy group apparatus for a disk drive array data storge subsystem |
US5347653A (en) | 1991-06-28 | 1994-09-13 | Digital Equipment Corporation | System for reconstructing prior versions of indexes using records indicating changes between successive versions of the indexes |
US5305389A (en) | 1991-08-30 | 1994-04-19 | Digital Equipment Corporation | Predictive cache system |
US5325505A (en) | 1991-09-04 | 1994-06-28 | Storage Technology Corporation | Intelligent storage manager for data storage apparatus having simulation capability |
US5367698A (en) | 1991-10-31 | 1994-11-22 | Epoch Systems, Inc. | Network file migration system |
EP0541281B1 (en) | 1991-11-04 | 1998-04-29 | Commvault Systems, Inc. | Incremental-computer-file backup using signatures |
US5802264A (en) | 1991-11-15 | 1998-09-01 | Fujitsu Limited | Background data reconstruction in a storage device array system |
US5369758A (en) | 1991-11-15 | 1994-11-29 | Fujitsu Limited | Checking for proper locations of storage devices in a storage array |
US5452454A (en) | 1991-12-10 | 1995-09-19 | Digital Equipment Corporation | Generic remote boot for networked workstations by creating local bootable code image |
US5367637A (en) | 1992-03-26 | 1994-11-22 | International Business Machines Corporation | Self-tuning virtual storage management for dedicated real-time computer system |
US5263154A (en) | 1992-04-20 | 1993-11-16 | International Business Machines Corporation | Method and system for incremental time zero backup copying of data |
US5448718A (en) | 1992-04-20 | 1995-09-05 | International Business Machines Corporation | Method and system for time zero backup session security |
US5586322A (en) | 1992-06-11 | 1996-12-17 | Beck; Robert E. | Workgroup organized network manager with workstation comparison system |
US5403639A (en) | 1992-09-02 | 1995-04-04 | Storage Technology Corporation | File server having snapshot application data groups |
US5497483A (en) | 1992-09-23 | 1996-03-05 | International Business Machines Corporation | Method and system for track transfer control during concurrent copy operations in a data processing storage subsystem |
US5530855A (en) | 1992-10-13 | 1996-06-25 | International Business Machines Corporation | Replicating a database by the sequential application of hierarchically sorted log records |
US5404508A (en) | 1992-12-03 | 1995-04-04 | Unisys Corporation | Data base backup and recovery system and method |
US5487160A (en) | 1992-12-04 | 1996-01-23 | At&T Global Information Solutions Company | Concurrent image backup for disk storage system |
US5404527A (en) | 1992-12-31 | 1995-04-04 | Unisys Corporation | System and method for remote program load |
US5544320A (en) | 1993-01-08 | 1996-08-06 | Konrad; Allan M. | Remote information service access system based on a client-server-service model |
US5659747A (en) | 1993-04-22 | 1997-08-19 | Microsoft Corporation | Multiple level undo/redo mechanism |
CA2166420C (en) * | 1993-07-01 | 2006-03-28 | James R. Woodhill | System and method for distributed storage management on networked computer systems |
US5452440A (en) | 1993-07-16 | 1995-09-19 | Zitel Corporation | Method and structure for evaluating and enhancing the performance of cache memory systems |
US5521597A (en) * | 1993-08-02 | 1996-05-28 | Mircosoft Corporation | Data compression for network transport |
US5515502A (en) | 1993-09-30 | 1996-05-07 | Sybase, Inc. | Data backup system with methods for stripe affinity backup to multiple archive devices |
US5771354A (en) | 1993-11-04 | 1998-06-23 | Crawford; Christopher M. | Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services |
JPH07297400A (ja) * | 1994-03-01 | 1995-11-10 | Hitachi Ltd | 半導体集積回路装置の製造方法およびそれにより得られた半導体集積回路装置 |
US5835953A (en) | 1994-10-13 | 1998-11-10 | Vinca Corporation | Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating |
US5574906A (en) | 1994-10-24 | 1996-11-12 | International Business Machines Corporation | System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing |
US5659743A (en) | 1994-12-05 | 1997-08-19 | Legent Corporation | Method and apparatus for a pattern based spaced management system |
US5513314A (en) | 1995-01-27 | 1996-04-30 | Auspex Systems, Inc. | Fault tolerant NFS server system and mirroring protocol |
US5604862A (en) | 1995-03-14 | 1997-02-18 | Network Integrity, Inc. | Continuously-snapshotted protection of computer files |
AU5386796A (en) | 1995-04-11 | 1996-10-30 | Kinetech, Inc. | Identifying data in a data processing system |
US5802297A (en) | 1995-07-03 | 1998-09-01 | Sun Microsystems, Inc. | Client-server computer system and method utilizing a local client disk drive as a data cache |
US5742811A (en) * | 1995-10-10 | 1998-04-21 | International Business Machines Corporation | Method and system for mining generalized sequential patterns in a large database |
US5778395A (en) | 1995-10-23 | 1998-07-07 | Stac, Inc. | System for backing up files from disk volumes on multiple nodes of a computer network |
US5608801A (en) * | 1995-11-16 | 1997-03-04 | Bell Communications Research, Inc. | Efficient cryptographic hash functions and methods for amplifying the security of hash functions and pseudo-random functions |
US5933104A (en) * | 1995-11-22 | 1999-08-03 | Microsoft Corporation | Method and system for compression and decompression using variable-sized offset and length fields |
US5754844A (en) | 1995-12-14 | 1998-05-19 | Sun Microsystems, Inc. | Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location |
US5765173A (en) | 1996-01-11 | 1998-06-09 | Connected Corporation | High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list |
US5909677A (en) * | 1996-06-18 | 1999-06-01 | Digital Equipment Corporation | Method for determining the resemblance of documents |
US5794254A (en) | 1996-12-03 | 1998-08-11 | Fairbanks Systems Group | Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets |
JPH10171350A (ja) * | 1996-12-10 | 1998-06-26 | Hitachi Ltd | ハッシュ値生成方法および装置 |
US6374250B2 (en) * | 1997-02-03 | 2002-04-16 | International Business Machines Corporation | System and method for differential compression of data from a plurality of binary sources |
US6044220A (en) * | 1997-02-25 | 2000-03-28 | Motorola, Inc. | Method and apparatus for operating a data processor to execute software written using a foreign instruction set |
US6016553A (en) | 1997-09-05 | 2000-01-18 | Wild File, Inc. | Method, software and apparatus for saving, using and recovering data |
JP3730385B2 (ja) * | 1997-12-05 | 2006-01-05 | 株式会社東芝 | デ−タ圧縮装置 |
US6029168A (en) | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
US6122754A (en) | 1998-05-22 | 2000-09-19 | International Business Machines Corporation | Method and system for data recovery using a distributed and scalable data structure |
US6320520B1 (en) | 1998-09-23 | 2001-11-20 | Digital Fountain | Information additive group code generator and decoder for communications systems |
US6307487B1 (en) | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US6611213B1 (en) * | 1999-03-22 | 2003-08-26 | Lucent Technologies Inc. | Method and apparatus for data compression using fingerprinting |
US6704730B2 (en) * | 2000-02-18 | 2004-03-09 | Avamar Technologies, Inc. | Hash file system and method for use in a commonality factoring system |
US7194504B2 (en) * | 2000-02-18 | 2007-03-20 | Avamar Technologies, Inc. | System and method for representing and maintaining redundant data sets utilizing DNA transmission and transcription techniques |
US6810398B2 (en) * | 2000-11-06 | 2004-10-26 | Avamar Technologies, Inc. | System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences |
US6667700B1 (en) * | 2002-10-30 | 2003-12-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US7281006B2 (en) * | 2003-10-23 | 2007-10-09 | International Business Machines Corporation | System and method for dividing data into predominantly fixed-sized chunks so that duplicate data chunks may be identified |
-
2001
- 2001-02-05 US US09/777,149 patent/US6810398B2/en not_active Expired - Lifetime
- 2001-10-04 WO PCT/US2001/031306 patent/WO2002037689A1/en active Application Filing
- 2001-10-04 KR KR1020037005977A patent/KR100878861B1/ko active IP Right Grant
- 2001-10-04 AU AU9666501A patent/AU9666501A/xx active Pending
- 2001-10-04 CA CA002426577A patent/CA2426577A1/en not_active Abandoned
- 2001-10-04 JP JP2002540319A patent/JP4263477B2/ja not_active Expired - Lifetime
- 2001-10-04 AU AU2001296665A patent/AU2001296665B2/en not_active Ceased
- 2001-10-04 EP EP01977554A patent/EP1344321A4/en not_active Withdrawn
-
2004
- 2004-06-04 US US10/861,796 patent/US7272602B2/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5990810A (en) * | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating such subblocks |
JPH09114717A (ja) * | 1995-09-11 | 1997-05-02 | Sun Microsyst Inc | コンピュータ・オペレーティング・システムのジャーナリング・ファイル・システムのための単一トランザクション技術 |
JP2003524243A (ja) * | 2000-02-18 | 2003-08-12 | アヴァマー テクノロジーズ インコーポレイテッド | 共通性ファクタリングシステムに用いられるハッシュファイルシステムおよび方法 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006039598A (ja) * | 2004-06-24 | 2006-02-09 | Katsuya Ishihara | コンピュータシステムのデータ連携方法及びデータ連携装置 |
JP4648723B2 (ja) * | 2004-07-15 | 2011-03-09 | 株式会社日立製作所 | データ価値に基づく階層型ストレージ管理の為の方法と装置 |
JP2006031668A (ja) * | 2004-07-15 | 2006-02-02 | Hitachi Ltd | データ価値に基づく階層型ストレージ管理の為の方法と装置 |
US8725705B2 (en) | 2004-09-15 | 2014-05-13 | International Business Machines Corporation | Systems and methods for searching of storage data with reduced bandwidth requirements |
US8275782B2 (en) | 2004-09-15 | 2012-09-25 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
US9400796B2 (en) | 2004-09-15 | 2016-07-26 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
US9430486B2 (en) | 2004-09-15 | 2016-08-30 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
US10282257B2 (en) | 2004-09-15 | 2019-05-07 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
JP2008513891A (ja) * | 2004-09-15 | 2008-05-01 | ディリジェント テクノロジーズ コーポレイション | データを検索し記憶するシステム及び方法 |
US10649854B2 (en) | 2004-09-15 | 2020-05-12 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
JP4939421B2 (ja) * | 2004-09-15 | 2012-05-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データを検索し記憶するシステム及び方法 |
US8275755B2 (en) | 2004-09-15 | 2012-09-25 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
US9378211B2 (en) | 2004-09-15 | 2016-06-28 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
US8275756B2 (en) | 2004-09-15 | 2012-09-25 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
JP2009512077A (ja) * | 2005-10-12 | 2009-03-19 | データキャッスル・コーポレーション | データ・バックアップのための方法およびシステム |
JP2008015870A (ja) * | 2006-07-07 | 2008-01-24 | Fujitsu Social Science Laboratory Ltd | レイアウト変換機能を有するデータ処理装置およびデータ管理部品プログラムとそのプログラムを記録した記録媒体 |
JP2009545062A (ja) * | 2006-07-24 | 2009-12-17 | マーベル ワールド トレード リミテッド | RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ |
JP2012513069A (ja) * | 2008-12-18 | 2012-06-07 | コピウン,インク. | コンテンツアウェア・データ分割およびデータ重複排除のための方法ならびに装置 |
JP2010277374A (ja) * | 2009-05-29 | 2010-12-09 | Makoto Goto | ファイル格納システム、サーバ装置及びプログラム |
JP4592115B1 (ja) * | 2009-05-29 | 2010-12-01 | 誠 後藤 | ファイル格納システム、サーバ装置及びプログラム |
WO2012029258A1 (en) * | 2010-08-31 | 2012-03-08 | Nec Corporation | Storage system |
US9201891B2 (en) | 2010-08-31 | 2015-12-01 | Nec Corporation | Storage system |
JP2013514558A (ja) * | 2010-08-31 | 2013-04-25 | 日本電気株式会社 | ストレージシステム |
JP2013514557A (ja) * | 2010-08-31 | 2013-04-25 | 日本電気株式会社 | ストレージシステム |
JP2014511129A (ja) * | 2010-12-29 | 2014-05-08 | アマゾン・テクノロジーズ・インコーポレーテッド | データシステムにおける受信器側データの重複排除 |
Also Published As
Publication number | Publication date |
---|---|
AU2001296665B2 (en) | 2006-11-09 |
AU9666501A (en) | 2002-05-15 |
KR100878861B1 (ko) | 2009-01-14 |
JP4263477B2 (ja) | 2009-05-13 |
US7272602B2 (en) | 2007-09-18 |
KR20030051758A (ko) | 2003-06-25 |
EP1344321A1 (en) | 2003-09-17 |
WO2002037689A1 (en) | 2002-05-10 |
US20040225655A1 (en) | 2004-11-11 |
US20020152218A1 (en) | 2002-10-17 |
US6810398B2 (en) | 2004-10-26 |
CA2426577A1 (en) | 2002-05-10 |
EP1344321A4 (en) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4263477B2 (ja) | 共通デジタルシーケンスを識別するシステム | |
JP4846156B2 (ja) | 共通性ファクタリングシステムに用いられるハッシュファイルシステムおよび方法 | |
AU2001296665A1 (en) | System for identifying common digital sequences | |
US6704730B2 (en) | Hash file system and method for use in a commonality factoring system | |
US8443000B2 (en) | Storage of data with composite hashes in backup systems | |
US9690802B2 (en) | Stream locality delta compression | |
US7478113B1 (en) | Boundaries | |
US7814149B1 (en) | Client side data deduplication | |
AU2001238269A1 (en) | Hash file system and method for use in a commonality factoring system | |
Min et al. | Efficient deduplication techniques for modern backup operation | |
EP2256934B1 (en) | Method and apparatus for content-aware and adaptive deduplication | |
US20100262797A1 (en) | Virtual machine data backup | |
WO2010033644A1 (en) | Matrix-based error correction and erasure code methods and apparatus and applications thereof | |
US9002800B1 (en) | Archive and backup virtualization | |
US10339124B2 (en) | Data fingerprint strengthening | |
US7949630B1 (en) | Storage of data addresses with hashes in backup systems | |
Kumar et al. | Differential Evolution based bucket indexed data deduplication for big data storage | |
Tian et al. | Sed‐Dedup: An efficient secure deduplication system with data modifications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041004 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041004 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20070530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080502 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080603 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080916 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081210 |
|
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: 20090113 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090212 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4263477 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |