JP2016522928A - Method, apparatus and system for establishing secondary indexes in a distributed storage system - Google Patents
Method, apparatus and system for establishing secondary indexes in a distributed storage system Download PDFInfo
- Publication number
- JP2016522928A JP2016522928A JP2016510919A JP2016510919A JP2016522928A JP 2016522928 A JP2016522928 A JP 2016522928A JP 2016510919 A JP2016510919 A JP 2016510919A JP 2016510919 A JP2016510919 A JP 2016510919A JP 2016522928 A JP2016522928 A JP 2016522928A
- Authority
- JP
- Japan
- Prior art keywords
- user
- index
- data
- key
- child
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012559 user support system 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/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
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
- G06F16/2228—Indexing structures
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本発明は、分散記憶システムにおけるセカンダリインデックスを確立する方法であって、ユーザクライアントにより送信されたユーザデータを受信するステップであって、ユーザデータはキー部分及び値部分を含む、受信するステップと、ユーザデータに従ってユーザテーブルを決定するステップと、ユーザデータを前記ユーザテーブルに書き込むステップと、ユーザデータに従ってインデックスデータを生成するステップと、ユーザテーブルに対応するインデックステーブルにインデックスデータを書き込むステップであって、ユーザテーブル及びインデックステーブルは、分散記憶システムの1つのノードにおいて確立され、一対一方式により結合される、書き込むステップと、を有する方法に関する。本発明は、ユーザチャイルドテーブル及びインデックスチャイルドテーブルを結合することによって、ノードにわたる2つのリモート書き込み処理が1つに低減され、ネットワークリクエストの数が大きく低減し、これによりパフォーマンスが向上する点で存在する。The present invention is a method for establishing a secondary index in a distributed storage system, comprising receiving user data transmitted by a user client, wherein the user data includes a key portion and a value portion; Determining a user table according to user data; writing user data into the user table; generating index data according to user data; writing index data into an index table corresponding to the user table; The user table and the index table are related to a method having a step of writing, which is established in one node of the distributed storage system and combined in a one-to-one manner. The present invention exists in that by combining the user child table and the index child table, two remote write operations across the nodes are reduced to one, greatly reducing the number of network requests, thereby improving performance. .
Description
本出願は、分散記憶システムに関し、特に分散記憶システムにおいてセカンダリインデックスを確立するための方法、装置及びシステムに関する。 This application relates to distributed storage systems, and more particularly, to a method, apparatus and system for establishing secondary indexes in a distributed storage system.
分散記憶システムの大多数において、Key−Valueタイプの記憶方法が受け入れられてきており、すなわち、記憶対象の実ユーザデータは値部分に記憶され、それから、Keyは対応するValueをサーチするのに構成される。 In the majority of distributed storage systems, a key-value type storage method has been accepted, i.e. the actual user data to be stored is stored in the value part, and then the key is configured to search for the corresponding value. Is done.
例えば、分散記憶システムがオンライン取引システムにデータを記憶するのに利用され、Key及びValueが以下のように設計できると仮定する。 For example, assume that a distributed storage system is used to store data in an online trading system, and Key and Value can be designed as follows.
Key:ユーザコード+取引時間
Value:取引のための詳細情報
実ユーザデータは、分散記憶システムに記憶されるとき、同一のユーザコードのデータが隣接して記憶されるように辞書の順序に自然に順序づけされる。“xxxx”としてのユーザコード及びある期間としての取引時間を有する全てのレコードを取得するため、分散記憶システムにおけるインデックス方式は、所望のデータを迅速にサーチするのに利用可能である。
Key: User code + trading time Value: Detailed information for trading When real user data is stored in a distributed storage system, the data of the same user code is stored in the dictionary order so that it is stored adjacently. Ordered. An indexing scheme in a distributed storage system can be used to quickly search for desired data in order to obtain all records having a user code as “xxxx” and transaction time as a period.
分散記憶システムでは、テーブルのコンセプトが提供される。ユーザがデータを分散記憶システムに書き込むことを所望する場合、彼/彼女は、最初に彼/彼女の自らの要求に従ってデータテーブルを構築すべきである。しかしながら、大量のデータが1つのデータテーブルに含まれる可能性がある。分散記憶システムにおいて分散化された記憶を実現するため、主要な方法は、データテーブルを横方向に切断することによって複数のチャイルドテーブルを生成し、複数のチャイルドテーブルを管理及び維持することである。チャイルドテーブルは以下のように定義できる。
1.チャイルドテーブルは、複数の連続する行のクラスタであり、各チャイルドテーブルは、キー値範囲を有する。
2.データベーステーブルは、通常は1以上のチャイルドテーブルから構成される。
3.チャイルドテーブルは、分散化された記憶及びロードバランシングの最小単位である。
4.ある程度まで増加すると、チャイルドテーブルは2つのチャイルドテーブルに自動的に分割する。
In a distributed storage system, the concept of a table is provided. If the user wants to write data to the distributed storage system, he / she should first build the data table according to his / her own requirements. However, a large amount of data may be included in one data table. In order to achieve distributed storage in a distributed storage system, the primary method is to generate multiple child tables by cutting the data table in the horizontal direction, and manage and maintain the multiple child tables. A child table can be defined as follows:
1. A child table is a cluster of a plurality of consecutive rows, and each child table has a key value range.
2. A database table is usually composed of one or more child tables.
3. The child table is the smallest unit of distributed storage and load balancing.
4). When increased to some extent, the child table is automatically split into two child tables.
図1はデータテーブルの概略図であり、図1に示されるように、データテーブルはM個のチャイルドテーブルから構成され、各チャイルドテーブルはキー値範囲を占める。ユーザにより生成される各キー値が対応するキーは、1つのチャイルドテーブルのキー値範囲のみに属しうる。異なるチャイルドテーブルのキー値範囲は共通部分を有さない。 FIG. 1 is a schematic diagram of a data table. As shown in FIG. 1, the data table includes M child tables, and each child table occupies a key value range. The key to which each key value generated by the user corresponds can belong only to the key value range of one child table. The key value ranges of different child tables have no common part.
各チャイルドテーブルについて、それが割り当てられる必要があり、管理対象の1つの領域サーバのみに一意的に割り当てることができる。領域サーバは、分散記憶システムのクラスタのノードであり、それは通常は物理的なサーバである。 Each child table needs to be assigned and can be uniquely assigned to only one managed area server. An area server is a node of a cluster of a distributed storage system, which is usually a physical server.
図2は分散記憶システムのクラスタの概略図であり、図2に示されるように、分散記憶システムのクラスタは、3つの領域サーバ、第1領域サーバに記憶される3つのチャイルドテーブル(チャイルドテーブル1、チャイルドテーブル4及びチャイルドテーブル9)、第2領域サーバに記憶される3つのチャイルドテーブル(チャイルドテーブル2、チャイルドテーブル6及びチャイルドテーブル7)、及び第3領域サーバに記憶される3つのチャイルドテーブル(チャイルドテーブル3、チャイルドテーブル5及びチャイルドテーブル8)を有する。 FIG. 2 is a schematic diagram of the cluster of the distributed storage system. As shown in FIG. 2, the cluster of the distributed storage system includes three child servers (child table 1) stored in the three region servers and the first region server. , Child table 4 and child table 9), three child tables stored in the second area server (child table 2, child table 6 and child table 7), and three child tables stored in the third area server ( It has a child table 3, a child table 5 and a child table 8).
分散記憶システムでは、ユーザデータの全てはキー値の形態によって基礎となるファイルシステムに記憶される。ユーザデータを読み出すため、1つの方法はサーチを正確に実行するため正確なキーを指定することであり、他の方法はデータスキャンを曖昧に実行するためキーの前の部分を指定することである。しかしながら、これら2つの方法は共に、キーの値に基づき、ユーザが値の状態に基づきユーザデータをサーチすることを所望するとき、レコードを検出するのにデータテーブル全体をサーチすることが必要とされ、パフォーマンスは大変不良である。 In a distributed storage system, all user data is stored in the underlying file system in the form of key values. To retrieve user data, one way is to specify the correct key to perform the search correctly, and the other is to specify the previous part of the key to perform the data scan ambiguously. . However, both these two methods are based on the value of the key, and when the user wants to search for user data based on the state of the value, it is necessary to search the entire data table to find the record. The performance is very poor.
この問題を解決するため、セカンダリインデックス方式が提供される。図3は従来のセカンダリインデックス方式の方式の概略図であり、図3に示されるように、セカンダリインデックス方式は、分散記憶システムのクライアントAPI(Application Programming Interface)パッケージに基づく。セカンダリインデックス方式では、別のインデックステーブルがインデックス値を記憶するのに利用され、ユーザがデータを書き込むとき、2つのタイプのデータがパッケージングされたクライアントAPIを利用することによって生成可能であり、一方はユーザテーブルに書き込まれるユーザデータであり、他方はインデックステーブルに書き込まれるインデックスデータである。 In order to solve this problem, a secondary index method is provided. FIG. 3 is a schematic diagram of a conventional secondary index method. As shown in FIG. 3, the secondary index method is based on a client API (Application Programming Interface) package of the distributed storage system. In the secondary index method, another index table is used to store index values, and when a user writes data, two types of data can be generated by using a packaged client API, Is user data written to the user table, and the other is index data written to the index table.
本発明の実現形態では、発明者は、従来のセカンダリインデックス方式がクライアントAPIにパッケージングされているため、不良なパフォーマンスを導くことを発見した。他のいくつかの改良された方式が存在するが、データを書き込むため、2つのリモートライト処理がクライアントとリモート分散記憶システムとの間で送信される必要があり、ユーザテーブルとインデックステーブルとを書き込むことが必要とされ、ライトデータのパフォーマンスを向上させることは基本的にはできない。 In an implementation of the present invention, the inventor has discovered that conventional secondary index schemes lead to poor performance because they are packaged in the client API. There are several other improved schemes, but to write the data, two remote write processes need to be sent between the client and the remote distributed storage system, writing the user table and the index table Therefore, it is basically impossible to improve the performance of write data.
背景技術で指摘された問題点に鑑み、本発明が提案される。 In view of the problems pointed out in the background art, the present invention is proposed.
本発明の実施例の主要な課題は、ネットワークリクエストの数を減少させるため、分散記憶システムにおいてセカンダリインデックスを確立するための方法、装置及びシステムを提供することである。 The main problem of embodiments of the present invention is to provide a method, apparatus and system for establishing secondary indexes in a distributed storage system in order to reduce the number of network requests.
本発明の実施例の態様によると、分散記憶システムにおけるセカンダリインデックスを確立する方法であって、
ユーザクライアントにより送信されたユーザデータを受信するステップであって、前記ユーザデータはキー部分及び値部分を含む、受信するステップと、
前記ユーザデータに従ってユーザテーブルを決定するステップと、
前記ユーザデータを前記ユーザテーブルに書き込むステップと、
前記ユーザデータに従ってインデックスデータを生成するステップと、
前記ユーザテーブルに対応するインデックステーブルに前記インデックスデータを書き込むステップであって、前記ユーザテーブル及び前記インデックステーブルは、前記分散記憶システムの1つのノードにおいて確立され、一対一方式により結合される、書き込むステップと、
を有する方法が提供される。
According to an aspect of an embodiment of the present invention, a method for establishing a secondary index in a distributed storage system comprising:
Receiving user data transmitted by a user client, wherein the user data includes a key portion and a value portion;
Determining a user table according to the user data;
Writing the user data to the user table;
Generating index data according to the user data;
Writing the index data into an index table corresponding to the user table, wherein the user table and the index table are established in one node of the distributed storage system and combined in a one-to-one manner When,
Is provided.
本発明の実施例の他の態様によると、分散記憶システムにおいてセカンダリインデックスを確立する装置であって、
ユーザクライアントにより送信されたユーザデータを受信するよう構成される受信ユニットであって、前記ユーザデータはキー部分及び値部分を含む、受信ユニットと、
前記ユーザデータに従ってユーザテーブルを決定するよう構成される決定ユニットと、
前記ユーザデータを前記ユーザテーブルに書き込むよう構成される第1書き込みユニットと、
前記ユーザデータに従ってインデックスデータを生成するよう構成される生成ユニットと、
前記ユーザテーブルに対応するインデックステーブルに前記インデックスデータを書き込むよう構成される第2書き込みユニットであって、前記ユーザテーブル及び前記インデックステーブルは、分散記憶システムの1つのノードにおいて確立され、一対一方式で結合される、第2書き込みユニットと、
を有する装置が提供される。
According to another aspect of an embodiment of the present invention, an apparatus for establishing a secondary index in a distributed storage system, comprising:
A receiving unit configured to receive user data sent by a user client, wherein the user data includes a key portion and a value portion;
A determination unit configured to determine a user table according to the user data;
A first writing unit configured to write the user data to the user table;
A generating unit configured to generate index data according to the user data;
A second writing unit configured to write the index data to an index table corresponding to the user table, wherein the user table and the index table are established in one node of a distributed storage system, in a one-to-one manner A second writing unit coupled;
A device is provided.
本発明の実施例の更なる他の態様によると、分散記憶システムであって、少なくとも1つの領域サーバであって、前記領域サーバのそれぞれは、少なくとも1つのユーザテーブル及び前記少なくとも1つのユーザテーブルに対応する少なくとも1つのインデックステーブルを記憶し、前記ユーザテーブルのそれぞれの範囲キーは、前記ユーザテーブルに対応するインデックステーブルのものと同一である、領域サーバと、
上述されたセカンダリインデックス確立装置と、
を有する分散記憶システムが提供される。
According to yet another aspect of an embodiment of the present invention, a distributed storage system is at least one region server, each region server having at least one user table and at least one user table. Storing at least one corresponding index table, wherein each range key of the user table is the same as that of the index table corresponding to the user table; and
The secondary index establishment device described above;
A distributed storage system is provided.
本発明の実施例の効果は、ユーザチャイルドテーブル及びインデックスチャイルドテーブルを結合することによって、ノードにわたる2つのリモート書き込み処理が1つに低減され、ネットワークリクエストの数が大きく低減し、これに従ってパフォーマンスが向上する点に存在する。 The effect of the embodiment of the present invention is that by combining the user child table and the index child table, the two remote write processes across the nodes are reduced to one, the number of network requests is greatly reduced, and the performance is improved accordingly. It exists in the point to do.
本発明の特定の実施例は、以下の説明及び添付された図面を参照して以下において詳細に説明され、本発明の原理を利用する方式が指摘される。本発明の実現形態は範囲においてそれに限定されないことが理解されるべきである。むしろ、本発明は、添付した請求項の精神及び条件の範囲内に属する全ての変更、修正及び等価を含む。 Specific embodiments of the present invention are described in detail below with reference to the following description and the accompanying drawings, pointing out the manner in which the principles of the invention are utilized. It should be understood that the implementation of the invention is not limited in scope. Rather, the invention includes all changes, modifications and equivalents falling within the spirit and conditions of the appended claims.
一実施例に関して説明及び/又は図示される特徴は、1以上の他の実施例において同じ方法又は同様の方法で、及び/又は他の実施例の特徴に関連して若しくは代わりに利用されてもよい。 Features described and / or illustrated with respect to one embodiment may be utilized in one or more other embodiments in the same or similar manner and / or in connection with or instead of features of other embodiments. Good.
本明細書において利用される際の“有する”という用語は、述べられた特徴、整数、ステップ又はコンポーネントの存在を示すのに用いられるが、1以上の他の特徴、整数、ステップ、コンポーネント又はこれらのグループの存在又は追加を排除するものでないことが強調されるべきである。 As used herein, the term “comprising” is used to indicate the presence of a stated feature, integer, step or component, but one or more other features, integers, steps, components or these It should be emphasized that it does not exclude the presence or addition of other groups.
本発明の更なる理解を提供するため図面が含まれ、それは明細書の一部を構成し、本発明の好適な実施例を示し、説明と共に本発明の原理を説明するのに利用される。同一の要素は図面を通じて同一の参照番号により表される。
本発明の実施例の上記及び他の特徴は、図面を参照して以下の説明を通じて明らかになる。これらの実施例は、単なる例示であり、本発明を限定することを意図するものでない。当業者による本発明の原理及び実施例の容易な理解のため、本発明の実施例の説明は、具体例としてオンライン取引システムを取り上げて提供されるが、本発明の実施例はこのようなシステムに限定されないことが理解されるべきである。 These and other features of embodiments of the present invention will become apparent through the following description with reference to the drawings. These examples are illustrative only and are not intended to limit the invention. For easy understanding of the principles and embodiments of the present invention by those skilled in the art, the description of the embodiments of the present invention is provided by taking an online transaction system as a specific example, but the embodiments of the present invention are such systems. It should be understood that the invention is not limited to.
図4は本発明の実施例による分散記憶システムの概略図であり、図4に示されるように、分散記憶システムは2つの領域サーバ、すなわち、領域サーバ41及び領域サーバ42を有する。各領域サーバは、ユーザテーブル及びインデックステーブルを有する。1つの領域サーバにおいて確立されるユーザテーブル及びインデックステーブルは、一対一の方式により結合され、すなわち、ユーザテーブルのキー範囲とインデックステーブルのものとは同じである。各ユーザテーブルは、複数のユーザチャイルドテーブルに分割されてもよく、各インデックステーブルは、複数のインデックスチャイルドテーブルに分割されてもよい。そして、複数のインデックスチャイルドテーブルの1つは、複数のユーザチャイルドテーブルの1つに対応し、1つの領域サーバにおける複数のユーザチャイルドテーブルの数は、同じ領域サーバにおける複数のインデックスチャイルドテーブルの数と同一である。1つの領域サーバにおいて確立されるユーザチャイルドテーブル及びインデックスチャイルドテーブルは一対一の方式で結合され、すなわち、各ユーザチャイルドテーブルのキー範囲は、それの対応するインデックスチャイルドテーブルのものと同一である。本発明の実施例では、ユーザテーブル411及びインデックステーブル412は領域サーバ41において確立され、ユーザテーブル421及びインデックステーブル422は領域サーバ42において確立される。
FIG. 4 is a schematic diagram of a distributed storage system according to an embodiment of the present invention. As shown in FIG. 4, the distributed storage system includes two area servers, that is, an
ユーザテーブル411がユーザチャイルドテーブル4111及びユーザチャイルドテーブル4112を有し、インデックステーブル412がインデックスチャイルドテーブル4121及びインデックスチャイルドテーブル4122を有する場合、本発明の実施例では、ユーザチャイルドテーブル4111及びインデックスチャイルドテーブル4121が一対一方式により結合され、すなわち、ユーザチャイルドテーブル4111のキー範囲とインデックスチャイルドテーブル4121のものとは同じである。同様に、ユーザチャイルドテーブル4112及びインデックスチャイルドテーブル4122は一対一方式により結合される。 When the user table 411 includes the user child table 4111 and the user child table 4112, and the index table 412 includes the index child table 4121 and the index child table 4122, in the embodiment of the present invention, the user child table 4111 and the index child table 4121 are included. Are combined in a one-to-one manner, that is, the key range of the user child table 4111 and that of the index child table 4121 are the same. Similarly, the user child table 4112 and the index child table 4122 are combined in a one-to-one manner.
他方、ユーザテーブル412はユーザチャイルドテーブル4211及びユーザチャイルドテーブル4212を有し、インデックステーブル422はインデックスチャイルドテーブル4221及びインデックスチャイルドテーブル4222を有し、同様に、本発明の実施例では、ユーザチャイルドテーブル4211及びインデックスチャイルドテーブル4221は一対一方式により結合され、ユーザチャイルドテーブル4212及びインデックスチャイルドテーブル4222は一対一方式により結合される。 On the other hand, the user table 412 has a user child table 4211 and a user child table 4212. The index table 422 has an index child table 4221 and an index child table 4222. Similarly, in the embodiment of the present invention, the user child table 4211 is provided. The index child table 4221 is coupled by a one-to-one method, and the user child table 4212 and the index child table 4222 are coupled by a one-to-one method.
本発明の実施例では、ユーザテーブル及びインデックステーブルは、同じノード(領域サーバ)において確立され、一対一方式により結合され、ユーザデータがユーザにより書き込まれると、ユーザサイドは、ユーザテーブルに関連するデータのみを送信する必要があり、インデックステーブルに関連するデータを送信する必要はなく、すなわち、ユーザテーブルを書き込む一方の処理しか必要でなく、インデックステーブルを書き込む他方の処理は回避され、インデックステーブルのデータはプロセス内の呼び出しにより書き込み可能であり、データ書き込み段階のパフォーマンスを向上させることが可能であり、データ書き込みパフォーマンスの要求が高いユーザシーンにとって特に適している。 In an embodiment of the present invention, the user table and the index table are established in the same node (region server), combined by a one-to-one method, and when user data is written by the user, the user side is the data related to the user table. Need to send only the data related to the index table, i.e. only one process of writing the user table is required, the other process of writing the index table is avoided, the data of the index table Is writable by a call in the process, can improve the performance of the data writing stage, and is particularly suitable for a user scene that requires high data writing performance.
本発明の好適な実施例は、図面を参照して以下に説明される。 Preferred embodiments of the invention are described below with reference to the drawings.
実施例1
本発明の実施例は、分散記憶システムにおけるセカンダリインデックスを確立する方法を提供する。図5は当該方法のフローチャートであり、図5を参照して、当該方法は、
ステップ501:ユーザクライアントにより送信されたユーザデータを受信するステップであって、ユーザデータはキー部分及び値部分を含む、受信するステップと、
ステップ502:ユーザデータに従ってユーザテーブルを決定するステップと、
ステップ503:ユーザデータをユーザテーブルに書き込むステップと、
ステップ504:ユーザデータに従ってインデックスデータを生成するステップと、
ステップ505:ユーザテーブルに対応するインデックステーブルにインデックスデータを書き込むステップであって、ユーザテーブル及びインデックステーブルは、分散記憶システムの1つのノードにおいて確立され、一対一方式により結合される、書き込むステップと、
を有する。
Example 1
Embodiments of the present invention provide a method for establishing a secondary index in a distributed storage system. FIG. 5 is a flowchart of the method, and with reference to FIG.
Step 501: Receiving user data sent by a user client, wherein the user data includes a key portion and a value portion;
Step 502: determining a user table according to the user data;
Step 503: writing user data to the user table;
Step 504: generating index data according to the user data;
Step 505: writing index data to an index table corresponding to the user table, wherein the user table and the index table are established in one node of the distributed storage system and combined in a one-to-one manner;
Have
ステップ501において、各テーブルは、スタートキーからエンドキーまでのキー範囲を有し、ユーザデータの範囲キーは、通常はテーブルのスタートキーからエンドキーまでの範囲内にある。一般に、本発明の実施例では、ユーザデータはキー部分及び値部分を含み、ユーザデータのキー部分は2つの部分に分割されてもよく、一方は範囲キーであり、他方は特定のキーであり、範囲キーはスタートキーからエンドキーまでの何れかのキーに対応し、ユーザデータが何れのユーザテーブルに属するか示すのに利用され、特定のキーは、ユーザデータを一意的に示すのに利用される。従って、ユーザデータのキー部分の範囲キーによると、分散記憶システムは、何れのユーザテーブルがユーザデータを記憶するのに必要とされるか決定できる。 In step 501, each table has a key range from the start key to the end key, and the range key of user data is usually in the range from the start key to the end key of the table. In general, in embodiments of the present invention, user data includes a key portion and a value portion, where the key portion of user data may be divided into two portions, one being a range key and the other being a specific key. The range key corresponds to any key from the start key to the end key and is used to indicate which user table the user data belongs to, and a specific key is used to uniquely indicate the user data Is done. Thus, according to the range key of the key portion of the user data, the distributed storage system can determine which user table is required to store the user data.
ステップ503において、ユーザテーブルを決定した後、分散記憶システムは、ユーザデータを書き込む処理を実行可能であり、ユーザデータを書き込む方法は従来技術と同じであり、さらには説明されない。
In
ステップ504において、分散記憶システムは、プロセス内呼び出しによって達成可能なユーザデータを利用することによってインデックスデータを生成可能であり、従って、ユーザクライアントからのインデックスデータに対する分散記憶システムの他の処理リクエストが回避可能であり、分散記憶システムによるインデックスデータを生成する方法は、ネットワークリソースを節約することが可能であり、従来のユーザクライアントAPIパッケージング方式と比較してより効率的にできる。
In
生成されたインデックスデータはキー部分を有し、インデックスデータのキー部分は2つの部分、範囲キー及び特定のキーを有し、インデックスデータの範囲キーは、インデックスデータが属するインデックステーブルを示すのに利用され、インデックスデータの特定のキーは、インデックスデータを一意的に示すのに利用される。本発明の実施例では、ユーザテーブルのキー範囲とインデックステーブルのものとが同じであるため、インデックスデータの範囲キーはユーザデータの範囲キーに対応するか、インデックスデータの範囲キーはユーザテーブルのスタートキーを採用してもよく、又はインデックスデータの範囲キーはユーザテーブルのエンドキーを採用してもよい。 The generated index data has a key part, the key part of the index data has two parts, a range key and a specific key, and the index data range key is used to indicate the index table to which the index data belongs. The specific key of the index data is used to uniquely indicate the index data. In the embodiment of the present invention, since the key range of the user table is the same as that of the index table, the index data range key corresponds to the user data range key, or the index data range key is the start of the user table. The key may be adopted, or the end key of the user table may be adopted as the range key of the index data.
ステップ504の具体的な実施例では、分散記憶システムは、インデックスデータのキー部分の範囲キーとしてユーザデータのキー部分の範囲キーを抽出する。詳細が以下に説明される。
In a specific example of
ステップ505において、ユーザテーブル及びインデックステーブルは一対一の関係を有するため、分散記憶システムは、ユーザテーブルに対応するインデックステーブルにインデックスデータを書き込むことができる。 In step 505, since the user table and the index table have a one-to-one relationship, the distributed storage system can write the index data to the index table corresponding to the user table.
各ユーザテーブルは複数のユーザチャイルドテーブルに分割されてもよく、各インデックステーブルは複数のインデックスチャイルドテーブルに分割されてもよい。ステップ502において、分散記憶システムは更に、ユーザデータに従ってユーザチャイルドテーブルを決定し、ステップ504において、ユーザデータをユーザチャイルドテーブルに書き込み、ステップ505において、ユーザチャイルドテーブルに対応するインデックスチャイルドテーブルにインデックスデータを書き込む。
Each user table may be divided into a plurality of user child tables, and each index table may be divided into a plurality of index child tables. In
図6aはユーザチャイルドテーブルの実施例の概略図であり、実施例では、あるユーザデータがユーザチャイルドテーブルに記憶され、ユーザデータと同様に、ユーザチャイルドテーブルもまたキー部分及び値部分を有し、ユーザチャイルドテーブルのキー部分はユーザデータのキー部分を記憶するのに利用され、ユーザチャイルドテーブルの値部分はユーザデータの値部分を記憶するのに利用される。図6aに示されるように、ユーザチャイルドテーブルのキー部分は“キー”と名付けられた1つのカラムを有し、ユーザチャイルドテーブルの値部分は、“売り手コード”と名付けられた1つのカラムを有し、実施例はこれに限定されず、他の実施例では、ユーザチャイルドテーブルの値部分はまた複数のカラムを有することが可能であることが理解されるべきである。図6aに示されるように、ユーザデータはキー部分及び値部分を含み、実施例では、ユーザデータのキー部分は“buyera1201207011000”であり、ユーザデータの値部分は“sellerc1”である。ユーザデータのキー部分は2つの部分を有し、一方は範囲キーであり、他方は特定のキーであり、図6aに示される実施例では、範囲キーは“buyera”であり、特定のキーは“201207011000”である。図6bは、インデックスチャイルドテーブルの実施例の概略図であり、実施例では、インデックスチャイルドテーブルは図6aに示されるユーザチャイルドテーブルに対応し、それは、インデックスチャイルドテーブルのキー範囲がユーザチャイルドテーブルのものに同一であることを意味する。図6bに示されるように、インデックスデータは、図6aに示されるようなユーザチャイルドテーブルに記憶されるユーザデータに従って生成される。図6bに示されるように、インデックスデータもまたキー部分及び値部分を含み、値部分はヌルであり、インデックスデータのキー部分は範囲キー及び特定のキーを有する。インデックスデータの範囲キーは“buyera”であり、それは、図6aにおけるユーザテーブルのスタートキーであるか、又は図6aにおけるユーザデータの範囲キーである。さらに、インデックスデータの特定のキーは“sellerc1 buyera1201207011000”であり、ここで、“sellerc1”はユーザデータの値部分におけるインデックスカラムの値であり、“buyera1201207011000”はユーザデータのキー部分である。図6bに示されるように、本実施例におけるインデックスデータのキー部分は、“buyera sellerc1 buyera1201207011000”である。
FIG. 6a is a schematic diagram of an embodiment of a user child table, in which certain user data is stored in the user child table, and like the user data, the user child table also has a key portion and a value portion, The key portion of the user child table is used to store the key portion of the user data, and the value portion of the user child table is used to store the value portion of the user data. As shown in FIG. 6a, the key portion of the user child table has one column named “Key” and the value portion of the user child table has one column named “Seller Code”. However, it should be understood that the embodiments are not limited to this, and in other embodiments, the value portion of the user child table can also have multiple columns. As shown in FIG. 6a, the user data includes a key portion and a value portion. In the embodiment, the key portion of the user data is “buyera1201207011000” and the value portion of the user data is “sellerc1”. The key part of the user data has two parts, one is a range key and the other is a specific key. In the example shown in FIG. 6a, the range key is “buyera” and the specific key is “2012077011000”. FIG. 6b is a schematic diagram of an embodiment of an index child table, in which the index child table corresponds to the user child table shown in FIG. 6a, where the key range of the index child table is that of the user child table. Means the same. As shown in FIG. 6b, the index data is generated according to user data stored in the user child table as shown in FIG. 6a. As shown in FIG. 6b, the index data also includes a key portion and a value portion, the value portion is null, and the key portion of the index data has a range key and a specific key. The index data range key is “buyera”, which is the start key of the user table in FIG. 6 a or the user data range key in FIG. 6 a. Furthermore, the specific key of the index data is “
他の実施例では、ユーザチャイルドテーブルのインデックスカラムのカラム名もまた、図6cに示されるように、インデックスデータに含めることが可能であり、図6bの実施例と異なって、カラムの名前は、“buyera”と“sellerc1”との間に配置されるインデックスデータに含まれ、本実施例におけるインデックスデータのキー部分は、“buyera sellercode sellerc1 buyera1201207011000”である。 In other embodiments, the column name of the index column of the user child table can also be included in the index data as shown in FIG. 6c, and unlike the embodiment of FIG. It is included in the index data arranged between “buyera” and “sellerc1”, and the key part of the index data in the present embodiment is “buyera sellercode sellerc1 buyera1201207011000”.
本発明の一実施例では、ユーザデータの範囲キー(又はユーザチャイルドテーブルのスタートキー若しくはユーザチャイルドテーブルのエンドキー)、ユーザデータの値部分及びユーザデータのキー部分は、インデックスデータにおいて順次配置される。本発明の他の実施例では、ユーザデータの値部分はインデックスカラムの値を含む。 In one embodiment of the present invention, a user data range key (or a user child table start key or a user child table end key), a user data value portion, and a user data key portion are sequentially arranged in the index data. . In another embodiment of the present invention, the value portion of the user data includes an index column value.
図6b及び6cに示される実施例では、インデックスチャイルドテーブルの値部分はエンプティであり、すなわち、インデックスデータはキー部分しか含まないが、実施例はこれに限定されず、他の実施例では、インデックスデータの値部分が実際の要求に従って他の有用な情報により充填可能であることが理解されるべきである。 In the embodiments shown in FIGS. 6b and 6c, the value portion of the index child table is empty, i.e., the index data includes only the key portion, but the embodiments are not limited to this, and in other embodiments, the index data It should be understood that the value portion of the data can be filled with other useful information according to actual requirements.
本発明の一実施例では、図4に示されるように、ユーザチャイルドテーブル及びユーザチャイルドテーブルに対応するインデックスチャイルドテーブルは、同じ領域サーバに記憶される。 In one embodiment of the present invention, as shown in FIG. 4, the user child table and the index child table corresponding to the user child table are stored in the same region server.
本発明の実施例の容易な理解のため、図面を参照した詳細な説明が以下に与えられる。 For an easy understanding of the embodiments of the present invention, a detailed description with reference to the drawings is given below.
ユーザテーブルにおいて3つのユーザチャイルドテーブルがあり、各ユーザチャイルドテーブルのキー範囲が、
ユーザチャイルドテーブル1:[a,b);
ユーザチャイルドテーブル2:[b,c);
ユーザチャイルドテーブル3:[c,d)
であると仮定する。
There are three user child tables in the user table, and the key range of each user child table is
User child table 1: [a, b);
User child table 2: [b, c);
User child table 3: [c, d)
Assume that
従って、インデックステーブルには3つのインデックスチャイルドテーブルがあり、各インデックスチャイルドテーブルのキー範囲は、インデックスチャイルドテーブルが対応するユーザチャイルドテーブルのものと同じである。
インデックスチャイルドテーブル1:[a,b);
インデックスチャイルドテーブル2:[b,c);
インデックスチャイルドテーブル3:[c,d)
すなわち、ユーザチャイルドテーブル1はインデックスチャイルドテーブル1に対応し、ユーザチャイルドテーブル2はインデックスチャイルドテーブル2に対応し、ユーザチャイルドテーブル3はインデックスチャイルドテーブル3に対応する。
Accordingly, there are three index child tables in the index table, and the key range of each index child table is the same as that of the user child table to which the index child table corresponds.
Index child table 1: [a, b);
Index child table 2: [b, c);
Index child table 3: [c, d)
That is, the user child table 1 corresponds to the index child table 1, the user child table 2 corresponds to the index child table 2, and the user child table 3 corresponds to the index child table 3.
上述されるように、全てのデータは辞書の順序により分散記憶システムに記憶されているため、キー“a0001”のユーザデータがユーザにより書き込まれた場合、ユーザデータはユーザチャイルドテーブル1の[a,b)のキー範囲に属するため、明らかに、ユーザデータはユーザチャイルドテーブル1に書き込まれるべきである。本発明の実施例によると、ステップ501〜503に説明されるように、ユーザデータはユーザチャイルドテーブル1に書き込まれた。 As described above, since all data is stored in the distributed storage system in the order of the dictionary, when the user data of the key “a0001” is written by the user, the user data is stored in the [a, Obviously, user data should be written to the user child table 1 because it belongs to the key range of b). According to an embodiment of the present invention, user data was written to the user child table 1 as described in steps 501 to 503.
実施例では、ステップ504〜505に説明されるように、対応するインデックスデータが生成され、インデックスチャイルドテーブル1に格納される。すなわち、対応するインデックスデータもまた、インデックスチャイルドテーブル1の[a,b)のキー範囲に属する。
In the embodiment, the corresponding index data is generated and stored in the index child table 1 as described in
本発明の実施例によると、生成されたインデックスデータが対応するインデックスチャイルドテーブルに属することを保証するため、ユーザデータの範囲キー“a”はインデックスチャイルドテーブルのキー部分のスタート部分に置かれる。 According to an embodiment of the present invention, the user data range key “a” is placed at the start of the key portion of the index child table to ensure that the generated index data belongs to the corresponding index child table.
実施例では、インデックスデータの構造は、対応するユーザデータの範囲キー+ユーザデータの値部分(インデックスカラムの名前又はインデックスカラムの名前及び値)+ユーザデータのキー部分として定義される。これは単なる具体例であり、本発明はこれに限定されるものでない。例えば、対応するユーザデータの範囲キーを除いて、インデックスカラムの名前のポジション、インデックスカラムの値及びユーザデータのキー部分は、これらの何れかの組み合わせとすることができる。 In the embodiment, the structure of the index data is defined as the corresponding user data range key + user data value part (index column name or index column name and value) + user data key part. This is merely a specific example, and the present invention is not limited to this. For example, except for the corresponding user data range key, the index column name position, the index column value, and the user data key portion can be any combination of these.
図7は、1つの領域サーバに記憶されるユーザチャイルドテーブル及びそれの対応するインデックスチャイルドテーブルの概略図である。図7に示されるように、ユーザチャイルドテーブル1のキー範囲は[buyera,buyerb)であり、従って、対応するインデックスチャイルドテーブル1のキー範囲もまた[buyera,buyerb)である。本発明の実施例によると、ユーザデータの3つのレコードがユーザチャイルドテーブル1に書き込まれ、従って、インデックスデータの3つのレコードが生成され、インデックスチャイルドテーブル1に書き込まれる。3番目のレコードについて、ユーザデータのキー部分は“buyera1201208101100”であり、ユーザデータの値部分は“sellerc3”であり、従って、インデックスデータのキー部分は“buyera sellercode sellerc3 buyera1201208101100”であり、従って、ユーザデータの範囲キーはインデックスデータのキー部分に書き込まれ、ユーザが売り手コード“sellerc3”の全ての取引レコードを取得することを所望するとき、これらのレコードはインデックスチャイルドテーブルに隣接して記憶されているため、これらのレコードを読み出しことは容易であり、データを復号化することによって、ユーザは、ユーザデータに従ってユーザチャイルドテーブルをサーチすることによって所望のデータを取得するため、ユーザデータ“buyera1201208101100”を取得可能である。 FIG. 7 is a schematic diagram of a user child table and its corresponding index child table stored in one region server. As shown in FIG. 7, the key range of the user child table 1 is [buyera, buyerb), and thus the key range of the corresponding index child table 1 is also [buyera, buyerb). According to an embodiment of the present invention, three records of user data are written to the user child table 1, and thus three records of index data are generated and written to the index child table 1. For the third record, the key part of the user data is “buyera120120208101100”, the value part of the user data is “sellerc3”, and therefore the key part of the index data is “buyera sellercode seller3 buyera1201208101100”, and thus the user Data range keys are written in the key portion of the index data, and when the user wishes to obtain all transaction records for seller code “sellerc3”, these records are stored adjacent to the index child table. Therefore, it is easy to read these records, and by decoding the data, the user supports the user child table according to the user data. To obtain the desired data by Ji, it is possible to obtain user data "buyera1201208101100".
本発明の実施例によると、ユーザチャイルドテーブル及びインデックスチャイルドテーブルを結合することによって、ノードにわたる2つのリモート書き込み処理が1つに低減され、データ読み込みはもはやノード間のデータが必要とされる処理でなくなり、ネットワークリクエストの数は大きく低減され、これに従ってパフォーマンスが向上する。 According to an embodiment of the present invention, by combining the user child table and the index child table, two remote write processes across the nodes are reduced to one, and data reading is no longer required between nodes. And the number of network requests is greatly reduced and performance improves accordingly.
本発明の実施例は更に、セカンダリインデックス確立装置を提供し、以下の実施例2に説明されるように、問題を解決するための装置の原理は実施例1におけるセカンダリインデックスを確立する方法のものと同じであるため、それの具体的な実現形態は実施例1の方法の実現形態を参照可能であり。類似点はさらには説明されない。
Embodiments of the present invention further provide a secondary index establishment device, and the principle of the device for solving the problem is that of the method of establishing a secondary index in
実施例2
本発明の実施例は更に、セカンダリインデックス確立装置を提供する。図8は当該装置の概略図であり、図8を参照して、当該装置は、
ユーザクライアントにより送信されたユーザデータを受信するよう構成される受信ユニット81であって、ユーザデータはキー部分及び値部分を含む、受信ユニット81と、
ユーザデータに従ってユーザテーブルを決定するよう構成される決定ユニット82と、
ユーザデータをユーザテーブルに書き込むよう構成される第1書き込みユニット83と、
ユーザデータに従ってインデックスデータを生成するよう構成される生成ユニット84と、
ユーザテーブルに対応するインデックステーブルにインデックスデータを書き込むよう構成される第2書き込みユニット85であって、ユーザテーブル及びインデックステーブルは、分散記憶システムの1つのノードにおいて確立され、一対一方式で結合される、第2書き込みユニット85と、
を有する。
Example 2
Embodiments of the present invention further provide a secondary index establishment device. FIG. 8 is a schematic diagram of the apparatus, and with reference to FIG.
A receiving
A
A
A generating
A
Have
実施例では、ユーザテーブルのキー範囲及びインデックステーブルのものは同じである。 In the embodiment, the key range of the user table and that of the index table are the same.
実施例では、ユーザテーブルは複数のユーザチャイルドテーブルを有し、インデックステーブルは複数のインデックスチャイルドテーブルを有し、複数のユーザチャイルドテーブルの数は、複数のインデックスチャイルドテーブルの数と同一であり、各ユーザチャイルドテーブルのキー範囲は、それの対応するインデックスチャイルドテーブルのものと同一である。 In an embodiment, the user table has a plurality of user child tables, the index table has a plurality of index child tables, and the number of the plurality of user child tables is the same as the number of the plurality of index child tables, The key range of the user child table is the same as that of its corresponding index child table.
実施例では、第1書き込みユニット83は、第1決定モジュール831及び第1書き込みモジュール832を有し、第1決定モジュール831は、ユーザデータに従ってユーザチャイルドテーブルを決定するよう構成され、第1書き込みモジュール832は、ユーザデータをユーザチャイルドテーブルに書き込むよう構成される。
In the embodiment, the
実施例では、第2書き込みユニット85は第2書き込みモジュール851を有し、第2書き込みモジュールは、ユーザチャイルドテーブルに対応するインデックスチャイルドテーブルにインデックスデータを書き込むよう構成される。
In an embodiment, the
実施例では、生成ユニット84は第2決定モジュール841及び生成モジュール842を有し、第2決定モジュール841は、インデックスデータの範囲キー及びインデックスデータの特定のキーを決定するよう構成され、インデックスデータの範囲キーは、ユーザデータの範囲キー、ユーザチャイルドテーブルのスタートキー又はユーザチャイルドテーブルのエンドキーを有し、インデックスデータの特定のキーは、ユーザデータの値部分及びユーザデータのキー部分を有し、生成モジュール842は、インデックスデータの範囲キー及びインデックスデータの特定のキーに従ってインデックスデータを生成するよう構成される。ここで、第2決定モジュール841は、ユーザデータの範囲キー、ユーザチャイルドテーブルのスタートキー又はユーザチャイルドテーブルのエンドキーを抽出することによって、インデックスデータの範囲キーを決定できる。ここで、インデックスデータにおいて採用されるユーザデータの値部分はインデックスカラムの値に関連し、インデックスデータは更にユーザチャイルドテーブルにおけるインデックスカラムの名前を有する。
In an embodiment, the
実施例では、インデックスカラムの名前、インデックスカラムの値及びユーザデータのキー部分は、インデックスデータにおいて順次配置される。 In the embodiment, the name of the index column, the value of the index column, and the key part of the user data are sequentially arranged in the index data.
本発明の実施例によると、ユーザチャイルドテーブル及びインデックスチャイルドテーブルを結合することによって、ノードにわたる2つのリモート書き込み処理が1つに低減され、データ読み込みはもはやノード間のデータを必要とする処理でなく、ネットワークリクエストの数は大きく低減され、これに従ってパフォーマンスが向上する。 According to an embodiment of the present invention, by combining the user child table and the index child table, two remote write processes across the nodes are reduced to one, and data reading is no longer a process that requires data between nodes. , The number of network requests is greatly reduced and performance is improved accordingly.
実施例3
本発明の実施例は更に分散記憶システムを提供する。図9は当該システムの概略図であり、図9を参照して、当該システムは少なくとも1つの領域サーバ91及びセカンダリインデックス確立装置92を有し、
領域サーバのそれぞれは、少なくとも1つのユーザテーブル及び少なくとも1つのユーザテーブルに対応する少なくとも1つのインデックステーブルを記憶し、ユーザテーブルのそれぞれの範囲キーは、ユーザテーブルに対応するインデックステーブルのものと同一であり、
セカンダリインデックス確立装置92は、実施例において説明されるような装置により実現可能であり、実施例2における内容がここに含まれ、さらには説明されない。
Example 3
Embodiments of the present invention further provide a distributed storage system. FIG. 9 is a schematic diagram of the system. Referring to FIG. 9, the system includes at least one
Each region server stores at least one user table and at least one index table corresponding to the at least one user table, and each range key of the user table is the same as that of the index table corresponding to the user table. Yes,
The secondary
ここで、同一の領域サーバ91に記憶されるユーザテーブル及びそれの対応するインデックステーブルの記憶形態は図4において説明されるものと同じであり、その内容がここに含まれ、さらには説明されない。
Here, the storage form of the user table and the corresponding index table stored in the
分散記憶システムでは、領域サーバの動作又は損傷中のロードバランシングを考慮して、チャイルドテーブルのマイグレーションが通常行われ、チャイルドテーブルが他の領域サーバにマイグレートしているとき、ユーザチャイルドテーブル及びインデックスチャイルドテーブルが一緒にマイグレートされる。 In a distributed storage system, child table migration is usually done in consideration of region server operation or load balancing during damage, and when the child table is migrated to another region server, the user child table and index child The tables are migrated together.
本発明の実施例によると、ユーザチャイルドテーブル及びインデックスチャイルドテーブルを結合することによって、ノードにわたる2つのリモート書き込み処理が1つに低減され、データ読み込みはもはやノード間のデータを必要とする処理でなく、ネットワークリクエストの数は大きく低減され、これに従ってパフォーマンスが向上する。 According to an embodiment of the present invention, by combining the user child table and the index child table, two remote write processes across the nodes are reduced to one, and data reading is no longer a process that requires data between nodes. , The number of network requests is greatly reduced and performance is improved accordingly.
本発明の好適な実施例は、図面を参照して上述された。実施例の多くの特徴及び効果は詳細な明細書から明らかであり、従って、それの真の精神及び範囲内に属する実施例のこのような全ての特徴及び効果をカバーすることは添付した請求項により意図される。さらに、多数の修正及び変更が当業者に容易に想到するため、図示及び説明された正確な構成及び処理に本発明の実施例を限定することは所望されず、従って、全ての適した修正及び等価がそれの範囲内に属すると主張されてもよい。 The preferred embodiment of the present invention has been described above with reference to the drawings. Many features and advantages of an embodiment will be apparent from the detailed description, and thus, it is the appended claims that cover all such features and advantages of the embodiment within its true spirit and scope Intended by. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit embodiments of the invention to the exact configuration and process illustrated and described, and thus, all suitable modifications and changes It may be argued that equivalence belongs within its scope.
本発明の各部分はハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせにより実現されてもよいことが理解されるべきである。上記の実施例では、複数のステップ又は方法は、メモリに記憶され、適切な命令実行システムにより実行されるソフトウェア又はファームウェアにより実現されてもよい。例えば、それがハードウェアにより実現される場合、それは、他の実施例と同様に、当該技術において知られている以下の技術、すなわち、データ信号の論理機能を実現するための論理ゲート回路を有する離散的な論理回路、適切な合成された論理ゲート回路を有する特定用途向け集積回路、プログラマブル・ゲート・アレイ(PGA)及びフィールド・プログラマブル・ゲート・アレイ(FPGA)などの何れか1つ又はそれらの組み合わせにより実現されてもよい。 It should be understood that each part of the present invention may be realized by hardware, software, firmware or a combination thereof. In the above embodiment, the steps or methods may be implemented by software or firmware stored in memory and executed by a suitable instruction execution system. For example, if it is implemented by hardware, it, like the other embodiments, has the following techniques known in the art: a logic gate circuit for implementing the logic function of the data signal Any one or more of discrete logic circuits, application specific integrated circuits with appropriate synthesized logic gate circuits, programmable gate arrays (PGA) and field programmable gate arrays (FPGAs), etc. It may be realized by a combination.
フローチャート又は他の方式における何れかの処理又は方法の説明又はブロックは、特定の論理機能又は処理におけるステップの実行可能な命令のコードを実現するための1以上のモジュール、セグメント又はパーツを有することを示すものとして理解されてもよく、本発明の好適な実施例の範囲は他の実現形態を有し、当該機能は、実質的に同時の方式又は反対の順序により関連する機能に従って機能を実行することを含む、図示又は説明されるものと異なる方式により実行されてもよく、本発明が属する当業者により理解されるべきである。 A description or block of any process or method in a flowchart or other manner may have one or more modules, segments, or parts to implement the code of executable instructions for a step in a particular logical function or process. The scope of the preferred embodiments of the present invention may have other implementations, and the functions perform functions according to related functions in a substantially simultaneous manner or in the opposite order. May be implemented in a manner different from that shown or described, and should be understood by those skilled in the art to which this invention belongs.
フローチャートに示され、又は他の方式により説明されるロジック及び/又はステップは、ここでは例えば、命令実行システム、デバイス又は装置(コンピュータを有するシステム、プロセッサを有するシステム、又は命令実行システム、デバイス又は装置から命令を抽出し、当該命令を実行可能な他のシステムなど)による利用のため、又は、命令実行システム、デバイス又は装置と共に利用するため、何れかのコンピュータ可読媒体に実現されてもよい、ロジック機能を実現するための実行可能な命令のシーケンス化リストとして理解されてもよい。ここで用いられるように、“コンピュータ可読媒体”は、命令実行システム、デバイス又は装置により利用のため、プログラムを内蔵、記憶、通信、伝搬又は送信可能な何れかの装置とすることが可能であり、又は命令実行システム、デバイス又は装置と共に利用可能である。コンピュータ可読媒体は、例えば、限定することなく、電子、磁気、光、電磁気、赤外線又は半導体システム、デバイス、装置又は伝搬媒体であってもよい。コンピュータ可読媒体のより詳細な具体例(非包括的なリスト)は、以下、すなわち、1以上の配線を有する電気接続部分(電子デバイス)、ポータブルコンピュータハードウェアボックス(磁気デバイス)、ランダム・アクセス・メモリ(RAM)(電子デバイス)、読み出し専用メモリ(ROM)(電子デバイス)、消去可能なプログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)(電子デバイス)、光ファイバ(光デバイス)及びポータブルコンパクトディスク読み出し専用メモリ(CDROM)(光デバイス)を有してもよい。さらに、プログラムが紙又は他の適切な媒体を光学的にスキャンし、その後に、必要に応じて他の適切な方式によりコンパイル、インタープリット又は処理することを通じて電子的に取得されるとき、コンピュータ記憶媒体は、プログラムが印刷可能な紙や他の適切な媒体であってもよく、その後、当該プログラムはコンピュータメモリに記憶される。 The logic and / or steps illustrated in the flowcharts or described in other manners herein may include, for example, an instruction execution system, device, or apparatus (a system having a computer, a system having a processor, or an instruction execution system, device, or apparatus). Logic that may be implemented on any computer-readable medium for use by, for example, other systems capable of extracting instructions from and executing with the instructions, or for use with an instruction execution system, device, or apparatus It may be understood as a sequenced list of executable instructions to implement the function. As used herein, a “computer-readable medium” can be any device that can store, store, communicate, propagate, or transmit a program for use by an instruction execution system, device, or apparatus. Or with an instruction execution system, device or apparatus. The computer readable medium may be, for example, without limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, apparatus, or propagation medium. More detailed examples (non-comprehensive list) of computer readable media include the following: electrical connections (electronic devices) having one or more wires, portable computer hardware boxes (magnetic devices), random access Memory (RAM) (electronic device), read-only memory (ROM) (electronic device), erasable programmable read-only memory (EPROM or flash memory) (electronic device), optical fiber (optical device) and portable compact disc read-only You may have a memory (CDROM) (optical device). Further, when the program is obtained electronically through optical scanning of paper or other suitable media, and then compiling, interpreting or processing in other suitable manner as required, computer storage The medium may be paper or other suitable medium on which the program can be printed, after which the program is stored in computer memory.
上記の文字による説明及び図面は本発明の各種特徴を示す。当業者が上述され、図面に図示されたステップ及び処理のそれぞれを実行するのに適したコンピュータコードを準備してもよいことが理解されるべきである。上述した端末、コンピュータ、サーバ及びネットワークなどは何れかのタイプであってもよく、コンピュータコードはデバイスを利用することにより本発明を実行するためここに含まれる開示に従って準備されてもよいことがまた理解されるべきである。 The above text description and drawings illustrate various features of the present invention. It should be understood that one skilled in the art may prepare computer code suitable for performing each of the steps and processes described above and illustrated in the drawings. The terminals, computers, servers, networks, etc. described above may be of any type, and the computer code may also be prepared according to the disclosure contained herein to implement the invention by utilizing a device. Should be understood.
本発明の特定の実施例がここに開示された。当業者は、本発明が他の環境において適用可能であることを容易に認識するであろう。実際、多くの実施例及び実現形態が存在する。添付した請求項は、本発明の範囲を上記の特定の実施例に限定すること意図していない。さらに、“〜するためのデバイス”の何れかの参照は、要素及び請求項を説明するためのデバイス・プラス・ファンクションの説明であり、“〜するためのデバイス”の参照を用いない何れかの要素は、“デバイス”の単語が当該請求項に含まれたとしても、デバイス・プラス・ファンクションの要素として理解されることは所望されない。 Particular embodiments of the present invention have been disclosed herein. Those skilled in the art will readily recognize that the present invention is applicable in other environments. In fact, there are many examples and implementations. The appended claims are not intended to limit the scope of the invention to the specific embodiments described above. Further, any reference to “a device to do” is a description of the device plus function to explain the elements and claims, and any reference that does not use the “device to do” reference. An element is not desired to be understood as a device plus function element even if the word “device” is included in the claim.
特定の好適な実施例が示され、本発明が説明されたが、当該説明及び図面を読み理解した当業者には等価な修正及び変更が想到可能であることは明らかである。特に、上記の要素(部分、アセンブリ、装置及び構成など)により実行される各種機能について、特段の断りがない場合、要素が構成に関して本発明において示される一例となる実施例の機能を実行することと異なっていても、これらの要素を説明する用語(“デバイス”の参照を含む)はこれらの要素の特定の機能を実行する何れかの要素に対応することが望ましい。さらに、本発明の特定の特徴が図示された実施例の1以上のみに関して説明されているが、このような特徴は、何れか所与の又は特定の適用の効果的な態様を考慮して、所望されるような他の実施例の1以上の他の特徴と組み合わされてもよい。 While the particular preferred embodiment has been shown and the invention has been described, it will be apparent that equivalent modifications and changes will occur to those skilled in the art upon reading and understanding the description and drawings. In particular, unless otherwise noted for the various functions performed by the above elements (parts, assemblies, devices, configurations, etc.), the elements perform the functions of the exemplary embodiments shown in the present invention with respect to the configuration. Although the terminology used to describe these elements (including references to “devices”) may differ from any element that performs a particular function of these elements. Furthermore, while specific features of the invention have been described with respect to only one or more of the illustrated embodiments, such features may be considered in any given or effective aspect of a particular application, It may be combined with one or more other features of other embodiments as desired.
Claims (19)
ユーザクライアントにより送信されたユーザデータを受信するステップであって、前記ユーザデータはキー部分及び値部分を含む、受信するステップと、
前記ユーザデータに従ってユーザテーブルを決定するステップと、
前記ユーザデータを前記ユーザテーブルに書き込むステップと、
前記ユーザデータに従ってインデックスデータを生成するステップと、
前記ユーザテーブルに対応するインデックステーブルに前記インデックスデータを書き込むステップであって、前記ユーザテーブル及び前記インデックステーブルは、前記分散記憶システムの1つのノードにおいて確立され、一対一方式により結合される、書き込むステップと、
を有する方法。 A method for establishing a secondary index in a distributed storage system, comprising:
Receiving user data transmitted by a user client, wherein the user data includes a key portion and a value portion;
Determining a user table according to the user data;
Writing the user data to the user table;
Generating index data according to the user data;
Writing the index data into an index table corresponding to the user table, wherein the user table and the index table are established in one node of the distributed storage system and combined in a one-to-one manner When,
Having a method.
前記複数のユーザチャイルドテーブルの数は前記複数のインデックスチャイルドテーブルの数と同じであり、
各ユーザチャイルドテーブルのキー範囲はそれの対応するインデックスチャイルドテーブルのものと同じである、請求項2記載の方法。 The user table has a plurality of user child tables, the index table has a plurality of index child tables,
The number of the plurality of user child tables is the same as the number of the plurality of index child tables;
The method of claim 2, wherein the key range of each user child table is the same as that of its corresponding index child table.
前記ユーザデータに従ってユーザチャイルドテーブルを決定するステップと、
前記ユーザデータを前記ユーザチャイルドテーブルに書き込むステップと、
を有し、
前記インデックステーブルに前記インデックスデータを書き込むステップは、
前記インデックスデータを前記ユーザチャイルドテーブルに対応するインデックスチャイルドテーブルに書き込むステップを有する、請求項3記載の方法。 Writing the user data to the user table comprises:
Determining a user child table according to the user data;
Writing the user data to the user child table;
Have
Writing the index data to the index table comprises:
4. The method of claim 3, comprising writing the index data to an index child table corresponding to the user child table.
前記インデックスデータの範囲キー及び前記インデックスデータの特定のキーを決定するステップであって、前記インデックスデータの範囲キーは、前記ユーザデータの範囲キー、前記ユーザチャイルドテーブルのスタートキー又は前記ユーザチャイルドテーブルのエンドキーを有し、前記インデックスデータの特定のキーは、前記ユーザデータの値部分及び前記ユーザデータのキー部分を有する、決定するステップと、
前記インデックスデータの範囲キー及び前記インデックスデータの特定のキーに従って前記インデックスデータを生成するステップと、
を有する、請求項4記載の方法。 The step of generating index data according to the user data includes:
Determining a range key of the index data and a specific key of the index data, wherein the range key of the index data is a range key of the user data, a start key of the user child table or a key of the user child table; Determining an end key, and wherein the particular key of the index data comprises a value portion of the user data and a key portion of the user data;
Generating the index data according to a range key of the index data and a specific key of the index data;
The method of claim 4, comprising:
前記ユーザデータの範囲キー、前記ユーザチャイルドテーブルのスタートキー又は前記ユーザチャイルドテーブルのエンドキーを抽出するステップを有する、請求項5記載の方法。 Determining a range key of the index data;
6. The method according to claim 5, comprising the step of extracting a range key of the user data, a start key of the user child table or an end key of the user child table.
ユーザクライアントにより送信されたユーザデータを受信するよう構成される受信ユニットであって、前記ユーザデータはキー部分及び値部分を含む、受信ユニットと、
前記ユーザデータに従ってユーザテーブルを決定するよう構成される決定ユニットと、
前記ユーザデータを前記ユーザテーブルに書き込むよう構成される第1書き込みユニットと、
前記ユーザデータに従ってインデックスデータを生成するよう構成される生成ユニットと、
前記ユーザテーブルに対応するインデックステーブルに前記インデックスデータを書き込むよう構成される第2書き込みユニットであって、前記ユーザテーブル及び前記インデックステーブルは、分散記憶システムの1つのノードにおいて確立され、一対一方式で結合される、第2書き込みユニットと、
を有するセカンダリインデックス確立装置。 A secondary index establishment device,
A receiving unit configured to receive user data sent by a user client, wherein the user data includes a key portion and a value portion;
A determination unit configured to determine a user table according to the user data;
A first writing unit configured to write the user data to the user table;
A generating unit configured to generate index data according to the user data;
A second writing unit configured to write the index data to an index table corresponding to the user table, wherein the user table and the index table are established in one node of a distributed storage system, in a one-to-one manner A second writing unit coupled;
A secondary index establishing device.
前記複数のユーザチャイルドテーブルの数は、前記複数のインデックスチャイルドテーブルの数と同一であり、各ユーザチャイルドテーブルのキー範囲は、それの対応するインデックスチャイルドテーブルのものと同一である、請求項11記載の装置。 The user table has a plurality of user child tables, the index table has a plurality of index child tables;
12. The number of the plurality of user child tables is the same as the number of the plurality of index child tables, and the key range of each user child table is the same as that of its corresponding index child table. Equipment.
前記ユーザデータに従ってユーザチャイルドテーブルを決定するよう構成される第1決定モジュールと、
前記ユーザデータを前記ユーザチャイルドテーブルに書き込むよう構成される第1書き込みモジュールと、
を有し、
前記第2書き込みユニットは、前記ユーザチャイルドテーブルに対応するインデックスチャイルドテーブルに前記インデックスデータを書き込むよう構成される第2書き込みモジュールを有する、請求項12記載の装置。 The first writing unit includes:
A first determination module configured to determine a user child table according to the user data;
A first writing module configured to write the user data to the user child table;
Have
13. The apparatus of claim 12, wherein the second writing unit comprises a second writing module configured to write the index data to an index child table corresponding to the user child table.
前記インデックスデータの範囲キー及び前記インデックスデータの特定のキーを決定するよう構成される第2決定モジュールであって、前記インデックスデータの範囲キーは、前記ユーザデータの範囲キー、前記ユーザチャイルドテーブルのスタートキー又は前記ユーザチャイルドテーブルのエンドキーを有し、前記インデックスデータの特定のキーは、前記ユーザデータの値部分及び前記ユーザデータのキー部分を有する、第2決定モジュールと、
前記インデックスデータの範囲キー及び前記インデックスデータの特定のキーに従ってインデックスデータを生成するよう構成される生成モジュールと、
を有する、請求項13記載の装置。 The generating unit is
A second determination module configured to determine a range key of the index data and a specific key of the index data, the range key of the index data being the range key of the user data, the start of the user child table A second determination module having a key or an end key of the user child table, wherein the specific key of the index data comprises a value portion of the user data and a key portion of the user data;
A generation module configured to generate index data according to the index data range key and the index data specific key;
14. The apparatus of claim 13, comprising:
少なくとも1つの領域サーバであって、前記領域サーバのそれぞれは、少なくとも1つのユーザテーブル及び前記少なくとも1つのユーザテーブルに対応する少なくとも1つのインデックステーブルを記憶し、前記ユーザテーブルのそれぞれの範囲キーは、前記ユーザテーブルに対応するインデックステーブルのものと同一である、領域サーバと、
請求項10乃至18何れか一項記載のセカンダリインデックス確立装置と、
を有する分散記憶システム。 A distributed storage system,
At least one region server, each of the region servers storing at least one user table and at least one index table corresponding to the at least one user table, wherein each range key of the user table is: An area server identical to that of the index table corresponding to the user table;
A secondary index establishment device according to any one of claims 10 to 18,
A distributed storage system.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN521KO2013 | 2013-05-07 | ||
ININ521/KOL/2013 | 2013-05-07 | ||
PCT/CN2014/072044 WO2014180178A1 (en) | 2013-05-07 | 2014-02-13 | Method, apparatus and system for establishing secondary index in distributed storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016522928A true JP2016522928A (en) | 2016-08-04 |
JP6127206B2 JP6127206B2 (en) | 2017-05-10 |
Family
ID=51866677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016510919A Active JP6127206B2 (en) | 2013-05-07 | 2014-02-13 | Method, apparatus and system for establishing secondary indexes in a distributed storage system |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6127206B2 (en) |
WO (1) | WO2014180178A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3767486B1 (en) | 2019-07-19 | 2023-03-22 | Microsoft Technology Licensing, LLC | Multi-record index structure for key-value stores |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05334165A (en) * | 1992-05-29 | 1993-12-17 | Hitachi Ltd | Parallel data base processing system and its secondary key retrieving method |
JPH07129450A (en) * | 1993-01-07 | 1995-05-19 | Internatl Business Mach Corp <Ibm> | Method and system for generating multilayered-index structure of database of divided object |
US20040167927A1 (en) * | 2001-06-28 | 2004-08-26 | Mikael Ronstrom | Method for concurrency control for a secondary index |
US20100106734A1 (en) * | 2008-10-24 | 2010-04-29 | Microsoft Corporation | Blob manipulation in an integrated structured storage system |
US8396862B2 (en) * | 2007-07-30 | 2013-03-12 | Teradata Us, Inc. | Product join dynamic partition elimination for multilevel partitioning |
US20130086353A1 (en) * | 2011-09-30 | 2013-04-04 | John Colgrove | Variable length encoding in a storage system |
US20130103694A1 (en) * | 2011-10-25 | 2013-04-25 | Cisco Technology, Inc. | Prefix and predictive search in a distributed hash table |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020204B (en) * | 2012-12-05 | 2018-09-25 | 北京普泽创智数据技术有限公司 | A kind of method and its system carrying out multi-dimensional interval query to distributed sequence list |
-
2014
- 2014-02-13 WO PCT/CN2014/072044 patent/WO2014180178A1/en active Application Filing
- 2014-02-13 JP JP2016510919A patent/JP6127206B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05334165A (en) * | 1992-05-29 | 1993-12-17 | Hitachi Ltd | Parallel data base processing system and its secondary key retrieving method |
JPH07129450A (en) * | 1993-01-07 | 1995-05-19 | Internatl Business Mach Corp <Ibm> | Method and system for generating multilayered-index structure of database of divided object |
US20040167927A1 (en) * | 2001-06-28 | 2004-08-26 | Mikael Ronstrom | Method for concurrency control for a secondary index |
US8396862B2 (en) * | 2007-07-30 | 2013-03-12 | Teradata Us, Inc. | Product join dynamic partition elimination for multilevel partitioning |
US20100106734A1 (en) * | 2008-10-24 | 2010-04-29 | Microsoft Corporation | Blob manipulation in an integrated structured storage system |
US20130086353A1 (en) * | 2011-09-30 | 2013-04-04 | John Colgrove | Variable length encoding in a storage system |
US20130103694A1 (en) * | 2011-10-25 | 2013-04-25 | Cisco Technology, Inc. | Prefix and predictive search in a distributed hash table |
Also Published As
Publication number | Publication date |
---|---|
JP6127206B2 (en) | 2017-05-10 |
WO2014180178A1 (en) | 2014-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10459899B1 (en) | Splitting database partitions | |
JP6542909B2 (en) | File operation method and apparatus | |
JP2020508503A (en) | Blockchain-based data storage and query method and device | |
CN107704202B (en) | Method and device for quickly reading and writing data | |
JP5999574B2 (en) | Database management system and computer system | |
US20160364407A1 (en) | Method and Device for Responding to Request, and Distributed File System | |
CN108959510B (en) | Partition level connection method and device for distributed database | |
CN104020961A (en) | Distributed data storage method, device and system | |
JP2018185848A (en) | Salient sampling for query size estimation | |
CN107480205B (en) | Method and device for partitioning data | |
US9535948B1 (en) | Data access statement translation | |
TW202008763A (en) | Data processing method and apparatus, and client | |
US12001450B2 (en) | Distributed table storage processing method, device and system | |
CN112912870A (en) | Tenant identifier conversion | |
CN112905587B (en) | Database data management method and device and electronic equipment | |
EP4012573A1 (en) | Graph reconstruction method and apparatus | |
CN111475279B (en) | System and method for intelligent data load balancing for backup | |
JP6127206B2 (en) | Method, apparatus and system for establishing secondary indexes in a distributed storage system | |
US11048547B2 (en) | Method and system for routing and executing transactions | |
US20140297953A1 (en) | Removable Storage Device Identity and Configuration Information | |
US10083121B2 (en) | Storage system and storage method | |
US9563687B1 (en) | Storage configuration in data warehouses | |
CN112889039A (en) | Identification of records for post-clone tenant identifier conversion | |
CN114331745A (en) | Data processing method, system, program product, medium, and electronic device | |
US10324906B2 (en) | Intelligent XML file fragmentation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170228 |
|
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: 20170314 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170410 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6127206 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |