JP5655044B2 - Data cache system - Google Patents

Data cache system Download PDF

Info

Publication number
JP5655044B2
JP5655044B2 JP2012198059A JP2012198059A JP5655044B2 JP 5655044 B2 JP5655044 B2 JP 5655044B2 JP 2012198059 A JP2012198059 A JP 2012198059A JP 2012198059 A JP2012198059 A JP 2012198059A JP 5655044 B2 JP5655044 B2 JP 5655044B2
Authority
JP
Japan
Prior art keywords
data
cache manager
cache
cluster
server
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
JP2012198059A
Other languages
Japanese (ja)
Other versions
JP2014052928A (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 JP2012198059A priority Critical patent/JP5655044B2/en
Publication of JP2014052928A publication Critical patent/JP2014052928A/en
Application granted granted Critical
Publication of JP5655044B2 publication Critical patent/JP5655044B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、CPU(Central Processing Unit)内のL1(level 1)/L2(level 2)キャッシュや、CPU−メモリ間に階層的に設置されるキャッシュ等の所謂キャッシュ一般の技術分野に属し、また、NW(Network)を介してキャッシュ機構が情報の送受信を実行するため、Web上のHTTP(HyperText Transfer Protocol)データ等のキャッシュ技術の分野にも属する。さらに、キャッシュ機構をクラスタ構成にすることを前提としているため、分散データベースやMapReduce等の分散処理技術の分野にも属する。   The present invention belongs to a so-called general technical field of a cache such as an L1 (level 1) / L2 (level 2) cache in a CPU (Central Processing Unit), a cache installed hierarchically between CPUs and memories, and the like. Since the cache mechanism executes transmission / reception of information via NW (Network), it belongs to the field of cache technology such as HTTP (HyperText Transfer Protocol) data on the Web. Furthermore, since it is assumed that the cache mechanism has a cluster configuration, it also belongs to the field of distributed processing technologies such as distributed databases and MapReduce.

従来からCPU内のL1/L2キャッシュにおいて、Read/Writeキャッシュ技術が存在していたが、近年Multi-CPUやMulti-Core化が普及するようになったため、複数のキャッシュ主体が存在するようになり、MESIプロトコル(非特許文献1参照)をベースとした様々なアルゴリズムが提案されてきた。   Conventionally, read / write cache technology has existed for L1 / L2 caches in CPUs. However, since multi-CPUs and multi-cores have become widespread in recent years, there are multiple cache entities. Various algorithms based on the MESI protocol (see Non-Patent Document 1) have been proposed.

しかし、CPU側のキャッシュ機構は、バススヌープ(bus snoop)監視を基にした更新検知を前提としており、NW環境においてそのままでは適用できない。何処かの特定サーバ等に更新通知を集め、それを監視することも想定されるが、容易にボトルネックとなるため現実的でないという問題があった。   However, the cache mechanism on the CPU side assumes update detection based on bus snoop monitoring and cannot be applied as it is in an NW environment. It is assumed that update notifications are collected and monitored at some specific server or the like, but there is a problem that it is not realistic because it easily becomes a bottleneck.

このため、NW環境におけるキャッシュ機構では、DNS(Domain Name System)等のように、TTL(Time To Live)値による寿命内はクライアント側で持っている情報をそのまま使用することで、サーバ側の負荷を低減可能とすると同時に応答時間も大幅に短縮可能とする方式、または、HTML(HyperText Markup Language)データ取得の際のように、データに変更がない場合には、Not Modifiedを受け取り、クライアント側で持っているデータをそのまま使用することで、サーバ側の負荷を低減可能とする方式、が一般的に利用されてきた。   For this reason, the cache mechanism in the NW environment uses the information on the client side as it is within the lifetime based on the TTL (Time To Live) value, such as DNS (Domain Name System). Can be reduced at the same time as the response time can be greatly shortened, or when there is no change in the data as in the case of HTML (HyperText Markup Language) data acquisition, Not Modified is received and the client side A method that can reduce the load on the server side by using the existing data as it is has been generally used.

しかしながら、TTL値を利用したキャッシュ機構では、クライアント側で持っている情報を、TTL値の寿命まで更新しないことは更新反映の契機に制限を加えることになり、一方、TTL値の寿命の途中で更新を実行すると、一貫性の維持を犠牲にせざるを得ないという問題があった。また、Not Modified応答に関しては、確かにデータサイズが数十MB程度の大きなデータの場合は、サーバ負荷を軽減する効果があるが、通信処理のように扱うデータサイズが数kB程度の小さなデータの場合は効果が小さい上、NWを介して応答自体は返すことになるため、応答時間はほとんど短縮できないという問題があった。   However, in the cache mechanism using the TTL value, not updating the information held on the client side until the lifetime of the TTL value imposes a limit on the trigger of the update reflection, while in the middle of the lifetime of the TTL value. When updating, there was a problem that the maintenance of consistency had to be sacrificed. Regarding the Not Modified response, if the data size is certainly large, such as several tens of MB, there is an effect of reducing the server load, but the data size handled as in communication processing is small, such as several kilobytes. In this case, the effect is small and the response itself is returned via the NW, so that there is a problem that the response time can hardly be shortened.

これに対し、JBossCache(非特許文献2参照)の技術では、クライアントのアプリケーションで専用のキャッシュインスタンスを保持し、そのアプリケーションにおいてキャッシュインスタンス経由でデータが更新された際に、このキャッシュインスタンスが他のクライアントのキャッシュインスタンスに自動的に更新通知を実行することで、CPUでのキャッシュコヒーレンスに近い挙動を実現することが可能となる。   On the other hand, in the technology of JBossCache (see Non-Patent Document 2), a dedicated cache instance is held in a client application, and when the data is updated via the cache instance in the application, this cache instance is transferred to another client. It is possible to realize behavior close to cache coherence in the CPU by automatically performing update notification to the cache instance.

T.Suh, D.M.Blough, et al.,“Supporting cache coherence in heterogeneous multiprocessor systems”,Design, Automation and Test in Europe Conference and Exhibition 2004, 1530-1591/04,IEEET.Suh, D.M.Blough, et al., “Supporting cache coherence in heterogeneous multiprocessor systems”, Design, Automation and Test in Europe Conference and Exhibition 2004, 1530-1591 / 04, IEEE “JBossCache”,[online],[平成24年8月24日検索],インターネット<URL:http://www.jboss.org/jbosscache/>“JBossCache”, [online], [searched August 24, 2012], Internet <URL: http://www.jboss.org/jbosscache/>

しかしながら、JBossCacheのような機構では、クライアントにデータが固定的に割り当てられている。これに対し、本発明では、クライアント側が複数のサーバからなるクラスタ構成であり、サーバの故障や増設に伴ってデータの割り当て先が変更されるような方式を前提としており、その場合、以下のような問題(1)および(2)がある。
(1)クラスタ自身がNAT(Network Address Translation)等で内部のサーバを隠蔽していることが多いため、外部からクラスタ内部のサーバへ更新通知を送信しにくい。
この点に関し、キャッシュデータを取得するために接続した際に張ったセッション(穴)を継続しておき、そのセッション(穴)を流用することが想定される。しかしながら、この方式では、クライアント側のクラスタ構成がサーバの故障や増設で変化し、セッションが切断された場合に対応することができない。また、キャッシュデータの呼出先となるクラスタが同様に変化した際のセッション切断の場合も、更新通知のための穴が消失してしまうため、対応することができない。
(2)クラスタ自体の内部で、故障や増設等の原因でサーバの構成が変化してしまうと、参照や更新対象のデータが他のサーバに移動してしまい、移動先の正しい保存先に参照要求や更新通知を送信することが困難になる。
However, in mechanisms such as JBossCache, data is permanently assigned to clients. On the other hand, in the present invention, the client side has a cluster configuration composed of a plurality of servers, and assumes a method in which the data allocation destination is changed due to a server failure or expansion. There are problems (1) and (2).
(1) Since the cluster itself often conceals the internal server by NAT (Network Address Translation) or the like, it is difficult to send an update notification from the outside to the internal server.
In this regard, it is assumed that a session (hole) stretched when connecting to acquire cache data is continued and the session (hole) is diverted. However, this method cannot cope with a case where the client side cluster configuration changes due to a server failure or expansion, and the session is disconnected. Also, in the case of session disconnection when the cluster to which the cache data is called changes in the same manner, the hole for update notification disappears and cannot be handled.
(2) If the server configuration changes due to a failure or expansion within the cluster itself, the data to be referenced or updated will be moved to another server and referenced to the correct destination of the destination. It becomes difficult to send requests and update notifications.

このような背景に鑑みて本発明がなされたのであり、本発明は、呼出元(クライアント)および呼出先(原本データの保存サーバ)のクラスタ構成を互いに隠蔽したまま、キャッシュデータの情報の更新を通知し合うことが可能となるデータキャッシュシステムを提供することを課題とする。   The present invention has been made in view of such a background, and the present invention updates cache data information while concealing the cluster configuration of the caller (client) and callee (original data storage server) from each other. It is an object of the present invention to provide a data cache system that can notify each other.

前記した課題を解決するため、請求項1に記載の発明は、データをキャッシュデータとして記憶する複数のサーバがクラスタを構成するクライアントクラスタと、前記キャッシュデータの原本の前記データを記憶する複数のサーバがクラスタを構成する原本データクラスタとがネットワークを介して接続されるデータキャッシュシステムであって、前記クライアントクラスタが備えるサーバである第1のサーバ、および、前記原本データクラスタが備えるサーバである第2のサーバ、それぞれが、(1)前記データに固有な識別子および当該データの原本データを保存する前記原本データクラスタのアドレスで構成されるデータkeyと、前記データの読み出し処理および書き込み処理を実行するキャッシュマネージャに固有な識別子および当該キャッシュマネージャが属する前記クライアントクラスタまたは前記原本データクラスタを示すクラスタのアドレスで構成されるキャッシュマネージャkeyを用いて、前記データの読み出し権限および書き込み権限を持つキャッシュマネージャが格納されるメタデータと、が付された前記データ、および(2)前記データkeyと、各クラスタ内のサーバに設定された複数のキャッシュマネージャそれぞれの固有な識別子とを対応付けたキャッシュデータ管理情報、を記憶する記憶部と、前記データに付されたデータkeyを抽出し、前記キャッシュデータ管理情報を参照して、当該データに対応する前記キャッシュマネージャを決定する振り分け処理部と、前記キャッシュマネージャと、を備え、前記第1のサーバのキャッシュマネージャが、前記データの参照要求を受信した場合に、自身の前記記憶部に当該データを記憶しているか否かを、前記参照要求に付された前記データkeyを用いて探索し、前記データを記憶していない場合に、当該データkeyから前記原本データクラスタのアドレスを抽出し、当該データの前記データkeyおよび当該キャッシュマネージャの前記キャッシュマネージャkeyを付した取得要求を前記原本データクラスタへの第1の要求メッセージに含めて送信し、前記第2のサーバの振り分け処理部は、受信した前記第1の要求メッセージから前記データkeyを抽出し、前記データに対応する原本データを記憶する前記キャッシュマネージャを、前記キャッシュデータ管理情報を参照して決定し、前記決定したキャッシュマネージャに前記第1の要求メッセージを送信し、前記第1の要求メッセージを受信した前記第2のサーバのキャッシュマネージャは、前記データの前記メタデータを参照し、自身に書き込み権限がある場合に、前記第1の要求メッセージから前記キャッシュマネージャkeyを抽出し、当該データのメタデータの読み出し権限に前記抽出したキャッシュマネージャkeyを付した上で、当該キャッシュマネージャkeyから前記クライアントクラスタのアドレスを抽出し、前記データを前記第1のサーバのキャッシュマネージャに送信し、前記第1のサーバのキャッシュマネージャは、前記データを受信して自身の記憶部に記憶し、当該データを出力することを特徴とするデータキャッシュシステムとした。   In order to solve the above problem, the invention according to claim 1 is a client cluster in which a plurality of servers that store data as cache data constitute a cluster, and a plurality of servers that store the original data of the cache data. Is a data cache system that is connected to an original data cluster constituting a cluster via a network, and is a first server that is a server included in the client cluster, and a second server that is included in the original data cluster. Each of the servers includes (1) a data key composed of an identifier unique to the data and an address of the original data cluster that stores the original data of the data, and a cache that executes read processing and write processing of the data Manager-specific identifier and relevant A cache manager key configured with an address of a cluster indicating the client cluster or the original data cluster to which a cache manager belongs, metadata storing a cache manager having a read authority and a write authority for the data; (2) a storage unit that stores the data key, and cache data management information in which the data key is associated with unique identifiers of a plurality of cache managers set in the servers in each cluster; A distribution processing unit that extracts a data key attached to the data and refers to the cache data management information to determine the cache manager corresponding to the data; and the cache manager; and Server cache manager When the data reference request is received, the data key attached to the reference request is searched for whether or not the data is stored in the storage unit, and the data is not stored. In this case, the address of the original data cluster is extracted from the data key, and an acquisition request with the data key of the data and the cache manager key of the cache manager is added to the first request message to the original data cluster. The distribution processing unit of the second server extracts the data key from the received first request message and stores the cache manager that stores the original data corresponding to the data. Determining with reference to management information, sending the first request message to the determined cache manager, The cache manager of the second server that has received the first request message refers to the metadata of the data, and extracts the cache manager key from the first request message when it has the write authority. Then, after adding the extracted cache manager key to the metadata read authority of the data, the address of the client cluster is extracted from the cache manager key, and the data is transmitted to the cache manager of the first server. In the data cache system, the cache manager of the first server receives the data, stores the data in its storage unit, and outputs the data.

このようにすることで、クライアントクラスタが備える第1のサーバのキャッシュマネージャが、参照要求を受けたデータを記憶していない場合に、原本データクラスタが備える第2のサーバの、当該データの原本データを記憶し、かつ、書き込み権限を持つキャッシュマネージャから、読み出し権限を得た上でそのデータを受信し、自身の記憶部に記憶することができる。
このとき、クライアントクラスタが備える第1のサーバは、原本データクラスタのアドレス宛に第1の要求メッセージを送信すればよく、原本データクラスタ内の第2のサーバの構成は隠蔽されたままでよい。第1の要求メッセージを受信した第2のサーバの振り分け処理部が、データkeyを用いて原本データを記憶するキャッシュマネージャを決定し、決定したキャッシュマネージャに第1の要求メッセージを送信することにより参照要求の処理を実行することができる。
In this way, when the cache manager of the first server included in the client cluster does not store the data that has received the reference request, the original data of the data in the second server included in the original data cluster Can be received and the data can be received from the cache manager having the write authority and stored in its own storage unit.
At this time, the first server included in the client cluster only needs to transmit the first request message to the address of the original data cluster, and the configuration of the second server in the original data cluster may remain hidden. The distribution processing unit of the second server that has received the first request message determines the cache manager that stores the original data by using the data key, and refers to it by sending the first request message to the determined cache manager Request processing can be performed.

請求項2に記載の発明は、前記第1の要求メッセージを受信した前記第2のサーバのキャッシュマネージャは、前記データの前記メタデータを参照し、自身に書き込み権限がない場合に、前記書き込み権限を持つキャッシュマネージャを抽出し、前記抽出した書き込み権限を持つキャッシュマネージャに前記第1の要求メッセージを送信することを特徴とする請求項1に記載のデータキャッシュシステムとした。   According to the second aspect of the present invention, when the cache manager of the second server that has received the first request message refers to the metadata of the data and does not have the write authority, the write authority 2. The data cache system according to claim 1, wherein a cache manager having a right is extracted, and the first request message is transmitted to the extracted cache manager having the write authority.

このようにすることで、原本データを記憶するキャッシュマネージャが書き込み権限を持たない場合に、メタデータを参照し、書き込み権限を持つ他のキャッシュマネージャに第1の要求メッセージを送信し、参照要求の処理を実行させることができる。   In this way, when the cache manager that stores the original data does not have write authority, the metadata is referred to, the first request message is transmitted to another cache manager having write authority, and the reference request Processing can be executed.

請求項3に記載の発明は、前記第1のサーバのキャッシュマネージャが、前記データの更新要求を受信した場合に、自身の前記記憶部に当該データを記憶しているか否かを、前記更新要求に付された前記データkeyを用いて探索し、前記データを記憶していないか、記憶していても前記メタデータを参照し自身が書き込み権限を持たないときに、当該データkeyから前記原本データクラスタのアドレスを抽出し、当該データの前記データkeyおよび当該キャッシュマネージャの前記キャッシュマネージャkeyを付した更新要求を前記原本データクラスタへの第2の要求メッセージに含めて送信し、前記第2のサーバの振り分け処理部は、受信した前記第2の要求メッセージから前記データkeyを抽出し、前記データに対応する原本データを記憶する前記キャッシュマネージャを、前記キャッシュデータ管理情報を参照して決定し、前記決定したキャッシュマネージャに前記第2の要求メッセージを送信し、前記第2の要求メッセージを受信した前記第2のサーバのキャッシュマネージャは、前記データの前記メタデータを参照し、自身に書き込み権限がある場合に、前記データを更新し、前記第2の要求メッセージから前記キャッシュマネージャkeyを抽出し、前記メタデータの読み出し権限に前記抽出したキャッシュマネージャkeyを付した上で、当該キャッシュマネージャkeyから前記クライアントクラスタのアドレスを抽出し、更新した前記データを前記第1のサーバのキャッシュマネージャに送信し、前記第1のサーバのキャッシュマネージャは、更新した前記データを受信して自身の記憶部に記憶し、当該データを出力することを特徴とする請求項1または請求項2に記載のデータキャッシュシステムとした。   According to a third aspect of the present invention, when the cache manager of the first server receives the update request for the data, the update request indicates whether or not the data is stored in its storage unit. When the data key attached to is searched and the data is not stored, or even if the data is stored and the metadata is referred to and the user does not have the write authority, the original data is read from the data key. An address of the cluster is extracted, and an update request with the data key of the data and the cache manager key of the cache manager is included in a second request message to the original data cluster and transmitted, and the second server The distribution processing unit extracts the data key from the received second request message and stores the original data corresponding to the data A cache manager of the second server that has determined the cache manager with reference to the cache data management information, transmits the second request message to the determined cache manager, and has received the second request message. The manager refers to the metadata of the data, updates the data when the manager has the write permission, extracts the cache manager key from the second request message, and sets the read permission of the metadata. After adding the extracted cache manager key, the address of the client cluster is extracted from the cache manager key, the updated data is transmitted to the cache manager of the first server, and the cache of the first server is sent. The manager receives the updated data and stores it Stored in, and the data cache system according to claim 1 or claim 2, wherein the outputting the data.

このようにすることで、クライアントクラスタが備える第1のサーバのキャッシュマネージャが、更新要求を受けたデータを記憶していない場合に、原本データクラスタが備える第2のサーバの、当該データの原本データを記憶し、かつ、書き込み権限を持つキャッシュマネージャに、更新要求を示す第2の要求メッセージを送信し、データを更新させる。そして、クライアントクラスタが備える第1のサーバのキャッシュマネージャは、読み出し権限を得た上で更新されたデータを受信し、自身の記憶部に記憶することができる。   In this way, when the cache manager of the first server included in the client cluster does not store the data that has received the update request, the original data of the data of the second server included in the original data cluster Is transmitted and a second request message indicating an update request is transmitted to the cache manager having the write authority to update the data. Then, the cache manager of the first server provided in the client cluster can receive the updated data after obtaining the read authority and store it in its own storage unit.

請求項4に記載の発明は、前記第2の要求メッセージを受信した前記第2のサーバのキャッシュマネージャは、前記データの前記メタデータを参照し、自身に書き込み権限がない場合に、前記書き込み権限を持つキャッシュマネージャを抽出し、前記抽出した書き込み権限を持つキャッシュマネージャに前記第2の要求メッセージを送信することを特徴とする請求項3に記載のデータキャッシュシステムとした。   According to a fourth aspect of the present invention, when the cache manager of the second server that has received the second request message refers to the metadata of the data and does not have the write authority, the write authority 4. The data cache system according to claim 3, wherein a cache manager having a right is extracted, and the second request message is transmitted to the extracted cache manager having the write authority.

このようにすることで、原本データを記憶するキャッシュマネージャが書き込み権限を持たない場合に、メタデータを参照し、書き込み権限を持つ他のキャッシュマネージャに第2の要求メッセージを送信し、更新要求の処理を実行させることができる。   In this way, when the cache manager that stores the original data does not have the write authority, the metadata is referred to, the second request message is transmitted to another cache manager having the write authority, and the update request Processing can be executed.

本発明によれば、呼出元(クライアント)および呼出先(原本データの保存サーバ)のクラスタ構成を互いに隠蔽したまま、キャッシュデータの情報の更新を通知し合うことが可能となるデータキャッシュシステムを提供することができる。   According to the present invention, there is provided a data cache system capable of notifying update of cache data information while concealing the cluster configuration of a caller (client) and a callee (original data storage server) from each other. can do.

本実施形態に係るデータキャッシュシステムの構成例を示す図である。It is a figure which shows the structural example of the data cache system which concerns on this embodiment. 本実施形態に係る原本データクラスタの構成例を示す図である。It is a figure which shows the structural example of the original data cluster which concerns on this embodiment. 本実施形態に係るクライアントクラスタ内のサーバが、キャッシュデータの参照要求を処理する例を示す図である。It is a figure which shows the example in which the server in the client cluster concerning this embodiment processes the reference request of cache data. 本実施形態に係るクライアントクラスタ内のサーバが、キャッシュデータの更新要求を処理する例を示す図である。It is a figure which shows the example in which the server in the client cluster concerning this embodiment processes the update request of cache data. 本実施形態に係るサーバの構成例を示す機能ブロック図である。It is a functional block diagram which shows the structural example of the server which concerns on this embodiment. 本実施形態に係るキャッシュデータ管理情報のデータ構成を示す図である。It is a figure which shows the data structure of the cache data management information which concerns on this embodiment. 本実施形態に係るクライアントクラスタ内のサーバのキャッシュマネージャが、データの参照要求のリクエストを受信した場合の処理を示すフローチャートである。It is a flowchart which shows a process when the cache manager of the server in the client cluster which concerns on this embodiment receives the request | requirement of a data reference request. 本実施形態に係るクライアントクラスタ内のサーバのキャッシュマネージャが、データの更新要求のリクエストを受信した場合の処理を示すフローチャートである。It is a flowchart which shows a process when the cache manager of the server in the client cluster which concerns on this embodiment receives the request | requirement of a data update request. 本実施形態に係るクライアントクラスタ内のサーバのキャッシュマネージャが、データの更新要求のリクエストを受信した場合の処理を示すフローチャートである。It is a flowchart which shows a process when the cache manager of the server in the client cluster which concerns on this embodiment receives the request | requirement of a data update request. 本実施形態に係るキャッシュマネージャが、受信メソッドを実行する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process in which the cache manager which concerns on this embodiment performs a reception method. 本実施形態に係るクライアントクラスタ内のサーバのキャッシュマネージャが、Read権限付きでデータを取得する例を示す図である。It is a figure which shows the example which the cache manager of the server in the client cluster concerning this embodiment acquires data with Read authority. 本実施形態に係るクライアントクラスタ内のサーバのキャッシュマネージャが、Write権限付きでデータを取得する例を示す図である。It is a figure which shows the example which the cache manager of the server in the client cluster concerning this embodiment acquires data with a Write authority. 本実施形態に係るクライアントクラスタ内のサーバのキャッシュマネージャが、Write権限を持ち、データを更新する例を示す図である。It is a figure which shows the example in which the cache manager of the server in the client cluster which concerns on this embodiment has a Write authority, and updates data. 本実施形態に係るクライアントクラスタ内のサーバのキャッシュマネージャが、データの更新要求を受信した場合に、Write権限を持つ他のキャッシュマネージャに更新を依頼する例を示す図である。It is a figure which shows the example which requests | requires update to the other cache manager with a Write authority, when the cache manager of the server in the client cluster which concerns on this embodiment receives the update request of data. 本実施形態に係るクライアントクラスタ内のすべてのサーバに、更新通知を送信する例を示す図である。It is a figure which shows the example which transmits an update notification to all the servers in the client cluster which concerns on this embodiment.

次に、本発明を実施するための形態(以下、「本実施形態」という。)におけるデータキャッシュシステム100について説明する。   Next, the data cache system 100 in a mode for carrying out the present invention (hereinafter referred to as “the present embodiment”) will be described.

<システム構成>
図1は、本実施形態に係るデータキャッシュシステム100の構成例を示す図である。
図1に示すように、データキャッシュシステム100は、複数のサーバ1(1y:第1のサーバ)で構成され原本となるデータ(原本データ)を分散して記憶する原本データクラスタ10と、クライアントクラスタ20とが、ネットワークを介して接続される。クライアントクラスタ20は、複数のサーバ1(1x:第2のサーバ)によりクラスタを構成し、原本データクラスタ10に対しリクエスト(要求情報)を送信することにより応答情報を取得する。また、クライアントクラスタ20の各サーバ1(1x)は、原本データクラスタ10から取得した情報をキャッシュデータとして記憶する。
なお、本実施形態においては、クライアント側が、クライアントクラスタ20であることを前提して説明するが、図1に示すように、単体サーバであるクライアント端末30でも、同様に処理を実行することができる。このクライアント端末30は、クライアントクラスタ20を構成するサーバ1(1x)と同様に、原本データクラスタ10に対しリクエスト(要求情報)を送信し、取得した情報をキャッシュデータとして記憶する。
<System configuration>
FIG. 1 is a diagram illustrating a configuration example of a data cache system 100 according to the present embodiment.
As shown in FIG. 1, a data cache system 100 includes an original data cluster 10 configured by a plurality of servers 1 (1y: first server) and storing original data (original data) in a distributed manner, and a client cluster. 20 are connected via a network. The client cluster 20 forms a cluster by a plurality of servers 1 (1x: second server), and acquires response information by transmitting a request (request information) to the original data cluster 10. Each server 1 (1x) of the client cluster 20 stores the information acquired from the original data cluster 10 as cache data.
In the present embodiment, the description will be given on the assumption that the client side is the client cluster 20, but as shown in FIG. 1, the processing can be similarly executed also in the client terminal 30 which is a single server. . Similar to the server 1 (1x) constituting the client cluster 20, the client terminal 30 transmits a request (request information) to the original data cluster 10, and stores the acquired information as cache data.

<クラスタ構成>
次に、原本データクラスタ10およびクライアントクラスタ20の構成例について説明する。原本データクラスタ10およびクライアントクラスタ20は共に、以下に示す同様の構成を備えているため、ここでは、原本データクラスタ10を例に説明する。
<Cluster configuration>
Next, configuration examples of the original data cluster 10 and the client cluster 20 will be described. Since both the original data cluster 10 and the client cluster 20 have the same configuration as described below, the original data cluster 10 will be described as an example here.

図2は、本実施形態に係る原本データクラスタ10の構成例を示す図である。
図2に示すように、原本データクラスタ10は、ロードバランサB(Balancer:各図において「B」と表記)と、複数のディスパッチャD(Dispatcher:図2において「D」と表記)と、複数のプロセッサP(Processor:図2において「P」と表記)とを含んで構成される。
FIG. 2 is a diagram illustrating a configuration example of the original data cluster 10 according to the present embodiment.
As shown in FIG. 2, the original data cluster 10 includes a load balancer B (Balancer: indicated as “B” in each figure), a plurality of dispatchers D (Dispatcher: indicated as “D” in FIG. 2), a plurality of And a processor P (Processor: written as “P” in FIG. 2).

ロードバランサBは、外部端末40からリクエスト(要求情報)を取得し、それに対する応答情報を外部端末40に送信する。また、ロードバランサBは、ラウンドロビン等の単純なアルゴリズムに基づき、取得したリクエストを複数のディスパッチャD(D,D,D)のいずれかに振り分ける。ここで、外部端末40は、図1に示した、クライアントクラスタ20を構成するサーバ1(1x)やクライアント端末30である。 The load balancer B acquires a request (request information) from the external terminal 40 and transmits response information to the request to the external terminal 40. Further, the load balancer B distributes the acquired request to one of a plurality of dispatchers D (D 1 , D 2 , D 3 ) based on a simple algorithm such as round robin. Here, the external terminal 40 is the server 1 (1x) or the client terminal 30 constituting the client cluster 20 shown in FIG.

各ディスパッチャD(D,D,D)は、複数のプロセッサP(P,P,P)と接続されており、ロードバランサBから取得したリクエストを、プロセッサP(P,P,P)のいずれかに振り分ける。このディスパッチャDは、入力データを解析し、所定のデータ管理アルゴリズム、例えば、コンシステントハッシュ法を適用して、データの格納先であるプロセッサPを決定し、そのリクエストを送信する。 Each dispatcher D (D 1 , D 2 , D 3 ) is connected to a plurality of processors P (P 1 , P 2 , P 3 ), and requests received from the load balancer B are sent to the processor P (P 1 , P 1 , distributed to any of the P 2, P 3). The dispatcher D analyzes input data, applies a predetermined data management algorithm, for example, a consistent hash method, determines a processor P that is a data storage destination, and transmits the request.

プロセッサPは、複数のディスパッチャD(D,D,D)に接続されており、いずれかのディスパッチャDからリクエストを受信し、そのリクエストに従い、自身の記憶部(ローカルストレージ)に新規データを保存したり、既存データを更新したり、データの参照(取得)処理をしたりする制御を実行する。なお、このローカルストレージには、データをキャッシュとして保存するローカルキャッシュ(図5のキャッシュデータ記憶部131)を含む。また、以下において、特に説明なく「ローカル」と記載する場合は、ローカルキャッシュを含むローカルストレージを意味するものとする。さらに、ここでは、各データが記憶部に、XML(Extensible Markup Language)ファイルで保存されているものとして説明する。 The processor P is connected to a plurality of dispatchers D (D 1 , D 2 , D 3 ), receives a request from one of the dispatchers D, and in accordance with the request, new data is stored in its own storage unit (local storage). Is executed, the existing data is updated, and the data is referenced (acquired). The local storage includes a local cache (cache data storage unit 131 in FIG. 5) that stores data as a cache. In the following description, “local” is used without any particular explanation, and it means a local storage including a local cache. Furthermore, here, it is assumed that each data is stored in the storage unit as an XML (Extensible Markup Language) file.

なお、ディスパッチャD(D,D,D)、プロセッサP(P,P,P)それぞれは、図2に図示した3つの装置に限定されず、複数の装置であればよい。また、図2においては、ディスパッチャDとプロセッサPとを別装置として記載したが、同一サーバ上で別々の機能として動作させることが可能であり、本実施形態では、ディスパッチャDとプロセッサPとを1つのサーバ1(クライアントクラスタ20側のサーバ1を「サーバ1x」、原本データクラスタ10側のサーバ1を「サーバ1y」)として、以下において説明する。 The dispatchers D (D 1 , D 2 , D 3 ) and the processors P (P 1 , P 2 , P 3 ) are not limited to the three devices illustrated in FIG. . In FIG. 2, the dispatcher D and the processor P are described as separate devices. However, the dispatcher D and the processor P can be operated as separate functions on the same server. In the following description, the two servers 1 (the server 1 on the client cluster 20 side is “server 1x” and the server 1 on the original data cluster 10 side is “server 1y”).

<概要>
本発明は、前記した問題(1)および(2)に示した技術的課題を解決するため、以下に示す技術的手段とした。
問題(1)のクライアント側のクラスタ自体がNAT等で内部のサーバ1を隠蔽している点に関しては、外部からクラスタ内のマシン(サーバ1等)にPushで通信可能にする必要がある。ここで、クライアントクラスタ20は、そもそもデータを保存・管理するためのクラスタ構成をとっていることから、外部からクラスタ内部のサーバ1へリクエスト信号が到達可能な機構を備えている。その機構を流用し、リクエスト信号上でデータの参照要求や更新要求を記述することによって、外部からクラスタ内のサーバ1が、そのデータの参照要求や更新要求を受け付けられるようにする。なお、本実施形態では、後記するように、リクエストとして、HTTPのGETメソッドやPUTメソッドを利用した場合を例に説明する。
<Overview>
In order to solve the technical problems shown in the above problems (1) and (2), the present invention has the following technical means.
Regarding the problem (1) that the client-side cluster itself conceals the internal server 1 with NAT or the like, it is necessary to enable communication from outside to a machine (server 1 or the like) in the cluster via Push. Here, since the client cluster 20 has a cluster configuration for storing and managing data in the first place, the client cluster 20 has a mechanism that allows a request signal to reach the server 1 in the cluster from the outside. By using the mechanism and describing a data reference request or update request on the request signal, the server 1 in the cluster can accept the data reference request or update request from the outside. In the present embodiment, as will be described later, an example in which an HTTP GET method or a PUT method is used as a request will be described.

問題(2)のクラスタ内部で、データの保存先が移動してしまう点に関しては、クラスタで採用するデータ振り分けの構成変更に追従する必要がある。そこで、クラスタのデータの保存・管理手法を、例えば、KVS(Key Value Store)機構とし、その振り分けアルゴリズム(例えば、コンシステントハッシュ法)を流用する。なお、KVSとは、任意に保存したデータ(値:value)に対し、対応する一意の標識(key)を設定し、keyおよびvalueをペアで保存するデータ保存・管理手法である。このようにすることで、冗長等のためクラスタ内部でデータの保存先が変更等された場合であっても、keyを指定することで、データの保存先となるサーバ1に追従することが可能となる。   Regarding the point where the data storage destination moves within the cluster of problem (2), it is necessary to follow the configuration change of the data distribution adopted in the cluster. Therefore, the cluster data storage / management method is, for example, the KVS (Key Value Store) mechanism, and the distribution algorithm (for example, the consistent hash method) is used. Note that KVS is a data storage / management technique in which a corresponding unique indicator (key) is set for arbitrarily stored data (value: value), and the key and value are stored in pairs. In this way, even if the data storage destination is changed within the cluster due to redundancy, etc., it is possible to follow the server 1 that is the data storage destination by specifying the key. It becomes.

次に、本実施形態の詳細を説明するための前提として、クライアントクラスタ20内のサーバ1(1x)によるキャッシュデータの参照処理と更新処理の主な例を、図3および図4を参照して説明する。なお、データキャッシュシステム100内における、参照処理および更新処理の詳細な処理の流れについては、他の例も含めて、図11〜図15を参照して後記する。   Next, as a premise for explaining the details of this embodiment, main examples of cache data reference processing and update processing by the server 1 (1x) in the client cluster 20 will be described with reference to FIGS. explain. The detailed processing flow of the reference processing and update processing in the data cache system 100 will be described later with reference to FIGS. 11 to 15 including other examples.

図3は、クライアントクラスタ20内の1つのサーバ1(1x)が、キャッシュデータの参照要求を処理する例を示している。具体的には、サーバ1(1x)において、アプリケーション(図5に示すアプリケーション処理部112:図3において「APL」と表記)から、キャッシュデータを管理するキャッシュマネージャ113(図5)が参照要求を受信した場合を示している。ここで、アプリケーション処理部112が、データの参照や更新を実行するときには、キャッシュマネージャ113を経由して処理が実行されるように設定される。   FIG. 3 shows an example in which one server 1 (1x) in the client cluster 20 processes a cache data reference request. Specifically, in the server 1 (1x), the cache manager 113 (FIG. 5) that manages the cache data from the application (application processing unit 112 shown in FIG. 5: expressed as “APL” in FIG. 3) issues a reference request. The case where it received is shown. Here, the application processing unit 112 is set to execute processing via the cache manager 113 when referring to or updating data.

まず、サーバ1(1x)のキャッシュマネージャ113が、アプリケーション処理部112からデータの参照要求を受信する(ステップS10)。なお、この参照要求には、当該データを識別するためのkey(データkey)が付されている。   First, the cache manager 113 of the server 1 (1x) receives a data reference request from the application processing unit 112 (step S10). Note that a key (data key) for identifying the data is attached to the reference request.

キャッシュマネージャ113は、参照要求を受信すると、データkeyに基づき、自身の記憶部13(図5:ローカルキャッシュ)を探索し、当該データを記憶していれば、そのデータをアプリケーション処理部112に返す(ステップS11)。   When the cache manager 113 receives the reference request, the cache manager 113 searches its own storage unit 13 (FIG. 5: local cache) based on the data key, and returns the data to the application processing unit 112 if the data is stored. (Step S11).

キャッシュマネージャ113は、自身の記憶部13(ローカルキャッシュ)に当該データを記憶していなければ、Write権限を持つ他のキャッシュマネージャ113から、当該データをRead権限付きで取得する(ステップS12)。そして、キャッシュマネージャ113は、取得したデータをアプリケーション処理部112に返す(ステップS13)。   If the cache manager 113 does not store the data in its own storage unit 13 (local cache), the cache manager 113 acquires the data with read authority from another cache manager 113 having write authority (step S12). Then, the cache manager 113 returns the acquired data to the application processing unit 112 (step S13).

ここで、Read権限とは、データの読み出し(参照)権限であり、そのデータを参照する権限を意味し、データの書き込み等は行えない。また、Write権限とは、データの書き込み(更新)権限であり、そのデータを更新する権限を意味する。そして、キャッシュマネージャ113がWrite権限を備える場合は、Read権限を同時に備えており、他のキャッシュマネージャ113に対し、Read権限を付与したり、Write権限を移行したりすることができる。   Here, the Read authority is an authority to read (refer) data, and refers to an authority to refer to the data, and data cannot be written. The write authority is an authority to write (update) data and to update the data. When the cache manager 113 has the Write authority, it has the Read authority at the same time, and can grant the Read authority to other cache managers 113 or transfer the Write authority.

また、キャッシュデータには、データ(データ値)に、そのデータのデータkeyとメタデータとが付されて記憶されており(例えば、図11の符号1000参照)、このメタデータには、Read権限を備えるキャッシュマネージャ113の識別子(例えば、「p1」)を含むそのキャッシュマネージャのkey(例えば、「p1@XXX」)と、Write権限を備えるキャッシュマネージャ113の識別子(例えば、「q」)を含むそのキャッシュマネージャのkey(例えば、「q@YYY」)とが記載される。なお、「XXX」および「YYY」は、そのクラスタの入口となるロードバランサBのアドレス(例えば、IPアドレス)であり、そのキャッシュマネージャ113が属するクラスタを示している。そして、Write権限を持つキャッシュマネージャ113は、他のキャッシュマネージャに対し、Read権限を付与したり、Write権限を移行したりする際には、このメタデータを更新する。   The cache data stores data (data value) with the data key and metadata of the data attached (for example, see reference numeral 1000 in FIG. 11). Including the identifier (eg, “p1”) of the cache manager 113 including the identifier (eg, “p1 @ XXX”) of the cache manager 113 including the identifier of the cache manager 113 including the identifier (eg, “q”). The key of the cache manager (for example, “q @ YYY”) is described. Note that “XXX” and “YYY” are addresses (for example, IP addresses) of the load balancer B serving as the entrance of the cluster, and indicate the cluster to which the cache manager 113 belongs. The cache manager 113 having the write authority updates this metadata when granting the read authority to another cache manager or transferring the write authority.

図4は、クライアントクラスタ20内の1つのサーバ1(1x)が、キャッシュデータの更新要求を処理する例を示している。具体的には、サーバ1(1x)において、アプリケーション処理部112からキャッシュマネージャ113が更新要求を受信した場合を示している。   FIG. 4 shows an example in which one server 1 (1x) in the client cluster 20 processes a cache data update request. Specifically, in the server 1 (1x), the cache manager 113 receives an update request from the application processing unit 112.

まず、サーバ1(1x)のキャッシュマネージャ113が、アプリケーション処理部112からデータの更新要求を受信する(ステップS20)。なお、この更新要求には、当該データのkey(データkey)が付されている。   First, the cache manager 113 of the server 1 (1x) receives a data update request from the application processing unit 112 (step S20). This update request is accompanied by a key of the data (data key).

キャッシュマネージャ113は、更新要求を受信すると、データkeyに基づき、自身の記憶部13(ローカルキャッシュ)を探索し、当該データを記憶しており、当該データに付されたメタデータを参照して自身にWrite権限があれば、そのデータを更新する。そして、キャッシュマネージャ113は、当該データをキャッシュしている他のアプリケーション処理部112に対し、当該データの更新通知を送信する(ステップS21)。   Upon receiving the update request, the cache manager 113 searches its own storage unit 13 (local cache) based on the data key, stores the data, and refers to the metadata attached to the data. If the user has Write permission, the data is updated. Then, the cache manager 113 transmits an update notification of the data to the other application processing unit 112 that caches the data (step S21).

一方、キャッシュマネージャ113は、自身の記憶部13(ローカルキャッシュ)に当該データを記憶していないか、記憶していてもWrite権限がなければ、当該データのWrite権限を持つ他のキャッシュマネージャ113に、当該データの更新要求を転送することにより、Write権限を持つ他のキャッシュマネージャ113に当該データを更新させる。
また、キャッシュマネージャ113は、自身の記憶部13(ローカルキャッシュ)に当該データを記憶していないか、記憶していてもWrite権限がない場合であり、Write権限を自身が取得した上で当該データを更新したいときは、当該データのWrite権限を持つ他のキャッシュマネージャ113から、当該データをWrite権限付きで取得する(ステップS22)。
そして、キャッシュマネージャ113は、当該データを更新し、当該データをキャッシュしている他のアプリケーション処理部112に対し、当該データの更新通知を送信する(ステップS23)。
On the other hand, if the cache manager 113 does not store the data in its own storage unit 13 (local cache), or if it does not have the write authority, the other cache manager 113 having the write authority for the data does not know. Then, by transferring the data update request, the other cache manager 113 having the write authority is made to update the data.
In addition, the cache manager 113 does not store the data in its own storage unit 13 (local cache) or does not have the write authority even if it is stored. Is updated with the write authority from another cache manager 113 having the write authority for the data (step S22).
Then, the cache manager 113 updates the data and transmits an update notification of the data to the other application processing unit 112 that caches the data (step S23).

このように、Write権限を持つキャッシュマネージャ113が、そのデータやそのデータに付されたメタデータが更新されたとき、当該データをキャッシュしている他のアプリケーション処理部112に対し、更新通知を送信することとで、クラスタ内のデータのコヒーレンス(一貫性)が保たれる。   As described above, when the cache manager 113 having the write authority is updated with the data or the metadata attached to the data, the cache manager 113 transmits an update notification to the other application processing unit 112 that caches the data. By doing so, the coherence (consistency) of the data in the cluster is maintained.

本実施形態に係るデータキャッシュシステムで100では、上記のように、キャッシュ対象となるデータにデータkeyが付されており、そのデータkeyとともに、そのデータのRead権限およびWrite権限を持つキャッシュマネージャ113のkey(キャッシュマネージャkey)を示すメタデータが、当該データに付されてキャッシュデータとして記憶される。そして、外部からクラスタ内に参照要求や更新要求を送信する際は、既存のリクエスト信号(例えば、HTTPのGETメソッドやPUTメソッドによるリクエスト)にリクエストオプションを設定することにより、データkey、送信元や送信先のキャッシュマネージャkey、および、処理内容等を付して送信する。リクエスト信号を受信したクラスタ内のノードでは、そのリクエスト信号に付されたデータkeyまたは、キャッシュマネージャkeyに基づき、当該データを担当するノードを特定して、そのリクエスト信号を受信することができる。   In the data cache system 100 according to the present embodiment, as described above, the data key is attached to the data to be cached, and together with the data key, the cache manager 113 having the read authority and the write authority for the data. Metadata indicating a key (cache manager key) is attached to the data and stored as cache data. When a reference request or an update request is transmitted from outside to the cluster, by setting a request option in an existing request signal (for example, a request by an HTTP GET method or a PUT method), a data key, a transmission source, Send the destination cache manager key and the processing details. The node in the cluster that has received the request signal can identify the node in charge of the data based on the data key attached to the request signal or the cache manager key and receive the request signal.

<サーバの構成>
以下、本実施形態に係るクラスタ(クライアントクラスタ20および原本データクラスタ10)を構成するサーバ1(1x,1y)について具体的に説明する。図2に示したように、サーバ1は、ディスパッチャDの機能とプロセッサPの機能の両方を備えるものとして説明する。また、ここでは、原本データクラスタ10を構成するサーバ1(1y)、および、クライアントクラスタ20を構成するサーバ1(1x)は、同様の機能を備えるため、サーバ1として説明する。
<Server configuration>
Hereinafter, the server 1 (1x, 1y) constituting the cluster (client cluster 20 and original data cluster 10) according to the present embodiment will be specifically described. As shown in FIG. 2, the server 1 will be described as having both the function of the dispatcher D and the function of the processor P. In addition, here, the server 1 (1y) constituting the original data cluster 10 and the server 1 (1x) constituting the client cluster 20 have the same functions, and therefore will be described as the server 1.

図5は、本実施形態に係るサーバ1の構成例を示す機能ブロック図である。
サーバ1は、図2に示したように、ロードバランサBと通信可能に接続されると共に、クラスタを構成する自身以外の他のサーバ1とも通信可能に接続される。そして、外部からロードバランサBを介して、参照要求や更新要求等のリクエストを受信する。
このサーバ1は、図5に示すように、制御部11と、入出力部12と、記憶部13とを含んで構成される。
FIG. 5 is a functional block diagram illustrating a configuration example of the server 1 according to the present embodiment.
As shown in FIG. 2, the server 1 is communicably connected to the load balancer B, and is also communicably connected to other servers 1 other than itself constituting the cluster. Then, a request such as a reference request or an update request is received from the outside via the load balancer B.
As shown in FIG. 5, the server 1 includes a control unit 11, an input / output unit 12, and a storage unit 13.

入出力部12は、ロードバランサBや、自身以外の他のサーバ1との間の情報の入出力を行う。また、この入出力部12は、通信回線を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。   The input / output unit 12 inputs / outputs information to / from the load balancer B and other servers 1 other than itself. The input / output unit 12 includes a communication interface that transmits and receives information via a communication line, and an input / output interface that performs input / output between an input unit such as a keyboard (not shown) and an output unit such as a monitor. Consists of

制御部11は、サーバ1全体の制御を司り、情報受信部111、アプリケーション処理部112、キャッシュマネージャ113、振り分け処理部114、および、情報送信部115を含んで構成される。なお、この制御部11は、例えば、サーバ1の記憶部13に格納されたプログラムをCPU(Central Processing Unit)がRAM(Random Access Memory)等に展開し実行することで実現される。   The control unit 11 controls the entire server 1 and includes an information receiving unit 111, an application processing unit 112, a cache manager 113, a distribution processing unit 114, and an information transmission unit 115. The control unit 11 is realized, for example, by a CPU (Central Processing Unit) developing and executing a program stored in the storage unit 13 of the server 1 on a RAM (Random Access Memory) or the like.

情報受信部111は、入出力部12を介して、ロードバランサBやクラスタ内の他のサーバ1からの情報を受信する。   The information receiving unit 111 receives information from the load balancer B and other servers 1 in the cluster via the input / output unit 12.

アプリケーション処理部112は、クライアントにサービスを提供等するためのアプリケーションの処理を実行する。このアプリケーション処理部112は、記憶部13に記憶されたキャッシュデータを利用する際に、データの参照要求や更新要求等のリクエストをキャッシュマネージャ113に出力する。なお、このリクエストには、そのデータを一意に識別するためのkey(データkey)が含まれる。   The application processing unit 112 executes processing of an application for providing a service to a client. When using the cache data stored in the storage unit 13, the application processing unit 112 outputs a request such as a data reference request or an update request to the cache manager 113. This request includes a key (data key) for uniquely identifying the data.

キャッシュマネージャ113は、キャッシュデータに関する処理の全般の制御を実行する。
具体的には、キャッシュマネージャ113は、アプリケーション処理部112からデータの参照要求を受信した場合において、自身の記憶部13(キャッシュデータ記憶部131)にそのデータを記憶しているときは、当該データをアプリケーション処理部112に返す。
一方、キャッシュマネージャ113は、自身の記憶部13(キャッシュデータ記憶部131)にそのデータを記憶していないときは、当該データのWrite権限を持つ他のキャッシュマネージャ113から、Read権限付きでデータを取得し、記憶部13(キャッシュデータ記憶部131)に記憶した上で、当該データをアプリケーション処理部112に返す。なお、この処理の詳細は、図11を参照して後記する。
The cache manager 113 performs overall control of processing related to cache data.
Specifically, when the cache manager 113 receives a data reference request from the application processing unit 112 and stores the data in its own storage unit 13 (cache data storage unit 131), the data Is returned to the application processing unit 112.
On the other hand, when the cache manager 113 does not store the data in its own storage unit 13 (cache data storage unit 131), the cache manager 113 receives data with read authority from another cache manager 113 having write authority for the data. The data is acquired and stored in the storage unit 13 (cache data storage unit 131), and then the data is returned to the application processing unit 112. Details of this processing will be described later with reference to FIG.

また、キャッシュマネージャ113は、アプリケーション処理部112からデータの更新要求を受信した場合において、自身の記憶部13(キャッシュデータ記憶部131)にそのデータを記憶しており、かつ、そのデータについてWrite権限を持つときには、そのデータを更新要求に基づき新たなデータに更新する。
一方、キャッシュマネージャ113は、自身の記憶部13(キャッシュデータ記憶部131)にそのデータを記憶していないとき、または、そのデータを記憶していても(つまり、Read権限を持っていても)、Write権限を持たないときは、Write権限を持つ他のサーバ1のアプリケーション処理部112からWrite権限の付与を受けてデータを更新する。このとき、キャッシュマネージャ113は、Write権限を持つ他のサーバにデータの更新を依頼することによりそのデータを更新させることもできる。なお、この処理の詳細は、図13および図14を参照して後記する。
In addition, when the cache manager 113 receives a data update request from the application processing unit 112, the cache manager 113 stores the data in its own storage unit 13 (cache data storage unit 131), and also has write authority for the data. If it has, the data is updated to new data based on the update request.
On the other hand, the cache manager 113 does not store the data in its own storage unit 13 (cache data storage unit 131) or stores the data (that is, has the Read right). When the user does not have the write authority, the data is updated by receiving the write authority from the application processing unit 112 of the other server 1 having the write authority. At this time, the cache manager 113 can update the data by requesting the other server having the write authority to update the data. Details of this processing will be described later with reference to FIGS.

このキャッシュマネージャ113は、自身がそのデータを記憶部13(キャッシュデータ記憶部131)に記憶しているか否かを、受信したリクエストに付されたデータkeyを用いて探索する。また、そのデータのwrite権限を持っているか否かを、そのデータに付されたメタデータを参照して判定する。なお、このキャッシュマネージャ113の処理の詳細は、図7〜図10を参照して後記する。   The cache manager 113 searches whether or not the data is stored in the storage unit 13 (cache data storage unit 131) using the data key attached to the received request. Further, it is determined whether or not the user has write permission for the data with reference to the metadata attached to the data. Details of the processing of the cache manager 113 will be described later with reference to FIGS.

また、ここで、本実施形態におけるデータkeyは、例えば「A@YYY」のように記述される。ここで「A」は、そのデータに固有な識別子(データ識別子)である。また、「YYY」は、そのデータの原本データが保存されるクラスタの入口(外部からの送信先)となるロードバランサBのアドレスである。このように、データkeyは、データ識別子と原本データクラスタ10に固有なロードバランサBのアドレスと組み合わせからなるものとする。よって、データkeyの情報として、ロードバランサB(アドレス:「YYY」)を含む原本データクラスタ10を構成する複数のサーバ1(1y)のうちのいずれかのサーバに、そのデータ「A」の原本データが必ず記憶されていることを意味する。   Here, the data key in this embodiment is described as “A @ YYY”, for example. Here, “A” is an identifier (data identifier) unique to the data. “YYY” is the address of the load balancer B that is the entrance (external transmission destination) of the cluster where the original data of the data is stored. As described above, the data key is assumed to be a combination of the data identifier and the address of the load balancer B unique to the original data cluster 10. Therefore, as the information of the data key, the original of the data “A” is sent to any one of the plurality of servers 1 (1y) constituting the original data cluster 10 including the load balancer B (address: “YYY”). It means that data is always stored.

また、キャッシュマネージャ113は、自身が属するクラスタ以外の他のクラスタにリクエストを送信するときは、少なくとも、キャッシュマネージャのkey(キャッシュマネージャkey)と、データkeyとを含めたリクエストとして送信する。本実施形態では、HTTPのGETメソッドとPUTメソッドにリクエストオプションを設定した例として、後記において説明するが、同様のリクエストオプションを設定できるものであれば、HTTPに限定されるものではない。   When the cache manager 113 transmits a request to a cluster other than the cluster to which the cache manager 113 belongs, the cache manager 113 transmits the request as a request including at least the cache manager key (cache manager key) and the data key. In the present embodiment, an example in which request options are set in the HTTP GET method and the PUT method will be described later. However, the request options are not limited to HTTP as long as similar request options can be set.

振り分け処理部114は、外部から情報受信部111が、リクエストを受信した際に、そのリクエストに付されたデータkeyに対し、KVS機構を用いた所定の振り分けアルゴリズム(ここでは、コンシステントハッシュ法とする。)に基づき、そのデータの保存や管理を担当するサーバ1(具体的には、そのサーバ1のキャッシュマネージャ113)を決定する。   When the information receiving unit 111 receives a request from the outside, the distribution processing unit 114 performs a predetermined distribution algorithm using a KVS mechanism (here, a consistent hash method and a data key attached to the request). The server 1 in charge of storing and managing the data (specifically, the cache manager 113 of the server 1) is determined.

なお、ここで各サーバ1のキャッシュマネージャ113には、前記したように、そのクラスタ内で固有の識別子が付されており、コンシステントハッシュ法では、データkeyとキャッシュマネージャ113の識別子の双方を、ハッシュ関数にかけた値(ハッシュ値)を求める。そして、閉じたハッシュ空間上にキャッシュマネージャ113の識別子それぞれをハッシュ関数にかけた値(ハッシュ値)を配置し、リクエストに付されたデータkeyをハッシュ関数にかけた値(ハッシュ値)が、例えばハッシュ空間上で時計まわりに最初に出合ったキャッシュマネージャ113が、そのデータを担当するものとする。   Here, as described above, the cache manager 113 of each server 1 is given a unique identifier in the cluster. In the consistent hash method, both the data key and the identifier of the cache manager 113 are Find the value (hash value) multiplied by the hash function. Then, a value (hash value) obtained by applying each identifier of the cache manager 113 to the hash function is placed on the closed hash space, and a value (hash value) obtained by applying the data key attached to the request to the hash function is, for example, a hash space. It is assumed that the cache manager 113 that meets first in the clockwise direction is in charge of the data.

具体的には、各サーバ1は、クラスタ内で共通の情報として記憶部13内に、キャッシュデータ管理情報132を備え、振り分け処理部114は、このキャッシュデータ管理情報132に基づき、そのデータを管理するキャッシュマネージャ113を決定したり、そのキャッシュマネージャ113を備えるサーバのアドレスを知ることができる。   Specifically, each server 1 includes cache data management information 132 in the storage unit 13 as common information in the cluster, and the distribution processing unit 114 manages the data based on the cache data management information 132. The cache manager 113 to be determined can be determined, and the address of the server including the cache manager 113 can be known.

図6は、本実施形態に係るキャッシュデータ管理情報132のデータ構成を示す図である。図6に示すように、キャッシュデータ管理情報132は、キャッシュマネージャ113の識別子と、その識別子をハッシュ関数にかけた値であるハッシュ値と、当該キャッシュマネージャ113が備わるサーバのアドレスとが格納される。   FIG. 6 is a diagram showing a data configuration of the cache data management information 132 according to the present embodiment. As shown in FIG. 6, the cache data management information 132 stores an identifier of the cache manager 113, a hash value that is a value obtained by multiplying the identifier by a hash function, and an address of a server provided with the cache manager 113.

例えば、図6においては、データkeyをハッシュ関数にかけた値(ハッシュ値)が、「0」から「56」であるデータについては、第1行目が示す、アドレスが「xx0」のサーバのキャッシュマネージャ113(キャッシュマネージャの識別子「p0」)が担当する。同様に、データkeyをハッシュ関数にかけた値(ハッシュ値)が、「56」に1を加えた「57」から「172」であるデータについては、第2行目が示す、アドレスが「xx1」のサーバのキャッシュマネージャ113(キャッシュマネージャの識別子「p1」)が担当する。
このようにして、このキャッシュデータ管理情報132に基づき、データとそのデータを担当するキャッシュマネージャ113とが対応付けられる。
なお、本実施形態においては、1つのサーバ1に1つのキャッシュマネージャ113が存在するとして説明するが、1つのサーバ1に複数のキャッシュマネージャ113が存在するように設定することも可能である。また、この振り分け処理部114が備える機能が、図2に示すディスパッチャDの機能に相当する。
For example, in FIG. 6, for the data whose value (hash value) obtained by applying the data key to the hash function is “0” to “56”, the cache of the server whose address is “xx0” shown in the first line The manager 113 (cache manager identifier “p0”) is in charge. Similarly, for the data in which the value obtained by applying the data key to the hash function (hash value) is “57” to “172” obtained by adding 1 to “56”, the address indicated by the second line is “xx1”. The server's cache manager 113 (cache manager identifier “p1”) is in charge.
In this way, based on the cache data management information 132, the data and the cache manager 113 in charge of the data are associated with each other.
In the present embodiment, it is assumed that one server 1 has one cache manager 113. However, it is possible to set so that a plurality of cache managers 113 exist in one server 1. Further, the function of the distribution processing unit 114 corresponds to the function of the dispatcher D shown in FIG.

図5に戻り、情報送信部115は、キャッシュマネージャ113等により生成された情報(参照要求や更新要求等のリクエストやその応答情報)を、自身以外の他のサーバ1やロードバランサBに、入出力部12を介して送信する。   Returning to FIG. 5, the information transmission unit 115 inputs information generated by the cache manager 113 or the like (requests such as reference requests and update requests and response information thereof) to other servers 1 and load balancer B other than itself. Transmit via the output unit 12.

記憶部13は、RAMや、ハードディスク、フラッシュメモリ等の記憶装置からなり、前記したキャッシュデータ管理情報132(図6)等を記憶する。また、記憶部13内には、RAM等にデータをキャッシュデータとして記憶する領域としてキャッシュデータ記憶部131(ローカルキャッシュともいう。)が備えられる。   The storage unit 13 includes a storage device such as a RAM, a hard disk, and a flash memory, and stores the cache data management information 132 (FIG. 6) and the like. Further, the storage unit 13 includes a cache data storage unit 131 (also referred to as a local cache) as an area for storing data as cache data in a RAM or the like.

<データキャッシュシステムの処理の流れ>
次に、本実施形態に係るデータキャッシュシステム100の処理の流れについて説明する。
まず、図7〜図10を参照して、サーバ1のキャッシュマネージャ113の処理について詳細に説明し、その後、図11〜図15を参照して、データキャッシュシステム100の全体の処理の流れについて説明する。
<Processing flow of data cache system>
Next, a processing flow of the data cache system 100 according to the present embodiment will be described.
First, the processing of the cache manager 113 of the server 1 will be described in detail with reference to FIGS. 7 to 10, and then the overall processing flow of the data cache system 100 will be described with reference to FIGS. 11 to 15. To do.

≪キャッシュマネージャの処理≫
[キャッシュデータの参照処理]
図7は、本実施形態に係るクライアントクラスタ20のサーバ1(1x)のキャッシュマネージャ113が、アプリケーション処理部112からデータの参照要求のリクエストを受信した場合の処理の示すフローチャートである。
≪Process of cache manager≫
[Cache data reference processing]
FIG. 7 is a flowchart showing processing when the cache manager 113 of the server 1 (1x) of the client cluster 20 according to the present embodiment receives a request for a data reference request from the application processing unit 112.

まず、キャッシュマネージャ113(識別子「p」)は、アプリケーション処理部112から、データの参照要求を受信する(ステップS100)。図7に示した、「p.get(key,cachetype)」は、キャッシュマネージャ113(キャッシュマネージャの識別子「p」)が、データの「key」(データkey)と、「cachetype」とを引数として、データの参照要求としてgetメソッドを実行することを意味する。なお、「cachetype」には、Read権限(参照権限)を要求する「Read cache」か、更新権限を要求する「Write cache」かが付される。   First, the cache manager 113 (identifier “p”) receives a data reference request from the application processing unit 112 (step S100). As shown in FIG. 7, “p.get (key, cachetype)” indicates that the cache manager 113 (cache manager identifier “p”) uses data “key” (data key) and “cachetype” as arguments. This means that the get method is executed as a data reference request. “Cachetype” is attached with “Read cache” requesting Read authority (reference authority) or “Write cache” requesting update authority.

次に、キャッシュマネージャ113は、自身のキャッシュデータ記憶部131(ローカルキャッシュ)から、key(データkey)、ここでは、例えば「A@YYY」を用いて、データの取得処理を実行する(ステップS101)。   Next, the cache manager 113 executes data acquisition processing from its own cache data storage unit 131 (local cache) using a key (data key), here, for example, “A @ YYY” (step S101). ).

ここで、キャッシュマネージャ113は、キャッシュデータ記憶部131(ローカルキャッシュ)に該当データがない、若しくは、該当データが無効化されているかを判定する(ステップS102)。そして、キャッシュマネージャ113は、該当データがない若しくは無効化に該当しない場合(ステップS102→false)、つまり、該当データが見つかった場合には、そのデータ(ここでは、「v」)を、アプリケーション処理部112に返し(ステップS103)、処理を終える。
一方、キャッシュマネージャ113は、該当データがない若しくは無効化に該当する場合には(ステップS102→true)、次のステップS104に進む。
Here, the cache manager 113 determines whether there is no corresponding data in the cache data storage unit 131 (local cache) or whether the corresponding data is invalidated (step S102). Then, if there is no corresponding data or does not correspond to invalidation (step S102 → false), that is, if the corresponding data is found, the cache manager 113 uses the data (here, “v”) as application processing. It returns to the part 112 (step S103), and a process is complete | finished.
On the other hand, if there is no corresponding data or invalidation (step S102 → true), the cache manager 113 proceeds to the next step S104.

ステップS104において、キャッシュマネージャ113は、自サーバがkey(データkey)の本来のサーバか否かを判定する。ここで、本来のサーバとは、データkey(A@YYY)のうち「YYY」で示される、クラスタの入口(外部からの送信先)となるロードバランサBのアドレスを含む原本データクラスタ10を構成するサーバ1(1y)であることを意味する。そして、キャッシュマネージャ113は、keyの本来のサーバである場合には(ステップS104→true)、データの取得が不可能であることを示す「null」を、アプリケーション処理部112に返し(ステップS105)、処理を終える。
一方、キャッシュマネージャ113は、keyの本来のサーバでない場合には(ステップS104→false)、次のステップS106に進む。
In step S104, the cache manager 113 determines whether or not the own server is the original server of the key (data key). Here, the original server constitutes the original data cluster 10 including the address of the load balancer B, which is indicated by “YYY” in the data key (A @ YYY) and becomes the entrance of the cluster (external transmission destination). Server 1 (1y). When the cache manager 113 is the original server of the key (step S104 → true), the cache manager 113 returns “null” indicating that the data cannot be acquired to the application processing unit 112 (step S105). Finish the process.
On the other hand, if the cache manager 113 is not the original server of the key (step S104 → false), the process proceeds to the next step S106.

ステップS106において、キャッシュマネージャ113は、その参照要求のcachetypeを判定する。そして、キャッシュマネージャ113は、cachetypeがRead cacheであれば、ステップS107に進み、cachetypeがWrite cacheであれば、ステップS108に進む。   In step S106, the cache manager 113 determines the cache type of the reference request. Then, the cache manager 113 proceeds to step S107 if the cachetype is Read cache, and proceeds to step S108 if the cachetype is Write cache.

ステップS107において、キャッシュマネージャ113は、keyの本来のサーバに、追加でこのサーバ1(自サーバ)がRead権限を持つようにすること(「ADD_R」メソッド)を通知する。つまり、キャッシュマネージャ113は、そのデータのメタデータのRead権限に自身のキャッシュマネージャkeyを追加で記載(Read権限を付与)した上で、そのデータを送信するように、keyの本来のサーバに依頼する。
なお、キャッシュマネージャ113は、原本データクラスタ10を構成するサーバ1(1y)に向けてこの通知をするが、宛先は、原本データクラスタ10のロードバランサBのアドレス(YYY)となる。具体的は、キャッシュマネージャ113は、sendメソッドの「v=p.send(ADD_R,key,key.location(),null)」を実行することにより、例えば、HTTPのGETメソッドによるリクエストとして、
http://YYY/A.xml?sourcecachemanager=p@XXX&cachetype=read
を実行する。
なお、このリクエストに示される、「YYY」は、原本データクラスタ10のロードバランサBのアドレス(YYY)であり、「A」は、データ識別子であり、「?」マーク以後の部分がリクエストオプションとなる。このリクエストオプションの部分に、送信元となるキャッシュマネージャ113のキャッシュマネージャkey(「sourcecachemanager=p@XXX」)や、処理内容としてRead権限を要求すること(「cachetype=read」)等が記載される。
In step S107, the cache manager 113 notifies the original server of the key that the server 1 (self server) additionally has the Read authority (“ADD_R” method). In other words, the cache manager 113 requests the original server of the key to send the data after adding the cache manager key to the read authority of the metadata of the data (giving Read authority). To do.
The cache manager 113 notifies this to the server 1 (1y) constituting the original data cluster 10, but the destination is the address (YYY) of the load balancer B of the original data cluster 10. Specifically, the cache manager 113 executes “v = p.send (ADD_R, key, key.location (), null)” of the send method, for example, as a request by the HTTP GET method,
http: //YYY/A.xml? sourcecachemanager = p @ XXX & cachetype = read
Execute.
In this request, “YYY” is the address (YYY) of the load balancer B of the original data cluster 10, “A” is the data identifier, and the part after the “?” Mark is the request option. Become. In this request option part, the cache manager key (“sourcecachemanager = p @ XXX”) of the cache manager 113 that is the transmission source, the request for read authority as the processing content (“cachetype = read”), etc. are described. .

一方、ステップS108において、キャッシュマネージャ113は、keyの本来のサーバに、このサーバ1(自サーバ)がWrite権限を持つようにすること(「ADD_W」メソッド)を通知する。つまり、キャッシュマネージャ113は、keyの本来のサーバに、そのデータのメタデータのWrite権限を自サーバに書き換えさせた上で(Write権限付きで)、そのデータを送信するように依頼する。
具体的には、キャッシュマネージャ113は、sendメソッドの「v=p.send(ADD_W,key,key.location(),null)」を実行することにより、例えば、HTTPのGETメソッドによるリクエストとして、
http://YYY/A.xml?sourcecachemanager=p@XXX&cachetype=write
を実行する。
On the other hand, in step S108, the cache manager 113 notifies the original server of key that the server 1 (self server) has the write authority (“ADD_W” method). That is, the cache manager 113 requests the original server of key to transmit the data after rewriting the write authority of the metadata of the data to the own server (with the write authority).
Specifically, the cache manager 113 executes the send method “v = p.send (ADD_W, key, key.location (), null)”, for example, as a request by an HTTP GET method,
http: //YYY/A.xml? sourcecachemanager = p @ XXX & cachetype = write
Execute.

ステップS107およびステップS108の処理を終えると、ステップS109において、キャッシュマネージャ113は、Write権限を持つサーバ1から、該当データを受信する。そして、キャッシュマネージャ113は、そのデータを、キャッシュデータ記憶部131(ローカルキャッシュ)に記憶する(「p.put_local(key,value=v)」)。   When the processing of step S107 and step S108 is completed, in step S109, the cache manager 113 receives the corresponding data from the server 1 having the write authority. Then, the cache manager 113 stores the data in the cache data storage unit 131 (local cache) (“p.put_local (key, value = v)”).

続いて、キャッシュマネージャ113は、該当データが見つかったとして、そのデータ(ここでは、「v」)を、アプリケーション処理部112に返し(ステップS110)、処理を終える。   Subsequently, assuming that the corresponding data is found, the cache manager 113 returns the data (here, “v”) to the application processing unit 112 (step S110), and ends the processing.

[キャッシュデータの更新処理]
図8および図9は、本実施形態に係るクライアントクラスタ20のサーバ1(1x)のキャッシュマネージャ113が、アプリケーション処理部112からデータ(ここではデータ「w」)の更新要求のリクエストを受信した場合の処理を示すフローチャートである。
[Cache data update processing]
8 and 9 show the case where the cache manager 113 of the server 1 (1x) of the client cluster 20 according to the present embodiment receives a request for an update request for data (here, data “w”) from the application processing unit 112. It is a flowchart which shows the process of.

まず、キャッシュマネージャ113(識別子「p」)は、アプリケーション処理部112から、データの更新要求を受信する(ステップS200)。この更新要求により、キャッシュマネージャ113は、データの「key」(データkey)と、「value」(更新後のデータ)とを引数としてputメソッドを実行する(p.put(key,value))。   First, the cache manager 113 (identifier “p”) receives a data update request from the application processing unit 112 (step S200). In response to this update request, the cache manager 113 executes the put method with the data “key” (data key) and “value” (updated data) as arguments (p.put (key, value)).

次のステップS201において、キャッシュマネージャ113は、自身のキャッシュデータ記憶部131(ローカルキャッシュ)から、key(データkey)を用いて、データの取得処理を実行する(w=p.get_local(key))。   In the next step S201, the cache manager 113 executes data acquisition processing using its key (data key) from its own cache data storage unit 131 (local cache) (w = p.get_local (key)). .

ここで、キャッシュマネージャ113は、キャッシュデータ記憶部131(ローカルキャッシュ)に該当データがない、若しくは、該当データが無効化されているかを判定する(ステップS202)。そして、キャッシュマネージャ113は、該当データがない若しくは無効化に該当しない場合(ステップS202→false)、つまり、該当データが見つかった場合には、ステップS203に進む。   Here, the cache manager 113 determines whether there is no corresponding data in the cache data storage unit 131 (local cache) or whether the corresponding data is invalidated (step S202). Then, if there is no corresponding data or does not correspond to invalidation (step S202 → false), that is, if the corresponding data is found, the cache manager 113 proceeds to step S203.

ステップS203において、キャッシュマネージャ113は、該当データに付されたメタデータからWrite権限を持つ記憶場所を取得する。なお、ここで、Write権限を持つ記憶場所とは、例えば、図11に示すメタデータ(符号1000参照)においては、<Write cache>タグのデータ「q@YYY」を意味する。つまり、ロードバランサBのアドレス「YYY」で示されるクラスタ(原本データクラスタ10)のサーバ1(1y)のうち、キャッシュマネージャの識別子が「q」のキャッシュマネージャ113がWrite権限を持つことを示している。なお、前記したように「q@YYY」は、キャッシュマネージャ113のkeyとして設定したものである。   In step S203, the cache manager 113 acquires a storage location having a write authority from the metadata attached to the corresponding data. Here, the storage location having the write authority means, for example, the data “q @ YYY” of the <Write cache> tag in the metadata (see reference numeral 1000) shown in FIG. That is, among the servers 1 (1y) of the cluster (original data cluster 10) indicated by the address “YYY” of the load balancer B, the cache manager 113 whose cache manager identifier is “q” has the write authority. Yes. As described above, “q @ YYY” is set as the key of the cache manager 113.

次に、自身がWrite権限を持つキャッシュマネージャ113か否かを判定する(ステップS204)。そして、自身がWrite権限を持つキャッシュマネージャ113であれば(ステップS204→true)、次のステップS208に進む。一方、自身がWrite権限を持つキャッシュマネージャ113でなければ(ステップS204→false)、ステップS205に進み、Write権限を持つキャッシュマネージャ113に更新を依頼する(p.send(PUT,key,q,value))。   Next, it is determined whether or not the cache manager 113 has write authority (step S204). If the cache manager 113 itself has the Write authority (step S204 → true), the process proceeds to the next step S208. On the other hand, if it is not the cache manager 113 with write authority (step S204 → false), the process proceeds to step S205, and the cache manager 113 with write authority is requested to update (p.send (PUT, key, q, value )).

一方、ステップS202において、キャッシュデータ記憶部131(ローカルキャッシュ)において該当データが見つからなかった場合は(ステップS202→true)、自サーバがkey(データkey)の本来のサーバか否かを判定する(ステップS206)。そして、キャッシュマネージャ113は、keyの本来のサーバでなければ(ステップS206→false)、ステップS207において、keyの本来のサーバに、更新を依頼する(p.send(PUT,key,key.location(),value))。なお、キャッシュマネージャ113は、原本データクラスタ10を構成するサーバ1(1y)に向けてこの依頼をするが、宛先は、原本データクラスタ10のロードバランサBのアドレス(YYY)となる。
一方、キャッシュマネージャ113は、keyの本来のサーバであれば(ステップS206→true)、ステップS208に進む。
On the other hand, if the corresponding data is not found in the cache data storage unit 131 (local cache) in step S202 (step S202 → true), it is determined whether or not the own server is the original server of the key (data key) ( Step S206). If the cache manager 113 is not the original server of the key (step S206 → false), in step S207, the cache manager 113 requests the original server of the key to update (p.send (PUT, key, key.location ( ), value)). The cache manager 113 makes this request to the server 1 (1y) constituting the original data cluster 10, but the destination is the address (YYY) of the load balancer B of the original data cluster 10.
On the other hand, if the cache manager 113 is the original server of the key (step S206 → true), the process proceeds to step S208.

ステップS208において、キャッシュマネージャ113は、自身のキャッシュデータ記憶部131(ローカルキャッシュ)に記憶されているデータ(キャッシュデータ)を更新する(p.put_local(key,value))。なお、このとき、キャッシュマネージャ113は、そのデータのメタデータについても変更が必要な場合は更新する。   In step S208, the cache manager 113 updates the data (cache data) stored in its own cache data storage unit 131 (local cache) (p.put_local (key, value)). At this time, the cache manager 113 also updates the metadata of the data if necessary.

次に、図9に進む。図9では、図8のステップS208において、データが更新されたため、キャッシュマネージャ113は、他のキャッシュマネージャ113が記憶する更新前のデータを無効化する処理と、更新後のデータについてRead権限およびWrite権限を持つ他のキャッシュマネージャ113に更新データを送信する処理とを実行する。   Next, the process proceeds to FIG. In FIG. 9, since the data has been updated in step S <b> 208 of FIG. 8, the cache manager 113 invalidates the data before update stored in the other cache manager 113, and Read authority and Write for the updated data. A process of transmitting update data to another authorized cache manager 113 is executed.

まず、ステップS209において、キャッシュマネージャ113は、当該データの更新前のメタデータからRead権限を持つキャッシュマネージャ113をすべて取得し、リストを生成する。   First, in step S209, the cache manager 113 acquires all the cache managers 113 having the Read authority from the metadata before updating the data, and generates a list.

続いて、キャッシュマネージャ113は、更新前のデータを無効化するための設定を行う(ステップS210)、つまり、無効通知の生成を行う。   Subsequently, the cache manager 113 performs settings for invalidating the data before update (step S210), that is, generates an invalid notice.

そして、キャッシュマネージャ113は、ステップS209で生成したリストのすべてのキャッシュマネージャ113を処理したか否かを判定する(ステップS211)。ここで、Read権限を持つすべてのキャッシュマネージャ113の処理を終えていない場合には(ステップS211→false)、次のステップS212に進む。   Then, the cache manager 113 determines whether or not all the cache managers 113 in the list generated in step S209 have been processed (step S211). If all the cache managers 113 having the Read authority have not been processed (step S211 → false), the process proceeds to the next step S212.

キャッシュマネージャ113は、リストのi番目(初期値i=1)のキャッシュマネージャ113の記憶場所r(メタデータの<Read cache>タグのデータ)を設定し(ステップS212)、ステップS213において、そのキャッシュマネージャ113に無効通知を送信する(p.send(PUT_L,key,r,w))。そして、キャッシュマネージャ113は、ステップS214において、[i]に1を加えて、ステップS211に戻る。   The cache manager 113 sets the storage location r (data of <Read cache> tag of metadata) of the i-th (initial value i = 1) cache manager 113 in the list (step S212), and the cache manager 113 sets the cache location in step S213. An invalid notification is transmitted to the manager 113 (p.send (PUT_L, key, r, w)). In step S214, the cache manager 113 adds 1 to [i] and returns to step S211.

キャッシュマネージャ113は、Read権限を持つすべてのキャッシュマネージャ113の処理を終えた場合は(ステップS211→true)、ステップS215に進み、更新後のメタデータからRead権限およびWrite権限を持つキャッシュマネージャ113をすべて取得し、リストを生成する。   When the cache manager 113 completes the processing of all the cache managers 113 having the Read authority (Step S211 → true), the process proceeds to Step S215, and the cache manager 113 having the Read authority and the Write authority is updated from the updated metadata. Get all and generate a list.

次に、キャッシュマネージャ113は、ステップS215で生成したリストのすべてのキャッシュマネージャ113を処理したか否かを判定し(ステップS216)、すべてのキャッシュマネージャ113の処理を終えていない場合には(ステップS216→false)、次のステップS217に進む。   Next, the cache manager 113 determines whether or not all the cache managers 113 in the list generated in step S215 have been processed (step S216), and if all the cache managers 113 have not been processed (step S216). S216 → false), the process proceeds to the next step S217.

キャッシュマネージャ113は、リストのi番目(初期値i=1)のキャッシュマネージャ113の記憶場所r(メタデータの<Read cache>タグと<Write cache>タグのデータ)を設定し(ステップS217)、ステップS218において、そのキャッシュマネージャ113に更新内容であるデータ(更新データ)を送信する(p.send(PUT_L,key,r,value))。そして、キャッシュマネージャ113は、ステップS219において、[i]に1を加えて、ステップS216に戻る。   The cache manager 113 sets a storage location r (data of <Read cache> tag and <Write cache> tag of metadata) of the i-th (initial value i = 1) cache manager 113 in the list (step S217). In step S218, data (update data) as update contents is transmitted to the cache manager 113 (p.send (PUT_L, key, r, value)). In step S219, the cache manager 113 adds 1 to [i] and returns to step S216.

ステップS216において、ステップS215で生成したリストのすべてのキャッシュマネージャ113の処理を終えた場合には(ステップS216→true)、処理を終える。   In step S216, if all the cache managers 113 in the list generated in step S215 have been processed (step S216 → true), the process ends.

[キャッシュマネージャの受信メソッドの処理]
次に、あるサーバ1のキャッシュマネージャ113が、他のキャッシュマネージャ113が実行した送信(send)メソッドによる情報を受け取り、受信(receive)メソッドを実行する処理について説明する。
図10は、本実施形態に係るキャッシュマネージャ113が、受信メソッドを実行する処理の流れを示すフローチャートである。
[Cache Manager receive method processing]
Next, a process in which a cache manager 113 of a server 1 receives information by a send method executed by another cache manager 113 and executes a receive method will be described.
FIG. 10 is a flowchart showing a flow of processing in which the cache manager 113 according to the present embodiment executes the reception method.

まず、サーバ1のキャッシュマネージャ113は、ステップS300において、情報受信部111を介して、他のキャッシュマネージャ113が送信(send)メソッドを実行することにより送信された情報を受け取り、受信(receive)メソッドを実行する(p.receive(method,key,from,value))。   First, in step S300, the cache manager 113 of the server 1 receives the information transmitted when the other cache manager 113 executes the send method via the information receiving unit 111, and receives the receive method. Is executed (p.receive (method, key, from, value)).

次に、キャッシュマネージャ113は、受信した情報のメソッド(method)を判定する(ステップS301)。そして、キャッシュマネージャ113は、受信した情報のメソッドが、「PUT」であればステップS302に進み、「PUT_L」であればステップS303に進み、「ADD_R」(Read権限の追加)または「ADD_W」(Write権限の移行)であれば、ステップS304に進む。   Next, the cache manager 113 determines a method of the received information (step S301). If the method of the received information is “PUT”, the cache manager 113 proceeds to step S302, and if it is “PUT_L”, the process proceeds to step S303, where “ADD_R” (adding Read authority) or “ADD_W” ( If the write authority is transferred), the process proceeds to step S304.

ステップS302において、キャッシュマネージャ113は、メソッド(method)が「PUT」であるとして、データの更新要求を受信したと判定し、図8および図9に示した、キャッシュデータの更新処理を実行する(p.put(key,value))。   In step S302, the cache manager 113 determines that the data update request has been received, assuming that the method is “PUT”, and executes the cache data update process shown in FIGS. p.put (key, value)).

ステップS303において、キャッシュマネージャ113は、メソッド(method)が、「PUT_L」であるとして、自身のキャッシュデータ記憶部131(ローカルキャッシュ)に、記憶されているデータ(キャッシュデータ)を更新する(p.put_local(key,value))。   In step S303, the cache manager 113 assumes that the method is “PUT_L” and updates the data (cache data) stored in its own cache data storage unit 131 (local cache) (p. 30). put_local (key, value)).

また、ステップS304において、メソッド(method)が「ADD_R」または「ADD_W」である場合、まず、キャッシュマネージャ113は、自身のキャッシュデータ記憶部131(ローカルキャッシュ)から該当データの取得処理を実行する(w=p.get_local(key))。   In step S304, when the method is “ADD_R” or “ADD_W”, first, the cache manager 113 executes acquisition processing of the corresponding data from its own cache data storage unit 131 (local cache) ( w = p.get_local (key)).

次に、キャッシュマネージャ113は、ステップS305において、該当データに付されたメタデータからWrite権限を持つ記憶場所(メタデータの<Write cache>タグのデータ)を取得する(q=w.get_metadata(write_cache))。   Next, in step S305, the cache manager 113 acquires a storage location (data of <Write cache> tag of metadata) having the write authority from the metadata attached to the corresponding data (q = w.get_metadata (write_cache) )).

続いて、キャッシュマネージャ113は、再び、受信した情報のメソッド(method)を判定する(ステップS306)。そして、キャッシュマネージャ113は、メソッド(method)が、「ADD_R」であればステップS307に進み、「ADD_W」であればステップS308に進む。   Subsequently, the cache manager 113 determines again the method of the received information (step S306). The cache manager 113 proceeds to step S307 if the method is “ADD_R”, and proceeds to step S308 if the method is “ADD_W”.

ステップS307において、キャッシュマネージャ113は、そのデータのメタデータに、Read権限を設定した情報を生成する(w.set_metadata(read_cache,from))。   In step S307, the cache manager 113 generates information in which Read authority is set in the metadata of the data (w.set_metadata (read_cache, from)).

また、ステップS308において、キャッシュマネージャ113は、そのデータのメタデータに、Write権限を設定した情報を生成する(w.set_matadata(write_cache,from))。   In step S308, the cache manager 113 generates information in which write authority is set in the metadata of the data (w.set_matadata (write_cache, from)).

ステップS307およびステップS308に続いて、キャッシュマネージャ113は、自身がWrite権限を持つキャッシュマネージャ113か否かを判定する(ステップS309)。
そして、自身がWrite権限を持つキャッシュマネージャ113でなければ(ステップS309→false)、ステップS310において、キャッシュマネージャ113は、Write権限を持つキャッシュマネージャ113に更新を依頼する(p.send(PUT,key,q,w))。
一方、自身がWrite権限を持つキャッシュマネージャ113であれば(ステップS309→true)、ステップS311において、キャッシュマネージャ113は、自身のキャッシュデータ記憶部131(ローカルキャッシュ)に記憶されているデータ(キャッシュデータ)を更新する(p.put_local(key,value))。
Subsequent to step S307 and step S308, the cache manager 113 determines whether or not the cache manager 113 itself has the write authority (step S309).
If the cache manager 113 itself is not the write authority (step S309 → false), in step S310, the cache manager 113 requests the cache manager 113 having the write authority to update (p.send (PUT, key , q, w)).
On the other hand, if the cache manager 113 has write authority (step S309 → true), in step S311, the cache manager 113 stores data (cache data) stored in its own cache data storage unit 131 (local cache). ) Is updated (p.put_local (key, value)).

そして、ステップS310およびS311の処理を終了すると、キャッシュマネージャ113は、送信(send)メソッドを送信してきたキャッシュマネージャ113に、データ「w」を送信して返す(ステップS312)。   When the processes of steps S310 and S311 are completed, the cache manager 113 transmits data “w” to the cache manager 113 that has transmitted the send method (step S312).

≪データキャッシュシステム100の全体の処理の流れ≫
次に、本実施形態に係るデータキャッシュシステム100の全体(クライアントクラスタ20と原本データクラスタ10との間)での、キャッシュデータの参照処理および更新処理の流れについて、図11〜図15を参照して説明する。
<< Overall Processing Flow of Data Cache System 100 >>
Next, the flow of the cache data reference processing and update processing in the entire data cache system 100 (between the client cluster 20 and the original data cluster 10) according to the present embodiment will be described with reference to FIGS. I will explain.

[キャッシュデータの参照処理]
図11は、クライアントクラスタ20を構成するサーバ1(1x)のキャッシュマネージャ113が、リクエストの該当データを記憶していない状態で参照要求を受信した場合に、Read権限付きでデータを取得する例を示している。
[Cache data reference processing]
FIG. 11 shows an example in which the cache manager 113 of the server 1 (1x) constituting the client cluster 20 acquires data with a Read right when receiving a reference request without storing the corresponding data of the request. Show.

まず、クライアントクラスタ20のキャッシュマネージャ113(識別子「p1」)が、アプリケーション処理部112から、参照要求を受信する(ステップS30)。なお、この参照要求には、参照を要求するデータのkey(データkey)として「A@YYY」が付されているものとする。   First, the cache manager 113 (identifier “p1”) of the client cluster 20 receives a reference request from the application processing unit 112 (step S30). It is assumed that “A @ YYY” is attached to the reference request as a key (data key) of data requesting reference.

参照要求を受信したキャッシュマネージャ113は、ステップS31において、自身のキャッシュデータ記憶部131(ローカルキャッシュ)を探索し、該当データを記憶していないことから、送信(send)メソッドを実行して(p1.send(ADD_R,A@YYY,YYY,null))、データの取得要求を原本データクラスタ10に送信する。例えば、キャッシュマネージャ113は、HTTPのGETメソッドを実行し、リクエストオプションを設定してデータの取得要求を送信する(http://YYY/A.xml?sourcecachemanager=p1@XXX&cachetype=read)。
これにより、当該キャッシュマネージャ113は、原本データクラスタ10の入口となるロードバランサB(IP:YYY)宛てにリクエストを送信し、ロードバランサBが、任意のサーバ1(1y)に振り分ける。そして、その振り分けられたサーバ1(1y)の振り分け処理部114が、データkey(A@YYY)に基づき、当該データを原本データとして記憶する担当を、キャッシュデータ管理情報132を参照して検出し、当該リクエストをそのデータの担当となるサーバ1(1y)(ここでは、識別子「q」のキャッシュマネージャ113とする。)に送信する。
In step S31, the cache manager 113 that has received the reference request searches its own cache data storage unit 131 (local cache), and does not store the corresponding data. Therefore, the cache manager 113 executes the send method (p1). .send (ADD_R, A @ YYY, YYY, null)), a data acquisition request is transmitted to the original data cluster 10. For example, the cache manager 113 executes an HTTP GET method, sets a request option, and transmits a data acquisition request (http: //YYY/A.xml? Sourcecachemanager = p1 @ XXX & cachetype = read).
As a result, the cache manager 113 transmits a request to the load balancer B (IP: YYY) serving as the entrance of the original data cluster 10, and the load balancer B distributes the request to an arbitrary server 1 (1y). Then, based on the data key (A @ YYY), the distribution processing unit 114 of the distributed server 1 (1y) detects the responsibility for storing the data as original data with reference to the cache data management information 132. The request is transmitted to the server 1 (1y) in charge of the data (here, the cache manager 113 with the identifier “q”).

上記の処理により、原本データの担当であるキャッシュマネージャ113(識別子「q」)は、リクエストを受信すると(ステップS32)、受信(receive)メソッドを実行する(q.receive(ADD_R,A@YYY,p1@XXX,null))。
そして、原本データの担当であるキャッシュマネージャ113(識別子「q」)は、Write権限を持つ場合に、ステップS33において、そのデータのメタデータのRead権限(<read cache>タグ)に、「p1@XXX」を追記して(図11の符号1000参照)、当該データを含むファイルαを、クライアントクラスタ20に送信する。ここで、キャッシュマネージャ113は、例えば、HTTPのPUTメソッドを実行し、当該データを送信する(http://XXX/A.xml?destinationcachemanager=p1@XXX&sourcecachemanager=q@YYY)。
なお、図11の符号1000の<read cache>タグの記載において、<read cache>p1@XXX</read cache>とすべき終了タグの記載を、</>として省略して記載する。同様に、図11の<write cache>の終了タグ、さらに、図12〜図15においても、同様に終了タグを</>として省略して記載する。
上記の処理により、当該キャッシュマネージャ113は、クライアントクラスタ20の入口となるロードバランサB(IP:XXX)宛てにリクエストを送信し、ロードバランサBが、任意のサーバ1(1x)に振り分ける。そして、その振り分けられたサーバ1(1x)の振り分け処理部114が、宛先としてキャッシュマネージャ113(キャッシュマネージャ識別子「p1」を抽出し、キャッシュデータ管理情報132を参照して、当該リクエストをそのデータの担当となるサーバ1(1x)(識別子「p1」のキャッシュマネージャ113)に送信する。
Through the above processing, the cache manager 113 (identifier “q”) in charge of the original data receives the request (step S32), and executes the receive method (q.receive (ADD_R, A @ YYY, p1 @ XXX, null)).
Then, if the cache manager 113 (identifier “q”) in charge of the original data has the write authority, in step S33, the read authority (<read cache> tag) of the metadata of the data is set to “p1 @ “XXX” is added (see reference numeral 1000 in FIG. 11), and the file α including the data is transmitted to the client cluster 20. Here, for example, the cache manager 113 executes the HTTP PUT method and transmits the data (http: //XXX/A.xml? Destinationcachemanager = p1 @ XXX & sourcecachemanager = q @ YYY).
Note that in the description of the <read cache> tag denoted by reference numeral 1000 in FIG. 11, the description of the end tag that should be <read cache> p1 @ XXX </ read cache> is omitted as </>. Similarly, the end tag of <write cache> in FIG. 11, and also in FIGS. 12 to 15, the end tag is similarly omitted as </>.
By the above processing, the cache manager 113 transmits a request to the load balancer B (IP: XXX) serving as the entrance of the client cluster 20, and the load balancer B distributes the request to an arbitrary server 1 (1x). Then, the distribution processing unit 114 of the distributed server 1 (1x) extracts the cache manager 113 (cache manager identifier “p1”) as the destination, refers to the cache data management information 132, and sends the request to the data The data is transmitted to the server 1 (1x) in charge (the cache manager 113 with the identifier “p1”).

なお、原本データの担当であるキャッシュマネージャ113(識別子「q」)がWrite権限を持たなかった場合は、当該キャッシュマネージャ113は、そのデータのメタデータを参照し、Write権限(<write cache>タグ)に記載されたキャッシュマネージャ113宛てに、さらにその取得要求のリクエストを送信する。   If the cache manager 113 (identifier “q”) that is in charge of the original data does not have the write authority, the cache manager 113 refers to the metadata of the data and writes the write authority (<write cache> tag). The request for the acquisition request is further transmitted to the cache manager 113 described in FIG.

上記の処理により、データを受信したクライアントクラスタ20のキャッシュマネージャ113(識別子「p1」)は、そのデータを、自身のキャッシュデータ記憶部131(ローカルキャッシュ)に記憶し(ステップS34)、当該データを、アプリケーション処理部112に返す。   As a result of the above processing, the cache manager 113 (identifier “p1”) of the client cluster 20 that has received the data stores the data in its own cache data storage unit 131 (local cache) (step S34). Return to the application processing unit 112.

このようにすることで、クライアントクラスタ20を構成するサーバ1(1x)のキャッシュマネージャ113が、リクエストの該当データを記憶していない状態で参照要求を受信した場合に、Read権限付きでデータを取得することができる。   In this way, when the cache manager 113 of the server 1 (1x) constituting the client cluster 20 receives the reference request without storing the corresponding data of the request, the data is acquired with the Read authority. can do.

[キャッシュデータの参照処理(Write権限付き)]
図12は、クライアントクラスタ20を構成するサーバ1(1x)のキャッシュマネージャ113が、リクエストの該当データを記憶していない状態で参照要求を受信した場合に、Write権限付きでデータを取得する例を示している。
[Cache data reference processing (with Write permission)]
FIG. 12 shows an example in which the cache manager 113 of the server 1 (1x) constituting the client cluster 20 acquires data with a write authority when receiving a reference request in a state where the corresponding data of the request is not stored. Show.

まず、クライアントクラスタ20のキャッシュマネージャ113(識別子「p1」)が、アプリケーション処理部112から、Write権限を含む参照要求を受信する(ステップS40)。なお、この参照要求には、参照を要求するデータのkey(データkey)として「A@YYY」が付されているものとする。   First, the cache manager 113 (identifier “p1”) of the client cluster 20 receives a reference request including the write authority from the application processing unit 112 (step S40). It is assumed that “A @ YYY” is attached to the reference request as a key (data key) of data requesting reference.

Write権限を含む参照要求を受信したキャッシュマネージャ113は、ステップS41において、自身のキャッシュデータ記憶部131(ローカルキャッシュ)を探索し、該当データを記憶していないことから、送信(send)メソッドを実行し(p1.send(ADD_W,A@YYY,YYY,null))、データの取得要求を原本データクラスタ10に送信する(http://YYY/A.xml?sourcecachemanager=p1@XXX&cachetype=write)。   In step S41, the cache manager 113 that has received the reference request including the write authority searches its own cache data storage unit 131 (local cache), and executes the send method because the corresponding data is not stored. (P1.send (ADD_W, A @ YYY, YYY, null)), and sends a data acquisition request to the original data cluster 10 (http: //YYY/A.xml? Sourcecachemanager = p1 @ XXX & cachetype = write).

原本データクラスタ10のロードバランサB(IP:YYY)を介して、任意のサーバ1(1y)の振り分け処理部114の処理により特定された、原本データの担当であるキャッシュマネージャ113(識別子「q」)は、リクエストを受信すると(ステップS42)、受信(receive)メソッドを実行する(q.receive(ADD_W,A@YYY,p1@XXX,null))。   The cache manager 113 (identifier “q”) in charge of the original data identified by the processing of the distribution processing unit 114 of the arbitrary server 1 (1y) via the load balancer B (IP: YYY) of the original data cluster 10 ) Receives a request (step S42), executes a receive method (q.receive (ADD_W, A @ YYY, p1 @ XXX, null)).

次に、Write権限を持つこのキャッシュマネージャ113(識別子「q」)は、ステップS43において、そのデータのメタデータのWrite権限(<write cache>タグ)に、「p1@XXX」を記載し、Read権限(<read cache>タグ)に原本データの担当として、自身のキャッシュマネージャkeyである「q@YYY」を追記する(図12の符号1001参照)。これは、原本データを管理するキャッシュマネージャ113は、Write権限を移行した場合であっても、Read権限は残ることによる。そして、キャッシュマネージャ113は、当該データを含むファイルαを、クライアントクラスタ20に送信する(http://XXX/A.xml?destinationcachemanager=p1@XXX&sourcecachemanager=q@YYY)。   Next, this cache manager 113 (identifier “q”) having the write authority writes “p1 @ XXX” in the write authority (<write cache> tag) of the metadata of the data in step S43, and reads “Q @ YYY”, which is its own cache manager key, is added to the authority (<read cache> tag) as the charge of the original data (see reference numeral 1001 in FIG. 12). This is because the cache manager 113 that manages the original data retains the Read authority even when the Write authority is transferred. Then, the cache manager 113 transmits the file α including the data to the client cluster 20 (http: //XXX/A.xml? Destinationcachemanager = p1 @ XXX & sourcecachemanager = q @ YYY).

クライアントクラスタ20のロードバランサB(IP:XXX)を介して、任意のサーバ1(1x)から、Write権限付きのデータを受信したキャッシュマネージャ113(識別子「p1」)は、そのデータを、自身のキャッシュデータ記憶部131(ローカルキャッシュ)に記憶し(ステップS44)、当該データを、アプリケーション処理部112に返す。   The cache manager 113 (identifier “p1”) that has received data with write authority from any server 1 (1x) via the load balancer B (IP: XXX) of the client cluster 20 sends the data to its own The data is stored in the cache data storage unit 131 (local cache) (step S44), and the data is returned to the application processing unit 112.

このようにすることで、クライアントクラスタ20を構成するサーバ1(1x)のキャッシュマネージャ113が、リクエストの該当データを記憶していない状態で参照要求を受信した場合に、Write権限付きでデータを取得することができる。
なお、クライアントクラスタ20側のキャッシュマネージャ113がWrite権限を持ち自身でキャッシュデータを更新可能とすることで、頻繁に書き換えられるデータに対するキャッシュヒット効果を高めることができる。
In this way, when the cache manager 113 of the server 1 (1x) constituting the client cluster 20 receives the reference request without storing the corresponding data of the request, the data is acquired with the Write authority. can do.
In addition, since the cache manager 113 on the client cluster 20 side has the write authority and can update the cache data by itself, the cache hit effect on the frequently rewritten data can be enhanced.

[キャッシュデータの更新処理]
図13は、クライアントクラスタ20のキャッシュマネージャ113(識別子「p2」)がデータ(データkey「A@YYY」)のWrite権限を持つ状態で、更新要求を受信した場合に、キャッシュマネージャ113(識別子「p2」)自身が、このデータを更新する例を示している。
[Cache data update processing]
FIG. 13 shows the cache manager 113 (identifier “p2”) when the cache manager 113 (identifier “p2”) has a write authority for data (data key “A @ YYY”) and receives an update request. p2 ") itself shows an example of updating this data.

まず、クライアントクラスタ20のキャッシュマネージャ113(識別子「p2」)が、アプリケーション処理部112から、データの更新要求を受信する(ステップS50)。なお、この更新要求には、更新を要求するデータのkey(データkey)として「A@YYY」が付されているものとする。   First, the cache manager 113 (identifier “p2”) of the client cluster 20 receives a data update request from the application processing unit 112 (step S50). It is assumed that “A @ YYY” is attached to the update request as a key (data key) of data requesting update.

キャッシュマネージャ113(識別子「p2」)は、自身のキャッシュデータ記憶部131(ローカルキャッシュ)を探索し、該当データが存在しており、そのデータのメタデータを参照することにより、自身がWrite権限を持つことを確認し、そのデータを更新する(ステップS51)。   The cache manager 113 (identifier “p2”) searches its own cache data storage unit 131 (local cache), the corresponding data exists, and by referring to the metadata of the data, the cache manager 113 (identifier “p2”) The data is confirmed and the data is updated (step S51).

ここで、キャッシュマネージャ113(識別子「p2」)は、更新前のメタデータのRead権限を参照し、更新前のRead権限を持つキャッシュマネージャ113に対し、無効通知を送信する(ステップS52)。ここでは、符号1002に示すように、更新前のRead権限を、クライアントクラスタ20のキャッシュマネージャ113(識別子「p1」と、原本データクラスタ10のキャッシュマネージャ113(識別子「q」)とが持つので、この2つのキャッシュマネージャ113に対して、データ(「α」)の無効通知を送信する。例えば、原本データクラスタ10のキャッシュマネージャ113(識別子「q」)に向けて、「http://YYY/A.xml?destinationcachemanager=q@YYY&sourcecachemanager=p2@XXX&invalidate=true」が送信される。   Here, the cache manager 113 (identifier “p2”) refers to the read authority of the metadata before update, and transmits an invalid notice to the cache manager 113 having the read authority before update (step S52). Here, as indicated by reference numeral 1002, since the cache manager 113 of the client cluster 20 (identifier “p1” and the cache manager 113 of the original data cluster 10 (identifier “q”) has the read authority before the update, An invalid notification of data (“α”) is transmitted to the two cache managers 113. For example, for the cache manager 113 (identifier “q”) of the original data cluster 10, “http: // YYY / A.xml? Destinationcachemanager = q @ YYY & sourcecachemanager = p2 @ XXX & invalidate = true ”is sent.

続いて、キャッシュマネージャ113(識別子「p2」)は、更新後のメタデータのRead権限を参照し、更新後のRead権限を持つキャッシュマネージャ113に対し、更新データを送信する(ステップS53)。ここでは、符号1003に示すように、更新後のRead権限を、原本データクラスタ10のキャッシュマネージャ113(識別子「q」)が持つので、このキャッシュマネージャ113に対して、更新データを送信する。なお、クライアントクラスタ20のキャッシュマネージャ113(識別子「p1」)は、更新後のメタデータにおいて、Read権限を持たないため、更新データは送信されない。   Subsequently, the cache manager 113 (identifier “p2”) refers to the read authority of the updated metadata, and transmits the update data to the cache manager 113 having the updated read authority (step S53). Here, as indicated by reference numeral 1003, since the cache manager 113 (identifier “q”) of the original data cluster 10 has the updated Read authority, the update data is transmitted to the cache manager 113. Note that the cache manager 113 (identifier “p1”) of the client cluster 20 does not have the Read authority in the updated metadata, and therefore the update data is not transmitted.

原本データクラスタ10のロードバランサB(IP:YYY)を介して、任意のサーバ1(1y)から、更新データを受信したキャッシュマネージャ(識別子「q」)は、自身のキャッシュデータ記憶部131(ローカルキャッシュ)に更新データ(「α’」)を記憶することにより、データを更新する(ステップS54)。   The cache manager (identifier “q”) that has received the update data from any server 1 (1y) via the load balancer B (IP: YYY) of the original data cluster 10 has its own cache data storage unit 131 (local The update data (“α ′”) is stored in the cache, thereby updating the data (step S54).

このようにすることにより、クライアントクラスタ20のキャッシュマネージャ113がデータのWrite権限を持つ状態で、更新要求を受信した場合に、そのキャッシュマネージャ113自身が、データを更新することができる。また、更新前のデータを記憶する他のキャッシュマネージャ113に対して無効通知を送信し、更新後のデータを、更新後のメタデータに基づき他のキャッシュマネージャ113に送信することで、クラスタ内のキャッシュデータのコヒーレンスを保つことができる。   In this way, when the cache manager 113 of the client cluster 20 has an authority to write data and receives an update request, the cache manager 113 itself can update the data. In addition, an invalidity notification is transmitted to the other cache manager 113 that stores the data before update, and the updated data is transmitted to the other cache manager 113 based on the updated metadata. Cache data coherence can be maintained.

[キャッシュデータの更新依頼]
図14は、Write権限を持たないキャッシュマネージャ113において、データを更新したい場合に、Write権限を持つキャッシュマネージャ113に更新を依頼する例を示している。
[Cache data update request]
FIG. 14 shows an example in which when the cache manager 113 having no write authority wants to update data, the cache manager 113 having the write authority is requested to update.

まず、クライアントクラスタ20のキャッシュマネージャ113(識別子「p1」)が、アプリケーション処理部112から、データの更新要求を受信する(ステップS60)。なお、この更新要求には、更新を要求するデータのkey(データkey)として「A@YYY」が付されているものとする。   First, the cache manager 113 (identifier “p1”) of the client cluster 20 receives a data update request from the application processing unit 112 (step S60). It is assumed that “A @ YYY” is attached to the update request as a key (data key) of data requesting update.

ここで、キャッシュマネージャ113(識別子「p1」)は、ステップS61において、自身のキャッシュデータ記憶部131(ローカルキャッシュ)を探索し、該当データを記憶していないことから、送信(send)メソッドを実行し(p1.send(PUT,A@YYY,YYY,α'))、データの更新依頼を原本データクラスタ10のロードバランサB(IP:YYY)に送信する(http://YYY/A.xml?sourcecachemanager=p1@XXX)。   Here, in step S61, the cache manager 113 (identifier “p1”) searches its own cache data storage unit 131 (local cache) and does not store the corresponding data, and executes the send method. (P1.send (PUT, A @ YYY, YYY, α ')) and a data update request is transmitted to the load balancer B (IP: YYY) of the original data cluster 10 (http: //YYY/A.xml ? sourcecachemanager = p1 @ XXX).

原本データクラスタ10のロードバランサB(IP:YYY)を介して、任意のサーバ1(1y)の振り分け処理部114の処理により特定された、原本データの担当であるキャッシュマネージャ113(識別子「q」)は、ステップS62において、データの更新依頼を受信し、自身にWrite権限がある場合に、受信(receive)メソッドを実行することにより(q.receive(PUT,A@YYY,p1@XXX,α'))、データを更新する。
なお、ここで、原本データの担当であるキャッシュマネージャ113(識別子「q」)にWrite権限がなかった場合は、当該キャッシュマネージャ113は、そのデータのメタデータを参照し、Write権限(<write cache>タグ)に記載されたキャッシュマネージャ113宛てに、さらに更新依頼を送信する。
The cache manager 113 (identifier “q”) in charge of the original data identified by the processing of the distribution processing unit 114 of the arbitrary server 1 (1y) via the load balancer B (IP: YYY) of the original data cluster 10 ) Receives a data update request in step S62 and executes a receive method (q.receive (PUT, A @ YYY, p1 @ XXX, α ')), Update the data.
Here, if the cache manager 113 (identifier “q”) that is responsible for the original data does not have the write authority, the cache manager 113 refers to the metadata of the data and writes the write authority (<write cache Further, an update request is transmitted to the cache manager 113 described in <Tag>.

Write権限を持つキャッシュマネージャ113(識別子「q」)は、当該データのメタデータのRead権限(<read cache>タグ)にキャッシュマネージャ(識別子「p1」)を追加し(符号1004参照)、Read権限付きで、更新データを、クライアントクラスタ20のキャッシュマネージャ113(識別子「p1」)に送信する(ステップS63)。なお、このとき、当該データのメタデータのRead権限(<read cache>タグ)に他のキャッシュマネージャ113が登録されていた場合は、そのキャッシュマネージャに対しても、更新データが同時に送信される。   The cache manager 113 (identifier “q”) having the write authority adds the cache manager (identifier “p1”) to the read authority (<read cache> tag) of the metadata of the data (see reference numeral 1004), and reads the authority. Then, the update data is transmitted to the cache manager 113 (identifier “p1”) of the client cluster 20 (step S63). At this time, if another cache manager 113 is registered in the read authority (<read cache> tag) of the metadata of the data, the update data is also transmitted to the cache manager at the same time.

クライアントクラスタ20のロードバランサB(IP:XXX)を介して、任意のサーバ1(1x)から、更新データを受信したキャッシュマネージャ113(キャッシュマネージャの識別子「p1」)は、そのデータを、自身のキャッシュデータ記憶部131(ローカルキャッシュ)に記憶する(ステップS64)。   The cache manager 113 (cache manager identifier “p1”) that has received the update data from any server 1 (1x) via the load balancer B (IP: XXX) of the client cluster 20 sends the data to its own The data is stored in the cache data storage unit 131 (local cache) (step S64).

このようにすることで、Write権限を持たないキャッシュマネージャ113において、データを更新したい場合に、Write権限を持つキャッシュマネージャ113に更新を依頼し、データを更新してもらった上で、自身がRead権限を持つことができる。   By doing so, when the cache manager 113 without the write authority wants to update the data, the cache manager 113 with the write authority is requested to update the data, and after the data is updated, the cache manager 113 itself reads. Can have authority.

[クラスタのIPアドレスのみでの更新通知]
図15は、メタデータのRead権限(<read cache>タグ)において、キャッシュマネージャ113の識別子を省略し、クラスタのアドレス(実際は、クラスタの入口となるロードバランサBのアドレス)のみが記述されていた場合の更新通知の流れを示している。
[Update notification only with the cluster IP address]
FIG. 15 omits the identifier of the cache manager 113 and reads only the cluster address (actually, the address of the load balancer B that is the entrance of the cluster) in the metadata read authority (<read cache> tag). Shows the flow of update notification.

ここでは、原本データクラスタ10のWrite権限を持つキャッシュマネージャ113(識別子「q」)でデータが更新され(ステップS70)、メタデータのRead権限(<readcache>タグ)に、クライアントクラスタ20のロードバランサBのIPアドレス(XXX)だけが記述される(符号1005参照)。この場合、Write権限を持つキャッシュマネージャ113(識別子「q」)は、ステップS71において、クライアントクラスタ20のすべてのキャッシュマネージャ113に向けて、更新通知を送信する(http://XXX/A.xml?destinationcachemanager=p*@XXX&sourcecachemanager=q@YYY)。   Here, the data is updated by the cache manager 113 (identifier “q”) having the write authority of the original data cluster 10 (step S70), and the load balancer of the client cluster 20 is added to the metadata read authority (<readcache> tag). Only the IP address (XXX) of B is described (see reference numeral 1005). In this case, the cache manager 113 (identifier “q”) having the write authority transmits an update notification to all the cache managers 113 of the client cluster 20 in step S71 (http: //XXX/A.xml). ? destinationcachemanager = p * @ XXX & sourcecachemanager = q @ YYY).

更新通知を受信したクライアントクラスタ20のロードバランサBは、ランダムにどこかのサーバ1(1x)にその更新通知を振り分ける(ステップS72)。そして、更新通知が振り分けられたサーバ1(1x)は、クラスタ全体にブロードキャストする機構を利用して、各サーバ1(1x)に更新通知を送信する(ステップS73)。   The load balancer B of the client cluster 20 that has received the update notification randomly distributes the update notification to some server 1 (1x) (step S72). Then, the server 1 (1x) to which the update notification is distributed transmits an update notification to each server 1 (1x) using a mechanism that broadcasts to the entire cluster (step S73).

このようにすることで、クラスタ内の各サーバ1にRead権限を持たせてデータを記憶させることができる。   In this way, each server 1 in the cluster can have read authority and store data.

以上説明したように、本実施形態に係るデータキャッシュシステム100によれば、呼出元(クライアント)および呼出先(原本データの保存サーバ)のクラスタ構成を互いに隠蔽したまま、キャッシュデータの情報の更新を通知し合うことが可能となる。また、クラスタ内部のサーバ1の構成が、故障や増設等で変化した場合であっても、参照対象や更新対象のデータの移動先の正しい保存先に、リクエストを送信し、参照や更新処理を実行した上、クラスタのコヒーレンスを保つことができる。   As described above, according to the data cache system 100 according to the present embodiment, the cache data information is updated while the cluster configurations of the caller (client) and the callee (original data storage server) are hidden from each other. It is possible to notify each other. Even if the configuration of the server 1 in the cluster changes due to failure or expansion, the request is sent to the correct storage destination of the reference target or update target data, and the reference or update processing is performed. It can be executed and maintain cluster coherence.

1,1x,1y サーバ
10 原本データクラスタ
11 制御部
12 入出力部
13 記憶部
20 クライアントクラスタ
30 クライアント端末
40 外部端末
100 データキャッシュシステム
111 情報受信部
112 アプリケーション処理部
113 キャッシュマネージャ
114 振り分け処理部
115 情報送信部
131 キャッシュデータ記憶部(ローカルキャッシュ)
132 キャッシュデータ管理情報
B ロードバランサ
D(D,D,D) ディスパッチャ
P(P,P,P) プロセッサ
1, 1x, 1y server 10 original data cluster 11 control unit 12 input / output unit 13 storage unit 20 client cluster 30 client terminal 40 external terminal 100 data cache system 111 information receiving unit 112 application processing unit 113 cache manager 114 distribution processing unit 115 information Transmission unit 131 Cache data storage unit (local cache)
132 Cache data management information B Load balancer D (D 1 , D 2 , D 3 ) Dispatcher P (P 1 , P 2 , P 3 ) Processor

Claims (4)

データをキャッシュデータとして記憶する複数のサーバがクラスタを構成するクライアントクラスタと、前記キャッシュデータの原本の前記データを記憶する複数のサーバがクラスタを構成する原本データクラスタとがネットワークを介して接続されるデータキャッシュシステムであって、
前記クライアントクラスタが備えるサーバである第1のサーバ、および、前記原本データクラスタが備えるサーバである第2のサーバ、それぞれは、
(1)前記データに固有な識別子および当該データの原本データを保存する前記原本データクラスタのアドレスで構成されるデータkeyと、前記データの読み出し処理および書き込み処理を実行するキャッシュマネージャに固有な識別子および当該キャッシュマネージャが属する前記クライアントクラスタまたは前記原本データクラスタを示すクラスタのアドレスで構成されるキャッシュマネージャkeyを用いて、前記データの読み出し権限および書き込み権限を持つキャッシュマネージャが格納されるメタデータと、が付された前記データ、および
(2)前記データkeyと、各クラスタ内のサーバに設定された複数のキャッシュマネージャそれぞれの固有な識別子とを対応付けたキャッシュデータ管理情報、を記憶する記憶部と、
前記データに付されたデータkeyを抽出し、前記キャッシュデータ管理情報を参照して、当該データに対応する前記キャッシュマネージャを決定する振り分け処理部と、
前記キャッシュマネージャと、を備え、
前記第1のサーバのキャッシュマネージャは、
前記データの参照要求を受信した場合に、自身の前記記憶部に当該データを記憶しているか否かを、前記参照要求に付された前記データkeyを用いて探索し、前記データを記憶していない場合に、当該データkeyから前記原本データクラスタのアドレスを抽出し、当該データの前記データkeyおよび当該キャッシュマネージャの前記キャッシュマネージャkeyを付した取得要求を前記原本データクラスタへの第1の要求メッセージに含めて送信し、
前記第2のサーバの振り分け処理部は、受信した前記第1の要求メッセージから前記データkeyを抽出し、前記データに対応する原本データを記憶する前記キャッシュマネージャを、前記キャッシュデータ管理情報を参照して決定し、前記決定したキャッシュマネージャに前記第1の要求メッセージを送信し、
前記第1の要求メッセージを受信した前記第2のサーバのキャッシュマネージャは、前記データの前記メタデータを参照し、自身に書き込み権限がある場合に、前記第1の要求メッセージから前記キャッシュマネージャkeyを抽出し、当該データのメタデータの読み出し権限に前記抽出したキャッシュマネージャkeyを付した上で、当該キャッシュマネージャkeyから前記クライアントクラスタのアドレスを抽出し、前記データを前記第1のサーバのキャッシュマネージャに送信し、
前記第1のサーバのキャッシュマネージャは、前記データを受信して自身の記憶部に記憶し、当該データを出力すること
を特徴とするデータキャッシュシステム。
A client cluster in which a plurality of servers that store data as cache data constitutes a cluster and an original data cluster in which a plurality of servers that store the original data of the cache data constitute a cluster are connected via a network A data cache system,
A first server that is a server included in the client cluster, and a second server that is a server included in the original data cluster,
(1) A data key composed of an identifier unique to the data and an address of the original data cluster for storing the original data of the data, an identifier unique to a cache manager that executes read processing and write processing of the data, and Using a cache manager key composed of an address of the cluster indicating the client cluster or the original data cluster to which the cache manager belongs, metadata storing a cache manager having the right to read and write the data, (2) a storage unit that stores the data key, and cache data management information in which the data key is associated with each unique identifier of each of the plurality of cache managers set in the servers in each cluster;
A data processing unit that extracts the data key attached to the data, refers to the cache data management information, and determines the cache manager corresponding to the data;
The cache manager,
The cache manager of the first server is
When the data reference request is received, the data key attached to the reference request is searched for whether the data is stored in the storage unit of the data, and the data is stored. If not, the address of the original data cluster is extracted from the data key, and an acquisition request to which the data key of the data and the cache manager key of the cache manager are attached is a first request message to the original data cluster. And send it in
The distribution processing unit of the second server extracts the data key from the received first request message and refers to the cache data management information for the cache manager that stores the original data corresponding to the data. Sending the first request message to the determined cache manager;
The cache manager of the second server that has received the first request message refers to the metadata of the data, and when the cache manager is authorized to write, the cache manager key is obtained from the first request message. Extracting and attaching the extracted cache manager key to the metadata read authority of the data, extracting the address of the client cluster from the cache manager key, and transferring the data to the cache manager of the first server Send
The cache manager of the first server receives the data, stores it in its storage unit, and outputs the data.
前記第1の要求メッセージを受信した前記第2のサーバのキャッシュマネージャは、前記データの前記メタデータを参照し、自身に書き込み権限がない場合に、前記書き込み権限を持つキャッシュマネージャを抽出し、前記抽出した書き込み権限を持つキャッシュマネージャに前記第1の要求メッセージを送信すること
を特徴とする請求項1に記載のデータキャッシュシステム。
The cache manager of the second server that has received the first request message refers to the metadata of the data and extracts the cache manager having the write authority when the cache manager does not have the write authority. The data cache system according to claim 1, wherein the first request message is transmitted to the cache manager having the extracted write authority.
前記第1のサーバのキャッシュマネージャは、
前記データの更新要求を受信した場合に、自身の前記記憶部に当該データを記憶しているか否かを、前記更新要求に付された前記データkeyを用いて探索し、前記データを記憶していないか、記憶していても前記メタデータを参照し自身が書き込み権限を持たないときに、当該データkeyから前記原本データクラスタのアドレスを抽出し、当該データの前記データkeyおよび当該キャッシュマネージャの前記キャッシュマネージャkeyを付した更新要求を前記原本データクラスタへの第2の要求メッセージに含めて送信し、
前記第2のサーバの振り分け処理部は、受信した前記第2の要求メッセージから前記データkeyを抽出し、前記データに対応する原本データを記憶する前記キャッシュマネージャを、前記キャッシュデータ管理情報を参照して決定し、前記決定したキャッシュマネージャに前記第2の要求メッセージを送信し、
前記第2の要求メッセージを受信した前記第2のサーバのキャッシュマネージャは、前記データの前記メタデータを参照し、自身に書き込み権限がある場合に、前記データを更新し、前記第2の要求メッセージから前記キャッシュマネージャkeyを抽出し、前記メタデータの読み出し権限に前記抽出したキャッシュマネージャkeyを付した上で、当該キャッシュマネージャkeyから前記クライアントクラスタのアドレスを抽出し、更新した前記データを前記第1のサーバのキャッシュマネージャに送信し、
前記第1のサーバのキャッシュマネージャは、更新した前記データを受信して自身の記憶部に記憶し、当該データを出力すること
を特徴とする請求項1または請求項2に記載のデータキャッシュシステム。
The cache manager of the first server is
When the data update request is received, the data key attached to the update request is searched for whether or not the data is stored in the storage unit of the data, and the data is stored. If the original data cluster address is extracted from the data key when the metadata does not have write authority with reference to the metadata even if stored, the data key of the data and the cache manager An update request with a cache manager key is sent in the second request message to the original data cluster,
The distribution processing unit of the second server extracts the data key from the received second request message and refers to the cache data management information for the cache manager that stores the original data corresponding to the data. Sending the second request message to the determined cache manager;
The cache manager of the second server that has received the second request message refers to the metadata of the data, and updates the data when the user has write permission, and the second request message The cache manager key is extracted from the metadata, and the extracted cache manager key is added to the read permission of the metadata. Then, the address of the client cluster is extracted from the cache manager key, and the updated data is stored in the first data. To the server's cache manager,
The data cache system according to claim 1 or 2, wherein the cache manager of the first server receives the updated data, stores the updated data in its own storage unit, and outputs the data.
前記第2の要求メッセージを受信した前記第2のサーバのキャッシュマネージャは、前記データの前記メタデータを参照し、自身に書き込み権限がない場合に、前記書き込み権限を持つキャッシュマネージャを抽出し、前記抽出した書き込み権限を持つキャッシュマネージャに前記第2の要求メッセージを送信すること
を特徴とする請求項3に記載のデータキャッシュシステム。
The cache manager of the second server that has received the second request message refers to the metadata of the data and extracts the cache manager having the write authority when the cache manager does not have the write authority. The data cache system according to claim 3, wherein the second request message is transmitted to a cache manager having the extracted write authority.
JP2012198059A 2012-09-10 2012-09-10 Data cache system Active JP5655044B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012198059A JP5655044B2 (en) 2012-09-10 2012-09-10 Data cache system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012198059A JP5655044B2 (en) 2012-09-10 2012-09-10 Data cache system

Publications (2)

Publication Number Publication Date
JP2014052928A JP2014052928A (en) 2014-03-20
JP5655044B2 true JP5655044B2 (en) 2015-01-14

Family

ID=50611333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012198059A Active JP5655044B2 (en) 2012-09-10 2012-09-10 Data cache system

Country Status (1)

Country Link
JP (1) JP5655044B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115604146B (en) * 2022-11-30 2023-05-23 广东睿江云计算股份有限公司 Method and system for continuously acquiring K8s cluster condition

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11027A (en) * 1854-06-06 Eyelet-machine
JPH11224219A (en) * 1998-02-05 1999-08-17 Nippon Telegr & Teleph Corp <Ntt> Decentralized cache control method, decentralization controller, decentralizzed cache system, and storage medium stored with decentralized cache control program
JP3504596B2 (en) * 2000-08-17 2004-03-08 日本電信電話株式会社 Information providing system, information providing method, and recording medium
JP4247975B2 (en) * 2003-08-20 2009-04-02 日本電信電話株式会社 Data management method, data management system, program therefor, and recording medium
JP2006164218A (en) * 2004-11-11 2006-06-22 Nec Corp Storage system and its cache control method

Also Published As

Publication number Publication date
JP2014052928A (en) 2014-03-20

Similar Documents

Publication Publication Date Title
US9892043B2 (en) Nested cache coherency protocol in a tiered multi-node computer system
US8818942B2 (en) Database system with multiple layer distribution
US20080215819A1 (en) Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
TW200832133A (en) Handling of write access requests to shared memory in a data processing apparatus
US10050832B2 (en) Server clustering in mobile computing environment
TWI386810B (en) Directory-based data transfer protocol for multiprocessor system
US9160791B2 (en) Managing connection failover in a load balancer
CN111274310A (en) Distributed data caching method and system
US20140006716A1 (en) Data control using last accessor information
KR20150103477A (en) Apparatus and method for managing cache in cache distributed environment
US20080005486A1 (en) Coordination of snoop responses in a multi-processor system
US7506108B2 (en) Requester-generated forward for late conflicts in a cache coherency protocol
JP5655044B2 (en) Data cache system
WO2019051105A1 (en) Counting cache snoop filter based on a bloom filter
KR20210044281A (en) Method and apparatus for ensuring continuous device operation stability in cloud degraded mode
CN106406745B (en) Method and device for maintaining Cache data consistency according to directory information
CN114341821A (en) Active direct cache transfer from producer to consumer
KR20060042412A (en) Osgi service flatform and method for offering service using by it
JP7277075B2 (en) Forwarding responses to snoop requests
Kumar et al. Certain investigation in dns performance by using accelerator and stub network
US8484422B2 (en) Maintaining data coherence by using data domains
KR20190015817A (en) Method, Apparatus and System for Monitoring Using Middleware
US7380107B2 (en) Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss
US20240089339A1 (en) Caching across multiple cloud environments
US10579526B2 (en) Responding to snoop requests

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140325

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140502

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141113

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141121

R150 Certificate of patent or registration of utility model

Ref document number: 5655044

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150