JP2022518194A - Content agnostic file indexing method and system - Google Patents
Content agnostic file indexing method and system Download PDFInfo
- Publication number
- JP2022518194A JP2022518194A JP2021540318A JP2021540318A JP2022518194A JP 2022518194 A JP2022518194 A JP 2022518194A JP 2021540318 A JP2021540318 A JP 2021540318A JP 2021540318 A JP2021540318 A JP 2021540318A JP 2022518194 A JP2022518194 A JP 2022518194A
- Authority
- JP
- Japan
- Prior art keywords
- chunks
- binary data
- chunk
- data file
- index
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000002085 persistent effect Effects 0.000 claims 2
- 239000011159 matrix material Substances 0.000 claims 1
- 230000003287 optical effect Effects 0.000 claims 1
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6052—Synchronisation of encoder and decoder
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
バイナリデータファイルのコンテンツ不可知参照の為のコンピュータ実装方法であって、特定の長さのデータの全ての順列の表を事前生成し、バイナリデータファイルの長さを決定し、その長さはバイナリデータファイルのビット数を含む、ステップと、バイナリデータをより小さい長さのデータのチャンクにチャンクするステップと、各チャンクについて、そのチャンクが事前生成された表にあるかどうかを判断し、ある場合は、事前生成された表のそのチャンクインデックスを使用し、ない場合はサブチャンクが事前生成された表に配置されるまでデータを再度チャンクし、チャンクの数及び関連するインデックスを使用してバイナリデータファイルを示すステップとを含む方法。A computer-implemented method for unknowing references to the contents of a binary data file, which pre-generates a table of all sequences of data of a particular length, determines the length of the binary data file, and that length is binary. A step that contains the number of bits in the data file, a step that chunks binary data into chunks of smaller length data, and for each chunk, determine if that chunk is in a pregenerated table, and if so. Uses that chunk index of the pregenerated table, otherwise chunks the data again until the subchunk is placed in the pregenerated table, and binary data using the number of chunks and the associated index. How to include a step to show the file.
Description
(関連出願の相互参照)
本出願は、2017年10月11日に出願された、「コンテンツ不可知ファイルインデキシングの方法及びシステム(Method and System for Content Agnostic File Indexing)」という名称の特許出願第15/730,043号の一部継続出願であり、同出願の内容はあらゆる目的の為に本明細書に参照により完全に援用される。
(Mutual reference of related applications)
This application is a part of patent application No. 15 / 730,043 entitled "Method and System for Subject Organic File Indexing" filed on October 11, 2017. It is a continuation application and the content of the application is incorporated herein by reference in its entirety for any purpose.
(コンピュータプログラムリスト-シーケンスリスト)
以下のコンピュータプログラムリストを本明細書に添付して提出し、参照により援用する。夫々のファイルは参照により援用される。以下のコンピュータプログラムリストは、以下の形式である。<バイト単位のサイズ> <作成日> <ファイル名>。
(Computer program list-Sequence list)
The following computer program list is submitted in attachment to this specification and is incorporated by reference. Each file is referenced by reference. The following computer program list is in the following format. <Size in bytes><Createddate><Filename>.
3864 May 16 2018 squeeze-master-README-md.txt* 3864 May 16 2018 squeeze-master-README-md.txt *
83675 May 16 2018 squeeze-master-SqueezeReport-ipynb.txt* 83675 May 16 2018 squeeze-master-SqueezeReport-ipynb.txt *
4293 May 16 2018 squeeze-master-demo_app-py.txt* 4293 May 16 2018 squeeze-master-demo_app-py.txt *
98 May 16 2018 squeeze-master-gitignore.txt* 98 May 16 2018 squeeze-master-gitignore.txt *
1383 May 16 2018 squeeze-master-requirements.txt* 1383 May 16 2018 squeeze-master-requirements.txt *
2490 May 16 2018 squeeze-master-rpc_server-py.txt* 2490 May 16 2018 squeeze-master-rpc_server-py.txt *
239 May 16 2018 squeeze-master-scripts-buildprotos.txt* 239 May 16 2018 squeeze-master-scripts-buildprotos.txt *
942 May 16 2018 squeeze-master-scripts-file_test-py.txt* 942 May 16 2018 squeeze-master-scripts-file_test-py.txt *
1391 May 16 2018 squeeze-master-scripts-generate_key-py.txt* 1391 May 16 2018 squeeze-master-scripts-generate_key-py.txt *
711 May 16 2018 squeeze-master-scripts-generate_keyset-py.txt* 711 May 16 2018 squeeze-master-scripts-generate_keyset-py.txt *
629 May 16 2018 squeeze-master-scripts-keys_from_folder-py.txt* 629 May 16 2018 squeeze-master-scripts-keys_from_folder-py.txt *
377 May 16 2018 squeeze-master-scripts-lzw_test-py.txt* 377 May 16 2018 squeeze-master-scripts-lzw_test-py.txt *
107 May 16 2018 squeeze-master-scripts-runserver.txt* 107 May 16 2018 squeeze-master-scripts-runserver.txt *
3928 May 16 2018 squeeze-master-scripts-squeeze-bytes-report-py.txt* 3928 May 16 2018 squeeze-master-scripts-squeeze-bytes-report-py.txt *
63 May 16 2018 squeeze-master-scripts-squeeze_file-py.txt* 63 May 16 2018 squeeze-master-scripts-squeeze_file-py.txt *
1060 May 16 2018 squeeze-master-scripts-squeeze_test-py.txt* 1060 May 16 2018 squeeze-master-scripts-squeeze_test-py.txt *
947 May 16 2018 squeeze-master-scripts-string_test-py.txt* 947 May 16 2018 squeeze-master-scripts-string_test-py.txt *
222 May 16 2018 squeeze-master-scripts-test_binary-py.txt* 222 May 16 2018 squeeze-master-scripts-test_binary-py.txt *
1799 May 16 2018 squeeze-master-scripts-test_rpc-py.txt* 1799 May 16 2018 squeeze-master-scripts-test_rpc-py.txt *
2736 May 16 2018 squeeze-master-scripts-time-squeeze-string-py.txt* 2736 May 16 2018 squeeze-master-scripts-time-squeeze-string-py.txt *
211 May 16 2018 squeeze-master-scripts-time_keygen-py.txt* 211 May 16 2018 squeeze-master-scripts-time_keygen-py.txt *
65 May 16 2018 squeeze-master-scripts-unsqueeze_file-py.txt* 65 May 16 2018 squeeze-master-scripts-unsqueeze_file-py.txt *
80 May 16 2018 squeeze-master-setup-py.txt* 80 May 16 2018 squeeze-master-setup-py.txt *
10657 May 16 2018 squeeze-master-squeeze- _ init _ -py.txt* 10657 May 16 2018 squeeze-master-squeeze- _ init _ -py.txt *
2783 May 16 2018 squeeze-master-squeeze-bitstring-py.txt* 2783 May 16 2018 squeeze-master-squeeze-bitstring-py.txt *
9191 May 16 2018 squeeze-master-squeeze-keys-py.txt* 9191 May 16 2018 squeeze-master-squeeze-keys-py.txt *
613 May 16 2018 squeeze-master-squeeze-performance-csv.txt* 613 May 16 2018 squeeze-master-squeeze-performance-csv.txt *
22445 May 16 2018 squeeze-master-squeeze-squeeze_pb2-py.txt* 22445 May 16 2018 squeeze-master-squeeze-squeeze_pb2-py.txt *
2232 May 16 2018 squeeze-master-squeeze-squeeze_pb2_grpc-py.txt* 2232 May 16 2018 squeeze-master-squeeze-squeeze_pb2_grpc-py.txt *
3366 May 16 2018 squeeze-master-squeeze-proto.txt* 3366 May 16 2018 squeeze-master-squeeze-proto.txt *
875 May 16 2018 squeeze-master-templates-layout-html.txt* 875 May 16 2018 squeeze-master-templates-layout-html.txt *
816 May 16 2018 squeeze-master-templates-upload_form-html.txt* 816 May 16 2018 squeeze-master-templates-upload_form-html.txt *
1513 May 16 2018 squeeze-master-templates-uploaded_file-html.txt* 1513 May 16 2018 squeeze-master-templates-uploaded_file-html.txt *
200 May 16 2018 squeezerpc-master-Makefile.txt* 200 May 16 2018 squeezerpc-master-Makefile.txt *
1131 May 16 2018 squeezerpc-master-README-md.txt* 1131 May 16 2018 squeezerpc-master-README-md.txt *
7 May 16 2018 squeezerpc-master-gitignore.txt* 7 May 16 2018 squeezerpc-master-gitignore.txt *
8995 May 16 2018 squeezerpc-master-main-go.txt* 8995 May 16 2018 squeezerpc-master-main-go.txt *
21292 May 16 2018 squeezerpc-master-squeeze-squeeze-pb-go.txt* 21292 May 16 2018 squeezerpc-master-squeeze-squeeze-pb-go.txt *
3366 May 16 2018 squeezerpc-master-squeeze-proto.txt* 3366 May 16 2018 squeezerpc-master-squeeze-proto.txt *
本開示は、コンテンツ不可知ファイル参照の為の方法に関するものである。本方法は、更に、コンテンツ不可知データ圧縮の為の方法に関するものである。 The present disclosure relates to a method for referencing a content unknown file. The present method further relates to a method for compressing content unknown data.
ファイル参照技術は、一般に、ファイル参照システムにおいてデータを効率的にインデキシングする為に、保存されているデータの種類に関する知識を必要とする。同様に、問題となっているデータに関する知識は、一般的に、送信、保存等の為にデータサイズを縮小する為の改良された圧縮アプローチを作成する際にも使用される。 File reference techniques generally require knowledge of the types of data stored in order to efficiently index data in a file reference system. Similarly, knowledge of the data in question is also commonly used in creating improved compression approaches to reduce the data size for transmission, storage, etc.
業界では、保存及び/又は送信しなければならないデータ量を減らす為に、ファイル参照及びデータ圧縮技術を改善する必要性が存在する。 There is a need in the industry to improve file reference and data compression techniques to reduce the amount of data that must be stored and / or transmitted.
一実施形態によれば、本開示は、強化されたコンテンツ不可知ファイル参照システムを用いてコンピューティング技術を改善する方法を提供する。この方法は、コンピュータ自体の動作を改善するものである。 According to one embodiment, the present disclosure provides a method of improving computing technology with an enhanced content agnostic file reference system. This method improves the operation of the computer itself.
開示された方法は幾つかの重要な利点を有する。例えば、開示された方法は、任意のコンテンツタイプのファイル参照を可能にする。 The disclosed method has several important advantages. For example, the disclosed method allows file references of any content type.
開示された方法は、更に、データが永続化されるのとは対照的に、アクセス時に生成され得るので、永続化又は送信されなければならない情報又はデータの量を大幅に減少させることができる。 The disclosed method can further reduce the amount of information or data that must be persisted or transmitted, as it can be generated at access, as opposed to the data being persisted.
本開示の様々な実施形態は、これらの利点の何れも有していなくても、又はその一部或いは全てを有していてもよい。当業者には、本開示の他の技術的利点も容易に明らかになり得る。 The various embodiments of the present disclosure may not have any of these advantages, or may have some or all of them. Other technical advantages of the present disclosure may be readily apparent to those of skill in the art.
本開示及びその利点をより完全に理解する為に、ここで、添付の図面と併せて以下の説明を参照する。
同じ参照符号は、図面の幾つかの図を通して同じ部品又はステップを参照する。
The same reference code refers to the same part or step through several figures in the drawing.
本開示は、データのコンテンツ不可知インデキシングの為の方法に関するものである。本方法は、例えば、ファイル参照システムや圧縮システムとして等、コンピュータ特有の様々なニーズに使用され得る。 The present disclosure relates to methods for agnostic indexing of data content. This method can be used for various computer-specific needs, such as, for example, as a file reference system or a compression system.
以下の開示では、例示としてバイナリデータの圧縮に関連して本発明を説明しているが、本教示は、「n-ary」データと呼ぶ方が相応しい、あらゆるタイプのデータで同様に機能する。例えば、本方法及びシステムは、量子ビット及びビットでも動作する。 Although the following disclosure illustrates the invention in connection with the compression of binary data by way of example, the teachings work equally well with any type of data that is more appropriate to be referred to as "n-ary" data. For example, the methods and systems also work with qubits and bits.
本発明の一実施形態は、図1に描かれたフローチャートに記載されているような方法を含む。永続化又は送信されるバイナリデータ(ni)(例えば、データファイル)が分析され、ビット単位の長さ(l(ni))が決定される。この情報を用いて、ステップ106で、本方法は、識別された長さのデータの全ての順列を計算する。例えば、入力データが次のような場合、
01
One embodiment of the present invention includes a method as described in the flowchart depicted in FIG. Binary data (n i ) to be persisted or transmitted (eg, a data file) is analyzed to determine the bit length (l ( ni )). Using this information, in
01
入力データは2ビットの長さとなる。ステップ106で、2ビットの全ての順列が生成され、即ち次のようになる。
{00}{01}{10}{11}
The input data is 2 bits long. In
{00} {01} {10} {11}
ステップ108で、本方法は、生成された順列における入力バイナリデータファイルのインデックス(nf)を決定する。上記の例では、返されるインデックス(nf)は「1」となる。最後に、入力されたバイナリデータ(即ち「01」)を保存又は送信するのではなく、システムは代わりに長さ(2)とインデックス(1)を保存する。
At
元の入力データをデコードする必要が生じた場合(例えば、元のバイナリデータをディスクから取得する要求や、ネットワークを介して送信されたデータの受信)、この方法は、入力として長さ(l(ni))とインデックス(nf)のみを必要とする。上記の例では、長さ(2)とインデックス(1)が入力となる。図2に示すように、システムは、入力された長さの全ての順列を計算する。上記の例では、次のような順列が生成される。
{00}{01}{10}{11}
If the original input data needs to be decoded (eg, a request to retrieve the original binary data from a disk or receive data transmitted over a network), this method is lengthy as input (l (l). Only ni)) and index ( n f ) are needed. In the above example, the length (2) and the index (1) are the inputs. As shown in FIG. 2, the system calculates all the sequences of the input length. In the above example, the following sequence is generated.
{00} {01} {10} {11}
システムは指定されたインデックス(上記の例では1)に移動し、順列を返す。再び上記の例を用いて、元のバイナリデータの「01」が返される。 The system moves to the specified index (1 in the above example) and returns a sequence. Using the above example again, the original binary data "01" is returned.
上記の方法は、例示の目的で、バイナリシステム(即ち、入力データがバイナリデータである)の観点から説明されている。本方法及びシステムは、n-aryシステムについても同様に動作する。上記のバイナリシステムは基本的にユークリッド平面で動作するが、n-aryデータではヒルベルト空間が概念的に同じ利点を提供する。この方法とプロセスは、以下のようにn-aryデータに対して一般化され得る。
d^n=p(i)
(d^n)n=p(f)
d=システムの次数
n=システムの次数に応じた適切なn-ary単位での長さ
p(i)=初期インデックス
p(f)=最終インデックス
d ^ n = p (i)
(D ^ n) n = p (f)
d = system order n = appropriate length in n-ary units according to the system order p (i) = initial index p (f) = final index
同じ入力ファイルで2つの代替的な順序付けされたシステムが与えられた場合、より高い順序を持つシステムが、より低い順序を持つ代替的なシステムと比較して、より高いn-ary密度を有することに留意すべきである。 Given two alternative ordered systems in the same input file, a system with a higher order has a higher n-ary density compared to an alternative system with a lower order. Should be noted.
本方法の一例は、以下のRubyコードスニペットに開示されている。以下のスニペットは、図1に開示されているような方法を示している。
以下のスニペットは、入力長(l(ni))が16、インデックス(nf)が72,629の場合の、図2に開示されている方法を示している。
好ましい実施形態では、入力バイトストリングは、入力バイトストリングの表現に対応するビットストリングに変換される。このビットストリングは、次に本明細書に記載された方法によって処理されるものである。 In a preferred embodiment, the input byte string is converted into a bit string corresponding to the representation of the input byte string. This bitstring is then processed by the method described herein.
代替的な実施形態では、データの長さに基づいて表を生成するのではなく、特定の長さのデータの全ての順列で表を事前生成してもよい。この事前生成された表は、不揮発性メモリ又は揮発性メモリの何れかのメモリに永続化されてもよい。上記の例では、所定の長さが2ビットの場合、事前生成された表には、次のような2ビットデータの全ての順列が含まれる。
{00}{01}{10}{11}
In an alternative embodiment, instead of generating the table based on the length of the data, the table may be pregenerated with all the sequences of data of a particular length. This pre-generated table may be persisted in either non-volatile or volatile memory. In the above example, if the predetermined length is 2 bits, the pre-generated table contains all the forward sequences of the 2-bit data as follows.
{00} {01} {10} {11}
一実施形態では、この表は、以下のように対応するインデックスを付けた配列で格納されてもよい。
この事前生成された表は、ディスクやRAM等に保存されてもよい。好ましくは、この事前生成された表は、ファイルサイズを縮小する(又はファイルをスクイーズする)計算機システムと、縮小されたファイルを拡張する(又はデータをスクイーズ解除する)計算機システムとで保存される。 This pre-generated table may be stored on a disk, RAM, or the like. Preferably, this pre-generated table is stored on a computer system that reduces the file size (or squeezes the file) and expands the reduced file (or squeezes the data).
入力データを受け取ると、本方法はデータをより小さなサブセットに「チャンク」する。本明細書では、「チャンク」とは、データストリングを取得して大きなデータストリングのサブセットを構成する小さなデータストリングを作成することを意味する。全てのチャンクを合わせると元のデータストリングになる。例えば、入力データが
011001110001
であれば、
Upon receiving the input data, the method "chunks" the data into smaller subsets. As used herein, "chunk" means taking a data string to create a small data string that constitutes a subset of the large data string. All chunks are combined to form the original data string. For example, the input data is 011001110001
If,
以下の4ビットチャンクにチャンクされることになる。
0010 0111 0001
It will be chunked into the following 4-bit chunks.
0010 0111 0001
次に、個々のチャンクは、事前生成された表と比較され、一致するものがあるかどうかを確認する。上記の例では、チャンクのサイズが4ビットの場合、表には全2ビットチャンクの順列を有する為、各チャンクは表に見つからないことになる。従って、各チャンクは再度チャンクされ、以下のようになる。
01 10 01 11 00 01
The individual chunks are then compared against the pre-generated table to see if there is a match. In the above example, if the chunk size is 4 bits, the table has a sequence of all 2-bit chunks, so each chunk cannot be found in the table. Therefore, each chunk is chunked again and becomes as follows.
01 10 01 11 00 01
この方法は、特定のチャンクが事前生成された表の中に配置される時点まで、各チャンクに対して続けられる。その時点で、チャンクは夫々のインデックスと関連付けられ、好ましくは、チャンクレベル及び対応するインデックスを示す一連のタプルが生成される。上記の例では、システムが2回チャンクしたので、インデックスの関連付けは以下のようになる。
{2,1}{2,2}{2,1}{2,3}{2,0}{2,1}
This method continues for each chunk until a particular chunk is placed in a pre-generated table. At that point, the chunks are associated with each index, preferably a set of tuples indicating the chunk level and the corresponding index is generated. In the above example, the system has chunked twice, so the index associations are as follows:
{2,1} {2,2} {2,1} {2,3} {2,0} {2,1}
この例では、元の入力データ「011001110001」は、最終的に2ビット長の6つのチャンクに分割された。図示のように、各チャンクはチャンクレベル(2)と、事前生成された表への対応するインデックスで表されている。 In this example, the original input data "011001110001" was finally divided into 6 chunks of 2 bit length. As shown, each chunk is represented by a chunk level (2) and a corresponding index to the pregenerated table.
データは、任意の数の方法でチャンクされ得る。例えば、データは、上記の例のように、事前に決定されたサイズに基づいてチャンクされてもよい(ここで、事前に決定されたサイズは、例の目的の為に4ビットであった)。或いは、各データチャンクが事前生成された表の中で見つかるまで入力データを2つの別々のデータチャンクに再帰的にチャンクしてもよい。上記と同じ入力データを使用して、データを分割してチャンク化する方法では、次のような第1レベルのチャンクになる。
011001 110001
The data can be chunked in any number of ways. For example, the data may be chunked based on a pre-determined size, as in the example above (where the pre-determined size was 4 bits for the purposes of the example). .. Alternatively, the input data may be recursively chunked into two separate data chunks until each data chunk is found in a pregenerated table. The method of dividing and chunking data using the same input data as above results in the following first-level chunks.
011001 110001
ここで、データセットが事前生成された表に見つからないので、再度チャンクされる。
011 001 110 001
Now the dataset is not found in the pre-generated table and is chunked again.
011 001 110 001
ここでも、チャンクされたデータは事前生成された表では見つからないので、再度チャンクされなければならない。
00 1 00 1 11 0 00 1
Again, the chunked data is not found in the pregenerated table and must be chunked again.
00 1 00 1 11 0 00 1
注目すべきは、幾つかのセグメントが、事前生成された表のサイズよりも小さいデータにチャンクされていることである(即ち、セグメント「1」、「1」、「0」、「1」)。これらのセグメントは、事前生成された表と比較する為にパディングされることがある。一貫性が保たれていれば、数字はビッグエンディアン又はリトルエンディアンバイトオーダーで保存され得る。例えば、ビッグエンディアンバイトオーダーを使った場合、上記のチャンクデータは次のように表される。
00 10 00 10 11 00 00 10
Notably, some segments are chunked into data that is smaller than the size of the pre-generated table (ie, segments "1", "1", "0", "1"). .. These segments may be padded for comparison with pre-generated tables. If consistent, the numbers can be stored in big endian or little endian byte order. For example, when using big endian byte order, the above chunk data is expressed as follows.
00 10 00 10 11 00 00 10
その後、この方法は上記と同じように続く。 After that, this method continues in the same manner as above.
データの全てのチャンクが、同じデータチャンクレベルで事前生成された表の中で見つかることは必要ではない。例えば、2ビットの組み合わせに関する上記の事前生成された表を使用して、もし入力データが以下であれば、
0110011100
It is not necessary for all chunks of data to be found in a pregenerated table at the same data chunk level. For example, using the pre-generated table above for a 2-bit combination, if the input data is:
0110011100
このデータは本来、上記のように4ビットのシーケンスに分割してチャンクされ得る。
0110 0111 00
Originally, this data can be divided into 4-bit sequences and chunked as described above.
0110 0111 00
上記と同様に、最初の2つの4ビットシーケンス(即ち「0110」と「0111」)は、事前生成された表に配置される為に、より小さなチャンクに再度チャンクされなければならず、その結果、以下のチャンクになる。
01 10 01 11 00
Similar to the above, the first two 4-bit sequences (ie "0110" and "0111") must be re-chunked into smaller chunks in order to be placed in the pre-generated table, resulting in , Becomes the following chunks.
01 10 01 1 1 00
また、上記のように、チャンクは以下のように自らのチャンクレベル及び対応するインデックスに関連付けられる。
{2,1}{2,2}{2,1}{2,3}{1,0}
Also, as mentioned above, chunks are associated with their chunk level and their corresponding index as follows:
{2,1} {2,2} {2,1} {2,3} {1,0}
上記の最後のタプルは、そのチャンクが2回目のチャンキングを必要としなかったので、チャンクレベルが1であることを示していることに留意されたい。 Note that the last tuple above indicates that the chunk level is 1 as the chunk did not require a second chunk.
入力データが一連のチャンクレベルとインデックスに還元されると、その一連のチャンクレベルとインデックスを使用して、元のデータを識別する。関連付けは、一連のタプルとして、個別のビットストリングとして、及びその他の方法で保存され得る。 When the input data is reduced to a set of chunk levels and indexes, the set of chunk levels and indexes is used to identify the original data. Associations can be stored as a set of tuples, as separate bitstrings, and in other ways.
一連のチャンクレベルとインデックスに基づいてデータを再作成(又はスクイーズ解除)するには、プロセスは逆に動作する。この場合も、システムには同じ事前生成された表が必要である。チャンクレベルとインデックスの各タプルに対して、システムは事前生成された表を参照して、スクイーズされたチャンクをアンパックし、元のデータに戻す。 To recreate (or unsqueeze) data based on a set of chunk levels and indexes, the process works in reverse. Again, the system needs the same pre-generated table. For each chunk level and index tuple, the system references a pre-generated table to unpack the squeezed chunks and revert to the original data.
この代替実施形態は、図3のフローチャートに示されている。まず、以下のような特定の長さのデータの全ての順列を含む事前生成された表がステップ302で作成される。上述したように、好ましくは、その表は何らかの方法で永続化される。次に、システムは、ステップ304で、スクイーズ対象入力データを受け取る。次にプロセスは、ステップ306及び308で、データの長さが「事前生成された表」に配置される長さになるまで、データをより小さなセグメントにチャンクする。上述したように、このプロセスは、入力データセットが何回チャンクされたかをシステムが知ることができるように、チャンクレベルを維持する。その後、各チャンクはステップ310で事前生成された表に配置される。最後に、チャンク、そのチャンクレベル、及び事前生成された表内の夫々のインデックスが関連付けられ、その結果、ステップ312で、スクイーズされたデータが得られる。
This alternative embodiment is shown in the flowchart of FIG. First, a pre-generated table containing all the sequences of data of a particular length is created in
本開示を、特定の実施形態及び一般的に関連する方法の観点から説明してきたが、これらの実施形態及び方法の変更及び順列は、当業者には明らかであろう。従って、例示的な実施形態に関する上記の説明は、本開示を制約するものではない。本開示の精神及び範囲から逸脱することなく、他の変更、置換、及び改変も可能である。
Although the present disclosure has been described in terms of specific embodiments and generally relevant methods, changes and sequence of these embodiments and methods will be apparent to those of skill in the art. Accordingly, the above description of exemplary embodiments does not limit the present disclosure. Other modifications, substitutions, and modifications may be made without departing from the spirit and scope of this disclosure.
Claims (19)
入力シードを用いて表を事前生成するステップであって、表は所定の長さのビットの全ての順列を含むステップと、
前記バイナリデータファイルの長さを決定するステップであって、前記長さは、前記バイナリデータファイルのビット数を含むステップと、
前記バイナリデータファイルを部分ストリングにチャンクするステップであって、各部分ストリングは前記バイナリデータファイルの長さよりも小さい長さであるステップと、
前記バイナリデータファイルの各チャンクについて、そのチャンクが前記事前生成された表内にあるかどうかを判断し、そのチャンクが事前生成された表内にある場合には、そのチャンクに前記事前生成された表内のチャンクの位置のインデックスを関連付け、そのチャンクが前記事前生成された表内にない場合には、チャンクされたバイナリデータを更に小さなチャンクに分割するステップと、
チャンクの数及び全チャンクの関連するインデックスを使用して前記バイナリデータファイルを示すステップと、を含む方法。 A computer implementation method for agnostic references to the contents of binary data files.
A step that pregenerates a table using an input seed, in which the table contains all the sequences of bits of a given length, and
A step of determining the length of the binary data file, wherein the length includes a step including the number of bits of the binary data file and a step.
A step of chunking the binary data file into partial strings, each substring having a length smaller than the length of the binary data file.
For each chunk of the binary data file, it is determined if the chunk is in the pregenerated table, and if the chunk is in the pregenerated table, the chunk is pregenerated. A step of associating an index of the position of chunks in a table and splitting the chunked binary data into smaller chunks if the chunk is not in the pregenerated table.
A method comprising a step of showing the binary data file using the number of chunks and the associated index of all chunks.
前記バイナリデータファイルの代わりに、前記チャンクの数及び全ての関連するインデックスを記憶装置に永続化するステップを含む、請求項1に記載の方法。 A step showing the binary data file using the number of chunks and the associated index of all chunks
The method of claim 1, comprising the step of persisting the number of chunks and all relevant indexes to storage instead of the binary data file.
前記データファイルの代わりに前記チャンクの数及び全チャンクの関連するインデックスを送信するステップを含む、請求項1に記載の方法。 A step showing the binary data file using the number of chunks and the associated index of all chunks
The method of claim 1, comprising the step of transmitting the number of chunks and the associated index of all chunks on behalf of the data file.
各順序付けられたペアがチャンクレベル及び関連するインデックスを示す、順序付けられたペアのタプルを作成するステップを含む、請求項1に記載の方法。 The step of showing the binary data file using the number of chunks and the associated index of all chunks is
The method of claim 1, wherein each ordered pair indicates a chunk level and an associated index, comprising the step of creating a tuple of ordered pairs.
前記バイナリデータを所定の長さのチャンクにチャンクすることを含む、請求項1に記載の方法。 Chunking the binary data file into partial strings further
The method of claim 1, comprising chunking the binary data into chunks of a predetermined length.
前記バイナリデータファイルを、同じサイズの2つのチャンクに再帰的に分割することを含む請求項1に記載の方法。 Chunking the binary data file into partial strings further
The method of claim 1, wherein the binary data file is recursively divided into two chunks of the same size.
入力シードを使用して表を事前生成するステップであって、前記表は、所定の長さのビットの全ての順列を含み、前記事前生成された表を使用してチャンクの数及び関連するインデックスを生成するステップと、
各チャンクについて、そのチャンクに関連付けられたインデックスで表内にデータを配置するステップと、各チャンクに関連付けられたデータを返すステップと、を含む方法。 A method of retrieving data based on the number of chunks and the associated index of all chunks.
A step of pre-generating a table using an input seed, wherein the table contains all the sequences of bits of a given length, and the number of chunks and related using the pre-generated table. Steps to generate an index and
For each chunk, a method that includes placing data in the table at the index associated with that chunk and returning the data associated with each chunk.
各チャンクに関連するデータを単一のビットストリームに連結することを含む、請求項18に記載の方法。
The step that returns the data associated with each chunk is
18. The method of claim 18, comprising concatenating the data associated with each chunk into a single bitstream.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/244,332 | 2019-01-10 | ||
US16/244,332 US11138152B2 (en) | 2017-10-11 | 2019-01-10 | Method and system for content agnostic file indexing |
PCT/US2020/012661 WO2020146448A1 (en) | 2019-01-10 | 2020-01-08 | Method and system for content agnostic file indexing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022518194A true JP2022518194A (en) | 2022-03-14 |
Family
ID=71520909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021540318A Pending JP2022518194A (en) | 2019-01-10 | 2020-01-08 | Content agnostic file indexing method and system |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP3908937A4 (en) |
JP (1) | JP2022518194A (en) |
KR (1) | KR20210110875A (en) |
AU (1) | AU2020205970A1 (en) |
CA (1) | CA3126012A1 (en) |
WO (1) | WO2020146448A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11138152B2 (en) | 2017-10-11 | 2021-10-05 | Lognovations Holdings, Llc | Method and system for content agnostic file indexing |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5594435A (en) * | 1995-09-13 | 1997-01-14 | Philosophers' Stone Llc | Permutation-based data compression |
US7882139B2 (en) * | 2003-09-29 | 2011-02-01 | Xunlei Networking Technologies, Ltd | Content oriented index and search method and system |
US20050071151A1 (en) * | 2003-09-30 | 2005-03-31 | Ali-Reza Adl-Tabatabai | Compression-decompression mechanism |
KR20060106835A (en) * | 2003-10-17 | 2006-10-12 | 팩바이트 소프트웨어 피티와이 리미티드 | Data compression system and method |
AU2007290044A1 (en) * | 2006-09-01 | 2008-03-06 | Pacbyte Software Pty Limited | Method and system for transmitting a data file over a data network |
US8533166B1 (en) * | 2010-08-20 | 2013-09-10 | Brevity Ventures LLC | Methods and systems for encoding/decoding files and transmission thereof |
US9639543B2 (en) * | 2010-12-28 | 2017-05-02 | Microsoft Technology Licensing, Llc | Adaptive index for data deduplication |
US11138152B2 (en) * | 2017-10-11 | 2021-10-05 | Lognovations Holdings, Llc | Method and system for content agnostic file indexing |
-
2020
- 2020-01-08 EP EP20737931.4A patent/EP3908937A4/en active Pending
- 2020-01-08 CA CA3126012A patent/CA3126012A1/en active Pending
- 2020-01-08 JP JP2021540318A patent/JP2022518194A/en active Pending
- 2020-01-08 WO PCT/US2020/012661 patent/WO2020146448A1/en unknown
- 2020-01-08 AU AU2020205970A patent/AU2020205970A1/en active Pending
- 2020-01-08 KR KR1020217025238A patent/KR20210110875A/en unknown
Also Published As
Publication number | Publication date |
---|---|
CA3126012A1 (en) | 2020-07-16 |
EP3908937A1 (en) | 2021-11-17 |
WO2020146448A1 (en) | 2020-07-16 |
KR20210110875A (en) | 2021-09-09 |
EP3908937A4 (en) | 2022-09-28 |
AU2020205970A1 (en) | 2021-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220093210A1 (en) | System and method for characterizing biological sequence data through a probabilistic data structure | |
US8554561B2 (en) | Efficient indexing of documents with similar content | |
US9805079B2 (en) | Executing constant time relational queries against structured and semi-structured data | |
JP4238233B2 (en) | System and method for sharing storage resources between multiple files | |
US7447839B2 (en) | System for a distributed column chunk data store | |
US10680645B2 (en) | System and method for data storage, transfer, synchronization, and security using codeword probability estimation | |
US20120089579A1 (en) | Compression pipeline for storing data in a storage cloud | |
WO2021068351A1 (en) | Cloud-storage-based data transmission method and apparatus, and computer device | |
US20120089775A1 (en) | Method and apparatus for selecting references to use in data compression | |
US9740734B2 (en) | Group-by processing for data containing singleton groups | |
US11138152B2 (en) | Method and system for content agnostic file indexing | |
JP6847079B2 (en) | Optimal sort key compression and index rebuild | |
JP6807395B2 (en) | Distributed data deduplication in the processor grid | |
US11366790B2 (en) | System and method for random-access manipulation of compacted data files | |
US20200042502A1 (en) | System and method for data storage, transfer, synchronization, and security using recursive encoding | |
US9639549B2 (en) | Hybrid of proximity and identity similarity based deduplication in a data deduplication system | |
JP2022518194A (en) | Content agnostic file indexing method and system | |
JP7047110B2 (en) | Content-independent file indexing methods and systems | |
US10949088B1 (en) | Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system | |
US8595195B2 (en) | Creating a self-contained portable output file | |
Nakamura et al. | Content-defined merkle trees for efficient container delivery | |
Liu et al. | Adaptive CDCLZW algorithm for data compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221024 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231226 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20240315 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240517 |