JP2008287660A - Cache server, cache management method and cache management program - Google Patents
Cache server, cache management method and cache management program Download PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
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参照)。
特許文献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
なお、キャッシュサーバ120は、キャッシュ機能を持たせたプロキシサーバ(代理サーバ)のことを意味し、一度アクセスされたデータのキャッシュを行うことにより(キャッシング)、以降に同じデータをアクセスした同じまたは異なるクライアントに対して、キャッシュに保持していたデータを返すことができる。本来のオリジナルサーバ170にアクセスする必要がなくなるため、ネットワーク10のトラフィックおよびオリジナルサーバ170の負荷の軽減、クライアント110から見た応答時間の短縮が期待できる。
Note that the
キャッシュサーバ120は、メモリ140に格納されたキャッシュ制御プログラム142などのプログラム141をプロセッサ130が実行することで、キャッシュ制御の処理を行う。キャッシュ制御の処理は、プログラム141をプロセッサ130で実行することにより実現するが、これらはキャッシュ制御プログラム142などの各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。
The
クライアント110およびオリジナルサーバ170は、それぞれ1台以上のコンピュータで構成される。オリジナルサーバ170は、記憶装置171を有し、更新あるいは参照における原本となるデータであるオリジナルデータ172を保持する。
Each of the
キャッシュ制御プログラム142には、処理内容別に、更新要求受付部143、参照要求受付部144、登録部145、上書き部146、削除部147、および検索部148を有する。更新要求受付部143は、クライアント110からの更新要求を受付けると、更新処理を開始する。更新要求には、登録要求、上書き要求、および削除要求がある。具体的には、更新要求には、更新系SQLである、登録(INSERT文)、上書き(UPDATE文)、削除(DELETE文)がある。なお、SQLは、リレーショナルデータベースマネージメントシステム(RDBMS)において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)である。
The
参照要求受付部144は、クライアント110からの参照要求を受付けると、参照処理を開始する。参照要求には、参照系SQLである、選択(SELECT文)が格納されている。参照要求に、参照系SQLが格納されていない場合、エラーコードやエラーメッセージなどをクライアント110に応答する。
When the reference
登録部145は、INSERT文に指定された登録データをキャッシュデータに追加する。上書き部146は、UPDATE文に応じてキャッシュデータを上書きする。削除部147は、DELETE文に応じてキャッシュデータを削除する。検索部148は、SELECT文に応じて、検索結果を記憶装置151から取得することを試み、できない場合は記憶装置171から検索結果を取得する。
The
以下、説明を簡略化するため、各種のプログラム141をプロセッサ130が実行することで実現される各処理部を各処理の主体として説明する。なお各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行う。
Hereinafter, in order to simplify the description, each processing unit that is realized by the
図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
検索条件210は、左辺に比較元、右辺に比較先、およびその間に両者を比較する比較演算子により構成される。比較元あるいは比較先に利用される/(スラッシュ)は、XML(Extensible Markup Language)の階層構造を表す。例えば、”商品/価格”は、要素”商品”の子要素”価格”を示す。
The
また、比較演算子に使用される=(イコール)、>(大なり)、および<(小なり)は、それぞれ比較元と比較先が一致、比較元が比較先より大きい、比較元が比較先より小さいことを表す。その他、>=(以上)、<=(以下)、<>(等しくない)なども比較演算子として使用できる。 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
次に、各部の処理について、図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
本実施形態では、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
図4は、登録部の処理を示すフローチャートである。登録部145は、INSERT文を指定されて処理を開始する。INSERT文に格納されているXML形式の登録データを取り出す(ステップS400)。続いて、当該登録データが、キャッシュ管理テーブル152に存在する検索条件210を満たすか否かを判定する(ステップS410)。
FIG. 4 is a flowchart showing processing of the registration unit. The
登録部145は、ステップS410において、検索条件210において比較先が数値である場合、登録データから比較元の数値を取り出し、比較先の数値と比較演算子に基づいて評価した結果が真であれば、検索条件210を満たすと判定する。
When the comparison destination is a numerical value in the
また、比較先が文字列で、比較演算子が=(イコール)である場合、比較元の文字列と、比較先の文字列が一致すれば、検索条件210を満たすと判定する。上記以外の場合、登録データは検索条件210を満たさないと判定する。
If the comparison destination is a character string and the comparison operator is = (equal), it is determined that the
登録部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
具体的には、キャッシュデータ220を更新する一例として、登録データの”商品/価格”に1500が格納されており、図2に示すように、検索条件210が”商品/価格=1500”の場合、当該登録データは検索条件を満たすため、キャッシュデータ220に追加する。また、キャッシュデータ220を更新しない一例として、登録データの”商品/価格”に2000が格納されており、図2に示すように、検索条件210が”商品/価格=1500”の場合、当該登録データは検索条件を満たさないため、キャッシュデータ220に追加しない。
Specifically, as an example of updating the
本実施形態によれば、キャッシュサーバ120は、クライアント110から更新要求のうちの登録要求があった際に、登録部145は、キャッシュ管理テーブル152にある検索条件が、登録データに含まれているか否かを判定し、検索条件が含まれている場合に、検索条件と登録データとを関連付けて、キャッシュデータ220に登録しているので、次回参照要求があった際に、キャッシュのヒット率が高まり、参照性能が向上できる。
According to the present embodiment, when the
図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
図5は、上書き部の処理を示すフローチャートである。上書き部146は、UPDATE文を指定されて処理を開始する。UPDATE文に上書き条件、つまり上書きの対象となるデータの範囲が指定されているか否かを判定する(ステップS510)。具体的には、上書き条件の指定方法の一例として、UPDATE文におけるWHERE句が挙げられる。WHERE句には検索条件210と同じ形式で条件を指定することができ、そこで指定された条件を満たすキャッシュデータ220が上書きの対象となる。
FIG. 5 is a flowchart showing processing of the overwriting unit. The overwriting
上書き部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
上書き部146は、ステップS520において、上書き条件に指定されたデータ構造がキャッシュデータ220に存在する場合(ステップS520,Yes)、ステップS530へ進む。上書き条件に指定されたデータ構造がキャッシュデータ220に存在しない場合(ステップS520,No)、ステップS560へ進む。
If the data structure specified in the overwrite condition exists in the
具体的には、上書き条件に指定されたデータ構造がキャッシュデータに存在しない一例として、”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
具体的には、図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
上書きデータの値を算出できる場合(ステップ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
上書きデータの値を算出できない場合(ステップ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
上書き部146は、ステップS520において上書き条件に指定されたデータ構造がキャッシュデータに存在しない場合、ステップS530において上書き対象を特定できない場合、およびステップS540において上書きデータの値に指定されるデータ構造がキャッシュデータ220に存在しない場合、当該キャッシュデータ220を削除する(ステップS560)。
The overwriting
なお、ステップS560の他の実現方式として、上書き部146は、オリジナルサーバ170から最新データを取得することも考えられる。具体的には、上書き部146は、ステップS520あるいはステップS540において、削除するキャッシュデータ220が存在した場合、オリジナルサーバ170に対して当該キャッシュデータ220に対応する検索条件210を満たすデータの取得を要求する。オリジナルサーバ170から当該検索条件210を満たすデータを、対応するキャッシュデータ220に反映する。これにより、更新のタイミングでキャッシュデータ220を最新の状態に保つことができる。
Note that, as another implementation method of step S560, the
本実施形態によれば、キャッシュサーバ120は、クライアントから更新要求のうちの上書き要求があった際に、上書き部146は、上書き条件を満たし、上書きデータを算出できる場合に、キャッシュ管理テーブル152にあるキャッシュデータ220を上書きしているので、次回参照要求があった際に、キャッシュのヒット率が高まり、参照性能が向上できる。
According to the present embodiment, when the
図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
図6は、削除部の処理を示すフローチャートである。削除部147は、DELETE文を指定されて処理を開始する。DELETE文に削除条件、つまり削除の対象となるデータの範囲が指定されているか否かを判定する(ステップS610)。
FIG. 6 is a flowchart showing processing of the deletion unit. The
具体的には、削除条件の指定方法の一例として、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
削除部147は、ステップS610において、DELETE文に削除条件が指定されている場合(ステップS610,Yes)、削除条件に指定されたデータ構造がキャッシュデータ220に存在するか否かを判定する(ステップS620)。すなわち、削除条件の比較元あるいは比較先の中にXMLのデータ構造が指定された場合、当該XMLのデータ構造がキャッシュデータ220に存在するか否かを判定する。一方、ステップS610において、削除条件が指定されていない場合(ステップS610,No)、ステップS630へ進む。
In step S610, the
具体的には、削除条件に指定されたデータ構造がキャッシュデータに存在しない一例として、削除条件として”商品/入荷予定数>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
削除部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
なお、ステップS640の他の実現方式として、削除部147は、オリジナルサーバ170から最新データを取得することも考えられる。具体的には、削除部147は、ステップS620において、削除するキャッシュデータ220が存在した場合、オリジナルサーバ170に対して当該キャッシュデータ220に対応する検索条件210を満たすデータの取得を要求する。オリジナルサーバ170から当該検索条件210を満たすデータを、対応するキャッシュデータ220に反映する。これにより、更新のタイミングでキャッシュデータ220を最新の状態に保つことができる。
As another implementation method of step S640, the
本実施形態によれば、キャッシュサーバ120は、クライアント110から更新要求のうちの削除要求があった際に、削除部147は、削除条件を満たし、削除データを算出できる場合に、キャッシュ管理テーブル152にあるキャッシュデータ220を削除しているので、キャッシュデータ220を最新の状態に保つことができる。
According to the present embodiment, when the
図3に戻り、ステップS360において、更新要求受付部143は、オリジナルサーバ170に更新要求を送信し、データの更新を要求する。オリジナルサーバ170は、更新要求に基づいて、オリジナルデータ172を最新の状態に更新する。更新要求受付部143は、最後に、更新結果をクライアント110に応答し(ステップS370)、一連の処理を終了する。更新処理が正常に終了した場合は正常に終了した旨を応答する。更新処理中に何からのエラーが発生した場合はエラーコードやエラーメッセージなどをクライアント110に応答する。以上の処理により、更新要求に対してキャッシュサーバ120が管理するキャッシュデータ220、およびオリジナルサーバ170が管理するオリジナルデータ172を更新することができる。
Returning to FIG. 3, in step S360, the update
図7は、参照要求受付部の処理を示すフローチャートである。参照要求受付部144は、クライアント110からの参照要求を受付けると、参照処理を開始する。参照要求には、参照系SQLである、選択(SELECT文)が格納されている。参照要求に、参照系SQLが格納されていない場合、エラーコードやエラーメッセージなどをクライアント110に応答する。
FIG. 7 is a flowchart showing processing of the reference request receiving unit. When the reference
本実施形態では、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
図8は、検索部の処理を示すフローチャートである。検索部148は、SELECT文を指定されて処理を開始する。SELECT文に検索条件、つまり検索の対象となるデータの範囲が指定されているか否かを判定する(ステップS810)。
FIG. 8 is a flowchart showing the processing of the search unit. The
具体的には、検索条件の指定方法の一例として、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
検索部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
具体的には、検索結果を取得できる一例として、検索条件に”商品/価格=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
検索部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
以上の処理により、以降同一の検索条件を受付けた時には、当該検索条件210に対する検索結果をキャッシュデータ220から取得できるようになる。
With the above processing, when the same search condition is accepted thereafter, the search result for the
本実施形態は、クライアント110と、オリジナルサーバ170と、クライアント110からの要求に対しオリジナルサーバを代行するキャッシュサーバ120とを含んで構成されるサーバシステムであって、キャッシュサーバ120は、参照要求の検索条件と検索条件に合致した検索結果とを関連付けたキャッシュデータを記憶する記憶装置151と、クライアントから要求を受理する受付部(例えば、更新要求受付部143)と、受付部が更新要求のうちの登録要求を受理すると、登録要求の登録データが記憶装置に記憶されている検索条件を満たすか否かを判定し、検索条件を満たすとき、登録データを、検索条件と関連付けて記憶装置に登録する登録部145と、を有する。
The present embodiment is a server system including a
キャッシュサーバ120は、さらに、受付部が上書き要求を受理すると、上書き要求に上書き条件があるか否かを判定し、上書き条件があるとき指定されたデータ構造がキャッシュデータにあるか否かを判定し、指定されたデータ構造がキャッシュデータにあるとき、キャッシュデータのうち指定されたデータ構造に該当するキャッシュデータを上書きし、指定されたデータ構造がキャッシュデータにないとき、キャッシュデータを削除する上書き部146を有する。
Further, when the accepting unit accepts the overwrite request, the
キャッシュサーバ120は、さらに、受付部が削除要求を受理すると、削除要求に削除条件があるか否かを判定し、削除条件があるとき指定されたデータ構造がキャッシュデータにあるか否かを判定し、指定されたデータ構造がキャッシュデータにあるとき、キャッシュデータのうち指定されたデータ構造に該当するキャッシュデータを削除し、指定されたデータ構造がキャッシュデータにないとき、キャッシュデータを削除する削除部147を有する。
Further, when the accepting unit accepts the deletion request, the
キャッシュサーバ120は、登録要求、上書き要求、削除要求のいずれかである更新要求を受付けた際に、キャッシュデータを更新するとともに、データベースに更新要求を指令する。
When the
キャッシュサーバ120は、さらに、受付部が参照要求を受理すると、参照要求に検索条件があるか否かを判定し、検索条件があるとき指定されたデータ構造がキャッシュデータにあるか否かを判定し、指定されたデータ構造がキャッシュデータにあるとき、キャッシュデータのうち指定されたデータ構造に該当するキャッシュデータを取得し、指定されたデータ構造がキャッシュデータにないとき、データサーバから取得しキャッシュデータに追加する参照要求部(例えば、検索部148)を有する。
Further, when the accepting unit accepts the reference request, the
このような構成によれば、更新要求に対する登録処理、上書き処理、削除処理に対して、キャッシュサーバ120のキャッシュデータ220を最新状態に更新することができる。これにより、参照要求に対して、キャッシュのヒット率を高め、参照性能を向上させることができる。
According to such a configuration, the
《実施形態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
キャッシュサーバ120は、キャッシュサーバ(1)〜キャッシュサーバ(10)から構成されている。記憶装置151には、キャッシュ管理テーブル152に加えて、キャッシュ割当テーブル920(図10参照)を有する。また、キャッシュ制御プログラム142には、処理内容として、更新要求受付部143、参照要求受付部144、登録部145、上書き部146、削除部147、検索部148に加えて、キャッシュ所在判定部910(図13参照)を有する。キャッシュ割当テーブル920およびキャッシュ所在判定部910については、図10および図13において説明する。
The
本実施形態では、更新あるいは参照の各要求が対象とする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
図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
図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
更新要求受付部143は、更新要求に格納されている更新系SQLである、登録(INSERT文)、上書き(UPDATE文)、削除(INSERT文)を指定して、キャッシュ所在判定部910(図9参照)を呼び出し、キャッシュの所在を判定する(ステップS1110)。キャッシュ所在判定部910は、更新系SQLを解析して、キャッシュデータ220を更新する役割をもつキャッシュサーバ120を特定する。キャッシュデータ220を保持する役割をもつキャッシュサーバ120が自サーバ以外である場合、当該キャッシュサーバ120に処理を委譲する。そして、ステップS310へ進む。ステップS310以降は、図3と同様であるので、説明を省略する。なお、ステップS1110の詳細は、図13において説明する。
The update
図12は、参照要求受付部の他の処理を示すフローチャートである。参照要求受付部144は、クライアント110からの参照要求を受付けると、検索処理を開始する。
FIG. 12 is a flowchart showing another process of the reference request receiving unit. When the reference
参照要求受付部144は、参照要求に格納されている参照系SQLである、検索(SELECT文)を指定して、キャッシュ所在判定部910を呼び出す(ステップS1210)。キャッシュ所在判定部910は、参照系SQLを解析して、キャッシュデータ220を検索する役割をもつキャッシュサーバ120を特定する。キャッシュデータ220を保持する役割をもつキャッシュサーバ120が自マシン以外である場合、当該キャッシュサーバ120に処理を委譲する。そして、ステップS710へ進む。ステップS710以降は、図7と同様であるので、説明を省略する。なお、ステップS1210の詳細は、図13において説明する。
The reference
図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
具体的には、更新系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
具体的には、キャッシュサーバを特定する一例として、識別子が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
キャッシュ所在判定部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
キャッシュ所在判定部910は、ステップS1340において、更新要求でない場合、つまり参照要求である場合(ステップS1340,No)、検索の対象となるキャッシュデータ220を特定できない。そこで、自サーバにて以降の処理を継続する。
If the cache
図14は、キャッシュ管理テーブルの他の例を示す説明図である。キャッシュ管理テーブル152には、検索条件210には、識別子を指定した検索条件が格納されている。
FIG. 14 is an explanatory diagram of another example of the cache management table. In the cache management table 152, the
例えば、識別子である”商品/分類ID”の値が0300および0700に対して、それぞれ該当するキャッシュデータ220が格納されている。この場合、識別子が0000以上であり0999以下であることから、キャッシュ割当テーブル820に基づいて、当該キャッシュデータ220はキャッシュサーバ(1)に対応するものであることがわかる。
For example, corresponding
本実施形態によれば、キャッシュサーバ120は、複数のキャッシュサーバ(例えば、キャッシュサーバ(1)〜キャッシュサーバ(10)で構成され、各キャッシュサーバ120は、各キャッシュサーバ120を識別する識別子が記憶される割当情報(例えば、キャッシュ割当テーブル920)を有し、クライアント110から更新要求があった際に、更新要求に含まれる識別子が割当情報を参照して該当するキャッシュサーバを特定し、特定されたキャッシュサーバに更新要求を送信している。すなわち、更新要求に対して、識別子が指定されている限りは、キャッシュサーバ120を特定することができ、キャッシュデータ220を最新状態に更新することができる。これにより、複数のキャッシュサーバ構成においても、参照要求に対して、キャッシュのヒット率を高め、参照性能を向上させることができる。
According to the present embodiment, the
本発明は、大規模データベース構成におけるキャッシュ管理システムに適用することができる。同一の検索条件が集中し、検索結果に対する更新頻度が高いケースにおいても、キャッシュのヒット率を高め、参照性能を向上させることができる。 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.
110 クライアント
120 キャッシュサーバ
130 プロセッサ
140 メモリ
141 プログラム
142 キャッシュ制御プログラム
143 更新要求受付部
144 参照要求受付部
145 登録部
146 上書き部
147 削除部
148 検索部
150 ディスクインタフェイス
151,171 記憶装置
152 キャッシュ管理テーブル
160 通信インタフェイス
170 オリジナルサーバ
172 オリジナルデータ
910 キャッシュ所在判定部
920 キャッシュ割当テーブル
DESCRIPTION OF
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.
ことを特徴とする請求項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.
ことを特徴とする請求項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.
ことを特徴とする請求項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.
ことを特徴とする請求項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.
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)
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)
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 |
-
2007
- 2007-05-21 JP JP2007134484A patent/JP2008287660A/en active Pending
Patent Citations (5)
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)
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 |