JP6163187B2 - Cluster system data processing method and apparatus - Google Patents

Cluster system data processing method and apparatus Download PDF

Info

Publication number
JP6163187B2
JP6163187B2 JP2015200267A JP2015200267A JP6163187B2 JP 6163187 B2 JP6163187 B2 JP 6163187B2 JP 2015200267 A JP2015200267 A JP 2015200267A JP 2015200267 A JP2015200267 A JP 2015200267A JP 6163187 B2 JP6163187 B2 JP 6163187B2
Authority
JP
Japan
Prior art keywords
data block
physical node
node
sketch
fingerprint
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.)
Active
Application number
JP2015200267A
Other languages
Japanese (ja)
Other versions
JP2016027496A (en
Inventor
▲強▼ ▲劉▼
▲強▼ ▲劉▼
全成 ▲孫▼
全成 ▲孫▼
▲暁▼波 ▲劉▼
▲暁▼波 ▲劉▼
俊 ▲遊▼
俊 ▲遊▼
▲華▼▲鏑▼ ▲楊▼
▲華▼▲鏑▼ ▲楊▼
丹 周
丹 周
岩 黄
岩 黄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to JP2015200267A priority Critical patent/JP6163187B2/en
Publication of JP2016027496A publication Critical patent/JP2016027496A/en
Application granted granted Critical
Publication of JP6163187B2 publication Critical patent/JP6163187B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の実施例は、ストレージ技術に関し、特にクラスタシステムにおけるデータ処理方法及び装置に関する。   Embodiments described herein relate generally to storage technology, and more particularly, to a data processing method and apparatus in a cluster system.

データ重複排除(略して重複排除)はまた、インテリジェント圧縮又はシングルインスタンスストレージと呼ばれ、冗長データを排除し、ストレージ容量を低減するための要求を充たすため、重複データを自動的にサーチし、同一のデータについて一意的な複製のみを確保し、単一の複製を指示するポインタを用いて他の重複した複製を置換することが可能なストレージ技術である。   Data deduplication (deduplication for short), also called intelligent compression or single-instance storage, automatically searches for duplicate data to meet the need to eliminate redundant data and reduce storage capacity. This is a storage technology that can secure only a unique copy of the data of the other data and replace another duplicate copy by using a pointer that points to a single copy.

クラスタデータ重複排除(略してクラスタ重複排除)は、重複排除パフォーマンス及びキャパシティを向上するため、複数の重複排除物理ノードを整理する技術を表す。従来技術によるクラスタ重複排除技術では、一般に、データストリームを受信する物理ノードは、データストリームを複数のデータブロックに分割し、取得したデータブロックをグループ化し、各グループについて、当該グループのデータブロックのメタデータ情報からメタデータ情報の一部をサンプリングし、クエリのためクラスタシステムの全ての物理ノードにメタデータ情報の一部を送信する。クラスタシステムの各物理ノードは、既知のデータブロックと対応するメタデータ情報とを格納し、サンプリングされたメタデータ情報と各物理ノードに格納されているメタデータ情報とを比較し、クリエ結果から最も多くの重複データブロックを有するターゲット物理ノードを取得し、重複データクエリのためサンプリングされたメタデータ情報に対応するデータグループの全てのデータブロック情報をターゲット物理ノードに送信する。   Cluster data deduplication (cluster deduplication for short) represents a technique that organizes multiple deduplication physical nodes to improve deduplication performance and capacity. In the conventional cluster deduplication technology, generally, a physical node that receives a data stream divides the data stream into a plurality of data blocks, groups the obtained data blocks, and for each group, meta data of the data block of the group. A part of the metadata information is sampled from the data information, and a part of the metadata information is transmitted to all the physical nodes of the cluster system for a query. Each physical node of the cluster system stores known data blocks and corresponding metadata information, compares the sampled metadata information with the metadata information stored in each physical node, and determines the most from the query result. A target physical node having a number of duplicate data blocks is obtained, and all data block information of the data group corresponding to the metadata information sampled for the duplicate data query is transmitted to the target physical node.

研究を通じて、発明者は、従来技術のクラスタ重複排除技術では、サンプリングされたメタデータ情報は、クエリのため全ての物理ノードに送信される必要があり、これは、重複排除プロセスにおける物理ノード間の多数のインタラクション回数を導き、クラスタシステムに多数の物理ノードが存在する場合、各物理ノードが重複排除を実行すると、クラスタシステムの物理ノードの個数の増加に従って計算量が増大し、システムの重複排除パフォーマンスの低下を導く。   Through research, the inventor has shown that in the prior art cluster deduplication technology, the sampled metadata information needs to be sent to all physical nodes for querying, which means that between the physical nodes in the deduplication process When a large number of interaction times are derived and there are many physical nodes in the cluster system, each deduplication of each physical node increases the amount of computation as the number of physical nodes in the cluster system increases, and the system deduplication performance Leading to a decline.

本発明の実施例は、クラスタシステムの重複排除パフォーマンスを効果的に改善するため、クラスタシステムにおけるデータ処理方法及び装置を提供する。   Embodiments of the present invention provide a data processing method and apparatus in a cluster system to effectively improve the deduplication performance of the cluster system.

本発明の課題を解決するため、本発明の第1の態様は、クラスタシステムにおけるデータ処理方法であって、
現在の物理ノードにより受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得し、第1アルゴリズムに従って前記データストリームを表すn個の第1スケッチ値を取得するステップであって、mは1以上の整数であり、nは1以上であって、m以下の整数である、取得するステップと、
第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定し、各第1スケッチ値をクエリのため前記対応する第1物理ノードに送信するステップと、
前記n個の第1スケッチ値に対応する第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、前記レスポンスメッセージから第1ストレージアドレスを取得するステップと、
受信した全てのストレージアドレスから第1ストレージアドレスを取得し、前記第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、前記データストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、重複データブロックをクエリするステップとであって、取得された非重複データブロックが新たなデータブロックとして利用される、クエリするステップと、
前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、前記第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを前記第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードに格納するステップと、
を有する方法を提供する。
In order to solve the problems of the present invention, a first aspect of the present invention is a data processing method in a cluster system,
Dividing the data stream received by the current physical node into m data blocks, obtaining a fingerprint of each data block, and obtaining n first sketch values representing the data stream according to a first algorithm Where m is an integer greater than or equal to 1, n is greater than or equal to 1 and is an integer less than or equal to m, and
Corresponding to each first sketch value of the n first sketch values according to a second algorithm, identifying a first physical node in the cluster system, and assigning each first sketch value to the corresponding first for querying Sending to the physical node;
Receiving at least one response message from a first physical node corresponding to the n first sketch values and obtaining a first storage address from the response message;
The first storage address is obtained from all the received storage addresses, the fingerprint of the data block stored in the storage area indicated by the first storage address, and each data block obtained through the division of the data stream Querying duplicate data blocks, wherein the obtained non-duplicate data block is used as a new data block, and querying
Obtaining at least one second sketch value representing the new data block, identifying a second physical node corresponding to each second sketch value according to the second algorithm by the second sketch value, and each second sketch value; Storing a corresponding relationship between the storage address of the data block represented by each second sketch value in the corresponding second physical node;
A method is provided.

第1の態様に関連して、第1の態様の第1の可能な方法では、全ての受信したストレージアドレスから第1ストレージアドレスを取得するステップは、レスポンスメッセージから第1スケッチ値に対応するストレージアドレスを取得し、レスポンスメッセージに搬送される各ストレージアドレスのヒット数に関する統計量を収集し、第1ストレージアドレスとして最大ヒット数を有するs個のストレージアドレスを選択するステップを有し、sは1以上である。   In connection with the first aspect, in a first possible method of the first aspect, the step of obtaining the first storage address from all received storage addresses comprises the storage corresponding to the first sketch value from the response message. Obtaining an address, collecting statistics on the number of hits of each storage address conveyed in the response message, and selecting s storage addresses having the maximum number of hits as the first storage address, where s is 1 That's it.

第1の態様の第1の可能な方法に関連して、第2の可能な方法では、本方法は更に、所定のストレージ条件が充足すると、所定のストレージポリシーに従って前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択し、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとを前記選択されたストレージアドレスにより指示されるストレージ領域に書き込むステップを更に有する。   In connection with the first possible method of the first aspect, in the second possible method, the method further comprises: when a predetermined storage condition is met, the new data block and the new data according to a predetermined storage policy. Selecting a storage address to which a new data block fingerprint is written, and writing the new data block and the new data block fingerprint to a storage area indicated by the selected storage address. .

第1の態様の第2の可能な方法に関連して、第3の可能な方法では、所定のストレージ条件が充足することは、前記新たなデータブロックが前記現在の物理ノードのキャッシュに格納されることを含み、前記現在の物理ノードのキャッシュのデータが第2所定閾値に達すると、前記所定のストレージ条件が充足される。   In connection with the second possible method of the first aspect, in a third possible method, if a predetermined storage condition is met, the new data block is stored in a cache of the current physical node. And the predetermined storage condition is satisfied when the cache data of the current physical node reaches a second predetermined threshold.

本発明の実施例の第2の態様は、クラスタシステムにおけるデータ処理装置であって、
現在の物理ノードにより受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得する分割部であって、mは1以上の整数である、分割部と、
第1アルゴリズムに従って前記データストリームを表すn個の第1スケッチ値を取得するスケッチ値取得部であって、nは1以上であって、m以下の整数である、スケッチ値取得部と、
第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定する特定部と、
各第1スケッチ値をクエリのため前記対応する第1物理ノードに送信する送信部と、
前記n個の第1スケッチ値に対応する第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、前記レスポンスメッセージから第1ストレージアドレスを取得する受信部と、
前記第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、前記データストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、重複データブロックをクエリするクエリ部であって、前記クエリ部により取得された非重複データブロックが新たなデータブロックとして利用される、クエリ部と、
前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、前記第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを前記第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードに格納する更新部と、
を有する装置を提供する。
A second aspect of the embodiment of the present invention is a data processing apparatus in a cluster system,
A dividing unit that divides a data stream received by a current physical node into m data blocks and obtains a fingerprint of each data block, wherein m is an integer greater than or equal to 1,
A sketch value acquisition unit for acquiring n first sketch values representing the data stream according to a first algorithm, wherein n is an integer not less than 1 and not more than m;
A specifying unit for specifying a first physical node in the cluster system corresponding to each of the first sketch values of the n first sketch values according to a second algorithm;
A transmitter for transmitting each first sketch value to the corresponding first physical node for a query;
A receiving unit that receives at least one response message from a first physical node corresponding to the n first sketch values, and acquires a first storage address from the response message;
A query that queries the duplicate data block by comparing the fingerprint of the data block stored in the storage area indicated by the first storage address with the fingerprint of each data block obtained through the division of the data stream A non-overlapping data block acquired by the query unit is used as a new data block; and
Obtaining at least one second sketch value representing the new data block, identifying a second physical node corresponding to each second sketch value according to the second algorithm by the second sketch value, and each second sketch value; And an update unit that stores a corresponding relationship between the storage address of the data block represented by each second sketch value in the corresponding second physical node;
An apparatus is provided.

第2の態様に関連して、第1の可能な実現方法では、前記受信部は、
前記レスポンスメッセージに搬送される各ストレージアドレスのヒット数に関する統計量を収集するよう構成される統計量収集サブ部と、
前記統計量収集サブ部の統計結果に従って、前記第1ストレージアドレスとして最大ヒット数を有するs個のストレージアドレスを選択するよう構成されるアドレス取得サブ部であって、sは1以上である、アドレス取得サブ部と、
を有する。
In connection with the second aspect, in a first possible realization method, the receiving unit comprises:
A statistics collection sub-unit configured to collect statistics regarding the number of hits of each storage address carried in the response message;
An address acquisition sub-unit configured to select s storage addresses having a maximum hit count as the first storage address according to the statistical result of the statistic collection sub-unit, wherein s is 1 or more, An acquisition sub-part,
Have

第2の態様及び第2の態様の第1の可能な方法に関連して、第2の可能な実現方法では、本装置は更に、
所定のストレージポリシーに従って、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択するよう構成されるライトアドレス取得部と、
所定のストレージ条件が充足すると、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとを、前記選択されたストレージアドレスに対応するストレージ領域に書き込むよう構成される書き込み部と、
を更に有する。
In connection with the second aspect and the first possible method of the second aspect, in a second possible implementation method, the apparatus further comprises:
A write address acquisition unit configured to select a storage address to which the new data block and the fingerprint of the new data block are written according to a predetermined storage policy;
A write unit configured to write the new data block and the fingerprint of the new data block to a storage area corresponding to the selected storage address when a predetermined storage condition is satisfied;
It has further.

第2の態様の第2の可能な方法に関連して、第3の可能な実現方法では、前記書き込む部は、前記新たなデータブロックを前記現在の物理ノードのキャッシュに格納するよう構成され、前記現在の物理ノードのキャッシュのデータが第2所定閾値に達し、前記所定のストレージ条件が充足されると、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとを前記選択されたストレージアドレスに対応するストレージ領域に書き込むよう構成される。   In connection with the second possible method of the second aspect, in a third possible implementation method, the writing unit is configured to store the new data block in a cache of the current physical node; When the cache data of the current physical node reaches a second predetermined threshold and the predetermined storage condition is satisfied, the new data block and the fingerprint of the new data block are changed to the selected storage address. Is configured to write to a storage area corresponding to

本発明の実施例の第3の態様は更に、クラスタシステムにおけるデータ処理装置であって、プロセッサと、メモリと、バスとを有し、
前記プロセッサと前記メモリとは、前記バスを介し互いに通信し、
前記メモリは、プログラムを格納するよう構成され、
前記プロセッサは、前記メモリのプログラムを実行し、
当該プログラムは、
現在の物理ノードにより受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得する分割部であって、mは1以上の整数である、分割部と、
第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定する特定部と、
各第1スケッチ値をクエリのため前記対応する第1物理ノードに送信する送信部と、
第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、前記レスポンスメッセージから第1ストレージアドレスを取得する受信部と、
前記第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、前記データストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、重複データブロックをクエリするクエリ部であって、前記取得された非重複データブロックが新たなデータブロックとして利用される、クエリ部と、
前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、前記第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを前記第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードに格納する更新部と、
を有するデータ処理装置を提供する。
A third aspect of the embodiment of the present invention is a data processing apparatus in a cluster system, further comprising a processor, a memory, and a bus,
The processor and the memory communicate with each other via the bus;
The memory is configured to store a program;
The processor executes the program in the memory;
The program is
A dividing unit that divides a data stream received by a current physical node into m data blocks and obtains a fingerprint of each data block, wherein m is an integer greater than or equal to 1,
A specifying unit for specifying a first physical node in the cluster system corresponding to each of the first sketch values of the n first sketch values according to a second algorithm;
A transmitter for transmitting each first sketch value to the corresponding first physical node for a query;
A receiving unit that receives at least one response message from the first physical node and obtains a first storage address from the response message;
A query that queries the duplicate data block by comparing the fingerprint of the data block stored in the storage area indicated by the first storage address with the fingerprint of each data block obtained through the division of the data stream A query part in which the acquired non-overlapping data block is used as a new data block;
Obtaining at least one second sketch value representing the new data block, identifying a second physical node corresponding to each second sketch value according to the second algorithm by the second sketch value, and each second sketch value; And an update unit that stores a corresponding relationship between the storage address of the data block represented by each second sketch value in the corresponding second physical node;
A data processing apparatus is provided.

第3の態様に関連して、第1の可能な実現方法では、
前記受信部は、
前記レスポンスメッセージから前記第1スケッチ値に対応するストレージアドレスを取得し、前記レスポンスメッセージに搬送される各ストレージアドレスのヒット数に関する統計量を収集するよう構成される統計量収集サブ部と、
前記統計量収集サブ部の統計結果に従って、前記第1ストレージアドレスとして最大ヒット数を有するs個のストレージアドレスを選択するよう構成されるアドレス取得サブ部であって、sは1以上である、アドレス取得サブ部と、
を有する。
In connection with the third aspect, a first possible implementation method comprises:
The receiver is
A statistics collection sub-unit configured to obtain a storage address corresponding to the first sketch value from the response message and collect statistics about the number of hits of each storage address carried in the response message;
An address acquisition sub-unit configured to select s storage addresses having the maximum number of hits as the first storage address according to a statistical result of the statistic collection sub-unit, wherein s is 1 or more; An acquisition sub-part,
Have

第2の態様及び第2の態様の第1の可能な方法に関連して、第2の可能な実現方法では、本装置は更に、
所定のストレージポリシーに従って、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択するよう構成されるライトアドレス取得部と、
所定のストレージ条件が充足すると、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとを、前記選択されたストレージアドレスに対応するストレージ領域に書き込むよう構成される書き込み部と、
を更に有する。
In connection with the second aspect and the first possible method of the second aspect, in a second possible implementation method, the apparatus further comprises:
A write address acquisition unit configured to select a storage address to which the new data block and the fingerprint of the new data block are written according to a predetermined storage policy;
A write unit configured to write the new data block and the fingerprint of the new data block to a storage area corresponding to the selected storage address when a predetermined storage condition is satisfied;
It has further.

第2の態様の第2の可能な方法に関連して、第3の可能な実現方法では、前記書き込む部は、前記新たなデータブロックを前記現在の物理ノードのキャッシュに格納するよう構成され、前記現在の物理ノードのキャッシュのデータが第2所定閾値に達し、前記所定のストレージ条件が充足されると、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとを前記選択されたストレージアドレスに対応するストレージ領域に書き込むよう構成される。   In connection with the second possible method of the second aspect, in a third possible implementation method, the writing unit is configured to store the new data block in a cache of the current physical node; When the cache data of the current physical node reaches a second predetermined threshold and the predetermined storage condition is satisfied, the new data block and the fingerprint of the new data block are changed to the selected storage address. Is configured to write to a storage area corresponding to

本発明の実施例の第4の態様は、データ処理のためのコンピュータプログラムであって、当該コンピュータプログラムは、プログラムコードを格納するコンピュータ可読記憶媒体を有し、プログラムコードに含まれる命令は、
現在の物理ノードにより受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得し、第1アルゴリズムに従って前記データストリームを表すn個の第1スケッチ値を取得するステップであって、mは1以上の整数であり、nは1以上であって、m以下の整数である、取得するステップと、
第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定し、各第1スケッチ値をクエリのため前記対応する第1物理ノードに送信するステップと、
前記n個の第1スケッチ値に対応する第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、前記レスポンスメッセージから第1ストレージアドレスを取得するステップと、
受信した全てのストレージアドレスから第1ストレージアドレスを取得し、前記第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、前記データストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、重複データブロックをクエリするステップとであって、取得された非重複データブロックが新たなデータブロックとして利用される、クエリするステップと、
前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、前記第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを前記第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードに格納するステップと、
を実行するのに利用される。
A fourth aspect of an embodiment of the present invention is a computer program for data processing, the computer program having a computer-readable storage medium that stores program code, and instructions included in the program code include:
Dividing the data stream received by the current physical node into m data blocks, obtaining a fingerprint of each data block, and obtaining n first sketch values representing the data stream according to a first algorithm Where m is an integer greater than or equal to 1, n is greater than or equal to 1 and is an integer less than or equal to m, and
Corresponding to each first sketch value of the n first sketch values according to a second algorithm, identifying a first physical node in the cluster system, and assigning each first sketch value to the corresponding first for querying Sending to the physical node;
Receiving at least one response message from a first physical node corresponding to the n first sketch values and obtaining a first storage address from the response message;
The first storage address is obtained from all the received storage addresses, the fingerprint of the data block stored in the storage area indicated by the first storage address, and each data block obtained through the division of the data stream Querying duplicate data blocks, wherein the obtained non-duplicate data block is used as a new data block, and querying
Obtaining at least one second sketch value representing the new data block, identifying a second physical node corresponding to each second sketch value according to the second algorithm by the second sketch value, and each second sketch value; Storing a corresponding relationship between the storage address of the data block represented by each second sketch value in the corresponding second physical node;
Used to execute

本発明の実施例では、重複データクエリが受信されたデータストリームに対して実行されると、各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードが、データストリームを表す第1スケッチ値に従って特定され、その後、データストリームを表す第1スケッチ値が、重複データクエリのため特定された物理ノードに送信され、重複データクエリを実行するための特定された物理ノードの個数は、クラスタシステムのノード数の増加により増加せず、各ノードの計算量は、クラスタシステムのノード数の増加により増加せず、クラスタシステムの重複解除パフォーマンスが効果的に向上する。   In an embodiment of the present invention, when a duplicate data query is performed on a received data stream, a first physical node corresponding to each first sketch value and in the cluster system represents a first representing the data stream. A first sketch value, identified according to the sketch value, is then sent to the identified physical node for the duplicate data query, and the number of identified physical nodes for performing the duplicate data query is the cluster The increase in the number of nodes in the system does not increase, and the calculation amount of each node does not increase due to the increase in the number of nodes in the cluster system, and the deduplication performance of the cluster system is effectively improved.

本発明の実施例又は従来技術における技術手段をより明確に説明するため、以下において、実施例又は従来技術を説明するのに要求される添付した図面が概略的に紹介される。明らかに、以下の説明における添付した図面は、本発明のいくつかの実施例を単に示し、当業者は、創作的な努力なく添付した図面から他の図面を依然と導出してもよい。
図1は、本発明によるクラスタシステムにおけるデータ処理方法の実施例のフローチャートである。 図2は、本発明の実施例によるデータストリームの受信後の物理ノードにより実行されるブロック分割及びサンプリングの概略図である。 図3は、本発明の実施例による物理ノードの内部構造の概略図である。 図4は、本発明によるクラスタシステムにおける他のデータ処理方法の実施例のフローチャートである。 図5は、本発明によるクラスタシステムにおける他のデータ処理方法の実施例のフローチャートである。 図6は、本発明の実施例による他の物理ノードの内部構造の概略図である。 図7は、本発明によるクラスタシステムにおける他のデータ処理方法の実施例のフローチャートである。 図8は、本発明の実施例によるデータマイグレーションの概略図である。 図9は、本発明の実施例によるクラスタシステムにおけるデータ処理装置の構成図である。 図10は、本発明の実施例によるクラスタシステムにおける他のデータ処理装置の構成図である。
In order to more clearly describe the technical means in the embodiments of the present invention or in the prior art, the following briefly introduces the accompanying drawings required for describing the embodiments or the prior art. Apparently, the accompanying drawings in the following description merely show some embodiments of the present invention, and those skilled in the art may still derive other drawings from the accompanying drawings without creative efforts.
FIG. 1 is a flowchart of an embodiment of a data processing method in a cluster system according to the present invention. FIG. 2 is a schematic diagram of block division and sampling performed by a physical node after receiving a data stream according to an embodiment of the present invention. FIG. 3 is a schematic diagram of an internal structure of a physical node according to an embodiment of the present invention. FIG. 4 is a flowchart of an embodiment of another data processing method in the cluster system according to the present invention. FIG. 5 is a flowchart of an embodiment of another data processing method in the cluster system according to the present invention. FIG. 6 is a schematic diagram of the internal structure of another physical node according to an embodiment of the present invention. FIG. 7 is a flowchart of an embodiment of another data processing method in the cluster system according to the present invention. FIG. 8 is a schematic diagram of data migration according to an embodiment of the present invention. FIG. 9 is a configuration diagram of a data processing apparatus in the cluster system according to the embodiment of the present invention. FIG. 10 is a configuration diagram of another data processing apparatus in the cluster system according to the embodiment of the present invention.

以下において、本発明の実施例における添付した図面を参照して、本発明の実施例における技術的手段が明確かつ完全に説明される。明らかに、説明される実施例は本発明の実施例の全てでなく単なる一部である。創作的な努力なく本発明の実施例に基づき当業者により取得される他の全ての実施例は、本発明の保護範囲に属する。   DESCRIPTION OF EMBODIMENTS The following clearly and completely describes the technical means in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are merely a part rather than all of the embodiments of the present invention. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

本発明の実施例は、クラスタシステムが複数の物理ノードを含むストレージのためのクラスタシステムにおいて適用可能である。重複排除エンジンを有する物理ノードは、本発明の実施例の実行主体として利用されてもよく、重複排除タスクの取得後に本発明の実施例の方法を実行する。   The embodiments of the present invention can be applied to a cluster system for storage in which the cluster system includes a plurality of physical nodes. The physical node having the deduplication engine may be used as an execution subject of the embodiment of the present invention, and executes the method of the embodiment of the present invention after obtaining the deduplication task.

図1は、本発明によるクラスタシステムにおけるデータ処理方法の実施例のフローチャートであり、図1に示されるように、本実施例の方法は以下を含むものであってもよい。   FIG. 1 is a flowchart of an embodiment of a data processing method in a cluster system according to the present invention. As shown in FIG. 1, the method of this embodiment may include the following.

ステップ10:現在の物理ノードにより受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得する。ただし、mは1以上の整数である。   Step 10: Divide the data stream received by the current physical node into m data blocks and obtain the fingerprint of each data block. However, m is an integer greater than or equal to 1.

クラスタシステムにおいて、物理ノードは、本発明の実施例のデータ処理方法を実行する装置が当該物理ノードにインストールされている限り、クラスタ重複排除タスクを実行するためのノードとして利用されてもよい。   In a cluster system, a physical node may be used as a node for executing a cluster deduplication task as long as an apparatus that executes the data processing method according to the embodiment of this invention is installed in the physical node.

データストリームの受信後、現在の物理ノードは、データストリームのデータをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得する。   After receiving the data stream, the current physical node divides the data stream data into m data blocks and obtains a fingerprint of each data block.

ステップ11:第1アルゴリズムに従ってデータストリームを表すn個の第1スケッチ値を取得する。ただし、nは1以上であって、m以下の整数である。   Step 11: Obtain n first sketch values representing a data stream according to a first algorithm. However, n is an integer of 1 or more and m or less.

データストリームを表すn個の第1スケッチ値が、所定のアルゴリズムを介して取得され、説明の便宜上、データストリームを表す第1スケッチ値を取得するためのアルゴリズムは第1アルゴリズムと呼ばれ、受信したデータストリームを表すスケッチ値は第1スケッチ値と呼ばれる。   N first sketch values representing a data stream are obtained via a predetermined algorithm, and for convenience of explanation, an algorithm for obtaining a first sketch value representing a data stream is called a first algorithm and received. The sketch value representing the data stream is called the first sketch value.

第1アルゴリズムは、それがデータストリームを表す第1スケッチ値を取得可能である限り、本発明の実施例に限定されるものでない。例えば、分割を介し取得されるデータブロックは直接サンプリングされ、サンプリングされたn個のデータブロックのスケッチ値が計算され、計算されたスケッチ値が、受信したデータストリームを表すスケッチ値として利用される。   The first algorithm is not limited to the embodiment of the present invention as long as it can obtain the first sketch value representing the data stream. For example, a data block obtained through partitioning is directly sampled, sketch values of n sampled data blocks are calculated, and the calculated sketch value is used as a sketch value representing the received data stream.

任意的には、サンプリングされたデータをより均等にするため、本発明の実施例では、第1アルゴリズムによるデータストリームを表すn個のスケッチ値の取得は、以下のステップを含むものであってもよい。   Optionally, in order to make the sampled data more uniform, in an embodiment of the present invention, obtaining the n sketch values representing the data stream according to the first algorithm may include the following steps: Good.

受信したデータブロックにより取得されるデータブロックのフィンガープリントは、n個の第1フィンガープリントグループにグループ化され、各第1フィンガーグループは少なくとも2つのデータブロックのフィンガープリントを含む。   The fingerprints of the data blocks obtained by the received data blocks are grouped into n first fingerprint groups, each first finger group including at least two data block fingerprints.

各第1フィンガープリントグループについて、n個の第1スケッチ値を取得するため、各フィンガープリントグループを表す第1スケッチ値が取得される。   For each first fingerprint group, in order to obtain n first sketch values, a first sketch value representing each fingerprint group is obtained.

nが1に等しい場合、それは、受信したデータストリームから取得されるデータブロックに対応するフィンガープリントが1つの第1フィンガープリントグループにグループ化され、1つのフィンガープリントは、分割を介し取得されたデータブロックに対応するフィンガープリントから第1フィンガープリントグループの第1スケッチ値として直接サンプリングされる。   If n is equal to 1, it means that the fingerprints corresponding to the data blocks obtained from the received data stream are grouped into one first fingerprint group, and one fingerprint is the data obtained through the division. Sampled directly from the fingerprint corresponding to the block as the first sketch value of the first fingerprint group.

本発明の実施例では、複数の連続するデータブロックが1つの第1フィンガープリントグループにグループ化され、おそらく、第1フィンガープリントグループを取得するためデータブロックを分割するための複数の方法が存在し、本実施例に限定されるものでない。   In an embodiment of the present invention, multiple consecutive data blocks are grouped into one first fingerprint group, and possibly there are multiple methods for dividing the data block to obtain the first fingerprint group. However, the present invention is not limited to this example.

本発明の実施例では、第1スケッチ値がデータストリームをデータブロックに分割し、データブロックに対応するフィンガープリントをグループ化する方法により取得される場合、第1スケッチ値が対応する第1フィンガープリントグループを表すことができる限り、各フィンガープリントグループから第1スケッチ値を取得する複数の方法があってもよい。例えば、データブロックのフィンガープリントのうち最大のフィンガープリントは第1スケッチ値として選択されてもよく、あるいは、1以上のデータブロックのフィンガープリント情報が第1フィンガープリントグループから第1スケッチ値としてランダムに選択され、これは、本発明の実施例において限定されるものでない。   In an embodiment of the present invention, if a first sketch value is obtained by a method of dividing a data stream into data blocks and grouping fingerprints corresponding to the data blocks, the first sketch value corresponds to the first fingerprint. There may be multiple ways to obtain the first sketch value from each fingerprint group as long as the group can be represented. For example, the largest fingerprint of the data block fingerprints may be selected as the first sketch value, or the fingerprint information of one or more data blocks may be randomly selected as the first sketch value from the first fingerprint group. This is selected and is not limited in the embodiments of the present invention.

本実施例では、最小のフィンガープリント、すなわち、最小フィンガープリントの値がまた、最小フィンガープリントが属するフィンガープリントグループを表す第1スケッチ値として、第1フィンガープリントグループの全てのデータブロックのフィンガープリント情報から選択されてもよい。   In this embodiment, the fingerprint information of all data blocks of the first fingerprint group is the minimum fingerprint, ie, the minimum fingerprint value is also the first sketch value representing the fingerprint group to which the minimum fingerprint belongs. May be selected.

ステップ12:第2アルゴリズムに従ってn個の第1スケッチ値の各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードを特定する。   Step 12: Identify a first physical node in the cluster system corresponding to each first sketch value of the n first sketch values according to the second algorithm.

本発明の実施例では、説明の便宜上、特定された第1スケッチ値に対応する物理ノードは第1物理ノードと呼ばれ、第1物理ノードを特定するためのアルゴリズムは第2アルゴリズムと呼ばれ、1つの第1スケッチ値が1つの第1物理ノードに対応する場合、n個の第1スケッチ値はn個の第1物理ノードに対応してもよく、本発明の実施例はおそらくこれに限定されない。   In an embodiment of the present invention, for convenience of explanation, a physical node corresponding to the specified first sketch value is called a first physical node, an algorithm for specifying the first physical node is called a second algorithm, If one first sketch value corresponds to one first physical node, n first sketch values may correspond to n first physical nodes, and embodiments of the present invention are probably limited to this. Not.

複数の第2アルゴリズムがあってもよい。例えば、ルート抽出及び丸め処理が、当該値がmより小さくなるまで第1スケッチ値に対して実行され、最終的な結果は、対応する第1物理ノードを取得するため丸められる。   There may be a plurality of second algorithms. For example, route extraction and rounding is performed on the first sketch value until the value is less than m, and the final result is rounded to obtain the corresponding first physical node.

本実施例では、採用される第2アルゴリズムは更に、第1スケッチ値によるモジュロ演算が、クラスタシステムの全ての物理ノードの個数に対して実行され、第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードが取得される。   In the present embodiment, the second algorithm employed further performs a modulo operation with the first sketch value on the number of all physical nodes of the cluster system, corresponding to the first sketch value, and in the cluster system. A certain first physical node is acquired.

ステップ13:クエリのため各第1スケッチ値を対応する第1物理ノードに送信し、n個の第1スケッチ値に対応する第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、レスポンスメッセージから第1ストレージアドレスを取得する。   Step 13: Send each first sketch value to the corresponding first physical node for query, receive at least one response message from the first physical node corresponding to the n first sketch values, 1 storage address is acquired.

本発明の実施例では、クラスタシステムにおいて、各物理ノード又は大部分の物理ノードはインデックステーブルを格納し、スケッチ値と当該スケッチ値により表される格納されているデータブロックのストレージアドレスとの間の対応関係が、インデックステーブルに格納され、インデックステーブルは、所定のプリシーに従ってクラスタシステムの物理ノードに格納され、データブロックと当該データブロックに対応するフィンガープリント情報とが、異なるストレージアドレスによって指示されるストレージ領域に格納される。   In an embodiment of the present invention, in a cluster system, each physical node or most physical nodes stores an index table between the sketch value and the storage address of the stored data block represented by the sketch value. The correspondence relationship is stored in the index table, the index table is stored in the physical node of the cluster system according to a predetermined policy, and the data block and the fingerprint information corresponding to the data block are indicated by different storage addresses. Stored in the area.

各物理ノードのインデックステーブルは、完全なインデックステーブルであってもよく、格納されているデータの全てのスケッチ値とクラスタシステムにおける当該スケッチ値により表される格納されているデータブロックのストレージアドレスとの間の対応関係を含むものであってもよいことに留意すべきであり、完全なインデックステーブルの一部はまた、物理ノードにおける重複ブロックをクエリするための計算量を低減するため、所定のポリシーに従って各物理ノードに格納されてもよい。後者の方法が本実施例において採用されてもよい。物理ノードにおいてインデックステーブルの各インデックスエントリをどのように格納するかが、以下において詳細に説明される。   The index table for each physical node may be a complete index table, which is the sum of all the sketch values of the stored data and the storage address of the stored data block represented by that sketch value in the cluster system. It should be noted that a part of the complete index table may also include a corresponding policy between the given policy to reduce the amount of computation for querying duplicate blocks in the physical node. May be stored in each physical node. The latter method may be employed in this embodiment. How each index entry of the index table is stored in the physical node is described in detail below.

本発明の実施例では、インデックステーブルは、所定のポリシーに従って物理ノードに格納され、特定の物理ノードのインデックステーブルのデータと物理ノードのデータとの間には直接的な関係はなく、インデックステーブルのみが所定の割当ポリシーに従って当該物理ノードに格納される。   In the embodiment of the present invention, the index table is stored in the physical node according to a predetermined policy, and there is no direct relationship between the data of the index table of the specific physical node and the data of the physical node, only the index table. Are stored in the physical node according to a predetermined allocation policy.

具体的な実現形態では、1つのストレージアドレスに対応するストレージ領域は複数のグループのデータを有してもよいため、各グループからスケッチ値が選択される場合、1つのストレージアドレスが複数の異なるスケッチ値に対応するケースが生じる可能性があり、従って、インデックステーブルの同一のストレージアドレスが複数の異なるスケッチ値に対応する可能性がある。しかしながら、1つの同一のスケッチ値は1つのストレージアドレスに対応する。複数の第1スケッチ値がインデックステーブルにおいてクエリされるとき、複数の対応するストレージアドレスが取得されてもよく、第1ストレージアドレスが第1スケッチ値に対応するストレージアドレスにから選択されるとき、第1ストレージアドレスを選択するためのルールは予め設定されてもよいし、あるいは、実際の状況に応じてユーザにより設定されてもよく、本実施例では限定されない。   In a specific implementation, since a storage area corresponding to one storage address may have data of a plurality of groups, when a sketch value is selected from each group, one storage address has a plurality of different sketches. Cases may occur that correspond to values, and therefore the same storage address in the index table may correspond to multiple different sketch values. However, one identical sketch value corresponds to one storage address. When a plurality of first sketch values are queried in the index table, a plurality of corresponding storage addresses may be obtained, and when the first storage address is selected from among the storage addresses corresponding to the first sketch values, the first A rule for selecting one storage address may be set in advance, or may be set by a user according to an actual situation, and is not limited in this embodiment.

例えば、第1スケッチ値に対応するストレージアドレスは、レスポンスメッセージから取得されてもよく、レスポンスメッセージに搬送される各ストレージアドレスのヒット数に関する統計量が収集され、最大ヒット数を有するs個のストレージアドレスが第1ストレージアドレスとして選択される。ただし、sは1以上である。   For example, the storage address corresponding to the first sketch value may be obtained from the response message, statistics regarding the number of hits of each storage address conveyed in the response message are collected, and s storages having the maximum number of hits An address is selected as the first storage address. However, s is 1 or more.

具体的な実現形態では、第1スケッチ値を搬送するクエリリクエストを受信すると、第1物理ノードは、ローカルに格納されているインデックステーブルに従って第1スケッチ値と同じスケッチ値をマッチングし、レスポンスメッセージを介し一致したスケッチ値に対応するストレージアドレスを当該クエリリクエストを送信した物理ノードにフィードバックする。各第1スケッチ値は1つの第1物理ノードに対応し、従って、複数の第1物理ノードがクエリリクエストを受信し、当該クエリリクエストに従ってクエリをローカルに実行する。ストレージアドレスがクエリを介し検出された場合、ストレージアドレスは、クエリリクエストを送信したノードに返され、クエリリクエストを送信したノードは異なる第1物理ノードにより返された複数のストレージアドレスを受信してもよく、ストレージアドレスがクエリを介し検出されなかった場合、例えば、0などのヌル値がフィードバックされるか、又はフィードバックが返されず、ストレージアドレスがクエリを介し検出されなかったことを具体的に表す方法は、ユーザにより設定されてもよい。   In a specific implementation, upon receiving a query request carrying the first sketch value, the first physical node matches the same sketch value as the first sketch value according to a locally stored index table and sends a response message. The storage address corresponding to the matched sketch value is fed back to the physical node that transmitted the query request. Each first sketch value corresponds to one first physical node, and thus a plurality of first physical nodes receive a query request and execute the query locally according to the query request. If the storage address is detected via a query, the storage address is returned to the node that sent the query request, and the node that sent the query request may receive multiple storage addresses returned by different first physical nodes. Well, if the storage address was not found via a query, for example, a null value such as 0 is fed back or no feedback is returned, specifically indicating that the storage address was not found via a query The method may be set by the user.

第1物理ノードによりフィードバックされるストレージアドレスが、各第1スケッチ値がクエリのため対応する第1物理ノードに送信された後に受信されなかった場合、データストリームの分割を介し取得されるデータブロックが非重複データブロックとして利用され、その後、ステップ15が実行される。   If the storage address fed back by the first physical node is not received after each first sketch value has been sent to the corresponding first physical node for a query, the data block obtained via the splitting of the data stream is It is used as a non-overlapping data block, after which step 15 is executed.

ステップ14:第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、受信したデータブロックの分割を介し取得される各データブロックのフィンガープリントとを比較し、重複データブロックをクエリする。ただし、取得された非重複データブロックは新たなデータブロックとして利用される。   Step 14: comparing the fingerprint of the data block stored in the storage area indicated by the first storage address with the fingerprint of each data block obtained through the division of the received data block, Query. However, the acquired non-overlapping data block is used as a new data block.

具体的な実現形態では、現在の物理ノードは、受信したデータストリームの処理後にデータブロックとフィンガープリント情報とをキャッシュに格納し、複数の方法を利用して、データブロックのフィンガープリントを比較してもよい。例えば、方法1では、第1ストレージアドレスに対応するストレージ領域のデータブロックが、現在の物理ノードのキャッシュにロードされ、受信したデータストリームに対応する各データブロックのフィンガープリントが、重複ブロッククエリに対して実行される。方法2では、クエリ指示が、第1ストレージアドレスにより指示される物理ノードに送信される。ここで、データストリームの分割を介し取得されるm個のデータブロックのフィンガープリントが当該クエリ指示に搬送され、第1ストレージアドレスにより指示される物理ノードにより返されるクエリ結果が受信される。方法1では、現在ノードのキャッシュに格納されるフィンガープリント情報が重複データクエリにおいて利用されてもよく、これは重複排除レートを更に向上させることができる。   In a specific implementation, the current physical node stores the data block and fingerprint information in a cache after processing the received data stream, and compares the fingerprint of the data block using multiple methods. Also good. For example, in Method 1, the storage area data block corresponding to the first storage address is loaded into the cache of the current physical node, and the fingerprint of each data block corresponding to the received data stream is Executed. In method 2, the query instruction is transmitted to the physical node indicated by the first storage address. Here, the fingerprint of the m data blocks obtained through the division of the data stream is conveyed to the query instruction, and the query result returned by the physical node indicated by the first storage address is received. In Method 1, fingerprint information stored in the current node's cache may be utilized in the duplicate data query, which may further improve the deduplication rate.

インデックステーブルのインデックスエントリが初期化されるとき、ユーザはまた、インデックステーブルにおいてシステムに格納されているデータに従って、既知のスケッチ値と当該既知のスケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を予め格納してもよく、特定の方法が本発明の実施例において限定されるものでない。インデックステーブルはまた、初期化中にヌルであってもよく、重複データクエリ中、取得した新たなデータブロックがストレージシステムに格納されると、取得したスケッチ値と当該スケッチ値により表される新たなデータブロックのストレージアドレスとがインデックステーブルに挿入され、これにより、インデックステーブルは定期的に更新される。従って、本発明の実施例は更に以下を含む。   When an index entry in the index table is initialized, the user can also determine between the known sketch value and the storage address of the data block represented by the known sketch value according to the data stored in the system in the index table. These correspondence relationships may be stored in advance, and a specific method is not limited in the embodiments of the present invention. The index table may also be null during initialization, during a duplicate data query, when a new data block acquired is stored in the storage system, a new sketch represented by the acquired sketch value and the sketch value. The storage address of the data block is inserted into the index table, whereby the index table is periodically updated. Accordingly, embodiments of the present invention further include:

ステップ15:新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を対応する第2物理ノードに格納する。   Step 15: Obtain at least one second sketch value representing a new data block, identify a second physical node corresponding to each second sketch value according to a second algorithm by the second sketch value, and each second sketch value And the corresponding relationship between the storage address of the data block represented by each second sketch value is stored in the corresponding second physical node.

本発明の実施例では、クエリを介し検出された非重複データブロックが新たなデータブロックとして利用され、クエリを介し検出された新たなデータブロックがあるサイズに到達し、格納される必要があるとき、システムにおける新たなデータブロックのストレージ位置がインデックステーブルにおいて示される必要があり、インデックステーブルは、定期的に更新される必要がある。ストレージアドレスが新たなデータブロックについて取得されると、当該新たなデータブロックを表すスケッチ値が取得され、説明の便宜上、第2スケッチ値と呼ばれ、第2物理ノードが第2アルゴリズムに従って特定され、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係が、対応する第2物理ノードに格納され、これにより、クラスタシステムのインデックスエントリの定期的な更新を実現できる。   In an embodiment of the present invention, a non-overlapping data block detected through a query is used as a new data block, and the new data block detected through the query reaches a certain size and needs to be stored The storage location of new data blocks in the system needs to be indicated in the index table, and the index table needs to be updated regularly. When a storage address is obtained for a new data block, a sketch value representing the new data block is obtained, referred to as a second sketch value for convenience of explanation, a second physical node is identified according to a second algorithm, Correspondence between each second sketch value and the storage address of the data block represented by each second sketch value is stored in the corresponding second physical node, so that the periodic entry of the index entry of the cluster system Update can be realized.

第2スケッチ値を取得するための方法は、第1スケッチ値を取得するためのアルゴリズムと同じであってもよい。例えば、第1アルゴリズムが採用されてもよく、第1スケッチ値のセットが第2スケッチ値のセットのサブセットであることが保証される場合、又は第2スケッチ値のセットが第1スケッチ値のセットである場合、他のアルゴリズムが採用されてもよい。   The method for obtaining the second sketch value may be the same as the algorithm for obtaining the first sketch value. For example, a first algorithm may be employed, if the first set of sketch values is guaranteed to be a subset of the second set of sketch values, or the second set of sketch values is a set of first sketch values. Other algorithms may be employed.

本実施例の手段が、以下において具体的な実現方法の具体例を参照して詳細に説明される。図2は、データストリームの受信後に現在の物理ノードにより実行されるブロック分割及びサンプリングの概略図である。本実施例では、複数のデータブロックが1つのスーパーデータブロック(スーパーチャンク)として見なされてもよく、具体的な実現形態では、より正確なグループ化のため、データブロックに対応するフィンガープリントがグループ化され、グループのフィンガープリントに対応するデータブロックがスーパーデータブロックであり、第1スケッチ値はまたスーパーデータブロックスケッチ値(スーパーチャンクID、SID)と呼ばれてもよい。おそらく、データストリームの分割を介し取得されるデータブロックはまた直接グループ化されてもよい。図2を参照して、データストリームの受信後、現在の物理ノードは、受信したデータをデータブロックに分割し、複数の連続するデータブロックが1つのグループにグループ化され、すなわち、添付図面のスーパーチャンクにグループ化される。グループ化の方法は、可変長ブロックの分割や固定長ブロックの分割などの方法を含み、本実施例ではこれに限定されるものでない。データブロックは各スーパーチャンクから取得され、取得されたデータブロックに対応するフィンガープリントは、各スーパーチャンクを表すSIDとして利用される。   The means of this embodiment will be described in detail below with reference to specific examples of specific implementation methods. FIG. 2 is a schematic diagram of block partitioning and sampling performed by the current physical node after reception of the data stream. In this embodiment, a plurality of data blocks may be regarded as one super data block (super chunk). In a specific implementation, fingerprints corresponding to data blocks are grouped for more accurate grouping. The data block corresponding to the fingerprint of the group is a super data block, and the first sketch value may also be referred to as a super data block sketch value (super chunk ID, SID). Perhaps data blocks obtained via splitting of the data stream may also be grouped directly. Referring to FIG. 2, after receiving the data stream, the current physical node divides the received data into data blocks, and a plurality of consecutive data blocks are grouped into one group, i.e. Grouped into chunks. Grouping methods include methods such as variable-length block division and fixed-length block division, and the present embodiment is not limited to this. A data block is acquired from each super chunk, and a fingerprint corresponding to the acquired data block is used as an SID representing each super chunk.

一例としてクラスタシステムの物理ノードを抽出することによって、物理ノードの内部構造の一例となる概略図のための図3が参照されてもよい。キャッシュとストレージ領域とが各物理ノードに含まれてもよく、具体的な実現形態では、クリアパフォーマンスを向上させるため、インデックステーブルが物理ノードのキャッシュに格納され、第2スケッチ値と当該第2スケッチ値により表される格納されているデータブロックのストレージアドレスとの間の対応関係が、インデックステーブルに格納される。上述されるように、各物理ノードのインデックステーブルは、完全なインデックステーブルであってもよく、全ての第2スケッチ値とクラスタシステムにおける第2スケッチ値により表される格納されているデータブロックのフィンガープリントのストレージアドレスとの間の対応関係を含む。完全なインデックステーブルの一部はまた、所定のポリシーに従って各物理ノードに格納されてもよい。具体的な実現形態では、メモリの使用を低下させるため、後者の方法が採用されてもよく、完全なインデックステーブルの一部が、所定のポリシーに従って各物理ノードに格納される。例えば、一例としてスケッチ値Aを抽出することによって、物理ノードは、クラスタシステムの全ての物理ノードの合計に対するAによるモジュロ演算を実行することによって特定される。AとAにより表される格納されているデータブロックのストレージアドレスとの間の対応関係が特定された物理ノードに格納され、重複データクエリ中、第1スケッチ値に対応する第1物理ノードを取得するため、取得された第1スケッチ値によるモジュロ演算が、クラスタシステムの物理ノードの合計に対して実行される。   By extracting physical nodes of the cluster system as an example, reference may be made to FIG. 3 for a schematic diagram illustrating an example of the internal structure of the physical nodes. A cache and a storage area may be included in each physical node. In a specific implementation, an index table is stored in the physical node cache to improve clear performance, and a second sketch value and the second sketch are stored. Correspondence between the storage address of the stored data block represented by the value is stored in the index table. As described above, the index table of each physical node may be a complete index table, and the stored data block fingers represented by all the second sketch values and the second sketch values in the cluster system. Includes the correspondence between print storage addresses. A portion of the complete index table may also be stored at each physical node according to a predetermined policy. In a specific implementation, the latter method may be employed to reduce memory usage, and a portion of the complete index table is stored in each physical node according to a predetermined policy. For example, by extracting the sketch value A as an example, a physical node is identified by performing a modulo operation with A on the sum of all physical nodes of the cluster system. The correspondence between the storage address of the stored data block represented by A and A is stored in the identified physical node, and the first physical node corresponding to the first sketch value is obtained during the duplicate data query Therefore, a modulo operation using the acquired first sketch value is performed on the total of physical nodes of the cluster system.

各物理ノードは、ストレージ装置を有し、当該ストレージ装置は、各物理ノードが長時間データを格納する機能を有することを可能にし、それは磁気ディスクであってもよく、SSDなどの他のストレージ装置であってもよい。各物理ノードのストレージ装置は、単一のインスタンスレポジトリ(シングルインスタンスレポジトリSIR)と呼ばれ、図3において、磁気ディスクが一例として取り上げられる。物理ノードのストレージ装置には多数のストレージ領域があってもよく、各ストレージ領域は、データを格納するためのコンテナとして例示的にみなされてもよく、各ストレージコンテナは、クラスタシステムにおける1つの一意的なシリアル番号を有し、それはストレージコンテナシリアル番号(コンテナIDCID)と呼ばれてもよい。コンテナシリアル番号は、例えば、クラスタシステムの何れの物理ノードの何れのストレージ領域であるかなど、クラスタシステムにおけるストレージコンテナの位置を示す。従って、具体的な実現形態では、格納されているデータブロックの上述したストレージアドレスは、データブロックが何れの物理ノードの何れのストレージアドレスに格納されているかを示すCIDとして実現され、スケッチ値と上述したインデックステーブルにおける当該スケッチ値により表される格納されているデータブロックのストレージアドレスとの間の対応関係は、SIDとCIDとの間の対応関係として示されてもよく、ストレージデータブロックに加えて、データブロックに対応するフィンガープリント情報が更に各ストレージ領域に格納されてもよい。バッファストレージ領域(コンテナバッファ)が更に、各物理ノードのキャッシュに含まれてもよく、特定を介し取得される新たなデータブロックを一時的に格納するよう構成される。   Each physical node has a storage device, which allows each physical node to have a function of storing data for a long time, which may be a magnetic disk, and other storage devices such as SSDs It may be. The storage device of each physical node is called a single instance repository (single instance repository SIR). In FIG. 3, a magnetic disk is taken as an example. The storage device of the physical node may have a large number of storage areas, and each storage area may be regarded as an example of a container for storing data, and each storage container is one unique in the cluster system. A serial number, which may be referred to as a storage container serial number (container IDCID). The container serial number indicates the position of the storage container in the cluster system such as which storage area of which physical node of the cluster system. Therefore, in a specific implementation, the above-described storage address of the stored data block is realized as a CID indicating in which storage address of which physical node the data block is stored. The correspondence relationship between the storage address of the stored data block represented by the sketch value in the index table may be shown as the correspondence relationship between the SID and the CID, in addition to the storage data block. The fingerprint information corresponding to the data block may be further stored in each storage area. A buffer storage area (container buffer) may further be included in the cache of each physical node, and is configured to temporarily store new data blocks obtained via identification.

従来技術では、サンプリングされたフィンガープリント情報は、クエリのため全てのノードに送信され、このようにして、クラスタシステムのノード数が増える場合、計算量はますます大きくなる。実験は、クラスタシステムのノード数が16を超えると、システムの重複排除パフォーマンスがかなりの程度低下することを示す。本発明の実施例では、サンプリングされたスケッチ値がクエリのため全てのノードに送信される従来技術と異なって、重複データクエリが受信されたデータストリームに対して実行されるとき、各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードが、データストリームを表す第1スケッチ値に従って特定され、その後、データストリームを表す第1スケッチ値は、重複データクエリのため特定された物理ノードに送信され、重複データクエリの手順は、クラスタシステムのノード数の増加によっては変化せず、各ノードの計算量は、クラスタシステムのノード数の増加によっては増加しない。   In the prior art, the sampled fingerprint information is sent to all nodes for a query. Thus, when the number of nodes in the cluster system increases, the amount of calculation becomes larger. Experiments show that when the number of nodes in a cluster system exceeds 16, the deduplication performance of the system is significantly reduced. In an embodiment of the present invention, unlike the prior art where sampled sketch values are sent to all nodes for a query, each first sketch is executed when a duplicate data query is performed on the received data stream. A first physical node corresponding to the value and within the cluster system is identified according to a first sketch value representing the data stream, after which the first sketch value representing the data stream is identified for the duplicate data query. The duplicate data query procedure does not change with an increase in the number of nodes in the cluster system, and the calculation amount of each node does not increase with an increase in the number of nodes in the cluster system.

図4を参照して、本発明は更に、他のクラスタデータ処理方法の実施例を提供し、図1に対応するクラスタシステムにおけるデータ処理方法との相違は、クラスタシステムにおける重複データクエリが終了した後、受信したデータストリームに新たなデータブロックがあるか判断し、当該新たなデータブロックを格納することが要求されることであり、他のステップは図1に対応する実施例と同じである。従って、図1に対応する実施例に基づき、本方法は更に以下を含むものであってもよい。   Referring to FIG. 4, the present invention further provides an embodiment of another cluster data processing method. The difference from the data processing method in the cluster system corresponding to FIG. Thereafter, it is determined whether or not there is a new data block in the received data stream, and it is required to store the new data block, and the other steps are the same as those in the embodiment corresponding to FIG. Thus, based on the embodiment corresponding to FIG. 1, the method may further include:

ステップ46:所定のストレージポリシーに従って、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択する。   Step 46: Select a storage address to which a new data block and a fingerprint of the new data block are written according to a predetermined storage policy.

新たなデータブロックのストレージポリシーは、ユーザにより予め設定されてもよく、複数のポリシーがあってもよい。例えば、ポリシー1では、クラスタシステムの各物理ノードのロード情報がまず取得され、データが移行される物理ノードがロード情報に従って選択され、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスが、データが移行される選択された物理ノードから取得され、このようにして、全ての物理ノードにおけるロードバランシングが実行される。ポリシー2では、ロード情報は決定されなくてもよく、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスが現在の物理ノードから直接取得され、このようにして、ノード間のやりとりが低減される。従って、具体的なストレージポリシーは実際の状況に従ってユーザにより設定されてもよく、本発明の実施例において限定されるものでない。   The storage policy for a new data block may be set in advance by the user, or there may be a plurality of policies. For example, in policy 1, the load information of each physical node of the cluster system is first acquired, the physical node to which data is migrated is selected according to the load information, and the new data block and the fingerprint of the new data block are written Storage addresses are obtained from the selected physical node to which the data is migrated, and thus load balancing is performed on all physical nodes. In policy 2, the load information does not have to be determined, and the storage address to which the new data block and the fingerprint of the new data block are written is obtained directly from the current physical node, thus Interaction is reduced. Therefore, the specific storage policy may be set by the user according to the actual situation, and is not limited in the embodiment of the present invention.

ポリシー1が採用される場合、ロード情報に従ってデータを書き込む複数の方法があってもよい。例えば、閾値が予め設定され、第1所定閾値と呼ばれてもよい。クラスタシステムの全ての物理ノードの平均ロード値が第1所定閾値を超過するとき、データが書き込まれるノードが、平均ロード値よりロード値が小さい物理ノードから選択され、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスが、データが書き込まれるノードから取得され、クラスタシステムの全ての物理ノードの平均ロード値が第1所定閾値以下であるとき、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスが、現在の物理ノードから取得される。   If policy 1 is employed, there may be multiple ways of writing data according to the load information. For example, a threshold value may be set in advance and referred to as a first predetermined threshold value. When the average load value of all the physical nodes of the cluster system exceeds the first predetermined threshold, a node to which data is written is selected from physical nodes having a load value smaller than the average load value, and a new data block and the new load block are selected. When the storage address to which the fingerprint of the data block is written is obtained from the node to which the data is written, and the average load value of all the physical nodes of the cluster system is equal to or less than the first predetermined threshold, the new data block and the new data block The storage address to which the fingerprint of the correct data block is written is obtained from the current physical node.

ロード値に従ってデータ移行を実行するための他の方法は以下を含むものであってもよい。   Other methods for performing data migration according to load values may include:

A1:クラスタシステムの物理ノードのロード情報を取得し、クラスタシステムの何れか2つの物理ノードの間のロード差が第1閾値より大きいとき、データが移行されるノードが、より低いロードの物理ノードから選択され、データが移行されるノードから新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得する。   A1: When the load information of the physical node of the cluster system is acquired and the load difference between any two physical nodes of the cluster system is larger than the first threshold, the node to which the data is migrated is the physical node with the lower load The storage address to which the new data block and the fingerprint of the new data block are written is acquired from the node to which the data is migrated.

A2:クラスタシステムの何れか2つの物理ノードの間のロード差が第1閾値以下であるとき、現在の物理ノードから新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得する。   A2: When the load difference between any two physical nodes of the cluster system is less than or equal to the first threshold value, the storage address where the new data block and the fingerprint of the new data block are written from the current physical node get.

ロード情報は、現在の物理ノードから取得されてもよく、ロード情報はまた、第三者がロード情報を取得した後、現在の物理ノードによって第三者から直接取得されてもよい。   The load information may be obtained from the current physical node, and the load information may also be obtained directly from the third party by the current physical node after the third party obtains the load information.

ステップ47:所定のストレージ条件が充足されると、新たなデータブロックと当該新たなデータブロックのフィンガープリントとを、選択されたストレージアドレスに対応するストレージ領域に書き込む。   Step 47: When a predetermined storage condition is satisfied, a new data block and a fingerprint of the new data block are written in the storage area corresponding to the selected storage address.

任意的には、所定のストレージが条件が充足されることは、新たなデータブロックが現在の物理ノードのキャッシュに格納され、現在の物理ノードのキャッシュのデータが第2所定閾値に達すると、所定のストレージ条件が充足されることを含むものであってもよい。   Optionally, the condition for a given storage is met when a new data block is stored in the current physical node's cache and when the current physical node's cache data reaches a second predetermined threshold, It may be included that the storage condition is satisfied.

図3の具体例に説明されるように、コンテナバッファが各物理ノードに含まれてもよく、特定を介して取得された新たなデータブロックを一時的に格納するよう構成され、コンテナバッファに格納されるデータのサイズが第2閾値を超過すると、所定のストレージ条件が充足されたとみなされ、ユーザは実際の状況に従って第2閾値を設定してもよい。このことは、本実施例では限定されるものでない。   As illustrated in the specific example of FIG. 3, a container buffer may be included in each physical node, and is configured to temporarily store a new data block obtained through identification and store in the container buffer. When the size of the data to be exceeded exceeds the second threshold, it is considered that a predetermined storage condition has been satisfied, and the user may set the second threshold according to the actual situation. This is not limited in this embodiment.

本発明の実施例では、新たなデータブロックのストレージアドレスが取得された後、第2スケッチ値と当該第2スケッチ値により表されるデータブロックの対応する第2物理ノードにおけるストレージアドレスとの間の対応関係を格納するための具体的な機会は、本発明の実施例において限定されるものでない。   In the embodiment of the present invention, after the storage address of a new data block is acquired, the second sketch value and the storage address in the corresponding second physical node of the data block represented by the second sketch value are obtained. The specific opportunity for storing the correspondence relationship is not limited in the embodiment of the present invention.

図4に対応する実施例により提供されるクラスタシステムにおけるデータ処理方法では、新たなデータブロックが格納されるとき、ロードバランシングが実現され、システムパフォーマンスが向上する。   In the data processing method in the cluster system provided by the embodiment corresponding to FIG. 4, when a new data block is stored, load balancing is realized and system performance is improved.

図1に対応するデータ処理方法に基づき、図5を参照して、バーチャルノードがクラスタシステムに含まれるケースについて、本発明は他の実施例を提供する。少なくとも1つのバーチャルノードが、クラスタシステムの物理ノードの分割を介し論理的に取得され、クラスタシステムの全てのバーチャルノードと全ての物理ノードとの間の対応関係(VPT)が各物理ノードに格納され、本発明の実施例では、少なくとも1つのバーチャルノードが各物理ノードの分割を介し論理的に取得されることが仮定される。重複データクエリ方法は以下を含む。   Based on the data processing method corresponding to FIG. 1, and referring to FIG. 5, the present invention provides another embodiment for the case where the virtual node is included in the cluster system. At least one virtual node is logically obtained through partitioning of the physical nodes of the cluster system, and the correspondence (VPT) between all virtual nodes of the cluster system and all physical nodes is stored in each physical node. In an embodiment of the present invention, it is assumed that at least one virtual node is logically obtained through partitioning of each physical node. The duplicate data query method includes:

ステップ50:m個のデータブロックを取得するため、現在の物理ノードにより受信されたデータストリームを処理し、各データブロックのフィンガープリントを取得する。   Step 50: Process the data stream received by the current physical node to obtain m data blocks and obtain the fingerprint of each data block.

ステップ51:第1アルゴリズムに従ってデータストリームを表すn個の第1スケッチ値を取得する。ここで、nは1以上であって、m以下の整数である。   Step 51: Obtain n first sketch values representing a data stream according to a first algorithm. Here, n is an integer of 1 or more and m or less.

データストリームを処理する方法と、ステップ50及び51において第1スケッチ値を取得する方法とは、図1に対応する実施例と同じであり、ここでは繰り返し説明されない。   The method for processing the data stream and the method for obtaining the first sketch values in steps 50 and 51 are the same as in the embodiment corresponding to FIG. 1 and will not be described again here.

ステップ52:第2アルゴリズムに従ってn個の第1スケッチ値の各スケッチ値に対応し、クラスタシステム内にある第1バーチャルノードを特定し、現在の物理ノードのバーチャルノードと物理ノードとの間の対応関係をクエリすることによって、第1バーチャルノードに対応する第1物理ノードを取得する。ここで、各第1スケッチ値は1つの第1バーチャルノードに対応し、1つの第1バーチャルノードは同時に複数の第1スケッチ値に対応してもよい。   Step 52: Corresponding to each sketch value of the n first sketch values according to the second algorithm, identifying the first virtual node in the cluster system, and correspondence between the virtual node of the current physical node and the physical node The first physical node corresponding to the first virtual node is obtained by querying the relationship. Here, each first sketch value may correspond to one first virtual node, and one first virtual node may simultaneously correspond to a plurality of first sketch values.

説明の便宜上、第1スケッチ値に従って特定される対応するバーチャルノードは第1バーチャルノードと呼ばれ、少なくとも1つのバーチャルノードは、クラスタストレージシステムの各物理ノードの分割を介し取得されてもよく、具体的な実現手段では、2以上のバーチャルノードが各物理ノードの分割を介し取得されてもよく、各バーチャルノードは一意的なシリアル番号を有し、クラスタシステムにおけるバーチャルノードと物理ノードとの間の対応関係が各物理ノードに格納されてもよく、それは、バーチャルノードが何れの物理ノードにあるかを示す。   For convenience of explanation, the corresponding virtual node identified according to the first sketch value is referred to as the first virtual node, and at least one virtual node may be obtained through the division of each physical node of the cluster storage system, specifically In a typical implementation, two or more virtual nodes may be obtained through partitioning of each physical node, each virtual node having a unique serial number, and between virtual nodes and physical nodes in a cluster system A correspondence relationship may be stored in each physical node, which indicates which physical node the virtual node is on.

ステップ53:各第1スケッチ値をクエリのための対応する第1物理ノードの第1バーチャルノードに送信し、第1物理ノードからレスポンスメッセージを受信し、レスポンスメッセージから第1スケッチ値に対応するストレージアドレスを取得し、第1スケッチ値に対応するストレージアドレスから第1ストレージアドレスを選択する。   Step 53: Send each first sketch value to the first virtual node of the corresponding first physical node for the query, receive a response message from the first physical node, and store corresponding to the first sketch value from the response message The address is acquired, and the first storage address is selected from the storage addresses corresponding to the first sketch value.

本発明の実施例では、クラスタシステムの各物理ノード又は大部分の物理ノードはインデックステーブルを格納し、予め取得されたスケッチ値と当該スケッチ値により表される格納されているデータブロックのストレージアドレスとの間の対応関係がインデックステーブルに格納される。インデックステーブルは、所定のポリシーに従ってクラスタシステムの物理ノードに格納され、バーチャルノードが物理ノードの分割を介し取得された後、インデックステーブルは、物理ノードの分割を介し取得されたバーチャルノードに格納されてもよい。インデックステーブルの各インデックスエントリをバーチャルノードに格納する方法が、以下において詳細に説明される。   In an embodiment of the present invention, each physical node or most physical nodes of the cluster system stores an index table, and a sketch value acquired in advance and a storage address of a stored data block represented by the sketch value Are stored in the index table. The index table is stored in the physical node of the cluster system according to a predetermined policy, and after the virtual node is acquired through physical node division, the index table is stored in the virtual node acquired through physical node division. Also good. The method for storing each index entry in the index table in the virtual node is described in detail below.

データブロックのクラスタシステムにバーチャルノードがない場合、インデックステーブルのストレージアドレスは、具体的には、何れかの物理ノードの何れかのストレージ領域を示し、クラスタシステムにバーチャルノードがある場合、ストレージアドレスは、具体的には、何れかのバーチャルノードの何れかのストレージ領域を示す。   When there is no virtual node in the cluster system of the data block, the storage address of the index table specifically indicates any storage area of any physical node, and when there is a virtual node in the cluster system, the storage address is Specifically, it indicates any storage area of any virtual node.

同様に、各バーチャルノードのインデックステーブルは、完全なインデックステーブルであってもよく、全てのスケッチ値とクラスタシステムにおけるスケッチ値により表される格納されているデータブロックのフィンガープリントのストレージアドレスとの間の対応関係を含み、完全なインデックステーブルの一部はまた、メモリの利用を低減するため、所定のポリシーに従って各バーチャルノードに格納されてもよい。   Similarly, the index table for each virtual node may be a complete index table, between all sketch values and the storage address of the fingerprint of the stored data block represented by the sketch values in the cluster system. Part of the complete index table may also be stored in each virtual node according to a predetermined policy to reduce memory usage.

n個の第1スケッチ値の各スケッチ値に対応し、クラスタシステム内にある第1バーチャルノードが、第2アルゴリズムに従って特定される。同様に、第1スケッチ値がクラスタシステムの1つの一意的なバーチャルノードに対応させることが有効とすることができる限り、複数の第2アルゴリズム存在する。例えば、一例として第1スケッチ値Aを抽出することによって、重複データクエリがデータブロックに対して実行されると、第1スケッチ値に対応する第1バーチャルノードを取得するため、クラスタシステムの全てのバーチャルノードの個数に対して取得された第1スケッチ値によるモジュロ演算が実行され、その後、第1バーチャルノードに対応する第1物理ノードが、バーチャルノードと物理ノードとの間の対応関係に従って特定される。第1物理ノードが検出されると、第1物理ノードの第1バーチャルノードが検出される。   A first virtual node in the cluster system corresponding to each of the n first sketch values is identified according to the second algorithm. Similarly, there are a plurality of second algorithms as long as it can be useful for the first sketch value to correspond to one unique virtual node of the cluster system. For example, by extracting the first sketch value A as an example, when a duplicate data query is performed on a data block, all the cluster systems are retrieved to obtain the first virtual node corresponding to the first sketch value. A modulo operation is performed on the first sketch value obtained for the number of virtual nodes, and then the first physical node corresponding to the first virtual node is identified according to the correspondence between the virtual node and the physical node. The When the first physical node is detected, the first virtual node of the first physical node is detected.

多数のストレージ領域が各バーチャルノードに含まれ、具体的な実現形態では、各ストレージ領域は、データを格納するためのコンテナとして例示的にみなされてもよく、各コンテナは、クラスタシステムにおける一意的なシリアル番号CIDを有し、当該番号は、クラスタシステムの何れのバーチャルノードの何れのストレージ領域に当該ストレージ領域が配置されているかを示す。データブロックに加えて、データブロックに対応するフィンガープリント情報がまた、各ストレージ領域に格納されてもよい。   A large number of storage areas are included in each virtual node, and in a specific implementation, each storage area may be considered illustratively as a container for storing data, each container being a unique in the cluster system. Serial number CID, and this number indicates in which storage area of which virtual node of the cluster system the storage area is arranged. In addition to the data blocks, fingerprint information corresponding to the data blocks may also be stored in each storage area.

バッファストレージ領域(コンテナバッファ)がまた、各物理ノードのキャッシュに含まれてもよく、特定を介し取得された新たなデータブロックを一時的に格納するよう構成される。   A buffer storage area (container buffer) may also be included in each physical node's cache, and is configured to temporarily store new data blocks obtained via identification.

図1に対応する実施例と同様に、具体的な実現形態では、インデックステーブルの1つの同一のストレージアドレスが複数の異なるスケッチ値に対応してもよいが、1つのスケッチ値は1つのストレージアドレスに対応する。複数の第1スケッチ値がインデックステーブルにおいてクエリされるとき、複数の対応するストレージアドレスが取得されてもよく、第1ストレージアドレスが第1スケッチ値に対応するストレージアドレスから選択されるとき、第1ストレージアドレスを選択するためのルールは予め設定されてもよいし、あるいは、実際の状況に従ってユーザにより設定されてもよい。図1に対応する方法において第1ストレージアドレスを選択する説明が参照されるが、これは、本実施例において限定されるものでない。   Similar to the embodiment corresponding to FIG. 1, in a specific implementation, one identical storage address in the index table may correspond to multiple different sketch values, but one sketch value is one storage address. Corresponding to When a plurality of first sketch values are queried in the index table, a plurality of corresponding storage addresses may be obtained, and when the first storage address is selected from the storage addresses corresponding to the first sketch values, the first A rule for selecting a storage address may be set in advance, or may be set by a user according to an actual situation. Reference is made to the description of selecting the first storage address in the method corresponding to FIG. 1, but this is not limited in this embodiment.

本発明の実施例では、クエリリクエストを受信した後、物理ノードは、ローカルバーチャルノードにおいてクエリを実行し、ストレージアドレスがクエリを介し検出された場合、物理ノードは、当該クエリリクエストを送信したノードにクエリ結果をフィードバックする。具体的な実現形態では、クエリリクエストを受信した後、物理ノードは、ローカルバーチャルノードにおいてクエリを実行し、レスポンスメッセージにクエリ結果を配置することによって、クエリリクエストを送信した物理ノードにクエリ結果をフィードバックする。ストレージアドレスがクエリを介し検出された場合、クエリを介し検出されたストレージアドレスがレスポンスメッセージに配置され、ストレージアドレスがクエリを介し検出されない場合、ヌル値がレスポンスメッセージによりフィードバックされるか、あるいは、具体的な実現形態において、ストレージアドレスがクエリを介し検出されない場合、フィードバックは返されない。ユーザは、実際の状況に従って具体的な実現方法を設定してもよい。   In an embodiment of the present invention, after receiving the query request, the physical node executes the query in the local virtual node, and if the storage address is detected via the query, the physical node sends the query request to the node that transmitted the query request. Provide feedback on query results. In a specific implementation, after receiving a query request, the physical node executes the query in the local virtual node and places the query result in the response message, thereby feeding back the query result to the physical node that sent the query request. To do. If the storage address is detected via a query, the storage address detected via the query is placed in the response message, and if the storage address is not detected via the query, a null value is fed back by the response message, or In a typical implementation, no feedback is returned if the storage address is not found via a query. The user may set a specific implementation method according to the actual situation.

現在の物理ノードがn個の第1スケッチ値に対応する第1物理ノードにより返されたストレージアドレスを受信しない場合、データストリームの分割を介し取得されたデータブロックが、非重複データブロックとして利用される。   If the current physical node does not receive the storage address returned by the first physical node corresponding to the n first sketch values, the data block obtained through the division of the data stream is used as a non-overlapping data block. The

ステップ54:第1ストレージアドレスにより指示されたストレージ領域に格納されるデータブロックのフィンガープリントと、受信したデータストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、重複したデータブロックをクエリする。ここで、取得された非重複データブロックは、新たなデータブロックとして利用される。   Step 54: Compare the fingerprint of the data block stored in the storage area indicated by the first storage address with the fingerprint of each data block obtained through the division of the received data stream, and duplicate data blocks Query. Here, the acquired non-overlapping data block is used as a new data block.

具体的な実現形態では、現在の物理ノードは、受信したデータストリームの処理後にデータブロックとフィンガープリント情報とをキャッシュに格納し、データブロックのフィンガープリントを比較するための複数の方法が採用されてもよく、図1に対応する方法における説明が参照されてもよい。   In a specific implementation, the current physical node employs multiple methods for storing data blocks and fingerprint information in a cache after processing the received data stream and comparing the fingerprints of the data blocks. The description of the method corresponding to FIG. 1 may be referred to.

ステップ55:新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、第2アルゴリズムに従って各第2スケッチ値に対応する第2バーチャルノードを第2スケッチ値により特定し、バーチャルノードと物理ノードとの間の対応関係に従って、第2バーチャルノードが配置される第2物理ノードを特定し、各第2スケッチ値と第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を対応する第2物理ノードの第2バーチャルノードに格納する。   Step 55: Obtain at least one second sketch value representing a new data block, identify a second virtual node corresponding to each second sketch value according to a second algorithm by the second sketch value, and a virtual node and a physical node The second physical node in which the second virtual node is arranged is identified according to the correspondence relationship between the second sketch value and the storage relationship of the storage address of the data block represented by the second sketch value. Store in the second virtual node of the corresponding second physical node.

2つのバーチャルノードが一例としてクラスタシステムの物理ノードの分割を介し取得されるとすることによって、物理ノードの内部構造の一例となる概略図の図6が参照される。図6において、2つのバーチャルノード(VN)が1つの物理ノード(PN)の分割を介し取得され、インデックステーブルと長期間データを格納可能なストレージ装置とが1つのバーチャルノードに含まれる。バーチャルノードと物理ノードとの間の対応関係テーブル(VPT)は、同時に各物理ノードに格納される。   Assuming that two virtual nodes are obtained by way of example by dividing physical nodes of the cluster system, reference is made to FIG. 6 of a schematic diagram illustrating an example of the internal structure of the physical nodes. In FIG. 6, two virtual nodes (VN) are acquired through division of one physical node (PN), and an index table and a storage device capable of storing long-term data are included in one virtual node. A correspondence table (VPT) between the virtual node and the physical node is simultaneously stored in each physical node.

従来技術では、サンプリングされたフィンガープリント情報は、クエリのため全てのノードに送信される。ノードにおけるクエリを実行する計算量はzであり、m個の物理ノードがあるとき、計算量はmと乗算されたzであることが仮定される。本実施例により提供されるバーチャルノードを有するクラスタシステムにおける重複排除方法では、重複データクエリが受信したデータストリームに対して実行されると、各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードが、データストリームを表す第1スケッチ値に従って特定され、その後、データストリームを表す第1スケッチ値が、重複データクエリのための特定されたバーチャルノードに送信される。特定されたバーチャルノードの個数は、クラスタシステムの物理ノードの個数の増加により増加せず、重複データクエリの手順は、クラスタシステムの重複排除パフォーマンスを効果的に向上させるため、クラスタシステムのノードの個数の増加により変化しない。   In the prior art, sampled fingerprint information is sent to all nodes for a query. The amount of computation for executing a query at a node is z, and when there are m physical nodes, it is assumed that the amount of computation is z multiplied by m. In the deduplication method in the cluster system having virtual nodes provided by the present embodiment, when the duplicate data query is executed on the received data stream, the first sketch value corresponding to each first sketch value is stored in the cluster system. A physical node is identified according to a first sketch value that represents the data stream, and then the first sketch value that represents the data stream is sent to the identified virtual node for duplicate data queries. The number of identified virtual nodes does not increase with the increase in the number of physical nodes in the cluster system, and the duplicate data query procedure effectively improves the deduplication performance of the cluster system. It does not change with the increase.

図7を参照して、本発明は更に、クラスタシステムにおけるデータ処理方法の実施例を提供し、図5に対応するクラスタシステムにおけるデータ処理方法との相違は、クラスタシステムにおける重複データクエリが終了した後、受信したデータストリームに新たなデータブロックがあるか判断し、新たなデータブロックを格納することが要求されることであり、他のステップは図5に対応する実施例と同じである。従って、図5に対応する実施例に基づき、本方法は更に以下を含むものであってもよい。   Referring to FIG. 7, the present invention further provides an embodiment of the data processing method in the cluster system, and the difference from the data processing method in the cluster system corresponding to FIG. After that, it is determined whether there is a new data block in the received data stream, and it is required to store the new data block. The other steps are the same as those in the embodiment corresponding to FIG. Thus, based on the embodiment corresponding to FIG. 5, the method may further include:

ステップ76:所定のストレージポリシーに従って、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択する。   Step 76: Select a storage address where a new data block and a fingerprint of the new data block are written according to a predetermined storage policy.

新たなデータブロックのストレージポリシーは、ユーザにより予め設定されてもよく、複数のストレージポリシーがあってもよい。図4に対応する実施例において新たなデータブロックと当該新たなデータブロックに対応するフィンガープリントとが書き込まれるストレージアドレスを選択する方法に関する説明が参照されてもよく、データが移行される物理ノードが決定された後、物理ノード内のバーチャルノードのロードが考慮され、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスが、データが移行される選択された物理ノードにおいてロードがより低いバーチャルノードから取得されるという相違がある。   The storage policy for a new data block may be preset by the user, or there may be a plurality of storage policies. Reference may be made to the description of the method for selecting a storage address where a new data block and a fingerprint corresponding to the new data block are written in the embodiment corresponding to FIG. Once determined, the load of the virtual node within the physical node is considered and the storage address where the new data block and the fingerprint of the new data block are written is loaded at the selected physical node where the data is migrated Is obtained from a lower virtual node.

ステップ77:所定のストレージ条件が充足されると、新たなデータブロックと当該新たなデータブロックのフィンガープリントとを選択されたストレージアドレスに対応するストレージ領域に書き込む。   Step 77: When a predetermined storage condition is satisfied, a new data block and a fingerprint of the new data block are written into the storage area corresponding to the selected storage address.

図6の具体例に説明されるように、コンテナバッファが各物理ノードに含まれてもよく、特定を介し取得された新たなデータブロックを一時的に格納するよう構成され、コンテナバッファに格納されているデータのサイズが第2閾値を超過すると、所定のストレージ条件が充足されたとみなされてもよく、ユーザは、実際の状況に従って第2閾値を設定してもよく、これは、本実施例において限定されるものでない。   As illustrated in the specific example of FIG. 6, a container buffer may be included in each physical node, and is configured to temporarily store a new data block obtained through identification and stored in the container buffer. If the size of the stored data exceeds the second threshold value, it may be considered that the predetermined storage condition has been satisfied, and the user may set the second threshold value according to the actual situation. It is not limited in.

新たなデータブロックのストレージアドレスが取得された後、第2スケッチ値と当該第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を対応する第2物理ノードに格納する具体的な機会は、本発明の実施例において限定されるものでない。   Specifically, after the storage address of the new data block is acquired, the correspondence relationship between the second sketch value and the storage address of the data block represented by the second sketch value is stored in the corresponding second physical node. This opportunity is not limited in the embodiments of the present invention.

図7に対応する実施例により提供されるクラスタシステムにおけるデータ処理方法では、バーチャルノードのインデックステーブルは、重複データを検出する確率を更に向上させるため、定期的に更新される。   In the data processing method in the cluster system provided by the embodiment corresponding to FIG. 7, the index table of the virtual node is periodically updated to further improve the probability of detecting duplicate data.

図8を参照して、バーチャルノードがクラスタシステムに含まれることに基づき、クラスタシステムの物理ノードにおけるデータ移行のための手段が提供される。例えば、図8において、1つの物理ノードが2つの物理ノードに拡張されるケースにおけるデータ移行の概略図が説明される。   Referring to FIG. 8, a means for data migration in a physical node of the cluster system is provided based on the fact that the virtual node is included in the cluster system. For example, FIG. 8 illustrates a schematic diagram of data migration in the case where one physical node is expanded to two physical nodes.

データ移行条件が充足されると、物理ノードPN1のバーチャルノードの1つが他の物理ノードPN2に一体的に移動され、これは、バーチャルノードVN1のインデックステーブルと、VN1に属する単一のインスタンスレポジトリのデータとをPN2に移動し、クラスタシステムにおける移行されるバーチャルノードと物理ノードとの間の対応関係を更新し、移行されるノードと物理ノードとの間の対応関係の更新をクラスタシステムにおける他の物理ノードに通知することを含む。クラスタシステムにおける全てのバーチャルノードと全ての物理ノードとの間の更新された対応関係は、新たに追加されたPN2に格納される。   When the data migration condition is satisfied, one of the virtual nodes of the physical node PN1 is moved to the other physical node PN2 as a whole. Data to PN2, update the correspondence between the migrated virtual node and the physical node in the cluster system, and update the correspondence between the migrated node and the physical node to the other in the cluster system. Including notifying the physical node. The updated correspondences between all virtual nodes and all physical nodes in the cluster system are stored in the newly added PN2.

データ移行条件は、データがクラスタシステムの物理ノードのキャパシティ拡張中に新たに追加された物理ノードに移行される必要があることであってもよく、また、ロードバランシングのため、ロードが高い物理ノードのデータがロードが低い物理ノードに移行されることであってもよい。データ移行条件は本発明の実施例において限定されるものでない。   The data migration condition may be that the data needs to be migrated to the newly added physical node during the capacity expansion of the physical node of the cluster system, and because of load balancing, The node data may be migrated to a physical node with a low load. Data migration conditions are not limited in the embodiments of the present invention.

バーチャルノードがクラスタシステムにおける分割を介し取得されず、物理ノードのデータが移行されると、データブロックと当該データブロックのフィンガープリントのストレージアドレスとが変更されるため、データブロックの論理アドレスとCIDとの間の対応関係が変更される必要があり、関連するCIDのデータは多数の物理ノードに格納され、この結果、計算量は大変大きくなる。しかしながら、バーチャルノードにおけるデータは一体的に移動されるため、データ移行中に本発明の実施例により提供されるクラスタシステムを利用することによって、インデックステーブルのCIDは、データがバーチャルノードに格納される位置を示し、従って、バーチャルノードの識別子が変更されない限り、CIDは変更される必要はなく、関連するバーチャルノードと物理ノードとの間の対応関係のみが変更され、これは、ノード拡張中の処理手順を簡単化し、計算量を大きく低減する。   When the virtual node is not acquired through the division in the cluster system and the data of the physical node is migrated, the data block and the storage address of the fingerprint of the data block are changed, so the logical address and CID of the data block It is necessary to change the correspondence between the CIDs, and the related CID data is stored in a large number of physical nodes. However, since the data in the virtual node is moved together, the CID of the index table is stored in the virtual node by using the cluster system provided by the embodiment of the present invention during the data migration. As long as the virtual node identifier is not changed, the CID need not be changed, only the correspondence between the associated virtual node and the physical node is changed, which is the process during node expansion. Simplify the procedure and greatly reduce the amount of calculation.

本発明の実施例は、ストレージのためクラスタシステムにおいて適用され、複数のストレージノードがクラスタシステムに含まれる。本発明の実施例により提供されるクラスタシステムのデータ処理装置は、クラスタシステムの上述されたデータ処理方法を実行するよう構成され、クラスタシステムの物理ノードに設定されるか、クラスタシステムのマネージャに設定されるか、又はクラスタシステムの別のノードとして設定されてもよい。データ処理装置が設定される具体的な位置は、本発明の実施例において限定されるものでない。   The embodiments of the present invention are applied in a cluster system for storage, and a plurality of storage nodes are included in the cluster system. The cluster system data processing apparatus provided by the embodiment of the present invention is configured to execute the above-described data processing method of the cluster system, and is set as a physical node of the cluster system or set as a manager of the cluster system. Or may be configured as another node of the cluster system. The specific position where the data processing apparatus is set is not limited in the embodiment of the present invention.

図9を参照して、本発明の実施例は、クラスタシステムにおけるデータ処理装置900を提供し、当該装置は以下を含む。   Referring to FIG. 9, the embodiment of the present invention provides a data processing device 900 in a cluster system, which includes:

分割部90は、現在の物理ノードにより受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得するよう構成される。ここで、mは1以上の整数である。   The dividing unit 90 is configured to divide the data stream received by the current physical node into m data blocks and obtain a fingerprint of each data block. Here, m is an integer of 1 or more.

スケッチ値取得部91は、第1アルゴリズムに従ってデータストリームを表すn個の第1スケッチ値を取得するよう構成される。ここで、nは1以上であって、m以下の整数である。   Sketch value acquisition unit 91 is configured to acquire n first sketch values representing a data stream according to a first algorithm. Here, n is an integer of 1 or more and m or less.

第1スケッチ値を取得するための第1アルゴリズムの上述した方法における説明が参照されてもよく、ここでは繰り返し説明されない。   Reference may be made to the description in the above-described method of the first algorithm for obtaining the first sketch value, which is not repeated here.

特定部92は、第2アルゴリズムに従ってn個の第1スケッチ値の各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードを特定するよう構成される。   The specifying unit 92 is configured to specify a first physical node in the cluster system corresponding to each first sketch value of the n first sketch values according to the second algorithm.

特定部92が第1物理ノードを特定する方法は多数あってもよい。例えば、当該値がm未満になるまで、第1スケッチ値に対してルート抽出及び丸め処理が実行され、最終的な結果が、対応する第1物理ノードを取得するため丸められ、各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードを取得するため、各第1スケッチ値によるモジュロ演算が、クラスタシステムの全ての物理ノードの個数に対して実行されてもよく、本発明の実施例では、特定部92が、具体的に、各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードを取得するため、クラスタシステムの全ての物理ノードの個数に対して各第1スケッチ値によるモジュロ演算を実行するよう構成されてもよい。   There may be many methods by which the specifying unit 92 specifies the first physical node. For example, route extraction and rounding is performed on the first sketch value until the value is less than m, and the final result is rounded to obtain the corresponding first physical node, with each first sketch In order to obtain a first physical node in the cluster system corresponding to the value, a modulo operation with each first sketch value may be performed on the number of all physical nodes in the cluster system. In the embodiment, the specifying unit 92 specifically acquires the first physical node corresponding to each first sketch value and in the cluster system. You may be comprised so that the modulo operation by one sketch value may be performed.

送信部93は、各第1スケッチ値をクエリのため対応する第1物理ノードに送信するよう構成される。   The transmitter 93 is configured to transmit each first sketch value to the corresponding first physical node for a query.

送信部93により送信されたクエリリクエストの受信後、クラスタシステムの他のノードは、ローカルに格納されたインデックステーブルに従って、第1スケッチ値に対応するストレージアドレスがあるかクエリする。本発明の実施例は、クラスタシステムの各物理ノード又は大部分の物理ノードはインデックステーブルを格納し、スケッチ値と当該スケッチ値により表される格納されているデータブロックのストレージアドレスとの間の対応関係がインデックステーブルに格納され、インデックステーブルは、所定のポリシーに従ってクラスタシステムの物理ノードに格納され、データブロックと当該データブロックに対応するフィンガープリントとが、異なるストレージアドレスにより指示されるストレージ領域に格納される。   After receiving the query request transmitted by the transmitter 93, the other nodes in the cluster system query whether there is a storage address corresponding to the first sketch value according to the index table stored locally. In an embodiment of the present invention, each physical node or most physical nodes of the cluster system stores an index table, and correspondence between the sketch value and the storage address of the stored data block represented by the sketch value. The relationship is stored in the index table, the index table is stored in the physical node of the cluster system according to a predetermined policy, and the data block and the fingerprint corresponding to the data block are stored in the storage area indicated by different storage addresses Is done.

受信部94は、n個の第1スケッチ値に対応する第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、レスポンスメッセージから第1ストレージアドレスを取得するよう構成される。   The receiving unit 94 is configured to receive at least one response message from the first physical node corresponding to the n first sketch values and acquire the first storage address from the response message.

受信部94は、レスポンスメッセージから第1スケッチ値に対応するストレージアドレスを取得し、レスポンスメッセージに搬送される各ストレージアドレスのヒット数に関する統計量を収集するよう構成される統計量収集サブ部941と、統計量収集サブ部941の統計結果に従って、第1ストレージアドレスとして最大ヒット数を有するs個のストレージアドレスを選択するよう構成されるアドレス取得サブ部942とを有してもよく、ここで、sは1以上である。   The reception unit 94 obtains a storage address corresponding to the first sketch value from the response message, and collects a statistic regarding the number of hits of each storage address carried in the response message; And an address acquisition sub-unit 942 configured to select s storage addresses having the maximum number of hits as the first storage address according to the statistical result of the statistics collection sub-unit 941, where s is 1 or more.

クエリ部95は、第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、受信したデータストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、重複データブロックをクエリするよう構成され、クエリ部95により取得された非重複データブロックが新たなデータブロックとして利用される。   The query unit 95 compares the fingerprint of the data block stored in the storage area indicated by the first storage address with the fingerprint of each data block obtained through the division of the received data stream, and duplicate data A non-overlapping data block configured to query the block and acquired by the query unit 95 is used as a new data block.

更新部96は、新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を対応する第2物理ノードに格納するよう構成される。   The update unit 96 acquires at least one second sketch value representing a new data block, specifies a second physical node corresponding to each second sketch value according to the second algorithm, using the second sketch value, and sets each second sketch value. A correspondence relationship between the sketch value and the storage address of the data block represented by each second sketch value is configured to be stored in the corresponding second physical node.

更新部96による新たなデータブロックを表す第2スケッチ値を取得するためのアルゴリズムは、ここで限定されることなく、第1スケッチ値を取得するための第1アルゴリズムと同じであってもよい。   The algorithm for acquiring the second sketch value representing the new data block by the updating unit 96 is not limited here, and may be the same as the first algorithm for acquiring the first sketch value.

各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係は、インデックステーブルの1つのインデックスエントリとして利用される。本発明の実施例では、更新部96は、設定されたポリシーに従って物理ノードにインデックステーブルを格納し、ある物理ノードのインデックステーブルのデータと当該物理ノードのデータとの間には直接的な関係はなく、インデックステーブルは、設定された割当ポリシーに従って当該物理ノードに格納されるだけである。インデックステーブルの説明のため上述した方法の説明が参照されてもよく、詳細はここでは繰り返し説明されない。   The correspondence between each second sketch value and the storage address of the data block represented by each second sketch value is used as one index entry in the index table. In the embodiment of the present invention, the update unit 96 stores the index table in the physical node according to the set policy, and there is no direct relationship between the data of the index table of a certain physical node and the data of the physical node. Instead, the index table is only stored in the physical node according to the set allocation policy. Reference may be made to the description of the method described above for the description of the index table, and details are not repeated here.

上述した方法の説明を参照して、具体的な実現形態では、スケッチ値取得部91が第1アルゴリズムに従ってデータストリームを表すn個の第1スケッチ値を取得する方法は複数あってもよい。例えば、スケッチ値取得部91は、フィンガープリントグループ化サブ部911と取得サブ部912とを有してもよい。   With reference to the above description of the method, in a specific implementation, there may be a plurality of methods by which the sketch value acquisition unit 91 acquires n first sketch values representing a data stream according to the first algorithm. For example, the sketch value acquisition unit 91 may include a fingerprint grouping sub unit 911 and an acquisition sub unit 912.

フィンガープリントグループ化サブ部911は、データブロックのm個のデータブロックのフィンガープリントをn個の第1フィンガープリントグループにグループ化するよう構成され、各第1フィンガープリントグループは、少なくとも2つのデータブロックのフィンガープリントを有する。   The fingerprint grouping sub-unit 911 is configured to group the fingerprints of the m data blocks of the data block into n first fingerprint groups, each first fingerprint group including at least two data blocks. With a fingerprint of

取得サブ部912は、n個の第1スケッチ値を取得するため、各フィンガープリントグループを表す第1スケッチ値を取得するよう構成される。   The acquisition sub-unit 912 is configured to acquire a first sketch value representing each fingerprint group in order to acquire n first sketch values.

取得サブ部912は、具体的には、各フィンガープリントグループから最小のフィンガープリントを、当該最小のフィンガープリントが属するフィンガープリントグループを表す第1スケッチ値として選択するよう構成されてもよい。   Specifically, the acquisition sub-unit 912 may be configured to select the smallest fingerprint from each fingerprint group as the first sketch value representing the fingerprint group to which the smallest fingerprint belongs.

クラスタシステムのデータ処理装置の受信部94は更に、各第1スケッチ値をクエリのため対応する第1物理ノードに送信した後、第1物理ノードにより返されるストレージアドレスが受信されない場合、データストリームの分割を介し取得されるデータブロックを非重複データブロックとして利用し、その後に更新部96をトリガするよう構成されてもよい。   The receiving unit 94 of the data processing apparatus of the cluster system further transmits the first sketch value to the corresponding first physical node for a query, and if the storage address returned by the first physical node is not received, The data block obtained through the division may be used as a non-overlapping data block, and then the update unit 96 may be triggered.

本発明の実施例により提供される装置は、クラスタシステムのストレージノードのコントローラに設定されてもよく、上述したデータ処理方法を実行するよう構成される。全てのユニットの機能の詳細な説明について、方法の実施例における説明が参照されてもよく、詳細はここでは繰り返し説明されない。   An apparatus provided by an embodiment of the present invention may be configured in a controller of a storage node of a cluster system and is configured to execute the data processing method described above. For a detailed description of the function of all units, reference may be made to the description in the method embodiment, and details will not be repeated here.

本発明の実施例により提供されるクラスタシステムにおけるデータ処理装置を通じて、受信したデータストリームに対して重複データクエリが実行されると、各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードが、データストリームを表す第1スケッチ値に従って特定され、その後、データストリームを表す第1スケッチ値は、重複データクエリのため特定された物理ノードに送信される。重複データクエリの手順は、クラスタシステムにおけるノード数の増加により変化せず、各ノードの計算量は、クラスタシステムのノード数の増加により増加しない。   When a duplicate data query is executed on the received data stream through the data processing device in the cluster system provided by the embodiment of the present invention, the first physical corresponding to each first sketch value and in the cluster system. A node is identified according to the first sketch value representing the data stream, and then the first sketch value representing the data stream is sent to the identified physical node for the duplicate data query. The duplicate data query procedure does not change with an increase in the number of nodes in the cluster system, and the calculation amount of each node does not increase with an increase in the number of nodes in the cluster system.

クエリを介し非重複データを検出すると、クエリ部95は、非重複データを新たなデータブロックとみなし、当該新たなデータブロックを単一のインスタンスレポジトリに格納してもよい。従って、本発明の実施例は更に以下を含むものであってもよい。   When non-duplicate data is detected through a query, the query unit 95 may regard the non-duplicate data as a new data block and store the new data block in a single instance repository. Accordingly, embodiments of the present invention may further include:

ライトアドレス取得部97は、所定のストレージポリシーに従って、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択するよう構成される。   The write address acquisition unit 97 is configured to select a storage address to which a new data block and a fingerprint of the new data block are written according to a predetermined storage policy.

書き込み部98は、所定のストレージ条件が充足すると、新たなデータブロックと当該新たなデータブロックのフィンガープリントとを、選択されたストレージアドレスに対応するストレージ領域に書き込むよう構成される。   The writing unit 98 is configured to write a new data block and a fingerprint of the new data block in a storage area corresponding to the selected storage address when a predetermined storage condition is satisfied.

ライトアドレス取得部97の新たなデータブロックのストレージポリシーは複数あってもよい。例えば、ライトアドレス取得部97は、
クラスタシステムの各物理ノードのロード情報を取得するよう構成されるロード情報取得サブ部971と、
ロード情報に従って、データが移行される物理ノードを選択し、データが移行される選択された物理ノードから、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するよう構成されるアドレス選択サブ部972と、
を有する。
There may be a plurality of storage policies for new data blocks in the write address acquisition unit 97. For example, the write address acquisition unit 97
A load information acquisition sub-unit 971 configured to acquire load information of each physical node of the cluster system;
According to the load information, the physical node to which data is migrated is selected, and the storage address where the new data block and the fingerprint of the new data block are written is acquired from the selected physical node to which data is migrated An address selection sub-unit 972 configured;
Have

アドレス選択サブ部972がロード情報に従って新たなデータが書き込まれるストレージアドレスを選択する方法は複数あってもよい。例えば、クラスタシステムの全ての物理ノードの平均ロード値が第1所定閾値を超過したことが、ロード情報取得サブ部971により取得されたロード情報に従って特定されると、データが書き込まれるノードが、平均ロード値より小さいロード値の物理ノードから選択され、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスが、データが書き込まれるノードから取得され、クラスタシステムの全ての物理ノードの平均ロード値が第1所定閾値以下であるとき、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスが、現在の物理ノードから取得される。   There may be a plurality of methods by which the address selection sub-unit 972 selects a storage address to which new data is written according to the load information. For example, when it is specified according to the load information acquired by the load information acquisition sub-unit 971 that the average load value of all the physical nodes of the cluster system has exceeded the first predetermined threshold, the node to which the data is written A storage address selected from a physical node having a load value smaller than the load value and into which a new data block and a fingerprint of the new data block are written is obtained from the node to which the data is written, and all the physical nodes of the cluster system When the average load value is equal to or less than the first predetermined threshold, the storage address to which the new data block and the fingerprint of the new data block are written is acquired from the current physical node.

確かに、ライトアドレス取得部97の新たなデータブロックのストレージポリシーでは、ロード情報はまた特定されなくてもよく、アドレスは現在の物理ノードから直接選択され、ライトアドレス取得部97は、具体的には、現在の物理ノードから新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するよう構成されてもよい。   Certainly, in the storage policy of the new data block of the write address acquisition unit 97, the load information may not be specified again, the address is selected directly from the current physical node, and the write address acquisition unit 97 May be configured to obtain a storage address to which a new data block and a fingerprint of the new data block are written from the current physical node.

書き込み部98は、例えば、現在の物理ノードのキャッシュに新たなデータブロックを格納し、現在の物理ノードのキャッシュのデータが第2所定閾値に達し、所定のストレージ条件が充足されると、新たなデータブロックと当該新たなデータブロックのフィンガープリントとを選択されたストレージアドレスに対応するストレージ領域に書き込むよう構成されてもよい。   For example, the writing unit 98 stores a new data block in the cache of the current physical node. When the data in the cache of the current physical node reaches the second predetermined threshold and the predetermined storage condition is satisfied, a new data block is stored. The data block and the fingerprint of the new data block may be written to the storage area corresponding to the selected storage address.

バーチャルノードがクラスタシステムに含まれるケースについて、少なくとも1つのバーチャルノードが、クラスタシステムの物理ノードの分割を介し論理的に取得され、クラスタシステムにおける全てのバーチャルノードと全ての物理ノードとの間の対応関係(VPT)が各物理ノードに含まれ、本発明の実施例では、少なくとも1つのバーチャルノードが、前記クラスタシステムの各物理ノードの分割を介し論理的に取得され、
特定部92は、具体的には、第2アルゴリズムに従ってn個の第1スケッチ値の各第1スケッチ値に対応し、クラスタシステム内にある第1バーチャルノードを特定し、現在の物理ノードのバーチャルノードと物理ノードとの間の対応関係をクエリにすることによって、第1バーチャルノードに対応する第1物理ノードを取得するよう構成され、取得される非重複データブロックは、新たなデータブロックとして利用される。
For the case where a virtual node is included in a cluster system, at least one virtual node is logically obtained through partitioning of the physical nodes of the cluster system, and correspondence between all virtual nodes and all physical nodes in the cluster system A relationship (VPT) is included in each physical node, and in an embodiment of the present invention, at least one virtual node is logically obtained through partitioning of each physical node of the cluster system,
Specifically, the specifying unit 92 specifies the first virtual node in the cluster system corresponding to each first sketch value of the n first sketch values according to the second algorithm, and determines the virtual node of the current physical node. It is configured to acquire the first physical node corresponding to the first virtual node by using the correspondence relationship between the node and the physical node as a query, and the acquired non-overlapping data block is used as a new data block Is done.

更新部96は、具体的には、第2アルゴリズムに従って各第2スケッチ値に対応する第2バーチャルノードを第2スケッチ値により特定し、バーチャルノードと物理ノードとの間の対応関係に従って第2バーチャルノードが配置される第2物理ノードを特定し、新たなデータブロックのストレージアドレスの取得後、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を対応する第2物理ノードの第2バーチャルノードに格納するよう構成される。   Specifically, the update unit 96 specifies a second virtual node corresponding to each second sketch value according to the second algorithm by the second sketch value, and determines the second virtual node according to the correspondence between the virtual node and the physical node. Correspondence between each second sketch value and the storage address of the data block represented by each second sketch value after identifying the second physical node where the node is located and obtaining the storage address of the new data block Are stored in the second virtual node of the corresponding second physical node.

第2アルゴリズムに従ってn個の第1スケッチ値の各スケッチ値に対応し、クラスタシステム内にある第1バーチャルノードを特定する機能を実現する際、特定部92は、各第1スケッチ値に対応し、クラスタシステム内にある第1バーチャルノードを取得するため、各第1スケッチ値によるクラスタシステムの全てのバーチャルノードの個数に対するモジュロ演算を実行してもよい。   When realizing the function of identifying the first virtual node in the cluster system corresponding to each of the n first sketch values according to the second algorithm, the identifying unit 92 corresponds to each first sketch value. In order to acquire the first virtual node in the cluster system, a modulo operation may be performed on the number of all virtual nodes of the cluster system with each first sketch value.

バーチャルノードがクラスタシステムに含まれるケースについて、クラスタシステムの物理ノードのデータ移行手段が実行されると、書き込み部98は更に、データ移行状態を充足すると、移行が必要なデータを有する物理ノードの少なくとも1つのバーチャルノードをターゲット物理ノードに一体的に移行するよう構成され、更新部98は更に、現在の物理ノードの移行されるバーチャルノードと物理ノードとの間の対応関係を更新し、クラスタシステムの他の物理ノードに移行されるノードと物理ノードとの間の対応関係を更新したことを通知するよう構成される。   In the case where the virtual node is included in the cluster system, when the data migration unit of the physical node of the cluster system is executed, the writing unit 98 further satisfies at least the physical node having data that needs to be migrated when the data migration state is satisfied. The virtual node is configured to integrally move one virtual node to the target physical node, and the update unit 98 further updates the correspondence relationship between the virtual node to be migrated of the current physical node and the physical node, and It is configured to notify that a correspondence relationship between a node to be migrated to another physical node and the physical node has been updated.

データ移行条件は、ユーザにより予め設定されるか、クラスタシステムの物理ノードのキャパシティ拡張中に新たに追加された物理ノードにデータが移行される必要があることであってもよく、また、ロードバランシングのため、ロードが高い物理ノードのデータがロードが低い物理ノードに移行される。当該データ移行条件は、本発明の実施例では限定されない。   The data migration condition may be that the data needs to be migrated to a physical node set in advance by the user or newly added during the capacity expansion of the physical node of the cluster system, and the load For balancing, data on a physical node with a high load is migrated to a physical node with a low load. The data migration condition is not limited in the embodiment of the present invention.

クラスタシステムのデータ処理装置は、新たな物理ノードに移行されるバーチャルノードのシリアル番号が変更されない間、物理ノードにおけるバーチャルノードの一体的な移行を実現してもよい。インデックステーブルのスケッチ値に対応するデータストレージアドレスはバーチャルノードにおけるデータが格納される位置を表し、バーチャルノードの識別子が変更されない限り、データストレージアドレスは変更される必要はなく、関連するバーチャルノードと物理ノードとの間の対応関係が変更され、これは、ノード拡張中の処理手続を簡単化し、計算量を大きく低減する。   The data processing apparatus of the cluster system may realize integral migration of virtual nodes in the physical node while the serial number of the virtual node to be migrated to the new physical node is not changed. The data storage address corresponding to the sketch value in the index table represents the location where the data is stored in the virtual node, and unless the virtual node identifier is changed, the data storage address does not need to be changed and the associated virtual node and physical Correspondence between nodes is changed, which simplifies the processing procedure during node expansion and greatly reduces the amount of computation.

図10を参照して、本発明の実施例は更に、クラスタシステムにおけるデータ処理装置100を提供する。当該装置は、クラスタシステムのストレージノードに設定されてもよく、プロセッサ101、メモリ102、ネットワークコントローラ103及び磁気ディスクコントローラ104を有し、プロセッサ101、プライマリメモリ102、ネットワークコントローラ103及び磁気ディスクコントローラ104は、バス105を介し接続される。   Referring to FIG. 10, the embodiment of the present invention further provides a data processing apparatus 100 in a cluster system. The apparatus may be set as a storage node of a cluster system, and includes a processor 101, a memory 102, a network controller 103, and a magnetic disk controller 104. The processor 101, primary memory 102, network controller 103, and magnetic disk controller 104 are Are connected via the bus 105.

ストレージコントローラ102は、プログラム1021を格納するよう構成される。   The storage controller 102 is configured to store the program 1021.

プロセッサ101は、プライマリメモリ102のプログラム1021を実行するよう構成される。   The processor 101 is configured to execute the program 1021 of the primary memory 102.

プロセッサ101は、ネットワークコントローラ103を介しクラスタシステムの他のノードと通信し、例えば、図10の磁気ディスクなど、ローカルノードにおいて長時間データを格納可能なストレージ装置と磁気ディスクコントローラ104を介し通信する。磁気ディスクコントローラ104により制御されるストレージ装置は、磁気ディスクに限定されず、他の記憶媒体により形成される装置であってもよい。   The processor 101 communicates with other nodes of the cluster system via the network controller 103, and communicates via a magnetic disk controller 104 with a storage device that can store data for a long time in the local node, such as a magnetic disk in FIG. The storage device controlled by the magnetic disk controller 104 is not limited to a magnetic disk, and may be a device formed by another storage medium.

具体的な実現形態では、メモリ102は、メモリなどのプライマリメモリであってもよく、具体的な実現形態は本発明の実施例では限定されない。   In a specific implementation, the memory 102 may be a primary memory such as a memory, and the specific implementation is not limited in the embodiments of the present invention.

具体的には、プログラム1021は、コンピュータ処理指示を含むプログラムコードを有してもよい。   Specifically, the program 1021 may have a program code including a computer processing instruction.

プロセッサ102は、中央処理ユニットCPU又は特定用途向け集積回路ASICであってもよく、あるいは、本発明の実施例を実現するための1以上の集積回路として構成されてもよい。   The processor 102 may be a central processing unit CPU or an application specific integrated circuit ASIC, or may be configured as one or more integrated circuits for implementing embodiments of the present invention.

図9を参照して、プログラム1021は以下を含むものであってもよい。   Referring to FIG. 9, the program 1021 may include the following.

分割部90は、現在の物理ノードにより受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得するよう構成され、mは1以上の整数である。   The dividing unit 90 is configured to divide the data stream received by the current physical node into m data blocks and obtain a fingerprint of each data block, where m is an integer of 1 or more.

スケッチ値取得部91は、第1アルゴリズムに従ってデータストリームを表すn個の第1スケッチ値を取得するよう構成され、nは1以上であって、m以下の整数である。   The sketch value acquisition unit 91 is configured to acquire n first sketch values representing a data stream according to the first algorithm, where n is an integer greater than or equal to 1 and less than or equal to m.

第1スケッチ値を取得するための第1アルゴリズムについて、上述した方法の説明が参照されてもよく、詳細はここでは繰り返し説明されない。   For the first algorithm for obtaining the first sketch value, reference may be made to the description of the method described above, and details are not repeated here.

特定部92は、第2アルゴリズムに従ってn個の第1スケッチ値の各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードを特定するよう構成される。   The specifying unit 92 is configured to specify a first physical node in the cluster system corresponding to each first sketch value of the n first sketch values according to the second algorithm.

特定部92が第1物理ノードを特定する方法は多数あるかもしれない。例えば、ルート抽出及び丸め処理が、当該値がm未満になるまで、第1スケッチ値に対して実行され、対応する第1物理ノードを取得するため、最終結果が丸められる。各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードを取得するため、各第1スケッチ値によるモジュロ演算がまた、クラスタシステムの全ての物理ノードの個数に対して実行されてもよい。   There may be many ways for the identifying unit 92 to identify the first physical node. For example, route extraction and rounding is performed on the first sketch value until the value is less than m, and the final result is rounded to obtain the corresponding first physical node. In order to obtain the first physical node in the cluster system corresponding to each first sketch value, a modulo operation with each first sketch value may also be performed on the number of all physical nodes in the cluster system. Good.

本発明の実施例では、特定部92は、各第1スケッチ値に対応し、クラスタシステム内にある第1物理ノードを取得するため、クラスタシステムの全ての物理ノードの個数に対して各第1スケッチ値によるモジュロ演算を実行するよう構成される。   In the embodiment of the present invention, the identifying unit 92 obtains the first physical node in the cluster system corresponding to each first sketch value, and therefore each first node for each physical node in the cluster system. It is configured to perform a modulo operation with sketch values.

送信部93は、各第1スケッチ値をクエリのため対応する第1物理ノードに送信するよう構成される。   The transmitter 93 is configured to transmit each first sketch value to the corresponding first physical node for a query.

送信部93により送信されたクエリリクエストの受信後、クラスタシステムの他のノードは、ローカルに格納されるインデックステーブルに従って、第1スケッチ値に対応するストレージアドレスがあるかクエリする。本発明の実施例では、クラスタシステムの各物理ノード又は大部分の物理ノードは、インデックステーブルを格納し、スケッチ値と当該スケッチ値により表される格納されているデータブロックのストレージアドレスとの間の対応関係が、インデックステーブルに格納される。当該インデックステーブルは、所定のポリシーに従ってクラスタシステムの物理ノードに格納され、データブロックと当該データブロックに対応するフィンガープリント情報とが、異なるストレージアドレスによって指示されるストレージ領域に格納される。   After receiving the query request transmitted by the transmitter 93, the other nodes in the cluster system query whether there is a storage address corresponding to the first sketch value according to the index table stored locally. In an embodiment of the present invention, each physical node or most physical nodes of the cluster system stores an index table between the sketch value and the storage address of the stored data block represented by the sketch value. The correspondence relationship is stored in the index table. The index table is stored in the physical node of the cluster system according to a predetermined policy, and the data block and fingerprint information corresponding to the data block are stored in storage areas indicated by different storage addresses.

受信部94は、n個の第1スケッチ値に対応する第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、レスポンスメッセージから第1ストレージアドレスを取得する。   The receiving unit 94 receives at least one response message from the first physical node corresponding to the n first sketch values, and acquires the first storage address from the response message.

受信部94は、レスポンスメッセージから第1スケッチ値に対応するストレージアドレスを取得し、レスポンスメッセージに搬送される各ストレージアドレスのヒット数に関する統計量を収集するよう構成される統計量収集サブ部941と、統計量収集サブ部941の統計結果に従って、第1ストレージアドレスとして最大ヒット数を有するs個のストレージアドレスを選択するよう構成されるアドレス取得サブ部942とを有してもよい。ここで、sは1以上である。   The reception unit 94 obtains a storage address corresponding to the first sketch value from the response message, and collects a statistic regarding the number of hits of each storage address carried in the response message; And an address acquisition sub-unit 942 configured to select s storage addresses having the maximum number of hits as the first storage address according to the statistical result of the statistic collection sub-unit 941. Here, s is 1 or more.

クエリ部95は、第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、受信したデータストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、重複データブロックをクエリするよう構成される。取得された非重複データブロックは、新たなデータブロックとして利用される。   The query unit 95 compares the fingerprint of the data block stored in the storage area indicated by the first storage address with the fingerprint of each data block obtained through the division of the received data stream, and duplicate data Configured to query blocks. The acquired non-overlapping data block is used as a new data block.

更新部96は、新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を対応する第2物理ノードに格納するよう構成される。   The update unit 96 acquires at least one second sketch value representing a new data block, specifies a second physical node corresponding to each second sketch value according to the second algorithm, using the second sketch value, and sets each second sketch value. A correspondence relationship between the sketch value and the storage address of the data block represented by each second sketch value is configured to be stored in the corresponding second physical node.

更新部96により新たなデータブロックを表す第2スケッチ値を取得するためのアルゴリズムは、ここでは限定されないが、第1スケッチ値を取得するための第1アルゴリズムと同じであってもよい。   The algorithm for acquiring the second sketch value representing the new data block by the update unit 96 is not limited here, but may be the same as the first algorithm for acquiring the first sketch value.

各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係が、インデックステーブルの1つのインデックスエントリとして利用される。本発明の実施例では、更新部96は、所定のポリシーに従ってインデックステーブルを物理ノードに格納し、特定の物理ノードのインデックステーブルのデータと当該物理ノードのデータとの間には直接的な関係はなく、インデックステーブルのみが、設定された割当ポリシーに従って特定の物理ノードに格納される。インデックステーブルの説明については、上述した方法の説明が参照されてもよく、詳細はここでは繰り返し説明されない。   The correspondence between each second sketch value and the storage address of the data block represented by each second sketch value is used as one index entry in the index table. In the embodiment of the present invention, the update unit 96 stores the index table in the physical node according to a predetermined policy, and there is no direct relationship between the data of the index table of a specific physical node and the data of the physical node. Instead, only the index table is stored in a specific physical node according to the set allocation policy. For the description of the index table, reference may be made to the description of the method described above, and details are not repeated here.

上述した方法の説明を参照して、特定の実現形態では、スケッチ値取得部91が第1アルゴリズムに従ってデータストリームを表すn個のスケッチ値を取得する方法が複数あってもよい。例えば、スケッチ値取得部91は、フィンガープリントグループ化サブ部911と取得サブ部912とを有してもよく、フィンガープリントグループ化サブ部911は、データストリームのm個のデータブロックのフィンガープリントをn個の第1フィンガープリントグループにグループ化するよう構成され、各第1フィンガープリントグループは、少なくとも2つのデータブロックのフィンガープリントを有する。   With reference to the description of the method described above, in a specific implementation, there may be a plurality of methods by which the sketch value acquisition unit 91 acquires n sketch values representing a data stream according to the first algorithm. For example, the sketch value acquisition unit 91 may include a fingerprint grouping sub unit 911 and an acquisition sub unit 912, and the fingerprint grouping sub unit 911 obtains fingerprints of m data blocks of the data stream. It is configured to group into n first fingerprint groups, each first fingerprint group having a fingerprint of at least two data blocks.

取得サブ部912は、n個の第1スケッチ値を取得するため、各フィンガープリントグループを表す第1スケッチ値を取得するよう構成される。   The acquisition sub-unit 912 is configured to acquire a first sketch value representing each fingerprint group in order to acquire n first sketch values.

取得サブ部912は、最小のフィンガープリントが属するフィンガープリントグループを表す第1スケッチ値として、各フィンガープリントグループから最小のフィンガープリントを選択するよう構成されてもよい。   The acquisition sub-unit 912 may be configured to select the smallest fingerprint from each fingerprint group as the first sketch value representing the fingerprint group to which the smallest fingerprint belongs.

クラスタシステムのデータ処理装置の受信部94は更に、例えば、第1物理ノードによりフィードバックされるストレージアドレスが、各第1スケッチ値がクエリのため対応する第1物理ノードに送信された後に受信されない場合、非重複データブロックとしてデータストリームの分割を介し取得されるデータブロックを利用し、その後、更新部96をトリガするよう構成されてもよい。   The receiving unit 94 of the data processing apparatus of the cluster system further includes, for example, a case where the storage address fed back by the first physical node is not received after each first sketch value is transmitted to the corresponding first physical node for a query. The data block acquired through the division of the data stream as the non-overlapping data block may be used, and then the update unit 96 may be triggered.

本発明の実施例により提供される装置は、クラスタシステムのストレージノードのコントローラにおいて設定されてもよく、上述したデータ処理方法を実行するよう構成される。全てのユニットの機能の詳細な説明について、方法の実施例の説明が参照されてもよく、詳細はここでは繰り返し説明されない。   An apparatus provided by an embodiment of the present invention may be configured in a controller of a storage node of a cluster system and is configured to perform the data processing method described above. For a detailed description of the function of all units, reference may be made to the description of the method embodiment, and details will not be repeated here.

本発明の実施例により提供されるクラスタシステムのデータ処理装置を介して、受信したデータストリームに対して重複データクエリが実行されると、サンプリングされたスケッチ値が、重複データクエリのため特定された物理ノードに送信され、重複データクエリの手順は、クラスタシステムのノード数の増加により変化しない。従って、各ノードの計算量は、クラスタシステムのノード数の増加により増加しない。   When a duplicate data query is performed on the received data stream via the cluster system data processing apparatus provided by an embodiment of the present invention, the sampled sketch values are identified for the duplicate data query. The procedure of the duplicate data query transmitted to the physical node does not change with an increase in the number of nodes in the cluster system. Accordingly, the calculation amount of each node does not increase due to an increase in the number of nodes in the cluster system.

クエリを介し非重複データを検出すると、クエリ部95は、非重複データを新たなデータブロックとみなし、当該新たなデータブロックをシングルインスタンスレポジトリに格納する。このため、本発明の実施例は更に以下を含む。   When non-duplicate data is detected through the query, the query unit 95 regards the non-duplicate data as a new data block and stores the new data block in the single instance repository. For this reason, embodiments of the present invention further include:

ライトアドレス取得部97は、所定のストレージポリシーに従って、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択するよう構成される。   The write address acquisition unit 97 is configured to select a storage address to which a new data block and a fingerprint of the new data block are written according to a predetermined storage policy.

書き込み部98は、所定のストレージ条件が充足すると、新たなデータブロックと当該新たなデータブロックのフィンガープリントとを、選択されたストレージアドレスに対応するストレージ領域に書き込むよう構成される。   The writing unit 98 is configured to write a new data block and a fingerprint of the new data block in a storage area corresponding to the selected storage address when a predetermined storage condition is satisfied.

ライトアドレス取得部97の新たなデータブロックの複数のストレージポリシーがあってもよい。例えば、ライトアドレス取得部97は、
クラスタシステムの各物理ノードのロード情報を取得するよう構成されるロード情報取得サブ部971と、
ロード情報に従って、データが移行される物理ノードを選択し、データが移行される物理ノードから、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するよう構成されるアドレス選択サブ部972と、
を有する。
There may be a plurality of storage policies for new data blocks in the write address acquisition unit 97. For example, the write address acquisition unit 97
A load information acquisition sub-unit 971 configured to acquire load information of each physical node of the cluster system;
According to the load information, a physical node to which data is migrated is selected, and a storage address to which a new data block and a fingerprint of the new data block are written is obtained from the physical node to which data is migrated An address selection sub-unit 972;
Have

アドレス選択サブ部972がロード情報に従って新たなデータが書き込まれるストレージアドレスを選択する方法は複数あってもよい。例えば、ロード情報取得サブ部971により取得されるロード情報に従って、クラスタシステムの全ての物理ノードの平均ロード値が第1所定閾値を超過したことが特定されると、データが書き込まれるノードは、平均ロード値より小さいロード値の物理ノードから選択され、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスが、データが書き込まれるノードから取得され、クラスタシステムの全ての物理ノードの平均ロード値が第1所定閾値以下であるとき、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスが、現在の物理ノードから取得される。   There may be a plurality of methods by which the address selection sub-unit 972 selects a storage address to which new data is written according to the load information. For example, if it is specified that the average load value of all the physical nodes of the cluster system has exceeded the first predetermined threshold according to the load information acquired by the load information acquisition sub unit 971, the node to which data is written A storage address selected from a physical node having a load value smaller than the load value and into which a new data block and a fingerprint of the new data block are written is obtained from the node to which the data is written, and all the physical nodes of the cluster system When the average load value is equal to or less than the first predetermined threshold, the storage address to which the new data block and the fingerprint of the new data block are written is acquired from the current physical node.

確かに、ライトアドレス取得部97の新たなデータブロックのストレージポリシーでは、ロード情報はまた特定されなくてもよく、アドレスは現在の物理ノードから直接選択される。従って、ライトアドレス取得部97は、現在の物理ノードから、新たなデータブロックと当該新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するよう構成されてもよい。   Certainly, in the storage policy of the new data block of the write address acquisition unit 97, the load information may not be specified again, and the address is selected directly from the current physical node. Therefore, the write address acquisition unit 97 may be configured to acquire a storage address to which a new data block and a fingerprint of the new data block are written from the current physical node.

書き込み部98は、例えば、現在の物理ノードのキャッシュに新たなデータブロックを格納し、現在の物理ノードのキャッシュが第2所定閾値に達し、所定のストレージ条件を充足すると、新たなデータブロックと当該新たなデータブロックのフィンガープリントとを選択されたストレージアドレスに対応するストレージ領域に書き込むよう構成されてもよい。   For example, the writing unit 98 stores a new data block in the cache of the current physical node, and when the cache of the current physical node reaches the second predetermined threshold and satisfies a predetermined storage condition, The new data block fingerprint may be written to the storage area corresponding to the selected storage address.

バーチャルノードがクラスタシステムに含まれるケースについて、少なくとも1つのバーチャルノードがクラスタシステムの物理ノードの分割を介し論理的に取得され、クラスタシステムの全てのバーチャルノードと物理ノードとの間の対応関係(VPT)が各物理ノードに含まれ、本発明の実施例では、少なくとも1つのバーチャルノードが各物理ノードの分割を介し論理的に取得される。   For the case where the virtual node is included in the cluster system, at least one virtual node is logically obtained through the division of the physical node of the cluster system, and the correspondence relationship (VPT) between all the virtual nodes and the physical node of the cluster system is obtained. ) Are included in each physical node, and in an embodiment of the present invention, at least one virtual node is logically obtained through partitioning of each physical node.

特定部92は、第2アルゴリズムに従ってn個の第1スケッチ値の各第1スケッチ値に対応し、クラスタシステム内にある第1バーチャルノードを特定し、バーチャルノードと物理ノードとの間の対応関係をクエリにすることによって、第1バーチャルノードに対応する第1物理ノードを取得するよう構成され、取得される非重複データブロックは、新たなデータブロックとして利用され、
更新部96は、新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、第2アルゴリズムに従って各第2スケッチ値に対応する第2バーチャルノードを第2スケッチ値により特定し、バーチャルノードと物理ノードとの間の対応関係に従って第2バーチャルノードが配置される第2物理ノードを特定し、新たなデータブロックのストレージアドレスの取得後、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を対応する第2物理ノードの第2バーチャルノードに格納するよう構成される。
The specifying unit 92 corresponds to each first sketch value of the n first sketch values according to the second algorithm, specifies the first virtual node in the cluster system, and the correspondence between the virtual node and the physical node Is configured to acquire the first physical node corresponding to the first virtual node, and the acquired non-overlapping data block is used as a new data block,
The update unit 96 acquires at least one second sketch value representing a new data block, specifies a second virtual node corresponding to each second sketch value according to the second algorithm by the second sketch value, After specifying the second physical node where the second virtual node is arranged according to the correspondence with the physical node, and obtaining the storage address of the new data block, it is represented by each second sketch value and each second sketch value. The correspondence relationship between the storage addresses of the data blocks to be stored is stored in the second virtual node of the corresponding second physical node.

第2アルゴリズムに従ってn個の第1スケッチ値の各スケッチ値に対応し、クラスタシステム内にある第1バーチャルノードを特定する機能を実現するとき、特定部92は、各第1スケッチ値に対応し、クラスタシステム内にある第1バーチャルノードを取得するため、各第1スケッチ値によるモジュロ演算をクラスタシステムの全てのバーチャルノードの個数に対して実行してもよい。   When realizing the function of identifying the first virtual node in the cluster system corresponding to each sketch value of the n first sketch values according to the second algorithm, the identifying unit 92 corresponds to each first sketch value. In order to acquire the first virtual node in the cluster system, a modulo operation using each first sketch value may be performed on the number of all virtual nodes in the cluster system.

バーチャルノードがクラスタシステムに含まれるケースについて、クラスタシステムの物理ノードのデータ移行手段が実行されるとき、書き込み部98は更に、データ移行状態を充足すると、移行が必要なデータを有する物理ノードの少なくとも1つのバーチャルノードをターゲット物理ノードに一体的に移行するよう構成され、更新部96は更に、現在の物理ノードの移行されるバーチャルノードと物理ノードとの間の対応関係を更新し、クラスタシステムの他の物理ノードに移行されるノードと物理ノードとの間の対応関係を更新したことを通知するよう構成される。   In the case where the virtual node is included in the cluster system, when the data migration unit of the physical node of the cluster system is executed, the writing unit 98 further satisfies at least the physical node having data that needs to be migrated when the data migration state is satisfied. The virtual unit is configured to integrally move one virtual node to the target physical node, and the update unit 96 further updates the correspondence relationship between the virtual node to be migrated of the current physical node and the physical node, and It is configured to notify that a correspondence relationship between a node to be migrated to another physical node and the physical node has been updated.

データ移行条件は、ユーザにより予め設定されてもよく、クラスタシステムの物理ノードのキャパシティ拡張中にデータが新たに追加された物理ノードに移行される必要があるというものであってもよく、また、ロードバランシングのため、ロードが高い物理ノードのデータがロードが低い物理ノードに移行されるというものであってもよい。データ移行条件は本発明の実施例では限定されない。   The data migration condition may be preset by the user, may be that data needs to be migrated to the newly added physical node during capacity expansion of the physical node of the cluster system, and For load balancing, data of a physical node with a high load may be transferred to a physical node with a low load. The data migration condition is not limited in the embodiment of the present invention.

クラスタシステムのデータ処理装置は、新たな物理ノードに移行されるバーチャルノードのシリアル番号が変わらない間、物理ノードのバーチャルノードの一体的な移行を実現してもよく、インデックステーブルのスケッチ値に対応するデータストレージアドレスは、データがバーチャルノードに格納される位置を表す。従って、バーチャルノードの識別子が変更しない限り、データストレージアドレスは変更される必要はなく、関係するバーチャルノードと物理ノードとの間の対応関係のみが変更され、これは、ノード拡張中の処理手順を簡単化し、計算量を大きく低減する。   The cluster system's data processing device may realize integrated migration of the virtual node of the physical node while the serial number of the virtual node to be migrated to the new physical node does not change, corresponding to the sketch value of the index table The data storage address that represents the location where the data is stored in the virtual node. Therefore, as long as the virtual node identifier does not change, the data storage address does not need to be changed, only the correspondence between the virtual node and the physical node concerned is changed. Simplify and greatly reduce the amount of computation.

本発明の実施例は更に、データ処理のためのコンピュータプログラムを提供し、当該コンピュータプログラムは、プログラムコードを格納するコンピュータ可読記憶媒体を有し、プログラムコードに含まれる命令は、
現在の物理ノードにより受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得し、第1アルゴリズムに従って前記データストリームを表すn個の第1スケッチ値を取得するステップであって、mは1以上の整数であり、nは1以上であって、m以下の整数である、取得するステップと、
第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定し、各第1スケッチ値をクエリのため前記対応する第1物理ノードに送信するステップと、
前記n個の第1スケッチ値に対応する第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、前記レスポンスメッセージから第1ストレージアドレスを取得するステップと、
前記第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、前記データストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、重複データブロックをクエリするステップとであって、取得された非重複データブロックが新たなデータブロックとして利用される、クエリするステップと、
前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、前記第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを前記第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードに格納するステップと、
を実行するのに利用される。
Embodiments of the present invention further provide a computer program for data processing, the computer program having a computer readable storage medium storing program code, the instructions included in the program code being:
Dividing the data stream received by the current physical node into m data blocks, obtaining a fingerprint of each data block, and obtaining n first sketch values representing the data stream according to a first algorithm Where m is an integer greater than or equal to 1, n is greater than or equal to 1 and is an integer less than or equal to m, and
Corresponding to each first sketch value of the n first sketch values according to a second algorithm, identifying a first physical node in the cluster system, and assigning each first sketch value to the corresponding first for querying Sending to the physical node;
Receiving at least one response message from a first physical node corresponding to the n first sketch values and obtaining a first storage address from the response message;
Comparing the fingerprint of the data block stored in the storage area indicated by the first storage address with the fingerprint of each data block obtained through the division of the data stream, and querying the duplicate data block A querying step in which the obtained non-overlapping data block is used as a new data block;
Obtaining at least one second sketch value representing the new data block, identifying a second physical node corresponding to each second sketch value according to the second algorithm by the second sketch value, and each second sketch value; Storing a corresponding relationship between the storage address of the data block represented by each second sketch value in the corresponding second physical node;
Used to execute

本発明の実施例により提供されるデータ処理のためのコンピュータプログラムは、プログラムコードを格納するコンピュータ可読記憶媒体を有し、プログラムコードに含まれる命令は、上述した方法の実施例の方法を実行するのに利用されてもよく、具体的な実現形態について、方法の実施例が参照されてもよく、詳細はここでは繰り返し説明されない。   A computer program for data processing provided by an embodiment of the present invention has a computer readable storage medium storing program code, and instructions included in the program code perform the method of the above-described method embodiment. For specific implementations, reference may be made to method examples, and details are not repeated here.

便宜上及び説明の簡単化のため、上述したシステム、装置及びユニットの具体的な作業処理について、方法の実施例の対応する処理が参照されてもよく、詳細はここでは繰り返し説明されない。   For convenience and for simplicity of description, reference may be made to the corresponding processes of the method embodiments for the specific work processes of the systems, devices and units described above, and details are not repeated here.

本出願に提供される複数の実施例では、開示されたシステム、装置及び方法は他の方法により実現されてもよいことが理解されるべきである。例えば、ユニットの分割は単に一種の論理機能の分割であり、実際の実現形態では他の分割方法があってもよい。例えば、複数のユニット又はコンポーネントが他のシステムに合成又は統合されてもよいし、あるいは、一部の特徴は無視又は実行されなくてもよい。更に、図示又は説明された相互の結合、直接的な結合又は通信接続は、いくつかの通信インタフェースを介し実現されてもよい。装置又はユニットの間の間接的な結合又は通信接続は、電子的、機械的又は他の形態により実現されてもよい。   It should be understood that in the embodiments provided in this application, the disclosed system, apparatus and method may be implemented in other ways. For example, the unit division is merely a kind of logical function division, and there may be other division methods in the actual implementation. For example, multiple units or components may be combined or integrated into other systems, or some features may not be ignored or performed. Furthermore, the mutual coupling, direct coupling or communication connection shown or described may be realized via several communication interfaces. Indirect coupling or communication connections between devices or units may be realized electronically, mechanically or in other forms.

別個のパーツとして説明されるユニットは、物理的に分離されていてもよいし又はそうでなくてもよく、ユニットとして示されるパーツは物理的ユニットであってもよいし、そうでなくてもよく、1つのポジションに配置されてもよいし、あるいは、複数のネットワークユニットに分散されてもよい。ユニットの一部又は全ては、実施例の手段の課題を達成するための実際のニーズに従って選択されてもよい。   A unit described as a separate part may or may not be physically separated, and a part shown as a unit may or may not be a physical unit. It may be arranged at one position, or may be distributed over a plurality of network units. Some or all of the units may be selected according to the actual needs to achieve the task of the means of the embodiments.

更に、本発明の実施例の機能部は1つの処理部に一体化されてもよく、各部はまた物理的に単独で存在してもよく、2つ以上のユニットがまた1つのユニットに統合される。   Furthermore, the functional units of the embodiments of the present invention may be integrated into one processing unit, each unit may also be physically present alone, and two or more units may also be integrated into one unit. The

機能がソフトウェア機能部の形態で実現され、独立した製品として販売又は利用されるとき、これらの機能はコンピュータ可読記憶媒体に格納されてもよい。このような理解に基づき、実質的に又は部分的に従来技術に貢献する本発明の技術的手段又は当該技術的手段の一部は、ソフトウェアプロダクトの形態により実現されてもよい。コンピュータソフトウェアプロダクトは、記憶媒体に格納され、本発明の実施例に説明される方法のステップの全て又は一部を実行するようコンピュータ装置(パーソナルコンピュータ、サーバ、ネットワーク装置などであってもよい)に指示するための複数の命令を含む。上述した記憶媒体は、USBフラッシュディスク、着脱可能なハードディスク、ROM(Read Only Memory)、RAM(Random Access Memory)、磁気ディスク又は光ディスクなど、プログラムコードを格納可能な何れかの媒体を含む。   When functions are implemented in the form of software functions and sold or used as independent products, these functions may be stored on a computer-readable storage medium. Based on this understanding, the technical means of the present invention or a part of the technical means contributing to the prior art substantially or partially may be realized in the form of a software product. The computer software product is stored in a storage medium and stored on a computer device (which may be a personal computer, server, network device, etc.) to perform all or part of the method steps described in the embodiments of the present invention. Contains a plurality of instructions for indicating. The above-described storage medium includes any medium that can store program codes, such as a USB flash disk, a removable hard disk, a ROM (Read Only Memory), a RAM (Random Access Memory), a magnetic disk, or an optical disk.

上記説明は、本発明の単なる特定の実施例であり、本発明の保護範囲を限定することを意図していない。本発明に開示される技術的範囲内において当業者により容易に理解される何れかの変形又は置換は、本発明の保護範囲内に属する。従って、本発明の保護範囲は、請求項の保護範囲に従う。   The above descriptions are merely specific embodiments of the present invention, and are not intended to limit the protection scope of the present invention. Any variation or replacement readily figured out by a person skilled in the art within the technical scope disclosed in the present invention shall fall within the protection scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims (30)

クラスタシステムにおけるデータ処理方法であって、
現在の物理ノードが、受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得し、第1アルゴリズムに従って前記データストリームを表すn個の第1スケッチ値を取得するステップであって、mは1以上の整数であり、nは1以上であって、m以下の整数である、取得するステップと、
第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定し、各第1スケッチ値をクエリのため前記対応する第1物理ノードに送信するステップと、
前記n個の第1スケッチ値に対応する第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、前記レスポンスメッセージから第1ストレージアドレスを取得するステップと、
前記第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、前記データストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、新たなデータブロックとして非重複データブロックを取得するステップと、
前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、前記第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを前記第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードに格納するステップと、
を有する方法。
A data processing method in a cluster system,
The current physical node divides the received data stream into m data blocks, obtains a fingerprint of each data block, and obtains n first sketch values representing the data stream according to a first algorithm. Obtaining m, wherein m is an integer greater than or equal to 1 and n is greater than or equal to 1 and less than or equal to m;
Corresponding to each first sketch value of the n first sketch values according to a second algorithm, identifying a first physical node in the cluster system, and assigning each first sketch value to the corresponding first for querying Sending to the physical node;
Receiving at least one response message from a first physical node corresponding to the n first sketch values and obtaining a first storage address from the response message;
The fingerprint of the data block stored in the storage area indicated by the first storage address is compared with the fingerprint of each data block obtained through the division of the data stream, and non-overlapping as a new data block Obtaining a data block;
Obtaining at least one second sketch value representing the new data block, identifying a second physical node corresponding to each second sketch value according to the second algorithm by the second sketch value, and each second sketch value; Storing a corresponding relationship between the storage address of the data block represented by each second sketch value in the corresponding second physical node;
Having a method.
少なくとも1つのバーチャルノードが、前記クラスタシステムの各物理ノードの分割を介し取得され、前記クラスタシステムにおけるバーチャルノードと物理ノードとの間の対応関係が、各物理ノードに含まれ、
前記第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定するステップは、
前記第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1バーチャルノードを特定し、バーチャルノードと物理ノードとの間の対応関係をクエリにすることによって、前記第1バーチャルノードに対応する第1物理ノードを取得するステップを有し、
前記第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを前記第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードに格納するステップは、
前記第2アルゴリズムに従って各第2スケッチ値に対応する第2バーチャルノードを前記第2スケッチ値により特定し、バーチャルノードと物理ノードとの間の対応関係に従って前記第2バーチャルノードが配置される第2物理ノードを特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードの第2バーチャルノードに格納するステップを有する、請求項1記載の方法。
At least one virtual node is acquired and through the division of each physical node of the cluster system, correspondence between the virtual node and a physical node in the cluster system, included in each physical node,
Identifying a first physical node in the cluster system corresponding to each first sketch value of the n first sketch values according to the second algorithm;
Corresponding to each of the first sketch values of the n first sketch values according to the second algorithm, the first virtual node in the cluster system is specified, and the correspondence relationship between the virtual node and the physical node is queried. To obtain a first physical node corresponding to the first virtual node,
According to the second algorithm, a second physical node corresponding to each second sketch value is specified by the second sketch value, and between each second sketch value and the storage address of the data block represented by each second sketch value. In the corresponding second physical node,
A second virtual node corresponding to each second sketch value is specified by the second sketch value according to the second algorithm, and the second virtual node is arranged according to a correspondence relationship between the virtual node and the physical node. Identifying a physical node and storing a correspondence relationship between each second sketch value and a storage address of a data block represented by each second sketch value in a second virtual node of the corresponding second physical node; The method of claim 1, comprising:
前記第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定するステップは、
各第1スケッチ値に対応し、前記クラスタシステム内にある前記第1バーチャルノードを取得するため、前記クラスタシステムの全てのバーチャルノードの個数に対して各第1スケッチ値によるモジュロ演算を実行するステップを有する、請求項2記載の方法。
Identifying a first physical node in the cluster system corresponding to each first sketch value of the n first sketch values according to the second algorithm;
Performing a modulo operation with each first sketch value on the number of all virtual nodes in the cluster system to obtain the first virtual node in the cluster system corresponding to each first sketch value The method of claim 2 comprising:
データ移行条件を充足すると、移行が必要なデータを有する物理ノードの少なくとも1つのバーチャルノードをターゲット物理ノードに一体的に移行するステップと、
前記現在の物理ノードの移行されるバーチャルノードと物理ノードとの間の対応関係を更新し、前記クラスタシステムの他の物理ノードに前記移行されるノードと物理ノードとの間の対応関係を更新したことを通知するステップと、
を更に有する、請求項2又は3記載の方法。
When the data migration condition is satisfied, the at least one virtual node of the physical node having data that needs to be migrated is integrally migrated to the target physical node;
The correspondence relationship between the virtual node and the physical node to be migrated of the current physical node is updated, and the correspondence relationship between the node to be migrated and the physical node is updated to another physical node of the cluster system. A step of notifying
The method according to claim 2, further comprising:
前記第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定するステップは、
各第1スケッチ値に対応し、前記クラスタシステム内にある前記第1物理ノードを取得するため、前記クラスタシステムの全ての物理ノードの個数に対して各第1スケッチ値によるモジュロ演算を実行するステップを有する、請求項1記載の方法。
Identifying a first physical node in the cluster system corresponding to each first sketch value of the n first sketch values according to the second algorithm;
Performing a modulo operation with each first sketch value on the number of all physical nodes in the cluster system to obtain the first physical node in the cluster system corresponding to each first sketch value The method of claim 1, comprising:
前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得するステップは、前記第1アルゴリズムに従って前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得するステップを有する、請求項1乃至5何れか一項記載の方法。   2. Obtaining at least one second sketch value representing the new data block comprises obtaining at least one second sketch value representing the new data block according to the first algorithm. The method according to any one of 5. 前記第1アルゴリズムに従って前記データストリームを表すn個の第1スケッチ値を取得するステップは、
前記データブロックのm個のデータブロックのフィンガープリントをn個の第1フィンガープリントグループにグループ化するステップであって、各第1フィンガープリントグループは、少なくとも2つのデータブロックのフィンガープリントを有する、グループ化するステップと、
前記n個の第1スケッチ値を取得するため、各フィンガープリントグループを表す第1スケッチ値を取得するステップと、
を有する、請求項1乃至6何れか一項記載の方法。
Obtaining n first sketch values representing the data stream according to the first algorithm;
Grouping fingerprints of m data blocks of the data block into n first fingerprint groups, each first fingerprint group having a fingerprint of at least two data blocks Steps to
Obtaining a first sketch value representing each fingerprint group to obtain the n first sketch values;
The method according to claim 1, comprising:
前記レスポンスメッセージから第1ストレージアドレスを取得するステップは、
前記レスポンスメッセージから前記第1スケッチ値に対応するストレージアドレスを取得し、前記レスポンスメッセージに搬送される各ストレージアドレスのヒット数に関する統計量を収集し、前記第1ストレージアドレスとして最大ヒット数を有するs個のストレージアドレスを選択するステップを有し、sは1以上である、請求項1乃至5何れか一項記載の方法。
The step of acquiring the first storage address from the response message includes:
A storage address corresponding to the first sketch value is acquired from the response message, statistics regarding the number of hits of each storage address conveyed in the response message are collected, and s having the maximum number of hits as the first storage address 6. The method according to any one of claims 1 to 5, comprising the step of selecting storage addresses, wherein s is one or more.
所定のストレージ条件が充足すると、所定のストレージポリシーに従って前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択し、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとを前記選択されたストレージアドレスにより指示されるストレージ領域に書き込むステップを更に有する、請求項1乃至5何れか一項記載の方法。   When a predetermined storage condition is satisfied, a storage address to which the new data block and the fingerprint of the new data block are written is selected according to a predetermined storage policy, and the finger of the new data block and the new data block are selected. 6. The method according to claim 1, further comprising the step of writing a print in a storage area indicated by the selected storage address. 前記所定のストレージポリシーに従って前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択するステップは、
前記クラスタシステムの物理ノードのロード情報を取得し、前記ロード情報に従ってデータが移行される物理ノードを選択し、前記データが移行される物理ノードから、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するステップを有する、請求項9記載の方法。
Selecting a storage address to which the new data block and the fingerprint of the new data block are written according to the predetermined storage policy;
Obtaining load information of physical nodes of the cluster system, selecting a physical node to which data is migrated according to the load information, and selecting the new data block and the new data block from the physical node to which the data is migrated The method according to claim 9, further comprising obtaining a storage address where the fingerprint is written.
前記クラスタシステムの物理ノードのロード情報を取得し、前記ロード情報に従ってデータが移行される物理ノードを選択し、前記データが移行される物理ノードから、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するステップは、
前記クラスタシステムの物理ノードのロード情報を取得し、前記クラスタシステムの全ての物理ノードの平均ロード値が第1所定閾値を超過すると、前記平均ロード値より小さなロード値を有する物理ノードから、データが移行されるノードを選択し、前記データが移行されるノードから、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するステップと、
前記クラスタシステムの全ての物理ノードの平均ロード値が前記第1所定閾値以下であるとき、前記現在の物理ノードから、前記新たなデータブロックと前記新たなデータブロックとのフィンガープリントとが書き込まれるストレージアドレスとを取得するステップと、
を有する、請求項10記載の方法。
Obtaining load information of physical nodes of the cluster system, selecting a physical node to which data is migrated according to the load information, and selecting the new data block and the new data block from the physical node to which the data is migrated The step of obtaining the storage address where the fingerprint is written is as follows:
When the load information of the physical nodes of the cluster system is acquired and the average load value of all the physical nodes of the cluster system exceeds a first predetermined threshold, data is transferred from the physical node having a load value smaller than the average load value. Selecting a node to be migrated and obtaining a storage address to which the new data block and the fingerprint of the new data block are written from the node to which the data is migrated;
Storage in which the new data block and the fingerprint of the new data block are written from the current physical node when the average load value of all the physical nodes of the cluster system is less than or equal to the first predetermined threshold Obtaining an address;
The method of claim 10, comprising:
前記所定のストレージポリシーに従って前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択するステップは、
前記現在の物理ノードから、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するステップを有する、請求項9記載の方法。
Selecting a storage address to which the new data block and the fingerprint of the new data block are written according to the predetermined storage policy;
10. The method of claim 9, comprising obtaining a storage address to which the new data block and the fingerprint of the new data block are written from the current physical node.
前記所定のストレージ条件が充足することは、前記新たなデータブロックが前記現在の物理ノードのキャッシュに格納されることを含み、
前記現在の物理ノードのキャッシュのデータブロックの数が第2所定閾値に達すると、前記所定のストレージ条件が充足される、請求項9記載の方法。
Satisfying the predetermined storage condition includes storing the new data block in a cache of the current physical node;
The method of claim 9, wherein the predetermined storage condition is satisfied when a number of data blocks in the cache of the current physical node reaches a second predetermined threshold.
前記各フィンガープリントグループを表す第1スケッチ値を取得するステップは、各フィンガープリントグループから最小のフィンガープリントを、前記最小のフィンガープリントが属するフィンガープリントグループを表す第1スケッチ値として選択するステップを有する、請求項7記載の方法。   Obtaining a first sketch value representing each fingerprint group comprises selecting a smallest fingerprint from each fingerprint group as a first sketch value representing the fingerprint group to which the smallest fingerprint belongs. The method of claim 7. 前記第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、前記データストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、新たなデータブロックとして非重複データブロックを取得するステップは、
前記第1ストレージアドレスにより指示されるストレージ領域のデータブロックのフィンガープリントを前記現在の物理ノードにロードし、前記データストリームの分割を介し取得されたm個のデータブロックのフィンガープリントとの比較を実行し、前記新たなデータブロックとして前記非重複データブロックを取得するステップを有する、請求項1乃至14何れか一項記載の方法。
The fingerprint of the data block stored in the storage area indicated by the first storage address is compared with the fingerprint of each data block obtained through the division of the data stream, and non-overlapping as a new data block The step to get the data block is
Load the fingerprint of the data block in the storage area pointed to by the first storage address into the current physical node and perform comparison with the fingerprint of the m data blocks obtained through the division of the data stream The method according to claim 1, further comprising: obtaining the non-overlapping data block as the new data block.
前記第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、前記データストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、新たなデータブロックとして非重複データブロックを取得するステップは、
前記第1ストレージアドレスにより指示される物理ノードにクエリ指示を送信し、前記第1ストレージアドレスにより指示される前記物理ノードにより返されたクエリ結果を受信するステップを有し、
前記データストリームの分割を介し取得されるm個のデータブロックのフィンガープリントは、前記クエリ指示により搬送される、請求項1乃至14何れか一項記載の方法。
The fingerprint of the data block stored in the storage area indicated by the first storage address is compared with the fingerprint of each data block obtained through the division of the data stream, and non-overlapping as a new data block The step to get the data block is
Transmitting a query instruction to the physical node indicated by the first storage address and receiving a query result returned by the physical node indicated by the first storage address;
15. A method according to any one of the preceding claims, wherein a fingerprint of m data blocks obtained via the division of the data stream is carried by the query indication.
各第1スケッチ値をクエリのため前記対応する第1物理ノードに送信した後、当該方法は更に、前記n個の第1スケッチ値に対応する前記第1物理ノードにより返されるストレージアドレスが受信されない場合、前記データストリームの分割を介し取得されるデータブロックを非重複データブロックとして利用するステップを有する、請求項1乃至14何れか一項記載の方法。   After sending each first sketch value to the corresponding first physical node for a query, the method further does not receive a storage address returned by the first physical node corresponding to the n first sketch values. 15. A method as claimed in any preceding claim, comprising using data blocks obtained via division of the data stream as non-overlapping data blocks. クラスタシステムにおけるデータ処理装置であって、
現在の物理ノードにより受信されたデータストリームをm個のデータブロックに分割し、各データブロックのフィンガープリントを取得する分割部であって、mは1以上の整数である、分割部と、
第1アルゴリズムに従って前記データストリームを表すn個の第1スケッチ値を取得するスケッチ値取得部であって、nは1以上であって、m以下の整数である、スケッチ値取得部と、
第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1物理ノードを特定する特定部と、
各第1スケッチ値をクエリのため前記対応する第1物理ノードに送信する送信部と、
前記n個の第1スケッチ値に対応する第1物理ノードから少なくとも1つのレスポンスメッセージを受信し、前記レスポンスメッセージから第1ストレージアドレスを取得する受信部と、
前記第1ストレージアドレスにより指示されるストレージ領域に格納されるデータブロックのフィンガープリントと、前記データストリームの分割を介し取得された各データブロックのフィンガープリントとを比較し、新たなデータブロックとして非重複データブロックを取得するクエリ部と、
前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、前記第2アルゴリズムに従って各第2スケッチ値に対応する第2物理ノードを前記第2スケッチ値により特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードに格納する更新部と、
を有する装置。
A data processing apparatus in a cluster system,
A dividing unit that divides a data stream received by a current physical node into m data blocks and obtains a fingerprint of each data block, wherein m is an integer greater than or equal to 1,
A sketch value acquisition unit for acquiring n first sketch values representing the data stream according to a first algorithm, wherein n is an integer not less than 1 and not more than m;
A specifying unit for specifying a first physical node in the cluster system corresponding to each of the first sketch values of the n first sketch values according to a second algorithm;
A transmitter for transmitting each first sketch value to the corresponding first physical node for a query;
A receiving unit that receives at least one response message from a first physical node corresponding to the n first sketch values, and acquires a first storage address from the response message;
The fingerprint of the data block stored in the storage area indicated by the first storage address is compared with the fingerprint of each data block obtained through the division of the data stream, and non-overlapping as a new data block A query part to obtain a data block;
Obtaining at least one second sketch value representing the new data block, identifying a second physical node corresponding to each second sketch value according to the second algorithm by the second sketch value, and each second sketch value; And an update unit that stores a corresponding relationship between the storage address of the data block represented by each second sketch value in the corresponding second physical node;
Having a device.
所定のストレージポリシーに従って、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを選択するよう構成されるライトアドレス取得部と、
所定のストレージ条件が充足すると、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとを、前記選択されたストレージアドレスに対応するストレージ領域に書き込むよう構成される書き込み部と、
を更に有する、請求項18記載の装置。
A write address acquisition unit configured to select a storage address to which the new data block and the fingerprint of the new data block are written according to a predetermined storage policy;
A write unit configured to write the new data block and the fingerprint of the new data block to a storage area corresponding to the selected storage address when a predetermined storage condition is satisfied;
The apparatus of claim 18, further comprising:
少なくとも1つのバーチャルノードが、前記クラスタシステムの各物理ノードの分割を介し取得され、前記クラスタシステムにおけるバーチャルノードと物理ノードとの間の対応関係が、各物理ノードに含まれ、
前記特定部は、前記第2アルゴリズムに従って前記n個の第1スケッチ値の各第1スケッチ値に対応し、前記クラスタシステム内にある第1バーチャルノードを特定し、バーチャルノードと物理ノードとの間の対応関係をクエリにすることによって、前記第1バーチャルノードに対応する第1物理ノードを取得するよう構成され、
前記クエリ部により取得される非重複データブロックは、前記新たなデータブロックとして利用され、
前記更新部は、前記新たなデータブロックを表す少なくとも1つの第2スケッチ値を取得し、前記第2アルゴリズムに従って各第2スケッチ値に対応する第2バーチャルノードを前記第2スケッチ値により特定し、バーチャルノードと物理ノードとの間の対応関係に従って前記第2バーチャルノードが配置される第2物理ノードを特定し、各第2スケッチ値と各第2スケッチ値により表されるデータブロックのストレージアドレスとの間の対応関係を前記対応する第2物理ノードの第2バーチャルノードに格納するよう構成される、請求項19記載の装置。
At least one virtual node is acquired and through the division of each physical node of the cluster system, correspondence between the virtual node and a physical node in the cluster system, included in each physical node,
The specifying unit corresponds to each first sketch value of the n first sketch values according to the second algorithm, specifies a first virtual node in the cluster system, and between the virtual node and the physical node. A first physical node corresponding to the first virtual node is obtained by making the correspondence relationship of
The non-overlapping data block acquired by the query unit is used as the new data block,
The update unit acquires at least one second sketch value representing the new data block, specifies a second virtual node corresponding to each second sketch value by the second sketch value according to the second algorithm, A second physical node on which the second virtual node is arranged according to a correspondence relationship between the virtual node and the physical node, and each second sketch value and a storage address of a data block represented by each second sketch value; 20. The apparatus of claim 19, wherein the apparatus is configured to store a correspondence relationship between a second virtual node of the corresponding second physical node.
前記更新部は更に、データ移行条件を充足すると、移行が必要なデータを有する物理ノードの少なくとも1つのバーチャルノードをターゲット物理ノードに一体的に移行するよう構成され、
前記更新部は更に、前記現在の物理ノードの移行されるバーチャルノードと物理ノードとの間の対応関係を更新し、前記クラスタシステムの他の物理ノードに前記移行されるノードと物理ノードとの間の対応関係を更新したことを通知するよう構成される、請求項20記載の装置。
The update unit is further configured to integrally migrate at least one virtual node of physical nodes having data that needs to be migrated to the target physical node when a data migration condition is satisfied,
The update unit further updates a correspondence relationship between the virtual node to be migrated of the current physical node and the physical node, and the node between the node to be migrated to another physical node of the cluster system and the physical node. 21. The apparatus of claim 20, wherein the apparatus is configured to notify that a correspondence relationship has been updated.
前記特定部は、各第1スケッチ値に対応し、前記クラスタシステム内にある前記第1物理ノードを取得するため、前記クラスタシステムの全ての物理ノードの個数に対して各第1スケッチ値によるモジュロ演算を実行するよう構成される、請求項18記載の装置。   The specifying unit corresponds to each first sketch value, and acquires the first physical node in the cluster system, so that the number of all physical nodes in the cluster system is modulo by the first sketch value. The apparatus of claim 18, wherein the apparatus is configured to perform an operation. 前記スケッチ値取得部は、
前記データストリームのm個のデータブロックのフィンガープリントをn個の第1フィンガープリントグループにグループ化するよう構成されるフィンガープリントグループ化サブ部であって、各第1フィンガープリントグループは、少なくとも2つのデータブロックのフィンガープリントを有する、フィンガープリントグループ化サブ部と、
前記n個の第1スケッチ値を取得するため、各フィンガープリントグループを表す第1スケッチ値を取得するよう構成される取得サブ部と、
を有する、請求項18乃至21何れか一項記載の装置。
The sketch value acquisition unit
A fingerprint grouping sub-unit configured to group fingerprints of m data blocks of the data stream into n first fingerprint groups, each first fingerprint group comprising at least two A fingerprint grouping sub-part having a fingerprint of the data block;
An acquisition sub-unit configured to acquire a first sketch value representing each fingerprint group to acquire the n first sketch values;
The apparatus according to claim 18, comprising:
前記受信部は、
前記レスポンスメッセージから前記第1スケッチ値に対応するストレージアドレスを取得し、前記レスポンスメッセージに搬送される各ストレージアドレスのヒット数に関する統計量を収集するよう構成される統計量収集サブ部と、
前記統計量収集サブ部の統計結果に従って、前記第1ストレージアドレスとして最大ヒット数を有するs個のストレージアドレスを選択するよう構成されるアドレス取得サブ部であって、sは1以上である、アドレス取得サブ部と、
を有する、請求項18乃至21何れか一項記載の装置。
The receiver is
A statistics collection sub-unit configured to obtain a storage address corresponding to the first sketch value from the response message and collect statistics about the number of hits of each storage address carried in the response message;
An address acquisition sub-unit configured to select s storage addresses having the maximum number of hits as the first storage address according to a statistical result of the statistic collection sub-unit, wherein s is 1 or more; An acquisition sub-part,
The apparatus according to claim 18, comprising:
前記ライトアドレス取得部は、
前記クラスタシステムの物理ノードのロード情報を取得するよう構成されるロード情報取得サブ部と、
前記ロード情報取得サブ部により取得されたロード情報に従って、データが移行される物理ノードを選択し、前記データが移行される物理ノードから、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するよう構成されるアドレス選択サブ部と、
を有する、請求項19乃至21何れか一項記載の装置。
The write address acquisition unit
A load information acquisition sub-unit configured to acquire load information of physical nodes of the cluster system;
In accordance with the load information acquired by the load information acquisition sub-unit, the physical node to which data is migrated is selected, and the new data block and the fingerprint of the new data block are selected from the physical node to which the data is migrated. An address selection sub-part configured to obtain a storage address to which is written;
The apparatus according to claim 19, comprising:
前記ライトアドレス取得部は、前記現在の物理ノードから、前記新たなデータブロックと前記新たなデータブロックのフィンガープリントとが書き込まれるストレージアドレスを取得するよう構成される、請求項19乃至21何れか一項記載の装置。   The write address acquisition unit is configured to acquire, from the current physical node, a storage address to which the new data block and the fingerprint of the new data block are written. The device according to item. 前記更新部は、前記新たなデータブロックを前記現在の物理ノードのキャッシュに格納するよう構成され、前記現在の物理ノードのキャッシュのデータブロックの数が第2所定閾値に達すると、前記所定のストレージ条件が充足される、請求項25記載の装置。 The update unit is configured configured to store the new data block in the cache of the current physical node, the number of cache data blocks in the current physical node reaches Then the second predetermined threshold value, said predetermined storage conditions Ru is satisfied, claim 25 apparatus according. 前記受信部は更に、各第1スケッチ値をクエリのため前記対応する第1物理ノードに送信した後、前記n個の第1スケッチ値に対応する前記第1物理ノードにより返されるストレージアドレスが受信されない場合、前記データストリームの分割を介し取得されるデータブロックを非重複データブロックとして利用するよう構成される、請求項18乃至27何れか一項記載の装置。   The receiving unit further receives a storage address returned by the first physical node corresponding to the n first sketch values after transmitting each first sketch value to the corresponding first physical node for a query. 28. An apparatus as claimed in any one of claims 18 to 27, wherein if not, the apparatus is configured to utilize a data block obtained via division of the data stream as a non-overlapping data block. クラスタシステムにおけるデータ処理装置であって、
プロセッサと、
メモリと、
バスと、
を有し、
前記プロセッサと前記メモリとは、前記バスを介し互いに通信し、
前記メモリは、プログラムを格納するよう構成され、
前記プロセッサは、前記メモリのプログラムを実行し、請求項1乃至17何れか一項記載の方法を実行するよう構成される装置。
A data processing apparatus in a cluster system,
A processor;
Memory,
With bus,
Have
The processor and the memory communicate with each other via the bus;
The memory is configured to store a program;
The apparatus configured to execute the program of the memory and to execute the method according to claim 1.
請求項1乃至17何れか一項記載の方法をコンピュータに実行させるためのコンピュータプログラム。   A computer program for causing a computer to execute the method according to claim 1.
JP2015200267A 2015-10-08 2015-10-08 Cluster system data processing method and apparatus Active JP6163187B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015200267A JP6163187B2 (en) 2015-10-08 2015-10-08 Cluster system data processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015200267A JP6163187B2 (en) 2015-10-08 2015-10-08 Cluster system data processing method and apparatus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014551502A Division JP5824167B2 (en) 2012-12-12 2012-12-12 Cluster system data processing method and apparatus

Publications (2)

Publication Number Publication Date
JP2016027496A JP2016027496A (en) 2016-02-18
JP6163187B2 true JP6163187B2 (en) 2017-07-12

Family

ID=55352826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015200267A Active JP6163187B2 (en) 2015-10-08 2015-10-08 Cluster system data processing method and apparatus

Country Status (1)

Country Link
JP (1) JP6163187B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051250A (en) * 2021-03-24 2021-06-29 北京金山云网络技术有限公司 Database cluster capacity expansion method and device, electronic equipment and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US8751462B2 (en) * 2008-11-14 2014-06-10 Emc Corporation Delta compression after identity deduplication
CA2808752C (en) * 2010-08-31 2016-06-28 Nec Corporation Storage system

Also Published As

Publication number Publication date
JP2016027496A (en) 2016-02-18

Similar Documents

Publication Publication Date Title
JP5824167B2 (en) Cluster system data processing method and apparatus
US10261693B1 (en) Storage system with decoupling and reordering of logical and physical capacity removal
US10877680B2 (en) Data processing method and apparatus
JP6537214B2 (en) Deduplication method and storage device
US10298715B2 (en) Distributed processing system, task processing method, and storage medium
CN102782643A (en) Index searching using a bloom filter
CN106407224B (en) The method and apparatus of file compacting in a kind of key assignments storage system
CN108090125B (en) Non-query type repeated data deleting method and device
WO2015089728A1 (en) Repeated data processing method, device, storage controller and storage node
WO2016006050A1 (en) Storage system and memory control method
CN105917304A (en) Apparatus and method for de-duplication of data
JP6163187B2 (en) Cluster system data processing method and apparatus
CN108093024B (en) Classified routing method and device based on data frequency
EP3635529B1 (en) Deduplicating distributed erasure coded objects
CN106527960B (en) Multi-storage-disk load management method and device, file system and storage network system
CN111125011A (en) File processing method, system and related equipment
CN106021460B (en) Data processing method and device
Shen et al. A Distributed Caching Scheme for Improving Read-write Performance of HBase
Xi et al. An efficient hierarchical data placement algorithm for massive spatial data storage systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170313

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: 20170523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170616

R150 Certificate of patent or registration of utility model

Ref document number: 6163187

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250