JP5508346B2 - Distributed data management system, distributed data management method, and distributed data management program - Google Patents
Distributed data management system, distributed data management method, and distributed data management program Download PDFInfo
- Publication number
- JP5508346B2 JP5508346B2 JP2011131524A JP2011131524A JP5508346B2 JP 5508346 B2 JP5508346 B2 JP 5508346B2 JP 2011131524 A JP2011131524 A JP 2011131524A JP 2011131524 A JP2011131524 A JP 2011131524A JP 5508346 B2 JP5508346 B2 JP 5508346B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- identifier
- server
- storage unit
- request signal
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、データを複数のサーバに分散して管理する分散データ管理システム、分散データ管理方法及び分散データ管理プログラムに関する。 The present invention relates to a distributed data management system, a distributed data management method, and a distributed data management program for managing data distributed to a plurality of servers.
データベースのように大規模なデータ管理を行う際に、複数のサーバを接続して高い処理性能を獲得するために、分散データ管理システムが用いられる。分散データ管理システムは、複数のサーバが協調して動作する分散システムであり、当該システム全体で管理されるデータを、個々のサーバが分担して管理するものである。かかる分散データ管理システムは、医療、通信等といった高いリアルタイム性が求められる分野において用いられており、分散データ管理システムを利用するクライアントからのデータ取得要求に対し、当該クライアントのアプリケーションごとに定められた一定時間内にデータを返信することが望まれる。 When performing large-scale data management like a database, a distributed data management system is used to connect a plurality of servers to obtain high processing performance. The distributed data management system is a distributed system in which a plurality of servers operate in cooperation, and each server shares and manages data managed by the entire system. Such a distributed data management system is used in fields requiring high real-time properties such as medical care and communication, and is determined for each client application in response to a data acquisition request from a client using the distributed data management system. It is desirable to return data within a certain time.
データを複数のサーバに分散して管理する手法として、コンシステント・ハッシングが挙げられる(非特許文献1参照)。図7に示すように、コンシステント・ハッシングは、分散データ管理プログラムを実装するサーバである複数のノード130(130A〜130F)と、ノード130によって管理されるデータのそれぞれに識別子を割り当て、あるノード130が管理するデータの識別子の範囲を、当該ノード130の識別子と、当該ノード130よりも値の小さい識別子を持つノード130の中では最も大きい値の識別子を持つノード130の識別子との間に定める技術である。なお、図7のように、ノード130及びデータを識別子の値の順に並べたものは、コンシステント・ハッシングにおいてID空間と呼ばれる。ここで、ノード130及びデータの識別子は、ハッシュ関数等の無作為な値を算出する手法によって決定されるので、個々のノード130が担当するデータの量は、確率的に等しくなり、分散データ管理システムにおいて、各ノード130に対して平等に近い負荷分散を行うことが可能になる。 As a technique for managing data by distributing it to a plurality of servers, there is consistent hashing (see Non-Patent Document 1). As shown in FIG. 7, consistent hashing assigns an identifier to each of a plurality of nodes 130 (130A to 130F), which are servers that implement a distributed data management program, and data managed by the node 130. The range of identifiers of data managed by the node 130 is determined between the identifier of the node 130 and the identifier of the node 130 having the largest identifier among the nodes 130 having identifiers smaller than the node 130. Technology. As shown in FIG. 7, the node 130 and the data arranged in the order of the identifier values are called ID space in the consistent hashing. Here, since the node 130 and the identifier of the data are determined by a method of calculating a random value such as a hash function, the amount of data handled by each node 130 is stochastically equal and distributed data management In the system, it is possible to perform load sharing close to equality for each node 130.
各ノード130は、他の全てのノード130の識別子と当該ノード130のアドレス(IPアドレス等)が関連付けられたアドレス表を保持する。コンシステント・ハッシングを用いた分散データ管理システムでは、当該システムを構成するノード130の数が増減した場合であっても、複数のノード130間で分担していたデータの担当替えがごく一部で済み、分散データ管理システム全体から見ればノード130の数によらず一定のデータ移動しか発生しない。 Each node 130 holds an address table in which identifiers of all other nodes 130 are associated with addresses (such as IP addresses) of the nodes 130. In a distributed data management system using consistent hashing, even if the number of nodes 130 constituting the system increases or decreases, only a part of the data is reassigned among a plurality of nodes 130. From the viewpoint of the entire distributed data management system, only certain data movement occurs regardless of the number of nodes 130.
ここで、非特許文献1には、ノード130の数を動的に変更した際のデータ移管の具体的手法については、開示されていない。データの移管に関する最も単純な手法としては、ノード130の数の変更時に、全てのデータ送信(データを必要とするクライアントへの送信)・保管(データを担当するノード130での保管)要求の処理を停止し、データを前の担当ノード130から新たな担当ノード130へと全て移管し、その後でデータ送信・保管要求の処理を再開するという手法が考えられる。
Here, Non-Patent
しかし、医療、通信等といった高リアルタイム性を必要とする分野においては、このようにデータ送信・保管要求を停止して全てのデータを移管するという手法は、データの移管にかかる時間が長くなり、データ送信・保管要求の処理の再開が遅れてしまうため、適用が困難である。 However, in fields that require high real-time properties such as medical care and communication, the method of transferring all data by stopping the data transmission / storage request in this way takes a long time to transfer the data, Application of data transmission / storage request is difficult because it is delayed.
そこで、新たなノード130上で実際にデータが必要になった際に、前の担当ノード130からこのデータを新たなノード130へ移管し処理を行う手法が考えられる。かかる手法では、予め全てのデータを移管する手法と比べて、データの移管が散発的に発生するため、データ送信・保管要求を受け付けながらデータの移管を行うことができ、リアルタイム性への影響が少ない。一方で、データの移管が完了するまでの時間は長くなり、全てのデータに対してデータ送信・保管要求等の「実際にデータが必要になる」契機が発生するまで、データの移管は完了しない。 Therefore, when data is actually needed on the new node 130, a method of transferring this data from the previous node 130 to the new node 130 and performing processing can be considered. In this method, data transfer occurs sporadically compared to the method of transferring all data in advance, so data can be transferred while accepting data transmission / storage requests, which has an impact on real-time performance. Few. On the other hand, the time until the data transfer is completed is long, and the data transfer will not be completed until an “actual data is required” opportunity such as a data transmission / storage request occurs for all data. .
このようなデータ移管の手法においては、分散データ管理システムに新たに追加されたノード130にデータ送信・保管要求が届き、ノード130上に処理対象のデータがないことを確認したことを契機に、どのノード130が前の担当ノード130であるかの探索を行うことが考えられる。 In such a data transfer method, when a data transmission / storage request arrives at the node 130 newly added to the distributed data management system and it is confirmed that there is no data to be processed on the node 130, It is conceivable to search for which node 130 is the previous responsible node 130.
一般的には、図8(a)に示すように、前の担当ノード130Aは、新規に追加されたノード130Gよりも大きい識別子で、かつ最も識別子の値の近いノード130である可能性が高いため、新たな担当ノード130Gは、ノード130Aへデータの有無の問い合わせを行うことが考えられる。このように、ID空間において隣接するノード130からのデータ移管は、一度に追加されるノード130の数が小さい(例えば、1つのみ)場合には成立する。
In general, as shown in FIG. 8A, the previous
一方、一度に追加されるノード130の数が多い場合には、図8(b)に示すように、新たな担当ノード130Gと前の担当ノード130Aとの間に、1つ以上の他の新規ノード130(130H,130I,130J)が存在する可能性がある。このような場合、単純にデータ送信・保管要求を受けた新たな担当ノード130Gが、隣接するノード130Hにデータの問い合わせを行っても、問い合わせ先のノード130Hも追加されたばかりで何のデータも持たないため、新たな担当ノード130Gは、所望のデータを取得することができない。
On the other hand, when the number of nodes 130 added at a time is large, as shown in FIG. 8B, one or more other new nodes are placed between the new
ここで、隣接するノード130へ問い合わせた結果、所望のデータを取得できない場合、順繰りに更に隣のノード130(130I,130J,…)へと問い合わせを行う手法が考えられる。かかる手法では、新たな担当ノード130Gと前の担当ノード130Aとの間に隣接して追加されたノード130の台数Nに比例して、実際のデータが発見されるまでに複数ホップ(Nホップ)がかかるため、Nの値に比例してリアルタイム性が損なわれる。
Here, as a result of making an inquiry to the adjacent node 130, if desired data cannot be acquired, a method of making an inquiry to the adjacent nodes 130 (130I, 130J,...) In order is conceivable. In this method, a plurality of hops (N hops) are required until actual data is found in proportion to the number N of nodes 130 added adjacently between the new assigned
前記したように、ノード130の識別子はハッシュ関数等により無作為に与えられるため、Nの値は一定ではないが、追加前の全てのノード130の数に対する追加されたノード130の数の比に比例して大きくなる。 As described above, since the identifier of the node 130 is randomly given by a hash function or the like, the value of N is not constant, but the ratio of the number of added nodes 130 to the number of all nodes 130 before the addition is used. Increase proportionally.
リアルタイム性を損ねない手法としては、データ送信・保管要求を受けた新たな担当ノード130Gが所望のデータを持たない場合に、他の全てのノード130へと問い合わせを行うものがある。かかる手法では、データの探索に複数ホップを要しないものの、システム全体への問い合わせを行うため、全ノード130の数に比例して処理負荷が増大し、スケーラビリティを著しく損ねる。
As a technique that does not impair the real-time property, there is a method that inquires all other nodes 130 when the
本発明は、前記した事情に鑑みて創作されたものであり、複数のサーバが追加された場合であっても、リアルタイムに、かつスケーラビリティを損なわずにデータを移管することが可能な分散データ管理システム、分散データ管理方法及び分散データ管理プログラムを提供することを課題とする。 The present invention was created in view of the circumstances described above, and even when a plurality of servers are added, distributed data management capable of transferring data in real time and without losing scalability. It is an object to provide a system, a distributed data management method, and a distributed data management program.
前記課題を解決するため、本発明の分散データ管理システムは、複数のサーバがデータを分散して管理する分散データ管理システムであって、前記サーバは、データと当該データの識別子とが関連付けて記憶される第一の記憶部と、前記複数のサーバの識別子及びアドレスとが関連付けられたアドレス表が記憶される第二の記憶部と、前記複数のサーバの増減時に、前記アドレス表を新たに生成して当該アドレス表の生成時刻とともに前記第二の記憶部に記憶させるアドレス表生成部と、クライアントから送信された、データの識別子と当該データの生成時刻とを含み、前記データの送信又は保管を要求する要求信号を取得する要求信号取得部と、取得された前記要求信号に含まれる前記データの識別子と、前記第二の記憶部に記憶された最新の前記アドレス表の前記複数のサーバの識別子と、に基づいて、前記データの担当サーバを特定する担当サーバ特定部と、前記第二の記憶部に記憶された最新の前記アドレス表のアドレスを用いて、特定された前記担当サーバに前記要求信号を転送する要求信号転送部と、前記データの送信を要求する前記要求信号に含まれる前記データの識別子に基づいて第一の記憶部を参照し、対応する前記データを読み出して前記クライアントへ送信する、又は、前記データの保管を要求する前記要求信号に含まれる前記データの識別子に基づいて前記第一の記憶部を参照し、対応する前記データの保管の成否を判定して判定結果を示す保管成否信号を前記クライアントへ送信する応答部と、前記要求信号に含まれる前記データの識別子に対応するデータが前記第一の記憶部に記憶されていない場合に、前記第二の記憶部に記憶されたアドレス表のうち、当該アドレス表の生成時刻が前記要求信号に含まれる前記データの生成時刻よりも古くかつ最新のアドレス表を用いて、前記データの前の担当サーバを特定する前担当サーバ特定部と、特定された前記前の担当サーバとの間で前記データ及び当該データの識別子の転送を行うデータ転送部と、転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させるデータ更新部と、を備えることを特徴とする。 In order to solve the above problems, a distributed data management system of the present invention is a distributed data management system in which a plurality of servers distribute and manage data, and the server stores data associated with an identifier of the data. A first storage unit, a second storage unit storing an address table in which identifiers and addresses of the plurality of servers are associated, and a new generation of the address table when the plurality of servers are increased or decreased Including the address table generation unit to be stored in the second storage unit together with the generation time of the address table, the data identifier transmitted from the client, and the generation time of the data. A request signal acquisition unit for acquiring a request signal to be requested, an identifier of the data included in the acquired request signal, and a data stored in the second storage unit. Using the identifier of the plurality of servers in the address table, and a server identification unit that identifies the server in charge of the data, and the latest address table address stored in the second storage unit A request signal transfer unit that transfers the request signal to the specified server in charge, and refers to the first storage unit based on an identifier of the data included in the request signal that requests transmission of the data, Read the corresponding data and send it to the client, or refer to the first storage unit based on the identifier of the data included in the request signal requesting storage of the data, and A response unit that determines the success or failure of the storage and transmits a storage success / failure signal indicating the determination result to the client, and a data corresponding to the identifier of the data included in the request signal. Data is not stored in the first storage unit, among the address tables stored in the second storage unit, the generation time of the address table is greater than the generation time of the data included in the request signal Using the oldest and latest address table, the data and the identifier of the data are transferred between the previous server specification unit that specifies the server in front of the data and the specified server in front. And a data updating unit for storing the transferred data and an identifier of the data in the first storage unit.
かかる構成によると、サーバの増減ごとにアドレス表生成時刻を有するアドレス表を生成して第二の記憶部に記憶させ、担当サーバの第一の記憶部のデータ表に所望のデータが記憶されていない場合には、データ生成時刻とアドレス表生成時刻とに基づいて選択した過去のアドレス表に基づいて前の担当サーバを特定し、特定された前の担当サーバから担当サーバへデータを移管するので、複数のサーバが追加された場合であっても、リアルタイムに、かつスケーラビリティを損なわずにデータを移管することができる。 According to such a configuration, an address table having an address table generation time is generated for each increase / decrease of the server and stored in the second storage unit, and desired data is stored in the data table of the first storage unit of the server in charge. If not, the previous responsible server is identified based on the past address table selected based on the data generation time and the address table generation time, and the data is transferred from the identified previous responsible server to the responsible server. Even when a plurality of servers are added, data can be transferred in real time and without loss of scalability.
前記した分散データ管理システムにおいて、前記第一の記憶部には、前記データ及び当該データの識別子と当該データの生成時刻とが関連付けて記憶されており、前記データ更新部は、転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させる際に、転送された前記データ及び当該データの識別子を当該データ更新部が取得した時刻、又は、転送された前記データ及び当該データの識別子を当該データ更新部が前記第一の記憶部に記憶させた時刻を当該データの生成時刻として前記第一の記憶部に記憶させ、前記応答部は、前記データ又は前記保管成否信号に前記データの生成時刻を付与して前記クライアントへ送信することが望ましい。 In the distributed data management system described above, the first storage unit stores the data, an identifier of the data, and a generation time of the data in association with each other, and the data update unit transmits the transferred data And the time when the data update unit acquires the transferred data and the identifier of the data when the identifier of the data is stored in the first storage unit, or the transferred data and the identifier of the data Is stored in the first storage unit as the generation time of the data, and the response unit stores the data in the data or the storage success / failure signal. It is desirable to give the generation time and transmit to the client.
かかる構成によると、前の担当サーバから担当サーバへデータを移管した際に、担当サーバがデータを取得した時刻又は担当サーバの第一の記憶部のデータ表にデータを記憶させた時刻をデータ生成時刻として第一の記憶部に記憶させるとともにクライアントへ送信するので、データ移管後において、クライアントに新たなデータ生成時刻に基づいて要求信号を生成させることができる。 According to such a configuration, when data is transferred from the previous server in charge to the server in charge, the time at which the server in charge acquires the data or the time at which the data is stored in the data table of the first storage unit of the server in charge is generated. Since the time is stored in the first storage unit and transmitted to the client, it is possible to cause the client to generate a request signal based on a new data generation time after data transfer.
また、本発明の分散データ管理方法は、複数のサーバがデータを分散して管理する分散データ管理方法であって、前記サーバは、データと当該データの識別子とが関連付けて記憶される第一の記憶部と、前記複数のサーバの識別子及びアドレスとが関連付けられたアドレス表が記憶される第二の記憶部と、を備え、前記複数のサーバの増減時に、前記アドレス表を新たに生成して当該アドレス表の生成時刻とともに前記第二の記憶部に記憶させており、一の前記サーバが、クライアントから送信された、データの識別子と当該データの生成時刻とを含み、前記データの送信又は保管を要求する要求信号を取得するステップと、一の前記サーバが、取得された前記要求信号に含まれる前記データの識別子と、前記第二の記憶部に記憶された最新の前記アドレス表の前記複数のサーバの識別子と、に基づいて、前記データの担当サーバを特定するステップと、一の前記サーバが、前記第二の記憶部に記憶された最新の前記アドレス表のアドレスを用いて、特定された前記担当サーバに前記要求信号を転送するステップと、前記担当サーバが、前記データの送信を要求する前記要求信号に含まれる前記データの識別子に基づいて第一の記憶部を参照し、対応する前記データを読み出して前記クライアントへ送信する、又は、前記データの保管を要求する前記要求信号に含まれる前記データの識別子に基づいて前記第一の記憶部を参照し、対応する前記データの保管の成否を判定して判定結果を示す保管成否信号を前記クライアントへ送信するステップと、を含むとともに、前記要求信号に含まれる前記データの識別子に対応するデータが前記第一の記憶部に記憶されていない場合に、前記担当サーバが、前記第二の記憶部に記憶されたアドレス表のうち、当該アドレス表の生成時刻が前記要求信号に含まれる前記データの生成時刻よりも古くかつ最新のアドレス表を用いて、前記データの前の担当サーバを特定するステップと、前記担当サーバが、前記前の担当サーバとの間で前記データ及び当該データの識別子の転送を行うステップと、前記担当サーバが、転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させるステップと、を含むことを特徴とする。 Further, the distributed data management method of the present invention is a distributed data management method in which a plurality of servers distribute and manage data, and the server stores the data and the identifier of the data in association with each other. A storage unit and a second storage unit that stores an address table in which identifiers and addresses of the plurality of servers are associated, and when the number of the servers increases or decreases, the address table is newly generated. It is stored in the second storage unit together with the generation time of the address table, and the one server includes a data identifier and a generation time of the data transmitted from the client, and transmits or stores the data Obtaining a request signal for requesting, an identifier of the data included in the acquired request signal, and the latest stored in the second storage unit Identifying the server in charge of the data based on the identifiers of the plurality of servers in the address table, and the one address of the latest address table stored in the second storage unit by the one server And transferring the request signal to the specified responsible server using the first storage unit based on the identifier of the data included in the request signal for requesting transmission of the data by the responsible server The corresponding data is read out and transmitted to the client, or the first storage unit is referenced based on the identifier of the data included in the request signal requesting storage of the data. Determining whether the data is stored successfully and transmitting a storage success / failure signal indicating a determination result to the client. When the data corresponding to the identifier of the data to be stored is not stored in the first storage unit, the responsible server generates the address table from among the address tables stored in the second storage unit. Identifying a previous server in charge of the data using an address table whose time is older than the generation time of the data included in the request signal, and the server in charge is connected to the previous server in charge. Transferring the data and the identifier of the data between, and the responsible server storing the transferred data and the identifier of the data in the first storage unit, To do.
前記した分散データ管理方法において、前記第一の記憶部には、前記データ及び当該データの識別子と当該データの生成時刻とが関連付けて記憶されており、前記担当サーバは、転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させる際に、転送された前記データ及び当該データの識別子を当該担当サーバが取得した時刻、又は、転送された前記データ及び当該データの識別子を当該担当サーバが前記第一の記憶部に記憶させた時刻を当該データの生成時刻として前記第一の記憶部に記憶させ、前記担当サーバは、前記データ又は前記保管成否信号に前記データの生成時刻を付与して前記クライアントへ送信することが望ましい。 In the distributed data management method described above, the first storage unit stores the data and the identifier of the data and the generation time of the data in association with each other, and the responsible server stores the transferred data and When storing the identifier of the data in the first storage unit, the time when the server in charge acquired the transferred data and the identifier of the data, or the transferred data and the identifier of the data The time stored in the first storage unit by the server in charge is stored in the first storage unit as the generation time of the data, and the server in charge sets the generation time of the data in the data or the storage success / failure signal. It is desirable to give and send to the client.
なお、本発明は、コンピュータを前記した分散データ管理システムのサーバの各機能部として機能させるための分散データ管理プログラムとしても具現化可能である。 The present invention can also be embodied as a distributed data management program for causing a computer to function as each functional unit of the server of the distributed data management system.
本発明によれば、複数のサーバが追加された場合であっても、リアルタイムに、かつスケーラビリティを損ねずにデータを移管することができる。 According to the present invention, even when a plurality of servers are added, data can be transferred in real time and without loss of scalability.
以下、本発明の実施形態について、適宜図面を参照しながら説明する。図1に示すように、本発明の実施形態に係る分散データ管理システム1は、クライアント10からの要求信号をロードバランサ20を介して取得して応答するシステムであって、複数のサーバ30(30A,30B,…,30N)を備える。複数のサーバ30は、データを分散して管理しており、図示しないネットワークを介して互いに通信可能に接続されている。
Hereinafter, embodiments of the present invention will be described with reference to the drawings as appropriate. As shown in FIG. 1, a distributed
<クライアント及びロードバランサ>
クライアント10には、データの識別子と当該データの生成時刻とが関連付けて記憶されている。クライアント10は、利用者による入力装置(キーボード、マウス等)の操作に応じて、分散データ管理システム1に記憶されたデータのクライアント10への送信又は分散データ管理システム1での保管を要求する要求信号を生成し、生成された要求信号を分散データ管理システム1へ送信する。ここで、要求信号には、送信又は保管を要求すべきデータの識別子(データ識別子)と生成時刻(データ生成時刻)とが含まれる。ロードバランサ20は、任意のサーバ30を無作為に選択し、クライアント10から送信された要求信号を選択されたサーバ30へ転送する。なお、クライアント10は、最初に、データ生成時刻を含まない、データの保管を要求する要求信号を生成して分散データ管理システム1へ送信し、後記するようにサーバ30から応答信号に付与されて送信されたデータ生成時刻を取得し、取得されたデータ生成時刻を記憶し、以降はデータ識別子及びデータ生成時刻を引数として要求信号を生成することができる。
<Client and load balancer>
The
<サーバ>
複数のサーバ30は、分散データ管理システム1全体で管理すべきデータのうち、当該サーバ30が担当するデータをそれぞれ管理する。サーバ30は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read-Only Memory)、入出力回路等から構成されており、図2に示すように、機能部として、第一の記憶部31−1と、第二の記憶部31−2と、アドレス表生成部32と、要求信号取得部33と、担当サーバ特定部34と、要求信号転送部35と、応答部36と、前担当サーバ特定部37と、データ転送部38と、データ更新部39と、を備える。
<Server>
The plurality of
<第一の記憶部>
第一の記憶部31−1には、図3に示すデータ表31aが記憶されている。データ表31aは、サーバ30が担当するデータと、当該データの識別子(データ識別子)と、当該データの生成時刻(データ生成時刻)とを関連付けた表である。
<First storage unit>
A data table 31a shown in FIG. 3 is stored in the first storage unit 31-1. The data table 31a is a table in which data handled by the
<第二の記憶部>
第二の記憶部31−2には、図4に示すアドレス表31bが記憶されている。アドレス表31bは、分散データ管理システム1を構成する全てのサーバ30の識別子(サーバ識別子)と、当該サーバ30のアドレス(IPアドレス等)とを関連付けた表であり、当該アドレス表31bの生成時刻(アドレス表生成時刻)ごとに記憶されている。
<Second storage unit>
The second storage unit 31-2 stores an address table 31b shown in FIG. The address table 31b is a table in which identifiers (server identifiers) of all
<アドレス表生成部>
アドレス表生成部32は、分散データ管理システム1を構成するサーバ30の増減時に、アドレス表31bを新たに生成し、新たなアドレス表31bのアドレス表生成時刻とともに第二の記憶部31−2に記憶させる。すなわち、第二の記憶部31−2に記憶されたアドレス表31bは、サーバ30が増減して新たなアドレス表31bが生成されても削除されずに履歴として保存され、サーバ30の増減ごとに増える。なお、サーバ30の増減時に、例えば追加(増設)されたサーバ30にアドレスを付与したり、サーバ30の増減及び新たに付与されたアドレスを他のサーバ30と共有したりする技術としては、公知の技術を採用することが可能であり、ここでは詳しい説明を省略する。
<Address table generator>
The address
<要求信号取得部>
要求信号取得部33は、クライアント10から送信された要求信号をロードバランサ20を介して取得し、担当サーバ特定部34へ出力する。
<Request signal acquisition unit>
The request
<担当サーバ特定部>
担当サーバ特定部34は、要求信号取得部33から出力された要求信号を取得し、取得された要求信号に含まれるデータ識別子と、第二の記憶部31−2に記憶された最新のアドレス表31bのサーバ識別子と、に基づいて、データの担当サーバを特定する。ここで、担当サーバ特定部34は、既存のコンシステント・ハッシング等の技術を用いて担当サーバを特定することができる。自サーバ30が担当サーバであると特定された場合には、担当サーバ特定部34は、要求信号を応答部36へ出力し、他サーバ30が担当サーバであると特定された場合には、担当サーバ特定部34は、担当サーバのアドレスを第二の記憶部31−2に記憶されたアドレス表31bから読み出し、要求信号及び読み出されたアドレスを要求信号転送部35へ出力する。
<Responsible server identification part>
The assigned
<要求信号転送部>
要求信号転送部35は、担当サーバ特定部34から出力された要求信号及びアドレスを取得し、かかるアドレスを用いて要求信号を担当サーバの応答部36へ転送する。
<Request signal transfer unit>
The request
<応答部>
応答部36は、自サーバ30が担当サーバである場合に、自サーバ30の担当サーバ特定部34から出力された要求信号、又は、非担当サーバである他サーバ30の要求信号転送部35によって転送された要求信号を取得する。要求信号がデータの送信を要求するものである場合には、応答部36は、取得された要求信号に含まれるデータ識別子に基づいて第一の記憶部31−1に記憶されたデータ表31aを参照し、データ識別子に対応するデータを読み出してクライアント10へ送信する。また、要求信号がデータの保管を要求するものである場合には、応答部36は、取得された要求信号に含まれるデータ識別子に基づいて第一の記憶部31−1に記憶されたデータ表31aを参照し、データ識別子に対応するデータがデータ表31aに記憶(保管)されているか否かを判定し、判定結果を示す保管成否信号を生成してクライアント10へ送信する。
<Response section>
When the
なお、担当サーバである自サーバ30が分散データ管理システム1に追加されたばかりで、データ表31aに所望のデータが記憶されていない場合がある。この場合には、応答部36は、要求信号を前担当サーバ特定部37へ出力する。
In some cases, the
<前担当サーバ特定部>
前担当サーバ特定部37は、応答部36から出力された要求信号を取得し、取得された要求信号に含まれるデータ生成時刻に基づいて第二の記憶部31−2に記憶されたアドレス表31bを参照し、データ生成時刻よりも古くかつ最新のアドレス表生成時刻を有するアドレス表31bを特定する。前担当サーバ特定部37は、取得された要求信号に含まれるデータ識別子と、特定されたアドレス表31bのサーバ識別子と、に基づいて、データの直前の担当サーバ(前担当サーバ)を特定する。ここで、前担当サーバ特定部37は、担当サーバ特定部34と同様に、既存のコンシステント・ハッシング等の技術を用いて前担当サーバを特定することができる。データ生成時刻よりも古くかつ最新のアドレス表生成時刻を有するアドレス表31bは、所望のデータの担当ノードの更新前のアドレス表に相当するため、かかるアドレス表31bを用いると、担当ノード更新前(担当ノードの更新が行われていない場合は、データの分散データ管理システム1への最初の格納時)の担当ノード、すなわち前担当ノードを特定することができる。前担当サーバ特定部37は、自サーバ30のアドレス及び前担当サーバのアドレスを第二の記憶部31−2に記憶されたアドレス表31bから読み出し、要求信号及び読み出されたアドレスをデータ転送部38へ出力する。
<Previous server specific department>
The previous
<データ転送部>
自サーバ30が担当サーバであってデータを保管していないデータ転送部38は、前担当サーバ特定部37から出力された要求信号及びアドレスを取得し、取得された要求信号及びアドレスに基づいて、前担当サーバのデータ転送部38との間でデータの転送を行い、前担当サーバからデータ及び当該データのデータ識別子を取得し、データ更新部39へ出力する。
<Data transfer unit>
The
<データ更新部>
データ更新部39は、データ転送部38から出力されたデータ及びデータ識別子を取得し、取得されたデータを第一の記憶部31−1のデータ表31aに記憶させる。
<Data update unit>
The
≪データ移管≫
ここで、自サーバ30の第一の記憶部31−1のデータ表31aに所望のデータが記憶されていない場合の、自サーバ30及び前担当サーバのデータ転送部38、データ更新部39及び応答部36のデータ移管に関する機能について詳細に説明する。
≪Data transfer≫
Here, when the desired data is not stored in the data table 31a of the first storage unit 31-1 of the
自サーバ30が現在の担当サーバ(新担当サーバ)であってデータを保管していないデータ転送部38は、要求信号及び自サーバ30のアドレスを含むデータ転送依頼信号を、前担当サーバのアドレスを用いて前担当サーバのデータ転送部38へ送信する。
The
前担当サーバのデータ転送部38は、新担当サーバのデータ転送部38によって送信されたデータ転送依頼信号を取得し、取得されたデータ転送依頼信号に含まれる要求信号のデータ識別子をデータ更新部39へ出力する。
The
前担当サーバのデータ更新部39は、データ転送部38から出力されたデータ識別子を取得し、取得されたデータ識別子に基づいて第一の記憶部31−1に記憶されたデータ表31aを参照し、データ識別子に対応するデータを読み出し、データ識別子及び読み出されたデータをデータ転送部38へ出力する。ここで、データ更新部39は、読み出したデータ及び当該データのデータ識別子(並びに当該データのデータ生成時刻)をデータ表31aから削除する。
The
前担当サーバのデータ転送部38は、データ更新部39から出力されたデータ及びデータ識別子を取得し、取得されたデータ及びデータ識別子を、新担当サーバのアドレスを用いて新担当サーバのデータ転送部38へ送信する。
The
新担当サーバのデータ転送部38は、前担当サーバのデータ転送部38によって送信されたデータ及びデータ識別子を取得し、取得されたデータ及びデータ識別子をデータ更新部39へ出力する。
The
新担当サーバのデータ更新部39は、データ転送部38から出力されたデータ及びデータ識別子を取得し、取得されたデータ及びデータ識別子を第一の記憶部31−1のデータ表31aに記憶させるとともに、更新通知信号を応答部36へ出力する。ここで、新担当サーバのデータ更新部39は、前担当サーバから転送されてきたデータ及びデータ識別子を第一の記憶部31−1のデータ表31aに記憶させる際に、前担当サーバから転送されてきたデータ及びデータ識別子を当該データ更新部39が取得した時刻、又は、前担当サーバから転送されてきたデータ及びデータ識別子を当該データ更新部39がデータ表31aに記憶させた時刻を当該データのデータ生成時刻としてデータ表31aに記憶させる。
The
新担当サーバの応答部36は、データ更新部39から出力された更新通知信号を取得し、取得された更新通知信号に応じて、データ又は保管成否信号をクライアント10へ送信する。この際、新担当サーバの応答部36は、要求信号に含まれるデータ識別信号に基づいて第一の記憶部31−1のデータ表31aに記憶されたデータ生成時刻を読み出し、データ又は保管成否信号にデータ生成時刻を付与してクライアント10へ送信することができる。
The
クライアント10は、応答部36によって送信されたデータ又は保管成否信号とデータ生成時刻とを取得すると、取得されたデータ生成時刻に基づいて、データ識別子と関連付けて記憶されたデータ生成時刻を更新する。
When the
なお、前担当サーバのデータ更新部39が所望のデータを読み出すことができなかった場合(前担当サーバのデータ表31aに所望のデータが無い場合)には、前担当サーバのデータ更新部39は、データが無い旨を示す信号をデータ転送部38へ出力し、前担当サーバのデータ転送部38は、データが無い旨を示す信号を新担当サーバのデータ転送部38へ送信する。新担当サーバのデータ転送部38は、データが無い旨を示す信号を取得し、取得された信号をデータ更新部39を介して応答部36へ出力する(データ更新部39を介さずに応答部36へ直接出力する構成でも可)。新担当サーバの応答部36は、データが無い旨を示す保管成否信号を生成し、クライアント10へ送信する。
If the
<動作例>
続いて、本発明の実施形態に係る分散データ管理システム1の動作例について、図5及び図6を参照して説明する(適宜図1〜図4参照)。かかる動作例では、図5に示すように、サーバ30A〜30Fによって構成された分散データ管理システム1に対して、新たなサーバ30G,30H,30I,30Jがサーバ30F,30A間に追加され、あるデータの担当サーバが、サーバ30G〜30Jの追加によって、サーバ30Aからサーバ30Hに変更されているものとする。
<Operation example>
Subsequently, an operation example of the distributed
まず、クライアント10が、あるデータの要求信号をロードバランサ20を介してサーバ30Fへ送信する。サーバ30Fの要求信号取得部33が、要求信号を取得すると(ステップS1)、サーバ30Fの担当サーバ特定部34が、要求信号に含まれるデータ識別子と、最新のアドレス表31bに記憶された全サーバ30のサーバ識別子と、に基づいて、データの担当サーバを特定する。
First, the
本動作例では、担当サーバはサーバ30Fではなくサーバ30Hであるため(ステップS2でNo)、サーバ30Fの要求信号転送部35が、要求信号を担当サーバであるサーバ30Hの応答部36へ送信する(ステップS3)。なお、サーバ30Fが担当サーバである場合には(ステップS2でYes)、サーバ30Fの担当サーバ特定部34が、要求信号をサーバ30Fの応答部36へ出力し、本フローはステップS4へ移行する。
In this operation example, since the server in charge is not the server 30F but the
ステップS3の実行後、担当サーバであるサーバ30Hの応答部36が、要求信号を取得し、取得された要求信号に含まれるデータ識別子に基づいて、第一の記憶部31−1のデータ表31aからデータを探索する。本動作例では、サーバ30Hのデータ表31aには所望のデータが記憶されていないため(ステップS4でNo)、前担当サーバ特定部37が、要求信号に含まれるデータ生成時刻よりも古くかつ最新のアドレス表生成時刻を有するアドレス表31bに記憶されたサーバ識別子と、要求信号に含まれるデータ識別子と、に基づいて、データの前担当サーバを特定する(ステップS5)。なお、サーバ30Hのデータ表31aに所望のデータが記憶されている場合には(ステップS4でYes)、本フローはステップS7へ移行する。
After execution of step S3, the
ステップS5の実行後、担当サーバであるサーバ30Hのデータ転送部38及びデータ更新部39と、前担当サーバであるサーバ30Aのデータ転送部38及びデータ更新部39とが、データの移管を行うとともに、担当サーバであるサーバ30Hのデータ更新部39が、データ生成時刻を更新する(ステップS6)。ステップS6によって、第一の記憶部31−1のデータ表31aに、データ及びデータ識別子が記憶され、また、データ及びデータ識別子を取得した時刻又は記憶させた時刻がデータ生成時刻として記憶される。
After execution of step S5, the
続いて、担当サーバであるサーバ30Hの応答部36が、クライアントへ応答する(ステップS7)。要求信号がデータの送信を要求するものである場合には、応答部36は、データ及びデータ生成時刻をクライアント10へ送信し、要求信号がデータの保管を要求するものである場合には、応答部36は、保管成否信号及びデータ生成時刻をクライアント10へ送信する。
Subsequently, the
本発明の実施形態に係る分散データ管理システム1は、サーバ30の増減ごとにアドレス表生成時刻を有するアドレス表31bを生成して第二の記憶部31−2に記憶させ、担当サーバの第一の記憶部31−1のデータ表に所望のデータが記憶されていない場合には、データ生成時刻とアドレス表生成時刻とに基づいて選択した過去のアドレス表31bに基づいて前担当サーバを特定し、特定された前担当サーバから新担当サーバへデータを移管するので、複数のサーバ30が追加された場合であっても、隣接するサーバ30に順にデータの有無を問い合わせたり、全てのサーバ30にデータの有無を問い合わせたりする必要が無く、前担当サーバにのみ1ホップでデータの有無を確認することができ、リアルタイムに、かつスケーラビリティを損なわずにデータを移管することができる。
The distributed
また、本発明の実施形態に係る分散データ管理システム1は、前担当サーバから新担当サーバへデータを移管した際に、新担当サーバがデータを取得した時刻又は新担当サーバの第一の記憶部31−1のデータ表31aにデータを記憶させた時刻をデータ生成時刻としてデータ表31aに記憶させるとともにクライアント10へ送信するので、データ移管後において、クライアント10に新たなデータ生成時刻に基づいて要求信号を生成させることができる。
Further, the distributed
以上、本発明の実施形態について図面を参照して説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜変更可能である。例えば、本発明は、コンピュータを前記サーバ30として機能させるための分散データ管理プログラムとしても具現化可能である。また、サーバ30及びデータの識別子の決定手法は、ハッシュ関数によるものに限定されず、サーバ30のアドレスは、IPアドレスに限定されない。また、クライアント10及びサーバ30は、それぞれ、一のコンピュータによって具現化されてもよく、複数のコンピュータによって具現化されてもよい。
As mentioned above, although embodiment of this invention was described with reference to drawings, this invention is not limited to the said embodiment, In the range which does not deviate from the summary of this invention, it can change suitably. For example, the present invention can be embodied as a distributed data management program for causing a computer to function as the
1 分散データ管理システム
30 サーバ(ノード)
31−1 第一の記憶部
31−2 第二の記憶部
32 アドレス表生成部
33 要求信号取得部
34 担当サーバ特定部
35 要求信号転送部
36 応答部
37 前担当サーバ特定部
38 データ転送部
39 データ更新部
1 Distributed
31-1 1st memory | storage part 31-2 2nd memory |
Claims (6)
前記サーバは、
データと当該データの識別子とが関連付けて記憶される第一の記憶部と、
前記複数のサーバの識別子及びアドレスとが関連付けられたアドレス表が記憶される第二の記憶部と、
前記複数のサーバの増減時に、前記アドレス表を新たに生成して当該アドレス表の生成時刻とともに前記第二の記憶部に記憶させるアドレス表生成部と、
クライアントから送信された、データの識別子と当該データの生成時刻とを含み、前記データの送信又は保管を要求する要求信号を取得する要求信号取得部と、
取得された前記要求信号に含まれる前記データの識別子と、前記第二の記憶部に記憶された最新の前記アドレス表の前記複数のサーバの識別子と、に基づいて、前記データの担当サーバを特定する担当サーバ特定部と、
前記第二の記憶部に記憶された最新の前記アドレス表のアドレスを用いて、特定された前記担当サーバに前記要求信号を転送する要求信号転送部と、
前記データの送信を要求する前記要求信号に含まれる前記データの識別子に基づいて第一の記憶部を参照し、対応する前記データを読み出して前記クライアントへ送信する、又は、前記データの保管を要求する前記要求信号に含まれる前記データの識別子に基づいて前記第一の記憶部を参照し、対応する前記データの保管の成否を判定して判定結果を示す保管成否信号を前記クライアントへ送信する応答部と、
前記要求信号に含まれる前記データの識別子に対応するデータが前記第一の記憶部に記憶されていない場合に、前記第二の記憶部に記憶されたアドレス表のうち、当該アドレス表の生成時刻が前記要求信号に含まれる前記データの生成時刻よりも古くかつ最新のアドレス表を用いて、前記データの前の担当サーバを特定する前担当サーバ特定部と、
特定された前記前の担当サーバとの間で前記データ及び当該データの識別子の転送を行うデータ転送部と、
転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させるデータ更新部と、
を備えることを特徴とする分散データ管理システム。 A distributed data management system in which multiple servers distribute and manage data,
The server
A first storage unit that stores data and an identifier of the data in association with each other;
A second storage unit storing an address table in which identifiers and addresses of the plurality of servers are associated;
An address table generation unit that newly generates the address table and stores it in the second storage unit together with the generation time of the address table when the number of servers increases or decreases;
A request signal acquisition unit that receives a request signal for requesting transmission or storage of the data, including an identifier of the data transmitted from the client and a generation time of the data;
The server in charge of the data is identified based on the identifier of the data included in the acquired request signal and the identifiers of the plurality of servers in the latest address table stored in the second storage unit The server identification department in charge,
A request signal transfer unit that transfers the request signal to the specified server in charge using the address of the latest address table stored in the second storage unit;
Based on an identifier of the data included in the request signal for requesting transmission of the data, the first storage unit is referred to, the corresponding data is read and transmitted to the client, or the storage of the data is requested. A response that refers to the first storage unit based on the identifier of the data included in the request signal, determines whether the corresponding data is stored successfully, and transmits a storage success / failure signal indicating the determination result to the client And
When the data corresponding to the identifier of the data included in the request signal is not stored in the first storage unit, the generation time of the address table among the address tables stored in the second storage unit Using a latest address table that is older than the generation time of the data included in the request signal, and a previous responsible server identifying unit that identifies the responsible server before the data;
A data transfer unit that transfers the data and the identifier of the data to the identified previous server in charge;
A data updating unit for storing the transferred data and an identifier of the data in the first storage unit;
A distributed data management system comprising:
前記データ更新部は、転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させる際に、転送された前記データ及び当該データの識別子を当該データ更新部が取得した時刻、又は、転送された前記データ及び当該データの識別子を当該データ更新部が前記第一の記憶部に記憶させた時刻を当該データの生成時刻として前記第一の記憶部に記憶させ、
前記応答部は、前記データ又は前記保管成否信号に前記データの生成時刻を付与して前記クライアントへ送信する
ことを特徴とする請求項1に記載の分散データ管理システム。 The first storage unit stores the data, the identifier of the data, and the generation time of the data in association with each other.
The data update unit, when storing the transferred data and the identifier of the data in the first storage unit, the time when the data update unit acquired the transferred data and the identifier of the data, or , The time at which the data update unit stores the transferred data and the identifier of the data in the first storage unit is stored in the first storage unit as the generation time of the data,
The distributed data management system according to claim 1, wherein the response unit assigns a generation time of the data to the data or the storage success / failure signal and transmits the data to the client.
前記サーバは、データと当該データの識別子とが関連付けて記憶される第一の記憶部と、前記複数のサーバの識別子及びアドレスとが関連付けられたアドレス表が記憶される第二の記憶部と、を備え、前記複数のサーバの増減時に、前記アドレス表を新たに生成して当該アドレス表の生成時刻とともに前記第二の記憶部に記憶させており、
一の前記サーバが、クライアントから送信された、データの識別子と当該データの生成時刻とを含み、前記データの送信又は保管を要求する要求信号を取得するステップと、
一の前記サーバが、取得された前記要求信号に含まれる前記データの識別子と、前記第二の記憶部に記憶された最新の前記アドレス表の前記複数のサーバの識別子と、に基づいて、前記データの担当サーバを特定するステップと、
一の前記サーバが、前記第二の記憶部に記憶された最新の前記アドレス表のアドレスを用いて、特定された前記担当サーバに前記要求信号を転送するステップと、
前記担当サーバが、前記データの送信を要求する前記要求信号に含まれる前記データの識別子に基づいて第一の記憶部を参照し、対応する前記データを読み出して前記クライアントへ送信する、又は、前記データの保管を要求する前記要求信号に含まれる前記データの識別子に基づいて前記第一の記憶部を参照し、対応する前記データの保管の成否を判定して判定結果を示す保管成否信号を前記クライアントへ送信するステップと、
を含むとともに、
前記要求信号に含まれる前記データの識別子に対応するデータが前記第一の記憶部に記憶されていない場合に、前記担当サーバが、前記第二の記憶部に記憶されたアドレス表のうち、当該アドレス表の生成時刻が前記要求信号に含まれる前記データの生成時刻よりも古くかつ最新のアドレス表を用いて、前記データの前の担当サーバを特定するステップと、
前記担当サーバが、前記前の担当サーバとの間で前記データ及び当該データの識別子の転送を行うステップと、
前記担当サーバが、転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させるステップと、
を含むことを特徴とする分散データ管理方法。 A distributed data management method in which multiple servers distribute and manage data,
The server includes a first storage unit that stores data and an identifier of the data in association with each other; a second storage unit that stores an address table in which identifiers and addresses of the plurality of servers are associated; And when the number of servers increases or decreases, the address table is newly generated and stored together with the generation time of the address table in the second storage unit,
One of the servers obtains a request signal for transmitting or storing the data, including the identifier of the data and the generation time of the data, transmitted from the client;
One of the servers is based on the identifier of the data included in the acquired request signal and the identifiers of the plurality of servers in the latest address table stored in the second storage unit, Identifying the server responsible for the data;
The one server transfers the request signal to the identified responsible server using the address of the latest address table stored in the second storage unit;
The responsible server refers to the first storage unit based on the identifier of the data included in the request signal for requesting transmission of the data, reads the corresponding data and transmits the data to the client, or Based on the identifier of the data included in the request signal for requesting data storage, the first storage unit is referred to, and a storage success / failure signal indicating a determination result by determining success / failure of storage of the corresponding data is indicated. Sending to the client;
Including
When the data corresponding to the identifier of the data included in the request signal is not stored in the first storage unit, the server in charge is associated with the address table stored in the second storage unit. Identifying a server in front of the data by using an address table whose address table generation time is older and newer than the data generation time included in the request signal;
The responsible server transfers the data and the identifier of the data to and from the previous responsible server;
The responsible server storing the transferred data and the identifier of the data in the first storage unit;
A distributed data management method comprising:
前記担当サーバは、転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させる際に、転送された前記データ及び当該データの識別子を当該担当サーバが取得した時刻、又は、転送された前記データ及び当該データの識別子を当該担当サーバが前記第一の記憶部に記憶させた時刻を当該データの生成時刻として前記第一の記憶部に記憶させ、
前記担当サーバは、前記データ又は前記保管成否信号に前記データの生成時刻を付与して前記クライアントへ送信する
ことを特徴とする請求項3に記載の分散データ管理方法。 The first storage unit stores the data, the identifier of the data, and the generation time of the data in association with each other.
When the responsible server stores the transferred data and the identifier of the data in the first storage unit, the time when the transferred server acquired the transferred data and the identifier of the data, or the transfer The time when the server in charge stores the data and the identifier of the data in the first storage unit is stored in the first storage unit as the generation time of the data,
The distributed data management method according to claim 3, wherein the responsible server gives the generation time of the data to the data or the storage success / failure signal and transmits the data to the client.
データと当該データの識別子とが関連付けて記憶される第一の記憶部と、前記複数のサーバの識別子及びアドレスとが関連付けられたアドレス表が記憶される第二の記憶部と、を備えるコンピュータを、
前記複数のサーバの増減時に、前記アドレス表を新たに生成して当該アドレス表の生成時刻とともに前記第二の記憶部に記憶させるアドレス表生成部、
クライアントから送信された、データの識別子と当該データの生成時刻とを含み、前記データの送信又は保管を要求する要求信号を取得する要求信号取得部、
取得された前記要求信号に含まれる前記データの識別子と、前記第二の記憶部に記憶された最新の前記アドレス表の前記複数のサーバの識別子と、に基づいて、前記データの担当サーバを特定する担当サーバ特定部、
前記第二の記憶部に記憶された最新の前記アドレス表のアドレスを用いて、特定された前記担当サーバに前記要求信号を転送する要求信号転送部、
前記データの送信を要求する前記要求信号に含まれる前記データの識別子に基づいて第一の記憶部を参照し、対応する前記データを読み出して前記クライアントへ送信する、又は、前記データの保管を要求する前記要求信号に含まれる前記データの識別子に基づいて前記第一の記憶部を参照し、対応する前記データの保管の成否を判定して判定結果を示す保管成否信号を前記クライアントへ送信する応答部、
前記要求信号に含まれる前記データの識別子に対応するデータが前記第一の記憶部に記憶されていない場合に、前記第二の記憶部に記憶されたアドレス表のうち、当該アドレス表の生成時刻が前記要求信号に含まれる前記データの生成時刻よりも古くかつ最新のアドレス表を用いて、前記データの前の担当サーバを特定する前担当サーバ特定部、
特定された前記前の担当サーバとの間で前記データ及び当該データの識別子の転送を行うデータ転送部、及び、
転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させるデータ更新部、
として機能させるための分散データ管理プログラム。 A distributed data management program used when a plurality of computers distribute and manage data,
A computer comprising: a first storage unit storing data and an identifier of the data in association with each other; and a second storage unit storing an address table in which identifiers and addresses of the plurality of servers are associated with each other. ,
An address table generator that newly generates the address table and stores the address table in the second storage unit together with the generation time of the address table when the plurality of servers increase or decrease;
A request signal acquisition unit for acquiring a request signal for requesting transmission or storage of the data, including a data identifier and a generation time of the data, transmitted from the client;
The server in charge of the data is identified based on the identifier of the data included in the acquired request signal and the identifiers of the plurality of servers in the latest address table stored in the second storage unit Responsible server identification department,
A request signal transfer unit that transfers the request signal to the specified server in charge using the address of the latest address table stored in the second storage unit;
Based on an identifier of the data included in the request signal for requesting transmission of the data, the first storage unit is referred to, the corresponding data is read and transmitted to the client, or the storage of the data is requested. A response that refers to the first storage unit based on the identifier of the data included in the request signal, determines whether the corresponding data is stored successfully, and transmits a storage success / failure signal indicating the determination result to the client Part,
When the data corresponding to the identifier of the data included in the request signal is not stored in the first storage unit, the generation time of the address table among the address tables stored in the second storage unit Using a latest address table that is older than the generation time of the data included in the request signal and using the latest address server specifying unit that specifies the server in front of the data,
A data transfer unit that transfers the data and an identifier of the data to the identified previous server in charge; and
A data update unit for storing the transferred data and the identifier of the data in the first storage unit;
Distributed data management program to function as
前記データ更新部は、転送された前記データ及び当該データの識別子を前記第一の記憶部に記憶させる際に、転送された前記データ及び当該データの識別子を当該データ更新部が取得した時刻、又は、転送された前記データ及び当該データの識別子を当該データ更新部が前記第一の記憶部に記憶させた時刻を当該データの生成時刻として前記第一の記憶部に記憶させ、
前記応答部は、前記データ又は前記保管成否信号に前記データの生成時刻を付与して前記クライアントへ送信する
ことを特徴とする請求項5に記載の分散データ管理プログラム。 The first storage unit stores the data, the identifier of the data, and the generation time of the data in association with each other.
The data update unit, when storing the transferred data and the identifier of the data in the first storage unit, the time when the data update unit acquired the transferred data and the identifier of the data, or , The time at which the data update unit stores the transferred data and the identifier of the data in the first storage unit is stored in the first storage unit as the generation time of the data,
The distributed data management program according to claim 5, wherein the response unit assigns a generation time of the data to the data or the storage success / failure signal and transmits the data to the client.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011131524A JP5508346B2 (en) | 2011-06-13 | 2011-06-13 | Distributed data management system, distributed data management method, and distributed data management program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011131524A JP5508346B2 (en) | 2011-06-13 | 2011-06-13 | Distributed data management system, distributed data management method, and distributed data management program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013003677A JP2013003677A (en) | 2013-01-07 |
JP5508346B2 true JP5508346B2 (en) | 2014-05-28 |
Family
ID=47672214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011131524A Expired - Fee Related JP5508346B2 (en) | 2011-06-13 | 2011-06-13 | Distributed data management system, distributed data management method, and distributed data management program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5508346B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665633B2 (en) * | 2014-02-19 | 2017-05-30 | Snowflake Computing, Inc. | Data management systems and methods |
-
2011
- 2011-06-13 JP JP2011131524A patent/JP5508346B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013003677A (en) | 2013-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7839867B2 (en) | Information delivery system, delivery request program, transfer program, delivery program, and the like | |
CN101969468B (en) | Inquiry server cluster system and inquiry method | |
US20040246911A1 (en) | Network location management system | |
CN111338806B (en) | Service control method and device | |
US9197715B2 (en) | Information processing apparatus and data control method | |
CN104468853A (en) | Domain name resolution method, server and system | |
US9760370B2 (en) | Load balancing using predictable state partitioning | |
CN102891872A (en) | Method and system for storing and searching data in peer to peer (P2P) network | |
CN106899621B (en) | A kind of scheduling system and method | |
US10261949B2 (en) | Packed row representation for efficient network serialization with direct column indexing in a network switch | |
JP5508346B2 (en) | Distributed data management system, distributed data management method, and distributed data management program | |
CN101534255A (en) | A method and device for realizing oriented processing of certain request | |
US20170286540A1 (en) | Local and remote execution of standing queries | |
JP5832970B2 (en) | DNS server client system and DNS query response control method | |
CN110611688B (en) | Method, electronic device and computer program product for searching nodes | |
US10541864B1 (en) | System and method for connection efficiency | |
US20170286490A1 (en) | Implicit subscriptions in the connection protocol of a network switch | |
WO2021087865A1 (en) | Addressing method, addressing system and addressing apparatus | |
JP2005038339A (en) | Grid computing system and computing resource collection method for grid computing system | |
US20180176129A1 (en) | Communication method, control device, and system | |
US10860568B2 (en) | External data source linking to queries in memory | |
US10284673B2 (en) | Interface for a client of a network device | |
CN114422492B (en) | Request forwarding method, device and storage medium | |
CN101789913B (en) | Proxy service device using temporary storage management and data transmission load balance and method thereof | |
JP5333772B2 (en) | File distribution system, server device, file distribution method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130201 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130809 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140228 |
|
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: 20140318 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140320 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5508346 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |