JP6076882B2 - Information processing system, management device, and key assignment program - Google Patents

Information processing system, management device, and key assignment program Download PDF

Info

Publication number
JP6076882B2
JP6076882B2 JP2013236324A JP2013236324A JP6076882B2 JP 6076882 B2 JP6076882 B2 JP 6076882B2 JP 2013236324 A JP2013236324 A JP 2013236324A JP 2013236324 A JP2013236324 A JP 2013236324A JP 6076882 B2 JP6076882 B2 JP 6076882B2
Authority
JP
Japan
Prior art keywords
key
request
server
accesses
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013236324A
Other languages
Japanese (ja)
Other versions
JP2015095246A (en
Inventor
弘之 栗田
弘之 栗田
高田 直樹
直樹 高田
山下 高生
高生 山下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013236324A priority Critical patent/JP6076882B2/en
Publication of JP2015095246A publication Critical patent/JP2015095246A/en
Application granted granted Critical
Publication of JP6076882B2 publication Critical patent/JP6076882B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、情報処理システム、管理装置、サーバ装置及びキー割当プログラムに関する。   The present invention relates to an information processing system, a management device, a server device, and a key assignment program.

従来、コンピュータシステムにおけるデータの保存・管理手法の一つとして、KVS(Key Value Store)が知られている。KVSでは、任意の保存したいデータ(バリュー)に対応する一意の標識(キー)を設定し、バリューとキーをペアで保存するというものである。また、データを複数のサーバや記憶装置などに分散して保存できる機能を持った分散KVSシステムも知られている。   Conventionally, KVS (Key Value Store) is known as one of data storage and management techniques in computer systems. In KVS, a unique indicator (key) corresponding to arbitrary data (value) to be stored is set, and the value and key are stored in pairs. There is also known a distributed KVS system having a function of storing data in a distributed manner in a plurality of servers and storage devices.

このような分散KVSでは、一般に、コンシステントハッシュ法などに従って、キーのハッシュ値から、そのキーのデータを格納するサーバを決定する。ハッシュ関数のランダム性から、各サーバにはおよそ均等な数のキーが割り当てられる。   In such distributed KVS, in general, a server that stores data of a key is determined from the hash value of the key according to a consistent hash method or the like. Due to the randomness of the hash function, each server is assigned an approximately equal number of keys.

特開2013−152569号公報JP2013-15269A

David Karger, Eeic Lehman, Tom Leighton, Matthew Levine, Daniel Lewin, and Rina Panigrahy, "Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web "in Proceedings of the 29th annual ACM Symposium on Theory of Computing (STOC'97), pp.654-663, May 1997.David Karger, Eeic Lehman, Tom Leighton, Matthew Levine, Daniel Lewin, and Rina Panigrahy, "Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web" in Proceedings of the 29th annual ACM Symposium on Theory of Computing (STOC'97), pp.654-663, May 1997.

しかしながら、従来の分散KVSシステムの技術では、アクセスが特定のキーに集中した場合には、そのキーが割り当てられたサーバへのアクセスが集中してしまい、サーバが輻輳するという課題があった。また、アクセスが一部のサーバに集中してしまうことで、システム全体のリソースを有効活用できないという課題があった。   However, in the conventional distributed KVS system technology, when access concentrates on a specific key, there is a problem that access to the server to which the key is assigned is concentrated and the server is congested. In addition, there is a problem that resources of the entire system cannot be effectively used because access is concentrated on some servers.

そこで、この発明は、サーバの輻輳を軽減し、システム全体のリソースを有効活用することを目的とする。   Therefore, an object of the present invention is to reduce server congestion and effectively use resources of the entire system.

上述した課題を解決し、目的を達成するため、開示の情報処理システムは、データと各データを識別するキーとを対応付けて記憶する複数の記憶装置と、前記複数の記憶装置に対してアクセスを行うサーバ装置と、記憶装置に記憶されるデータに対して前記キーを割り当てる管理装置とを有する情報処理システムにおいて、前記サーバ装置が、前記キーを含むアクセス要求を受け付けた場合には、該キーに対応するデータを記憶する記憶装置に対してアクセスを行うアクセス部と、前記キーごとに、受け付けたアクセス要求の数であるアクセス回数を計数する計数部と、を備え、前記管理装置が、前記サーバ装置からキーごとのアクセス回数を取得する取得部と、前記取得部によって取得されたアクセス回数が所定の閾値を超えている場合に、該アクセス要求に対応するキーを複製する個数を決定する決定部と、前記決定部によって決定された個数分のキーの複製を作成する作成部と、前記作成部によって作成されたキーの複製を、前記複数の記憶装置のうちのいずれかの記憶装置に記憶されるデータであって、前記アクセス回数が前記閾値を超えたキーに対応するデータに割り当てる割当部と、を備えることを特徴とする。   In order to solve the above-described problems and achieve the object, an information processing system disclosed includes a plurality of storage devices that store data and a key for identifying each data in association with each other, and access to the plurality of storage devices In an information processing system having a server device that performs the above and a management device that assigns the key to data stored in a storage device, when the server device accepts an access request including the key, the key An access unit that accesses a storage device that stores data corresponding to the above, and a counting unit that counts the number of accesses, which is the number of access requests received, for each key, and the management device includes: An acquisition unit that acquires the access count for each key from the server device, and the access count acquired by the acquisition unit exceeds a predetermined threshold A determination unit that determines the number of copies of the key corresponding to the access request, a creation unit that creates a copy of the number of keys determined by the determination unit, and a copy of the key created by the creation unit, And an allocating unit that allocates data stored in any one of the plurality of storage devices to data corresponding to a key whose number of accesses exceeds the threshold value.

また、開示の管理装置は、データと各データを識別するキーとを対応付けて記憶する複数の記憶装置に対してアクセスを行うサーバ装置から、キーごとのアクセス回数を取得する取得部と、前記取得部によって取得されたアクセス回数が所定の閾値を超えている場合に、該アクセス要求に対応するキーを複製する個数を決定する決定部と、前記決定部によって決定された個数分のキーの複製を作成する作成部と、前記作成部によって作成されたキーの複製を、前記複数の記憶装置のうちのいずれかの記憶装置に記憶されるデータであって、前記アクセス回数が前記閾値を超えたキーに対応するデータに割り当てる割当部と、を備えることを特徴とする。   Further, the disclosed management device includes an acquisition unit that acquires the number of accesses for each key from a server device that accesses a plurality of storage devices that store data and a key that identifies each data in association with each other; When the number of accesses acquired by the acquisition unit exceeds a predetermined threshold, a determination unit that determines the number of copies of the key corresponding to the access request, and the number of copies of the key determined by the determination unit And a copy of the key created by the creating unit is data stored in any one of the plurality of storage devices, and the access count exceeds the threshold value An allocating unit that allocates data corresponding to the key.

また、開示のサーバ装置は、データと各データを識別するキーとを対応付けて記憶する複数の記憶装置に対する前記キーを含むアクセス要求を受け付けた場合に、前記キーごとに、受け付けたアクセス要求の数であるアクセス回数を計数する計数部と、前記キーを含むアクセス要求を受け付けた場合に、該キーが、前記計数部によって計数されたアクセス回数が所定の閾値を超えているキーの複製キーであるか判定し、複製されているキーであると判定した場合には、複製されたキーのなかから一つのキーを選択し、該キーを用いて前記記憶装置に対してアクセスを行うアクセス部と、を備えることを特徴とする。   In addition, when the disclosed server device receives an access request including the key for a plurality of storage devices that store the data and a key for identifying each data in association with each other, the server device of the access request A counting unit that counts the number of accesses that is a number, and when an access request including the key is received, the key is a duplicate key of a key whose number of accesses counted by the counting unit exceeds a predetermined threshold An access unit that selects one key from among the duplicated keys and uses the key to access the storage device. It is characterized by providing.

また、開示のキー割当プログラムは、データと各データを識別するキーとを対応付けて記憶する複数の記憶装置に対してアクセスを行うサーバ装置から、キーごとのアクセス回数を取得する取得ステップと、前記取得ステップによって取得されたアクセス回数が所定の閾値を超えている場合に、該アクセス要求に対応するキーを複製する個数を決定する決定ステップと、前記決定ステップによって決定された個数分のキーの複製を作成する作成ステップと、前記作成ステップによって作成されたキーの複製を、前記複数の記憶装置のうちのいずれかの記憶装置に記憶されるデータであって、前記アクセス回数が前記閾値を超えたキーに対応するデータに割り当てる割当ステップと、をコンピュータに実行させることを特徴とする。   Further, the disclosed key assignment program includes an acquisition step of acquiring the number of accesses for each key from a server device that accesses a plurality of storage devices that store data and a key that identifies each data in association with each other, When the number of accesses acquired by the acquisition step exceeds a predetermined threshold, a determination step for determining the number of copies of the key corresponding to the access request, and a number of keys determined by the determination step A creation step of creating a copy, and a copy of the key created by the creation step is data stored in any one of the plurality of storage devices, and the access count exceeds the threshold value An assigning step for assigning data corresponding to the key is executed by a computer.

本願に開示する情報処理システム、管理装置、サーバ装置及びキー割当プログラムは、サーバの輻輳を軽減し、システム全体のリソースを有効活用することが可能である。   The information processing system, management device, server device, and key assignment program disclosed in the present application can reduce server congestion and effectively utilize resources of the entire system.

図1は、第一の実施形態に係る情報処理システムの構成の一例を示す図である。FIG. 1 is a diagram illustrating an example of a configuration of an information processing system according to the first embodiment. 図2は、第一の実施形態に係る情報処理システムの概要を説明する図である。FIG. 2 is a diagram illustrating an overview of the information processing system according to the first embodiment. 図3は、第一の実施形態に係る要求処理サーバの構成を示すブロック図である。FIG. 3 is a block diagram showing the configuration of the request processing server according to the first embodiment. 図4は、第一の実施形態に係る要求頻度記憶部に記憶される情報の一例を示す図である。FIG. 4 is a diagram illustrating an example of information stored in the request frequency storage unit according to the first embodiment. 図5は、第一の実施形態に係る複製管理情報テーブル記憶部に記憶される情報の一例を示す図である。FIG. 5 is a diagram illustrating an example of information stored in the replication management information table storage unit according to the first embodiment. 図6は、第一の実施形態に係る複製管理サーバの構成を示すブロック図である。FIG. 6 is a block diagram showing the configuration of the replication management server according to the first embodiment. 図7は、第一の実施形態に係る要求頻度情報テーブル記憶部に記憶される情報の一例を示す図である。FIG. 7 is a diagram illustrating an example of information stored in the request frequency information table storage unit according to the first embodiment. 図8は、第一の実施形態に係る複製管理サーバにおけるキー割当処理を説明する図である。FIG. 8 is a diagram for explaining key assignment processing in the replication management server according to the first embodiment. 図9は、第一の実施形態に係る情報処理システムにおけるサービス要求応答処理の流れを説明するためのシーケンス図である。FIG. 9 is a sequence diagram for explaining the flow of the service request response process in the information processing system according to the first embodiment. 図10は、第一の実施形態に係る情報処理システムにおける複製数変更処理の流れを説明するためのシーケンス図である。FIG. 10 is a sequence diagram for explaining the flow of the copy number changing process in the information processing system according to the first embodiment. 図11は、第一の実施形態に係る複製管理サーバにおける複製数変更判断処理の流れを説明するためのフローチャートである。FIG. 11 is a flowchart for explaining the flow of the replication number change determination process in the replication management server according to the first embodiment. 図12は、特定のキーにアクセスが集中し、該キーを割り当てられた分散KVSサーバに負荷が集中する例を説明する図である。FIG. 12 is a diagram for explaining an example in which accesses are concentrated on a specific key and loads are concentrated on a distributed KVS server to which the key is assigned. 図13は、第二の実施形態に係る複製管理サーバの構成を示すブロック図である。FIG. 13 is a block diagram illustrating a configuration of a replication management server according to the second embodiment. 図14は、第二の実施形態に係る複製管理情報テーブル記憶部に記憶される情報の一例を示す図である。FIG. 14 is a diagram illustrating an example of information stored in the replication management information table storage unit according to the second embodiment. 図15は、第二の実施形態に係る要求頻度情報テーブル記憶部に記憶される情報の一例を示す図である。FIG. 15 is a diagram illustrating an example of information stored in the request frequency information table storage unit according to the second embodiment. 図16は、第二の実施形態に係る情報処理システムにおける複製数変更処理の流れを説明するためのシーケンス図である。FIG. 16 is a sequence diagram for explaining the flow of the copy number changing process in the information processing system according to the second embodiment. 図17は、キー割当プログラムを実行するコンピュータを示す図である。FIG. 17 is a diagram illustrating a computer that executes a key assignment program.

以下に図面を参照して、この発明に係る情報処理システム、管理装置、サーバ装置及びキー割当プログラムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。   Exemplary embodiments of an information processing system, a management device, a server device, and a key assignment program according to the present invention will be described below in detail with reference to the drawings. In addition, this invention is not limited by this embodiment.

[第一の実施形態]
以下の実施形態では、第一の実施形態に係る情報処理システムの構成、要求処理サーバの構成、複製管理サーバの構成及び情報処理システムにおける処理の流れを順に説明し、最後に第一の実施形態による効果を説明する。
[First embodiment]
In the following embodiments, the configuration of the information processing system according to the first embodiment, the configuration of the request processing server, the configuration of the replication management server, and the processing flow in the information processing system will be described in order, and finally the first embodiment The effect of will be described.

[システムの構成]
まず、第一の実施形態に係る情報処理システム1の構成の一例を説明する。図1は、第一の実施形態に係る情報処理システムの構成の一例を示す図である。図1に示すように、情報処理システム1は、複数の要求処理サーバ10A〜10E、複製管理サーバ20、複数のクライアント30A〜30C、負荷分散装置40、複数の分散KVSサーバ50A〜50E、複数のIPネットワーク60A〜60Cを有する。
[System configuration]
First, an example of the configuration of the information processing system 1 according to the first embodiment will be described. FIG. 1 is a diagram illustrating an example of a configuration of an information processing system according to the first embodiment. As shown in FIG. 1, the information processing system 1 includes a plurality of request processing servers 10A to 10E, a replication management server 20, a plurality of clients 30A to 30C, a load distribution device 40, a plurality of distributed KVS servers 50A to 50E, a plurality of IP networks 60A-60C are provided.

なお、要求処理サーバ10A〜10E、クライアント30A〜30C、分散KVSサーバ50A〜50E、IPネットワーク60A〜60Cについて、特に区別することなく説明する場合には、「要求処理サーバ10」、「クライアント30」、「分散KVSサーバ50」、「IPネットワーク60」とそれぞれ記載する場合がある。また、図1に例示した各装置の設置数は、あくまで一例であり、これに限定されるものではない。   Note that the request processing servers 10A to 10E, the clients 30A to 30C, the distributed KVS servers 50A to 50E, and the IP networks 60A to 60C are described without particular distinction, “request processing server 10”, “client 30”. , “Distributed KVS server 50” and “IP network 60”. Moreover, the installation number of each apparatus illustrated in FIG. 1 is an example to the last, and is not limited to this.

また、図1に示すように、クライアント30A〜30Cと負荷分散装置40とは、IPネットワーク60Aを介して接続されている。また、負荷分散装置40と複数の要求処理サーバ10A〜10E及び複製管理サーバ20とは、IPネットワーク60Bを介して接続されている。また、複数の要求処理サーバ10A〜10E及び複製管理サーバ20と複数の分散KVSサーバ50A〜50Eとは、IPネットワーク60Cを介して接続されている。   As shown in FIG. 1, the clients 30A to 30C and the load balancer 40 are connected via an IP network 60A. Further, the load balancer 40, the plurality of request processing servers 10A to 10E, and the replication management server 20 are connected via an IP network 60B. The plurality of request processing servers 10A to 10E and the replication management server 20 are connected to the plurality of distributed KVS servers 50A to 50E via the IP network 60C.

クライアント30A〜30Cは、サービス要求を負荷分散装置40に送信し、負荷分散装置40から応答されるサービス応答を用いて、ユーザに各種サービスを提供する汎用端末である。   The clients 30 </ b> A to 30 </ b> C are general-purpose terminals that transmit service requests to the load balancer 40 and provide various services to the user using service responses returned from the load balancer 40.

負荷分散装置40は、クライアント30A〜30Cから送信されたサービス要求を、その到着した順に、各要求処理サーバ10A〜10Eに振り分ける汎用負荷分散装置である。   The load distribution device 40 is a general-purpose load distribution device that distributes service requests transmitted from the clients 30A to 30C to the request processing servers 10A to 10E in the order of arrival.

分散KVSサーバ50A〜50Eは、汎用な分散KVSシステムのサーバソフトウェアが動作する汎用なサーバ装置である。分散KVSサーバ50A〜50Eでは、データ(バリュー)と各データを識別するキーとを対応付けて記憶する。   The distributed KVS servers 50A to 50E are general-purpose server devices on which server software of a general-purpose distributed KVS system operates. In the distributed KVS servers 50A to 50E, data (value) and a key for identifying each data are stored in association with each other.

要求処理サーバ10A〜10Eは、分散KVSサーバ50A〜50Eに対してアクセスを行う。ここで、図2を用いて、第一の実施形態に係る情報処理システムの概要について説明する。図2は、第一の実施形態に係る情報処理システムの概要を説明する図である。なお、図2では、3台の要求処理サーバ10A〜10Cが設置され、4台の分散KVSサーバ50A〜50Dが設置されている場合を例として説明する。また、図2では、クライアント30やIPネットワーク60については図示を省略している。   The request processing servers 10A to 10E access the distributed KVS servers 50A to 50E. Here, the outline of the information processing system according to the first embodiment will be described with reference to FIG. FIG. 2 is a diagram illustrating an overview of the information processing system according to the first embodiment. Note that FIG. 2 illustrates an example in which three request processing servers 10A to 10C are installed and four distributed KVS servers 50A to 50D are installed. In FIG. 2, the client 30 and the IP network 60 are not shown.

図2に示すように、要求処理サーバ10は、要求処理アプリ110、アクセス変換ラッパー120、分散KVSクライアントライブラリ130の各ソフトウェアが動作する汎用なサーバ装置であり、上記ソフトウェアはプロセス間通信によって通信する。   As shown in FIG. 2, the request processing server 10 is a general-purpose server device on which each software of the request processing application 110, the access conversion wrapper 120, and the distributed KVS client library 130 operates, and the software communicates by inter-process communication. .

要求処理アプリ110は、クライアント30から送信されたサービス要求に対するサービス応答を作成する汎用なアプリケーションソフトウェアであり、アクセス変換ラッパー120を介して分散KVSサーバ50にアクセスすることにより、サービス応答の作成に必要なデータを取得する。   The request processing application 110 is general-purpose application software that creates a service response to a service request transmitted from the client 30, and is necessary for creating a service response by accessing the distributed KVS server 50 via the access conversion wrapper 120. The correct data.

アクセス変換ラッパー120は、後述するアクセス部12aを有するソフトウェアであり、要求処理アプリ110に対して、分散KVSクライアントライブラリ130と同等のインターフェースを提供し、要求処理アプリ110から送信された参照要求、更新要求、削除要求について、複製管理サーバ20から通知された複製管理情報に従って対象キーが複製されているかを判定し、複製されていた場合にはその要求を変換して分散KVSクライアントライブラリ130に送信する。   The access conversion wrapper 120 is software having an access unit 12a, which will be described later. The access conversion wrapper 120 provides an interface equivalent to the distributed KVS client library 130 to the request processing application 110, and the reference request and update transmitted from the request processing application 110. With respect to the request and the deletion request, it is determined whether the target key is duplicated according to the duplication management information notified from the duplication management server 20. If the key is duplicated, the request is converted and transmitted to the distributed KVS client library 130. .

また、アクセス変換ラッパー120は、後述する計数部12bを有し、要求処理アプリ110から送信された参照要求について、対象キー毎の要求頻度を複製管理サーバ20に通知する。   Further, the access conversion wrapper 120 includes a counting unit 12b described later, and notifies the replication management server 20 of the request frequency for each target key with respect to the reference request transmitted from the request processing application 110.

分散KVSクライアントライブラリ130は、汎用な分散KVSシステムのクライアントソフトウェアであり、アクセス変換ラッパー120から送信された各要求について、振り分け先の分散KVSサーバ50を決定し、要求を送信する。   The distributed KVS client library 130 is a general-purpose distributed KVS system client software, and for each request transmitted from the access conversion wrapper 120, determines a distributed KVS server 50 as a distribution destination, and transmits the request.

複製管理サーバ20は、要求処理サーバ10A〜10Cから送信された要求頻度情報に従って各キーの複製数を決定し、決定した複製数分の複製キーを分散KVSサーバ50に対して作成し、作成した複製キーを分散KVSサーバ50A〜50Dに割り当てる。また、複製管理サーバ20上にも分散KVSクライアントライブラリ210が存在し、後述する参照要求や追加要求の送信、およびそれら要求に対する応答の受信については、分散KVSクライアントライブラリ210を介して行われる。   The replication management server 20 determines the number of copies of each key in accordance with the request frequency information transmitted from the request processing servers 10A to 10C, and creates and creates as many replication keys as the determined number of copies for the distributed KVS server 50. The duplicate key is assigned to the distributed KVS servers 50A to 50D. Also, the distributed KVS client library 210 exists on the replication management server 20, and a reference request and an add request, which will be described later, and a response to the request are received via the distributed KVS client library 210.

[要求処理サーバの構成]
次に、図3を用いて、図1に示した要求処理サーバ10の構成を説明する。図3は、第一の実施形態に係る要求処理サーバの構成を示すブロック図である。図3に示すように、要求処理サーバ10は、通信処理部11、制御部12および記憶部13を有する。
[Configuration of request processing server]
Next, the configuration of the request processing server 10 shown in FIG. 1 will be described with reference to FIG. FIG. 3 is a block diagram showing the configuration of the request processing server according to the first embodiment. As illustrated in FIG. 3, the request processing server 10 includes a communication processing unit 11, a control unit 12, and a storage unit 13.

通信処理部11は、接続される複製管理サーバ20、負荷分散装置40および分散KVSサーバ50との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部11は、参照対象キーごとの要求頻度を複製管理サーバ20に対して送信し、複製管理情報テーブルを複製管理サーバ20から受信する。   The communication processing unit 11 controls communication related to various types of information exchanged with the connected replication management server 20, load distribution device 40, and distributed KVS server 50. For example, the communication processing unit 11 transmits a request frequency for each reference target key to the replication management server 20 and receives a replication management information table from the replication management server 20.

また、通信処理部11は、サービス要求を負荷分散装置40から受信し、サービス要求に対する応答であるサービス応答を負荷分散装置40に対して送信する。また、通信処理部11は、参照要求、更新要求、削除要求を分散KVSサーバ50に対して送信し、各要求に対応する応答である参照応答、更新応答、削除応答を分散KVSサーバ50から受信する。   The communication processing unit 11 receives a service request from the load balancer 40 and transmits a service response that is a response to the service request to the load balancer 40. Further, the communication processing unit 11 transmits a reference request, an update request, and a deletion request to the distributed KVS server 50, and receives a reference response, an update response, and a deletion response corresponding to each request from the distributed KVS server 50. To do.

記憶部13は、図3に示すように、要求頻度記憶部13aおよび複製管理情報テーブル記憶部13bを有する。記憶部13は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。   As shown in FIG. 3, the storage unit 13 includes a request frequency storage unit 13a and a replication management information table storage unit 13b. The storage unit 13 is, for example, a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk.

要求頻度記憶部13aは、各参照対象キーの要求頻度を記憶する。具体的には、要求頻度記憶部13aは、参照対象キーごとに、後述する計数部12bによって計数されたアクセス要求の回数である要求頻度を記憶する。   The request frequency storage unit 13a stores the request frequency of each reference target key. Specifically, the request frequency storage unit 13a stores a request frequency that is the number of access requests counted by a counting unit 12b described later for each reference target key.

ここで、図4を用いて、要求頻度記憶部13aに記憶される情報の一例について説明する。図4は、第一の実施形態に係る要求頻度記憶部に記憶される情報の一例を示す図である。図4に例示するように、要求頻度記憶部13aは、参照対象キーを一意に識別する文字列である「参照対象キー」と、各参照対象キーがアクセス要求の対象となった回数である「要求頻度」とを対応付けて記憶する。なお、要求頻度の値は、所定の時間(例えば、5分)内における要求頻度であり、5分経過するたびに値がリセットされるものである。   Here, an example of information stored in the request frequency storage unit 13a will be described with reference to FIG. FIG. 4 is a diagram illustrating an example of information stored in the request frequency storage unit according to the first embodiment. As illustrated in FIG. 4, the request frequency storage unit 13 a includes a “reference target key” that is a character string for uniquely identifying a reference target key, and the number of times each reference target key is an access request target. “Request frequency” is stored in association with each other. The value of the request frequency is a request frequency within a predetermined time (for example, 5 minutes), and the value is reset every 5 minutes.

具体的な例を挙げて説明すると、要求頻度記憶部13aは、例えば、参照対象キー「aaa」に対応する要求頻度として「40」を記憶し、参照対象キー「bbb」に対応する要求頻度として「75」を記憶し、参照対象キー「ccc」に対応する要求頻度として「150」を記憶する。   For example, the request frequency storage unit 13a stores “40” as the request frequency corresponding to the reference target key “aaa” and the request frequency corresponding to the reference target key “bbb”. “75” is stored, and “150” is stored as the request frequency corresponding to the reference target key “ccc”.

複製管理情報テーブル記憶部13bは、複製管理サーバ20が作成した複製管理情報テーブルを記憶する。具体的には、複製管理情報テーブル記憶部13bは、複製管理情報テーブルとして、複製された参照対象キーごとに、複製されたキーの数を記憶する。   The replication management information table storage unit 13b stores a replication management information table created by the replication management server 20. Specifically, the duplicate management information table storage unit 13b stores the number of duplicated keys for each duplicated reference target key as a duplicate management information table.

ここで、図5を用いて、複製管理情報テーブル記憶部13bに記憶される情報の一例について説明する。図5は、第一の実施形態に係る複製管理情報テーブル記憶部に記憶される情報の一例を示す図である。図5に例示するように、複製管理情報テーブル記憶部13bは、複製管理サーバ20により複製された参照対象キーを識別する文字列である「キー」と、参照対象キーの複製された数を示す「複製数」とを対応付けて記憶する。   Here, an example of information stored in the replication management information table storage unit 13b will be described with reference to FIG. FIG. 5 is a diagram illustrating an example of information stored in the replication management information table storage unit according to the first embodiment. As illustrated in FIG. 5, the replication management information table storage unit 13 b indicates a “key” that is a character string for identifying a reference target key replicated by the replication management server 20 and the number of replicated reference target keys. The “number of copies” is stored in association with each other.

具体的な例を挙げて説明すると、複製管理情報テーブル記憶部13bは、例えば、キー「ddd」に対応する複製数として「3」を記憶し、「ggg」に対応する複製数として「6」を記憶し、「hhh」に対応する複製数として「14」を記憶する。   For example, the replication management information table storage unit 13b stores “3” as the number of replicas corresponding to the key “ddd” and “6” as the number of replicas corresponding to “ggg”. And “14” is stored as the number of copies corresponding to “hh”.

図3に戻って、制御部12は、アクセス部12aおよび計数部12bを有する。ここで、制御部12は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。   Returning to FIG. 3, the control unit 12 includes an access unit 12a and a counting unit 12b. Here, the control unit 12 is an electronic circuit such as a CPU (Central Processing Unit) or MPU (Micro Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

アクセス部12aは、参照対象キーを含むアクセス要求を受け付けた場合には、該参照対象キーに対応するデータを記憶する分散KVSサーバ50に対してアクセスを行う。具体的には、アクセス部12aは、参照対象キーを含むアクセス要求を受け付けた場合に、該キーが複製されたキーであるか判定し、複製されているキーである場合には、複製されたキーのなかから一つのキーを選択し、該キーを用いて分散KVSサーバ50に対してアクセスを行う。   When the access unit 12a receives an access request including a reference target key, the access unit 12a accesses the distributed KVS server 50 that stores data corresponding to the reference target key. Specifically, when the access unit 12a receives an access request including a reference target key, the access unit 12a determines whether the key is a duplicated key. One key is selected from the keys, and the distributed KVS server 50 is accessed using the key.

例えば、アクセス部12aは、要求処理アプリ110から分散KVSサーバ50に対して送信される、参照、更新、削除の各要求について、複製管理サーバ20により作成された複製管理情報に基づいて、対象のキーが複製されているか否かを判定し、複製されているキーに対する要求であれば、参照要求を変換して、分散KVSサーバ50に送信する。   For example, the access unit 12a performs the reference, update, and delete requests transmitted from the request processing application 110 to the distributed KVS server 50 based on the replication management information created by the replication management server 20. It is determined whether or not the key is duplicated, and if it is a request for the duplicated key, the reference request is converted and transmitted to the distributed KVS server 50.

例えば、アクセス部12aは、複製されているキーに対する要求である場合に、参照要求については、複製キーの中からランダムで選択したキーに対する参照要求に変換し、更新要求および削除要求については、すべての複製キーに対する更新要求、削除要求に変換する。   For example, when the access unit 12a is a request for a duplicated key, the reference request is converted into a reference request for a key randomly selected from the duplicate keys, and all of the update request and the delete request are converted. It is converted into an update request and delete request for the duplicate key.

計数部12bは、参照対象キーごとに、受け付けたアクセス要求の数であるアクセス回数を計数する。具体的には、計数部12bは、要求処理アプリ110から送信される参照要求に含まれる対象キーごとの要求頻度をカウントし、要求頻度記憶部13aに格納する。また、計数部12bは、要求頻度記憶部13aに格納した情報を要求頻度情報通知として、複製管理サーバ20に対して定期的に送信する。例えば、計数部12bは、5分後ごとに、要求頻度情報通知を複製管理サーバ20に対して送信する。また、計数部12bは、要求頻度情報通知を送信した際には、要求頻度記憶部13aに記憶される要求頻度の値をリセットする。   The counting unit 12b counts the number of accesses that is the number of received access requests for each reference target key. Specifically, the counting unit 12b counts the request frequency for each target key included in the reference request transmitted from the request processing application 110, and stores it in the request frequency storage unit 13a. Further, the counting unit 12b periodically transmits information stored in the request frequency storage unit 13a to the replication management server 20 as a request frequency information notification. For example, the counting unit 12b transmits a request frequency information notification to the replication management server 20 every 5 minutes. Further, when transmitting the request frequency information notification, the counting unit 12b resets the value of the request frequency stored in the request frequency storage unit 13a.

[複製管理サーバの構成]
次に、図6を用いて、図1に示した複製管理サーバ20の構成を説明する。図6は、第一の実施形態に係る複製管理サーバの構成を示すブロック図である。図6に示すように、複製管理サーバ20は、通信処理部21、制御部22および記憶部23を有する。
[Configuration of replication management server]
Next, the configuration of the replication management server 20 shown in FIG. 1 will be described with reference to FIG. FIG. 6 is a block diagram showing the configuration of the replication management server according to the first embodiment. As illustrated in FIG. 6, the replication management server 20 includes a communication processing unit 21, a control unit 22, and a storage unit 23.

通信処理部21は、接続される要求処理サーバ10および分散KVSサーバ50との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部21は、参照対象キーごとの要求頻度を要求処理サーバ10から受信し、複製管理情報テーブルを複製管理サーバ20に対して送信する。また、通信処理部21は、作成した複製キーをKVSサーバ50に対して送信する。   The communication processing unit 21 controls communication related to various information exchanged between the request processing server 10 and the distributed KVS server 50 to be connected. For example, the communication processing unit 21 receives the request frequency for each reference target key from the request processing server 10 and transmits a replication management information table to the replication management server 20. Further, the communication processing unit 21 transmits the created duplicate key to the KVS server 50.

記憶部23は、図6に示すように、複製管理情報記憶部23aおよび要求頻度情報テーブル記憶部23bを有する。記憶部23は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。   As shown in FIG. 6, the storage unit 23 includes a replication management information storage unit 23a and a request frequency information table storage unit 23b. The storage unit 23 is, for example, a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk.

複製管理情報テーブル記憶部23aは、後述する作成部22cが作成した複製管理情報テーブルを記憶する。具体的には、複製管理情報テーブル記憶部23aは、複製管理情報テーブルとして、複製された参照対象キーごとに、複製されたキーの数を記憶する。なお、複製管理情報テーブル記憶部23aは、前述した複製管理情報テーブル記憶部13bに記憶される情報と同様の情報を記憶しており、図5に例示するように、複製された参照対象キーを識別する文字列である「キー」と、参照対象キーの複製された数を示す「複製数」とを対応付けて記憶する。   The replication management information table storage unit 23a stores a replication management information table created by the creation unit 22c described later. Specifically, the duplicate management information table storage unit 23a stores the number of duplicated keys for each duplicated reference target key as a duplicate management information table. Note that the replication management information table storage unit 23a stores the same information as the information stored in the replication management information table storage unit 13b described above. As illustrated in FIG. A “key” that is a character string to be identified and a “duplicate number” indicating the number of duplicated reference target keys are stored in association with each other.

要求頻度情報テーブル記憶部23bは、参照対象キーごとの要求頻度とともに、各参照対象キーの複製される数を記憶する。具体的には、要求頻度情報テーブル記憶部23bは、参照対象キーごとの要求頻度とともに、後述する決定部22bによって決定された参照対象キーの複製数を記憶する。   The request frequency information table storage unit 23b stores the number of copies of each reference target key together with the request frequency for each reference target key. Specifically, the request frequency information table storage unit 23b stores the number of copies of the reference target key determined by the determination unit 22b described later together with the request frequency for each reference target key.

ここで、図7を用いて、要求頻度情報テーブル記憶部23bに記憶される情報の一例について説明する。図7は、第一の実施形態に係る要求頻度情報テーブル記憶部に記憶される情報の一例を示す図である。図7に例示するように、参照対象キーを識別する文字列である「参照対象キー」と、各参照対象キーがアクセス要求の対象となった回数である「要求頻度」と、目標とする参照対象キーの複製数である「複製目標M」と、後述する決定部22bによって決定された実際に複製する参照対象キーの数である「複製数N」とを対応付けて記憶する。   Here, an example of information stored in the request frequency information table storage unit 23b will be described with reference to FIG. FIG. 7 is a diagram illustrating an example of information stored in the request frequency information table storage unit according to the first embodiment. As illustrated in FIG. 7, a “reference target key” that is a character string for identifying a reference target key, a “request frequency” that is the number of times each reference target key is an access request target, and a target reference The “replication target M”, which is the number of copies of the target key, and the “replication number N”, which is the number of reference target keys that are actually copied, determined by the determination unit 22b described later, are stored in association with each other.

具体的な例を挙げて説明すると、要求頻度情報テーブル記憶部23bは、例えば、参照対象キー「aaa」に対応する要求頻度として「40」、複製目標Mとして「0」、複製数Nとして「0」を記憶する。また、例えば、要求頻度情報テーブル記憶部23bは、参照対象キー「ddd」に対応する要求頻度として「610」、複製目標Mとして「2」、複製数Nとして「3」を記憶する。   To describe with a specific example, the request frequency information table storage unit 23b, for example, “40” as the request frequency corresponding to the reference target key “aaa”, “0” as the replication target M, and “ “0” is stored. Further, for example, the request frequency information table storage unit 23b stores “610” as the request frequency corresponding to the reference target key “ddd”, “2” as the replication target M, and “3” as the number of replications N.

図6に戻って、制御部22は、取得部22a、決定部22b、作成部22cおよび割当部22dを有する。ここで、制御部22は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。   Returning to FIG. 6, the control unit 22 includes an acquisition unit 22a, a determination unit 22b, a creation unit 22c, and an allocation unit 22d. Here, the control unit 22 is an electronic circuit such as a CPU (Central Processing Unit) or MPU (Micro Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

取得部22aは、要求処理サーバ10から参照対象キーごとのアクセス回数を取得する。具体的には、取得部22aは、要求処理サーバ10の要求処理アプリ110から分散KVSサーバ50に対する参照要求について、参照対象キー毎の要求頻度を取得する。そして、取得部22aは、取得した要求頻度を要求頻度情報テーブル記憶部23bに格納する。   The acquisition unit 22a acquires the access count for each reference target key from the request processing server 10. Specifically, the acquisition unit 22a acquires a request frequency for each reference target key for a reference request from the request processing application 110 of the request processing server 10 to the distributed KVS server 50. Then, the acquisition unit 22a stores the acquired request frequency in the request frequency information table storage unit 23b.

決定部22bは、取得部22aによって取得されたアクセス回数が所定の閾値を超えている場合に、該アクセス要求に対応する参照対象キーを複製する個数を決定する。具体的には、要求頻度情報テーブル記憶部23bから参照要求キー毎の要求頻度に応じて、各参照要求キーの複製数をそれぞれ決定し、要求頻度情報テーブル記憶部23bに格納する。   The determining unit 22b determines the number of copies of the reference target key corresponding to the access request when the number of accesses acquired by the acquiring unit 22a exceeds a predetermined threshold. Specifically, the number of copies of each reference request key is determined from the request frequency information table storage unit 23b according to the request frequency for each reference request key, and stored in the request frequency information table storage unit 23b.

また、決定部22bは、取得部22aによって取得されたアクセス回数が閾値を超えている場合に、アクセス回数を閾値で除算した値に応じて、個数を決定する。ここで、各参照要求キーの複製数を決定する処理について詳しく説明する。例えば、決定部22bは、取得部22aによって取得された要求頻度を対象キーごとに合算し、前述した図7に例示するような要求頻度情報テーブルを作成し、要求頻度情報テーブル記憶部23bに格納する。   In addition, when the number of accesses acquired by the acquisition unit 22a exceeds the threshold, the determination unit 22b determines the number according to a value obtained by dividing the number of accesses by the threshold. Here, the process of determining the number of copies of each reference request key will be described in detail. For example, the determination unit 22b adds the request frequencies acquired by the acquisition unit 22a for each target key, creates a request frequency information table as illustrated in FIG. 7 and stores the request frequency information table in the request frequency information table storage unit 23b. To do.

ここで、決定部22bは、各キーの要求頻度を予め定める閾値で除算し、小数点未満を切り捨てた整数を、要求頻度情報テーブルにおける複製目標Mとして算出する。例えば、閾値を「300」とした場合に、要求頻度が610であるキー「ddd」の複製目標Mは、「2」となる。   Here, the determination unit 22b divides the request frequency of each key by a predetermined threshold value, and calculates an integer obtained by rounding off the decimal point as the replication target M in the request frequency information table. For example, when the threshold value is “300”, the replication target M of the key “ddd” whose request frequency is 610 is “2”.

複製目標Mは、分散KVSサーバ50の負荷の偏りを軽減するために、いくつのサーバにキーを複製すべきかを表すものであり、例えば、複製目標Mが「2」であるキー「ddd」の場合には、キー「ddd」が元々割り当てられている分散KVSサーバ50とは別の分散KVSサーバ2台に対して、キー「ddd」の複製キーを作成する必要があることを意味する。   The replication target M represents the number of servers to which the key should be replicated in order to reduce the load bias of the distributed KVS server 50. For example, the replication target M of the key “ddd” whose replication target M is “2” In this case, it means that it is necessary to create a duplicate key of the key “ddd” for two distributed KVS servers different from the distributed KVS server 50 to which the key “ddd” is originally assigned.

ところが、キーがどの分散KVSサーバ50に割り当てられるかは、分散KVSクライアントライブラリ130が、例えばコンシステントハッシュ法などによって、ある種ランダムに決定されるものであり、割当先の分散KVSサーバ50をあらかじめ指定することができない。このため、複製目標M分の複製キーを作成したとしても、それらが全て異なる分散KVSサーバ50に割り当てられるとは限らない。   However, the distributed KVS server 50 to which the key is assigned is determined by the distributed KVS client library 130 in a random manner by, for example, the consistent hash method. Cannot be specified. For this reason, even if replication keys for the replication target M are created, they are not all assigned to different distributed KVS servers 50.

そこで、複製キーがランダムに各分散KVSサーバ50に割り当てられる場合に、複製キーが割り当てられる分散KVSサーバ50の数が複製目標M以上となるために必要な複製数の期待値を複製数Nと定義する。決定部22bは、複製数Nについて、下記の(1)式で算出し、小数点以下を切り上げて整数化した値を複製数Nとする。なお、下記の(1)において、分散KVSサーバ50のサーバ数をSとする。   Therefore, when a replication key is randomly assigned to each distributed KVS server 50, an expected value of the number of replications required for the number of distributed KVS servers 50 to which a replication key is assigned to be equal to or greater than the replication target M is the replication number N. Define. The determination unit 22b calculates the number of copies N by the following equation (1), and rounds the number after the decimal point to make it an integer. In the following (1), the number of distributed KVS servers 50 is S.

Figure 0006076882
Figure 0006076882

なお、あるキーが元々割り当てられている分散KVSサーバ以外の全サーバにそれぞれ1つずつ複製キーが存在する状態が最も負荷を分散できる状態であるため、複製目標Mの最大値は「S−1」とする。前述した図7に例示する要求頻度情報テーブルは、分散KVSのサーバ数Sが「10」とした場合の例である。   It should be noted that the state in which one copy key exists in each of all servers other than the distributed KVS server to which a certain key is originally assigned is the state in which the load can be distributed most. Therefore, the maximum value of the replication target M is “S−1”. " The above-described request frequency information table illustrated in FIG. 7 is an example when the number of servers S of the distributed KVS is “10”.

その後、決定部22bは、作成した要求頻度情報テーブルから複製数が1以上のものを抽出し、図5に例示したような複製管理情報テーブルを作成する。例えば、決定部22bは、前回作成した複製管理情報テーブルが存在する場合には、今回作成した複製管理情報テーブルとの比較を行い、複製数が増加したレコード(新規に追加されたレコードを含む)、複製数が減少したレコード(削除されたレコードを含む)を、それぞれ抽出する。   Thereafter, the determination unit 22b extracts one having a copy count of 1 or more from the created request frequency information table, and creates a copy management information table as illustrated in FIG. For example, when there is a replication management information table created last time, the determination unit 22b compares it with the replication management information table created this time, and records with an increased number of replications (including newly added records). , Records with a reduced number of replicas (including deleted records) are extracted.

また、決定部22bは、前回作成時の複製管理情報テーブルが存在しなければ、今回作成した複製管理情報テーブルの全てのレコードが、複製数が増加したレコードとなる。なお、前回作成した複製管理情報テーブルについては、複製管理テーブルの比較後、不要のため削除される。   Further, if the replication management information table created at the previous time does not exist, the determination unit 22b makes all the records of the replication management information table created this time a record in which the number of replications has increased. Note that the replication management information table created last time is deleted because it is unnecessary after the comparison of the replication management table.

作成部22cは、決定部22bによって決定された個数分の参照対象キーの複製を作成する。具体的には、作成部22cは、各参照対象キーについて、要求頻度情報テーブル記憶部23bに記憶された複製数分の複製キーを作成するとともに、複製管理情報を作成して複製管理情報記憶部23aに格納する。   The creation unit 22c creates as many copies of the reference target keys as the number determined by the determination unit 22b. Specifically, the creation unit 22c creates, for each reference target key, as many replication keys as the number of copies stored in the request frequency information table storage unit 23b, and creates replication management information to create a replication management information storage unit. 23a.

例えば、作成部22cは、キーの文字列(例えば、「abc」)に、あらかじめ定める区切り文字(例えば、“_”(アンダースコア))と、1〜「複製管理情報から取得した当該キーの複製数」までの整数(例えば、「1」〜「3」)をそれぞれ付与した文字列(例えば、「abc_1」、「abc_2」、「abc_3」)を新たな複製キーとして作成する。   For example, the creation unit 22c adds a predetermined delimiter (for example, “_” (underscore)) to the key character string (for example, “abc”) and 1 to “the copy of the key acquired from the copy management information. Character strings (for example, “abc_1”, “abc_2”, “abc_3”) to which integers up to “number” (for example, “1” to “3”) are assigned are created as new duplication keys.

割当部22dは、作成部22cによって作成された参照対象キーの複製を、複数の分散KVSサーバのうちのいずれかの分散KVSサーバに記憶されるデータであって、アクセス回数が閾値を超えた参照対象キーに対応するデータに割り当てる。なお、参照対象キーに対応するデータに割り当てる処理の具体的な内容については、後述する図10における複製キー追加処理として後に説明する。   The allocating unit 22d is a reference stored with the copy of the reference target key created by the creating unit 22c stored in any one of the plurality of distributed KVS servers, and the access count exceeds the threshold. Assign to the data corresponding to the target key. The specific contents of the process assigned to the data corresponding to the reference target key will be described later as a duplicate key adding process in FIG.

ここで、図8を用いて、複製管理サーバ20におけるキー割当処理の概要について具体的な例を用いて説明する。図8は、第一の実施形態に係る複製管理サーバにおけるキー割当処理を説明する図である。図8に例示するように、複製管理サーバ20が、各キーの参照要求頻度に応じて、高頻度にアクセスが生じるキー(例えば、keyY)の複製を行い、複製キー(例えば、keyY_1〜3)を分散KVSサーバ50A、50C、50Dに割り当てる。   Here, the outline of the key assignment processing in the replication management server 20 will be described using a specific example with reference to FIG. FIG. 8 is a diagram for explaining key assignment processing in the replication management server according to the first embodiment. As illustrated in FIG. 8, the replication management server 20 replicates a key (for example, keyY) that is accessed frequently according to the reference request frequency of each key, and replicates keys (for example, keyY_1 to 3). Are assigned to the distributed KVS servers 50A, 50C, and 50D.

そして、例えば、要求処理サーバ10Bは、高頻度アクセスキーであるkeyYに対する参照要求を複製キー(keyY_2)に対する参照要求に変換し、分散KVSサーバ50Cに対してアクセスを行う。   For example, the request processing server 10B converts a reference request for the key Y, which is a high-frequency access key, into a reference request for the duplicate key (key Y_2), and accesses the distributed KVS server 50C.

このように、第一の実施形態に係る情報処理システム1では、複製管理サーバ20が、アプリケーションからの参照要求における各キーの要求頻度に応じてそのキーの複製を作成し、アプリケーションからの参照要求をそれら複製されたキーに分散させる。このため、既存の分散KVSシステムをそのまま使用しながら、かつ要求処理アプリに対して特別な機能追加を必要とすることなく、分散KVSサーバ50における、キーのアクセス頻度の偏りに由来する負荷の偏りを軽減することが可能である。   As described above, in the information processing system 1 according to the first embodiment, the replication management server 20 creates a copy of each key according to the request frequency of each key in the reference request from the application, and the reference request from the application. Are distributed over these replicated keys. For this reason, while using the existing distributed KVS system as it is and without requiring a special function addition to the request processing application, the load unevenness resulting from the uneven access frequency of the keys in the distributed KVS server 50 Can be reduced.

[情報処理システムによる処理]
次に、図9、図10を用いて、第一の実施形態に係る情報処理システム1による処理を説明する。図9は、第一の実施形態に係る情報処理システムにおけるサービス要求応答処理の流れを説明するためのシーケンス図である。図10は、第一の実施形態に係る情報処理システムにおける複製数変更処理の流れを説明するためのシーケンス図である。
[Processing by information processing system]
Next, processing by the information processing system 1 according to the first embodiment will be described with reference to FIGS. 9 and 10. FIG. 9 is a sequence diagram for explaining the flow of the service request response process in the information processing system according to the first embodiment. FIG. 10 is a sequence diagram for explaining the flow of the copy number changing process in the information processing system according to the first embodiment.

まず、図9を用いて、情報処理システム1におけるサービス要求応答処理の流れを説明する。図9では、クライアント30から送信されたサービス要求に対して、要求処理サーバ10がサービス応答を返すまでの処理を説明する。   First, the flow of service request response processing in the information processing system 1 will be described with reference to FIG. In FIG. 9, processing until the request processing server 10 returns a service response to the service request transmitted from the client 30 will be described.

図9に示すように、クライアント30は、サービス要求を負荷分散装置40に送信する(ステップS101)。そして、サービス要求を受信した負荷分散装置40は、例えば、ラウンドロビンなどの方式によりサービス要求の転送先の要求処理サーバ10を決定し、サービス要求を転送する(ステップS102)。ここで、サービス要求には、ユーザ名やサービス指定値、サービスオプション指定値などが含まれるものとする。   As shown in FIG. 9, the client 30 transmits a service request to the load balancer 40 (step S101). Then, the load distribution apparatus 40 that has received the service request determines the request processing server 10 to which the service request is transferred by a method such as round robin, and transfers the service request (step S102). Here, it is assumed that the service request includes a user name, a service specification value, a service option specification value, and the like.

続いて、サービス要求を受信した要求処理サーバ10上の要求処理アプリ110は、当該サービス要求に対するサービス応答の作成に必要な情報を分散KVSサーバ50から取得するため、例えば、サービス指定値を対象キーとする参照要求を、アクセス変換ラッパー120に対して送信する(ステップS103)。なお、図9では説明を省略しているが、サービス応答の作成のために他にデータを取得する必要がある場合、要求処理アプリ110は、それらデータを取得するためのキー(例えば、ユーザ名やサービスオプション指定値など)を対象キーとする参照要求をそれぞれ送信し、必要なデータを参照応答から取得する。   Subsequently, the request processing application 110 on the request processing server 10 that has received the service request acquires, from the distributed KVS server 50, information necessary for creating a service response to the service request. Is transmitted to the access conversion wrapper 120 (step S103). Although not described in FIG. 9, when it is necessary to acquire other data for creating a service response, the request processing application 110 uses a key (for example, a user name) for acquiring the data. Or a service option specification value) is transmitted as a target key, and necessary data is acquired from the reference response.

続いて、参照要求を受信したアクセス変換ラッパー120は、参照要求に含まれる対象キーをキーとする参照要求を分散KVSクライアントライブラリ130に送信する(ステップS104)。具体的には、アクセス変換ラッパー120は、参照要求に含まれる対象キーをキーとして、図5において例示した複製管理情報テーブルを検索する。そして、アクセス変換ラッパー120は、検索の結果、該当のレコードが無い場合は、当該キーが複製されていないと判断し、アクセス変換ラッパー120は、要求処理アプリから送信された参照要求をそのまま分散KVSクライアントライブラリ130に送信する。   Subsequently, the access conversion wrapper 120 that has received the reference request transmits a reference request using the target key included in the reference request as a key to the distributed KVS client library 130 (step S104). Specifically, the access conversion wrapper 120 searches the replication management information table illustrated in FIG. 5 using the target key included in the reference request as a key. Then, if there is no corresponding record as a result of the search, the access conversion wrapper 120 determines that the key is not duplicated, and the access conversion wrapper 120 distributes the reference request transmitted from the request processing application as it is. Transmit to the client library 130.

一方、アクセス変換ラッパー120は、該当のレコードが存在した場合、つまり当該キーが複製されている場合には、当該キーの文字列(例えば、「abc」)に、あらかじめ定める区切り文字(例えば、“_”(アンダースコア))と、1〜「複製管理情報から取得した当該キーの複製数」までの範囲の中からランダムに選んだ整数(例えば、「3」)を付与した文字列(例えば、「abc_3))を新たな対象キーとする参照要求を、分散KVSクライアントライブラリ130に送信する。これにより、複製されたキーに対する参照要求は、複製キー(「abc_3」など)のいずれかに対する参照要求に変換され、分散KVSサーバ50の負荷の偏りを軽減することができる。   On the other hand, when the corresponding record exists, that is, when the key is duplicated, the access conversion wrapper 120 adds a predetermined delimiter (for example, “abc”) to the character string (for example, “abc”) of the key. _ ”(Underscore)) and a character string (for example,“ 3 ”) randomly selected from a range from 1 to“ the number of copies of the key acquired from the replication management information ”(for example,“ 3 ”) A reference request having “abc_3)) as a new target key is transmitted to the distributed KVS client library 130. Thus, the reference request for the duplicated key is a reference request for one of the duplicate keys (such as“ abc_3 ”). It is possible to reduce the load bias of the distributed KVS server 50.

そして、参照要求を受信した分散KVSクライアントライブラリ130は、参照要求に含まれる対象キーを用いて、例えば、コンシステントハッシュ法などの方式により、当該キーのデータを保持する分散KVSサーバ50Bを特定し、当該分散KVSサーバ50Bに参照要求を送信する(ステップS105)。   Then, the distributed KVS client library 130 that has received the reference request uses the target key included in the reference request to specify the distributed KVS server 50B that holds the data of the key by a method such as a consistent hash method, for example. Then, a reference request is transmitted to the distributed KVS server 50B (step S105).

そして、参照要求を受信した分散KVSサーバ50Bは、参照要求に含まれる対象キーに対応するデータを自身の記憶領域から取得し、当該データを格納した参照応答を要求処理サーバ上の分散KVSクライアントライブラリ130に送信する(ステップS106)。なお、対象キーに対応するデータが存在しなかった場合は、空の参照応答を送信する。   Then, the distributed KVS server 50B that has received the reference request obtains data corresponding to the target key included in the reference request from its own storage area, and sends a reference response storing the data to the distributed KVS client library on the request processing server. It transmits to 130 (step S106). If there is no data corresponding to the target key, an empty reference response is transmitted.

そして、参照応答を受信した分散KVSクライアントライブラリ130は、アクセス変換ラッパー120に参照応答を転送する(ステップS107)。続いて、参照応答を受信したアクセス変換ラッパー120は、要求処理アプリ110に参照応答を転送する(ステップS108)。   Then, the distributed KVS client library 130 that has received the reference response transfers the reference response to the access conversion wrapper 120 (step S107). Subsequently, the access conversion wrapper 120 that has received the reference response transfers the reference response to the request processing application 110 (step S108).

参照応答を受信した要求処理アプリ110は、参照応答に含まれるデータを用いて、サービス応答を作成し、クライアント30に送信する(ステップS109)。ここで、例えば、サービス要求を送信した各ユーザの最終要求送信時刻を記録するなどのために、分散KVSサーバ50A〜50Cのデータを更新する必要がある場合には、要求処理アプリ110は、ユーザ名を対象キーとし、最終要求送信時刻を更新データとする更新要求をアクセス変換ラッパー120に送信する(ステップS110)。   The request processing application 110 that has received the reference response creates a service response using the data included in the reference response, and transmits the service response to the client 30 (step S109). Here, for example, when it is necessary to update the data of the distributed KVS servers 50A to 50C in order to record the final request transmission time of each user who transmitted the service request, the request processing application 110 An update request having the name as a target key and the last request transmission time as update data is transmitted to the access conversion wrapper 120 (step S110).

そして、更新要求を受信したアクセス変換ラッパー120は、更新要求を分散KVSクライアントライブラリ130に送信する(ステップS111)。具体的には、更新要求を受信したアクセス変換ラッパー120は、参照要求の受信時と同様に、更新要求に含まれる対象キーを用いて複製管理情報テーブルを検索する。そして、アクセス変換ラッパー120は、検索の結果、該当のレコードが無い場合、つまり当該キーが複製されていない場合、要求処理アプリから送信された更新要求をそのまま分散KVSクライアントライブラリ130に送信する。   Then, the access conversion wrapper 120 that has received the update request transmits the update request to the distributed KVS client library 130 (step S111). Specifically, the access conversion wrapper 120 that has received the update request searches the replication management information table using the target key included in the update request in the same manner as when the reference request is received. If there is no corresponding record as a result of the search, that is, if the key is not duplicated, the access conversion wrapper 120 transmits the update request transmitted from the request processing application to the distributed KVS client library 130 as it is.

一方、該当のレコードが存在した場合、つまり当該キーが複製されている場合、アクセス変換ラッパー120は、更新要求に含まれる対象キーの文字列(例えば、「UserA」)に、あらかじめ定める区切り文字(例えば、「_」(アンダースコア))と、1〜「複製管理情報から取得した当該キーの複製数」(例えば、「1」〜「5」)を付与した文字列(例えば、「UserA_1」、「UserA_2」、「UserA_3」、「UserA_4」、「UserA_5」)および複製元のキー「UserA」を更新対象キーとする更新要求を、分散KVSクライアントに送信する。   On the other hand, if the corresponding record exists, that is, if the key is duplicated, the access conversion wrapper 120 adds a predetermined delimiter character (for example, “UserA”) to the character string (for example, “UserA”) included in the update request. For example, “_” (underscore)) and a character string (for example, “UserA_1”) to which 1 to “the number of copies of the key acquired from the replication management information” (for example, “1” to “5”) are added, (UserA_2, UserA_3, UserA_4, UserA_5)) and an update request using the copy source key “UserA” as update target keys are transmitted to the distributed KVS client.

これにより、複製元のキーと全ての複製キーの更新を行う。なお、図9では説明を省略しているが、要求処理から削除要求を受信した場合も、更新要求受信時と同様に、複製元のキーと全ての複製キーを削除対象とする削除要求を分散KVSクライアントライブラリ130に送信する。   As a result, the copy source key and all copy keys are updated. Although not described in FIG. 9, even when a deletion request is received from the request processing, the deletion request for deleting the replication source key and all the replication keys is distributed as in the case of receiving the update request. Transmit to the KVS client library 130.

そして、それら更新要求を受信した分散KVSクライアントライブラリ130は、参照要求の受信時と同様に、各更新要求に含まれる対象キーを用いて、コンシステントハッシュ法などの方式により、当該キーのデータを保持する分散KVSサーバ50A〜50Cを特定し、当該分散KVSサーバ50A〜50Cに更新要求を送信する(ステップS112)。   Then, the distributed KVS client library 130 that has received these update requests uses the target key included in each update request to store the data of the key by a method such as a consistent hash method, as in the case of receiving the reference request. The distributed KVS servers 50A to 50C to be held are specified, and an update request is transmitted to the distributed KVS servers 50A to 50C (step S112).

更新要求を受信した分散KVSサーバ50A〜50Cは、更新要求に含まれる対象キーに対応するデータを、更新要求に含まれるデータで上書きし、更新応答を要求処理サーバ10上の分散KVSクライアントライブラリ130に送信する(ステップS113)。   The distributed KVS servers 50 </ b> A to 50 </ b> C that have received the update request overwrite the data corresponding to the target key included in the update request with the data included in the update request, and update the update response to the distributed KVS client library 130 on the request processing server 10. (Step S113).

そして、更新応答を受信した分散KVSクライアントライブラリ130は、アクセス変換ラッパー120に更新応答を転送する(ステップS114)。続いて、アクセス変換ラッパー120は、ステップS111において送信した全ての更新要求に対する更新応答を受信後に、更新応答を要求処理アプリ110に送信する(ステップS115)。   Then, the distributed KVS client library 130 that has received the update response transfers the update response to the access conversion wrapper 120 (step S114). Subsequently, the access conversion wrapper 120 transmits an update response to the request processing application 110 after receiving update responses to all the update requests transmitted in step S111 (step S115).

次に、図10を用いて、情報処理システム1における複製数変更処理の流れを説明する。図10では、アクセス変換ラッパー120から送信される各キーの要求頻度に応じて、複製管理サーバ20がキーの複製数を決定し、複製キーの追加、削除を行う処理を説明する。なお、上記の処理において、複製管理サーバ20は、要求処理サーバ10が要求頻度情報を送信する間隔に合わせて、定期的に処理を行うものである。   Next, the flow of the copy number changing process in the information processing system 1 will be described with reference to FIG. FIG. 10 illustrates a process in which the replication management server 20 determines the number of key replications according to the request frequency of each key transmitted from the access conversion wrapper 120, and adds and deletes replication keys. In the above processing, the replication management server 20 periodically performs processing in accordance with the interval at which the request processing server 10 transmits request frequency information.

図10に示すように、各要求処理サーバ10上のアクセス変換ラッパー120は、要求処理アプリ110から送信される参照要求に含まれる対象キーごとの要求頻度をカウントする要求頻度カウント処理を行う(ステップS201)。   As shown in FIG. 10, the access conversion wrapper 120 on each request processing server 10 performs a request frequency counting process that counts the request frequency for each target key included in the reference request transmitted from the request processing application 110 (steps). S201).

そして、アクセス変換ラッパー120は、要求頻度の情報を要求頻度情報通知として複製管理サーバ20に定期的(例えば、5分ごと)に送信する(ステップS202)。なお、要求頻度情報には、対象キーごとの要求頻度が含まれているが、期間内に受信した参照要求中のすべての対象キーの要求頻度を格納した場合に、データ量が著しく大きくなる可能性があるため、予め定める閾値(例えば、5分間の要求数が100以上)を超える要求頻度の対象キーの情報のみを要求頻度情報に含めるようにしてもよい。   Then, the access conversion wrapper 120 periodically transmits the request frequency information as a request frequency information notification to the replication management server 20 (for example, every 5 minutes) (step S202). The request frequency information includes the request frequency for each target key. However, if the request frequencies for all target keys in the reference request received within the period are stored, the data volume can be significantly increased. Therefore, only the information on the target key having a request frequency exceeding a predetermined threshold (for example, the number of requests for 5 minutes is 100 or more) may be included in the request frequency information.

その後、要求頻度情報通知を受信した複製管理サーバ20は、後に図11を用いて詳述する複製数変更判断処理を行う(ステップS203)。そして、複製管理サーバ20は、複製数変更判断処理で抽出した複製数の増加、減少を、それぞれ複製キーの追加、削除として分散KVSサーバ50A〜50Cに対して反映するとともに、複製管理情報テーブルの更新をアクセス変換ラッパー120に対して通知する。この処理は、複製キーの追加処理、複製管理情報の更新通知、複製キーの削除処理の順に実施する。これは、アクセス変換ラッパー120が追加前や削除後の複製キーにアクセスすることを抑止するためである。   Thereafter, the replication management server 20 that has received the request frequency information notification performs a replication number change determination process, which will be described in detail later with reference to FIG. 11 (step S203). Then, the replication management server 20 reflects the increase and decrease in the number of replications extracted in the replication number change determination process to the distributed KVS servers 50A to 50C as additions and deletions of the replication keys, respectively, and in the replication management information table. The update is notified to the access conversion wrapper 120. This process is performed in the order of a replication key addition process, a replication management information update notification, and a replication key deletion process. This is to prevent the access conversion wrapper 120 from accessing the duplicate key before addition or after deletion.

複製キーの追加処理では、複製管理サーバ20は、まず複製元のキーに対する参照要求を行い(ステップS204)、参照要求に対する参照応答を受信して(ステップS205)、当該キーに対応するデータ(バリュー)を取得する。なお、図11では省略しているが、複製管理サーバ20上にも、分散KVSクライアントライブラリ210が存在し、参照要求や以下に述べる追加要求の送信、およびそれら要求に対する応答の受信については、分散KVSクライアントライブラリを介して行われる。   In the replication key addition process, the replication management server 20 first makes a reference request for the replication source key (step S204), receives a reference response to the reference request (step S205), and receives data (value) corresponding to the key. ) To get. Although not shown in FIG. 11, the distributed KVS client library 210 also exists on the replication management server 20, and the transmission of reference requests and additional requests described below and the reception of responses to these requests are distributed. This is done via the KVS client library.

次に、複製管理サーバ20は、複製数の増加分だけ、キーの追加要求を行う。例えば、あらかじめ定める区切り文字を「_」として、キーgggの複製数を3から6に増加させる場合には、「ggg_4」、「ggg_5」、「ggg_6」を対象キーとする新たな複製キーの追加処理を要求する追加要求を分散KVSサーバ50A〜50Cに対して送信し(ステップS206、ステップS208、ステップS210)、分散KVSサーバ50A〜50Cから追加応答を受信する(ステップS207、ステップS209、ステップS211)。   Next, the replication management server 20 makes a key addition request for the increase in the number of replicas. For example, when the predetermined delimiter is “_” and the number of copies of the key ggg is increased from 3 to 6, a new duplicate key is added with “ggg_4”, “ggg_5”, and “ggg_6” as target keys. An addition request for processing is transmitted to the distributed KVS servers 50A to 50C (steps S206, S208, and S210), and an additional response is received from the distributed KVS servers 50A to 50C (steps S207, S209, and step S211). ).

続いて、複製管理サーバ20は、複製数が増加したすべてのキーに対する複製キーの追加処理を上記のようにして実施後、各要求処理サーバのアクセス変換ラッパー120に対して、複製管理情報更新通知を行い(ステップS212)、その応答として複製管理情報更新応答を受信する(ステップS213)。なお、複製管理情報更新通知には、新たな複製管理情報テーブルの内容をすべて含めなくともよく、更新差分だけを格納し、アクセス変換ラッパーが更新差分を適用した新たな複製管理情報テーブルを作成してもよい。   Subsequently, the replication management server 20 performs the replication key addition process for all keys whose number of replications has increased as described above, and then notifies the access conversion wrapper 120 of each request processing server of the replication management information update notification. (Step S212), and a copy management information update response is received as a response (Step S213). Note that the replication management information update notification does not need to include all the contents of the new replication management information table, only the update differences are stored, and the access conversion wrapper creates a new replication management information table to which the update differences are applied. May be.

そして、複製管理サーバ20は、すべての要求処理サーバ10に対して、複製管理情報更新通知を行った後、複製キーの削除処理を要求する削除要求を分散KVSサーバ50B、50Cに送信し(ステップS214、ステップS216)、その応答を受信する(ステップS215、ステップS217)。ここで、複製キーの削除処理は、追加処理とは逆に、例えば、キーgggの複製数を8から6に減少させる場合に、対象キーを「ggg_8」、「ggg_7」とする削除要求を分散KVSサーバ50B、50Cに対して行う。   Then, the replication management server 20 sends a replication management information update notification to all the request processing servers 10, and then transmits a deletion request for requesting a replication key deletion process to the distributed KVS servers 50B and 50C (step S40). S214, step S216), and the response is received (step S215, step S217). Here, in the copy key deletion process, in contrast to the addition process, for example, when the number of copies of the key ggg is reduced from 8 to 6, the deletion requests with the target keys “ggg_8” and “ggg_7” are distributed. This is performed for the KVS servers 50B and 50C.

次に、図11を用いて、上記した複製数変更判断処理について説明する。図11は、第一の実施形態に係る複製管理サーバにおける複製数変更判断処理の流れを説明するためのフローチャートである。図11に示すように、複製管理サーバ20は、要求頻度情報テーブルを作成する(ステップS301)。   Next, the above-described copy number change determination process will be described with reference to FIG. FIG. 11 is a flowchart for explaining the flow of the replication number change determination process in the replication management server according to the first embodiment. As shown in FIG. 11, the replication management server 20 creates a request frequency information table (step S301).

具体的には、複製管理サーバ20は、要求処理サーバ10から受信した要求頻度情報通知に含まれる要求頻度情報を対象キーごとに合算し、前述した図7に例示するような要求頻度情報テーブルを作成する。ここで、例えば、複製管理サーバ20は、各キーの要求頻度を予め定める閾値で除算し、小数点未満を切り捨てた整数を、要求頻度情報テーブルにおける複製目標Mとして算出する。また、複製管理サーバ20は、上記の(1)式で複製数Nを算出する。   Specifically, the replication management server 20 adds the request frequency information included in the request frequency information notification received from the request processing server 10 for each target key, and creates a request frequency information table as illustrated in FIG. create. Here, for example, the replication management server 20 divides the request frequency of each key by a predetermined threshold value, and calculates an integer obtained by rounding off the decimal point as the replication target M in the request frequency information table. Further, the replication management server 20 calculates the number N of replications using the above equation (1).

その後、複製管理サーバ20は、作成した要求頻度情報テーブルから複製数が1以上のものを抽出して複製管理情報テーブルを作成し、前回作成時の複製管理テーブルとの差分を抽出する(ステップS302)。例えば、複製管理サーバ20は、前回作成した複製管理情報テーブルが存在する場合には、今回作成した複製管理情報テーブルとの比較を行い、複製数が増加したレコード(新規に追加されたレコードを含む)、複製数が減少したレコード(削除されたレコードを含む)を、それぞれ抽出する。また、複製管理サーバ20は、前回作成時の複製管理情報テーブルが存在しなければ、今回作成した複製管理情報テーブルの全てのレコードが、複製数が増加したレコードとなる。   Thereafter, the replication management server 20 creates a replication management information table by extracting those having the number of replications of 1 or more from the created request frequency information table, and extracts a difference from the replication management table at the time of previous creation (step S302). ). For example, if there is a replication management information table created last time, the replication management server 20 compares the replication management information table created this time with the number of replications (including newly added records). ), And records with a reduced number of replicas (including deleted records) are extracted. In addition, if the replication management information table created at the previous time does not exist, all the records in the replication management information table created this time are records in which the number of replications is increased.

[第一の実施形態の効果]
上述してきたように、第一の実施形態に係る情報処理システム1では、要求処理サーバ10が、キーを含むアクセス要求を受け付けた場合には、該キーに対応するデータを記憶する分散KVSサーバ50に対してアクセスを行う。そして、要求処理サーバ10が、キーごとに、受け付けたアクセス要求の数であるアクセス回数を計数する。また、複製管理サーバ20が、要求処理サーバ10からキーごとのアクセス回数を取得し、取得されたアクセス回数が所定の閾値を超えている場合に、該アクセス要求に対応するキーを複製する個数を決定する。続いて、複製管理サーバ20が、決定された個数分のキーの複製を作成し、作成されたキーの複製を、複数の分散KVSサーバ50のうちのいずれかの分散KVSサーバ50に記憶されるデータであって、アクセス回数が閾値を超えたキーに対応するデータに割り当てる。
[Effect of the first embodiment]
As described above, in the information processing system 1 according to the first embodiment, when the request processing server 10 receives an access request including a key, the distributed KVS server 50 that stores data corresponding to the key. Is accessed. Then, the request processing server 10 counts the number of accesses that is the number of accepted access requests for each key. Further, when the copy management server 20 acquires the access count for each key from the request processing server 10 and the acquired access count exceeds a predetermined threshold, the number of copies of the key corresponding to the access request is determined. decide. Subsequently, the replication management server 20 creates a copy of the determined number of keys, and the created copy of the key is stored in any one of the plurality of distributed KVS servers 50. Data is assigned to data corresponding to a key whose access count exceeds a threshold.

これにより、第一の実施形態に係る情報処理システム1では、サーバの輻輳を軽減し、システム全体のリソースを有効活用することが可能となる。つまり、図12に例示するように、従来の分散KVSシステムでは、例えば、要求処理サーバ100A〜100Cによって特定のキー「keyY」にアクセスが集中してしまうと、当該キーを割り当てられた分散KVSサーバ50Bに負荷が集中してしまい、当該分散KVSサーバで輻輳が発生し、サービスに影響が出てしまう。また、情報処理システム全体として、サーバリソースを有効活用できていない。   Thereby, in the information processing system 1 according to the first embodiment, it is possible to reduce the congestion of the server and effectively use the resources of the entire system. In other words, as illustrated in FIG. 12, in the conventional distributed KVS system, for example, if access concentrates on a specific key “keyY” by the request processing servers 100A to 100C, the distributed KVS server to which the key is assigned. The load concentrates on 50B, congestion occurs in the distributed KVS server, and the service is affected. In addition, server resources cannot be effectively utilized as an entire information processing system.

これに対して、第一の実施形態に係る情報処理システム1では、複製管理サーバ20が、参照対象キーの要求頻度に応じて決定する複製数分の複製を作成し、要求処理サーバ10のアクセス変換ラッパー120が複製されたキーに対する参照要求を複製後のキーのいずれかに変換することで、分散KVSにおけるキーのアクセス頻度の偏りに由来する分散KVSサーバ50の負荷の偏りを軽減でき、特に、特定のキーに対する参照要求が多いアプリケーションに対して有用である。   In contrast, in the information processing system 1 according to the first embodiment, the replication management server 20 creates as many replicas as the number of replicas determined according to the request frequency of the reference target key, and accesses the request processing server 10. By converting the reference request for the duplicated key by the conversion wrapper 120 into any of the duplicated keys, it is possible to reduce the uneven load of the distributed KVS server 50 resulting from the uneven access frequency of the key in the distributed KVS. This is useful for applications with many reference requests for a specific key.

また、既存の分散KVSシステムをそのまま使用しながら、かつアプリケーションに対して特別な機能追加を必要とすることなく、分散KVSにおけるキーの要求頻度の偏りに由来するサーバ負荷の集中を軽減することが可能であり、情報処理システム全体として、サーバリソースを有効活用することが可能である。また、要求処理アプリ110に特別な機能追加が不要であるほか、分散KVSクライアント/サーバについても、市中の汎用な分散KVSをそのまま使用することができる。   In addition, while using an existing distributed KVS system as it is, and without requiring any special function addition to the application, it is possible to reduce the concentration of server load resulting from the deviation of the key request frequency in the distributed KVS. It is possible to effectively use server resources as the entire information processing system. In addition, no special function addition is required for the request processing application 110, and a general-purpose distributed KVS in the market can be used as it is for the distributed KVS client / server.

[第二の実施形態]
上記した第一の実施形態では、複製キーがランダムに各分散KVSサーバ50に割り当てられており、複製キーが割り当てられる分散KVSサーバ50の数が複製目標M以上となるために必要な複製数の期待値である複製数Nを算出し、複製数N個分のキーの複製を作成する場合を説明した。
[Second Embodiment]
In the first embodiment described above, duplicate keys are randomly assigned to each distributed KVS server 50, and the number of duplicate KVS servers 50 to which duplicate keys are assigned is equal to or greater than the replication target M. A case has been described in which the number of replicas N, which is an expected value, is calculated, and key replicas for the number of replicas N are created.

しかし、実施形態はこれに限定されるものではなく、例えば、複製目標M個分のキーの複製を作成し、作成されたキーを割り当てる際に、既に作成した複製キーの割当先分散KVSサーバと重複した場合には、割当先分散KVSサーバが重複しなくなるまで複製キーの割り当てを試行するようにしてもよい。   However, the embodiment is not limited to this. For example, when creating a copy of M keys for the replication target and assigning the created key, In the case of duplication, it may be attempted to assign a duplicate key until the assignment destination distributed KVS servers are not duplicated.

以下では、第二の実施の形態として、複製目標M個分のキーの複製を作成し、作成されたキーを割り当てる際に、既に作成した複製キーの割当先分散KVSサーバと重複した場合には、割当先分散KVSサーバが重複しなくなるまで複製キーの割り当てを試行する複製管理サーバ20の構成および処理について説明する。なお、第一の実施の形態と同様の構成および処理については説明を省略する。   In the following, as a second embodiment, when duplicating keys for M replication targets and assigning the created keys, when duplicating with the already created duplicate key assignment destination distributed KVS server, The configuration and processing of the replication management server 20 that tries to allocate the replication key until the allocation destination distributed KVS servers are not duplicated will be described. Note that the description of the same configuration and processing as in the first embodiment is omitted.

図13を用いて、複製管理サーバ20Aの構成について説明する。図13は、第二の実施形態に係る複製管理サーバの構成を示すブロック図である。図13に示すように、第二の実施形態に係る複製管理サーバ20Aは、第一の実施形態に係る複製管理サーバ20と比較して、割当先重複判定部22eをさらに有する点が異なる。また、第二の実施形態に係る複製管理サーバ20Aは、第一の実施形態に係る複製管理サーバ20と比較して、複製管理情報記憶部23aおよび要求頻度情報テーブル記憶部23bに記憶される情報も異なる。   The configuration of the replication management server 20A will be described with reference to FIG. FIG. 13 is a block diagram illustrating a configuration of a replication management server according to the second embodiment. As shown in FIG. 13, the replication management server 20A according to the second embodiment is different from the replication management server 20 according to the first embodiment in that it further includes an assignment destination duplication determination unit 22e. Further, the replication management server 20A according to the second embodiment has information stored in the replication management information storage unit 23a and the request frequency information table storage unit 23b as compared with the replication management server 20 according to the first embodiment. Is also different.

複製管理情報記憶部23aは、要求頻度情報テーブルとして、複製された参照対象キーごとに、複製されたキーの数を記憶するとともに複製キーのインデックスと、複製キーの割当先サーバである分散KVSサーバ50を識別する情報を記憶する。例えば、図14に例示するように、複製された参照対象キーを識別する文字列である「キー」と、参照対象キーの複製された数を示す「複製数」と、複製キーのインデックスを示す「複製キーのインデックス」と、複製キーの割当先サーバである分散KVSサーバ50を識別する情報である「複製キーの割当先サーバ」とを対応付けて記憶する。   The replication management information storage unit 23a stores, as a request frequency information table, the number of replicated keys for each replicated reference target key, and a distributed KVS server which is a replication key index and a replication key allocation destination server. Information for identifying 50 is stored. For example, as illustrated in FIG. 14, a “key” that is a character string that identifies a copied reference target key, a “number of copies” that indicates the number of copies of the reference target key, and an index of the copy key. The “replication key index” and the “replication key assignment destination server” that is information for identifying the distributed KVS server 50 that is the assignment destination server of the duplication key are stored in association with each other.

また、要求頻度情報テーブル記憶部23bは、参照対象キーごとの要求頻度とともに、後述する決定部22bによって決定された参照対象キーの数を記憶する。例えば、図15に例示するように、参照対象キーを識別する文字列である「参照対象キー」と、各参照対象キーがアクセス要求の対象となった回数である「要求頻度」と、目標とする参照対象キーの複製数である「複製目標M」とを対応付けて記憶する。ここで、第二の実施形態に係る要求頻度情報テーブル記憶部23bでは、複製数Nを記憶しておらず、複製目標Mの値が各キーの複製数として記憶されている。   Further, the request frequency information table storage unit 23b stores the number of reference target keys determined by the determination unit 22b described later together with the request frequency for each reference target key. For example, as illustrated in FIG. 15, a “reference target key” that is a character string for identifying a reference target key, a “request frequency” that is the number of times each reference target key is an access request target, And “replication target M” which is the number of copies of the reference target key to be stored in association with each other. Here, in the request frequency information table storage unit 23b according to the second embodiment, the copy number N is not stored, and the value of the copy target M is stored as the copy number of each key.

割当先重複判定部22eは、割当部22dによってキーの複製がデータに割り当てられた際に、該キーの複製に対応するデータを識別するキーが既に分散KVSサーバ50に割り当てられているか否かを判定する。具体的には、割当先重複判定部22eは、新たな複製キーが割り当てられた分散KVSサーバ50が、複製元のキーや既に作成した複製キーが割り当てられた分散KVSサーバ50と重複しているか否かをログ等から判定する。   The assignment destination duplication determination unit 22e determines whether or not a key for identifying data corresponding to the copy of the key has already been assigned to the distributed KVS server 50 when the copy of the key is assigned to the data by the assignment unit 22d. judge. More specifically, the assignment destination duplication determination unit 22e determines whether the distributed KVS server 50 to which a new duplication key is assigned overlaps with the distributed KVS server 50 to which a duplication source key or an already created duplication key is assigned. Whether or not is determined from a log or the like.

割当部22dは、割当先重複判定部22eによって複製キーが既に分散KVSサーバ50に割り当てられていると判定された場合には、複製キーを割り当てる処理を再度行う。具体的には、割当部22dは、割当先重複判定部22eによって複製キーが既に分散KVSサーバ50に割り当てられていると判定された場合には、作成した複製キー(例えば、キー「ggg_5」)を削除し、インデックスに1加算した新たなキー(例えば、「ggg_6」)の追加を分散KVSサーバ50に対して試行する。   If the assignment destination duplication determination unit 22e determines that the duplicate key has already been assigned to the distributed KVS server 50, the assignment unit 22d performs the process of assigning the duplicate key again. Specifically, the assigning unit 22d, when the assignment destination duplication determining unit 22e determines that the duplicate key has already been assigned to the distributed KVS server 50, the created duplicate key (for example, the key “ggg_5”) Is added and a new key (for example, “ggg — 6”) added by 1 to the index is added to the distributed KVS server 50.

ここで、図16を用いて、第二の実施形態に係る情報処理システムにおける複製数変更処理の流れを説明する。図16は、第二の実施形態に係る情報処理システムにおける複製数変更処理の流れを説明するためのシーケンス図である。図16では、アクセス変換ラッパーから送信される各キーの要求頻度情報に基づいて、複製管理サーバ20Aが複製数の変更を判断し、複製キーの追加、削除を行う処理を示す。また、複製管理サーバ20Aは、要求処理サーバ10が要求頻度情報を送信する間隔に合わせて、定期的にこの処理を行う。   Here, the flow of the copy number change process in the information processing system according to the second embodiment will be described with reference to FIG. FIG. 16 is a sequence diagram for explaining the flow of the copy number changing process in the information processing system according to the second embodiment. FIG. 16 shows a process in which the replication management server 20A determines a change in the number of replications based on the request frequency information of each key transmitted from the access conversion wrapper, and adds or deletes a replication key. In addition, the replication management server 20A periodically performs this process in accordance with the interval at which the request processing server 10 transmits the request frequency information.

図16に示すように、第一の実施形態と同様に、各要求処理サーバ10上のアクセス変換ラッパー120は、要求処理アプリ110から送信される参照要求に含まれる対象キーごとの要求頻度をカウントする要求頻度カウント処理を行う(ステップS401)。そして、アクセス変換ラッパー120は、要求頻度の情報を要求頻度情報通知として複製管理サーバ20Aに定期的(例えば、5分ごと)に送信する(ステップS402)。   As illustrated in FIG. 16, as in the first embodiment, the access conversion wrapper 120 on each request processing server 10 counts the request frequency for each target key included in the reference request transmitted from the request processing application 110. Request frequency count processing is performed (step S401). Then, the access conversion wrapper 120 periodically transmits the request frequency information as a request frequency information notification to the replication management server 20A (for example, every 5 minutes) (step S402).

続いて、第二の実施形態に係る複製管理サーバ20Aでは、各要求処理サーバ10上のアクセス変換ラッパー120から要求頻度情報通知を受信した場合に、以下のように複製数変更判断処理を行う(ステップS403)。   Subsequently, in the replication management server 20A according to the second embodiment, when the request frequency information notification is received from the access conversion wrapper 120 on each request processing server 10, the replication number change determination process is performed as follows ( Step S403).

まず、受信した要求頻度情報通知に含まれる要求頻度情報を各参照対象キー毎に合算し、図15に例示するような要求頻度情報テーブルを作成する。複製目標Mの決定方法については第一の実施形態と同様であるが、第一の実施形態と異なり、複製目標Mをそのまま、各キーの複製数とし、図14に示すような複製管理情報テーブルを作成する。   First, the request frequency information included in the received request frequency information notification is added up for each reference target key, and a request frequency information table as illustrated in FIG. 15 is created. The method for determining the replication target M is the same as that in the first embodiment. However, unlike the first embodiment, the replication management information table as shown in FIG. Create

複製管理サーバ20Aは、前回作成した複製管理情報テーブルが存在する場合、今回作成した複製管理情報テーブルとの比較を行い、複製数が増加したレコード(新規に追加されたレコードも含む)、複製数が減少したレコード(削除されたレコードも含む)を、それぞれ抽出する。前回作成時の複製管理情報テーブルが存在しなければ、今回作成した複製管理情報テーブルの全てのレコードが、複製数が増加したレコードとなる。前回作成した複製管理情報テーブルについては、複製管理テーブルの比較後、不要のため削除する。   When the replication management information table created last time exists, the replication management server 20A compares it with the replication management information table created this time, and records the number of replications (including newly added records) and the number of replications. Each of the records with a decreased number (including deleted records) is extracted. If the replication management information table created at the previous time does not exist, all the records in the replication management information table created this time are records in which the number of replications has increased. The replication management information table created last time is deleted because it is unnecessary after comparing the replication management tables.

次に、複製管理サーバ20Aは、上記で抽出した複製数の増加、減少を、それぞれ複製キーの追加、削除として分散KVSサーバ50に対して反映するとともに、複製管理情報テーブルの更新をアクセス変換ラッパー120に対して通知する。その処理は、複製キーの追加処理、複製管理情報の更新通知、複製キーの削除処理の順に実施する。これは、アクセス変換ラッパーが追加前や削除後の複製キーにアクセスすることを抑止するためである。   Next, the replication management server 20A reflects the increase and decrease in the number of replications extracted as described above to the distributed KVS server 50 as addition and deletion of replication keys, and updates the replication management information table to the access conversion wrapper. 120 is notified. The process is performed in the order of a replication key addition process, a replication management information update notification, and a replication key deletion process. This is to prevent the access conversion wrapper from accessing the duplicate key before or after addition.

複製キーの追加処理では、複製管理サーバ20Aは、まず複製元のキーに対する参照要求を行い(ステップS404)、参照要求に対する参照応答を受信して(ステップS405)、当該キーに対応するデータ(バリュー)を取得する。次に、複製数の増加分だけ、下記の処理を繰り返し行う。   In the duplication key addition process, the duplication management server 20A first makes a reference request to the duplication source key (step S404), receives a reference response to the reference request (step S405), and receives data (value) corresponding to the key. ) To get. Next, the following processing is repeated for the increased number of copies.

ここでは、あらかじめ定める区切り文字を「_」として、キー「ggg」の複製数を3から4に増加させる場合について記載する。複製管理サーバ20Aは、既に作成されているキー「ggg」の複製キーのインデックスの最大値を複製管理情報テーブルから取得し、それが4であったと場合、追加する複製キーのインデックスをそれより1大きい5とし、キー「ggg_5」を新たな複製キーとして分散KVSサーバ50Cに対して追加する追加要求を送信し(ステップS406)、追加要求に対する追加応答を受信する(ステップS407)。   Here, a case where the predetermined delimiter is “_” and the number of copies of the key “ggg” is increased from 3 to 4 will be described. The replication management server 20A obtains the maximum value of the replication key index of the key “ggg” that has already been created from the replication management information table. If it is 4, the index of the replication key to be added is 1 from that. An addition request for adding 5 to the distributed KVS server 50C using the key “ggg_5” as a new duplicate key is transmitted (step S406), and an addition response to the addition request is received (step S407).

そして、複製管理サーバ20Aは、分散KVSクライアントライブラリのログから、キー「ggg_5」がどの分散KVSサーバ50に割り当てられたかの情報を取得する。その結果、割り当てられたサーバが分散KVSサーバ50Cであった場合、複製管理情報テーブルから、分散KVSサーバ50Cはすでにインデックスが2であるgggの複製キー「ggg_2」が割当済みであることが分かるため、作成した複製キーggg_5は削除する削除要求を分散KVSサーバ50Cに対して送信し(ステップS408)、削除要求に対する削除応答を受信する(ステップS409)。   Then, the replication management server 20A obtains information on which distributed KVS server 50 the key “ggg — 5” is assigned from the log of the distributed KVS client library. As a result, when the assigned server is the distributed KVS server 50C, it can be seen from the replication management information table that the distributed KVS server 50C has already been assigned the dug key “ggg_2” of which the index is 2. The created replication key ggg_5 transmits a deletion request to be deleted to the distributed KVS server 50C (step S408), and receives a deletion response to the deletion request (step S409).

そして、複製管理サーバ20Aは、インデックスに1を加算した新たな複製キー「ggg_6」の追加を試行する(ステップS410、ステップS411)。同様にggg_6の割当先サーバを分散KVSクライアントライブラリのログから取得し、それが既に作成した複製キーの割当先サーバと重複しないことを確認する。   Then, the replication management server 20A tries to add a new replication key “ggg_6” obtained by adding 1 to the index (steps S410 and S411). Similarly, the allocation destination server of ggg_6 is acquired from the log of the distributed KVS client library, and it is confirmed that it does not overlap with the already created replication key allocation destination server.

このように、複製キーの割当先サーバを判断し、それが既存の複製キーの割当先サーバと重複していた場合には、複製キーの作成をやり直すことにより、すべての複製キーの割当先サーバの重複を回避できる。   In this way, the duplication key assignment destination server is determined, and if it is duplicated with the existing duplication key assignment destination server, all duplication key assignment destination servers are created by re-creating the duplication key. Can be avoided.

複製数が増加したすべてのキーに対する複製キーの追加処理を上記のように実施後、複製管理サーバ20Aは、各要求処理サーバのアクセス変換ラッパー120に対して、複製管理情報更新通知を行い(ステップS412)、その応答として複製管理情報更新応答を受信する(ステップS413)。複製管理情報更新通知には、新たな複製管理情報テーブルの内容をすべて格納してもよく、更新差分だけを格納し、アクセス変換ラッパー120が更新差分を適用した新たな複製管理情報テーブルを作成するのでもよい。   After performing the replication key addition process for all the keys whose number of replications has increased as described above, the replication management server 20A issues a replication management information update notification to the access conversion wrapper 120 of each request processing server (step In step S412), a copy management information update response is received as a response (step S413). The replication management information update notification may store all the contents of the new replication management information table, store only the update difference, and the access conversion wrapper 120 creates a new replication management information table to which the update difference is applied. It's okay.

なお、図16の説明では省略するが、すべての要求処理サーバ10に対して、複製管理情報更新通知を行った後、複製管理サーバ20Aは、第一の実施形態と同様に、複製キーの削除処理を行う。複製キーの削除処理については、複製キーのうち、インデックスの大きいものから必要な削除数分だけ削除する。また、複製管理情報テーブルが保持する各複製キーの割当先サーバ情報は、分散KVSサーバの増設や減設があった場合、不整合が生じる恐れがある。そのため、分散KVSクライアントライブラリのログから、分散KVSサーバ50の増設や減設が発生したことを検出した場合、すべての複製キーの作成を再度実施する必要がある。   Although not described in the description of FIG. 16, after the replication management information update notification has been sent to all the request processing servers 10, the replication management server 20A deletes the replication key as in the first embodiment. Process. With respect to the deletion process of the duplicate key, the duplicate key is deleted by the necessary number of deletions from the largest index. Further, the allocation destination server information of each replication key held in the replication management information table may be inconsistent when a distributed KVS server is added or removed. For this reason, when it is detected from the log of the distributed KVS client library that an increase or a decrease of the distributed KVS server 50 has occurred, it is necessary to create all the duplicate keys again.

このように、第二の実施形態に係る情報処理システムでは、第一の実施形態の効果に加えて、必要な複製キーの数が減少するため、分散KVSサーバ50の記憶容量を軽減でき、また、分散KVSサーバ50の負荷集中をより確実に抑止することが可能である。   As described above, in the information processing system according to the second embodiment, in addition to the effects of the first embodiment, the number of necessary duplicate keys is reduced, so that the storage capacity of the distributed KVS server 50 can be reduced. Thus, it is possible to more reliably suppress the load concentration of the distributed KVS server 50.

[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部22aと決定部22bとを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[System configuration, etc.]
Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, the acquisition unit 22a and the determination unit 22b may be integrated. Further, all or any part of each processing function performed in each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.

また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。   In addition, among the processes described in the present embodiment, all or part of the processes described as being performed automatically can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.

また、上記した各サーバへの機能配備はあくまで一例であり、例えば、要求処理アプリ、アクセス変換ラッパー、分散KVSクライアントをそれぞれ独立のサーバ上で動作させてもよく、また複製管理サーバの役割を要求処理サーバの一つに重畳させてもよい。   In addition, the above-described function deployment to each server is merely an example. For example, the request processing application, the access conversion wrapper, and the distributed KVS client may be operated on independent servers, and the role of the replication management server is requested. It may be superimposed on one of the processing servers.

また、要求処理アプリが一種類である例を示しており、要求処理アプリから分散KVSサーバへのアクセスについて全てをアクセス変換ラッパーを仲介しているが、高頻度な参照要求を行わないことが明らかな保守用アプリケーションなどについては、アクセス変換ラッパーを仲介せず直接分散KVSサーバにアクセスしてもよい。ただし、その場合、複製キーに使用する区切り文字は、通常のキーの中では使用しない文字とする必要がある。   In addition, an example in which there is one type of request processing application is shown, and the access conversion wrapper mediates all access to the distributed KVS server from the request processing application, but it is clear that high frequency reference requests are not performed For a maintenance application or the like, the distributed KVS server may be directly accessed without using an access conversion wrapper. In this case, however, the delimiter used for the duplicate key must be a character that is not used in the normal key.

また、情報処理システムにおいて、複製管理サーバの機能を要求処理サーバに全て持たせるようにしてもよい。具体的には、要求処理サーバが、取得部22a、決定部22b、作成部22c、割当部22dに相当する機能を有してもよい。   In the information processing system, the request processing server may have all the functions of the replication management server. Specifically, the request processing server may have functions corresponding to the acquisition unit 22a, the determination unit 22b, the creation unit 22c, and the allocation unit 22d.

[プログラム]
また、上記実施形態において説明した要求処理サーバ10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係る複製管理サーバ20が実行する処理をコンピュータが実行可能な言語で記述したキー割当プログラムを作成することもできる。この場合、コンピュータがキー割当プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるキー割当プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されキー割当プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図6に示した複製管理サーバ20と同様の機能を実現するキー割当プログラムを実行するコンピュータの一例を説明する。
[program]
It is also possible to create a program in which the processing executed by the request processing server 10 described in the above embodiment is described in a language that can be executed by a computer. For example, it is possible to create a key assignment program in which the processing executed by the replication management server 20 according to the first embodiment is described in a language that can be executed by a computer. In this case, when the computer executes the key assignment program, the same effect as in the above embodiment can be obtained. Further, the key assignment program is recorded on a computer-readable recording medium, and the same processing as in the first embodiment is realized by recording the key assignment program on the recording medium and causing the computer to read and execute the key assignment program. May be. Hereinafter, an example of a computer that executes a key assignment program that realizes the same function as that of the replication management server 20 illustrated in FIG. 6 will be described.

図17は、キー割当プログラムを実行するコンピュータ1000を示す図である。図17に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。   FIG. 17 is a diagram illustrating a computer 1000 that executes a key assignment program. As illustrated in FIG. 17, the computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These units are connected by a bus 1080.

メモリ1010は、図17に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図17に例示するように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図17に例示するように、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、図17に例示するように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図17に例示するように、例えばディスプレイ1130に接続される。   The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012 as illustrated in FIG. The ROM 1011 stores a boot program such as BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to the hard disk drive 1090 as illustrated in FIG. The disk drive interface 1040 is connected to the disk drive 1100 as illustrated in FIG. For example, a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100. The serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120 as illustrated in FIG. The video adapter 1060 is connected to a display 1130, for example, as illustrated in FIG.

ここで、図17に例示するように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記のキー割当プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。   Here, as illustrated in FIG. 17, the hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the key assignment program is stored in, for example, the hard disk drive 1090 as a program module in which a command executed by the computer 1000 is described.

また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種処理手順を実行する。   In addition, various data described in the above embodiment is stored as program data in, for example, the memory 1010 or the hard disk drive 1090. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 to the RAM 1012 as necessary, and executes various processing procedures.

なお、キー割当プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、キー割当プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。   The program module 1093 and the program data 1094 related to the key assignment program are not limited to being stored in the hard disk drive 1090, but are stored in, for example, a removable storage medium and read out by the CPU 1020 via the disk drive or the like. Also good. Alternatively, the program module 1093 and the program data 1094 related to the key assignment program are stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.), and the network interface 1070 is stored. Via the CPU 1020.

1 情報処理システム
10、10A〜10E 要求処理サーバ
11、21 通信処理部
12、22 制御部
12a アクセス部
12b 計数部
13、23 記憶部
13a 要求頻度記憶部
13b 複製管理情報テーブル記憶部
20、20A 複製管理サーバ
22a 取得部
22b 決定部
22c 作成部
22d 割当部
22e 割当先重複判定部
23 記憶部
23a 複製管理情報記憶部
23b 要求頻度情報テーブル記憶部
30、30A〜30C クライアント
40 負荷分散装置
50、50A〜50E 分散KVSサーバ
60、60A〜60C IPネットワーク
1 Information processing system 10, 10A to 10E Request processing server 11, 21 Communication processing unit 12, 22 Control unit 12a Access unit 12b Count unit 13, 23 Storage unit 13a Request frequency storage unit 13b Replication management information table storage unit 20, 20A Replication Management server 22a Acquisition unit 22b Determination unit 22c Creation unit 22d Allocation unit 22e Allocation destination duplication determination unit 23 Storage unit 23a Replication management information storage unit 23b Request frequency information table storage unit 30, 30A-30C Client 40 Load distribution device 50, 50A- 50E Distributed KVS server 60, 60A-60C IP network

Claims (4)

データと各データを識別するキーとを対応付けて記憶する複数の記憶装置と、前記複数の記憶装置に対してアクセスを行うサーバ装置と、記憶装置に記憶されるデータに対して前記キーを割り当てる管理装置とを有する情報処理システムにおいて、
前記サーバ装置が、
前記キーを含むアクセス要求を受け付けた場合には、該キーに対応するデータを記憶する記憶装置に対してアクセスを行うアクセス部と、
前記キーごとに、受け付けたアクセス要求の数であるアクセス回数を計数する計数部と、
を備え、
前記管理装置が、
前記サーバ装置からキーごとのアクセス回数を取得する取得部と、
前記取得部によって取得されたアクセス回数が所定の閾値を超えている場合に、該アクセス要求に対応するキーを複製する個数として、前記アクセス回数を前記閾値で除算した値である複製目標をM、前記記憶装置の数をSとした場合に、(1)式で算出した値Nに対して小数点以下を切り上げて整数化した値である複製数を決定する決定部と、
前記決定部によって決定された個数分のキーの複製を作成する作成部と、
前記作成部によって作成されたキーの複製を、前記複数の記憶装置のうちのいずれかの記憶装置に記憶されるデータであって、前記アクセス回数が前記閾値を超えたキーに対応するデータに割り当てる割当部と、
を備えることを特徴とする情報処理システム。
Figure 0006076882
A plurality of storage devices that store data and a key that identifies each data in association with each other, a server device that accesses the plurality of storage devices, and a key that is assigned to the data stored in the storage device In an information processing system having a management device,
The server device is
When an access request including the key is received, an access unit that accesses a storage device that stores data corresponding to the key;
For each key, a counting unit that counts the number of accesses that is the number of received access requests;
With
The management device is
An acquisition unit for acquiring the access count for each key from the server device;
When the number of accesses acquired by the acquisition unit exceeds a predetermined threshold , the replication target that is a value obtained by dividing the number of accesses by the threshold is set as M, as the number of copies of the key corresponding to the access request . When the number of storage devices is S, a determination unit that determines the number of copies, which is a value obtained by rounding up the number after the decimal point with respect to the value N calculated by the equation (1) , and
A creation unit that creates a copy of the number of keys determined by the determination unit;
A duplicate of the key created by the creating unit is assigned to data stored in any one of the plurality of storage devices and corresponding to a key whose number of accesses exceeds the threshold. An allocator;
An information processing system comprising:
Figure 0006076882
前記アクセス部は、前記キーを含むアクセス要求を受け付けた場合に、該キーが複製されたキーであるか判定し、複製されているキーである場合には、複製されたキーのなかから一つのキーを選択し、該キーを用いて前記記憶装置に対してアクセスを行うことを特徴とする請求項1記載の情報処理システム。 When the access unit receives an access request including the key, the access unit determines whether the key is a duplicated key. If the key is a duplicated key, the access unit selects one of the duplicated keys. the information processing system according to claim 1, select key, and performs access to the storage device by using the key. データと各データを識別するキーとを対応付けて記憶する複数の記憶装置に対してアクセスを行うサーバ装置から、キーごとのアクセス回数を取得する取得部と、
前記取得部によって取得されたアクセス回数が所定の閾値を超えている場合に、該アクセス要求に対応するキーを複製する個数として、前記アクセス回数を前記閾値で除算した値である複製目標をM、前記記憶装置の数をSとした場合に、(1)式で算出した値Nに対して小数点以下を切り上げて整数化した値である複製数を決定する決定部と、
前記決定部によって決定された個数分のキーの複製を作成する作成部と、
前記作成部によって作成されたキーの複製を、前記複数の記憶装置のうちのいずれかの記憶装置に記憶されるデータであって、前記アクセス回数が前記閾値を超えたキーに対応するデータに割り当てる割当部と、
を備えることを特徴とする管理装置。
Figure 0006076882
An acquisition unit that acquires the number of accesses for each key from a server device that accesses a plurality of storage devices that store data and a key that identifies each data in association with each other;
When the number of accesses acquired by the acquisition unit exceeds a predetermined threshold , the replication target that is a value obtained by dividing the number of accesses by the threshold is set as M, as the number of copies of the key corresponding to the access request . When the number of storage devices is S, a determination unit that determines the number of copies, which is a value obtained by rounding up the number after the decimal point with respect to the value N calculated by the equation (1) , and
A creation unit that creates a copy of the number of keys determined by the determination unit;
A duplicate of the key created by the creating unit is assigned to data stored in any one of the plurality of storage devices and corresponding to a key whose number of accesses exceeds the threshold. An allocator;
A management apparatus comprising:
Figure 0006076882
データと各データを識別するキーとを対応付けて記憶する複数の記憶装置に対してアクセスを行うサーバ装置から、キーごとのアクセス回数を取得する取得ステップと、
前記取得ステップによって取得されたアクセス回数が所定の閾値を超えている場合に、該アクセス要求に対応するキーを複製する個数として、前記アクセス回数を前記閾値で除算した値である複製目標をM、前記記憶装置の数をSとした場合に、(1)式で算出した値Nに対して小数点以下を切り上げて整数化した値である複製数を決定する決定ステップと、
前記決定ステップによって決定された個数分のキーの複製を作成する作成ステップと、
前記作成ステップによって作成されたキーの複製を、前記複数の記憶装置のうちのいずれかの記憶装置に記憶されるデータであって、前記アクセス回数が前記閾値を超えたキーに対応するデータに割り当てる割当ステップと、
をコンピュータに実行させることを特徴とするキー割当プログラム。
Figure 0006076882
An acquisition step of acquiring the number of accesses for each key from a server device that accesses a plurality of storage devices that store data and a key that identifies each data in association with each other;
When the number of accesses acquired by the acquisition step exceeds a predetermined threshold , the replication target that is a value obtained by dividing the number of accesses by the threshold is M, as the number of copies of the key corresponding to the access request . A determination step of determining the number of replicas, which is a value obtained by rounding up the number after the decimal point with respect to the value N calculated by the equation (1) when the number of storage devices is S ;
Creating a copy of the number of keys determined by the determining step;
A copy of the key created in the creating step is assigned to data stored in any one of the plurality of storage devices and corresponding to a key whose number of accesses exceeds the threshold. An assignment step;
A key assignment program for causing a computer to execute the above.
Figure 0006076882
JP2013236324A 2013-11-14 2013-11-14 Information processing system, management device, and key assignment program Active JP6076882B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013236324A JP6076882B2 (en) 2013-11-14 2013-11-14 Information processing system, management device, and key assignment program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013236324A JP6076882B2 (en) 2013-11-14 2013-11-14 Information processing system, management device, and key assignment program

Publications (2)

Publication Number Publication Date
JP2015095246A JP2015095246A (en) 2015-05-18
JP6076882B2 true JP6076882B2 (en) 2017-02-08

Family

ID=53197561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013236324A Active JP6076882B2 (en) 2013-11-14 2013-11-14 Information processing system, management device, and key assignment program

Country Status (1)

Country Link
JP (1) JP6076882B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115687437A (en) * 2022-12-30 2023-02-03 北京信加科技有限公司 Credit report query method and device, electronic equipment and readable storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005031987A (en) * 2003-07-14 2005-02-03 Nec Corp Content layout management system and content layout management program for content delivery system
JP5765416B2 (en) * 2011-03-08 2015-08-19 日本電気株式会社 Distributed storage system and method
JP2012203629A (en) * 2011-03-25 2012-10-22 Kddi Corp Content distribution management system
JP5603843B2 (en) * 2011-08-22 2014-10-08 日本電信電話株式会社 Database load balancer

Also Published As

Publication number Publication date
JP2015095246A (en) 2015-05-18

Similar Documents

Publication Publication Date Title
US9971823B2 (en) Dynamic replica failure detection and healing
US10691716B2 (en) Dynamic partitioning techniques for data streams
US20180189367A1 (en) Data stream ingestion and persistence techniques
US10057341B2 (en) Peer-to-peer architecture for web traffic management
US10579272B2 (en) Workload aware storage platform
US7599941B2 (en) Transparent redirection and load-balancing in a storage network
JP7046172B2 (en) Computer implementation methods, computer program products, and systems for storing records in shard database shard tables, computer implementation methods, computer program products, and systems for retrieving records from shard database shard tables. System, as well as a system for storing shard databases
US10657108B2 (en) Parallel I/O read processing for use in clustered file systems having cache storage
US9992274B2 (en) Parallel I/O write processing for use in clustered file systems having cache storage
US10579597B1 (en) Data-tiering service with multiple cold tier quality of service levels
US8660996B2 (en) Monitoring files in cloud-based networks
US20200065306A1 (en) Bloom filter partitioning
CN115438016A (en) Dynamic fragmentation method, system, medium and device in distributed object storage
CN111225003B (en) NFS node configuration method and device
CN101483668A (en) Network storage and access method, device and system for hot spot data
KR20070034580A (en) A method, system and program product for storing downloadable content in a plurality of ES cells
JP6076882B2 (en) Information processing system, management device, and key assignment program
US11157454B2 (en) Event-based synchronization in a file sharing environment
JP5839495B2 (en) Load balancer
JP6568232B2 (en) Computer system and device management method
CN111782634A (en) Data distributed storage method and device, electronic equipment and storage medium
CN117806836B (en) Method, device and equipment for managing naming space of distributed file system
KR102024846B1 (en) File system program and method for controlling data cener using it
CN117806836A (en) Method, device and equipment for managing naming space of distributed file system
CN116186165A (en) Data copying method, device, system and storage medium

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161031

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170111

R150 Certificate of patent or registration of utility model

Ref document number: 6076882

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150