JP4263477B2 - 共通デジタルシーケンスを識別するシステム - Google Patents

共通デジタルシーケンスを識別するシステム Download PDF

Info

Publication number
JP4263477B2
JP4263477B2 JP2002540319A JP2002540319A JP4263477B2 JP 4263477 B2 JP4263477 B2 JP 4263477B2 JP 2002540319 A JP2002540319 A JP 2002540319A JP 2002540319 A JP2002540319 A JP 2002540319A JP 4263477 B2 JP4263477 B2 JP 4263477B2
Authority
JP
Japan
Prior art keywords
hash value
hash
breakpoint
bit sequence
digital bit
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.)
Expired - Lifetime
Application number
JP2002540319A
Other languages
English (en)
Other versions
JP2004514968A5 (ja
JP2004514968A (ja
Inventor
グレゴリー, ハーガン モールトン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2004514968A publication Critical patent/JP2004514968A/ja
Publication of JP2004514968A5 publication Critical patent/JP2004514968A5/ja
Application granted granted Critical
Publication of JP4263477B2 publication Critical patent/JP4263477B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern 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)

Description

【0001】
【著作権に関する通知/許可】
この特許文献の開示の一部は、著作権保護の対象となる材料を含んでよい。著作権所有者は、米国登録商標特許庁の特許ファイルまたはレコードに記載されているような特許の開示の特許文献が誰によってファクシミリ再生されても異論はないが、それ以外においては、いかなるものに対しても全ての著作権の権利を確保する。以下の通知はソフトウェア、データおよび該当する場合には図面を含む以下の説明に適用される。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」は計算されるハッシュ合計である。単純なローリングハッシュは以下のように書くことができる:
hash = (hash << 1) | f[i];

【0054】
このハッシュは、大きくランダム化された整数値を生成する、入力バイト値(0〜255)によってインデックス付けされる第2のアレイ「スクランブル」を含むことによって、改善可能である:
hash = (hash >> 1) | scramble[f[i]];

【0055】
このローリングハッシュ関数の例は、32ビット値の範囲にわたってかなり均一な数をもたらす。
【0056】
閾値関数
閾値関数は、或る値が任意のレベルより上か下かを求める計算を実行する。 このアクションは不連続な結果を生じ、一部の値は閾値の上に、また他の値は閾値の下になる。閾値関数は、オプションとして、その入力値に対して或る変換を実行することもできる。例として:
threshold_value = (hash - 1) ^ hash;
あるいは:
threshold_value = ((hash - 1) ^ hash) + length;
【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:
int hash= 0; // ハッシュ合計の初期値はゼロである;
int sticky_bits = 0;
int last_sticky_point = 0;
for( int i=0; i < length_of_byte_sequence; i++ ) {
// シーケンス「f」の各バイトに対して、「hash」はファイルのローリングハッシュを表す;
hash = (hash >> 1) | scramble[f[i]];
// sticky_bitsは、より大きな値がより低い頻度で生成されるという特徴を有する非均一な値である;
sticky_bits = (hash - 1) ^ hash;
// この計算は、現在のバイトをパーティションの最後と考える必要があるかどうかを判断する;
if( sticky_bits > threshold )

output_sticky_point(i);
// 「last_sticky_point」は、既存のパーティションの長さを閾値計算の要素として求めるのに(オプションとして)用いられる前のパーティションのインデックスを覚えている;
last_sticky_point = i;


【0060】
本発明のシステムおよび方法は、値のシーケンスを通して順次に進み、ローリングハッシュ合計値を計算する。インデックス「i」におけるそのハッシュ合計値は、インデックスi-31〜iにおけるバイトにのみ依存している。31未満のiの場合、ハッシュ合計は0〜iの間のバイトに対する値を反映する。広範なバイト値を用いる「f」の入力テキストおよび適切に選択されたランダム化値のセットが「スクランブル」に存在すると仮定した場合、ハッシュ合計は適切に分散された値域を生じ、所望の32ビット数範囲に広くかつ均一にまたがる。一部のバイトシーケンスが適切に分散された数を生じない点に留意する必要があるが、この動作を有するバイトシーケンスは典型的な入力テキストに関しては一般的でない。
【0061】
「sticky_bits」値は、現在のハッシュ合計を使って計算される。この値は、非常に非均一な分散を有するよう、また32ビット値の全範囲にまたがる数を生成するようにできていて、以下の表1で示されるように、より大きな値はそれらの大きさに反比例して生成される:
【表1】
Figure 0004263477
【0062】
更なる変更なしで、この特定の例は、平均の95%となる、標準偏差を含むシーケンスの長さを有する統計プロパティを実証する。これを補正するために、「sticky_bits」値は、現在のシーケンスの長さと組み合わされ、より均一に間隔をあけられたパーティションを生成することができる。この点に関しては、「sticky_weighting」は、「sticky_bits」値の重み対現在のパーティションの長さを調節するのに用いられるファクタである:
sticky_weighting + (i-last_sticky_point)
【0063】
例2:
int hash= 0; // ハッシュ合計の初期値はゼロである;
int sticky_bits = 0;
int last_sticky_point = 0;
for( int i=0; i < length_of_byte_sequence; i++ ) {
// シーケンス「f」の各バイトに対して、「hash」はファイルのローリングハッシュを表す;
hash = (hash >> 1) | scramble[f[i]];
// sticky_bitsは、より大きな値がより低い頻度で生成されるという特徴を有する非均一な値である;
sticky_bits = (hash - 1) ^ hash;
// この計算は、現在のバイトをパーティションの最後と考える必要があるかどうかを判断する;
if( sticky_bits + sticky_weighting * (i-last_sticky_point) > threshold )

output_sticky_point(i);
// 「last_sticky_point」は、既存のパーティションの長さを閾値計算の要素として求めるのにオプションとして用いられる前のパーティションのインデックスを覚えている;
last_sticky_point = i;


【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 (17)

  1. デジタルビットシーケンスを分割する方法であって、
    少なくとも前記デジタルビットシーケンスの一部にハッシュ関数演算を実行するステップと、
    前記ハッシュ関数演算によって生成されたハッシュ値を第1の予め決められたビットパターンに対してモニタするステップと、
    前記第1の予め決められたビットパターンが発生した場合、前記デジタルビットシーケンスにブレークポイントをマークするステップとを備え、前記ハッシュ関数演算を実行する前記ステップは、
    ローリングハッシュ関数を使用して前記デジタルビットシーケンスの一部を検索し、前記デジタルビットシーケンスの現在のパーティションの長さに基づいてローリングハッシュ値を調節して、前記現在のパーティションにおける前記ブレークポイントを生成する可能性を増大させることを含み、前記現在のパーティションの長さが増加する時に、前記現在のパーティションにおける前記ブレークポイントの生成の可能性が増大するようになる、方法。
  2. 前記第1の予め決められたビットパターンは、連続ビットシーケンスを備える、請求項1記載の方法。
  3. 前記ハッシュ値をモニタする前記ステップに対して閾値制限を決めるステップであって、前記モニタしたハッシュ値が閾値を越えるかどうかの計算を行うことを含む、閾値制限を決めるステップと、
    前記閾値を越えた場合、第2の予め決められたビットパターンに対する、前記ハッシュ関数演算により生成されたハッシュ値をモニタするステップと、
    前記第2の予め決められたビットパターンが発生した場合、前記デジタルビットシーケンスに前記ブレークポイントをマークするステップと、
    を更に備える、請求項1記載の方法。
  4. 前記ハッシュ値をモニタする前記ステップに対して閾値制限を決めるステップであって、前記モニタしたハッシュ値が閾値を越えるかどうかの計算を行うことを含む、閾値制限を決めるステップと、
    前記モニタしたハッシュ値が閾値を越えた場合、前記モニタしたハッシュ値を変換して前記デジタルビットシーケンスに前記ブレークポイントを生成する確率を上げるステップと、
    を更に備える、請求項1記載の方法。
  5. 前記モニタしたハッシュ値を変換して前記デジタルビットシーケンスに前記ブレークポイントを生成する確率を上げる前記ステップは、少なくとも所望のパーティションサイズに応じて行われる、請求項4記載の方法。
  6. 前記モニタしたハッシュ値を変換して前記デジタルビットシーケンスに前記ブレークポイントを生成する確率を上げる前記ステップは、少なくとも前記デジタルシーケンスの前記現在のパーティションの長さに応じて行われる、請求項4記載の方法。
  7. 前記モニタしたハッシュ値を変換して前記デジタルビットシーケンスに前記ブレークポイントを生成する確率を上げる前記ステップは、
    前記ハッシュ値をモニタする前記ステップに第2の予め決められたビットパターンを利用するステップと、
    前記第2の予め決められたビットパターンが発生した場合、前記ブレークポイントをマークするステップと、
    によって実行される、請求項4記載の方法。
  8. 第1のデジタルビットシーケンスで第1のブレークポイントを決める方法であって、
    前記第1のデジタルビットシーケンスのビットサブセットグループを決めるステップと、
    ハッシュ値で第1の予め決められたビットパターンを得るまで、前記第1のデジタルビットシーケンスの開始位置から始まっている前記第1のデジタルビットシーケンスの前記ビットサブセットグループにハッシュ関数演算を実行してハッシュ値を生成するステップであって、前記第1のデジタルビットシーケンスの現在のパーティションの長さに基づいてハッシュ値が調節されて、前記現在のパーティションにおける前記第1のブレークポイントを生成する可能性が増大し、前記現在のパーティションの長さが増加する時に、前記現在のパーティションにおける前記第1のブレークポイントの生成の可能性が増大するようになる、ハッシュ値を生成するステップと、
    前記ハッシュ値で前記第1の予め決められたビットパターンを得た場合に、前記第1のブレークポイントをマークするステップと、
    を備える方法。
  9. 前記ビットパターンはビットパターンを備える、請求項8記載の方法。
  10. 前記ハッシュ値で前記第1の予め決められたビットパターンを再び得るまで、前記第1のブレークポイントから前記第1のデジタルビットシーケンスのビットサブセットグループにハッシュ関数演算を更に実行するステップと、
    前記ハッシュ値で前記第1の予め決められたビットパターンを再び得た場合に、前記第1のデジタルビットシーケンスに別のブレークポイントをマークするステップと、
    を更に備える、請求項8記載の方法。
  11. 前記モニタしたハッシュ値が確立された閾値値を越えると判定されるまで、前記第1のデジタルビットシーケンスの前記ビットサブセットグループに前記ハッシュ関数演算を実行するステップを継続するステップと、
    前記ハッシュ値で前記第2の予め決められたビット値が得られるまで、前記第1のデジタルビットシーケンスの前記ビットサブセットのグループのハッシュ関数演算を実行するステップと、
    前記ハッシュ値で前記第2の予め決められたビット値が得られた場合、前記第1のブレークポイントをマークするステップと、
    を更に備える、請求項8記載の方法。
  12. コンピュータープログラムであって、前記コンピュータープログラムは、
    ロセッサによって実行されたときに、コンピュータにデジタルビットシーケンスを分割する方法を行わせるコンピュータ読取可能な命令を含むコンピュータ読取可能なコードを備え、前記方法は、
    少なくとも一部の前記デジタルビットシーケンスに対してハッシュ関数演算を実行するステップと、
    第1の予め決められたビットパターンに対する前記ハッシュ関数演算によって生成されるハッシュ値をモニタするステップと、
    前記第1の予め決められたビットパターンが発生した場合に、前記デジタルビットシーケンスにブレークポイントをマークするステップとを備え、前記ハッシュ関数演算を実行する前記ステップは、ローリングハッシュ関数を使用して前記デジタルビットシーケンスの一部を検索し、前記デジタルビットシーケンスの現在のパーティションの長さに基づいてローリングハッシュ値を調節して、前記現在のパーティションにおけるブレークポイントを生成する可能性を増大させることを含み、前記現在のパーティションの長さが増加する時に、前記現在のパーティションにおける前記ブレークポイントの生成の可能性が増大するようになる、コンピュータープログラム。
  13. コンピュータープログラムであって、前記コンピュータープログラムは、
    ロセッサによって実行されたときに、コンピュータに第1のデジタルビットシーケンスにおける第1のブレークポイントを決める方法を行わせるコンピュータ読取可能な命令を含むコンピュータ読取可能なコードを備え、前記方法は、
    前記第1のデジタルビットシーケンスのビットサブセットグループを決めるステップと、
    ハッシュ値で第1の予め決められたビットパターンを得て第1のブレークポイントを生成するまで、前記第1のデジタルビットシーケンスの開始位置から始まっている前記第1のデジタルビットシーケンスの前記ビットサブセットグループにハッシュ関数演算を実行してハッシュ値を生成するステップであって、前記第1のデジタルビットシーケンスの現在のパーティションの長さに基づいてハッシュ値を調節して、前記現在のパーティションにおける前記第1のブレークポイントを生成する可能性を増大させることを含み、前記現在のパーティションの長さが増加する時に、前記現在のパーティションにおける前記第1のブレークポイントの生成の可能性が増大するようになる、ハッシュ値を生成するステップと、
    前記ハッシュ値で前記第1の予め決められたビットパターンを得た場合に、前記第1のブレークポイントをマークするステップと、
    を備える、コンピュータープログラム。
  14. 前記モニタしたハッシュ値を変換して前記デジタルビットシーケンスに前記ブレークポイントを生成する前記確率を上げる前記ステップは、前記デジタルビットシーケンスに含まれるコンテンツに応じて行われる、請求項4記載の方法。
  15. 前記ハッシュ関数演算は、可能な出力値の範囲を均一にカバーしない優先ハッシュ合計を生じるよう選択される、請求項1記載の方法。
  16. 前記ハッシュ関数演算は、その実行中にダイナミックに選択されるか或いは変更される、請求項1記載の方法。
  17. 前記ハッシュ関数演算は、該ハッシュ関数への入力値として現在のロケーションの相対値または絶対値を含む、請求項1記載の方法。
JP2002540319A 2000-11-06 2001-10-04 共通デジタルシーケンスを識別するシステム Expired - Lifetime JP4263477B2 (ja)

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 JP2004514968A (ja) 2004-05-20
JP2004514968A5 JP2004514968A5 (ja) 2005-12-22
JP4263477B2 true 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)

Families Citing this family (156)

* Cited by examiner, † Cited by third party
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
JP2006039598A (ja) * 2004-06-24 2006-02-09 Katsuya Ishihara コンピュータシステムのデータ連携方法及びデータ連携装置
US7949666B2 (en) * 2004-07-09 2011-05-24 Ricoh, Ltd. Synchronizing distributed work through document logs
US7177883B2 (en) * 2004-07-15 2007-02-13 Hitachi, Ltd. Method and apparatus for hierarchical storage management based on data value and user interest
US20060031230A1 (en) * 2004-07-21 2006-02-09 Kumar Sinha M Data storage systems
US7523098B2 (en) * 2004-09-15 2009-04-21 International Business Machines Corporation Systems and methods for efficient data searching, storage and reduction
US8725705B2 (en) * 2004-09-15 2014-05-13 International Business Machines Corporation Systems and methods for searching of storage data with reduced bandwidth requirements
JP4810915B2 (ja) * 2005-07-28 2011-11-09 日本電気株式会社 データ検索装置及び方法、並びにコンピュータ・プログラム
US7801871B2 (en) * 2005-08-09 2010-09-21 Nexsan Technologies Canada Inc. Data archiving system
KR20080066790A (ko) * 2005-10-12 2008-07-16 데이터캐슬 코퍼레이션 데이터 백업 시스템 및 방법
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
JP2008015870A (ja) * 2006-07-07 2008-01-24 Fujitsu Social Science Laboratory Ltd レイアウト変換機能を有するデータ処理装置およびデータ管理部品プログラムとそのプログラムを記録した記録媒体
US8046629B1 (en) * 2006-07-24 2011-10-25 Marvell World Trade Ltd. File server for redundant array of independent disks (RAID) system
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
AU2009335697A1 (en) * 2008-12-18 2011-08-04 Copiun, Inc. Methods and apparatus for content-aware data partitioning and data de-duplication
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
JP4592115B1 (ja) * 2009-05-29 2010-12-01 誠 後藤 ファイル格納システム、サーバ装置及びプログラム
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
US9110839B2 (en) * 2010-08-31 2015-08-18 Nec Corporation Storage system for storing target data and address data
JP5423896B2 (ja) * 2010-08-31 2014-02-19 日本電気株式会社 ストレージシステム
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
AU2011382479B2 (en) * 2010-12-29 2015-07-30 Amazon Technologies, Inc. Receiver-side data deduplication in data systems
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

Family Cites Families (97)

* Cited by examiner, † Cited by third party
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
WO1996025801A1 (en) * 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
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
US5870757A (en) * 1995-09-11 1999-02-09 Sun Microsystems, Inc. Single transaction technique for a journaling file system of a computer operating system
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
JP4846156B2 (ja) * 2000-02-18 2011-12-28 イーエムシー コーポレイション 共通性ファクタリングシステムに用いられるハッシュファイルシステムおよび方法
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

Also Published As

Publication number Publication date
AU2001296665B2 (en) 2006-11-09
AU9666501A (en) 2002-05-15
KR100878861B1 (ko) 2009-01-14
US7272602B2 (en) 2007-09-18
KR20030051758A (ko) 2003-06-25
JP2004514968A (ja) 2004-05-20
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
US7478113B1 (en) Boundaries
US7814149B1 (en) Client side data deduplication
US8443000B2 (en) Storage of data with composite hashes in backup systems
US9626373B2 (en) Optimizing data block size for deduplication
EP2147437B1 (en) Seeding replication
AU2001238269A1 (en) Hash file system and method for use in a commonality factoring system
US9002800B1 (en) Archive and backup virtualization
US10339124B2 (en) Data fingerprint strengthening
US9098513B1 (en) Methods and systems for differencing orderly dependent files
US7949630B1 (en) Storage of data addresses with hashes in backup systems
US8464097B1 (en) Method and apparatus for efficiently creating backup files with less redundancy
Tian et al. Sed‐Dedup: An efficient secure deduplication system with data modifications
US11204893B2 (en) Methods for facilitating efficient storage operations using variable length encoded segment maps for deduplicated objects and devices thereof
CN114880297A (zh) 基于指纹的分布式的数据去重方法及系统

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