JP2014508990A - コンテンツベースのファイルチャンキング - Google Patents

コンテンツベースのファイルチャンキング Download PDF

Info

Publication number
JP2014508990A
JP2014508990A JP2013549560A JP2013549560A JP2014508990A JP 2014508990 A JP2014508990 A JP 2014508990A JP 2013549560 A JP2013549560 A JP 2013549560A JP 2013549560 A JP2013549560 A JP 2013549560A JP 2014508990 A JP2014508990 A JP 2014508990A
Authority
JP
Japan
Prior art keywords
data item
data
content
chunking
chunk
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.)
Pending
Application number
JP2013549560A
Other languages
English (en)
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2014508990A publication Critical patent/JP2014508990A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities

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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

電子データを送信するための方法、システム及び装置であって、コンピュータ記憶媒体上にエンコードされたコンピュータプログラムを含む。一般に、本明細書に記載の発明の主題の一側面は、チャンクされるべきデータアイテムを識別し、前記データアイテムのタイプを判定し、前記データアイテムのタイプが、特定の1以上のタイプのうちの1つであるかを判定し、前記データアイテムのタイプが、前記特定の1以上のタイプのうちの1つに該当しないと判定された場合に、前記データアイテムの第1のチャンキングを実行し、前記データアイテムのタイプが、前記特定の1以上のタイプのうちの1つに該当すると判定された場合に、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第2のチャンキングを実行する動作を含む方法(300、400、700)として実現できる。
【選択図】図3

Description

本発明は、電子データの送信及び格納に関する。
例えばファイルのようなデータアイテムは、しばしば異なる装置へ送信される。例えば、それらは他の装置(例えば、ピア装置)との間で共有されたり、或いは、(例えば、データアイテムのバックアップ或いは遠隔ストレージとして)サーバや他の格納装置へ送信される。サイズの大きいデータアイテムの送信はネットワークのリソースを消費することになり、送信完了前に送信が中断すると問題が発生する。結果として、従来的なシステムでは典型的に、宛先装置へデータアイテムを送信する前にサイズの大きなデータアイテムを複数のチャンクに分割している。
本発明は、電子データの送信及び格納に関する。
一般的に、本明細書に記述される発明の主題の一側面は、チャンクされるべきデータアイテムを識別する工程と、データアイテムのタイプを判定する工程と、データアイテムのタイプが、特定の1以上のタイプのうちの1つであるかを判定する工程と、データアイテムのタイプが、特定の1以上のタイプのうちの1つに該当しないと判定された場合に、データアイテムの第1のチャンキングを実行する工程と、データアイテムのタイプが、特定の1以上のタイプのうちの1つに該当すると判定された場合に、データアイテムの特定のコンテンツ部分に基づくデータアイテムの第2のチャンキングを実行する工程とを実行する方法として実現できる。当該側面の他の実施形態は、対応するシステム、装置、及び、コンピュータ記憶装置上に記憶されたコンピュータプログラムであって、それぞれが上記方法の動作を実行するように構成されている。
これら及び他の実施形態は、それぞれ任意に以下の特徴を含むことができる。第2のチャンキングを実行する工程は、データアイテムを検査する工程と、検査に基づきデータアイテム内のコンテンツ部分のデータマップを作成する工程と、データマップに基づいてデータアイテムをチャンキングする工程とを含む。第2のチャンキングを実行する工程は、コンテンツベースのチャンキング境界を定義するために生成されたデータマップを利用する工程を含む。データマップを作成する工程は、データアイテム内の異なるタイプのコンテンツを識別する工程を含む。データアイテムのタイプを識別する工程は、データアイテムと関連づけられた拡張子を識別する工程を含む。データマップに基づいてデータアイテムをチャンキングする工程は、異なるタイプのコンテンツを個別にチャンキングする工程を含む。当該方法は、チャンクを宛先に送信する工程を更に備える。当該方法は更に、データアイテムの要求を受信したのに応じて、各チャンクがチャンク識別子を有するチャンクリストを要求元に送信する工程と、チャンクリストからのデータアイテムの1以上のチャンクの要求を受信する工程であって、該要求された1以上のチャンクはデータアイテムの以前のバージョンから変更されたチャンクである、工程と、要求された1以上のチャンクを送信する工程とを備える。
一般的に、本明細書に記述される発明の主題の一側面は、チャンクすべきデータアイテムを受信する工程と、データアイテムのタイプを識別する工程と、データアイテムのデータを検査し、データアイテムのコンテンツベースのマップを作成するために識別されたタイプを利用する工程と、データアイテムの異なるコンテンツ部分に対して実行されるべき個々のチャンキングを識別するために、コンテンツベースのマップを利用する工程と、データアイテム内のコンテンツに基づいてデータアイテムをチャンキングする工程とを実行する方法として実現できる。当該側面の他の実施形態は、対応するシステム、装置、及び、コンピュータ記憶装置上に記憶されたコンピュータプログラムであって、それぞれが上記方法の動作を実行するように構成されている。
これら及び他の実施形態は、それぞれ任意に以下の特徴を含むことができる。コンテンツベースのマップの作成には、データアイテム内の異なるタイプのコンテンツの識別が含まれる。データアイテムをチャンキングする工程は、データアイテム内の識別されたコンテンツの1以上のタイプについて個別のチャンキング動作を実行する工程を含む。
本明細書に記載する発明の主題の特定の実施形態は、1つ以上の以下の効果を実現するために実装することができる。データアイテムのコンテンツベースのチャンキングにより、データアイテムの変化がないままの部分について同一のチャンクを維持することができる。これにより、データアイテムのその後のバージョンのためのチャンクの重複除外を向上させることができる。結果として、格納、送信するチャンク数を削減して、処理コストやネットワーク利用も減らすことができる。
本明細書に記載する発明の主題の1つ以上の実施形態の詳細は、添付の図面及び以下の発明の詳細な説明を参照して説明される。発明の主題の他の特徴、側面及び利点は発明の詳細な説明、図面及び特許請求の範囲の記載から明らかになるであろう。
チャンク・データアイテムを送信するためのピアシステムの一例を示すブロック図。 チャンク・データアイテムを送信するためのクライアント・サーバ・システムの一例を示すブロック図。 チャンク・データアイテムを送信するための処理の一例を示すフロー図。 コンテンツベース・チャンキングの処理の一例を示すフロー図。 プレゼンテーションファイルのコンテンツベースのマッピングの一例を示す図。 音声ファイルのコンテンツベースのマッピングの一例を示す図。 データアイテムの要求に応答してチャンクを提供するための処理の一例を示すフロー図。 システム構成の一例を示す図。 なお、図面中の類似の参照番号や記号は、類似の要素を示すものである。
データアイテムは、例えばピア装置や他の宛先位置(例えば、遠隔の格納装置やバックアップサーバ)への送信のために2つ以上のチャンクに分割される。特定のタイプのデータアイテムは、データアイテムのコンテンツに基づいて複数のチャンクに分割することができる。特定のタイプではない他のデータアイテムは、データアイテムのコンテンツを利用しないチャンキング処理に従い複数のチャンクに分割することができる。
コンテンツベースのチャンキングにより、バージョン間で不変のデータの量を増加させることができる。データアイテムのより新しいバージョンのチャンクを、宛先位置に格納されているデータアイテムのそれ以前のバージョンのチャンクと比較することができる。変更があったチャンクのみが宛先位置に送信される。これにより、送信される及び/又は格納されるデータアイテムのバージョンからコンテンツの重複が減る。このことを、本明細書では「重複除外(de-duplication)」という。
図1及び2は、チャンクデータアイテムを送信可能なシステムの例を示す。図1はチャンクデータアイテムを送信するためのピアシステム100の一例を示すブロック図である。ピアシステム100は、ネットワーク110を介して結合される装置102及びピア装置104、106及び108を含む。装置102及びピア装置104、106及び108は、様々なタイプのコンピューティング装置であってもよく、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット装置、移動体装置、PDA等を含むがこれらに限定されるものではない。ネットワーク110はローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたはインターネットの一部であってもよい。
装置102はデータ112及びデータチャンカ114を含むものとして示される。データ112は、装置に格納されている様々なタイプのデータアイテムを含む。例えば、電子メール、写真、ドキュメントなどである。データチャンカ114は、図3及び図4との関連で後述するように、データ112に格納されている1以上のタイプのデータアイテムを分割することができる。分割されたデータアイテムは、例えば、(例えば電子メールの)同期、或いは、特定データアイテム(例えば、特定のプレゼンテーション・ドキュメント)の送信のために、装置102から1以上のピア装置104、106及び108へ送信することができる。所定のピア装置はデータアイテムを再構成するためにチャンクを結合することができ、また、必要となるまでチャンクを格納しておくことができる。
図2はチャンクデータアイテムを送信するためのクライアント・サーバ・システム200の一例を示すブロック図である。クライアント・サーバ・システム200はクライアント装置202、クライアント装置204、サーバ206及びネットワーク208を含む。クライアント装置202及び204は様々なタイプのコンピューティング装置であってもよく、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット装置、移動体装置、PDA等を含むがこれらに限定されるものではない。ネットワーク208はローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたはインターネットの一部であってもよい。
クライアント装置202はデータ210及びデータチャンカ212を含む。同様に、クライアント装置204はデータ218及びデータチャンカ220を含む。データチャンカ212及び220は、図3及び図4との関連で後述するように、データ112に格納されている1以上のタイプのデータアイテムを分割することができる。クライアント装置202及び204は単一の個人(例えば、特定ユーザのデスクトップ装置や移動体装置)と関連づけられてもよいし、或いは、特定のユーザに帰属してもよい。例えば、2人のユーザが同一のバックアップ・ストレージサーバを利用してもよい。
サーバ206は、クライアント装置202及び204から受信した格納データ214を含む。サーバ206はクライアント装置202及び204からチャンクとして格納するためにデータアイテムを受信することができる。いくつかの実装においては、データアイテムは、例えばチャンクストレージ内にチャンクとして格納され、例えばチャンクを格納するピア装置によりデータアイテムが開かれる場合のような、必要とされる場合に再構成される。他の実装例では、必要に応じて、例えばデータアイテムが要求される場合やデータアイテムの一部のみが必要とされる場合に、格納されたチャンクがフェッチされる。更に他の実装例では、チャンクは、格納データ214として格納するために、各データアイテムに再構成される。いくつかの実装例では、サーバ206はデータチャンカ216を含む。サーバ206は、該サーバ206上に格納されている要求されたデータアイテムを、例えば要求元クライアント装置へ送信する前にチャンキングすることができる。
図3はチャンク・データアイテムを送信するための処理300の一例を示すフロー図である。処理300は、例えば1つ以上のコンピューティング装置を含むシステム、例えば1以上のコンピュータ、移動体装置、タブレット装置又はサーバにより実行することができる。
ステップ302において送信すべきデータアイテムが識別される。送信すべきデータアイテムは、例えば特定の受信者へデータアイテムを送信するのに備えて識別することができる。例えば、データアイテムの要求を別の装置から受信することができる。別の例では、例えば、スケジュールや他の基準に従い、データアイテムを別の装置に格納するために送信することができる。データアイテムは、ファイル、フォルダ又は他のデータであってもよい。例えば、データアイテムは、ドキュメント、メディアファイル(例えば、画像、音声又は動画)、電子メール又は他のタイプのファイルデータであってもよい。
ステップ304では、データアイテムが特定のタイプのものであるかどうかが判定される。データアイテムのタイプは、例えばデータアイテムの拡張子を利用して識別することができる。他の実装例では、データのタイプは他のデータ、例えばファイルヘッダ、マジックナンバ、又は、データアイテムの特定のタイプを示す他のデータパターンを用いて識別することができる。データアイテムのタイプは特定タイプのリストと比較して、一致するかどうかを判定することができる。特定タイプのリストは、例えば特定のチャンキング処理が行われたタイプに従って生成することができる。例えば、コンテンツベースのチャンキング処理が、MP3音声ファイル(即ち、MPEG1又はMPEG2のオーディオ・レイヤー3フォーマットでエンコードされた音声ファイル)について行われた場合、このタイプはタイプのリストに含まれる。
ファイルが特定タイプのいずれかではないと判定された場合、ステップ306で第1のタイプのチャンキングがデータアイテムに対して実行される。第1のタイプのチャンキングはデータ長に基づくものであり、データアイテムの特定のコンテンツ部分に基づくものではない。データアイテムを特定のチャンクサイズ及びチャンクするデータ量に基づいて一連のチャンクにチャンキングする、様々なチャンキング技術を利用することができる。第1のタイプのチャンキングは、データアイテムのサイズに基づく固定長または可変長のチャンキングであってもよい。固定長チャンキングは、固定サイズのチャンクを生成する。その一方、可変長チャンキングは特定のチャンキング基準に従った範囲内のチャンクサイズを許容する。
第1のタイプのチャンキングの従来的な処理工程は、まず、チャンキングすべきデータ量が最小チャンクサイズよりも大きいかどうかの判定を含む。もし、データ量が最小チャンクサイズよりも大きくない場合、チャンキングは不要である。もしチャンキングすべきデータの量が最小チャンクサイズよりも大きい場合、データの各チャンクのチャンク端が識別される。当該処理には、チャンキングする特定のバイト数のデータアイテムを定義するために1以上のチェックサム処理(例えば、Rabinチェックサムのようなローリングチャックサム)を含むことができる。特に、固定サイズチャンクを使用せず、ある範囲のチャンクサイズを許容する場合、チャンク端を識別する場合には、ローリングチェックサムの結果に応じて最小チャンクサイズから始まって、最大チャンクサイズまで増加させていく。よって、各チャンクサイズは最小チャンク≦チャンク≦最大チャンクの範囲内に収まる。
各チャンクには、例えば、チャンクデータのハッシュから得られる特定のチャンク識別子が割り当てられる。特に、ある実装例では、セキュア・ハッシュ・アルゴリズム(SHA)を利用してチャンク識別子を生成することができる。当該処理は、チャンクされる残りのデータが最小チャンクサイズより小さくなるまで、データアイテムのうちの残りのデータについて後続チャンクを生成するために繰り返される。
ステップ312においてチャンクは宛先に送信される。チャンクが生成されると、特定の遅延後、或いは、データアイテムの全てのチャンクが生成された後にそれを送信することができる。いくつかの実装例では、ネットワーク帯域が判定され、チャンクをいつ、どんな速度で送信するかを決定するための要素として利用される。
データが特定のタイプを有する場合、ステップ308において、データアイテム内のデータの特定部分を識別するためにデータアイテムが検査(introspect)される。例えば、プレゼンテーションファイル(例えば、スライドプレゼンテーション)の場合、当該検査では、例えば、スライドインデックス、画像、スライドテキストといったコンテンツのタイプ毎にファイルの部分を識別することができる。識別されたコンテンツ部分は、ステップ310でコンテンツベースのチャンキングをデータアイテムに対して実行するために利用することができる。
コンテンツベースのチャンキングの更なる詳細は、図4を参照して以下に記述される。第1のタイプのチャンキングと同様に、ステップ312においてコンテンツベースのチャンキングにより生成されるチャンクは宛先に送信される。
図4はコンテンツベースのチャンキングの処理400の一例を示すフロー図である。処理400は、例えば1つ以上のコンピューティング装置を含むシステム、例えば1以上のコンピュータ、移動体装置、タブレット装置又はサーバにより実行することができる。
ステップ402においてチャンキングすべきデータアイテムが識別される。チャンキングすべきデータアイテムは例えば、図3との関連で上述するように別の装置からの特定のデータアイテムの要求や、別の装置(例えば、バックアップ、遠隔ストレージ又はピア)へ特定のデータアイテムを送信するコマンドに基づいて識別することができる。データアイテムは、特定サイズを超える場合に、チャンキングのために識別することができる。当該特定サイズはチャンキングサイズと同一か、又は、それより大きいサイズである。
ステップ404では、データアイテムについてコンテンツベースのチャンキングを実行すべきかどうかが判定される。コンテンツベースのチャンキングを実行すべきかどうかの判定は、特定タイプのグループのいずれかのタイプと、データアイテムのタイプとが一致するかどうかに基づいて行うことができる。特に、データアイテムのタイプを識別し、コンテンツベースのチャンキングが利用可能なリストと比較する。
ステップ406で、データアイテムを検査するためにデータアイテムのタイプが利用される。データアイテムの検査により、データアイテム内のコンテンツの異なるタイプを識別することができる。例えば、スライドプレゼンテーションは、スライドインデックス、画像、テキストなどを含むことができる。同様に、音声ファイルは、音声データ(例えば、歌、或いは、他の音声コンテンツ)に加えてメタデータタグを含む。
ステップ408では、当該検査に基づいてデータアイテムについてコンテンツベースのマップを作成する。特に、コンテンツの異なるタイプに対応するデータアイテムの部分(異なるコンテンツ部分)が順に識別される。よって、例えば、音声データアイテムを単純に識別するのではなく、音声データに対応する音声ファイルの部分と、タグに対応する部分とを個別に識別することができる。
ステップ410において、コンテンツベースのマップはデータアイテムのチャンキングに利用される。コンテンツベースのマップは特に、データアイテムのバージョン間で変化しにくいコンテンツ部分を識別するために利用することができる。例えば、音声ファイルであれば、タグは音声が再生される度に変更されうる。例えば、再生回数は更新されるし、最後の再生日も更新される。しかし、音声コンテンツ自体に対応するデータ(例えば、歌そのもの)は典型的には不変のままである。コンテンツベースのチャンキングでは、バージョン間或いは利用の間に変化しにくいコンテンツがデータアイテムがチャンキングされる度に同一チャンクを有するように、データアイテム内の異なるタイプのコンテンツを個別にチャンキングすることができる。
実行される処理或いはチャンキングのタイプは、コンテンツが変化しやすいかどうかに依存しえる。例えば、データアイテム内の異なるタイプのコンテンツの間にチャンキング境界(例えば、それを超えてチャンキングできない境界)を設定することができる。また、実行されるチャンキングタイプは、特定のコンテンツに応じて変化させることができる。
例えば、プレゼンテーションファイル内の画像は固定サイズチャンクにチャンキングすることができる。特に、各画像は個別にチャンクすることができる。また、画像データ及びタグデータは個別にチャンクすることができる。特に、画像データとタグデータの双方を、例えば固定サイズチャンクにおいて個別にチャンクすることができる。固定サイズチャンクは、最終チャンクまでそれぞれ同一サイズを有するが、最終チャンクは残存データのサイズに応じてより小さくてもよい。例えば、アイテムが1.6メガバイト(MB)のサイズを有し、固定チャンクサイズが1MBの場合、1MBの第1のチャンクと0.6MBの第2のチャンクの2個のチャンクが生成される。写真は変化しにくいため、これらの固定サイズチャンクは、当該データアイテムを再チャンキングする場合でも変化しにくい。チャンク境界により、固定サイズチャンクを埋めるために他のコンテンツから追加のデータ(例えば、プレゼンテーションファイル内で当該画像の後に続くデータ)が付加されることもない。よって、その後のバージョンでコンテンツの一部が変更された場合であっても、それらが他のコンテンツ部分へ入り込んできてそのチャンクを変化させることはない。
別の例では、所与の修正のために変化するチャンク数を減らすために、変化しやすい部分について、(例えば、図3と関連して記述したような)より可変なチャンクサイズを使ってチャンキングを行うことができる。よって、音声ファイルの再生回数における変化により、音声データアイテムのタグ部分の全てのチャンクを変更する必要はない。
各チャンクには、上述のように例えば生成されたチャンクに適用されるハッシュ関数に従ってチャンク識別子が割り当てられる。
ステップ412では、チャンキングされたデータが宛先に送信される。例えばチャンクは、要求を行った装置やストレージサーバへ送信することができる。いくつかの実装例では、いくつかのチャンクのみを送信することもできる。例えば、データの最新バージョンが要求された場合、図7を参照して以下で詳述するように、以前のバージョンから変更されたチャンクのみを送信することができる。例えば、音声タイプのデータアイテムについてタグに関連するチャンクのみが変更された場合、データアイテムの大半を構成する音声データのチャンクを送信する必要はない。
いくつかの実装例ではコンテンツベースのチャンキングがコンテンツに応じて再帰的に実行されてもよい。特に、データアイテムが1つ以上の追加のタイプのコンテンツを有するコンテナ(例えば、MSワード、zip, jar等)である場合、検査により埋め込まれたコンテンツの束、或いはコンテンツを識別し、埋め込まれたコンテンツの各タイプについて1以上の対応するコンテンツベースのチャンキングを識別する。例えば、これにより他のファイルフォーマットに埋め込まれた写真を認識して、ファイルの当該部分に対して適切なコンテンツベースのチャンカ(例えば、画像用のチャンカ)を適用することができる。
図5は、プレゼンテーションファイルのコンテンツベースのマッピング500及び対応するコンテンツベースのチャンキング部分の一例を示す。特に図5の例はプレゼンテーションデータアイテム(例えば、スライドプレゼンテーション)の例を示す。検査により、コンテンツベースのマッピング500に示されるような構成の異なるコンテンツが識別される。図5に示すプレゼンテーションファイルの例では、スライドインデックスの後にスライドテキスト、画像、注釈、2以上の画像が続く。一緒にチャンキングすべきデータアイテムの部分はコンテンツベースのマッピングに基づいて識別される。
例えば、図5に示すように、スライドインデックスとスライドテキストは、例えば可変長チャンク(図3との関連で上述)として一緒にチャンキングすることができる。プレゼンテーションファイルにおいて、直近のチャンクが画像に侵入してこないように、チャンキング部分は第1の画像により境界が設定される。これにより、不変のコンテンツについてバージョンをまたがって同一チャンクを保持できるように、異なるタイプのコンテンツについて個別のチャンクを利用することが可能となる。データアイテムを宛先に送信する際に変化したチャンクのみが送信されるので、チャンクの重複除外を実現できる。
画像は固定サイズのチャンクを有するものとして示される。各画像は個別にチャンキングされる。さらに、各画像について画像データを画像タグデータとは別個にチャンキングすることができる。図解のために、図5は画像において画像タグデータと画像データとを分離する一例を示す。また、いくつかの実装例では、タグデータを図示する固定サイズチャンクの代わりに可変長チャンクでチャンキングすることができる。
いくつかの実装例では、特定コンテンツ内で更にチャンキングを改良してもよい。例えば、画像がJPEG画像の場合、画像のメタデータ部分に対する小固定サイズのチャンキングと、残りの画像データに対する異なる固定サイズのチャンキングとを含む、タイプ特有のコンテンツベースのチャンキングを実行することができる。
図6は、音声ファイルのコンテンツベースのマッピング600の一例を示す。コンテンツベースのマッピングには、2つのタブ部分で挟まれた音声部分が含まれる。これらの部分のそれぞれは、例えば固定サイズのチャンクにより個別にチャンキングされてもよい。よって、もしも最新バージョンにおいてタグが変更されたり追加されたりした場合であっても、タグ部分のチャンクが変化するだけである。
対照的に、コンテンツベースではないチャンキング技術を使用すると、例えば、図3との関連で後述するように、いくつかのチャンクが不変となる。例えば、音声データアイテムの冒頭の第1のタグ部分に修正或いは追加を行うと、チャンク境界がデータアイテム全体を通じて変化してしまう。特に、チャンク境界がないので、チャンクはタグデータ及び音楽データを含むようにまたがって形成されうる。結果として、新バージョンが要求されれば、チャンクの全セットを送信しなければならなくなる。これは、生成されたチャンクの先頭の方の変化(例えば、追加データのためにチャンク境界が修正される)がデータアイテム全体に波及するためであって、結果としてチャンクの重複除外はわずかに行えるか、あるいは全く行えなくなる。
いくつかの実装例では、暗号化されたチャンクが生成される。例えば、収束暗号化(convergent encryption)を利用することができる。収束暗号化は、非セキュアなチャンクストレージを許容する。チャンク識別子を有する個々のチャンクは、例えばASE暗号化で、チャンクのハッシュ識別子に対応する鍵により暗号化することができる。暗号化されたチャンクのハッシュを実行することで、新しいチャンク識別子が各チャンクについて生成される。他の暗号化手法を利用することもできる。例えば、共有鍵暗号化手法や、秘密鍵/公開鍵暗号化手法を利用してもよい。図7は、データアイテムの要求に応じてチャンクを提供する処理700の一例を示すフロー図である。ステップ702では、新バージョンのデータアイテムの要求を受信する。例えば、同期処理の間に、最新バージョンのデータアイテムがピア装置に存在しないと識別することができる。ピア装置は、データアイテムの最新バージョンを要求することができる。また、コンピューティング装置は(最後のアックアップや格納イベントからの)全ての変更データアイテムを、バックアップサーバにアップロードするために要求することができる。
ステップ704でデータアイテムがチャンキングされる。データアイテムは、そのタイプに応じて上述のようにチャンキングされる。いくつかの実装例では、図4から図6との関連で説明したように、コンテンツベースのチャンキングがデータアイテムに対して実行される。
ステップ706では、(例えば、チャンク識別子又は暗号化チャンク識別子に従う)チャンクのリストが生成される。例えば、各チャンクは適用されるハッシュ関数に従う識別子を有することができる。よって、もし特定チャンクのデータが従前のバージョンから変更されていない場合、ハッシュも変更されていない。いくつかの実装例ではチャンクのリストが、たとえば当該データアイテムを要求したピア装置といった要求元装置に対して送信される。他のいくつかの実装例では、チャンクのリストがバックアップサーバや、データアイテム(或いはその一部)が送信される他の装置に提供される。チャンクのリストを、要求元装置内に既に存在するチャンクと比較することができる。
ステップ708では、リストからの1以上のチャンクの要求を受信する。例えば、装置は、同一のままで装置内で既に利用が可能なチャンクではなく、データアイテムの新しいチャンクのみの要求を送信することができる。よって、冗長なチャンクを送信し、格納装置上で重複して保持する必要が無い。ステップ710では要求されたチャンクが送信される。送信されないチャンクは格納しておくか或いは破棄することができる。
いくつかの実装例では、格納されたチャンクを複数ユーザ間で共有することができる。例えば特定の音声ファイルは、各ユーザについて一意なタグ情報(例えば、再生回数)を含むことができるが、音声コンテンツは同一のままであろう。よって、もし複数ユーザが同一の音声ファイルを遠隔の格納場所に格納する場合、共通の音声データのコピーを複数格納しておく必要はない。
特に、同一コンテンツにチャンキング技術を適用する複数ユーザについては、音声ファイルの音声部分のチャンク識別子は各ユーザについて一致すべきである。よって、チャンクのリストを遠隔の格納場所に送信する場合、音声ファイルを既に格納している別のユーザからも共通のチャンクは識別可能である。その結果、ユーザに固有のチャンク(例えば、タグ情報についてのもの)のみが格納場所に送信されればよいことになる。
いくつかの実装例では、チャンクは必要に応じてフェッチされる。例えば、別の場所からデータをストリーミングする場合、ストリーミングデータのチャンクは必要に応じてフェッチされてもよい。例えば、もしデータアイテムが映画ファイルであるならば、チャンクは必要に応じて、例えば再生の進行に合わせてフェッチされればよい。チャンクは連続的、或いは、ランダムに要求されてもよいが、全てのチャンクが同時に送信される必要はない。別の例では、クライアントはデータにインデクシングする。例えば、音楽再生アプリケーションは全ファイルのインデックスを生成するために音声ファイルのタグデータのみフェッチすることができるが、実際の音声データ(例えば、音声データに対応するチャンク)はファイルが実際に再生されるまで要求しないであろう。
いくつかの実装例では、ポリシー、ライセンシング条項等により、該当データをユーザが実際に所有していることを証明するために、各ユーザが特定のタイプのデータアイテムの全チャンクを遠隔の格納場所へ送信する必要があるかもしれない。しかしながら、例えば同一の識別子を有しておりそれらが同一であると判断されるので、遠隔の格納場所では依然としてチャンクの単一のコピーのみを保持することができる。
図8は、システム800の構成例を示す。システム構成800は、データアイテムのコンテンツベースのチャンキングを実行する能力を有している。構成800は、ゼロ個以上のプロセッサ802(例えば、IBMパワーPC、インテルペンティアム4、ARM等)、ゼロ個以上の表示装置804(例えば、CRT、LCD)、ゼロ個以上のグラフィック処理ユニット806(例えばNVIDIA GeForce等)、ゼロ個以上のネットワークインタフェース808(例えば、イーサネット、ファイヤワイヤ、USB等)、ゼロ個以上の入力装置810(例えば、キーボード、マウス等)、及び、ゼロ個以上のコンピュータで読み取り可能な媒体812を含む。これらのコンポーネントは1以上のバス814(例えば、EISA、PCI、PCIエクスプレスなど)を介して通信及びデータ交換を行う。いくつかの実装例では、いくつかの遠隔ストレージ及び/又はチャンキングシステムは表示装置や周辺機器を含んでいなくてもよい。また、チャンクはネットワーク上、或いは、データチャンクを処理し格納する1以上の他のシステムとインタラクトする遠隔の格納装置に格納されてもよい。
「コンピュータで読み取り可能な媒体」の語は、実行のためにプロセッサ802に命令を提供するためのあらゆる媒体をいう。コンピュータで読み取り可能な媒体812はオペレーティングシステム816(Mac OS(登録商標), iOS(登録商標), ウィンドウズ(登録商標)、リナックス(登録商標)など)、ネットワーク通信モジュール818、コンテンツベース・チャンカ822、及び、他のアプリケーション824をさらに含む。
オペレーティングシステム816は、マルチユーザ、マルチ処理、マルチタスク、マルチスレッド、実時間のものであってもよい。オペレーティングシステム816は、入力装置810からの入力の認識、表示装置804への出力の送信、コンピュータで読み取り可能な媒体812(例えば、メモリや格納装置)上でのファイル及びディレクトリの把握、周辺装置(例えば、ディスクドライブ、プリンタ等)の制御、1以上のバス814上でのトラヒック制御を含む基本的なタスクを実行する。ネットワーク通信モジュール818は、ネットワーク接続を確立し維持するための様々なコンポーネント(例えば、TCP/IP、HTTP、イーサネット等の通信プロトコルを実施するためのソフトウェア)を含む。
コンテンツベース・チャンカ822は、図1から7との関連で説明したコンテンツベースのチャンキングを実行する様々な機能を実現する様々なソフトウェアコンポーネントを提供する。
本明細書に記載した発明の主題及び動作の実施形態は、本明細書に記載される構造やそれら構造の均等物、或いはそれらの一つ以上の組み合わせを含むデジタル電子回路、或いは、コンピュータソフトウェア、ファームウェア、或いは、ハードウェア等において実現することができる。本明細書に記載した発明の主題の実施形態は、データ処理装置による実行のため、或いは、データ処理装置の動作を制御するためにコンピュータ記憶媒体上にエンコードされた1以上のコンピュータプログラム、即ち、コンピュータプログラム命令の1つ以上のモジュールとして実現することができる。また、プログラム命令は、データ処理装置による実行のために、適切な受信装置への送信用に情報をエンコードするために生成される、例えばマシン生成した電気的信号、光学的信号、或いは、電磁的信号のような人工的に生成された伝搬信号上にエンコードすることができる。コンピュータ記憶媒体は、コンピュータで読み取り可能な記憶装置、コンピュータで読み取り可能な記憶基板、ランダムアクセス又はシリアルアクセスのメモリアレイ又はメモリ装置、或いは、それらの1つ以上の組み合わせであるか、或いは、それらを含むことができる。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号内にエンコードされたコンピュータプログラム命令のソース又は宛先であってもよい。コンピュータ記憶媒体はまた、1つ以上の個別の物理的コンポーネント又は媒体(例えば、複数CD、ディスク、他の格納装置)であっても良いし、それらを含んでもよい。
本明細書で記述した動作は、1以上のコンピュータで読み取り可能な記憶装置に格納されたデータ、又は、他のソースから受信したデータに対する、データ処理装置によって実行される動作として実現されてもよい。
「データ処理装置」との語は、データ処理のためのあらゆる種類の装置、デバイス、マシンを含み、プログラム可能なプロセッサ、コンピュータ、システム・オン・チップ、或いは、それらの複数、或いは組み合わせを例として含む。当該装置は、例えば、FPGA(field programmable gate array)やASIC(application-specific integrated circuit)のような特定用途論理回路を含むことができる。当該装置はまた、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、バーチャルマシン、或いは、それらの1つ以上の組み合わせのような、ハードウェアの他に対応コンピュータプログラムのための実行環境を生成するコードを含むこともできる。当該装置及び実行環境により、ウェブサービス、分散コンピューティング、グリッドコンピューティングのインフラのような、様々な異なるコンピューティングモデルのインフラを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる)は、コンパイル済、インタープリタ型言語、宣言型言語、或いは、手続的言語を含むどんな形式のプログラミング言語で記述されてもよく、また、スタンドアロン・プログラムとして、或いはモジュール、コンポーネント、サブルーチン、オブジェクト、或いは、コンピューティング環境での利用に適した他のユニットとしてのものを含め、どのような形態で用意されてもよい。コンピュータプログラムは、ファイルシステム内のファイルに対応していてもよいが、必ずしもそうでなくてもよい。プログラムは、他のプログラムやデータ(例えば、マークアップ言語ドキュメント内に格納された1以上のスクリプト)を保持するファイルの一部として、当該プログラム専用の単一ファイル内に、或いは、複数連携ファイル(例えば、1つ以上のモジュール、サブプログラム或いはコートの一部を格納するファイル)内に格納されてもよい。コンピュータプログラムは、1つのコンピュータ或いは複数のコンピュータで実行されるように用意されてもよく、複数のコンピュータは、1箇所にまとめて配置されていてもよいし、或いは、複数の場所に分散され通信ネットワークによって相互接続されていてもよい。
本明細書に記載した処理及びロジックフローは、入力データを処理して出力を生成することにより動作を実行するために1以上のコンピュータプログラムを実行する1以上のプログラム可能なプロセッサにより実行されてもよい。処理及びロジックフローは、FPGAやASICといった特定用途論理回路により実行されてもよいし、装置が当該特定用途論理回路として実装されてもよい。
コンピュータプログラムを実行するのに適したプロセッサは、例えば、汎用マイクロプロセッサ、特定用途マイクロプロセッサの双方を含むと共に、あらゆる種類のデジタルコンピュータの1以上のプロセッサを含むことができる。一般的に、プロセッサはリード・オンリ・メモリ又はランダム・アクセスメモリ、或いはその両方から命令とデータを受け取る。コンピュータの本質的要素は、命令に従って動作を実行するプロセッサと、命令及びデータを格納する1以上のメモリ装置である。一般に、コンピュータはまた、例えば、磁気ディスク、光磁気ディスク、光ディスクのようなデータを格納するための1以上の大型格納装置を含むことができるが、或いは、そこからデータを受信したり、そこへデータを送信したりできるように当該大型格納装置と動作可能に結合されてもよい。しかしながら、コンピュータはそのような装置を有していなくてもよい。さらに、コンピュータは、例えばいくつかを挙げると、携帯電話、PDA、携帯オーディオプレーヤ、携帯ビデオプレーヤ、ゲームコンソール、GPS受信機、或いは、携帯型格納装置(例えば、USBフラッシュドライブ)等の他の装置に埋め込まれてもよい。コンピュータプログラム命令及びデータを格納するのに適したデバイスは、不揮発性のメモリ、媒体及びメモリデバイスの全ての形態を含み、一例として、例えばEPROM、EEPROM及びフラッシュメモリデバイスのような半導体メモリデバイス、例えば内部ハードディスクや取り外し可能なディスクのような磁気ディスク、光磁気ディスク、及びCD-ROMディスク、DVD-ROMディスクを含む。プロセッサ及びメモリは特定用途論理回路により強化されたり、或いは、その一部となったりしてもよい。
ユーザがシステムと直接にインタラクトするような実装例では、本明細書に記述された発明の主題の実施形態が、例えば、ユーザに情報を提示するためのCRTモニタやLCDモニタといった表示装置と、キーボード及び例えばユーザがコンピュータに対して入力を提供するためのマウス、トラックボールといったポインティングデバイスとを有するコンピュータ上で実行される。他の種類の装置も、ユーザとのインタラクションを提供するために利用が可能である。例えば、ユーザへのフィードバックはあらゆる形態のセンサフィードバック、例えば、視覚的なフィードバック、音声フィードバック或いは触覚フィードバックであっても良い。また、ユーザからの入力は、音響、音声又は触覚入力を含むどのような形態で受領されてもよい。さらに、コンピュータは、ユーザが利用する装置との間でドキュメントを送受信することによりユーザとインタラクトすることができる。例えば、ユーザのクライアント装置上のウェブブラウザから受信した要求に応じて、当該ウェブブラウザへウェブページを送信することができる。
本明細書に記載した発明の主題の実施形態は、例えばデータサーバのようなバックエンドコンポーネント、或いは、例えばアプリケーションサーバのようなミドルウェアコンポーネント、或いは、例えば本明細書に記載した発明の主題を実装したものとユーザがインタラクトできるグラフィカル・ユーザインタフェースやウェブブラウザを有するクライアントコンピュータのようなフロントエンドコンポーネント、或いは、そのようなバックエンド、ミドルウェア、或いはフロントエンドのコンポーネントの1以上の組み合わせを含むコンピューティングシステムにより実現されてもよい。システムのコンポーネントは、例えば通信ネットワークのような、いかなる形態、媒体のデジタルデータ通信によって相互接続されていてもよい。通信ネットワークの例には、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、インターネットワーク(例えば、インターネット)ピアツーピア・ネットワーク(例えば、アドホック・ピアツーピア・ネットワーク)が含まれる。
コンピューティングシステムはクライアント及びサーバを含むことができる。クライアント及びサーバは、一般に互いに離れており、典型的には通信ネットワークを介してインタラクトする。クライアント及びサーバの関係は、各コンピュータ上で実行されるコンピュータプログラムにより発生し、クライアント・サーバ関係を互いに有することとなる。実施形態によっては、サーバはデータ(例えば、HTMLページ)を(例えば、データを表示させ、暗い暗闘装置とインタラクトしているユーザからユーザ入力を受信するために)クライアント装置へ送信する。クライアント装置側で生成されたデータ(例えば、ユーザインタラクションの結果)は、サーバがクライアント装置から受信することができる。
本明細書は数多くの特定の実装方法の詳細を包含しているが、これらはクレームされた発明の範囲を限定するものとして解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特化した特徴を記述したものに過ぎない。個々の実施形態の文脈において本明細書に記載した所定の特徴は、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈で記載した様々な特徴を、複数の実施形態において個別に実装したり、任意に部分的に組み合わせて実装したりすることも可能である。更に、特徴はいくつかの組み合わせにおいて動作するように上述し、また当初そのように発明をクレームしてもいるが、クレームした組み合わせから得られる1以上の特徴は、別の場合では当該組み合わせから除外されてもよい。また、クレームした組み合わせは、部分的な組み合わせやその変形となってもよい。
同様に、動作は特定の順序で図面に示されているが、所望の結果を得るために図示する特定の順序或いは連続順において動作が実行されること、また、図示した全ての動作が実行されることを要求するものとして理解すべきではない。所定の状況では、マルチタスク処理や並列処理は利益がある。さらに、上述の実施形態内の様々なシステムコンポーネントを分離することにつき、全ての実施形態に対してそのような分離を必要とするものとして理解されるべきではない。また、説明に係るプログラムコンポーネント及びシステムは、一般に単一のソフトウェア製品に統合されてもよいし、或いは、複数のソフトウェア製品にパッケージ化されてもよい。
このように、発明の主題に関して特定の実施形態について記述した。他の実施形態は特許請求の範囲に記載する発明の範囲に属する。場合によって、クレームに記載された動作を異なる順序で実行し、その上で所望の結果を実現することができる。さらに、添付の図面に示す処理は、所望の結果を達成するために図示する特定の順序、或いは、連続順で実行されなくてもよい。特定の実装例では、マルチタスク処理や並列処理の採用が有利である。

Claims (26)

  1. データ処理装置が実行する方法であって、
    チャンクされるべきデータアイテムを識別する工程と、
    前記データアイテムのタイプを判定する工程と、
    前記データアイテムのタイプが、特定の1以上のタイプのうちの1つであるかを判定する工程と、
    前記データアイテムのタイプが、前記特定の1以上のタイプのうちの1つに該当しないと判定された場合に、前記データアイテムの第1のチャンキングを実行する工程と、
    前記データアイテムのタイプが、前記特定の1以上のタイプのうちの1つに該当すると判定された場合に、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第2のチャンキングを実行する工程と
    を備えることを特徴とする方法。
  2. 前記第2のチャンキングを実行する工程は、
    前記データアイテムを検査する工程と、
    前記検査に基づき前記データアイテム内のコンテンツ部分のデータマップを作成する工程と、
    前記データマップに基づいて前記データアイテムをチャンキングする工程と
    を含むことを特徴とする請求項1に記載の方法。
  3. 前記第2のチャンキングを実行する工程は、コンテンツベースのチャンキング境界を定義するために前記生成されたデータマップを利用する工程を含むことを特徴とする請求項2に記載の方法。
  4. 前記データマップを作成する工程は、前記データアイテム内の異なるタイプのコンテンツを識別する工程を含むことを特徴とする請求項2に記載の方法。
  5. 前記データアイテムのタイプを識別する工程は、前記データアイテムと関連づけられた拡張子を識別する工程を含むことを特徴とする請求項4に記載の方法。
  6. 前記データマップに基づいて前記データアイテムをチャンキングする工程は、異なるタイプのコンテンツを個別にチャンキングする工程を含むことを特徴とする請求項4に記載の方法。
  7. 前記チャンクを宛先に送信する工程を更に備えることを特徴とする請求項2に記載の方法。
  8. 送信の前に各チャンクを暗号化する工程を更に備えることを特徴とする請求項6に記載の方法。
  9. 前記データアイテムの要求を受信したのに応じて、
    各チャンクがチャンク識別子を有するチャンクリストを要求元に送信する工程と、
    前記チャンクリストからの前記データアイテムの1以上のチャンクの要求を受信する工程であって、該要求された1以上のチャンクは前記データアイテムの以前のバージョンから変更されたチャンクである、工程と、
    前記要求された1以上のチャンクを送信する工程と
    を更に備えることを特徴とする請求項1に記載の方法。
  10. データ処理装置が実行する方法であって、
    チャンクすべきデータアイテムを受信する工程と、
    前記データアイテムのタイプを識別する工程と、
    前記データアイテムのデータを検査し、前記データアイテムのコンテンツベースのマップを作成するために前記識別されたタイプを利用する工程と、
    前記データアイテムの異なるコンテンツ部分に対して実行されるべき個々のチャンキングを識別するために、前記コンテンツベースのマップを利用する工程と、
    前記データアイテム内の前記コンテンツに基づいて前記データアイテムをチャンキングする工程と
    を備えることを特徴とする方法。
  11. 前記コンテンツベースのマップの作成には、前記データアイテム内の異なるタイプのコンテンツの識別が含まれることを特徴とする請求項9に記載の方法。
  12. 前記データアイテムをチャンキングする工程は、前記データアイテム内の識別されたコンテンツの1以上のタイプについて個別のチャンキング動作を実行する工程を含むことを特徴とする請求項9に記載の方法。
  13. コンピュータプログラムを格納したコンピュータ記憶媒体であって、前記プログラムは命令を含み、該命令がデータ処理装置により実行されると、該データ処理装置は、
    チャンクされるべきデータアイテムを識別する工程と、
    前記データアイテムのタイプを判定する工程と、
    前記データアイテムのタイプが、特定の1以上のタイプのうちの1つであるかを判定する工程と、
    前記データアイテムのタイプが、前記特定の1以上のタイプのうちの1つに該当しないと判定された場合に、前記データアイテムの第1のチャンキングを実行する工程と、
    前記データアイテムのタイプが、前記特定の1以上のタイプのうちの1つに該当すると判定された場合に、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第2のチャンキングを実行する工程と
    を実行することを特徴とする、コンピュータ記憶媒体。
  14. コンピュータプログラムを格納したコンピュータ記憶媒体であって、前記プログラムは命令を含み、該命令がデータ処理装置により実行されると、該データ処理装置は、
    チャンクすべきデータアイテムを受信する工程と、
    前記データアイテムのタイプを識別する工程と、
    前記データアイテムのデータを検査し、前記データアイテムのコンテンツベースのマップを作成するために前記識別されたタイプを利用する工程と、
    前記データアイテムの異なるコンテンツ部分に対して実行されるべき個々のチャンキングを識別するために、前記コンテンツベースのマップを利用する工程と、
    前記データアイテム内の前記コンテンツに基づいて前記データアイテムをチャンキングする工程と
    を実行することを特徴とする、コンピュータ記憶媒体。
  15. システムであって、1以上のコンピューティング装置を備え、該コンピューティング装置が、
    チャンクされるべきデータアイテムを識別し、
    前記データアイテムのタイプを判定し、
    前記データアイテムのタイプが、特定の1以上のタイプのうちの1つであるかを判定し、
    前記データアイテムのタイプが、前記特定の1以上のタイプのうちの1つに該当しないと判定された場合に、前記データアイテムの第1のチャンキングを実行し、
    前記データアイテムのタイプが、前記特定の1以上のタイプのうちの1つに該当すると判定された場合に、前記データアイテムの特定のコンテンツ部分に基づく前記データアイテムの第2のチャンキングを実行する
    ように動作することを特徴とするシステム。
  16. 前記第2のチャンキングの実行には、
    前記データアイテムを検査し、
    前記検査に基づき前記データアイテム内のコンテンツ部分のデータマップを作成し、
    前記データマップに基づいて前記データアイテムをチャンキングする
    ことが含まれることを特徴とする請求項15に記載のシステム。
  17. 前記第2のチャンキングの実行には、コンテンツベースのチャンキング境界を定義するための前記生成されたデータマップの利用が含まれることを特徴とする請求項16に記載のシステム。
  18. 前記データマップの作成には、前記データアイテム内の異なるタイプのコンテンツの識別が含まれることを特徴とする請求項16に記載のシステム。
  19. 前記データアイテムのタイプの識別には、前記データアイテムと関連づけられた拡張子の識別が含まれることを特徴とする請求項18に記載のシステム。
  20. 前記データマップに基づく前記データアイテムのチャンキングには、異なるタイプのコンテンツの個別にチャンキングが含まれることを特徴とする請求項18に記載のシステム。
  21. 前記チャンクを宛先に送信するようにさらに動作することを特徴とする請求項16に記載のシステム。
  22. 送信の前に各チャンクを暗号化するように更に動作することを特徴とする請求項21に記載のシステム。
  23. 前記データアイテムの要求を受信したのに応じて、
    各チャンクがチャンク識別子を有するチャンクリストを要求元に送信し、
    前記チャンクリストからの前記データアイテムの1以上のチャンクであって、前記データアイテムの以前のバージョンから変更されたチャンクの要求を受信し、
    前記要求された1以上のチャンクを送信する
    ように更に動作することを特徴とする請求項15に記載のシステム。
  24. システムであって、1以上のコンピューティング装置を備え、該コンピューティング装置が、
    チャンクすべきデータアイテムを受信し、
    前記データアイテムのタイプを識別し、
    前記データアイテムのデータを検査し、前記データアイテムのコンテンツベースのマップを作成するために前記識別されたタイプを利用し、
    前記データアイテムの異なるコンテンツ部分に対して実行されるべき個々のチャンキングを識別するために、前記コンテンツベースのマップを利用し、
    前記データアイテム内の前記コンテンツに基づいて前記データアイテムをチャンキングする
    ように動作することを特徴とするシステム。
  25. 前記コンテンツベースのマップの作成には、前記データアイテム内の異なるタイプのコンテンツの識別が含まれることを特徴とする請求項24に記載のシステム。
  26. 前記データアイテムのチャンキングには、前記データアイテム内の識別されたコンテンツの1以上のタイプについての個別のチャンキング動作の実行が含まれることを特徴とする請求項24に記載のシステム。
JP2013549560A 2011-01-14 2012-01-13 コンテンツベースのファイルチャンキング Pending JP2014508990A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161433152P 2011-01-14 2011-01-14
US61/433,152 2011-01-14
US13/250,504 2011-09-30
US13/250,504 US8909657B2 (en) 2011-01-14 2011-09-30 Content based file chunking
PCT/US2012/021191 WO2012097217A1 (en) 2011-01-14 2012-01-13 Content based file chunking

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015145197A Division JP6199931B2 (ja) 2011-01-14 2015-07-22 コンテンツベースのファイルチャンキング

Publications (1)

Publication Number Publication Date
JP2014508990A true JP2014508990A (ja) 2014-04-10

Family

ID=46491548

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013549560A Pending JP2014508990A (ja) 2011-01-14 2012-01-13 コンテンツベースのファイルチャンキング
JP2015145197A Active JP6199931B2 (ja) 2011-01-14 2015-07-22 コンテンツベースのファイルチャンキング

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015145197A Active JP6199931B2 (ja) 2011-01-14 2015-07-22 コンテンツベースのファイルチャンキング

Country Status (9)

Country Link
US (2) US8909657B2 (ja)
EP (1) EP2663938A1 (ja)
JP (2) JP2014508990A (ja)
KR (1) KR101573995B1 (ja)
CN (1) CN103403712B (ja)
AU (1) AU2012205443B2 (ja)
BR (1) BR112013017971A2 (ja)
MX (1) MX2013008194A (ja)
WO (1) WO2012097217A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583818B2 (en) * 2011-01-31 2013-11-12 Cbs Interactive Inc. System and method for custom segmentation for streaming video
JP5719037B2 (ja) * 2011-08-19 2015-05-13 株式会社日立製作所 ストレージ装置及び重複データ検出方法
US8918375B2 (en) * 2011-08-31 2014-12-23 Microsoft Corporation Content aware chunking for achieving an improved chunk size distribution
US9240073B2 (en) * 2011-11-15 2016-01-19 Pixar File format for representing a scene
AU2014226161B2 (en) * 2013-03-04 2016-05-26 VMware LLC Cross-file differential content synchronization
US9418072B2 (en) 2013-03-04 2016-08-16 Vmware, Inc. Cross-file differential content synchronization
US20140365505A1 (en) 2013-06-08 2014-12-11 Apple Inc. Harvesting Addresses
US9069677B2 (en) 2013-04-29 2015-06-30 International Business Machines Corporation Input/output de-duplication based on variable-size chunks
US10282075B2 (en) 2013-06-24 2019-05-07 Microsoft Technology Licensing, Llc Automatic presentation of slide design suggestions
US9509747B2 (en) 2014-01-23 2016-11-29 Dropbox, Inc. Content item synchronization by block
US9639549B2 (en) 2014-01-24 2017-05-02 International Business Machines Corporation Hybrid of proximity and identity similarity based deduplication in a data deduplication system
KR20160041398A (ko) * 2014-10-07 2016-04-18 삼성전자주식회사 컨텐츠 처리 장치 및 그의 컨텐츠 처리 방법
US20160381177A1 (en) * 2015-06-26 2016-12-29 Qualcomm Incorporated Managing data requests
JP6439874B2 (ja) * 2015-07-31 2018-12-19 富士通株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム
KR102350765B1 (ko) * 2015-09-11 2022-01-12 삼성에스디에스 주식회사 중복된 데이터를 제거한 딕셔너리 관리 시스템 및 그 방법
US10534748B2 (en) 2015-11-13 2020-01-14 Microsoft Technology Licensing, Llc Content file suggestions
US10528547B2 (en) 2015-11-13 2020-01-07 Microsoft Technology Licensing, Llc Transferring files
US9824291B2 (en) 2015-11-13 2017-11-21 Microsoft Technology Licensing, Llc Image analysis based color suggestions
US11030156B2 (en) 2015-12-28 2021-06-08 Sandisk Technologies Llc Key-value store with partial data access
US11184168B2 (en) * 2016-02-19 2021-11-23 Nec Corporation Method for storing data on a storage entity
EP3466013B1 (en) * 2016-05-23 2020-01-15 Telefonaktiebolaget LM Ericsson (PUBL) Obscured retrieval sequence for information centric networking (icn) encoded video streams
KR102010414B1 (ko) 2017-12-13 2019-08-14 한국과학기술원 라이브 스트리밍을 위한 프리패칭 기반 클라우드 중계 장치 및 방법
IT201800005409A1 (it) * 2018-05-16 2019-11-16 Sistema, apparecchiatura e metodo per gestire in modo efficiente la memoria di dispositivi elettronici
IL293198A (en) * 2019-05-22 2022-07-01 Myota Inc A method and system for storing degraded data with improved security, robustness and control
US11262927B2 (en) * 2019-07-30 2022-03-01 Sony Interactive Entertainment LLC Update optimization using feedback on probability of change for regions of data
KR20210061544A (ko) * 2019-11-20 2021-05-28 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US20220027797A1 (en) * 2020-07-23 2022-01-27 International Business Machines Corporation Hybrid data chunk continuous machine learning
US11290330B1 (en) 2020-10-30 2022-03-29 Nutanix, Inc. Reconciliation of the edge state in a telemetry platform
US11700178B2 (en) 2020-10-30 2023-07-11 Nutanix, Inc. System and method for managing clusters in an edge network
US11140029B1 (en) 2020-10-30 2021-10-05 Nutanix, Inc. Server side filtering in hybrid cloud environments
KR102447130B1 (ko) * 2020-11-05 2022-09-26 국민대학교산학협력단 네트워크 패킷 분석 기반의 대상파일 검출 장치 및 방법
CN113411393A (zh) * 2021-06-17 2021-09-17 中国工商银行股份有限公司 文件推送方法及装置
US12074962B2 (en) 2021-08-10 2024-08-27 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for dividing and encrypting data
US12069032B2 (en) * 2021-11-22 2024-08-20 Whitestar Communications, Inc. Autonomic distribution of hyperlinked hypercontent in a secure peer-to-peer data network
US12047253B2 (en) 2022-02-11 2024-07-23 Nutanix, Inc. System and method to provide priority based quality of service for telemetry data
US11765065B1 (en) 2022-03-23 2023-09-19 Nutanix, Inc. System and method for scalable telemetry

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005275706A (ja) * 2004-03-24 2005-10-06 Canon Inc 情報処理装置及びその方法、プログラム
JP2005302004A (ja) * 2004-04-15 2005-10-27 Microsoft Corp 遠隔差分圧縮用の効率的アルゴリズムとプロトコル
JP2006031686A (ja) * 2004-06-17 2006-02-02 Hewlett-Packard Development Co Lp 複数のファイル間で記憶資源を共有するシステムおよび方法
US7519635B1 (en) * 2008-03-31 2009-04-14 International Business Machines Corporation Method of and system for adaptive selection of a deduplication chunking technique

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4807182A (en) 1986-03-12 1989-02-21 Advanced Software, Inc. Apparatus and method for comparing data groups
EP0541281B1 (en) 1991-11-04 1998-04-29 Commvault Systems, Inc. Incremental-computer-file backup using signatures
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
CN1115811C (zh) 1995-10-24 2003-07-23 皇家菲利浦电子有限公司 以可重新赋值的群方式传送数据的装置和方法
JPH09185570A (ja) * 1995-12-27 1997-07-15 Nippon Telegr & Teleph Corp <Ntt> マルチメディアデータ取得再生方法及びシステム
JP2000339279A (ja) * 1999-05-28 2000-12-08 Matsushita Electric Ind Co Ltd 映像分散キャッシュ装置、及び映像収集再生装置
US20020188728A1 (en) * 2001-06-07 2002-12-12 Acceleration Softwave International Corporation Adaptive file transfer acceleration
CN1139883C (zh) * 2001-08-20 2004-02-25 北京九州计算机网络有限公司 计算机文件的智能压缩和解压缩方法
US20070067332A1 (en) * 2005-03-14 2007-03-22 Gridiron Software, Inc. Distributed, secure digital file storage and retrieval
KR100969768B1 (ko) 2006-06-27 2010-07-13 삼성전자주식회사 통신 시스템에서 데이터 스케쥴링 장치 및 방법
JP4805786B2 (ja) 2006-10-26 2011-11-02 株式会社東芝 データ転送システムおよびデータ送信装置
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US20080281836A1 (en) * 2007-02-06 2008-11-13 Access Systems Americas, Inc. system and method for displaying and navigating content on a electronic device
FI122554B (fi) * 2007-02-09 2012-03-15 Google Inc Menetelmä ja järjestely sisällön priorisointia varten
US7827137B2 (en) 2007-04-19 2010-11-02 Emc Corporation Seeding replication
US20090049260A1 (en) * 2007-08-13 2009-02-19 Upadhyayula Shivarama Narasimh High performance data deduplication in a virtual tape system
US20090292838A1 (en) * 2008-05-20 2009-11-26 Ling Jun Wong Simplified data transfer using intermediary
US8788466B2 (en) 2008-08-05 2014-07-22 International Business Machines Corporation Efficient transfer of deduplicated data
WO2010045262A1 (en) 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
US9015209B2 (en) * 2008-12-16 2015-04-21 Sandisk Il Ltd. Download management of discardable files
CN101447207B (zh) * 2008-12-30 2012-02-15 华为终端有限公司 一种媒体录制方法及装置
US8009567B2 (en) 2009-02-05 2011-08-30 Cisco Technology, Inc. System and method for improved data transmission reliability over a network
US8731190B2 (en) 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US20110196854A1 (en) * 2010-02-05 2011-08-11 Sarkar Zainul A Providing a www access to a web page
US8392832B2 (en) * 2010-02-05 2013-03-05 Research In Motion Limited Display placeholders for rich media content
US8970500B2 (en) * 2010-02-26 2015-03-03 Blackberry Limited System and method for extracting content from a data item to separately display portions of such data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005275706A (ja) * 2004-03-24 2005-10-06 Canon Inc 情報処理装置及びその方法、プログラム
JP2005302004A (ja) * 2004-04-15 2005-10-27 Microsoft Corp 遠隔差分圧縮用の効率的アルゴリズムとプロトコル
JP2006031686A (ja) * 2004-06-17 2006-02-02 Hewlett-Packard Development Co Lp 複数のファイル間で記憶資源を共有するシステムおよび方法
US7519635B1 (en) * 2008-03-31 2009-04-14 International Business Machines Corporation Method of and system for adaptive selection of a deduplication chunking technique

Also Published As

Publication number Publication date
US20150095385A1 (en) 2015-04-02
BR112013017971A2 (pt) 2020-10-27
WO2012097217A1 (en) 2012-07-19
US8909657B2 (en) 2014-12-09
US20120185448A1 (en) 2012-07-19
EP2663938A1 (en) 2013-11-20
CN103403712B (zh) 2016-10-26
MX2013008194A (es) 2013-08-21
KR20130120516A (ko) 2013-11-04
AU2012205443A1 (en) 2013-08-22
KR101573995B1 (ko) 2015-12-02
JP2016001480A (ja) 2016-01-07
AU2012205443B2 (en) 2015-09-03
CN103403712A (zh) 2013-11-20
JP6199931B2 (ja) 2017-09-20
US9305008B2 (en) 2016-04-05

Similar Documents

Publication Publication Date Title
JP6199931B2 (ja) コンテンツベースのファイルチャンキング
JP6644960B1 (ja) オブジェクトベース・ストレージでアーカイブされたデータ・コンテナをリストアする方法とシステム
US8868500B2 (en) Data synchronization
TWI709059B (zh) 檔案打包、檔案包解包方法、裝置及網路設備
US8452732B2 (en) Identifying modified chunks in a data set for storage
JP2020521209A (ja) プラグイン関数プラットフォームおよび方法
AU2012352719B2 (en) Autonomous network streaming
US20180060348A1 (en) Method for Replication of Objects in a Cloud Object Store
JP2014513849A (ja) 参照カウント伝播
US20180232396A1 (en) Methods and systems for displaying virtual files side-by-side with non-virtual files and for instantaneous file transfer
US20140143201A1 (en) Dynamic content file synchronization
GB2507881A (en) Storing data files in a file system which provides reference data files
Liu et al. A file-deduplicated private cloud storage service with CDMI standard
Ellappan et al. A smart hybrid content-defined chunking algorithm for data deduplication in cloud storage
US20080069091A1 (en) Data Transfer Method, Apparatus and Computer Program Product
Hun et al. Design, implementation and performance evaluation of a novel PESS (Performance Enhanced Software Streaming) technology

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150323