JP2008287660A - Cache server, cache management method and cache management program - Google Patents

Cache server, cache management method and cache management program Download PDF

Info

Publication number
JP2008287660A
JP2008287660A JP2007134484A JP2007134484A JP2008287660A JP 2008287660 A JP2008287660 A JP 2008287660A JP 2007134484 A JP2007134484 A JP 2007134484A JP 2007134484 A JP2007134484 A JP 2007134484A JP 2008287660 A JP2008287660 A JP 2008287660A
Authority
JP
Japan
Prior art keywords
cache
data
request
server
specified
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.)
Pending
Application number
JP2007134484A
Other languages
Japanese (ja)
Inventor
Takeshi Anzai
毅 安西
Yukio Nakano
幸生 中野
Natsuko Sugaya
菅谷  奈津子
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007134484A priority Critical patent/JP2008287660A/en
Publication of JP2008287660A publication Critical patent/JP2008287660A/en
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a cache server having improved reference performance for cache data. <P>SOLUTION: The cache server 120 includes: an update request accepting part 143 for accepting requests from a client; a storage device 151 which relates retrieval conditions of reference requests with retrieval results meeting the retrieval conditions and stores cache data; and a registration part 145 which judges whether registration data of a registration request meets a retrieval condition stored in the storage device 151 or not when the update request accepting part 143 accepts the registration request out of update requests, and relates the registration data with the retrieval condition and registers the registration data in the storage device 151 when the registration data is judged to meet the retrieval condition. This configuration allows a cache to be updated to the latest state by reflecting update requests accepted from the client 110, on cache data. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、キャッシュデータの参照性能を向上することができるキャッシュサーバ、キャッシュ管理方法、およびキャッシュ管理プログラムに関するものである。   The present invention relates to a cache server, a cache management method, and a cache management program that can improve cache data reference performance.

IT環境を取り巻くインターネット技術、ソフトウェア技術などの進化によって、様々な分野における業務のIT化が進んでいる。それに伴い、業務において利用されるデータが電子化され、その利用頻度が高まっている。今後もデータ量の増大、データ利用者の増加が進むと見込まれる中で、データ利用者がストレスを感じない時間でデータを参照できる性能がデータベースには要求される。   With the evolution of Internet technology and software technology surrounding the IT environment, IT in business in various fields is progressing. Along with this, data used in business is digitized and its use frequency is increasing. As the amount of data and the number of data users are expected to increase in the future, the database is required to have a performance that allows data users to refer to data in a time that does not feel stress.

従来からデータの参照性能を確保するために様々のアプローチが成されてきた。具体的なアプローチの1つとして、高速にデータアクセス可能な2次領域(キャッシュ)を活用する手段が存在する。その手段の概要は、一度参照したデータをキャッシュに保存し、2度目以降の参照において、当該キャッシュから読み出したデータを返すことで、参照性能を向上させるというものである。   Conventionally, various approaches have been made to ensure data reference performance. As a specific approach, there is a means for utilizing a secondary area (cache) that allows high-speed data access. The outline of the means is to improve the reference performance by storing the data once referred to the cache and returning the data read from the cache in the second and subsequent references.

キャッシュを活用するシステムの構成として、原本となるデータは堅牢に管理されたサーバマシン(オリジナルサーバ)のディスク領域上に、キャッシュはデータ利用者がアクセスするサーバマシン(キャッシュサーバ)のメモリ領域上に配置する構成が挙げられる。   As a system configuration that utilizes a cache, the original data is stored on the disk area of the server machine (original server) that is securely managed, and the cache is stored on the memory area of the server machine (cache server) that is accessed by the data user. The arrangement to arrange is mentioned.

キャッシュサーバは、データ利用者から検索条件を受付けると、該当するデータがキャッシュに存在するか否かを確認する。該当するデータが存在しない場合、オリジナルサーバからデータを取得し、データ利用者に返すとともに、検索条件に関連付けてキャッシュに保存する。   When the cache server receives the search condition from the data user, the cache server checks whether the corresponding data exists in the cache. If the corresponding data does not exist, the data is acquired from the original server, returned to the data user, and stored in the cache in association with the search condition.

それ以降、データ利用者から同一の検索条件を再度受付けた場合、該当するデータがキャッシュに存在するため、キャッシュから取り出して返す。これにより、オリジナルサーバにアクセスする必要がなくなり、高速にデータを参照することができる。また、オリジナルサーバに対する処理負荷を軽減する効果もある。   After that, when the same search condition is received again from the data user, the corresponding data exists in the cache, so it is retrieved from the cache and returned. Thereby, it is not necessary to access the original server, and data can be referred to at high speed. There is also an effect of reducing the processing load on the original server.

キャッシュを活用することによって、オリジナルサーバにデータが更新(以下、更新とは、登録、上書き、あるいは、削除を示す。)された場合、キャッシュデータに不整合が発生してしまう可能性がある。つまり、キャッシュに保存されているデータが、オリジナルサーバ上で更新されると、キャッシュには古い検索結果が保持されていることになる。結果として、キャッシュサーバは、検索条件に該当する古い検索結果をキャッシュから返してしまい、データ利用者は最新のデータを参照できない。   When data is updated in the original server by using the cache (hereinafter, update indicates registration, overwriting, or deletion), there is a possibility that inconsistency occurs in the cache data. That is, when the data stored in the cache is updated on the original server, the old search result is held in the cache. As a result, the cache server returns an old search result corresponding to the search condition from the cache, and the data user cannot refer to the latest data.

そこで、この問題を解決するメモリ無効化登録システムが知られている(例えば、特許文献1参照)。このキャッシュサーバは、キャッシュデータの整合性に影響を与える更新が行われたとき、オリジナルサーバは当該キャッシュサーバに対して、無効化メッセージを送信して、キャッシュサーバに保存されているキャッシュをフラッシュ(無効化)する。これにより、キャッシュから古い検索結果が使用されることを防ぐことができる。   Therefore, a memory invalidation registration system that solves this problem is known (see, for example, Patent Document 1). When an update that affects the consistency of cache data is performed, the cache server sends an invalidation message to the cache server to flush the cache stored in the cache server ( Disable). This can prevent old search results from being used from the cache.

さらに、特許文献1によれば、自動再クエリ技術を使用して、古いキャッシュデータを自動的に更新することができる。自動再クエリ技術とは、キャッシュのフラッシュに伴い、オリジナルサーバに対して任意の検索を実行するというものである。これにより、キャッシュから最新のデータを参照することができる。   Furthermore, according to Patent Document 1, it is possible to automatically update old cache data using an automatic requery technique. The automatic requery technique is to execute an arbitrary search for the original server as the cache is flushed. Thereby, the latest data can be referred from the cache.

一方、更新として登録する場合に、先にキャッシュサーバに登録し、その後オリジナルサーバに登録する方法も開示されている(例えば、特許文献2参照)。
特開2004−303211号公報 特開2002−351729号公報
On the other hand, when registering as an update, a method of registering in the cache server first and then registering in the original server is also disclosed (for example, see Patent Document 2).
JP 2004-30211 A JP 2002-351729 A

特許文献1のシステムにおいては、上記のようなキャッシュをフラッシュする制御において、同一の検索条件が集中し、当該検索結果に対する更新頻度が高いケースではキャッシュを有効に活用できない。つまり、データが頻繁に更新され、キャッシュのフラッシュが多発することで、過去と同じ検索条件を受付けても、その時点ではキャッシュを利用できず、オリジナルサーバに検索を実行しなければならない問題がある。   In the system of Patent Document 1, in the control for flushing the cache as described above, the same search conditions are concentrated, and the cache cannot be effectively used when the update frequency for the search result is high. In other words, because data is frequently updated and cache flushes occur frequently, even if the same search conditions as in the past are accepted, the cache cannot be used at that time, and there is a problem that the original server must be searched. .

また、自動再クエリ技術においては、キャッシュデータとの整合性に影響を与える更新が発生した場合に、オリジナルサーバに対して検索を実行するため、更新の頻度が高くなると、オリジナルサーバへの検索要求の増加に伴い、オリジナルサーバに対する処理負荷が増大し、強いては参照時の性能劣化を引き起こす問題がある。   In the automatic requery technology, when an update that affects the consistency with cache data occurs, a search is performed on the original server, so if the frequency of updates increases, a search request to the original server is issued. With this increase, the processing load on the original server increases, and there is a problem of causing performance degradation at the time of reference.

同一の検索条件が集中し、当該検索結果に対する更新頻度が高いケースとして、同一の識別子の値をもつデータ集合に対する参照、および当該データ集合に対する更新が、頻繁に発生する例が挙げられる。この場合、同一の識別子の値をもつデータ集合が検索結果として頻繁に参照されるにも関わらず、当該検索結果が頻繁に更新されるため、キャッシュデータとの整合性を確保するための処理が頻繁に発生する問題がある。   As an example where the same search conditions are concentrated and the update frequency for the search result is high, an example in which a reference to a data set having the same identifier value and an update to the data set frequently occur. In this case, since the data set having the same identifier value is frequently referred to as the search result, the search result is frequently updated, and therefore processing for ensuring consistency with the cache data is performed. There are frequent problems.

特許文献2のシステムにおいては、登録するときにキャッシュサーバに先に無条件に登録しているので、キャッシュのヒット率に貢献しない、多数の新規登録がある場合には、キャッシュサーバに負担がかかるという問題がある。   In the system of Patent Document 2, since the registration is unconditionally first in the cache server when registering, there is a burden on the cache server when there are a large number of new registrations that do not contribute to the cache hit rate. There is a problem.

本発明は、前記の課題を解決するための発明であって、キャッシュデータの参照性能を向上することができるキャッシュサーバ、キャッシュ管理方法、およびキャッシュ管理プログラムを提供することを目的とする。   An object of the present invention is to provide a cache server, a cache management method, and a cache management program capable of improving the reference performance of cache data.

前記目的を達成するため、クライアント(例えば、クライアント110)からの要求に対しデータサーバ(例えば、オリジナルサーバ170)を代行し、要求のうちの参照要求の検索条件と検索条件に合致した検索結果とを関連付けたキャッシュデータを記憶する記憶装置(例えば、記憶装置151)を備えるキャッシュサーバ(例えば、キャッシュサーバ120)であって、キャッシュサーバは、受付部が要求のうちの登録要求を受理すると、登録要求の登録データが記憶装置に記憶されている検索条件を満たすか否かを判定し、検索条件を満たすとき、登録データを、検索条件と関連付けて記憶装置に登録する登録部(例えば、登録部145)と、受付部が要求のうちの上書き要求を受理すると、上書き要求に上書き条件があるか否かを判定し、上書き条件があるときには指定されたデータ構造がキャッシュデータにあるか否かを判定し、指定されたデータ構造がキャッシュデータにあるとき、キャッシュデータのうち指定されたデータ構造に該当するキャッシュデータを上書きし、指定されたデータ構造がキャッシュデータにないとき、キャッシュデータを削除する上書き部(例えば、上書き部146)と、受付部が要求のうちの削除要求を受理すると、削除要求に削除条件があるか否かを判定し、削除条件があるときには指定されたデータ構造がキャッシュデータにあるか否かを判定し、指定されたデータ構造がキャッシュデータにあるとき、キャッシュデータのうち指定されたデータ構造に該当するキャッシュデータを削除し、指定されたデータ構造がキャッシュデータにないとき、キャッシュデータを削除する削除部(例えば、削除部147)と、受付部が要求のうちの参照要求を受理すると、参照要求に検索条件があるか否かを判定し、検索条件があるときには指定されたデータ構造がキャッシュデータにあるか否かを判定し、指定されたデータ構造がキャッシュデータにあるとき、キャッシュデータのうち指定されたデータ構造に該当するキャッシュデータを取得し、指定されたデータ構造がキャッシュデータにないとき、データサーバから取得しキャッシュデータに追加する参照要求部(例えば、検索部148)を有することを特徴とする。   In order to achieve the object, a data server (for example, the original server 170) is substituted for a request from a client (for example, the client 110), and a search condition of the reference request in the request and a search result that matches the search condition, A cache server (for example, cache server 120) having a storage device (for example, storage device 151) that stores cache data associated with the cache data, and the cache server registers when the accepting unit accepts the registration request among the requests. A registration unit that determines whether or not the requested registration data satisfies the search condition stored in the storage device, and registers the registration data in the storage device in association with the search condition when the search condition is satisfied (for example, a registration unit) 145), when the accepting unit accepts the overwrite request among the requests, it is determined whether or not the overwrite request has an overwrite condition. If there is an overwrite condition, it is determined whether or not the specified data structure is in the cache data. If the specified data structure is in the cache data, the cache corresponding to the specified data structure in the cache data is determined. When the data is overwritten and the specified data structure is not in the cache data, the overwriting unit (for example, the overwriting unit 146) that deletes the cache data, and when the receiving unit accepts the deletion request, the deletion is deleted. It is determined whether there is a condition. When there is a deletion condition, it is determined whether the specified data structure is in the cache data. When the specified data structure is in the cache data, the cache data is specified. The cache data corresponding to the specified data structure is deleted, and the specified data structure is When there is not, when the deletion unit (for example, deletion unit 147) that deletes the cache data and the reception unit accepts the reference request of the request, it is determined whether or not the reference request has a search condition, and there is the search condition. Sometimes it is determined whether or not the specified data structure is in the cache data. When the specified data structure is in the cache data, the cache data corresponding to the specified data structure is acquired from the cache data and specified. When the data structure is not in the cache data, a reference request unit (for example, a search unit 148) that is acquired from the data server and added to the cache data is provided.

本発明によれば、キャッシュデータの参照性能を向上することができる。   According to the present invention, cache data reference performance can be improved.

以下、本発明の実施形態について図面を参照して説明する。
《実施形態1》
図1は、実施形態1のサーバシステムの構成を示すブロック図である。サーバシステムは、クライアント110、キャッシュサーバ120、オリジナルサーバ170を有し、LAN(Local Area Network)やWAN(Wide Area Network)などのネットワーク10に接続することにより、相互に通信することができる。キャッシュサーバ120は、プロセッサ(CPU)130、メモリ140、記憶装置151、ディスクインターフェイス150、通信インターフェイス160、およびこれらを接続するバス161などから構成される。キャッシュサーバ120は、通信インターフェイス160を介してLAN、WANなどのネットワークに接続される。また、キャッシュサーバ120の記憶装置151は、ハードディスクドライブなどで構成され、ディスクインターフェイス150を介して接続される。プロセッサ130は、メモリ140に格納される各種プログラムを実行する。記憶装置151は、キャッシュサーバ120が処理を実行するための各種データ、特にキャッシュデータを含むキャッシュ管理テーブル152(図2参照)を保存する。メモリ140は、キャッシュサーバ120が処理を実行する各種プログラムおよび一時的なデータを保持する。
Embodiments of the present invention will be described below with reference to the drawings.
Embodiment 1
FIG. 1 is a block diagram illustrating a configuration of a server system according to the first embodiment. The server system includes a client 110, a cache server 120, and an original server 170, and can communicate with each other by connecting to a network 10 such as a LAN (Local Area Network) or a WAN (Wide Area Network). The cache server 120 includes a processor (CPU) 130, a memory 140, a storage device 151, a disk interface 150, a communication interface 160, and a bus 161 for connecting them. The cache server 120 is connected to a network such as a LAN or WAN via the communication interface 160. The storage device 151 of the cache server 120 is configured with a hard disk drive or the like, and is connected via the disk interface 150. The processor 130 executes various programs stored in the memory 140. The storage device 151 stores a cache management table 152 (see FIG. 2) including various data for the cache server 120 to execute processing, particularly cache data. The memory 140 holds various programs executed by the cache server 120 and temporary data.

なお、キャッシュサーバ120は、キャッシュ機能を持たせたプロキシサーバ(代理サーバ)のことを意味し、一度アクセスされたデータのキャッシュを行うことにより(キャッシング)、以降に同じデータをアクセスした同じまたは異なるクライアントに対して、キャッシュに保持していたデータを返すことができる。本来のオリジナルサーバ170にアクセスする必要がなくなるため、ネットワーク10のトラフィックおよびオリジナルサーバ170の負荷の軽減、クライアント110から見た応答時間の短縮が期待できる。   Note that the cache server 120 means a proxy server (proxy server) having a cache function, and by caching data that has been accessed once (caching), the same or different data that has been accessed subsequently is the same or different. Data held in the cache can be returned to the client. Since it is not necessary to access the original original server 170, it is possible to reduce the traffic on the network 10 and the load on the original server 170 and shorten the response time as viewed from the client 110.

キャッシュサーバ120は、メモリ140に格納されたキャッシュ制御プログラム142などのプログラム141をプロセッサ130が実行することで、キャッシュ制御の処理を行う。キャッシュ制御の処理は、プログラム141をプロセッサ130で実行することにより実現するが、これらはキャッシュ制御プログラム142などの各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。   The cache server 120 performs cache control processing when the processor 130 executes a program 141 such as the cache control program 142 stored in the memory 140. The cache control processing is realized by executing the program 141 by the processor 130, but these can also be realized by hardware by integrating the processing unit such as the cache control program 142 as a processing unit. .

クライアント110およびオリジナルサーバ170は、それぞれ1台以上のコンピュータで構成される。オリジナルサーバ170は、記憶装置171を有し、更新あるいは参照における原本となるデータであるオリジナルデータ172を保持する。   Each of the client 110 and the original server 170 is composed of one or more computers. The original server 170 has a storage device 171 and retains original data 172 that is data serving as an original in update or reference.

キャッシュ制御プログラム142には、処理内容別に、更新要求受付部143、参照要求受付部144、登録部145、上書き部146、削除部147、および検索部148を有する。更新要求受付部143は、クライアント110からの更新要求を受付けると、更新処理を開始する。更新要求には、登録要求、上書き要求、および削除要求がある。具体的には、更新要求には、更新系SQLである、登録(INSERT文)、上書き(UPDATE文)、削除(DELETE文)がある。なお、SQLは、リレーショナルデータベースマネージメントシステム(RDBMS)において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)である。   The cache control program 142 includes an update request reception unit 143, a reference request reception unit 144, a registration unit 145, an overwrite unit 146, a deletion unit 147, and a search unit 148 for each processing content. When receiving an update request from the client 110, the update request receiving unit 143 starts an update process. The update request includes a registration request, an overwrite request, and a deletion request. More specifically, the update request includes update (SQL statement), overwrite (UPDATE statement), and delete (DELETE statement), which are update-type SQL. Note that SQL is a database language (inquiry language) for operating and defining data in a relational database management system (RDBMS).

参照要求受付部144は、クライアント110からの参照要求を受付けると、参照処理を開始する。参照要求には、参照系SQLである、選択(SELECT文)が格納されている。参照要求に、参照系SQLが格納されていない場合、エラーコードやエラーメッセージなどをクライアント110に応答する。   When the reference request receiving unit 144 receives a reference request from the client 110, the reference request receiving unit 144 starts reference processing. The reference request stores a selection (SELECT statement) that is a reference SQL. When the reference SQL is not stored in the reference request, an error code or an error message is returned to the client 110.

登録部145は、INSERT文に指定された登録データをキャッシュデータに追加する。上書き部146は、UPDATE文に応じてキャッシュデータを上書きする。削除部147は、DELETE文に応じてキャッシュデータを削除する。検索部148は、SELECT文に応じて、検索結果を記憶装置151から取得することを試み、できない場合は記憶装置171から検索結果を取得する。   The registration unit 145 adds the registration data specified in the INSERT statement to the cache data. The overwriting unit 146 overwrites the cache data according to the UPDATE statement. The deletion unit 147 deletes the cache data according to the DELETE statement. The search unit 148 attempts to acquire the search result from the storage device 151 according to the SELECT statement, and acquires the search result from the storage device 171 if it cannot be obtained.

以下、説明を簡略化するため、各種のプログラム141をプロセッサ130が実行することで実現される各処理部を各処理の主体として説明する。なお各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行う。   Hereinafter, in order to simplify the description, each processing unit that is realized by the processor 130 executing the various programs 141 will be described as the subject of each processing. When each processing unit is realized by hardware, each processing unit mainly performs each process.

図2は、キャッシュ管理テーブルの一例を示す説明図である。キャッシュ管理テーブル152には、検索条件210、およびキャッシュデータ220からなり、両者が双方向に関連付けて管理されている。つまり、ある検索条件210から、それに対応するキャッシュデータ220を取得できる。逆に、あるキャッシュデータ220から、それに対応する検索条件210を取得できる。   FIG. 2 is an explanatory diagram illustrating an example of a cache management table. The cache management table 152 includes a search condition 210 and cache data 220, and both are managed in association with each other. That is, the cache data 220 corresponding to a certain search condition 210 can be acquired. Conversely, the search condition 210 corresponding to the cache data 220 can be acquired.

検索条件210は、左辺に比較元、右辺に比較先、およびその間に両者を比較する比較演算子により構成される。比較元あるいは比較先に利用される/(スラッシュ)は、XML(Extensible Markup Language)の階層構造を表す。例えば、”商品/価格”は、要素”商品”の子要素”価格”を示す。   The search condition 210 includes a comparison source on the left side, a comparison destination on the right side, and a comparison operator that compares the two in between. The / (slash) used for the comparison source or the comparison destination represents a hierarchical structure of XML (Extensible Markup Language). For example, “product / price” indicates a child element “price” of the element “product”.

また、比較演算子に使用される=(イコール)、>(大なり)、および<(小なり)は、それぞれ比較元と比較先が一致、比較元が比較先より大きい、比較元が比較先より小さいことを表す。その他、>=(以上)、<=(以下)、<>(等しくない)なども比較演算子として使用できる。   In addition, = (equal),> (greater than), and <(less than) are used for comparison operators, the comparison source and comparison destination match, the comparison source is larger than the comparison destination, and the comparison source is the comparison destination Indicates less than. In addition,> = (above), <= (below), <> (not equal), etc. can also be used as comparison operators.

具体的な検索条件の一例として、在庫管理データを例に説明する。在庫管理データには、商品毎に、価格、在庫数、商品名、原価、入荷予定数、出荷予定数、在庫回転率などが含まれる。このとき、検索条件には、要素として、価格、在庫数、商品名などが用いられる。   As an example of specific search conditions, inventory management data will be described as an example. The stock management data includes price, stock quantity, product name, cost, planned arrival quantity, planned delivery quantity, inventory turnover rate, etc. for each product. At this time, a price, the number of stocks, a product name, etc. are used as elements in the search condition.

検索条件”商品/価格=1500”は、比較元である要素”商品”の子要素である”価格”の値が、比較先である1500と一致することを表す。   The search condition “product / price = 1500” represents that the value of “price” that is a child element of the element “product” that is the comparison source matches 1500 that is the comparison destination.

また、比較演算子が=(イコール)の場合、比較先に文字列を指定することで、文字列が一致するか否かを判定できる。検索条件”商品/商品名=ZY0055”は、要素”商品”の子要素である”商品名”の値が、”ZY0055”に一致することを表す。   When the comparison operator is = (equal), it is possible to determine whether or not the character strings match by specifying the character string as the comparison destination. The search condition “product / product name = ZY0055” represents that the value of “product name” which is a child element of the element “product” matches “ZY0055”.

キャッシュデータ220には、検索条件210ごとに、過去にオリジナルサーバ170から取得された検索結果がXML形式で格納されている。検索条件を満たすXMLが2つ以上になる可能性があり、その場合は1つの検索条件に対して複数のXMLが対応付けて管理される。例えば、図2に示すように、検索条件”商品/価格=1500”の場合、キャッシュデータ220には、価格1500を含むデータが3つある。また、検索条件”商品/在庫数>500”の場合、在庫550のデータと在庫750のデータがある。さらに、検索条件”商品/商品名=ZY0055”の場合、商品名ZY0055を含むデータが2つある。以上説明したように、キャッシュデータ220には、XML形式や文字列などのテキスト形式のほかに、画像や音楽データなどのバイナリ形式など多様なデータ形式が格納されてもよい。   The cache data 220 stores search results acquired in the past from the original server 170 in the XML format for each search condition 210. There is a possibility that two or more XMLs satisfy the search condition. In this case, a plurality of XMLs are managed in association with one search condition. For example, as shown in FIG. 2, when the search condition is “product / price = 1500”, the cache data 220 includes three pieces of data including the price 1500. In addition, when the search condition is “product / stock quantity> 500”, there are data of stock 550 and data of stock 750. Further, when the search condition is “product / product name = ZY0055”, there are two pieces of data including the product name ZY0055. As described above, the cache data 220 may store various data formats such as a binary format such as an image or music data in addition to an XML format or a text format such as a character string.

次に、各部の処理について、図3〜図6のフローチャートに沿いつつ、適宜図1および図2を参照して説明する。   Next, the processing of each unit will be described with reference to FIGS. 1 and 2 as appropriate along the flowcharts of FIGS.

図3は、更新要求受付部の処理を示すフローチャートである。更新要求受付部143は、クライアント110からの更新要求を受付けると、更新処理を開始する。更新要求には、更新系SQLである、登録(INSERT文)、上書き(UPDATE文)、削除(DELETE文)のいずれかが格納されている。更新要求に、更新系SQLが格納されていない場合、エラーコードやエラーメッセージなどをクライアント110に応答する。   FIG. 3 is a flowchart showing processing of the update request receiving unit. When receiving an update request from the client 110, the update request receiving unit 143 starts an update process. The update request stores either update (SQL statement), overwrite (UPDATE statement), or delete (DELETE statement), which is an update SQL. When the update SQL is not stored in the update request, an error code or an error message is returned to the client 110 as a response.

本実施形態では、XML形式を扱うため、更新対象のデータ構造を指定する際にはXPathなどのXMLパス言語を使用する。その他、XQuery(静的型付け機能を持つXMLデータ問合せのための関数型言語)や、リレーショナルデータベースにおいてはSQLなどのデータアクセス言語が使用される。   In this embodiment, since the XML format is handled, an XML path language such as XPath is used when designating a data structure to be updated. In addition, data access languages such as SQL are used in XQuery (a functional language for querying XML data having a static typing function) and relational databases.

更新要求受付部143は、更新要求を解析し、そこに格納されている更新系SQLがデータの登録(INSERT文)要求であるか否かを判定する(ステップS310)。更新要求受付部143は、ステップS310において、データの登録要求である場合(ステップS310,Yes)、当該INSERT文を指定して登録部145を呼び出す。登録部145は、INSERT文に指定された登録データをキャッシュデータに追加し(ステップS320)、ステップS360へ進む。ステップS320の詳細は、図4において説明する。   The update request receiving unit 143 analyzes the update request and determines whether or not the update SQL stored therein is a data registration (INSERT statement) request (step S310). In step S310, the update request reception unit 143 calls the registration unit 145 by designating the INSERT statement when it is a data registration request (Yes in step S310). The registration unit 145 adds the registration data specified in the INSERT statement to the cache data (step S320), and proceeds to step S360. Details of step S320 will be described with reference to FIG.

図4は、登録部の処理を示すフローチャートである。登録部145は、INSERT文を指定されて処理を開始する。INSERT文に格納されているXML形式の登録データを取り出す(ステップS400)。続いて、当該登録データが、キャッシュ管理テーブル152に存在する検索条件210を満たすか否かを判定する(ステップS410)。   FIG. 4 is a flowchart showing processing of the registration unit. The registration unit 145 starts processing upon receiving the INSERT statement. XML format registration data stored in the INSERT statement is retrieved (step S400). Subsequently, it is determined whether or not the registered data satisfies the search condition 210 existing in the cache management table 152 (step S410).

登録部145は、ステップS410において、検索条件210において比較先が数値である場合、登録データから比較元の数値を取り出し、比較先の数値と比較演算子に基づいて評価した結果が真であれば、検索条件210を満たすと判定する。   When the comparison destination is a numerical value in the search condition 210 in step S410, the registration unit 145 extracts the comparison source numerical value from the registered data, and if the result evaluated based on the comparison target numerical value and the comparison operator is true. It is determined that the search condition 210 is satisfied.

また、比較先が文字列で、比較演算子が=(イコール)である場合、比較元の文字列と、比較先の文字列が一致すれば、検索条件210を満たすと判定する。上記以外の場合、登録データは検索条件210を満たさないと判定する。   If the comparison destination is a character string and the comparison operator is = (equal), it is determined that the search condition 210 is satisfied if the comparison source character string matches the comparison destination character string. In cases other than the above, it is determined that the registration data does not satisfy the search condition 210.

登録部145は、ステップS410において、登録データがキャッシュ管理テーブル152に存在する検索条件210を満たす場合(ステップS410,Yes)、登録データを当該検索条件の関連付けに追加してキャッシュデータ220を追加更新する(ステップS420)。登録部145は、ステップS410において、登録データがキャッシュ管理テーブル152に存在する検索条件210を満たさない場合(ステップS410,No)、キャッシュデータ220を更新しない。なお、登録部145は、検索条件210が2つ以上存在する場合、上記の処理をキャッシュ管理テーブル152に存在するすべての検索条件210に対して繰り返し行う。   In step S410, when the registration data satisfies the search condition 210 existing in the cache management table 152 (step S410, Yes), the registration unit 145 adds the registration data to the association of the search condition and additionally updates the cache data 220. (Step S420). In step S410, the registration unit 145 does not update the cache data 220 when the registration data does not satisfy the search condition 210 existing in the cache management table 152 (No in step S410). Note that when there are two or more search conditions 210, the registration unit 145 repeats the above processing for all the search conditions 210 existing in the cache management table 152.

具体的には、キャッシュデータ220を更新する一例として、登録データの”商品/価格”に1500が格納されており、図2に示すように、検索条件210が”商品/価格=1500”の場合、当該登録データは検索条件を満たすため、キャッシュデータ220に追加する。また、キャッシュデータ220を更新しない一例として、登録データの”商品/価格”に2000が格納されており、図2に示すように、検索条件210が”商品/価格=1500”の場合、当該登録データは検索条件を満たさないため、キャッシュデータ220に追加しない。   Specifically, as an example of updating the cache data 220, 1500 is stored in “product / price” of the registration data, and the search condition 210 is “product / price = 1500” as shown in FIG. The registered data is added to the cache data 220 because it satisfies the search condition. Further, as an example in which the cache data 220 is not updated, when “2000” is stored in “product / price” of the registration data, and the search condition 210 is “product / price = 1500” as shown in FIG. Since the data does not satisfy the search condition, it is not added to the cache data 220.

本実施形態によれば、キャッシュサーバ120は、クライアント110から更新要求のうちの登録要求があった際に、登録部145は、キャッシュ管理テーブル152にある検索条件が、登録データに含まれているか否かを判定し、検索条件が含まれている場合に、検索条件と登録データとを関連付けて、キャッシュデータ220に登録しているので、次回参照要求があった際に、キャッシュのヒット率が高まり、参照性能が向上できる。   According to the present embodiment, when the cache server 120 receives a registration request from among the update requests from the client 110, the registration unit 145 determines whether the search data in the cache management table 152 is included in the registration data. If the search condition is included, the search condition and the registered data are associated with each other and registered in the cache data 220, so that when the next reference request is made, the cache hit rate is The reference performance can be improved.

図3に戻り、更新要求受付部143は、ステップS310において、更新要求がデータの登録要求ではない場合(ステップS310,No)、更新要求に格納される更新系SQLがデータの上書き(UPDATE)要求であるか否かを判定する(ステップS330)。更新要求受付部143は、ステップS330において、データの上書き要求である場合(ステップS330,Yes)、当該UPDATE文を指定して、上書き部146を呼び出す。上書き部146は、UPDATE文に応じてキャッシュデータを上書きし(ステップS340)、ステップS360へ進む。ステップS340の詳細は、図5において説明する。   Returning to FIG. 3, when the update request is not a data registration request in step S310 (No in step S310), the update request accepting unit 143 determines that the update SQL stored in the update request is a data overwrite (UPDATE) request. It is determined whether or not (step S330). In step S330, the update request reception unit 143 calls the overwriting unit 146 by designating the UPDATE statement when it is a data overwriting request (step S330, Yes). The overwriting unit 146 overwrites the cache data according to the UPDATE statement (step S340), and proceeds to step S360. Details of step S340 will be described with reference to FIG.

図5は、上書き部の処理を示すフローチャートである。上書き部146は、UPDATE文を指定されて処理を開始する。UPDATE文に上書き条件、つまり上書きの対象となるデータの範囲が指定されているか否かを判定する(ステップS510)。具体的には、上書き条件の指定方法の一例として、UPDATE文におけるWHERE句が挙げられる。WHERE句には検索条件210と同じ形式で条件を指定することができ、そこで指定された条件を満たすキャッシュデータ220が上書きの対象となる。   FIG. 5 is a flowchart showing processing of the overwriting unit. The overwriting unit 146 starts the process when the UPDATE statement is specified. It is determined whether or not an overwrite condition, that is, a range of data to be overwritten is specified in the UPDATE statement (step S510). Specifically, a WHERE clause in the UPDATE statement is an example of a method for specifying the overwrite condition. In the WHERE clause, a condition can be specified in the same format as the search condition 210, and the cache data 220 that satisfies the condition specified there is overwritten.

上書き部146は、ステップS510において、UPDATE文に上書き条件が指定されている場合(ステップS510,Yes)、上書き条件に指定されたデータ構造がキャッシュデータ220に存在するか否かを判定する(ステップS520)。言い換えると、上書き条件の比較元あるいは比較先にXPathなどを用いてデータ構造が指定された場合、当該データ構造がキャッシュデータ220に存在するか否かを判定する。一方、ステップS510において、上書き条件が指定されていない場合(ステップS510,No)、ステップS530へ進む。   If the overwrite condition is specified in the UPDATE statement in Step S510 (Yes in Step S510), the overwrite unit 146 determines whether or not the data structure specified in the overwrite condition exists in the cache data 220 (Step S510). S520). In other words, when the data structure is designated using XPath or the like as the comparison source or comparison destination of the overwrite condition, it is determined whether or not the data structure exists in the cache data 220. On the other hand, if the overwrite condition is not specified in step S510 (step S510, No), the process proceeds to step S530.

上書き部146は、ステップS520において、上書き条件に指定されたデータ構造がキャッシュデータ220に存在する場合(ステップS520,Yes)、ステップS530へ進む。上書き条件に指定されたデータ構造がキャッシュデータ220に存在しない場合(ステップS520,No)、ステップS560へ進む。   If the data structure specified in the overwrite condition exists in the cache data 220 in step S520 (Yes in step S520), the overwriting unit 146 proceeds to step S530. If the data structure specified in the overwrite condition does not exist in the cache data 220 (No in step S520), the process proceeds to step S560.

具体的には、上書き条件に指定されたデータ構造がキャッシュデータに存在しない一例として、”UPDATE 商品/価格=商品/価格+500 WHERE 商品/原価>1000”のUPDATE文が指定された場合、上書き条件には”商品/原価>1000”が指定されており、指定されたデータ構造”商品/原価”がキャッシュデータ220(図2参照)に存在しない。この場合、上書き条件を満たすキャッシュデータを特定することができない。   Specifically, as an example in which the data structure specified in the overwrite condition does not exist in the cache data, when an UPDATE statement of “UPDATE product / price = product / price + 500 WHERE product / cost> 1000” is specified, the overwrite condition “Product / Cost> 1000” is specified in the cache, and the specified data structure “Product / Cost” does not exist in the cache data 220 (see FIG. 2). In this case, cache data that satisfies the overwrite condition cannot be specified.

上書き部146は、ステップS530において、上書き対象のキャッシュデータ220を特定できる否かを判定する。上書き対象のキャッシュデータ220を特定できる場合(ステップS530,Yes)、ステップS540へ進む。上書き対象のキャッシュデータ220を特定できない場合(ステップS530,No)、ステップS560へ進む。   In step S530, the overwriting unit 146 determines whether the cache data 220 to be overwritten can be specified. When the cache data 220 to be overwritten can be specified (step S530, Yes), the process proceeds to step S540. If the cache data 220 to be overwritten cannot be specified (No at Step S530), the process proceeds to Step S560.

具体的には、図2において、上書き対象を特定できる一例として、”UPDATE商品/価格=1600 WHERE 商品/商品名=TA0018”のUPDATE文が指定された場合、ステップS510において上書き条件(WHERE 商品/商品名=TA0018)が指定されており、ステップ520において指定されたデータ構造がキャッシュデータ(商品/商品名)に存在している。このとき、ステップS530において上書き対象(商品/価格)を特定することができる。これにより、後記するステップS550において、商品名TA0018の価格を、1500から1600へ上書きすることができる。   Specifically, in FIG. 2, when an UPDATE statement of “UPDATE product / price = 1600 WHERE product / product name = TA0018” is specified as an example in which the overwriting target can be specified, in step S510, an overwrite condition (WHERE product / Product name = TA0018) is specified, and the data structure specified in step 520 exists in the cache data (product / product name). At this time, the overwriting target (product / price) can be specified in step S530. Thereby, in step S550 described later, the price of the product name TA0018 can be overwritten from 1500 to 1600.

上書き部146は、ステップS540において、UPDATE文に指定された上書きデータの値を算出できるか否かを判定する。すなわち、上書きデータの値が、指定されたデータ構造から演算により算出することが指定された場合、当該データ構造がキャッシュデータ220に存在するか否かを判定する。   In step S540, the overwrite unit 146 determines whether the value of the overwrite data specified in the UPDATE statement can be calculated. That is, when it is specified that the value of the overwrite data is calculated by calculation from the specified data structure, it is determined whether or not the data structure exists in the cache data 220.

上書きデータの値を算出できる場合(ステップS540,Yes)、すなわち、当該データ構造がキャッシュデータ220に存在する場合、上書き対象のキャッシュデータを上書きする(ステップS550)。具体的には、上書きデータの値を算出できる一例として、”UPDATE商品/在庫数=商品/在庫数+200”のUPDATE文が指定された場合、上書きデータの値には”商品/在庫数+200”が指定されており、指定されたデータ構造”商品/在庫数”がキャッシュデータ220に存在するため、上書きデータの値を算出できる。すなわち、図2において、指定されたデータ構造”商品/在庫数”のあるキャッシュデータ220に対して、在庫数に200を加算し上書きすることになる。   When the value of the overwrite data can be calculated (step S540, Yes), that is, when the data structure exists in the cache data 220, the cache data to be overwritten is overwritten (step S550). Specifically, as an example in which the value of the overwrite data can be calculated, when the UPDATE statement “UPDATE product / stock quantity = product / stock quantity + 200” is specified, the value of the overwrite data is “product / stock quantity + 200”. Is specified, and the specified data structure “product / inventory quantity” exists in the cache data 220, so the value of the overwrite data can be calculated. In other words, in FIG. 2, the cache data 220 having the designated data structure “product / stock quantity” is overwritten by adding 200 to the stock quantity.

上書きデータの値を算出できない場合(ステップS540,No)、すなわち、当該データ構造がキャッシュデータ220に存在しない場合、ステップS560へ進む。具体的には、上書きデータの値を算出できない一例として、上書きデータの値に”商品/入荷予定数=商品/入荷予定数+1000”が指定された場合、指定されたデータ構造”商品/入荷予定数”がキャッシュデータ220に存在しないため、上書きデータの値を算出できないことになる。   If the value of the overwrite data cannot be calculated (No at Step S540), that is, if the data structure does not exist in the cache data 220, the process proceeds to Step S560. Specifically, as an example in which the value of the overwrite data cannot be calculated, when “product / planned arrival number = product / planned arrival number + 1000” is designated as the overwrite data value, the designated data structure “product / arrival plan” Since the “number” does not exist in the cache data 220, the value of the overwrite data cannot be calculated.

上書き部146は、ステップS520において上書き条件に指定されたデータ構造がキャッシュデータに存在しない場合、ステップS530において上書き対象を特定できない場合、およびステップS540において上書きデータの値に指定されるデータ構造がキャッシュデータ220に存在しない場合、当該キャッシュデータ220を削除する(ステップS560)。   The overwriting unit 146 determines that the data structure specified in the overwrite condition in step S520 does not exist in the cache data, the overwriting target cannot be specified in step S530, and the data structure specified in the overwrite data value in step S540 is cached. If it does not exist in the data 220, the cache data 220 is deleted (step S560).

なお、ステップS560の他の実現方式として、上書き部146は、オリジナルサーバ170から最新データを取得することも考えられる。具体的には、上書き部146は、ステップS520あるいはステップS540において、削除するキャッシュデータ220が存在した場合、オリジナルサーバ170に対して当該キャッシュデータ220に対応する検索条件210を満たすデータの取得を要求する。オリジナルサーバ170から当該検索条件210を満たすデータを、対応するキャッシュデータ220に反映する。これにより、更新のタイミングでキャッシュデータ220を最新の状態に保つことができる。   Note that, as another implementation method of step S560, the overwrite unit 146 may acquire the latest data from the original server 170. Specifically, when there is cache data 220 to be deleted in step S520 or step S540, the overwrite unit 146 requests the original server 170 to acquire data that satisfies the search condition 210 corresponding to the cache data 220. To do. Data satisfying the search condition 210 from the original server 170 is reflected in the corresponding cache data 220. Thereby, the cache data 220 can be kept in the latest state at the update timing.

本実施形態によれば、キャッシュサーバ120は、クライアントから更新要求のうちの上書き要求があった際に、上書き部146は、上書き条件を満たし、上書きデータを算出できる場合に、キャッシュ管理テーブル152にあるキャッシュデータ220を上書きしているので、次回参照要求があった際に、キャッシュのヒット率が高まり、参照性能が向上できる。   According to the present embodiment, when the cache server 120 receives an overwrite request among update requests from the client, the overwrite unit 146 satisfies the overwrite condition and can calculate the overwrite data. Since certain cache data 220 is overwritten, the cache hit rate increases when the next reference request is made, and the reference performance can be improved.

図3に戻り、更新要求受付部143は、ステップS330において、更新要求がデータの上書き要求でない場合(ステップS330,No)、ステップS350へ進む。この場合、更新要求のうちのデータ削除(DELETE文)要求であるので、当該DELETE文を指定して、削除部147を呼び出す。削除部147は、DELETE文に応じてキャッシュデータを削除し(ステップS350)、ステップS360へ進む。ステップS350の詳細は、図6において説明する。   Returning to FIG. 3, if the update request is not a data overwrite request in step S330 (No in step S330), the update request receiving unit 143 proceeds to step S350. In this case, since it is a data deletion (DELETE statement) request in the update request, the deletion unit 147 is called by designating the DELETE statement. The deletion unit 147 deletes the cache data according to the DELETE statement (step S350), and proceeds to step S360. Details of step S350 will be described with reference to FIG.

図6は、削除部の処理を示すフローチャートである。削除部147は、DELETE文を指定されて処理を開始する。DELETE文に削除条件、つまり削除の対象となるデータの範囲が指定されているか否かを判定する(ステップS610)。   FIG. 6 is a flowchart showing processing of the deletion unit. The deletion unit 147 starts processing by specifying a DELETE statement. It is determined whether or not a deletion condition, that is, a range of data to be deleted is specified in the DELETE statement (step S610).

具体的には、削除条件の指定方法の一例として、DELETE文におけるWHERE句が挙げられる。WHERE句には検索条件210と同じ形式で条件を指定することができ、そこで指定された条件を満たすキャッシュデータ220が削除の対象となる。   Specifically, a WHERE clause in a DELETE statement is given as an example of a deletion condition designation method. In the WHERE clause, a condition can be specified in the same format as the search condition 210, and the cache data 220 that satisfies the condition specified there is targeted for deletion.

削除部147は、ステップS610において、DELETE文に削除条件が指定されている場合(ステップS610,Yes)、削除条件に指定されたデータ構造がキャッシュデータ220に存在するか否かを判定する(ステップS620)。すなわち、削除条件の比較元あるいは比較先の中にXMLのデータ構造が指定された場合、当該XMLのデータ構造がキャッシュデータ220に存在するか否かを判定する。一方、ステップS610において、削除条件が指定されていない場合(ステップS610,No)、ステップS630へ進む。   In step S610, the deletion unit 147 determines whether or not the data structure specified in the deletion condition exists in the cache data 220 when the deletion condition is specified in the DELETE statement (step S610, Yes) (step S610). S620). That is, when an XML data structure is designated in the comparison source or comparison destination of the deletion condition, it is determined whether or not the XML data structure exists in the cache data 220. On the other hand, in step S610, when the deletion condition is not designated (step S610, No), the process proceeds to step S630.

具体的には、削除条件に指定されたデータ構造がキャッシュデータに存在しない一例として、削除条件として”商品/入荷予定数>3000”が指定された場合、キャッシュ管理テーブル152のキャッシュデータ220に”商品/入荷予定数”が存在しない。この場合、キャッシュデータ220が削除条件を満たすか否かを判定できず、削除条件に指定されたデータ構造がキャッシュデータに存在しない。   Specifically, as an example in which the data structure specified in the deletion condition does not exist in the cache data, when “product / planned number of arrivals> 3000” is specified as the deletion condition, the cache data 220 of the cache management table 152 indicates “ “Product / Scheduled quantity” does not exist. In this case, it cannot be determined whether or not the cache data 220 satisfies the deletion condition, and the data structure specified in the deletion condition does not exist in the cache data.

削除部147は、ステップS620において、削除条件に指定されたデータ構造がキャッシュデータ220に存在する場合(ステップS620,Yes)、削除対象(削除条件を満たす)のキャッシュデータ220を削除して(ステップS630)、処理を終了する。削除部147は、削除条件を満たすキャッシュデータが存在しない場合(ステップS620,No)、当該キャッシュデータ220を削除する(ステップS640)。   In step S620, when the data structure specified in the deletion condition exists in the cache data 220 (step S620, Yes), the deletion unit 147 deletes the cache data 220 to be deleted (the deletion condition is satisfied) (step S620). S630), the process ends. When there is no cache data satisfying the deletion condition (No at Step S620), the deletion unit 147 deletes the cache data 220 (Step S640).

なお、ステップS640の他の実現方式として、削除部147は、オリジナルサーバ170から最新データを取得することも考えられる。具体的には、削除部147は、ステップS620において、削除するキャッシュデータ220が存在した場合、オリジナルサーバ170に対して当該キャッシュデータ220に対応する検索条件210を満たすデータの取得を要求する。オリジナルサーバ170から当該検索条件210を満たすデータを、対応するキャッシュデータ220に反映する。これにより、更新のタイミングでキャッシュデータ220を最新の状態に保つことができる。   As another implementation method of step S640, the deletion unit 147 may acquire the latest data from the original server 170. Specifically, if there is cache data 220 to be deleted in step S620, the deletion unit 147 requests the original server 170 to acquire data that satisfies the search condition 210 corresponding to the cache data 220. Data satisfying the search condition 210 from the original server 170 is reflected in the corresponding cache data 220. Thereby, the cache data 220 can be kept in the latest state at the update timing.

本実施形態によれば、キャッシュサーバ120は、クライアント110から更新要求のうちの削除要求があった際に、削除部147は、削除条件を満たし、削除データを算出できる場合に、キャッシュ管理テーブル152にあるキャッシュデータ220を削除しているので、キャッシュデータ220を最新の状態に保つことができる。   According to the present embodiment, when the cache server 120 receives a deletion request from among the update requests from the client 110, the deletion unit 147 satisfies the deletion condition and can calculate deletion data. Therefore, the cache data 220 can be kept up-to-date.

図3に戻り、ステップS360において、更新要求受付部143は、オリジナルサーバ170に更新要求を送信し、データの更新を要求する。オリジナルサーバ170は、更新要求に基づいて、オリジナルデータ172を最新の状態に更新する。更新要求受付部143は、最後に、更新結果をクライアント110に応答し(ステップS370)、一連の処理を終了する。更新処理が正常に終了した場合は正常に終了した旨を応答する。更新処理中に何からのエラーが発生した場合はエラーコードやエラーメッセージなどをクライアント110に応答する。以上の処理により、更新要求に対してキャッシュサーバ120が管理するキャッシュデータ220、およびオリジナルサーバ170が管理するオリジナルデータ172を更新することができる。   Returning to FIG. 3, in step S360, the update request receiving unit 143 transmits an update request to the original server 170 to request data update. The original server 170 updates the original data 172 to the latest state based on the update request. Finally, the update request receiving unit 143 returns the update result to the client 110 (step S370), and ends the series of processes. When the update process is completed normally, a response indicating that the update process has been completed normally is returned. If any error occurs during the update process, an error code or an error message is returned to the client 110. Through the above processing, the cache data 220 managed by the cache server 120 and the original data 172 managed by the original server 170 can be updated in response to the update request.

図7は、参照要求受付部の処理を示すフローチャートである。参照要求受付部144は、クライアント110からの参照要求を受付けると、参照処理を開始する。参照要求には、参照系SQLである、選択(SELECT文)が格納されている。参照要求に、参照系SQLが格納されていない場合、エラーコードやエラーメッセージなどをクライアント110に応答する。   FIG. 7 is a flowchart showing processing of the reference request receiving unit. When the reference request receiving unit 144 receives a reference request from the client 110, the reference request receiving unit 144 starts reference processing. The reference request stores a selection (SELECT statement) that is a reference SQL. When the reference SQL is not stored in the reference request, an error code or an error message is returned to the client 110.

本実施形態では、XML形式を扱うため、参照対象のデータ構造を指定する際にはXPathなどのXMLパス言語を利用する。その他、XQueryや、リレーショナルデータベースにおいてはSQLなどのデータベースアクセス言語が使用される。   In this embodiment, since the XML format is handled, an XML path language such as XPath is used when specifying the data structure to be referred to. In addition, database access languages such as SQL are used in XQuery and relational databases.

参照要求受付部144は、SELECT文を指定して、検索部148を呼び出す。検索部148は、SELECT文に対する検索結果をキャッシュデータ220から取得し、取得できない場合はオリジナルデータ172から検索結果を取得する(ステップS710)。そして、参照要求受付部144は、検索結果をクライアント110に応答し(ステップS720)、一連の処理を終了する。検索処理が正常に終了した場合は正常に終了した旨を応答する。検索処理中に何からのエラーが発生した場合はエラーコードやエラーメッセージなどを応答する。以上の処理により、参照要求に対してキャッシュサーバ120が管理するキャッシュデータ220、あるいはオリジナルサーバ170が管理するオリジナルデータ172から検索結果を取得することができる。なお、ステップS710の詳細は、図8において説明する。   The reference request reception unit 144 calls the search unit 148 by specifying a SELECT statement. The search unit 148 acquires the search result for the SELECT statement from the cache data 220. If the search result cannot be acquired, the search unit 148 acquires the search result from the original data 172 (step S710). Then, the reference request receiving unit 144 returns the search result to the client 110 (step S720), and ends the series of processes. When the search process is completed normally, a response indicating that the search process is completed normally is returned. If an error occurs during the search process, an error code or error message is returned. With the above processing, the search result can be acquired from the cache data 220 managed by the cache server 120 or the original data 172 managed by the original server 170 in response to the reference request. Details of step S710 will be described with reference to FIG.

図8は、検索部の処理を示すフローチャートである。検索部148は、SELECT文を指定されて処理を開始する。SELECT文に検索条件、つまり検索の対象となるデータの範囲が指定されているか否かを判定する(ステップS810)。   FIG. 8 is a flowchart showing the processing of the search unit. The search unit 148 starts processing by specifying a SELECT statement. It is determined whether or not a search condition, that is, a range of data to be searched is specified in the SELECT statement (step S810).

具体的には、検索条件の指定方法の一例として、SELECT文におけるWHERE句が挙げられる。WHERE句には検索条件210と同じ形式で条件を指定することができ、そこで指定された条件を満たすキャッシュデータ220が検索の対象となる。   Specifically, as an example of a method for specifying a search condition, a WHERE clause in a SELECT statement is given. In the WHERE clause, a condition can be specified in the same format as the search condition 210, and the cache data 220 that satisfies the specified condition becomes the search target.

検索部148は、ステップS810において、SELECT文に検索条件が指定されている場合(ステップS810,Yes)、当該検索条件がキャッシュ内に存在するか否か、つまりキャッシュ管理テーブル152の検索条件210に合致するか否かを判定する(ステップS820)。検索条件210に合致するということは、当該検索条件に対する検索結果がキャッシュデータ220に存在することを意味する。検索部148は、当該検索条件が検索条件210に合致する場合(ステップS820,Yes)、当該検索条件210に対応するキャッシュデータ220を検索結果として取得して(ステップS830)、一連の処理を終了する。   If the search condition is specified in the SELECT statement in step S810 (Yes in step S810), the search unit 148 determines whether the search condition exists in the cache, that is, the search condition 210 of the cache management table 152. It is determined whether or not they match (step S820). Matching the search condition 210 means that the search result for the search condition exists in the cache data 220. When the search condition matches the search condition 210 (step S820, Yes), the search unit 148 acquires the cache data 220 corresponding to the search condition 210 as a search result (step S830), and ends the series of processing. To do.

具体的には、検索結果を取得できる一例として、検索条件に”商品/価格=1500”が指定された場合、検索条件210に当該検索条件に合致するエントリが存在する。この場合、当該検索条件に対するキャッシュデータ220を検索結果として取得する。   Specifically, as an example in which a search result can be acquired, when “product / price = 1500” is designated as a search condition, an entry that matches the search condition exists in the search condition 210. In this case, the cache data 220 corresponding to the search condition is acquired as a search result.

検索部148は、ステップS810において、SELECT文に検索条件が指定されていない場合(ステップS810,No)、オリジナルサーバ170から検索結果を取得する(ステップS840)。また、検索部148は、ステップS820において、SELECT文に指定された検索条件がキャッシュ内に存在しない場合(ステップS820,No)、当該検索条件を指定してオリジナルサーバ170から検索結果を取得する(ステップS840)。そして、SELECT文に指定された検索条件、およびオリジナルサーバ170から取得した検索結果を、それぞれ検索条件210、およびキャッシュデータ220に追加し(ステップS850)、一連の処理を終了する。   If no search condition is specified in the SELECT statement in step S810 (step S810, No), the search unit 148 acquires a search result from the original server 170 (step S840). Further, in step S820, when the search condition specified in the SELECT statement does not exist in the cache (No in step S820), the search unit 148 specifies the search condition and acquires the search result from the original server 170 ( Step S840). Then, the search condition specified in the SELECT statement and the search result acquired from the original server 170 are added to the search condition 210 and the cache data 220, respectively (step S850), and the series of processing ends.

以上の処理により、以降同一の検索条件を受付けた時には、当該検索条件210に対する検索結果をキャッシュデータ220から取得できるようになる。   With the above processing, when the same search condition is accepted thereafter, the search result for the search condition 210 can be acquired from the cache data 220.

本実施形態は、クライアント110と、オリジナルサーバ170と、クライアント110からの要求に対しオリジナルサーバを代行するキャッシュサーバ120とを含んで構成されるサーバシステムであって、キャッシュサーバ120は、参照要求の検索条件と検索条件に合致した検索結果とを関連付けたキャッシュデータを記憶する記憶装置151と、クライアントから要求を受理する受付部(例えば、更新要求受付部143)と、受付部が更新要求のうちの登録要求を受理すると、登録要求の登録データが記憶装置に記憶されている検索条件を満たすか否かを判定し、検索条件を満たすとき、登録データを、検索条件と関連付けて記憶装置に登録する登録部145と、を有する。   The present embodiment is a server system including a client 110, an original server 170, and a cache server 120 acting on behalf of the original server in response to a request from the client 110. A storage device 151 that stores cache data in which a search condition and a search result that matches the search condition are stored; a reception unit that accepts a request from a client (for example, an update request reception unit 143); When the registration request is received, it is determined whether the registration request registration data satisfies the search condition stored in the storage device. When the search condition is satisfied, the registration data is registered in the storage device in association with the search condition. And a registration unit 145.

キャッシュサーバ120は、さらに、受付部が上書き要求を受理すると、上書き要求に上書き条件があるか否かを判定し、上書き条件があるとき指定されたデータ構造がキャッシュデータにあるか否かを判定し、指定されたデータ構造がキャッシュデータにあるとき、キャッシュデータのうち指定されたデータ構造に該当するキャッシュデータを上書きし、指定されたデータ構造がキャッシュデータにないとき、キャッシュデータを削除する上書き部146を有する。   Further, when the accepting unit accepts the overwrite request, the cache server 120 determines whether or not the overwrite request has an overwrite condition, and determines whether or not the specified data structure exists in the cache data when the overwrite condition exists. If the specified data structure is in the cache data, the cache data corresponding to the specified data structure is overwritten, and if the specified data structure is not in the cache data, the cache data is deleted. Part 146.

キャッシュサーバ120は、さらに、受付部が削除要求を受理すると、削除要求に削除条件があるか否かを判定し、削除条件があるとき指定されたデータ構造がキャッシュデータにあるか否かを判定し、指定されたデータ構造がキャッシュデータにあるとき、キャッシュデータのうち指定されたデータ構造に該当するキャッシュデータを削除し、指定されたデータ構造がキャッシュデータにないとき、キャッシュデータを削除する削除部147を有する。   Further, when the accepting unit accepts the deletion request, the cache server 120 determines whether or not the deletion request has a deletion condition, and determines whether or not the specified data structure exists in the cache data when the deletion condition exists. When the specified data structure is in the cache data, the cache data corresponding to the specified data structure is deleted from the cache data, and the cache data is deleted when the specified data structure is not in the cache data. Part 147.

キャッシュサーバ120は、登録要求、上書き要求、削除要求のいずれかである更新要求を受付けた際に、キャッシュデータを更新するとともに、データベースに更新要求を指令する。   When the cache server 120 receives an update request that is one of a registration request, an overwrite request, and a deletion request, the cache server 120 updates the cache data and instructs the database to make an update request.

キャッシュサーバ120は、さらに、受付部が参照要求を受理すると、参照要求に検索条件があるか否かを判定し、検索条件があるとき指定されたデータ構造がキャッシュデータにあるか否かを判定し、指定されたデータ構造がキャッシュデータにあるとき、キャッシュデータのうち指定されたデータ構造に該当するキャッシュデータを取得し、指定されたデータ構造がキャッシュデータにないとき、データサーバから取得しキャッシュデータに追加する参照要求部(例えば、検索部148)を有する。   Further, when the accepting unit accepts the reference request, the cache server 120 determines whether or not the reference request has a search condition, and determines whether or not the specified data structure exists in the cache data when the search condition exists. When the specified data structure is in the cache data, the cache data corresponding to the specified data structure is acquired from the cache data, and when the specified data structure is not in the cache data, the cache data is acquired from the data server and cached. A reference request unit (for example, a search unit 148) to be added to the data is included.

このような構成によれば、更新要求に対する登録処理、上書き処理、削除処理に対して、キャッシュサーバ120のキャッシュデータ220を最新状態に更新することができる。これにより、参照要求に対して、キャッシュのヒット率を高め、参照性能を向上させることができる。   According to such a configuration, the cache data 220 of the cache server 120 can be updated to the latest state with respect to the registration process, overwrite process, and delete process for the update request. Thereby, the cache hit rate can be increased and the reference performance can be improved in response to the reference request.

《実施形態2》
図9は、実施形態2のサーバシステムの構成を示すブロック図である。本実施形態は、実施形態1と比較して、クライアント110、オリジナルサーバ170の構成は同じであるが、複数台のキャッシュサーバ120がネットワーク10に接続される構成である。複数台のキャッシュサーバ120を並列化することで、各キャッシュサーバ120に対するアクセス負荷を分散でき、かつ、キャッシュ容量を増強することができる。なお、実施形態1と同一構成品については、同一番号を付しており、説明は省略する。
<< Embodiment 2 >>
FIG. 9 is a block diagram illustrating a configuration of the server system according to the second embodiment. In this embodiment, the configuration of the client 110 and the original server 170 is the same as that of the first embodiment, but a plurality of cache servers 120 are connected to the network 10. By parallelizing a plurality of cache servers 120, the access load on each cache server 120 can be distributed and the cache capacity can be increased. In addition, about the same component as Embodiment 1, the same number is attached | subjected and description is abbreviate | omitted.

キャッシュサーバ120は、キャッシュサーバ(1)〜キャッシュサーバ(10)から構成されている。記憶装置151には、キャッシュ管理テーブル152に加えて、キャッシュ割当テーブル920(図10参照)を有する。また、キャッシュ制御プログラム142には、処理内容として、更新要求受付部143、参照要求受付部144、登録部145、上書き部146、削除部147、検索部148に加えて、キャッシュ所在判定部910(図13参照)を有する。キャッシュ割当テーブル920およびキャッシュ所在判定部910については、図10および図13において説明する。   The cache server 120 includes a cache server (1) to a cache server (10). The storage device 151 has a cache allocation table 920 (see FIG. 10) in addition to the cache management table 152. In addition to the update request receiving unit 143, the reference request receiving unit 144, the registration unit 145, the overwriting unit 146, the deleting unit 147, and the searching unit 148, the cache control program 142 includes a cache location determination unit 910 ( 13). The cache allocation table 920 and the cache location determination unit 910 will be described with reference to FIGS.

本実施形態では、更新あるいは参照の各要求が対象とするXMLの集合は、XMLの特定のデータ構造において同じ値をもつXMLの集合に等しいとする。当該XMLの集合を表現する一例として、すべてのXMLに共通なデータ構造を導入し、そこに識別子を格納する。その識別子の値は、更新あるいは参照の各要求が対象とするXMLの集合を一意に識別可能な値とする。   In the present embodiment, it is assumed that the XML set targeted by each update or reference request is equal to an XML set having the same value in a specific data structure of XML. As an example of expressing the set of XML, a data structure common to all XML is introduced, and an identifier is stored therein. The value of the identifier is a value that can uniquely identify a set of XML targeted by each update or reference request.

本実施形態では、すべてのXMLに共通なデータ構造として”商品/分類ID”、つまり、要素”商品”の子要素”分類ID”を導入し、当該要素の内容に識別子を格納する。その識別子は、0000以上かつ9999以下の4桁の整数値とする。識別子には、GUID(Globally Unique IDentifier)など、重複することがなく、ユニークであることが保証されたランダムな数値などを利用することもできる。   In this embodiment, “product / classification ID”, that is, a child element “classification ID” of the element “product” is introduced as a data structure common to all XML, and an identifier is stored in the content of the element. The identifier is a four-digit integer value between 0000 and 9999. As the identifier, a random numerical value such as GUID (Globally Unique IDentifier) that is guaranteed to be unique without being duplicated can be used.

具体的には、更新要求の一例として、UPDATE文のWHERE句に”商品/分類ID=0300”が指定された場合、要素”商品”の子要素”分類ID”の値が0300であるXMLの集合が更新の対象となる。   Specifically, as an example of an update request, when “product / classification ID = 0300” is specified in the WHERE clause of the UPDATE statement, an XML element having a value “0300” as a child element “classification ID” of the element “product” The set is subject to update.

なお、識別子として、要素の内容をそのまま利用する代わりに、要素の内容にハッシュ関数をほどこし、そのハッシュ値を利用することもできる。これにより、要素の内容が文字列の場合であっても、数値に変換することができるため、以降で述べるレンジ分割やその定義が容易になる。   As an identifier, instead of using the content of the element as it is, a hash function can be applied to the content of the element and the hash value can be used. Thereby, even if the content of the element is a character string, it can be converted into a numerical value, so that range division and its definition described later become easy.

本実施形態は、図9に示すように、複数台のキャッシュサーバで構成されることが特徴であり、各キャッシュサーバ120は、識別子のレンジに応じたキャッシュデータ220を保持する役割をもつ。言い換えると、識別子のレンジと、キャッシュサーバ120の対応関係を定義することで、どの識別子に対してどのキャッシュサーバ120が検索結果を保持する役割をもつかがわかる。   As shown in FIG. 9, the present embodiment is characterized by a plurality of cache servers, and each cache server 120 has a role of holding cache data 220 corresponding to a range of identifiers. In other words, by defining the correspondence between identifier ranges and cache servers 120, it is possible to know which cache server 120 has a role of holding search results for which identifier.

図10は、キャッシュ割当テーブルの一例を示す説明図である。記憶装置151に格納されたキャッシュ割当テーブル920には、識別子所在1010、識別子レンジ1020、およびキャッシュサーバ所在1030が関連付けて管理されている。識別子所在1010には、識別子が存在するXMLのデータ構造が格納される。識別子レンジ1020には、識別子の値が、一定間隔で重複なくレンジに分割される。キャッシュサーバ所在1030には、識別子レンジ1020における各レンジに対して、キャッシュデータを保持する役割をもつキャッシュサーバが関連付けられている。例えば、識別子レンジが0000以上、0999以下の場合は、キャッシュサーバ(1)に対応し、識別子レンジが1000以上、1999以下の場合は、キャッシュサーバ(2)に対応する。   FIG. 10 is an explanatory diagram showing an example of a cache allocation table. In the cache allocation table 920 stored in the storage device 151, an identifier location 1010, an identifier range 1020, and a cache server location 1030 are managed in association with each other. The identifier location 1010 stores an XML data structure in which an identifier exists. In the identifier range 1020, the identifier value is divided into ranges without any overlap at regular intervals. The cache server location 1030 is associated with each range in the identifier range 1020 and a cache server having a role of holding cache data. For example, when the identifier range is 0000 or more and 0999 or less, it corresponds to the cache server (1), and when the identifier range is 1000 or more and 1999 or less, it corresponds to the cache server (2).

図11は、更新要求受付部の他の処理を示すフローチャートである。更新要求受付部143(図9参照)は、クライアント110からの更新要求を受付けると、更新処理を開始する。   FIG. 11 is a flowchart showing another process of the update request receiving unit. When receiving an update request from the client 110, the update request receiving unit 143 (see FIG. 9) starts an update process.

更新要求受付部143は、更新要求に格納されている更新系SQLである、登録(INSERT文)、上書き(UPDATE文)、削除(INSERT文)を指定して、キャッシュ所在判定部910(図9参照)を呼び出し、キャッシュの所在を判定する(ステップS1110)。キャッシュ所在判定部910は、更新系SQLを解析して、キャッシュデータ220を更新する役割をもつキャッシュサーバ120を特定する。キャッシュデータ220を保持する役割をもつキャッシュサーバ120が自サーバ以外である場合、当該キャッシュサーバ120に処理を委譲する。そして、ステップS310へ進む。ステップS310以降は、図3と同様であるので、説明を省略する。なお、ステップS1110の詳細は、図13において説明する。   The update request receiving unit 143 designates registration (INSERT statement), overwrite (UPDATE statement), and deletion (INSERT statement), which are update-type SQL stored in the update request, and a cache location determination unit 910 (FIG. 9). (Refer to) and the cache location is determined (step S1110). The cache location determination unit 910 analyzes the update SQL and identifies the cache server 120 that has a role of updating the cache data 220. When the cache server 120 having the role of holding the cache data 220 is other than its own server, the process is delegated to the cache server 120. Then, the process proceeds to step S310. Step S310 and subsequent steps are the same as those in FIG. Details of step S1110 will be described with reference to FIG.

図12は、参照要求受付部の他の処理を示すフローチャートである。参照要求受付部144は、クライアント110からの参照要求を受付けると、検索処理を開始する。   FIG. 12 is a flowchart showing another process of the reference request receiving unit. When the reference request receiving unit 144 receives a reference request from the client 110, the reference request receiving unit 144 starts search processing.

参照要求受付部144は、参照要求に格納されている参照系SQLである、検索(SELECT文)を指定して、キャッシュ所在判定部910を呼び出す(ステップS1210)。キャッシュ所在判定部910は、参照系SQLを解析して、キャッシュデータ220を検索する役割をもつキャッシュサーバ120を特定する。キャッシュデータ220を保持する役割をもつキャッシュサーバ120が自マシン以外である場合、当該キャッシュサーバ120に処理を委譲する。そして、ステップS710へ進む。ステップS710以降は、図7と同様であるので、説明を省略する。なお、ステップS1210の詳細は、図13において説明する。   The reference request receiving unit 144 designates a search (SELECT statement) that is the reference SQL stored in the reference request, and calls the cache location determination unit 910 (step S1210). The cache location determination unit 910 analyzes the reference SQL and identifies the cache server 120 that has a role of searching the cache data 220. When the cache server 120 having the role of holding the cache data 220 is other than its own machine, the process is delegated to the cache server 120. Then, the process proceeds to step S710. Steps S710 and subsequent steps are the same as those in FIG. Details of step S1210 will be described with reference to FIG.

図13は、キャッシュ所在判定部の処理を示すフローチャートである。キャッシュ所在判定部910は、更新系SQLあるいは参照系SQLを解析して、識別子を取得できるか否かを判定する(ステップS1310)。キャッシュ所在判定部910は、更新系SQLであり、かつ、INSERT文の場合、当該INSERT文に格納されている登録データから更新の対象となる識別子を取り出す。更新系SQLであり、かつ、UPDATE文あるいはDELETE文の場合、それぞれ上書き条件あるいは削除条件から更新の対象となる識別子を取り出す。一方、参照系SQLの場合、検索条件から検索の対象となる識別子を取り出す。   FIG. 13 is a flowchart showing the processing of the cache location determination unit. The cache location determination unit 910 analyzes the update system SQL or the reference system SQL and determines whether or not an identifier can be acquired (step S1310). If the cache location determination unit 910 is an update SQL and is an INSERT statement, the cache location determination unit 910 extracts an identifier to be updated from registration data stored in the INSERT statement. In the case of an update SQL and an UPDATE statement or a DELETE statement, an identifier to be updated is extracted from the overwrite condition or the delete condition, respectively. On the other hand, in the case of the reference system SQL, an identifier to be searched is extracted from the search condition.

具体的には、更新系SQLから識別子を取り出す一例として、UPDATE文におけるWHERE句において、”商品/分類ID=4000”が指定されている場合、識別子は4000となる。   Specifically, as an example of extracting the identifier from the update SQL, when “product / classification ID = 4000” is specified in the WHERE clause in the UPDATE statement, the identifier is 4000.

キャッシュ所在判定部910は、ステップS1310において、識別子を取得できる場合(ステップS1310,Yes)、キャッシュデータ220を更新あるいは参照する役割をもつキャッシュサーバ120を特定する(ステップS1320)。キャッシュ所在判定部910は、キャッシュ割当テーブル920において、取得した識別子に対応する識別子レンジ1020を選定する。続いて、キャッシュサーバ所在1030において、当該識別子レンジ1020に対応するキャッシュサーバ120を特定する。   When the identifier can be acquired in step S1310 (step S1310, Yes), the cache location determination unit 910 identifies the cache server 120 that has a role of updating or referring to the cache data 220 (step S1320). The cache location determination unit 910 selects an identifier range 1020 corresponding to the acquired identifier in the cache allocation table 920. Subsequently, in the cache server location 1030, the cache server 120 corresponding to the identifier range 1020 is specified.

具体的には、キャッシュサーバを特定する一例として、識別子が4000であった場合、識別子レンジ1020から4000以上かつ4999以下のレンジに該当することが分かる。そして、キャッシュサーバ(4)が当該レンジに対応するキャッシュサーバとなる。   Specifically, as an example of specifying the cache server, when the identifier is 4000, it can be seen that the identifier range is from 1020 to 4000 to 4999. The cache server (4) becomes a cache server corresponding to the range.

キャッシュ所在判定部910は、ステップS1320において、特定されたキャッシュサーバ120から自サーバであるか否かを判定する(ステップS1330)。キャッシュ所在判定部910は、ステップS1330において、自サーバである場合(ステップS1330,Yes)、処理を終了する。以降は、自サーバにて以降の処理を継続する。キャッシュ所在判定部910は、ステップS1330において、自サーバでない場合(ステップS1330,No)、つまり他のキャッシュサーバ120である場合、当該キャッシュサーバ120に更新要求あるいは参照要求を送信し、以降の処理を委譲する(ステップS1360)。   In step S1320, the cache location determination unit 910 determines whether or not it is the local server from the identified cache server 120 (step S1330). If the cache location determination unit 910 is the server itself in step S1330 (step S1330, Yes), the process ends. Thereafter, the subsequent processing is continued on the local server. In step S1330, the cache location determination unit 910 transmits an update request or a reference request to the cache server 120 if it is not the server itself (No in step S1330), that is, if it is another cache server 120, and performs subsequent processing. Delegation is performed (step S1360).

キャッシュ所在判定部910は、ステップS1310において、識別子を取得できない場合(ステップS1310,No)、更新要求であるか否かを判定する(ステップS1340)。キャッシュ所在判定部910は、ステップS1340において、更新要求である場合(ステップS1340,Yes)、更新の対象となるキャッシュデータ220を特定できない。このとき、キャッシュデータ220を更新しないと、参照要求に対して古い検索結果が参照されてしまう可能性がある。そこで、すべてのキャッシュサーバ120にキャッシュの無効化を要求し、キャッシュデータ220の全体を消去して(ステップS1350)、処理を終了する。   If the identifier cannot be acquired in step S1310 (No in step S1310), the cache location determination unit 910 determines whether the request is an update request (step S1340). If the cache location determination unit 910 is an update request in Step S1340 (Yes in Step S1340), the cache location determination unit 910 cannot specify the cache data 220 to be updated. At this time, if the cache data 220 is not updated, an old search result may be referred to the reference request. Therefore, all cache servers 120 are requested to invalidate the cache, the entire cache data 220 is erased (step S1350), and the process ends.

キャッシュ所在判定部910は、ステップS1340において、更新要求でない場合、つまり参照要求である場合(ステップS1340,No)、検索の対象となるキャッシュデータ220を特定できない。そこで、自サーバにて以降の処理を継続する。   If the cache location determination unit 910 is not an update request in step S1340, that is, if it is a reference request (step S1340, No), the cache location determination unit 910 cannot specify the cache data 220 to be searched. Therefore, the subsequent processing is continued on the own server.

図14は、キャッシュ管理テーブルの他の例を示す説明図である。キャッシュ管理テーブル152には、検索条件210には、識別子を指定した検索条件が格納されている。   FIG. 14 is an explanatory diagram of another example of the cache management table. In the cache management table 152, the search condition 210 stores a search condition specifying an identifier.

例えば、識別子である”商品/分類ID”の値が0300および0700に対して、それぞれ該当するキャッシュデータ220が格納されている。この場合、識別子が0000以上であり0999以下であることから、キャッシュ割当テーブル820に基づいて、当該キャッシュデータ220はキャッシュサーバ(1)に対応するものであることがわかる。   For example, corresponding cache data 220 is stored for the values of “product / classification ID” as identifiers 0300 and 0700, respectively. In this case, since the identifier is 0000 or more and 0999 or less, it can be seen that the cache data 220 corresponds to the cache server (1) based on the cache allocation table 820.

本実施形態によれば、キャッシュサーバ120は、複数のキャッシュサーバ(例えば、キャッシュサーバ(1)〜キャッシュサーバ(10)で構成され、各キャッシュサーバ120は、各キャッシュサーバ120を識別する識別子が記憶される割当情報(例えば、キャッシュ割当テーブル920)を有し、クライアント110から更新要求があった際に、更新要求に含まれる識別子が割当情報を参照して該当するキャッシュサーバを特定し、特定されたキャッシュサーバに更新要求を送信している。すなわち、更新要求に対して、識別子が指定されている限りは、キャッシュサーバ120を特定することができ、キャッシュデータ220を最新状態に更新することができる。これにより、複数のキャッシュサーバ構成においても、参照要求に対して、キャッシュのヒット率を高め、参照性能を向上させることができる。   According to the present embodiment, the cache server 120 includes a plurality of cache servers (for example, the cache server (1) to the cache server (10)), and each cache server 120 stores an identifier for identifying each cache server 120. Allocation information (for example, cache allocation table 920), and when an update request is made from the client 110, an identifier included in the update request refers to the allocation information, identifies the corresponding cache server, and is specified. In other words, as long as an identifier is specified for the update request, the cache server 120 can be specified and the cache data 220 can be updated to the latest state. As a result, even in the case of multiple cache server configurations, it is possible to handle reference requests. To enhance the hit rate of the cache, it is possible to improve the reference performance.

本発明は、大規模データベース構成におけるキャッシュ管理システムに適用することができる。同一の検索条件が集中し、検索結果に対する更新頻度が高いケースにおいても、キャッシュのヒット率を高め、参照性能を向上させることができる。   The present invention can be applied to a cache management system in a large-scale database configuration. Even in the case where the same search conditions are concentrated and the update frequency for the search result is high, the cache hit rate can be increased and the reference performance can be improved.

実施形態1のサーバシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the server system of Embodiment 1. キャッシュ管理テーブルの一例を示す説明図である。It is explanatory drawing which shows an example of a cache management table. 更新要求受付部の処理を示すフローチャートである。It is a flowchart which shows the process of an update request reception part. 登録部の処理を示すフローチャートである。It is a flowchart which shows the process of a registration part. 上書き部の処理を示すフローチャートである。It is a flowchart which shows the process of an overwrite part. 削除部の処理を示すフローチャートである。It is a flowchart which shows the process of a deletion part. 参照要求受付部の処理を示すフローチャートである。It is a flowchart which shows the process of a reference request reception part. 検索部の処理を示すフローチャートである。It is a flowchart which shows the process of a search part. 実施形態2のサーバシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the server system of Embodiment 2. キャッシュ割当テーブルの一例を示す説明図である。It is explanatory drawing which shows an example of a cache allocation table. 更新要求受付部の他の処理を示すフローチャートである。It is a flowchart which shows the other process of an update request reception part. 参照要求受付部の他の処理を示すフローチャートである。It is a flowchart which shows the other process of a reference request reception part. キャッシュ所在判定部の処理を示すフローチャートである。It is a flowchart which shows the process of a cache location determination part. キャッシュ管理テーブルの他の例を示す説明図である。It is explanatory drawing which shows the other example of a cache management table.

符号の説明Explanation of symbols

110 クライアント
120 キャッシュサーバ
130 プロセッサ
140 メモリ
141 プログラム
142 キャッシュ制御プログラム
143 更新要求受付部
144 参照要求受付部
145 登録部
146 上書き部
147 削除部
148 検索部
150 ディスクインタフェイス
151,171 記憶装置
152 キャッシュ管理テーブル
160 通信インタフェイス
170 オリジナルサーバ
172 オリジナルデータ
910 キャッシュ所在判定部
920 キャッシュ割当テーブル
DESCRIPTION OF SYMBOLS 110 Client 120 Cache server 130 Processor 140 Memory 141 Program 142 Cache control program 143 Update request reception part 144 Reference request reception part 145 Registration part 146 Overwrite part 147 Deletion part 148 Search part 150 Disk interface 151,171 Storage device 152 Cache management table 160 Communication Interface 170 Original Server 172 Original Data 910 Cache Location Determination Unit 920 Cache Allocation Table

Claims (16)

クライアントからの要求に対しデータサーバを代行し、前記要求のうちの参照要求の検索条件と前記検索条件に合致した検索結果を関連付けたキャッシュデータを記憶する記憶装置を備えるキャッシュサーバであって、
前記要求を受付ける受付部が前記要求のうちの登録要求を受理すると、前記登録要求の登録データが前記記憶装置に記憶されている検索条件を満たすか否かを判定し、前記検索条件を満たすとき、前記登録データを、前記検索条件と関連付けて前記記憶装置に登録する登録部を有する
ことを特徴とするキャッシュサーバ。
A cache server comprising a storage device that stores a cache data in which a data server is substituted for a request from a client, and a search result of the reference request in the request is associated with a search result that matches the search condition,
When the accepting unit that accepts the request accepts the registration request of the request, it determines whether the registration data of the registration request satisfies the search condition stored in the storage device, and when the search condition is satisfied A cache server, comprising: a registration unit that registers the registration data in the storage device in association with the search condition.
前記キャッシュサーバは、さらに、
前記受付部が前記要求のうちの上書き要求を受理すると、前記上書き要求に上書き条件があるか否かを判定し、上書き条件があるときには指定されたデータ構造が前記キャッシュデータにあるか否かを判定し、指定されたデータ構造が前記キャッシュデータにあるとき、前記キャッシュデータのうち前記指定されたデータ構造に該当するキャッシュデータを上書きし、指定されたデータ構造が前記キャッシュデータにないとき、前記キャッシュデータを削除する上書き部を有する
ことを特徴とする請求項1に記載のキャッシュサーバ。
The cache server further includes:
When the accepting unit accepts an overwrite request among the requests, it determines whether or not the overwrite request has an overwrite condition, and if there is an overwrite condition, determines whether or not the specified data structure is in the cache data. Determining, when the specified data structure is in the cache data, overwriting the cache data corresponding to the specified data structure of the cache data, and when the specified data structure is not in the cache data, The cache server according to claim 1, further comprising an overwrite unit that deletes cache data.
前記キャッシュサーバは、さらに、
前記受付部が前記要求のうちの削除要求を受理すると、前記削除要求に削除条件があるか否かを判定し、削除条件があるときには指定されたデータ構造が前記キャッシュデータにあるか否かを判定し、指定されたデータ構造が前記キャッシュデータにあるとき、前記キャッシュデータのうち前記指定されたデータ構造に該当するキャッシュデータを削除し、指定されたデータ構造が前記キャッシュデータにないとき、前記キャッシュデータを削除する削除部を有する
ことを特徴とする請求項1に記載のキャッシュサーバ。
The cache server further includes:
When the accepting unit accepts a deletion request among the requests, it determines whether or not the deletion request has a deletion condition, and if there is a deletion condition, determines whether or not the specified data structure is in the cache data. Determining, when the specified data structure is in the cache data, deleting the cache data corresponding to the specified data structure from the cache data, and when the specified data structure is not in the cache data, The cache server according to claim 1, further comprising a deletion unit that deletes cache data.
前記キャッシュサーバは、登録要求、上書き要求、削除要求のいずれかである更新要求を受付けた際に、前記キャッシュデータを更新するとともに、前記データサーバに更新要求を指令する
ことを特徴とする請求項1に記載のキャッシュサーバ。
The cache server, when receiving an update request that is one of a registration request, an overwrite request, and a deletion request, updates the cache data and instructs the data server to perform an update request. 1. The cache server according to 1.
前記キャッシュサーバは、さらに、
前記受付部が前記要求のうちの参照要求を受理すると、前記参照要求に検索条件があるか否かを判定し、検索条件があるときには指定されたデータ構造が前記キャッシュデータにあるか否かを判定し、指定されたデータ構造が前記キャッシュデータにあるとき、前記キャッシュデータのうち前記指定されたデータ構造に該当するキャッシュデータを取得し、指定されたデータ構造が前記キャッシュデータにないとき、前記データサーバから取得し前記キャッシュデータに追加する参照要求部を有する
ことを特徴とする請求項1に記載のキャッシュサーバ。
The cache server further includes:
When the accepting unit accepts a reference request among the requests, it determines whether or not the reference request has a search condition, and if there is a search condition, determines whether or not the specified data structure is in the cache data. Determining, when the specified data structure is in the cache data, obtaining cache data corresponding to the specified data structure among the cache data, and when the specified data structure is not in the cache data, The cache server according to claim 1, further comprising a reference request unit that is acquired from a data server and added to the cache data.
前記キャッシュサーバは、前記クライアントからSQL又はXQueryのデータベースアクセス言語を用いて更新要求又は参照要求される
ことを特徴とする請求項1に記載のキャッシュサーバ。
The cache server according to claim 1, wherein an update request or a reference request is made from the client using a database access language of SQL or XQuery.
前記キャッシュサーバは、前記キャッシュデータとして、XML形式、テキスト形式、バイナリ形式の少なくともいずれかのデータ形式で前記記憶装置に記憶する
ことを特徴とする請求項1に記載のキャッシュサーバ。
The cache server according to claim 1, wherein the cache server stores the cache data in the storage device in at least one of an XML format, a text format, and a binary format.
前記キャッシュサーバは、複数のキャッシュサーバで構成され、
各前記キャッシュサーバは、各前記キャッシュサーバを識別する識別子が記憶される割当情報を有し、
前記クライアントから更新要求があった際に、前記更新要求に含まれる前記識別子が
前記割当情報を参照して該当するキャッシュサーバを特定し、特定されたキャッシュサーバに前記更新要求を送信する
ことを特徴とする請求項1から請求項7のいずれか1項に記載のキャッシュサーバ。
The cache server is composed of a plurality of cache servers,
Each of the cache servers has allocation information in which an identifier for identifying each of the cache servers is stored,
When there is an update request from the client, the identifier included in the update request refers to the allocation information to identify a corresponding cache server, and transmits the update request to the identified cache server. The cache server according to any one of claims 1 to 7.
クライアントからの要求に対しデータサーバを代行し、前記要求のうちの参照要求の検索条件と前記検索条件に合致した検索結果とを関連付けたキャッシュデータを記憶する記憶装置を備えるキャッシュサーバのキャッシュ管理方法であって、
前記キャッシュサーバは、前記要求を受付ける受付部と、登録部とを備え、
前記登録部は、前記受付部が前記要求のうちの登録要求を受理すると、前記登録要求の登録データが前記記憶装置に記憶されている検索条件を満たすか否かを判定し、前記検索条件を満たすとき、前記登録データを、前記検索条件と関連付けて前記記憶装置に記憶する
ことを特徴とするキャッシュ管理方法。
A cache management method for a cache server, comprising: a storage device that stores cache data in which a data server is substituted for a request from a client and the search condition of a reference request in the request is associated with a search result that matches the search condition Because
The cache server includes a reception unit that receives the request, and a registration unit,
The registration unit determines whether or not registration data of the registration request satisfies a search condition stored in the storage device when the reception unit receives a registration request among the requests, and determines the search condition. When satisfied, the registration data is stored in the storage device in association with the search condition.
前記キャッシュサーバは、さらに、上書き部と、削除部とを備え、
前記上書き部は、前記受付部が前記要求のうちの上書き要求を受理すると、前記上書き要求に上書き条件があるか否かを判定し、上書き条件があるときには指定されたデータ構造が前記キャッシュデータにあるか否かを判定し、指定されたデータ構造が前記キャッシュデータにあるとき、前記キャッシュデータのうち前記指定されたデータ構造に該当するキャッシュデータを上書きし、指定されたデータ構造が前記キャッシュデータにないとき、前記キャッシュデータを削除し、
前記削除部は、前記受付部が前記要求のうちの削除要求を受理すると、前記削除要求に削除条件があるか否かを判定し、削除条件があるときには指定されたデータ構造が前記キャッシュデータにあるか否かを判定し、指定されたデータ構造が前記キャッシュデータにあるとき、前記キャッシュデータのうち前記指定されたデータ構造に該当するキャッシュデータを削除し、指定されたデータ構造が前記キャッシュデータにないとき、前記キャッシュデータを削除する
ことを特徴とする請求項9に記載のキャッシュ管理方法。
The cache server further includes an overwrite unit and a deletion unit,
When the accepting unit accepts an overwrite request among the requests, the overwriting unit determines whether the overwriting request has an overwriting condition, and when there is an overwriting condition, the specified data structure is included in the cache data. If the specified data structure is in the cache data, the cache data corresponding to the specified data structure is overwritten in the cache data, and the specified data structure is the cache data. If not, delete the cache data,
When the receiving unit accepts a deletion request among the requests, the deletion unit determines whether or not the deletion request has a deletion condition, and when there is a deletion condition, the specified data structure is included in the cache data. And determining whether or not there is a specified data structure in the cache data, the cache data corresponding to the specified data structure is deleted from the cache data, and the specified data structure is the cache data The cache management method according to claim 9, wherein the cache data is deleted when it is not present.
前記キャッシュサーバは、登録要求、上書き要求、削除要求のいずれかである更新要求を受付けた際に、前記キャッシュデータを更新するとともに、前記データサーバに更新要求を指令する
ことを特徴とする請求項9に記載のキャッシュ管理方法。
The cache server, when receiving an update request that is one of a registration request, an overwrite request, and a deletion request, updates the cache data and instructs the data server to perform an update request. 10. The cache management method according to 9.
前記キャッシュサーバは、さらに、参照要求部を備え、
前記参照要求部は、前記受付部が前記要求のうちの参照要求を受理すると、前記参照要求に検索条件があるか否かを判定し、検索条件があるときには指定されたデータ構造が前記キャッシュデータにあるか否かを判定し、指定されたデータ構造が前記キャッシュデータにあるとき、前記キャッシュデータのうち前記指定されたデータ構造に該当するキャッシュデータを取得し、指定されたデータ構造が前記キャッシュデータにないとき、前記データサーバから取得し前記キャッシュデータに追加する
ことを特徴とする請求項9に記載のキャッシュ管理方法。
The cache server further includes a reference request unit,
When the accepting unit accepts a reference request among the requests, the reference request unit determines whether or not the reference request has a search condition, and when there is a search condition, the designated data structure is the cache data. If the specified data structure is in the cache data, the cache data corresponding to the specified data structure is acquired from the cache data, and the specified data structure is acquired in the cache data. The cache management method according to claim 9, wherein when there is no data, the cache management method is acquired from the data server and added to the cache data.
前記キャッシュサーバは、前記クライアントからSQL又はXQueryのデータベースアクセス言語を用いて更新要求又は参照要求される
ことを特徴とする請求項9に記載のキャッシュ管理方法。
The cache management method according to claim 9, wherein the cache server is updated or referred to by the client using a database access language of SQL or XQuery.
前記キャッシュサーバは、前記キャッシュデータとして、XML形式、テキスト形式、バイナリ形式の少なくともいずれかのデータ形式で前記記憶装置に記憶する
ことを特徴とする請求項9に記載のキャッシュ管理方法。
The cache management method according to claim 9, wherein the cache server stores the cache data in the storage device in at least one of an XML format, a text format, and a binary format.
前記キャッシュサーバは、複数のキャッシュサーバで構成され、
各前記キャッシュサーバは、各前記キャッシュサーバを識別する識別子が記憶される割当情報を有し、
前記クライアントから更新要求があった際に、前記更新要求に含まれる前記識別子が
前記割当情報を参照して該当するキャッシュサーバを特定し、特定されたキャッシュサーバに前記更新要求を送信する
ことを特徴とする請求項9から請求項14のいずれか1項に記載のキャッシュ管理方法。
The cache server is composed of a plurality of cache servers,
Each of the cache servers has allocation information in which an identifier for identifying each of the cache servers is stored,
When there is an update request from the client, the identifier included in the update request refers to the allocation information to identify a corresponding cache server, and transmits the update request to the identified cache server. The cache management method according to any one of claims 9 to 14.
クライアントからの要求に対しデータサーバを代行し、前記要求のうちの参照要求の検索条件と前記検索条件に合致した検索結果とを関連付けたキャッシュデータを記憶する記憶装置を備えるキャッシュサーバのキャッシュ管理プログラムであって、
コンピュータに、
クライアントから要求を受理する受付処理と、
前記要求のうちの登録要求を受理すると、前記登録要求の登録データが前記記憶装置に記憶されている検索条件を満たすか否かを判定し、前記検索条件を満たすとき、前記登録データを、前記検索条件と関連付けて前記記憶装置に記憶する登録処理と、
前記要求のうちの上書き要求を受理すると、前記上書き要求に上書き条件があるか否かを判定し、上書き条件があるときには指定されたデータ構造が前記キャッシュデータにあるか否かを判定し、指定されたデータ構造が前記キャッシュデータにあるとき、前記キャッシュデータのうち前記指定されたデータ構造に該当するキャッシュデータを上書きし、指定されたデータ構造が前記キャッシュデータにないとき、前記キャッシュデータを削除する上書き処理と、
前記要求のうちの削除要求を受理すると、前記削除要求に削除条件があるか否かを判定し、削除条件があるときには指定されたデータ構造が前記キャッシュデータにあるか否かを判定し、指定されたデータ構造が前記キャッシュデータにあるとき、前記キャッシュデータのうち前記指定されたデータ構造に該当するキャッシュデータを削除し、指定されたデータ構造が前記キャッシュデータにないとき、前記キャッシュデータを削除する削除処理と、
前記要求のうちの参照要求を受理すると、前記参照要求に検索条件があるか否かを判定し、検索条件があるときには指定されたデータ構造が前記キャッシュデータにあるか否かを判定し、指定されたデータ構造が前記キャッシュデータにあるとき、前記キャッシュデータのうち前記指定されたデータ構造に該当するキャッシュデータを取得し、指定されたデータ構造が前記キャッシュデータにないとき、前記データサーバから取得し前記キャッシュデータに追加する参照要求処理と、を
実行させることを特徴とするキャッシュ管理プログラム。
A cache management program for a cache server, comprising a storage device that stores cache data that acts as a proxy for a request from a client and associates a search condition of a reference request in the request with a search result that matches the search condition Because
On the computer,
A reception process for receiving a request from a client;
When the registration request among the requests is received, it is determined whether the registration data of the registration request satisfies a search condition stored in the storage device. A registration process associated with a search condition and stored in the storage device;
When an overwrite request among the requests is received, it is determined whether or not the overwrite request has an overwrite condition. When there is an overwrite condition, it is determined whether or not the specified data structure is in the cache data. When the specified data structure is in the cache data, the cache data corresponding to the specified data structure is overwritten in the cache data, and when the specified data structure is not in the cache data, the cache data is deleted. Overwrite processing to
When a deletion request among the requests is received, it is determined whether or not the deletion request has a deletion condition. When there is a deletion condition, it is determined whether or not the specified data structure exists in the cache data, and When the specified data structure is in the cache data, the cache data corresponding to the specified data structure is deleted from the cache data, and when the specified data structure is not in the cache data, the cache data is deleted. Delete process to
When a reference request among the requests is received, it is determined whether or not there is a search condition in the reference request, and if there is a search condition, it is determined whether or not the specified data structure is in the cache data, and specified. When the specified data structure is in the cache data, the cache data corresponding to the specified data structure is acquired from the cache data, and when the specified data structure is not in the cache data, the cache data is acquired from the data server. And a reference request process to be added to the cache data.
JP2007134484A 2007-05-21 2007-05-21 Cache server, cache management method and cache management program Pending JP2008287660A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007134484A JP2008287660A (en) 2007-05-21 2007-05-21 Cache server, cache management method and cache management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007134484A JP2008287660A (en) 2007-05-21 2007-05-21 Cache server, cache management method and cache management program

Publications (1)

Publication Number Publication Date
JP2008287660A true JP2008287660A (en) 2008-11-27

Family

ID=40147301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007134484A Pending JP2008287660A (en) 2007-05-21 2007-05-21 Cache server, cache management method and cache management program

Country Status (1)

Country Link
JP (1) JP2008287660A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010217974A (en) * 2009-03-13 2010-09-30 Toshiba Corp Information retrieval device, information retrieval method, and program
WO2011105488A1 (en) * 2010-02-25 2011-09-01 楽天株式会社 Storage device, server device, storage system, database device, provision method of data, and program
KR20150032508A (en) * 2013-09-18 2015-03-26 아이엠에스 헬스 인코포레이티드 System and method for fast query response
CN111046636A (en) * 2019-12-12 2020-04-21 深圳前海环融联易信息科技服务有限公司 Method and device for screening PDF file information, computer equipment and storage medium
JP2021179994A (en) * 2020-05-14 2021-11-18 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド Method for acquiring page resources, device, electronic apparatus, and readable storage medium
US11360975B2 (en) 2017-08-22 2022-06-14 Fujitsu Limited Data providing apparatus and data providing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10289135A (en) * 1997-04-14 1998-10-27 Casio Comput Co Ltd Data base retrieval system provided with cache function of retrieved result
JP2002351729A (en) * 2001-05-22 2002-12-06 Nec Corp Data sharing system
JP2003006036A (en) * 2001-06-26 2003-01-10 Hitachi Ltd Clustered application server and web system having database structure
JP2004303211A (en) * 2003-03-28 2004-10-28 Microsoft Corp System and method for invalidation of cached database result and derived object
JP2005339236A (en) * 2004-05-27 2005-12-08 Hitachi Ltd Database management method and database system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10289135A (en) * 1997-04-14 1998-10-27 Casio Comput Co Ltd Data base retrieval system provided with cache function of retrieved result
JP2002351729A (en) * 2001-05-22 2002-12-06 Nec Corp Data sharing system
JP2003006036A (en) * 2001-06-26 2003-01-10 Hitachi Ltd Clustered application server and web system having database structure
JP2004303211A (en) * 2003-03-28 2004-10-28 Microsoft Corp System and method for invalidation of cached database result and derived object
JP2005339236A (en) * 2004-05-27 2005-12-08 Hitachi Ltd Database management method and database system

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010217974A (en) * 2009-03-13 2010-09-30 Toshiba Corp Information retrieval device, information retrieval method, and program
WO2011105488A1 (en) * 2010-02-25 2011-09-01 楽天株式会社 Storage device, server device, storage system, database device, provision method of data, and program
JP2011175547A (en) * 2010-02-25 2011-09-08 Rakuten Inc Storage device, server device, storage system, database device, data providing method, and program
CN102763089A (en) * 2010-02-25 2012-10-31 乐天株式会社 Storage device, server device, storage system, database device, provision method of data, and program
US20120323966A1 (en) * 2010-02-25 2012-12-20 Rakuten, Inc. Storage device, server device, storage system, database device, provision method of data, and program
CN102763089B (en) * 2010-02-25 2015-08-12 乐天株式会社 The supplying method of memory storage, server unit, storage system, data library device, data
JP2015072681A (en) * 2013-09-18 2015-04-16 アイエムエス ヘルス インコーポレイテッドIMS Health Incorporated System and method for fast query response
KR20150032508A (en) * 2013-09-18 2015-03-26 아이엠에스 헬스 인코포레이티드 System and method for fast query response
KR102229011B1 (en) 2013-09-18 2021-03-17 아이큐비아 인크. System and method for fast query response
US11360975B2 (en) 2017-08-22 2022-06-14 Fujitsu Limited Data providing apparatus and data providing method
CN111046636A (en) * 2019-12-12 2020-04-21 深圳前海环融联易信息科技服务有限公司 Method and device for screening PDF file information, computer equipment and storage medium
CN111046636B (en) * 2019-12-12 2024-04-12 深圳前海环融联易信息科技服务有限公司 Method, device, computer equipment and storage medium for screening PDF file information
JP2021179994A (en) * 2020-05-14 2021-11-18 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド Method for acquiring page resources, device, electronic apparatus, and readable storage medium
JP7275450B2 (en) 2020-05-14 2023-05-18 阿波▲羅▼智▲聯▼(北京)科技有限公司 Method, apparatus, electronic device, and readable storage medium for obtaining page resource

Similar Documents

Publication Publication Date Title
US11647097B2 (en) Providing access to managed content
US8396938B2 (en) Providing direct access to distributed managed content
US9703885B2 (en) Systems and methods for managing content variations in content delivery cache
US6415285B1 (en) Document retrieval mediating apparatus, document retrieval system and recording medium storing document retrieval mediating program
US20100325363A1 (en) Hierarchical object caching based on object version
JPH10198680A (en) Distributed dictionary managing method and machine translating method using the method
KR20130107280A (en) Directory leasing
US11762775B2 (en) Systems and methods for implementing overlapping data caching for object application program interfaces
JP2008287660A (en) Cache server, cache management method and cache management program
CN115269631A (en) Data query method, data query system, device and storage medium
JP5106062B2 (en) File search method, file search device, search system, and file search program
JP2005148962A (en) File system
JP5083408B2 (en) Configuration management apparatus, configuration management program, and configuration management method
US20040260699A1 (en) Access management and execution
KR102415155B1 (en) Apparatus and method for retrieving data
US11205049B2 (en) Method for managing semantic information on M2M/IoT platform
JP2004302564A (en) Name service providing method, execution device of the same, and processing program of the same
US8082334B1 (en) Providing direct access to managed content
JP2006127123A (en) Application server, database server, web retrieval system, retrieval result acquisition method, retrieval result response method, retrieval result acquisition program and retrieval result response program
CN116821058B (en) Metadata access method, device, equipment and storage medium
JP2005196382A (en) Data registration method and data reference method by information management system, and master database server for information management system
JP2010217974A (en) Information retrieval device, information retrieval method, and program
JP2002007136A (en) System for automatically distributing software
JPH1040201A (en) Distributed resource management system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120327