JP2013178677A - Distributed processing system, dispatcher, and distributed processing management device - Google Patents
Distributed processing system, dispatcher, and distributed processing management device Download PDFInfo
- Publication number
- JP2013178677A JP2013178677A JP2012042483A JP2012042483A JP2013178677A JP 2013178677 A JP2013178677 A JP 2013178677A JP 2012042483 A JP2012042483 A JP 2012042483A JP 2012042483 A JP2012042483 A JP 2012042483A JP 2013178677 A JP2013178677 A JP 2013178677A
- Authority
- JP
- Japan
- Prior art keywords
- virtual node
- server
- dispatcher
- accesses
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、ネットワーク上に分散配置されるサーバをクラスタ化してデータを格納する分散データベースの技術分野、および、大規模なデータ集合から、所定の条件で所望のデータを取得する検索技術の分野に属する。 The present invention is applied to the technical field of a distributed database that stores data by clustering servers distributed on a network, and the field of search technology that acquires desired data from a large data set under predetermined conditions. Belongs.
近年、クラウド化に伴いWeb側でのサービス提供が多くなってきている。ユーザも非常に膨大となることから、単位時間当たりのクエリ処理量に着目し、分散システムを導入する場合が増えつつある。特にボトルネックとなり易いDB(DataBase)の分野では、旧来のRDB(Relational DataBase)からNoSQL型のシステムに移行しつつある。 In recent years, service provision on the Web side has increased along with cloudization. Since the number of users is also extremely large, paying attention to the query processing amount per unit time, the case of introducing a distributed system is increasing. In particular, in the field of DB (DataBase), which is likely to become a bottleneck, the traditional RDB (Relational DataBase) is shifting to a NoSQL system.
NoSQL型では、スケーラビリティを享受することを最大目標としており、ハッシュ関数を利用するKVS(Key Value Store)形式のものが多い。KVSでは、RDBのようにテーブル構造のデータを持つことはせず、検索対象としてkeyを予め設定し、そのkeyに対してハッシュ関数を適用することでO(1)若しくはO(log(N))の計算量によるvalue検索を可能とし、上記の特性を得ている。但し、その代償としてSQLレベルの検索や、トランザクション処理の一貫性等が不得意であることが知られている。 In the NoSQL type, the maximum goal is to enjoy scalability, and there are many KVS (Key Value Store) formats that use a hash function. KVS does not have table-structured data unlike RDB, but sets a key as a search target in advance, and applies a hash function to that key to apply O (1) or O (log (N) ) Value search based on the amount of calculation), and the above characteristics are obtained. However, it is known that it is not good at SQL level search and transaction processing consistency as a price.
代表的なKVS形式のDBとしては、コンシステントハッシュ(Consistent Hashing)アルゴリズムを利用したシステムがある(非特許文献1参照)。 As a typical KVS format DB, there is a system that uses a consistent hashing algorithm (see Non-Patent Document 1).
非特許文献1に記載されたようなコンシステントハッシュを利用したDBでは、動的にサーバを、追加、削除したとしても、既存のクラスタに対する影響が小さいという特徴がある。また、コンシステントハッシュにおいては、1つの物理ノードに対して、仮想的に複数のノードを割り当てる仮想ノードという概念を導入し、コンシステントハッシュ環の領域を仮想ノードに割り当てることにより、更に既存のクラスタへの影響を低減することも可能である。
A DB using a consistent hash as described in Non-Patent
本発明で解決しようとする課題は、以下の点である。
NoSQL型のDBシステム、特に、コンシステントハッシュに基づくものは、データ集合を得る手段として用いられる範囲検索を効率化(高速化)するため、通常一致検索で用いる不連続なハッシュ関数(図10(a)参照)ではなく、順序性を保持したハッシュ関数(連続関数)を用いる(図10(b)参照)。しかし、順序性を保持したハッシュ関数では、入力分布に偏りが発生した際に、クラスタ内のいずれかのサーバに負荷が集中してしまうことが発生し易くなる。
The problems to be solved by the present invention are as follows.
A NoSQL DB system, particularly one based on a consistent hash, is a discontinuous hash function (FIG. 10 () shown in FIG. 10) that makes a range search used as a means for obtaining a data set more efficient. Instead of using a), use a hash function (continuous function) that maintains order (see FIG. 10B). However, in a hash function that maintains order, it is easy for a load to be concentrated on any server in the cluster when a bias occurs in the input distribution.
順序性を保持したハッシュ関数だけでは、基本的にはあらゆる入力分布に対して負荷を均等化することはできないため、コンシステントハッシュの仮想ノードの割り当てを用いて、負荷を均等化することが考えられる。但し、順序性を保持するハッシュ関数では、コンシステントハッシュ環においてデータの配置が非常に偏ることになった場合に、単純にランダムで仮想ノードを割り当ててしまうと、密にデータが配置された領域にはほとんど仮想ノードが割り当てられないケースが発生し、結果として負荷が均等にならないという問題がある。 Basically, it is not possible to equalize the load for all input distributions with only a hash function that maintains order, so it is possible to equalize the load using the allocation of virtual nodes for consistent hash It is done. However, in the hash function that maintains the order, if the virtual node is simply allocated randomly when the data arrangement is very biased in the consistent hash ring, the area where the data is densely arranged Has a problem that almost no virtual nodes are allocated, resulting in uneven load.
このような背景に鑑みて本発明がなされたのであり、本発明は、コンシステントハッシュを適用したKVS形式のデータベースにおいて、範囲検索を高速化し、かつ、サーバ負荷を均等にすることができる、分散処理システム、ディスパッチャおよび分散処理管理装置を提供することを課題とする。 The present invention has been made in view of such a background, and in the KVS format database to which a consistent hash is applied, the present invention is a distributed method capable of speeding up the range search and equalizing the server load. It is an object of the present invention to provide a processing system, a dispatcher, and a distributed processing management device.
前記した課題を解決するため、請求項1に記載の発明は、入力装置から受信した入力情報を、サーバに振り分ける複数のディスパッチャと、前記ディスパッチャから受信した入力情報に基づき、データの保存、検索を含む処理を実行する複数の前記サーバとを備える分散処理システムであって、前記ディスパッチャが、コンシステントハッシュ環上における、前記複数のサーバの仮想ノードの担当領域を示す仮想ノード割当情報を記憶する記憶部と、前記入力装置から前記入力情報を受信し、前記入力情報に対して、順序性を保持したハッシュ関数を用いてハッシュ値を計算し、前記計算したハッシュ値が、前記コンシステントハッシュ環上に配置された前記複数のサーバのいずれの仮想ノードの担当領域に含まれるかを、前記仮想ノード割当情報に基づき判定し、前記計算したハッシュ値を担当領域に含むと判定された仮想ノードの基となるサーバを、振り分け先となる前記サーバとして決定し、前記決定したサーバに前記入力情報を送信する振り分け処理部と、前記コンシステントハッシュ環上に配置された仮想ノードの担当領域に対し、前記入力情報のハッシュ値が当該仮想ノードの担当領域に含まれることを示すアクセス数を、前記仮想ノード毎にカウントするアクセス情報管理部と、前記分散処理システムに、新たなサーバが追加される場合に、自身以外のディスパッチャから、前記仮想ノード毎のアクセス数を取得して、前記仮想ノード毎のアクセス数の合計値を計算し、前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置し、新たな前記仮想ノード割当情報を生成して、前記自身以外のディスパッチャに送信する仮想ノード割当部と、を備えることを特徴とする分散処理システムとした。
In order to solve the above-described problem, the invention according to
また、請求項3に記載の発明は、入力装置から受信した入力情報を、サーバに振り分ける複数のディスパッチャと、前記ディスパッチャから受信した入力情報に基づき、データの保存、検索を含む処理を実行する複数の前記サーバとを備える分散処理システムの前記ディスパッチャであって、コンシステントハッシュ環上における、前記複数のサーバの仮想ノードの担当領域を示す仮想ノード割当情報を記憶する記憶部と、前記入力装置から前記入力情報を受信し、前記入力情報に対して、順序性を保持したハッシュ関数を用いてハッシュ値を計算し、前記計算したハッシュ値が、前記コンシステントハッシュ環上に配置された前記複数のサーバのいずれの仮想ノードの担当領域に含まれるかを、前記仮想ノード割当情報に基づき判定し、前記計算したハッシュ値を担当領域に含むと判定された仮想ノードの基となるサーバを、振り分け先となる前記サーバとして決定し、前記決定したサーバに前記入力情報を送信する振り分け処理部と、前記コンシステントハッシュ環上に配置された仮想ノードの担当領域に対し、前記入力情報のハッシュ値が当該仮想ノードの担当領域に含まれることを示すアクセス数を、前記仮想ノード毎にカウントするアクセス情報管理部と、前記分散処理システムに、新たなサーバが追加される場合に、自身以外のディスパッチャから、前記仮想ノード毎のアクセス数を取得して、前記仮想ノード毎のアクセス数の合計値を計算し、前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置し、新たな前記仮想ノード割当情報を生成して、前記自身以外のディスパッチャに送信する仮想ノード割当部と、を備えることを特徴とするディスパッチャとした。 According to a third aspect of the present invention, a plurality of dispatchers that distribute input information received from an input device to a server, and a plurality of processes that execute processing including data storage and retrieval based on the input information received from the dispatcher. The dispatcher of the distributed processing system comprising the server, and a storage unit that stores virtual node allocation information indicating areas in charge of virtual nodes of the plurality of servers on the consistent hash ring, and the input device The input information is received, a hash value is calculated for the input information using a hash function that retains order, and the calculated hash values are arranged on the consistent hash ring. Based on the virtual node allocation information, it is determined which virtual node of the server is included in the area in charge. A distribution processing unit that determines a server that is a base of a virtual node determined to include the calculated hash value in the assigned area as the distribution destination server, and transmits the input information to the determined server; and the consistency An access information management unit that counts, for each virtual node, the number of accesses indicating that the hash value of the input information is included in the area in charge of the virtual node with respect to the area in charge of the virtual node arranged on the tent hash ring And when a new server is added to the distributed processing system, obtain the number of accesses for each virtual node from a dispatcher other than itself, and calculate the total number of accesses for each virtual node, The new support is added to the assigned area on the consistent hash ring of the virtual node having the largest total access count. Place the server virtual node, generates a new piece of the virtual node allocation information, and the dispatchers, characterized in that it comprises, a virtual node assignment unit that transmits to the dispatcher than the own.
このようにすることで、本発明に係る分散処理システムのディスパッチャは、順序性を保持したハッシュ関数を用いて、振り分け先となるサーバを決定することができる。よって、範囲検索を行う際に、すべてのサーバを検索する必要をなくし、所定の範囲のデータを検索すればよくなるため、応答速度を高速化することができる。
さらに、分散処理システムにおいて、新たなサーバが追加される場合に、各ディスパッチャが、コンシステントハッシュ環上に配置された仮想ノードに対するアクセス数をカウントし、各ディスパッチャの仮想ノード毎のアクセス数の合計値を算出し、その合計値が最も大きい仮想ノードのコンシステントハッシュ環上の担当領域に、新たなサーバの仮想ノードを配置する。よって、アクセス数が多い領域に優先的に仮想ノードを配置するため、サーバ負荷を均等にすることができる。
By doing in this way, the dispatcher of the distributed processing system concerning this invention can determine the server which becomes a distribution destination using the hash function holding the order. Therefore, when performing a range search, it is not necessary to search all the servers, and it is only necessary to search data within a predetermined range, so that the response speed can be increased.
Further, in the distributed processing system, when a new server is added, each dispatcher counts the number of accesses to the virtual nodes arranged on the consistent hash ring, and the total number of accesses for each virtual node of each dispatcher. The value is calculated, and the virtual node of the new server is arranged in the assigned area on the consistent hash ring of the virtual node having the largest total value. Therefore, since virtual nodes are preferentially arranged in an area where the number of accesses is large, server loads can be equalized.
請求項2に記載の発明は、前記仮想ノード割当部が、前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置した場合に、当該アクセス数の合計値を、前記仮想ノードを配置したことにより分割された領域の領域比に応じて分配し、新たな仮想ノードのアクセス数の合計値として設定し、前記設定後のコンシステントハッシュ環上の仮想ノードにおいて、前記アクセス数の合計値が最も大きい仮想ノードの担当領域に、前記新たなサーバの仮想ノードを配置する仮想ノード割当処理を、前記新たなサーバに設定される所定数の仮想ノードが前記コンシステントハッシュ環上に配置し終えるまで実行し、前記新たな仮想ノード割当情報を生成することを特徴とする請求項1に記載の分散処理システムとした。
According to the second aspect of the present invention, the virtual node allocating unit arranges the virtual node of the new server in the assigned area on the consistent hash ring of the virtual node having the largest calculated total number of accesses. In this case, the total value of the number of accesses is distributed according to the area ratio of the areas divided by arranging the virtual nodes, and is set as the total number of accesses of the new virtual node. In the virtual node on the consistent hash ring, virtual node allocation processing for placing the virtual node of the new server in the assigned area of the virtual node having the largest total number of accesses is set for the new server. Executing until a predetermined number of virtual nodes are arranged on the consistent hash ring, and generating the new virtual node allocation information. It was distributed processing system according to
また、請求項4に記載の発明は、前記仮想ノード割当部が、前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置した場合に、当該アクセス数の合計値を、前記仮想ノードを配置したことにより分割された領域の領域比に応じて分配し、新たな仮想ノードのアクセス数の合計値として設定し、前記設定後のコンシステントハッシュ環上の仮想ノードにおいて、前記アクセス数の合計値が最も大きい仮想ノードの担当領域に、前記新たなサーバの仮想ノードを配置する仮想ノード割当処理を、前記新たなサーバに設定される所定数の仮想ノードが前記コンシステントハッシュ環上に配置し終えるまで実行し、前記新たな仮想ノード割当情報を生成することを特徴とする請求項3に記載のディスパッチャとした。
Further, in the invention according to
このようにすることで、分散処理システムにおいて、新たなサーバが追加される場合に、仮想ノードのアクセス数が最も大きい仮想ノードの担当領域に対する、新たなサーバの仮想ノードの配置を繰り返し実行することができる。よって、サーバ負荷を均等にする効果をさらに高めることができる。 In this way, in a distributed processing system, when a new server is added, the placement of the new server's virtual node is repeatedly executed in the assigned area of the virtual node having the largest number of virtual node accesses. Can do. Therefore, the effect of equalizing the server load can be further enhanced.
請求項5に記載の発明は、入力装置から受信した入力情報を、サーバに振り分ける複数のディスパッチャと、前記ディスパッチャから受信した入力情報に基づき、データの保存、検索を含む処理を実行する複数の前記サーバと、前記複数のディスパッチャに接続され、前記ディスパッチャが受信した入力情報の振り分け先となる前記サーバを管理する分散処理管理装置と、を備える分散処理システムの前記分散処理管理装置であって、コンシステントハッシュ環上における、前記複数のサーバの仮想ノードの担当領域を示す仮想ノード割当情報を記憶する記憶部と、前記コンシステントハッシュ環上に配置された仮想ノードの担当領域に対し、前記入力情報のハッシュ値が当該仮想ノードの担当領域に含まれることを示すアクセス数を、前記仮想ノード毎にカウントしたアクセス情報を、前記複数のディスパッチャそれぞれから収集するアクセス情報収集部と、前記分散処理システムに新たなサーバが追加される場合、前記仮想ノード毎のアクセス数の合計値を計算し、前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置し、新たな前記仮想ノード割当情報を生成して、前記複数のディスパッチャに配信する仮想ノード割当情報生成部と、を備えることを特徴とする分散処理管理装置とした。
The invention according to
このようにすることで、本発明に係る分散処理管理装置は、各ディスパッチャから、コンシステントハッシュ環上に配置された仮想ノードに対するアクセス数をカウントしたアクセス情報を収集する。そして、分散処理管理装置は、新たなサーバを追加する場合に、各ディスパッチャの仮想ノード毎のアクセス数の合計値を算出し、その合計値が最も大きい仮想ノードのコンシステントハッシュ環上の担当領域に、新たなサーバの仮想ノードを配置して、新たな仮想ノード割当情報を生成し、各ディスパッチャに配信する。よって、アクセス数が多い領域に優先的に仮想ノードを配置するため、各サーバの負荷を均等にすることができる。 By doing so, the distributed processing management apparatus according to the present invention collects access information obtained by counting the number of accesses to the virtual nodes arranged on the consistent hash ring from each dispatcher. Then, when adding a new server, the distributed processing management device calculates the total number of accesses for each virtual node of each dispatcher, and the assigned area on the consistent hash ring of the virtual node having the largest total value Then, a new virtual node of the server is arranged, new virtual node allocation information is generated, and distributed to each dispatcher. Therefore, since virtual nodes are preferentially arranged in an area with a large number of accesses, the load on each server can be equalized.
請求項6に記載の発明は、前記仮想ノード割当情報生成部が、前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置した場合に、当該アクセス数の合計値を、前記仮想ノードを配置したことにより分割された領域の領域比に応じて分配し、新たな仮想ノードのアクセス数の合計値として設定し、前記設定後のコンシステントハッシュ環上の仮想ノードにおいて、前記アクセス数の合計値が最も大きい仮想ノードの担当領域に、前記新たなサーバの仮想ノードを配置する仮想ノード割当処理を、前記新たなサーバに設定される所定数の仮想ノードが前記コンシステントハッシュ環上に配置し終えるまで実行し、前記新たな仮想ノード割当情報を生成することを特徴とする請求項5に記載の分散処理管理装置とした。
According to the sixth aspect of the present invention, the virtual node allocation information generating unit has the virtual node of the new server in the assigned area on the consistent hash ring of the virtual node having the largest total number of the calculated accesses. Is distributed according to the area ratio of the areas divided by arranging the virtual node, and set as the total value of the number of accesses of the new virtual node, In the virtual node on the consistent hash ring after the setting, a virtual node allocation process for allocating the virtual node of the new server in the area in charge of the virtual node having the largest total number of accesses is performed on the new server. Execute until a predetermined number of set virtual nodes have been placed on the consistent hash ring, and generate the new virtual node allocation information It was distributed processing management apparatus according to
このようにすることで、分散処理管理装置は、分散処理システムにおいて、新たなサーバが追加される場合に、仮想ノードのアクセス数が最も大きい仮想ノードの担当領域に対する、新たなサーバの仮想ノードの配置を繰り返し実行することができる。よって、サーバ負荷を均等にする効果をさらに高めることができる。 In this way, when a new server is added to the distributed processing system, the distributed processing management device can change the virtual node of the new server to the assigned area of the virtual node having the largest virtual node access count. Placement can be performed repeatedly. Therefore, the effect of equalizing the server load can be further enhanced.
本発明によれば、コンシステントハッシュを適用したKVS形式のデータベースにおいて、範囲検索を高速化し、かつ、サーバ負荷を均等にする、分散処理システム、ディスパッチャおよび分散処理管理装置を提供することができる。 According to the present invention, it is possible to provide a distributed processing system, a dispatcher, and a distributed processing management device that speed up range search and equalize server loads in a KVS database to which a consistent hash is applied.
次に、本発明を実施するための形態(以下、「本実施形態」という)における分散処理システム1について説明する。
Next, the distributed
<システム構成>
図1は、本実施形態に係る分散処理システム1を含む全体構成を示す図である。
図1に示すように、分散処理システム1は、ネットワークを介して、外部システム2であるオペレータシステムや、端末3等と接続される。そして、外部システム2や端末3からの入力データ(クエリ)を受け取り、分散処理システム1内でデータの保存、更新、検索等を行い、その結果を出力データとして、外部システム2や端末3に送信する。
<System configuration>
FIG. 1 is a diagram showing an overall configuration including a distributed
As shown in FIG. 1, the distributed
<分散処理システムの構成>
図2は、本実施形態に係る分散処理システム1の内部構成を示す図である。
図2に示すように、本分散処理システム1は、ロードバランサB(Balancer:各図において「B」と表記)と、複数のディスパッチャD(Dispatcher:各図において「D」と表記)と、複数のプロセッサP(Processor:各図において「P」と表記)と、複数のストレージS(Storage:各図において「S」と表記)とを含んで構成される。
<Configuration of distributed processing system>
FIG. 2 is a diagram showing an internal configuration of the distributed
As shown in FIG. 2, the distributed
ロードバランサBは、入力装置4から入力データを取得し、出力データを出力装置5に送信する。また、ロードバランサBは、ラウンドロビン等により、入力データを複数のディスパッチャD(D1,D2,D3)のいずれかに振り分ける。ここで、入力装置4および出力装置5は、図1に示した外部システム2や端末3である。また、本分散処理システム1に対する入力データは、例えば、SQLのクエリやXCAP(XML Configuration Access Protocol)のような、データベースからデータを取得するための要求のことである。
The load balancer B acquires input data from the
各ディスパッチャD(D1,D2,D3)は、複数のプロセッサP(P1,P2,P3)と接続されており、ロードバランサBから取得した入力データ(クエリ)を、プロセッサP(P1,P2,P3)のいずれかに振り分ける。このディスパッチャDは、入力データを解析し、コンシステントハッシュを適用してハッシュ関数により、データの格納先であるサーバ(プロセッサPとストレージSとの組)を決定し、その入力データ(クエリ)を送信する。なお、ディスパッチャDの詳細な構成と処理については、後記する。 Each dispatcher D (D 1 , D 2 , D 3 ) is connected to a plurality of processors P (P 1 , P 2 , P 3 ), and receives input data (query) acquired from the load balancer B as processor P Assign to any of (P 1 , P 2 , P 3 ). The dispatcher D analyzes the input data, applies a consistent hash, determines a server (a pair of the processor P and the storage S) as a data storage destination by a hash function, and determines the input data (query). Send. The detailed configuration and processing of the dispatcher D will be described later.
プロセッサPは、複数のディスパッチャD(D1,D2,D3)と自身が制御するストレージSとに接続されており、いずれかのディスパッチャDから入力データを受信し、その入力データに従い、ストレージSに新規データを保存したり、既存データを更新したり、データの検索処理をしたりする制御を実行する。また、ストレージSは、実際にデータを保存する記憶手段であり、例えば、各データがXML(Extensible Markup Language)ファイルで保存される。なお、本実施形態においては、このプロセッサPとストレージSとの組を、1つのサーバとして説明する。また、後記において説明するように、本実施形態において、サーバ(プロセッサPとストレージSとの組)が本分散処理システム1に追加、削除される際には、その該当サーバ(例えば、プロセッサP1およびストレージS1)の分散処理システム1への登録等を管理するディスパッチャD1も併せて、追加、削除されるものとする。さらに、ディスパッチャD(D1,D2,D3)、プロセッサP(P1,P2,P3)、ストレージS(S1,S2,S3)それぞれは、図2に図示した3つの装置に限定されず、複数の装置であればよい。
The processor P is connected to a plurality of dispatchers D (D 1 , D 2 , D 3 ) and a storage S controlled by itself, receives input data from any one of the dispatchers D, and stores the storage according to the input data. Control is performed to store new data in S, update existing data, or perform data search processing. The storage S is a storage unit that actually stores data. For example, each data is stored as an XML (Extensible Markup Language) file. In the present embodiment, the set of the processor P and the storage S will be described as one server. Further, as will be described later, in this embodiment, when a server (a combination of the processor P and the storage S) is added to or deleted from the distributed
<概要>
まず、本実施形態に係る分散処理システム1が行う処理の概要について説明する。
図3は、本実施形態に係る分散処理システム1の処理の概要を説明するための図である。
図3(a)は、コンシステントハッシュに基づき、仮想ノードを設定し、範囲検索を高速化するためにハッシュ関数を連続かつ単調増加関数とした場合の従来のシステムにおける例を示している。この場合、各サーバに格納されたデータを、ハッシュ値順にソートしておくことで、任意の範囲を取得すること(例えば、keyを文字列とする前方一致)に対して、常にO(log(N))の計算量でデータを取得できる。しかしながら、図3(a)に示すように、コンシステントハッシュ環の一部の領域に出現頻度が偏る可能性が高くなる。この問題を、仮想ノードを増やすことで解決しようとする場合、従来の仮想ノード割当方法では、例えば、ランダムに仮想ノードが配置されてしまうため、仮想ノードを増加させても、偏った領域に充分に仮想ノードが配置されず、その結果サーバ負荷のばらつきが解消されない可能性がある。
この問題を解決するため、本実施形態に係る分散処理システム1では、各ディスパッチャDが、コンシステントハッシュ環の担当領域において、仮想ノードがそのデータ処理を担当したアクセス数をカウントし、アクセス数が多い領域に集中的に新たな仮想ノードを配置することで、サーバ負荷を均等にするものである(図3(b)参照)。
<Overview>
First, an outline of processing performed by the distributed
FIG. 3 is a diagram for explaining an outline of processing of the distributed
FIG. 3A shows an example of a conventional system in which virtual nodes are set based on the consistent hash and the hash function is a continuous and monotonically increasing function in order to speed up the range search. In this case, the data stored in each server is sorted in the order of the hash value to obtain an arbitrary range (for example, forward matching with key as a character string). Data can be acquired with the calculation amount of N)). However, as shown in FIG. 3A, there is a high possibility that the appearance frequency is biased to a partial region of the consistent hash ring. When trying to solve this problem by increasing the number of virtual nodes, in the conventional virtual node allocation method, for example, virtual nodes are randomly arranged. As a result, there is a possibility that variations in server load may not be resolved.
In order to solve this problem, in the distributed
以下、まず、本実施形態に係る分散処理システム1において、仮想ノードのアクセス数のカウント処理と、コンシステントハッシュ環への仮想ノードの配置処理とを行う、ディスパッチャDの詳細について説明する。その後に、本分散処理システム1が実行する処理の流れについて説明する。
Hereinafter, the details of the dispatcher D that performs the virtual node access count processing and the virtual node placement processing in the consistent hash ring in the distributed
≪ディスパッチャD≫
図4は、本実施形態に係るディスパッチャDの構成例を示す機能ブロック図である。
ディスパッチャDは、ロードバランサBおよび複数のプロセッサP(P1,P2,P3)と通信可能に接続され、ロードバランサBから取得した入力データ(クエリ)を、プロセッサP(P1,P2,P3)に振り分ける装置であり、図4に示すように、制御部10と、入出力部20と、メモリ部30と、記憶部40とを含んで構成される。
≪Dispatcher D≫
FIG. 4 is a functional block diagram illustrating a configuration example of the dispatcher D according to the present embodiment.
The dispatcher D is communicably connected to the load balancer B and the plurality of processors P (P 1 , P 2 , P 3 ), and inputs data (query) acquired from the load balancer B to the processor P (P 1 , P 2). , P 3 ), and includes a control unit 10, an input /
入出力部20は、ロードバランサBや、各プロセッサP(P1,P2,P3)との間の情報の入出力を行う。例えば、入出力部20は、ロードバランサBが送信した入力データ(クエリ)を受信し、各プロセッサPに対し、その入力データ(クエリ)の送信を行う。また、入出力部20は、ストレージSに保存されるデータ等の検索結果をプロセッサPから受信し、ロードバランサBに対して送信する等の処理を行う。
また、この入出力部20は、通信回線を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
The input /
The input /
制御部10は、ディスパッチャD全体の制御を司り、情報受信部11と、構文解析部12と、振り分け処理部13と、保存情報管理部14と、アクセス情報管理部15と、仮想ノード割当部16と、情報送信部17とを含んで構成される。なお、この制御部10は、例えば、ディスパッチャDの記憶部40に格納されたプログラムをCPU(Central Processing Unit)がメモリ部30であるRAM(Random Access Memory)に展開し実行することで実現される。
The control unit 10 controls the entire dispatcher D, and includes an
情報受信部11は、入出力部20を介して、ロードバランサBからの入力データ(クエリ)や、プロセッサPからの出力データを取得する。
The
構文解析部12は、情報受信部11から入力データ(クエリ)を受け取り、そのクエリの内容を構文解析する。例えば、構文解析部12は、その入力データ(クエリ)が、ストレージSに格納されたデータに対する検索要求(GET)であり、「keyの完全一致検索」や、「keyの範囲検索」等であるかを解析したり、新規のデータの登録要求(PUT)や、既存データの更新要求(UPDATE)等のクエリの内容を解析したりする。
そして、構文解析部12は、その解析結果を振り分け処理部13に引き渡す。
The
Then, the
振り分け処理部13は、ハッシュ値計算部131を備え、ハッシュ値計算部131が、構文解析部12から取得した解析結果に基づき、予め設定された順序性を保持したハッシュ関数、つまり、連続かつ単調増加するハッシュ関数を用いて、コンシステントハッシュを適用し、入力データのハッシュ値を計算する。
また、振り分け処理部13は、ハッシュ値計算部131が計算したハッシュ値に基づき、記憶部40に記憶された仮想ノード割当情報100を参照し、振り分け先となるコンシステントハッシュ環上の仮想ノードを決定する。そして、振り分け処理部13は、この決定された仮想ノードの基となるサーバ(プロセッサPとストレージSとの組)を、振り分け先のサーバとして選択する。なお、仮想ノード割当情報100については、後記して説明する。
The
Further, the
保存情報管理部14は、構文解析部12が入力データ(クエリ)を構文解析した結果に応じて、各サーバに保存される情報を管理する全体的な制御を行う。
具体的には、保存情報管理部14は、振り分け処理部13が、データの取得要求(検索)、保存、変更等を実行するサーバを決定すると、その決定した振り分け先となるサーバに、入力データ(クエリ)を、情報送信部17を介して送信する。
また、保存情報管理部14は、データの取得要求を示す入力データ(クエリ)の場合に、各サーバから取得したデータを、出力データとしてロードバランサBに送信する制御を行う。
The stored
Specifically, when the
Further, in the case of input data (query) indicating a data acquisition request, the storage
アクセス情報管理部15は、振り分け処理部13が、入力データ(クエリ)を処理する仮想ノードを決定し、保存情報管理部14が、その仮想ノードの基となるサーバ(プロセッサPとストレージSとの組)に入力データを送信し、その応答情報を当該サーバから受信したことを契機として、その仮想ノードが処理した回数である、アクセス数104を1つカウントアップする。具体的には、アクセス情報管理部15は、記憶部40に記憶された仮想ノード割当情報100に設けられたコンシステントハッシュ環における仮想ノードの担当領域に対応づけて、入力データのアクセス数104をカウントアップする。
なお、このアクセス数104は、コンシステントハッシュ環上に配置された仮想ノードの担当領域に対し、入力情報のハッシュ値が当該仮想ノードの担当領域に含まれることを示すものである。
In the access
The
図5は、本実施形態に係る仮想ノード割当情報100のデータ構成の一例を示す図である。
図5に示すように、仮想ノード割当情報100は、仮想ノードID(Identification)101、物理ノードID102、ハッシュ値103、アクセス数104のデータ項目を含んで構成される。
FIG. 5 is a diagram illustrating an example of a data configuration of the virtual
As shown in FIG. 5, the virtual
ここで、仮想ノードID101は、本分散処理システム1内において仮想ノードを特定するための固有な番号である。例えば、図5に示す、仮想ノードID101の「13−181」は、仮想ノードの基となる物理ノードのID(物理ノードID102)と、当該物理ノードにおける固有な番号のうちの1つ(ここでは、「181」番)との組により構成される。
物理ノードID102は、入力データの振り分け先となるサーバ(プロセッサPとストレージSとの組)を、本分散処理システム1内において特定するための固有な番号である。例えば、図5に示すように、物理ノードID102として「13」が設定される。
なお、この仮想ノードID101および物理ノードID102は、本分散処理システム1内において、一意に特定されるIDであればよく、図5に示した表記方法に限定されるものではない。
Here, the
The
Note that the
ハッシュ値103は、コンシステントハッシュ環において、仮想ノードが担当する領域を特定するためのものであり、例えば、「0」から順に「10000」までのいずれかの値が格納される。
例えば、図5に示す、第1行目のハッシュ値103が「56」の場合は、仮想ノードID101が「13−181」の仮想ノードのコンシステントハッシュ環における入力データの担当領域が、「0」〜「56」であることを示す。また、第2行目のハッシュ値103が「172」の場合は、仮想ノードID101が「5−96」の仮想ノードのコンシステントハッシュ環における入力データの担当領域が、1つ前の行のハッシュ値103の値に「1」をプラスした「57」〜「172」であることを示す。
The
For example, when the
アクセス数104には、仮想ノードが担当する入力データが処理される毎に、その仮想ノードの担当領域に配置された入力データの数(アクセス数)がアクセス情報管理部15によりカウントアップされ格納される。
例えば、図5に示す、第1行目のアクセス数104が「1098」の場合は、仮想ノードID101が「13−181」の仮想ノードの担当であるハッシュ値103が「0」〜「56」の領域に、「1098」回のアクセス数があったことを示す。
As the number of
For example, when the number of
この仮想ノード割当情報100のうち、仮想ノードID101、物理ノードID102およびハッシュ値103は、各ディスパッチャD(D1,D2,D3)において、すべて共通の値を備えている。これに対し、アクセス数104は、ディスパッチャD(D1,D2,D3)それぞれが受信した入力データに対し、各ディスパッチャD(D1,D2,D3)の振り分け処理部13が振り分けた仮想ノード毎に、各アクセス情報管理部15により独自にカウントされる。なお、このアクセス情報管理部15による、仮想ノードの担当領域のアクセス数104のカウント処理については、後記する図6および図7において詳細に説明する。
In the virtual
また、アクセス情報管理部15は、コーディネータとなるディスパッチャD(詳細は後記)から、アクセス情報集計通知を受信すると、自身のディスパッチャDが備える仮想ノード割当情報100を参照し、アクセス情報を返信する。ここで、アクセス情報とは、仮想ノード割当情報100のデータ項目のうち、仮想ノードID101とそれに対応付けられたアクセス数104の情報を意味する。
さらに、アクセス情報管理部15は、コーディネータとなるディスパッチャDから、新たな仮想ノード割当情報100を受信すると、記憶部40に記憶された仮想ノード割当情報100を、受信した新たな仮想ノード割当情報100で更新する。その際、アクセス数104は「0」に初期化される。
Further, when the access
Further, when the access
図4に戻り、仮想ノード割当部16は、分散処理システム1内において、各サーバ(プロセッサPとストレージSとの組)の負荷にばらつきが生じる等したことより、サーバを追加したり削除したりする場合に、当該サーバの追加や削除に対応した、新たな仮想ノードのコンシステントハッシュ環上の配置を決定する。
なお、以下に説明する仮想ノード割当部16の処理は、自身のディスパッチャDが、仮想ノードの新たな配置を決定する各ディスパッチャDのコーディネータとして機能する場合に実行されるものである。このコーディネータは、各ディスパッチャDのうちの1つが管理者等により、または、任意に設定され、コーディネータとして機能するディスパッチャDが故障等した場合には、他のディスパッチャDのうちの1つが、代わりにコーディネータの役割を果たすものである。
Returning to FIG. 4, the virtual
The processing of the virtual
仮想ノード割当部16は、サーバ(プロセッサPとストレージSとの組)を追加する場合に、例えば、追加するサーバを管理するディスパッチャDから、サーバが新たに追加されたことを示す参加通知を受け取ると、既存の各ディスパッチャD(D1,D2,D3)に対して、アクセス情報集計通知を送信する。このアクセス情報集計通知は、各ディスパッチャD(D1,D2,D3)が備える仮想ノード割当情報100に記憶されたアクセス情報(仮想ノードID101とそれに対応付けられたアクセス数104の情報)の返信を求めるメッセージである。
仮想ノード割当部16は、各ディスパッチャD(D1,D2,D3)から送信されたアクセス情報を集計し、アクセス数104の合計値が最も大きい仮想ノードを選択する。そして、仮想ノード割当部16は、新たに追加するサーバの仮想ノードを、アクセス数104の合計値が最も大きい仮想ノードの担当領域に配置する。
When adding a server (a pair of processor P and storage S), the virtual
The virtual
なお、このときの当該領域への仮想ノードの配置は、1つの仮想ノードに限定されず、予め設定した所定数の仮想ノードを当該領域に配置するようにしてもよい。また、仮想ノードを配置する位置(ハッシュ値)も、例えば、当該領域に1つの仮想ノードを配置する場合に、その領域を2等分する位置に配置してもよいし、領域の長さを例えば、1対2のように分割する位置に配置してもよい。また、当該領域に2つの仮想ノードを配置する場合に、その領域を3等分する位置に配置してもよいし、その領域の長さを任意の割合で分割する位置に配置するようにしてもよい。 Note that the placement of virtual nodes in the area at this time is not limited to one virtual node, and a predetermined number of virtual nodes set in advance may be placed in the area. In addition, for example, when one virtual node is arranged in the area, the position (hash value) at which the virtual node is arranged may be arranged at a position that bisects the area, and the length of the area may be set as follows. For example, you may arrange | position in the position divided | segmented like 1-to-2. In addition, when two virtual nodes are arranged in the area, the area may be arranged at a position where the area is divided into three equal parts, or the length of the area may be arranged at a position where it is divided at an arbitrary ratio. Also good.
仮想ノード割当部16は、当該領域に仮想ノードを配置すると、その領域のアクセス数104をそれぞれの領域比に応じて分配し、その分割された領域のアクセス数104の合計値とする。そして、仮想ノード割当部16は、新たに配置された仮想ノードを含めて、再度、アクセス数104の合計値が最も大きい仮想ノードの領域を選択し、所定数の仮想ノードをその領域に配置する処理を繰り返す。なお、1つの物理ノードに対応する仮想ノードの数は予め決められており、仮想ノード割当部16は、新たに配置するすべての仮想ノードの配置が終了するまで、この仮想ノード割当処理を繰り返す。
When a virtual node is arranged in the area, the virtual
仮想ノード割当部16は、すべての仮想ノードのコンシステントハッシュ環の領域への配置が終了することにより、新たな仮想ノード割当情報100(図5に示す、仮想ノードID101、物理ノードID102およびハッシュ値103の情報)を生成し、その生成した新たな仮想ノード割当情報100を、追加するサーバを管理するディスパッチャDを含めた各ディスパッチャDに送信する。
When the placement of all virtual nodes in the consistent hash ring region is completed, the virtual
また、仮想ノード割当部16は、分散処理システム1の管理者等により、既存のサーバのうちの一つの削除指示を受けた場合に、各ディスパッチャD(D1,D2,D3)に対して、アクセス情報集計通知を送信する。仮想ノード割当部16は、各ディスパッチャD(D1,D2,D3)から送信されたアクセス情報を集計し、物理ノード(サーバ)毎に、各物理ノード(サーバ)に設定されたすべての仮想ノードのアクセス数104を合計する。そして、そのアクセス数104の合計値が最も少ない物理ノード(サーバ)を削除する物理ノード(サーバ)に決定する。
Further, the virtual
続いて、仮想ノード割当部16は、削除する物理ノード(サーバ)に設定された仮想ノードを、コンシステントハッシュ環上から取り除いた新たな仮想ノード割当情報100(図5に示す、仮想ノードID101、物理ノードID102およびハッシュ値103の情報)を生成し、その生成した新たな仮想ノード割当情報100を、削除するサーバを管理するディスパッチャDを除いた、各ディスパッチャDに送信する。また、仮想ノード割当部16は、削除するサーバを管理するディスパッチャDに対して、削除通知を送信する。
Subsequently, the virtual
情報送信部17は、振り分け処理部13が決定した振り分け先となるプロセッサPに対して、入力データ等を送信したり、入力データ(クエリ)の内容に応じた各サーバへの制御情報等を送信したりする。また、プロセッサPから受信したデータ等を、ロードバランサBへ送信する等の制御を行う。
The
次に、記憶部40は、ハードディスクやフラッシュメモリ等の記憶装置からなり、前記した仮想ノード割当情報100(図5)を記憶する。また、記憶部40は、ロードバランサBや、自身以外の各ディスパッチャD、各プロセッサPのアドレス(IPアドレス)等を記憶する。
Next, the
メモリ部30は、RAM等の一次記憶装置からなり、制御部10によるデータ処理に必要な情報を一時的に記憶している。
The
<分散処理システムの処理の流れ>
次に、本実施形態に係る分散処理システム1の処理の流れについて説明する。
<Processing flow of distributed processing system>
Next, a processing flow of the distributed
≪アクセス数のカウント処理≫
まず、図6および図7を参照して、本実施形態に係るディスパッチャDによるアクセス数104のカウント処理について説明する。
図6は、本実施形態に係る各ディスパッチャD(アクセス情報管理部15)による、仮想ノードの担当領域のアクセス数104のカウント処理を説明するためのフローチャートである。なお、図6においては、入力装置4と出力装置5が同一の装置である例を示すが、入力装置4と出力装置5が別の装置であっても構わない。
≪Access count process≫
First, with reference to FIG. 6 and FIG. 7, the count process of the
FIG. 6 is a flowchart for explaining the count processing of the access count 104 of the assigned area of the virtual node by each dispatcher D (access information management unit 15) according to the present embodiment. Although FIG. 6 shows an example in which the
まず、入力装置4は、入力データ(クエリ)として、例えば、検索要求「GET Key=a0123」をロードバランサBに送信する(ステップS10)。ロードバランサBは、例えば、ランダムに入力データをディスパッチャDに振り分ける。ここでは、ロードバランサBは、ディスパッチャD1に振り分けて、入力データを送信する(ステップS11)。
First, the
ディスパッチャD1の振り分け処理部13は、入力データ(例えば、「Key=a0123」)のハッシュ値を計算し、仮想ノード割当情報100を参照して、振り分け先となる仮想ノードを決定し、その決定した仮想ノードの基となる物理ノード(サーバ)に、入力データを送信する(ステップS12)。ここで、ディスパッチャD1は、複数のサーバのうち、例えば、プロセッサPkとストレージSkとの組のサーバに、入力データを送信する(ステップS12)。
The
次に、プロセッサPkは、入力データ(クエリ)として「GET Key=a0123」を受け取り、ストレージSkを検索し、検索結果として、例えば、「a0123.xml」のデータを得る(ステップS13)。そして、プロセッサPkは、検索結果「a0123.xml」を、ディスパッチャD1に送信する(ステップS14)。 Then, the processor P k receives "GET Key = a0123" as the input data (queries), searches the storage S k, as a search result, for example, obtain data "a0123.xml" (step S13). Then, the processor P k is the search result "a0123.xml", and transmits to the dispatcher D 1 (step S14).
続いて、ディスパッチャD1のアクセス情報管理部15は、受信した応答情報(ここでは、検索結果)の基となる入力データ(クエリ)について、コンシステントハッシュ環で担当した仮想ノードを特定し、自身が記憶する仮想ノード割当情報100(図5)のアクセス数104を1つカウントアップする(ステップS15)。
Subsequently, the access
続いて、ディスパッチャD1は、検索結果「a0123.xml」を、ロードバランサBを介して、出力装置5に送信する(ステップS16,S17)。 Subsequently, the dispatcher D 1 the search results "a0123.xml", via the load balancer B, and transmitted to the output device 5 (step S16, S17).
次に、入力装置4から、別の入力データ(クエリ)として検索要求「GET Key=b9876」がロードバランサBに送信されたものとする(ステップS20)。ロードバランサBは、例えば、ランダムに入力データをディスパッチャDに振り分ける。ロードバランサBは、ここでは、例えば、ディスパッチャD2に振り分け先を決定して、入力データを送信する(ステップS21)。
Next, it is assumed that a search request “GET Key = b9876” is transmitted from the
ディスパッチャD2の振り分け処理部13は、入力データ(例えば、「Key=b9876」)のハッシュ値を計算し、仮想ノード割当情報100を参照して、振り分け先となる仮想ノードを決定し、その決定した仮想ノードの基となる物理ノード(サーバ)に、入力データを送信する。ここで、ディスパッチャD2は、複数のサーバのうち、例えば、プロセッサPmとストレージSmとの組のサーバに、入力データを送信する(ステップS22)。
The
次に、プロセッサPmは、入力データ(クエリ)として「GET Key=b9876」を受け取り、ストレージSmを検索し、検索結果として、例えば、「b9876.xml」のデータを得る(ステップS23)。そして、プロセッサPmは、検索結果「b9876.xml」を、ディスパッチャD2に送信する(ステップS24)。 Next, the processor P m receives “GET Key = b9876” as input data (query), searches the storage S m , and obtains data of “b9876.xml”, for example, as a search result (step S23). Then, the processor P m the search results "b9876.xml", and transmits to the dispatcher D 2 (step S24).
続いて、ディスパッチャD2のアクセス情報管理部15は、受信した応答情報(ここでは、検索結果)の基となる入力データ(クエリ)について、コンシステントハッシュ環で担当した仮想ノードを特定し、自身が記憶する仮想ノード割当情報100(図5)のアクセス数104を1つカウントアップする(ステップS25)。
Subsequently, the access
続いて、ディスパッチャD2は、検索結果「b9876.xml」を、ロードバランサBを介して、出力装置5に送信する(ステップS26,S27)。 Subsequently, the dispatcher D 2 are results "b9876.xml", via the load balancer B, and transmitted to the output device 5 (step S26, S27).
図7は、図6のステップS15およびステップS25における、各ディスパッチャDのアクセス情報管理部15による、仮想ノード割当情報100(図5)のアクセス数104のカウント処理を説明するための図である。
各ディスパッチャDには、同じ位置に仮想ノードが配置された同一のコンシステントハッシュ環が設定される。各ディスパッチャDによるアクセス数104のカウントは、図7に示すように、例えば、ディスパッチャD1やディスパッチャD2それぞれにおいて、コンシステントハッシュ環上に配置された仮想ノードが担当する領域に、振り分け処理部13が、入力データ(クエリ)を何回振り分けて処理したかを、アクセス情報管理部15がカウントする。
FIG. 7 is a diagram for explaining the count processing of the number of
In each dispatcher D, the same consistent hash ring in which virtual nodes are arranged at the same position is set. As shown in FIG. 7, for example, the dispatcher D 1 and the dispatcher D 2 count the number of
なお、アクセス情報管理部15は、図8において説明するように、コーディネータとなるディスパッチャDから、アクセス情報集計通知を受け取ると、自身の仮想ノード割当情報100(図5)を参照して、仮想ノードID101とそれに対応付けられたアクセス数104との情報を、アクセス情報として、コーディネータとなるディスパッチャDに返信する。コーディネータとなるディスパッチャD(仮想ノード割当部16)は、仮想ノードID101毎に、アクセス数104を集計し、アクセス数104の合計値が最も大きい仮想ノードの領域に、新たな仮想ノードを配置する。
以下、サーバを追加する場合と、削除する場合とについての、本実施形態に係るディスパッチャDの仮想ノード割当処理について具体的に説明する。
In addition, as will be described with reference to FIG. 8, when the access
Hereinafter, the virtual node allocation processing of the dispatcher D according to the present embodiment for adding and deleting servers will be described in detail.
≪仮想ノード割当処理(サーバを追加する場合)≫
図8は、本実施形態に係る分散処理システム1において、新たなサーバが追加される場合の仮想ノード割当処理を説明するためのシーケンス図である。
サーバの追加は、例えば、既存のサーバだけでは充分な性能を得られない(例えば、スループットが足りない)場合や、サーバ負荷にばらつきが生じている場合等に、サーバを追加することでサーバ負荷の均等化を図るために実行される。
なお、図8では、サーバ「#4」としてのプロセッサP4とストレージS4との組と共に、このサーバ「#4」を管理するディスパッチャD4も一緒に追加されるものとして説明する。なお、この追加される、プロセッサP4とストレージS4とディスパッチャD4とをまとめて追加される物理ノードと記載することがある。
≪Virtual node allocation process (when adding a server) ≫
FIG. 8 is a sequence diagram for explaining a virtual node assignment process when a new server is added in the distributed
For example, when adding an existing server alone, sufficient performance cannot be obtained (for example, when the throughput is insufficient), or when server load varies, the server load can be increased by adding a server. It is executed to equalize
In FIG. 8, it is assumed that the dispatcher D 4 managing the server “# 4” is added together with the set of the processor P 4 as the server “# 4” and the storage S 4 . The added processor P 4 , storage S 4, and dispatcher D 4 may be described as a physical node to be added collectively.
図8に示すように、まず、追加されるサーバ#4(プロセッサP4とストレージS4との組)を管理するディスパッチャD4から、各ディスパッチャDのうち、コーディネータとして機能するディスパッチャD(ここでは、ディスパッチャD1とする)に向けて、参加通知が送信される(ステップS30)。この参加通知には、追加されるディスパッチャD4およびプロセッサP4のアドレス情報等が含まれる。 As shown in FIG. 8, first, from the dispatcher D 4 that manages the added server # 4 (the set of the processor P 4 and the storage S 4 ), the dispatcher D that functions as a coordinator among the dispatchers D (here, , towards the dispatcher D 1), participation notification is transmitted (step S30). This participation notification includes the address information of the dispatcher D 4 and the processor P 4 to be added.
参加通知を受信したディスパッチャD1の仮想ノード割当部16は、参加通知を送信してきたディスパッチャD4以外の既存の各ディスパッチャD(D2,D3)に対し、アクセス情報集計通知を送信する(ステップS31)。
The virtual
アクセス集計通知を受信したディスパッチャD(D2,D3)のアクセス情報管理部15それぞれは、自身のディスパッチャDが記憶する仮想ノード割当情報100に基づき、アクセス情報(仮想ノードID101とそれに対応付けられたアクセス数104との情報)を生成し、ディスパッチャD1に送信する(ステップS32)。
Each access
ディスパッチャD1の仮想ノード割当部16は、各ディスパッチャD(D2,D3)から送信されたアクセス情報のアクセス数104を仮想ノード毎に集計し、アクセス数104の合計値の最も大きい仮想ノードの領域を選択する。そして、仮想ノード割当部16は、新たに追加するサーバの所定数の仮想ノードを、アクセス数104の合計値の最も大きい仮想ノードが担当しているコンシステントハッシュ環上の領域(最頻領域)に配置する(ステップS33)。そして、ディスパッチャD1の仮想ノード割当部16は、最頻領域に仮想ノードを配置すると、その最頻領域のアクセス数104の合計値をそれぞれの領域比に応じて分配し、その分割された領域のアクセス数104の合計値とする。そして、仮想ノード割当部16は、新たに配置された仮想ノードを含めて、再度、アクセス数104の合計値の最も大きい仮想ノードの領域(最頻領域)を選択し、仮想ノードをその領域(最頻領域)に配置する処理を繰り返す。
The virtual
ディスパッチャD1の仮想ノード割当部16は、すべての仮想ノードの割り当てが終了すると、仮想ノード(仮想ノードID101)と、コンシステントハッシュ環上のその仮想ノードの担当領域(ハッシュ値103)とを示した新たな仮想ノード割当情報100(図5)を生成し、自身の仮想ノード割当情報100を更新した上で、各ディスパッチャD(D2,D3,D4)に通知する(ステップS34)。そして、各ディスパッチャD(D2,D3,D4)のアクセス情報管理部15は、受信した新たな仮想ノード割当情報100を用いて、記憶部40に記憶された仮想ノード割当情報100を更新する。
When the allocation of all the virtual nodes is completed, the virtual
≪仮想ノード割当処理(サーバを削除する場合)≫
図9は、本実施形態に係る分散処理システム1において、既存のサーバを削除する場合の仮想ノード割当処理を説明するためのシーケンス図である。なお、ここでは、最も負荷が少ないサーバを、仮想ノード割当情報100のアクセス数104に基づき決定し、削除する例を説明する。
なお、このサーバの削除は、例えば、分散処理システム1内において、サーバ数を一定に保ちたいときであり、かつ、サーバ負荷にばらつきが生じているときに、既存のサーバを一旦削除し、その削除したサーバを再度追加することで、サーバ負荷の均等化を図る場合等に実行される。
また、ここでの削除は、サーバ(プロセッサPとストレージSとの組)と共にそのサーバを管理するディスパッチャDも含めた1つの物理ノードが削除されるものとして説明する。
≪Virtual node allocation process (when deleting a server) ≫
FIG. 9 is a sequence diagram for explaining virtual node assignment processing when an existing server is deleted in the distributed
This server deletion is, for example, when the number of servers is to be kept constant in the distributed
Deletion here will be described on the assumption that one physical node including the dispatcher D that manages the server (a pair of the processor P and the storage S) is deleted.
まず、コーディネータとして機能するディスパッチャD(ここでは、ディスパッチャD1とする)の仮想ノード割当部16は、各ディスパッチャD(図9では、ディスパッチャD2,D3,D4)に対して、アクセス情報集計通知を送信する(ステップS40)。なお、コーディネータとして機能するディスパッチャDは、例えば、分散処理システム1の管理者等から、サーバ(1つの物理ノード)の削除指示を受信したこと等を契機として、各ディスパッチャDに対し、アクセス情報集計通知を送信する。
First, the dispatcher D to function as a coordinator (here, the dispatcher D 1) virtual
アクセス集計通知を受信したディスパッチャD(D2,D3,D4)のアクセス情報管理部15それぞれは、自身のディスパッチャDが記憶する仮想ノード割当情報100に基づき、アクセス情報(仮想ノードID101とそれに対応付けられたアクセス数104との情報)を生成し、ディスパッチャD1に送信する(ステップS41)。
Each of the access
ディスパッチャD1の仮想ノード割当部16は、各ディスパッチャD(D2,D3,D4)から送信されたアクセス情報のアクセス数104を仮想ノード毎に集計し、さらに、仮想ノードのアクセス数104の集計を、その仮想ノードの基となる物理ノード(サーバ)毎に合計し、アクセス数104の合計値が最も少ない物理ノード(サーバ)を削除する物理ノード(サーバ)に決定する(ステップS42)。ここでは、サーバ「#2」およびそれを管理するディスパッチャD2の物理ノードが削除されるものとする。
The virtual
ディスパッチャD1の仮想ノード割当部16は、削除する物理ノード(サーバ)を決定すると、コンシステントハッシュ環上から、その物理ノードに対応して配置された仮想ノードを取り除き、仮想ノードの新たな担当領域(ハッシュ値103)を決定して、新たな仮想ノード割当情報100(図5)を生成する。そして、ディスパッチャD1の仮想ノード割当部16は、自身の仮想ノード割当情報100を、生成した新たな仮想ノード割当情報100で更新した上で、削除するサーバを管理するディスパッチャD2を除いた、各ディスパッチャD(D3,D4)に、新たな仮想ノード割当情報100を送信する(ステップS43)。そして、各ディスパッチャD(D3,D4)のアクセス情報管理部15は、受信した新たな仮想ノード割当情報100を用いて、記憶部40に記憶された仮想ノード割当情報100を更新する。また、仮想ノード割当部16は、削除するサーバを管理するディスパッチャD(ここでは、ディスパッチャD2)に対して、削除通知を送信する(ステップS44)。
When the virtual
以上説明したように、本実施形態に係る、分散処理システム1およびディスパッチャDによれば、コンシステントハッシュを適用したKVS形式のデータベースにおいて、順序性のあるハッシュ関数を用いることで、範囲検索を行う際の応答速度を高速化できる。さらに、コンシステントハッシュ環上において、仮想サーバのアクセス数104をカウントすることにより、アクセスの頻度が偏った箇所に優先的に仮想ノードを割り当て、サーバ負荷を均等にすることができる。
As described above, according to the distributed
(変形例1)
本実施形態においては、図8および図9に示したように、複数のディスパッチャDのうちの1つがコーディネータとして機能することにより、サーバの追加や削除に伴う仮想ノード割当処理を行った。しかし、本発明は、これに限定されず、サーバの追加や削除の情報を、ゴシッププロトコル(Gossip protocol)により、配信負荷を抑制しながら、複数のディスパッチャD全体に配信し、各ディスパッチャDの仮想ノード割当部16それぞれが仮想ノード割当処理を実行するようにしてもよい。
(Modification 1)
In the present embodiment, as shown in FIGS. 8 and 9, one of the plurality of dispatchers D functions as a coordinator, thereby performing a virtual node assignment process associated with addition or deletion of servers. However, the present invention is not limited to this, and server addition / deletion information is distributed to a plurality of dispatchers D while suppressing a distribution load by using a gossip protocol (Gossip protocol). Each of the
(変形例2)
また、本実施形態のように、複数のディスパッチャDのうちの1つがコーディネータとして機能する構成に替えて、各ディスパッチャDと接続される管理装置(分散処理管理装置)を設ける構成にしてもよい。
この場合、管理装置(分散処理管理装置)は、仮想ノード割当情報100を記憶する記憶部と、アクセス情報収集部と、仮想ノード割当情報生成部を備える。
そして、管理装置のアクセス情報収集部が、各ディスパッチャDに対し、図8に示したアクセス情報集計通知を送信し、各ディスパッチャDがカウントしたアクセス情報を、ディスパッチャDそれぞれから受信する。
(Modification 2)
Further, as in this embodiment, instead of a configuration in which one of the plurality of dispatchers D functions as a coordinator, a configuration in which a management device (distributed processing management device) connected to each dispatcher D may be provided.
In this case, the management apparatus (distributed processing management apparatus) includes a storage unit that stores the virtual
Then, the access information collection unit of the management device transmits the access information aggregation notification shown in FIG. 8 to each dispatcher D, and receives the access information counted by each dispatcher D from each dispatcher D.
管理装置の仮想ノード割当情報生成部は、分散管理システム1に新たなサーバが追加される場合、アクセス情報収集部が収集したアクセス情報に基づき、仮想ノード毎のアクセス数の合計値を計算し、計算したアクセス数の合計値が最も大きい仮想ノードのコンシステントハッシュ環上の担当領域に、新たなサーバの仮想ノードを配置し、新たな仮想ノード割当情報100を生成する。そして、生成した新たな仮想ノード割当情報100を、管理装置から各ディスパッチャDに配信する。
When a new server is added to the distributed
なお、仮想ノード割当情報生成部は、新たな仮想ノード割当情報100を生成する際に、計算したアクセス数の合計値が最も大きい仮想ノードのコンシステントハッシュ環上の担当領域に、新たなサーバの仮想ノードを配置し、そのアクセス数の合計値を、仮想ノードを配置したことにより分割された領域の領域比に応じて分配して、新たな仮想ノードのアクセス数の合計値として設定し、設定後のコンシステントハッシュ環上の仮想ノードにおいて、アクセス数の合計値が最も大きい仮想ノードの担当領域に、新たなサーバの仮想ノードを配置する仮想ノード割当処理を、新たなサーバに設定される所定数の仮想ノードがコンシステントハッシュ環上に配置し終えるまで実行して、新たな仮想ノード割当情報100を生成してもよい。
When the virtual node allocation information generation unit generates new virtual
(変形例3)
また、本実施形態に係るディスパッチャDのアクセス情報管理部15は、自身のディスパッチャDが入力データ(クエリ)を処理する度に、すべての入力データについて、仮想ノードのアクセス数104のカウント処理を行うものとして説明した(図6参照)。しかしながら、アクセス情報管理部15は、サーバへアクセスするすべての入力データについてカウント処理を行うのではなく、例えば、所定期間のサンプリングによりカウント処理を行うようにしてもよい。この場合、例えば、時間平均や波形推測等の一般的に用いられる手法により補正を行うことにより、サーバ負荷の均等化を実現する。
(Modification 3)
Further, the access
1 分散処理システム
2 外部システム
3 端末
4 入力装置
5 出力装置
10 制御部
11 情報受信部
12 構文解析部
13 振り分け処理部
14 保存情報管理部
15 アクセス情報管理部
16 仮想ノード割当部
17 情報送信部
20 入出力部
30 メモリ部
40 記憶部
100 仮想ノード割当情報
131 ハッシュ値計算部
B ロードバランサ
D ディスパッチャ
P プロセッサ
S ストレージ
DESCRIPTION OF
Claims (6)
前記ディスパッチャは、
コンシステントハッシュ環上における、前記複数のサーバの仮想ノードの担当領域を示す仮想ノード割当情報を記憶する記憶部と、
前記入力装置から前記入力情報を受信し、前記入力情報に対して、順序性を保持したハッシュ関数を用いてハッシュ値を計算し、前記計算したハッシュ値が、前記コンシステントハッシュ環上に配置された前記複数のサーバのいずれの仮想ノードの担当領域に含まれるかを、前記仮想ノード割当情報に基づき判定し、前記計算したハッシュ値を担当領域に含むと判定された仮想ノードの基となるサーバを、振り分け先となる前記サーバとして決定し、前記決定したサーバに前記入力情報を送信する振り分け処理部と、
前記コンシステントハッシュ環上に配置された仮想ノードの担当領域に対し、前記入力情報のハッシュ値が当該仮想ノードの担当領域に含まれることを示すアクセス数を、前記仮想ノード毎にカウントするアクセス情報管理部と、
前記分散処理システムに、新たなサーバが追加される場合に、自身以外のディスパッチャから、前記仮想ノード毎のアクセス数を取得して、前記仮想ノード毎のアクセス数の合計値を計算し、前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置し、新たな前記仮想ノード割当情報を生成して、前記自身以外のディスパッチャに送信する仮想ノード割当部と、
を備えることを特徴とする分散処理システム。 A distributed processing system comprising a plurality of dispatchers that distribute input information received from an input device to a server, and a plurality of servers that execute processing including data storage and retrieval based on the input information received from the dispatcher. And
The dispatcher is
A storage unit for storing virtual node allocation information indicating a region in charge of a virtual node of the plurality of servers on the consistent hash ring;
The input information is received from the input device, a hash value is calculated with respect to the input information using a hash function that retains order, and the calculated hash value is arranged on the consistent hash ring. Which server of the plurality of servers is included in the assigned area of the virtual node is determined based on the virtual node allocation information, and the server that is the basis of the virtual node that is determined to include the calculated hash value in the assigned area Is determined as the server to be a distribution destination, and a distribution processing unit that transmits the input information to the determined server;
Access information that counts, for each virtual node, the number of accesses indicating that the hash value of the input information is included in the area in charge of the virtual node for the area in charge of the virtual node arranged on the consistent hash ring The management department,
When a new server is added to the distributed processing system, the number of accesses for each virtual node is obtained from a dispatcher other than itself, and the total number of accesses for each virtual node is calculated. The virtual node of the new server is arranged in the assigned area on the consistent hash ring of the virtual node with the largest total number of accesses, and new virtual node allocation information is generated, A virtual node assignment unit to send to the dispatcher;
A distributed processing system comprising:
前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置した場合に、当該アクセス数の合計値を、前記仮想ノードを配置したことにより分割された領域の領域比に応じて分配し、新たな仮想ノードのアクセス数の合計値として設定し、前記設定後のコンシステントハッシュ環上の仮想ノードにおいて、前記アクセス数の合計値が最も大きい仮想ノードの担当領域に、前記新たなサーバの仮想ノードを配置する仮想ノード割当処理を、前記新たなサーバに設定される所定数の仮想ノードが前記コンシステントハッシュ環上に配置し終えるまで実行し、前記新たな仮想ノード割当情報を生成すること
を特徴とする請求項1に記載の分散処理システム。 The virtual node allocation unit
When the virtual node of the new server is arranged in the assigned area on the consistent hash ring of the virtual node with the largest total value of the calculated access number, the total value of the access number is calculated as the virtual node. Distribute according to the area ratio of the areas divided by the arrangement, set as the total value of the number of accesses of the new virtual node, in the virtual node on the consistent hash ring after the setting, the total of the number of accesses A virtual node allocation process for allocating the virtual node of the new server in the assigned area of the virtual node having the largest value is arranged on the consistent hash ring with a predetermined number of virtual nodes set in the new server. The distributed processing system according to claim 1, wherein the distributed virtual processing system is executed until completion, and the new virtual node allocation information is generated.
コンシステントハッシュ環上における、前記複数のサーバの仮想ノードの担当領域を示す仮想ノード割当情報を記憶する記憶部と、
前記入力装置から前記入力情報を受信し、前記入力情報に対して、順序性を保持したハッシュ関数を用いてハッシュ値を計算し、前記計算したハッシュ値が、前記コンシステントハッシュ環上に配置された前記複数のサーバのいずれの仮想ノードの担当領域に含まれるかを、前記仮想ノード割当情報に基づき判定し、前記計算したハッシュ値を担当領域に含むと判定された仮想ノードの基となるサーバを、振り分け先となる前記サーバとして決定し、前記決定したサーバに前記入力情報を送信する振り分け処理部と、
前記コンシステントハッシュ環上に配置された仮想ノードの担当領域に対し、前記入力情報のハッシュ値が当該仮想ノードの担当領域に含まれることを示すアクセス数を、前記仮想ノード毎にカウントするアクセス情報管理部と、
前記分散処理システムに、新たなサーバが追加される場合に、自身以外のディスパッチャから、前記仮想ノード毎のアクセス数を取得して、前記仮想ノード毎のアクセス数の合計値を計算し、前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置し、新たな前記仮想ノード割当情報を生成して、前記自身以外のディスパッチャに送信する仮想ノード割当部と、
を備えることを特徴とするディスパッチャ。 A distributed processing system comprising: a plurality of dispatchers that distribute input information received from an input device to a server; and a plurality of servers that execute processing including data storage and retrieval based on the input information received from the dispatcher. A dispatcher,
A storage unit for storing virtual node allocation information indicating a region in charge of a virtual node of the plurality of servers on the consistent hash ring;
The input information is received from the input device, a hash value is calculated with respect to the input information using a hash function that retains order, and the calculated hash value is arranged on the consistent hash ring. Which server of the plurality of servers is included in the assigned area of the virtual node is determined based on the virtual node allocation information, and the server that is the basis of the virtual node that is determined to include the calculated hash value in the assigned area Is determined as the server to be a distribution destination, and a distribution processing unit that transmits the input information to the determined server;
Access information that counts, for each virtual node, the number of accesses indicating that the hash value of the input information is included in the area in charge of the virtual node for the area in charge of the virtual node arranged on the consistent hash ring The management department,
When a new server is added to the distributed processing system, the number of accesses for each virtual node is obtained from a dispatcher other than itself, and the total number of accesses for each virtual node is calculated. The virtual node of the new server is arranged in the assigned area on the consistent hash ring of the virtual node with the largest total number of accesses, and new virtual node allocation information is generated, A virtual node assignment unit to send to the dispatcher;
A dispatcher comprising:
前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置した場合に、当該アクセス数の合計値を、前記仮想ノードを配置したことにより分割された領域の領域比に応じて分配し、新たな仮想ノードのアクセス数の合計値として設定し、前記設定後のコンシステントハッシュ環上の仮想ノードにおいて、前記アクセス数の合計値が最も大きい仮想ノードの担当領域に、前記新たなサーバの仮想ノードを配置する仮想ノード割当処理を、前記新たなサーバに設定される所定数の仮想ノードが前記コンシステントハッシュ環上に配置し終えるまで実行し、前記新たな仮想ノード割当情報を生成すること
を特徴とする請求項3に記載のディスパッチャ。 The virtual node allocation unit
When the virtual node of the new server is arranged in the assigned area on the consistent hash ring of the virtual node with the largest total value of the calculated access number, the total value of the access number is calculated as the virtual node. Distribute according to the area ratio of the areas divided by the arrangement, set as the total value of the number of accesses of the new virtual node, in the virtual node on the consistent hash ring after the setting, the total of the number of accesses A virtual node allocation process for allocating the virtual node of the new server in the assigned area of the virtual node having the largest value is arranged on the consistent hash ring with a predetermined number of virtual nodes set in the new server. The dispatcher according to claim 3, wherein the dispatcher executes until completion and generates the new virtual node allocation information.
コンシステントハッシュ環上における、前記複数のサーバの仮想ノードの担当領域を示す仮想ノード割当情報を記憶する記憶部と、
前記コンシステントハッシュ環上に配置された仮想ノードの担当領域に対し、前記入力情報のハッシュ値が当該仮想ノードの担当領域に含まれることを示すアクセス数を、前記仮想ノード毎にカウントしたアクセス情報を、前記複数のディスパッチャそれぞれから収集するアクセス情報収集部と、
前記分散処理システムに新たなサーバが追加される場合、前記仮想ノード毎のアクセス数の合計値を計算し、前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置し、新たな前記仮想ノード割当情報を生成して、前記複数のディスパッチャに配信する仮想ノード割当情報生成部と、
を備えることを特徴とする分散処理管理装置。 Connected to the plurality of dispatchers that distribute input information received from the input device to the server, the plurality of servers that execute processing including data storage and retrieval based on the input information received from the dispatcher, and the plurality of dispatchers A distributed processing management device of a distributed processing system comprising: a distributed processing management device that manages the server that is a distribution destination of input information received by the dispatcher,
A storage unit for storing virtual node allocation information indicating a region in charge of a virtual node of the plurality of servers on the consistent hash ring;
Access information obtained by counting, for each virtual node, the number of accesses indicating that the hash value of the input information is included in the assigned area of the virtual node for the assigned area of the virtual node arranged on the consistent hash ring An access information collection unit that collects from each of the plurality of dispatchers;
When a new server is added to the distributed processing system, the total value of the number of accesses for each virtual node is calculated, and the virtual node having the largest total value of the calculated number of accesses is assigned to the consistent hash ring. A virtual node allocation information generating unit that arranges virtual nodes of the new server in an area, generates new virtual node allocation information, and distributes the virtual node allocation information to the plurality of dispatchers;
A distributed processing management device comprising:
前記計算したアクセス数の合計値が最も大きい仮想ノードの前記コンシステントハッシュ環上の担当領域に、前記新たなサーバの仮想ノードを配置した場合に、当該アクセス数の合計値を、前記仮想ノードを配置したことにより分割された領域の領域比に応じて分配し、新たな仮想ノードのアクセス数の合計値として設定し、前記設定後のコンシステントハッシュ環上の仮想ノードにおいて、前記アクセス数の合計値が最も大きい仮想ノードの担当領域に、前記新たなサーバの仮想ノードを配置する仮想ノード割当処理を、前記新たなサーバに設定される所定数の仮想ノードが前記コンシステントハッシュ環上に配置し終えるまで実行し、前記新たな仮想ノード割当情報を生成すること
を特徴とする請求項5に記載の分散処理管理装置。 The virtual node allocation information generation unit
When the virtual node of the new server is arranged in the assigned area on the consistent hash ring of the virtual node with the largest total value of the calculated access number, the total value of the access number is calculated as the virtual node. Distribute according to the area ratio of the areas divided by the arrangement, set as the total value of the number of accesses of the new virtual node, in the virtual node on the consistent hash ring after the setting, the total of the number of accesses A virtual node allocation process for allocating the virtual node of the new server in the assigned area of the virtual node having the largest value is arranged on the consistent hash ring with a predetermined number of virtual nodes set in the new server. 6. The distributed processing management apparatus according to claim 5, wherein the processing is executed until the processing is completed, and the new virtual node allocation information is generated.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012042483A JP5719323B2 (en) | 2012-02-28 | 2012-02-28 | Distributed processing system, dispatcher and distributed processing management device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012042483A JP5719323B2 (en) | 2012-02-28 | 2012-02-28 | Distributed processing system, dispatcher and distributed processing management device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013178677A true JP2013178677A (en) | 2013-09-09 |
JP5719323B2 JP5719323B2 (en) | 2015-05-13 |
Family
ID=49270250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012042483A Expired - Fee Related JP5719323B2 (en) | 2012-02-28 | 2012-02-28 | Distributed processing system, dispatcher and distributed processing management device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5719323B2 (en) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015184877A (en) * | 2014-03-24 | 2015-10-22 | 株式会社日立ソリューションズ | Data processor and data processing program |
KR101574871B1 (en) | 2012-07-06 | 2015-12-04 | 엔이씨 유럽 리미티드 | Method and system for storing and reading data in or from a key value storage |
JP2017054190A (en) * | 2015-09-07 | 2017-03-16 | 日本電信電話株式会社 | Node and method for optimizing slot |
JP2017068666A (en) * | 2015-09-30 | 2017-04-06 | 国立研究開発法人情報通信研究機構 | Load dispersing method for use in cloud storage permitting range searches |
JP2017220141A (en) * | 2016-06-10 | 2017-12-14 | 富士通株式会社 | Program, method, and device for information management |
CN110457128A (en) * | 2019-07-11 | 2019-11-15 | 阿里巴巴集团控股有限公司 | Method for allocating tasks, device and system |
CN112132683A (en) * | 2020-09-18 | 2020-12-25 | 泰康保险集团股份有限公司 | Method and device for issuing instruction, electronic equipment and storage medium |
CN112231080A (en) * | 2020-09-27 | 2021-01-15 | 武汉物易云通网络科技有限公司 | Task scheduling method and device based on multiple hash rings with different precisions |
CN112230861A (en) * | 2020-10-26 | 2021-01-15 | 金钱猫科技股份有限公司 | Data storage method and terminal based on consistent hash algorithm |
CN112817752A (en) * | 2021-01-21 | 2021-05-18 | 西安交通大学 | Distributed database dynamic load balancing method |
CN113037791A (en) * | 2019-12-24 | 2021-06-25 | 中国电信股份有限公司 | Operation and maintenance method and system, and computer readable storage medium |
CN113315825A (en) * | 2021-05-24 | 2021-08-27 | 康键信息技术(深圳)有限公司 | Distributed request processing method, device, equipment and storage medium |
CN113923218A (en) * | 2021-10-09 | 2022-01-11 | 天翼物联科技有限公司 | Distributed deployment method, device, equipment and medium for coding and decoding plug-ins |
JP2022528726A (en) * | 2019-04-12 | 2022-06-15 | グラブタクシー ホールディングス プライベート リミテッド | K-Distributed in-memory spatial data store for nearest neighbor search |
CN115297131A (en) * | 2022-08-01 | 2022-11-04 | 东北大学 | Sensitive data distributed storage method based on consistent hash |
CN118568778A (en) * | 2024-07-31 | 2024-08-30 | 深圳市一航网络信息技术有限公司 | Data storage method and system based on distributed architecture |
-
2012
- 2012-02-28 JP JP2012042483A patent/JP5719323B2/en not_active Expired - Fee Related
Non-Patent Citations (8)
Title |
---|
CSND200900248009; 首藤一幸: '雲の向こうの未来 クラウドをつかむ' UNIX magazine 第24巻 第2号, 20090401, pp.78〜91, 株式会社アスキー・メディアワークス * |
CSNG200900464003; 川上大輔ほか4名: 'データのアクセス頻度を考慮した動的負荷分散機構のDynamoへの適用' 情報処理学会研究報告 平成21年度[CD-ROM]情報処理学会研究報告 システムソフトウェアとオペレ 第2009-0S-111巻 第3号, 20090615, pp.1〜8, 社団法人情報処理学会 * |
CSNG201200014012; 岩佐絵里子ほか5名: 'スケールアウト型セッション制御サーバにおける動的構成変更負荷軽減方式' 電子情報通信学会技術研究報告 第111巻 第408号, 20120119, pp.65〜70, 社団法人電子情報通信学会 * |
CSNJ201110053102; 中里彦俊ほか3名: 'サーバ性能・サーバ負荷変動を考慮したコンシステントハッシュ法における仮想サーバ配置手法' 電子情報通信学会2011年通信ソサイエティ大会講演論文集2 , 20110830, p. 102, 社団法人電子情報通信学会 * |
JPN6014049060; 中里彦俊ほか3名: 'サーバ性能・サーバ負荷変動を考慮したコンシステントハッシュ法における仮想サーバ配置手法' 電子情報通信学会2011年通信ソサイエティ大会講演論文集2 , 20110830, p. 102, 社団法人電子情報通信学会 * |
JPN6014049066; 川上大輔ほか4名: 'データのアクセス頻度を考慮した動的負荷分散機構のDynamoへの適用' 情報処理学会研究報告 平成21年度[CD-ROM]情報処理学会研究報告 システムソフトウェアとオペレ 第2009-0S-111巻 第3号, 20090615, pp.1〜8, 社団法人情報処理学会 * |
JPN6014049067; 岩佐絵里子ほか5名: 'スケールアウト型セッション制御サーバにおける動的構成変更負荷軽減方式' 電子情報通信学会技術研究報告 第111巻 第408号, 20120119, pp.65〜70, 社団法人電子情報通信学会 * |
JPN6014049073; 首藤一幸: '雲の向こうの未来 クラウドをつかむ' UNIX magazine 第24巻 第2号, 20090401, pp.78〜91, 株式会社アスキー・メディアワークス * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101574871B1 (en) | 2012-07-06 | 2015-12-04 | 엔이씨 유럽 리미티드 | Method and system for storing and reading data in or from a key value storage |
JP2015184877A (en) * | 2014-03-24 | 2015-10-22 | 株式会社日立ソリューションズ | Data processor and data processing program |
JP2017054190A (en) * | 2015-09-07 | 2017-03-16 | 日本電信電話株式会社 | Node and method for optimizing slot |
JP2017068666A (en) * | 2015-09-30 | 2017-04-06 | 国立研究開発法人情報通信研究機構 | Load dispersing method for use in cloud storage permitting range searches |
JP2017220141A (en) * | 2016-06-10 | 2017-12-14 | 富士通株式会社 | Program, method, and device for information management |
JP7349506B2 (en) | 2019-04-12 | 2023-09-22 | グラブタクシー ホールディングス プライベート リミテッド | Distributed in-memory spatial data store for K-nearest neighbor search |
JP2022528726A (en) * | 2019-04-12 | 2022-06-15 | グラブタクシー ホールディングス プライベート リミテッド | K-Distributed in-memory spatial data store for nearest neighbor search |
CN110457128A (en) * | 2019-07-11 | 2019-11-15 | 阿里巴巴集团控股有限公司 | Method for allocating tasks, device and system |
CN110457128B (en) * | 2019-07-11 | 2023-12-22 | 创新先进技术有限公司 | Task allocation method, device and system |
CN113037791A (en) * | 2019-12-24 | 2021-06-25 | 中国电信股份有限公司 | Operation and maintenance method and system, and computer readable storage medium |
CN113037791B (en) * | 2019-12-24 | 2023-03-28 | 中国电信股份有限公司 | Operation and maintenance method and system, and computer readable storage medium |
CN112132683A (en) * | 2020-09-18 | 2020-12-25 | 泰康保险集团股份有限公司 | Method and device for issuing instruction, electronic equipment and storage medium |
CN112231080A (en) * | 2020-09-27 | 2021-01-15 | 武汉物易云通网络科技有限公司 | Task scheduling method and device based on multiple hash rings with different precisions |
CN112231080B (en) * | 2020-09-27 | 2024-01-26 | 武汉物易云通网络科技有限公司 | Task scheduling method and device based on multiple hash rings with different precision |
CN112230861A (en) * | 2020-10-26 | 2021-01-15 | 金钱猫科技股份有限公司 | Data storage method and terminal based on consistent hash algorithm |
CN112817752A (en) * | 2021-01-21 | 2021-05-18 | 西安交通大学 | Distributed database dynamic load balancing method |
CN112817752B (en) * | 2021-01-21 | 2023-12-19 | 西安交通大学 | Dynamic load balancing method for distributed database |
CN113315825A (en) * | 2021-05-24 | 2021-08-27 | 康键信息技术(深圳)有限公司 | Distributed request processing method, device, equipment and storage medium |
CN113923218A (en) * | 2021-10-09 | 2022-01-11 | 天翼物联科技有限公司 | Distributed deployment method, device, equipment and medium for coding and decoding plug-ins |
CN113923218B (en) * | 2021-10-09 | 2023-07-21 | 天翼物联科技有限公司 | Distributed deployment method, device, equipment and medium for coding and decoding plug-in |
CN115297131A (en) * | 2022-08-01 | 2022-11-04 | 东北大学 | Sensitive data distributed storage method based on consistent hash |
CN118568778A (en) * | 2024-07-31 | 2024-08-30 | 深圳市一航网络信息技术有限公司 | Data storage method and system based on distributed architecture |
Also Published As
Publication number | Publication date |
---|---|
JP5719323B2 (en) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5719323B2 (en) | Distributed processing system, dispatcher and distributed processing management device | |
US11372888B2 (en) | Adaptive distribution for hash operations | |
US11436224B2 (en) | Parallel processing database system with a shared metadata store | |
US20200274923A1 (en) | Dissemination of node metrics in server clusters | |
KR102133951B1 (en) | Short link handling methods, devices, and servers | |
AU2014212780B2 (en) | Data stream splitting for low-latency data access | |
US10713223B2 (en) | Opportunistic gossip-type dissemination of node metrics in server clusters | |
CN103902735B (en) | Application perception data routing method oriented to large-scale cluster deduplication and system | |
CN106708917B (en) | A kind of data processing method, device and OLAP system | |
JP2020102189A (en) | Method, apparatus and system for processing data | |
JP5238915B1 (en) | Distributed database system | |
US20200242118A1 (en) | Managing persistent database result sets | |
WO2013046667A1 (en) | Information system, program and method for managing same, data processing method and program, and data structure | |
US11675806B2 (en) | Aggregate and transactional networked database query processing | |
WO2016092604A1 (en) | Data processing system and data access method | |
JP2014164554A (en) | Load distribution determination system | |
CN113037791A (en) | Operation and maintenance method and system, and computer readable storage medium | |
JP2001318942A (en) | Information providing system and mediator | |
JP5723330B2 (en) | Distributed processing system and distributed processing method | |
JP5594460B2 (en) | Transmission information control apparatus, method and program | |
CN109417566A (en) | Controlled seed dispersal based on constraint | |
Zhygmanovskyi et al. | Cloud service provisioning based on peer-to-peer network for flexible service sharing and discovery | |
KR101512647B1 (en) | Method For Choosing Query Processing Engine | |
JP2015132972A (en) | Data relocation system | |
JP2013148950A (en) | Load distribution program and load distribution device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140305 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140502 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20140528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141125 |
|
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: 20150317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150320 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5719323 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |