JP2009157805A - Object cache construction method, object cache construction program - Google Patents

Object cache construction method, object cache construction program Download PDF

Info

Publication number
JP2009157805A
JP2009157805A JP2007337505A JP2007337505A JP2009157805A JP 2009157805 A JP2009157805 A JP 2009157805A JP 2007337505 A JP2007337505 A JP 2007337505A JP 2007337505 A JP2007337505 A JP 2007337505A JP 2009157805 A JP2009157805 A JP 2009157805A
Authority
JP
Japan
Prior art keywords
cache
referenced
clone
area
cache area
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.)
Granted
Application number
JP2007337505A
Other languages
Japanese (ja)
Other versions
JP5511134B2 (en
Inventor
Keiichi Matsuyama
圭一 松山
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.)
Exa Corp
Original Assignee
Exa Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Exa Corp filed Critical Exa Corp
Priority to JP2007337505A priority Critical patent/JP5511134B2/en
Publication of JP2009157805A publication Critical patent/JP2009157805A/en
Application granted granted Critical
Publication of JP5511134B2 publication Critical patent/JP5511134B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To construct an object cache on a memory of a computer, to increase speed of access to the cache itself, and to maintain data consistency. <P>SOLUTION: In a method for constructing the object cache on the memory of the computer, when an object for cache is stored in a cache area, the object for cache is divided into a referred object representing the content of the object for cache and a referring object holding reference information turned to the referred object to store the objects in the cache area. When an access request to the stored referred object is accepted, the reference turned to the referred object is returned via the referring object, and the reference is used to indirectly access the referred object. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、コンピュータのメモリ上にオブジェクトキャッシュを構築する方法、およびそのプログラムに関するものである。   The present invention relates to a method for constructing an object cache on a memory of a computer and a program therefor.

コンピュータ上で実行されるアプリケーションからデータにアクセスする際に、そのアクセスを高速化する手段として、メモリ上に対象データのキャッシュを構築する手法が、しばしば用いられる。
アプリケーションから利用するキャッシュの分類の仕方として、例えば以下のようなものがある。
When accessing data from an application executed on a computer, a method of constructing a cache of target data on a memory is often used as means for speeding up the access.
For example, there are the following methods for classifying caches used by applications.

(1)DBキャッシュ
アクセス頻度の高いデータ本体や実行頻度の高い処理プログラムをキャッシュ領域にコピーしておくことで、データベースへのアクセス高速化を図る。一般にアプリケーションから利用するキャッシュとは、このDBキャッシュを指すことが多い。
(1) DB cache By copying a data body with high access frequency and a processing program with high execution frequency to a cache area, the access speed to the database is increased. In general, a cache used by an application often refers to this DB cache.

(2)オブジェクトキャッシュ
バイナリオブジェクトをキャッシュ領域上に預けて所定のキーと関連付けておき、後にアプリケーションから利用するときは、キーを指定することで、そのバイナリオブジェクトに直接的にアクセスする。
比較的サイズの大きい同一のバイナリオブジェクトを何度も使用するような場合に、キャッシュ領域に預けておいたバイナリオブジェクトを使い回すことで、同一のオブジェクトを何度も生成する負荷を削減する、といった用途に向く。
具体的な実装例としては、格納しておくバイナリオブジェクトと、そのハッシュキーとを関連付けてハッシュマッピング領域に格納しておき、アプリケーションからハッシュキーを指定して、関連付けられたバイナリオブジェクトを取得する、という手法がある。
(2) Object cache When a binary object is deposited on a cache area and associated with a predetermined key and used later by an application, the binary object is directly accessed by specifying the key.
When the same binary object with a relatively large size is used many times, the load to generate the same object many times can be reduced by using the binary object stored in the cache area repeatedly. Suitable for use.
As a specific implementation example, the binary object to be stored and the hash key are associated and stored in the hash mapping area, the hash key is specified from the application, and the associated binary object is acquired. There is a technique.

また、コンピュータのメモリ上のキャッシュに関し、『データの一貫性を維持するとともに、メモリ領域を節約しながら、アプリケーションからのデータアクセスを高速化する。』ことを目的とした技術として、『携帯端末10のキャッシュ制御部15は、アプリケーション13が参照するデータを規定したオブジェクトのインスタンスへのアクセス要求を受け、該オブジェクトのインスタンスが存在しない場合は、オブジェクトのインスタンスと、カウンタを生成する。また、リファレンス設定クラスのインスタンスを生成し、要求されたオブジェクトのインスタンスを参照するリファレンスを設定してアプリケーション13に返送するとともに、カウンタを1増加させる。リファレンス設定クラスのインスタンスの解放通知を受けた場合は、対応するカウンタを1減算し、該カウンタが0になった場合にオブジェクトのインスタンスを解放する。』というものが提案されている(特許文献1)。   In addition, regarding the cache on the memory of the computer, “speeding data access from an application while maintaining data consistency and saving memory area”. As a technology for the purpose of the above, “the cache control unit 15 of the mobile terminal 10 receives an access request to an instance of an object that defines data referred to by the application 13, and if there is no instance of the object, And create a counter. Also, an instance of the reference setting class is generated, a reference for referring to the requested object instance is set and returned to the application 13, and the counter is incremented by one. When the release notification of the instance of the reference setting class is received, the corresponding counter is decremented by 1, and the object instance is released when the counter reaches 0. Is proposed (Patent Document 1).

また、オブジェクトキャッシュに関し、『効率的にキャッシュデータを格納できるキャッシュシステムを提供する。』ことを目的とした技術として、『高効率キャッシュシステムは、オブジェクトリレーショナルマッピングにおける高効率キャッシュシステムであって、前記リレーショナルデータベースに保存されているデータから、キャッシュ用オブジェクトと処理用オブジェクトとに変換するデータオブジェクト変換手段と、前記キャッシュ用オブジェクトと前記処理用オブジェクトとを対応付けて相互に変換可能なオブジェクト対応相互変換手段と、前記キャッシュ用オブジェクトを格納するオブジェクトキャッシュ格納手段と、前記リレーショナルデータベースからデータを取得する補充オブジェクトデータ取得手段と、取得したオブジェクトと取得したデータとから、キャッシュ用オブジェクトと、取得要求に対して提供される処理用オブジェクトとを生成するオブジェクト生成手段とを有する。』というものも提案されている(特許文献2)。   Further, regarding an object cache, “a cache system capable of efficiently storing cache data is provided. As a technology for the purpose, "High-efficiency cache system is a high-efficiency cache system in object-relational mapping, and converts data stored in the relational database into cache objects and processing objects. Data object conversion means, object correspondence mutual conversion means capable of converting the cache object and the processing object in association with each other, object cache storage means for storing the cache object, and data from the relational database Replenishment object data acquisition means for acquiring the cache object and processing object provided for the acquisition request from the acquired object and the acquired data And a object generation means for generating and. Is also proposed (Patent Document 2).

特開2005−190221号公報(要約)JP 2005-190221 A (summary) 特開2007−265164号公報(要約)JP 2007-265164 A (summary)

上記特許文献1に記載の技術は、キャッシュを構築することにより携帯端末10のオブジェクトアクセスを高速化する手法に関するものであり、アプリケーションからキャッシュを利用することでアプリケーションの便宜に資する観点から述べられている。
これは、上記のキャッシュ分類の仕方によれば、(1)のDBキャッシュに近い技術について述べているものと言える。
The technique described in Patent Document 1 relates to a technique for speeding up object access of the mobile terminal 10 by constructing a cache, and is described from the viewpoint of contributing to the convenience of the application by using the cache from the application. Yes.
This can be said to describe the technique close to the DB cache of (1) according to the above-described cache classification method.

また、上記特許文献2に記載の技術は、オブジェクトキャッシュに言及しているものの、その用途は(1)のDBキャッシュに近いものであり、キャッシュの形式がオブジェクト型であるに過ぎない。   Further, although the technique described in Patent Document 2 refers to the object cache, its use is close to the DB cache of (1), and the cache format is merely an object type.

一方、オブジェクトキャッシュそのものについての高速化やデータ一貫性の維持については、従来から要求のあるところであるが、上記特許文献1や特許文献2に記載の技術では、キャッシュそのものの高速化やデータ一貫性の維持については、詳細は述べられておらず、これを可能とするキャッシュ構築手法が望まれている。   On the other hand, there has been a demand for speeding up and maintaining data consistency for the object cache itself. However, with the techniques described in Patent Document 1 and Patent Document 2, the speed of the cache itself and data consistency are improved. The details of the maintenance are not described, and a cache construction method that enables this is desired.

本発明は、上記のような課題を解決するためになされたものであり、コンピュータのメモリ上にオブジェクトキャッシュを構築し、キャッシュ自体のアクセスの高速化やデータ一貫性の維持を図ることを目的とする。   The present invention has been made to solve the above-described problems, and has an object to construct an object cache on a memory of a computer, to speed up access to the cache itself and to maintain data consistency. To do.

本発明に係るオブジェクトキャッシュ構築方法は、コンピュータのメモリ上にオブジェクトキャッシュを構築する方法であって、前記メモリ上にキャッシュ領域を確保するステップと、前記キャッシュ領域にキャッシュ対象オブジェクトを格納するステップと、格納したキャッシュ対象オブジェクトに対するアクセス要求を受け付けるステップと、を有し、前記キャッシュ領域に前記キャッシュ対象オブジェクトを格納する際に、当該キャッシュ対象オブジェクトを、そのキャッシュ対象オブジェクトそのものの内容を表す被参照オブジェクトと、その被参照オブジェクトに向けた参照情報を保持する参照オブジェクトと、に分割して前記キャッシュ領域に格納しておき、格納した被参照オブジェクトに対するアクセス要求を受け付けると、前記参照オブジェクトを介して当該被参照オブジェクトに向けた参照を返し、その参照を用いて間接的に当該被参照オブジェクトにアクセスさせるものである。   An object cache construction method according to the present invention is a method of constructing an object cache on a memory of a computer, the step of securing a cache area on the memory, the step of storing a cache target object in the cache area, Receiving an access request for the stored cache target object, and when the cache target object is stored in the cache area, the cache target object is referred to as a referenced object representing the content of the cache target object itself; The reference object that holds the reference information for the referenced object is divided and stored in the cache area, and when an access request for the stored referenced object is received, Via the serial reference object returns a reference directed to the referenced object is intended to be accessed indirectly the referenced object using the reference.

本発明に係るオブジェクトキャッシュ構築方法によれば、キャッシュにオブジェクトを格納する際に、被参照オブジェクトと参照オブジェクトに分割して格納しておき、参照オブジェクトを介して被参照オブジェクトにアクセスさせるので、複数のアプリケーションが1つの更新中オブジェクトに同時にアクセスすることを防止でき、データ一貫性が確保される。
また、複数のオブジェクトが関連付けられてキャッシュ領域に格納されている場合に、各関連付けを分割して格納することができるので、取得対象のオブジェクトのみを取り出すことが容易となり、関連付けられた周辺オブジェクトを併せて取得する必要はない。
そのため、1度のオブジェクトアクセス時に消費するメモリ領域を押さえることができるので、オブジェクトアクセスを高速化することができる。
According to the object cache construction method of the present invention, when an object is stored in the cache, the object is divided into a referenced object and a reference object, and the referenced object is accessed via the reference object. Can be prevented from accessing one updating object at the same time, and data consistency is ensured.
Also, when multiple objects are associated and stored in the cache area, each association can be divided and stored, making it easy to retrieve only the acquisition target object, There is no need to obtain it together.
Therefore, the memory area consumed at the time of one object access can be suppressed, so that the object access can be speeded up.

実施の形態1.
図1は、本発明の実施の形態1に係るオブジェクトキャッシュの構成図である。
図1において、キャッシュ領域100は、コンピュータのメモリ上に確保される一定の領域であり、内部的に、参照オブジェクト領域110と被参照オブジェクト領域120に分けられている。
参照オブジェクト領域110と被参照オブジェクト領域120は、例えばハッシュマップなどのコレクション領域や配列領域などを用いて構築することができる。これらの領域については、後述の図2で改めて説明する。
なお、実装上は、参照オブジェクト領域110内に、被参照オブジェクト領域120を保持させるように構成してもよい。本実施の形態1では、記載の便宜上、図1のように表すこととした。以後の実施の形態でも同様である。
Embodiment 1 FIG.
FIG. 1 is a configuration diagram of an object cache according to Embodiment 1 of the present invention.
In FIG. 1, a cache area 100 is a certain area secured on the memory of a computer, and is internally divided into a reference object area 110 and a referenced object area 120.
The reference object area 110 and the referenced object area 120 can be constructed using a collection area such as a hash map or an array area, for example. These areas will be described later with reference to FIG.
For implementation, the referenced object area 120 may be held in the reference object area 110. In the first embodiment, for convenience of description, it is represented as shown in FIG. The same applies to the following embodiments.

キャッシュ領域100上に構築された参照オブジェクト領域110と被参照オブジェクト領域120が、本実施の形態1における狭義のオブジェクトキャッシュに相当し、これにキャッシュマネージャ200を加えてオブジェクトの格納と取得の手段を追加したものが、本実施の形態1における広義のオブジェクトキャッシュに相当する。   The reference object area 110 and the referenced object area 120 constructed on the cache area 100 correspond to the object cache in the narrow sense in the first embodiment, and a cache manager 200 is added to this to provide means for storing and acquiring objects. What is added corresponds to the object cache in a broad sense in the first embodiment.

キャッシュマネージャ200とアプリケーション300は、キャッシュ領域100をメモリ上に格納するコンピュータ上のプログラムであり、図示しないCPU(Central Processing Unit)やマイコンなどの演算装置上で実行されるものである。
キャッシュマネージャ200は、当該コンピュータのメモリ上にキャッシュ領域100を確保し、キャッシュ領域100にオブジェクトを格納し、あるいはアプリケーション300からの要求によりキャッシュ領域100に格納されているオブジェクトを取得する。より詳しくは、後述の図2で改めて説明する。
アプリケーション300は、キャッシュマネージャ200を介して、キャッシュ領域100にオブジェクトを格納し、あるいはキャッシュ領域100に格納されているオブジェクトを取得する。
The cache manager 200 and the application 300 are programs on a computer that store the cache area 100 in a memory, and are executed on an arithmetic device such as a CPU (Central Processing Unit) or a microcomputer (not shown).
The cache manager 200 secures the cache area 100 on the memory of the computer, stores the object in the cache area 100, or acquires the object stored in the cache area 100 in response to a request from the application 300. More details will be described later with reference to FIG.
The application 300 stores an object in the cache area 100 or acquires an object stored in the cache area 100 via the cache manager 200.

図2は、キャッシュ領域100にオブジェクトを格納するイメージを示すものである。
図2(a)は、エンティティAとエンティティCが関連Bで関連付けられている場合の関係モデルを図示するものである。
図2(b)は、図2(a)の関連モデルをオブジェクトモデルで表現したものである。オブジェクトモデルでは、関連Bもオブジェクトとして表現される。この場合は、オブジェクトAとオブジェクトBが参照関係で関連付けられ、オブジェクトBとオブジェクトCが参照関係で関連付けられる。
FIG. 2 shows an image for storing an object in the cache area 100.
FIG. 2A illustrates a relationship model in the case where the entity A and the entity C are related by the relationship B.
FIG. 2B represents the related model of FIG. 2A with an object model. In the object model, the relation B is also expressed as an object. In this case, object A and object B are associated with each other in a reference relationship, and object B and object C are associated with each other in a reference relationship.

図2(c)は、図2(b)の各オブジェクトを、本実施の形態1に係るオブジェクトキャッシュに格納した様子を示すものである。
従来のオブジェクトキャッシュでは、図2(b)の各オブジェクトをそのままキャッシュ領域100に格納するところ、本実施の形態1に係るオブジェクトキャッシュでは、図2(b)の各オブジェクトを、「参照オブジェクト」と「被参照オブジェクト」と呼ぶ2種類のオブジェクトに分割して格納する。
「参照オブジェクト」は参照オブジェクト領域110に、「被参照オブジェクト」は被参照オブジェクト領域120に、それぞれ格納される。
FIG. 2C shows a state in which each object in FIG. 2B is stored in the object cache according to the first embodiment.
In the conventional object cache, each object in FIG. 2B is stored in the cache area 100 as it is. In the object cache according to the first embodiment, each object in FIG. 2B is referred to as a “reference object”. It is divided into two types of objects called “referenced objects” and stored.
“Reference object” is stored in the reference object area 110, and “referenced object” is stored in the referenced object area 120.

参照オブジェクトは、対応する被参照オブジェクトに向けた参照情報を保持する。
被参照オブジェクトは、対応する参照オブジェクトから参照されるとともに、関連付けられているオブジェクトに対応した参照オブジェクトに向けた参照情報を保持する。
The reference object holds reference information for the corresponding referenced object.
The referenced object is referenced from the corresponding reference object and holds reference information for the reference object corresponding to the associated object.

図2(c)の例では、被参照オブジェクトBは、参照オブジェクトA(図2(c)中の「RefA」)と参照オブジェクトC(図2(c)中の「RefC」)に向けた参照情報を保持する。
また、被参照オブジェクトAと被参照オブジェクトCは、参照オブジェクトB(図2(c)中の「RefB」)に向けた参照情報を保持する。
In the example of FIG. 2C, the referenced object B is referred to the reference object A (“RefA” in FIG. 2C) and the reference object C (“RefC” in FIG. 2C). Keep information.
The referenced object A and the referenced object C hold reference information for the reference object B (“RefB” in FIG. 2C).

キャッシュ領域100に格納された被参照オブジェクトにアクセスするためには、必ず参照オブジェクトを介さなければならず、被参照オブジェクトに直接アクセスすることはできない。この点は、通常のハッシュキーを用いて実現するオブジェクトキャッシュとは異なる。
より詳細なオブジェクトの取得手順については、後述の図4で改めて説明する。
In order to access the referenced object stored in the cache area 100, the referenced object must be passed through, and the referenced object cannot be directly accessed. This is different from an object cache implemented using a normal hash key.
A more detailed object acquisition procedure will be described later with reference to FIG.

図3は、アプリケーション300が新たなオブジェクトAをキャッシュ領域100に預ける際の手順を説明するものである。以下、図3の各ステップについて説明する。   FIG. 3 illustrates a procedure when the application 300 deposits a new object A in the cache area 100. Hereinafter, each step of FIG. 3 will be described.

(1)アプリケーション300は、キャッシュ領域100に格納したいオブジェクトAを生成する。このとき、オブジェクトAのメンバ変数に、オブジェクトAの一意の識別キーを格納しておく。
(2)アプリケーション300は、キャッシュマネージャ200に、オブジェクトAをキャッシュ領域100へ預けるよう依頼する。
(3)キャッシュマネージャ200は、オブジェクトAを参照オブジェクトAと被参照オブジェクトAに分割し、それぞれの領域に格納する。このとき、参照オブジェクトAに、被参照オブジェクトAに向けた参照情報を格納しておく。
(1) The application 300 generates an object A to be stored in the cache area 100. At this time, the unique identification key of the object A is stored in the member variable of the object A.
(2) The application 300 requests the cache manager 200 to deposit the object A in the cache area 100.
(3) The cache manager 200 divides the object A into the reference object A and the referenced object A, and stores them in the respective areas. At this time, reference information for the referenced object A is stored in the reference object A.

なお、参照オブジェクト領域110とその中の参照オブジェクトは、弱参照で緩やかに連結される。したがって、参照オブジェクトが他のいずれのオブジェクトからも参照されなくなった時点で、その参照オブジェクトは自動的に参照オブジェクト領域110から削除される。
被参照オブジェクト領域120とその中の被参照オブジェクトの連結についても、同様である。
オブジェクトが実際に各領域から削除されるのは、例えばキャッシュマネージャ200の実行環境でガーベジコレクション(Garbage Collection)が実行された時点などが候補となり得る。
Note that the reference object area 110 and the reference objects in the reference object area 110 are loosely connected with a weak reference. Therefore, when the reference object is no longer referred to by any other object, the reference object is automatically deleted from the reference object area 110.
The same applies to the connection between the referenced object region 120 and the referenced object in the area.
For example, when an object is actually deleted from each area, garbage collection (Garbage Collection) is executed in the execution environment of the cache manager 200 can be a candidate.

このように、キャッシュ領域100に格納されたオブジェクトは、他のオブジェクトから参照されなくなった時点で不要と判断され、キャッシュ領域100から削除される対象となるので、参照オブジェクト領域110と被参照オブジェクト領域120は、擬似キャッシュのような役割を果たすことができるのである。   As described above, the object stored in the cache area 100 is determined to be unnecessary when it is no longer referred to by another object, and is deleted from the cache area 100. Therefore, the reference object area 110 and the referenced object area 120 can serve as a pseudo-cache.

図4は、キャッシュ領域100に格納されているオブジェクトにアクセスする際の手順を説明するものである。以下、図4の各ステップについて説明する。   FIG. 4 illustrates a procedure for accessing an object stored in the cache area 100. Hereinafter, each step of FIG. 4 will be described.

(1)アプリケーション300は、キャッシュマネージャ200に対し、被参照オブジェクトBの取得を依頼する。
(2)キャッシュマネージャ200は、被参照オブジェクトBそのものを返すのではなく、参照オブジェクトBを新たに生成し、アプリケーション300に返す。このとき、内部的には、被参照オブジェクト領域120に格納されている被参照オブジェクトBのクローンが生成され、新たに生成された参照オブジェクトBから参照されるように設定される。
(1) The application 300 requests the cache manager 200 to acquire the referenced object B.
(2) The cache manager 200 does not return the referenced object B itself, but newly generates a reference object B and returns it to the application 300. At this time, internally, a clone of the referenced object B stored in the referenced object area 120 is generated and set to be referenced from the newly generated reference object B.

(3)被参照オブジェクトBのクローンは、クローン元の被参照オブジェクトBが保持している、参照オブジェクトAと参照オブジェクトCに向けた参照関係を、そのままコピーして保持する。 (3) The clone of the referenced object B is copied and held as it is with respect to the reference object A and the reference object C held by the clone-referenced object B.

ステップ(3)において、被参照オブジェクトBのクローンが保持する参照情報は、当該クローンBから参照オブジェクトA、参照オブジェクトCに向けた一方向のみの参照である。
このように、クローンBが保持する参照情報を一方向のみとするのは、アプリケーション300が被参照オブジェクトBのクローンに変更を加えている最中に、他のアプリケーションから同オブジェクトにアクセスされないようにするためである。
即ち、もし他の参照情報を生成して、参照オブジェクト領域110からクローンBへの向きにも参照可能としておくと、その参照を辿って、変更中である被参照オブジェクトBのクローンに他のアプリケーションが到達してしまう可能性があるからである。
In step (3), the reference information held by the clone of the referenced object B is a reference in only one direction from the clone B toward the reference object A and the reference object C.
As described above, the reference information held by the clone B is set to only one direction so that the application 300 is not accessed from another application while the application 300 is changing the clone of the referenced object B. It is to do.
That is, if other reference information is generated and can be referred to in the direction from the reference object area 110 to the clone B, the reference is traced and another application is applied to the clone of the referenced object B being changed. This is because there is a possibility of reaching.

以後、アプリケーション300は、キャッシュマネージャ200より受け取った新たな参照オブジェクトBを介して、被参照オブジェクトBのクローンに対し、同オブジェクトが保持する値の取得など、種々の処理を実行する。   Thereafter, the application 300 performs various processes such as acquisition of a value held by the referenced object B via the new reference object B received from the cache manager 200, for example.

「参照情報」と「識別キー」の差異について、ここで補足しておく。
「参照情報」とは、参照先オブジェクトに対するポインタ情報のようなもので、キャッシュマネージャ200やアプリケーション300は、これを取得することにより、参照先のオブジェクトに直接的に到達することができる。例えばJava(登録商標)言語の場合は、Referenceクラスやそのサブクラスで実現される。
「識別キー」とは、当該オブジェクトの一意な識別IDであり、関係データベースでいうところの「主キー」や、ハッシュインデックスにおけるハッシュキーに相当する。キャッシュマネージャ200やアプリケーション300は、「識別キー」を指定することで、参照先オブジェクトを間接的に取得することができる。
The difference between “reference information” and “identification key” will be supplemented here.
The “reference information” is pointer information for the reference destination object, and the cache manager 200 and the application 300 can directly reach the reference destination object by acquiring the reference information. For example, in the case of Java (registered trademark) language, it is realized by the Reference class and its subclass.
The “identification key” is a unique identification ID of the object, and corresponds to a “primary key” in the relational database or a hash key in a hash index. The cache manager 200 and the application 300 can indirectly acquire the reference destination object by designating the “identification key”.

本実施の形態1に係るオブジェクトキャッシュは、取得対象のオブジェクトが取得できれば用を成すため、関連付けられた他のオブジェクトを併せて取得する必要はないが、もしアプリケーション300の処理の上で必要であれば、被参照オブジェクトBのクローンは、参照オブジェクト領域110内の参照オブジェクトAや参照オブジェクトCに向けた参照関係を保持しているため、これを辿って各オブジェクトに到達することもできる。
ただし、このようにオブジェクトの参照関係を次々と辿るのは、本実施の形態1に係るオブジェクトキャッシュの本来の用途ではないことを付言しておく。
The object cache according to the first embodiment is useful if the object to be acquired can be acquired, so it is not necessary to acquire other related objects together, but it is necessary for the processing of the application 300. For example, since the clone of the referenced object B holds the reference relationship toward the reference object A and the reference object C in the reference object area 110, the object can be reached by following this.
However, it is added that tracing the object reference relationship one after another in this way is not the original use of the object cache according to the first embodiment.

もし、アプリケーション300が被参照オブジェクトBのクローンにアクセスしている際に、他のアプリケーションがキャッシュ領域100に格納されている被参照オブジェクトBへのアクセスを要求したとしても、当該他のアプリケーションも、図4と同様の手順により被参照オブジェクトBの新たなクローンを取得することになる。
したがって、アプリケーション300がアクセスしている被参照オブジェクトBのクローンに、他のアプリケーションがアクセスすることはなく、更新中の不安定な状態で被参照オブジェクトBのクローンがアクセスされないことが保証される。
If the application 300 is accessing a clone of the referenced object B and another application requests access to the referenced object B stored in the cache area 100, the other application A new clone of the referenced object B is acquired by the same procedure as in FIG.
Accordingly, the clone of the referenced object B accessed by the application 300 is not accessed by another application, and it is guaranteed that the clone of the referenced object B is not accessed in an unstable state during update.

これは換言すると、本実施の形態1に係るオブジェクトキャッシュ上において、データベース上で行われるような「Read Committed」アイソレーションレベルが実現されているに等しいと言うことができる。
即ち、更新中の不安定な状態のオブジェクトがアクセスされることがない、ということは、アプリケーション300からアクセスされるオブジェクトは必ず更新済のものであることが保証されている、ということであり、これは「Read Committed」アイソレーションレベルそのものである。
In other words, it can be said that the “Read Committed” isolation level as performed on the database is realized in the object cache according to the first embodiment.
That is, an object in an unstable state being updated is never accessed, which means that an object accessed from the application 300 is guaranteed to be updated. This is the “Read Committed” isolation level itself.

以上のように、本実施の形態1で説明した例によれば、キャッシュマネージャ200は、キャッシュ領域100にオブジェクト(仮にオブジェクトBとする)を格納する際に、参照オブジェクトBと被参照オブジェクトBに分割してそれぞれの領域に格納しておき、参照オブジェクトBを介して被参照オブジェクトBにアクセスさせる。
このように、分割したオブジェクト格納構造を採用したことにより、アクセス要求に対しては、参照オブジェクトBのみを返せば足り、関連する全てのオブジェクトを返す必要がなくなる。
As described above, according to the example described in the first embodiment, when the cache manager 200 stores an object (assumed to be object B) in the cache area 100, the cache manager 200 stores the reference object B and the referenced object B. The object is divided and stored in each area, and the referenced object B is accessed via the reference object B.
As described above, by adopting the divided object storage structure, it is sufficient to return only the reference object B for the access request, and it is not necessary to return all related objects.

また、本実施の形態1で説明した例によれば、キャッシュマネージャ200は、アプリケーション300から被参照オブジェクトBに対するアクセス要求を受け付けると、その被参照オブジェクトBのクローンおよび新たな参照オブジェクトBを生成して、新たな参照オブジェクトBをアプリケーション300に返す。
このとき、被参照オブジェクトBのクローンには、参照先オブジェクトへ向けた一方向の参照情報のみがコピーされる。
参照オブジェクト領域110からクローンBに向けた参照情報は、コピー元のオブジェクトがそもそもそのような参照情報を保持していないため、クローンBにはコピーされない。
これにより、アプリケーション300が被参照オブジェクトBのクローンを更新している最中は、他のアプリケーションが同オブジェクトにアクセスしないよう防ぐことができる。
Further, according to the example described in the first embodiment, when the cache manager 200 receives an access request for the referenced object B from the application 300, the cache manager 200 generates a clone of the referenced object B and a new reference object B. Then, a new reference object B is returned to the application 300.
At this time, only one-way reference information directed to the reference destination object is copied to the clone of the referenced object B.
The reference information from the reference object area 110 to the clone B is not copied to the clone B because the copy source object does not hold such reference information in the first place.
This prevents other applications from accessing the object while the application 300 is updating the clone of the referenced object B.

また、複数のアプリケーションが被参照オブジェクトBにアクセスを要求したとしても、各アプリケーションが被参照オブジェクトB(のクローン)を更新中に他のアプリケーションが同じオブジェクトへアクセスすることがない。
これにより、上述の一方向の参照情報のみをクローンBに保持させる手法と合わせて、「Read Committed」アイソレーションレベルが実現される。
即ち、本実施の形態1に係るオブジェクトキャッシュによれば、格納するデータの一貫性を確実に維持できるのである。
Even if a plurality of applications request access to the referenced object B, other applications do not access the same object while each application is updating the referenced object B (clone thereof).
Thereby, the “Read Committed” isolation level is realized in combination with the method in which only the one-way reference information is stored in the clone B.
That is, according to the object cache according to the first embodiment, it is possible to reliably maintain consistency of stored data.

実施の形態2.
実施の形態1では、アプリケーション300は、キャッシュ領域100に格納されている被参照オブジェクトBの取得をキャッシュマネージャ200に要求し、キャッシュマネージャ200は、被参照オブジェクトBのクローンを生成して参照オブジェクトBを返すことを説明した。
本発明の実施の形態2では、被参照オブジェクトBのクローンに対して行った変更をキャッシュ領域100に反映して確定させる手順を説明する。なお、オブジェクトキャッシュに係る各構成は実施の形態1と同様であるため、説明を省略する。
Embodiment 2. FIG.
In the first embodiment, the application 300 requests the cache manager 200 to acquire the referenced object B stored in the cache area 100, and the cache manager 200 generates a clone of the referenced object B to generate the reference object B. Explained to return.
In the second embodiment of the present invention, a procedure for reflecting and confirming changes made to the clone of the referenced object B in the cache area 100 will be described. Note that each configuration related to the object cache is the same as that of the first embodiment, and thus the description thereof is omitted.

図5は、アプリケーション300が被参照オブジェクトBのクローンに対して行った変更をキャッシュ領域100に反映して確定させる手順を説明するものである。以下、図5の各ステップについて説明する。   FIG. 5 illustrates a procedure in which changes made by the application 300 to the clone of the referenced object B are reflected in the cache area 100 and confirmed. Hereinafter, each step of FIG. 5 will be described.

(1)参照オブジェクトBを生成して返す
図4のステップ(1)〜(3)と同様の手順により、アプリケーション300は、被参照オブジェクトBのクローンに間接的にアクセスできるようになる。
次に、アプリケーション300は、新たに生成された参照オブジェクトBを介して、被参照オブジェクトBのクローンが保持している値の変更などを行う。
(1) Generating and Returning Reference Object B The application 300 can indirectly access the clone of the referenced object B by the same procedure as steps (1) to (3) in FIG.
Next, the application 300 changes the value held by the clone of the referenced object B through the newly generated reference object B.

(2)オブジェクトBのクローンとの参照に張り替える
アプリケーション300は、キャッシュマネージャ200に対し、被参照オブジェクトBのクローンに対して行った変更をキャッシュ領域100に反映して確定するよう要求する。これは、データベースでいうところのコミット要求に相当する。
キャッシュマネージャ200は、その要求を受け取り、参照オブジェクト領域110内の各オブジェクトの参照情報を、被参照オブジェクトBのクローンとの間の参照情報に張り替える。
これにより、被参照オブジェクト領域120内の被参照オブジェクトBは、被参照オブジェクトBのクローンと論理的に置き換えられることになる。
(2) Replacing with Reference to the Clone of Object B The application 300 requests the cache manager 200 to reflect the change made to the clone of the referenced object B in the cache area 100 and confirm it. This corresponds to a commit request in the database.
The cache manager 200 receives the request, and replaces the reference information of each object in the reference object area 110 with the reference information with the clone of the referenced object B.
As a result, the referenced object B in the referenced object area 120 is logically replaced with a clone of the referenced object B.

図5の例では、参照オブジェクトBの参照情報を、被参照オブジェクトBのクローンに向けたものに張り替えている。
参照情報を張り替える際の具体的な実装例としては、参照先オブジェクトを引数として、参照元オブジェクトのメソッドをコールする、という方法がある。
In the example of FIG. 5, the reference information of the reference object B is replaced with information for the clone of the referenced object B.
As a specific implementation example when replacing reference information, there is a method of calling a method of a reference source object with a reference destination object as an argument.

(3)元のオブジェクトは削除対象となる
先に被参照オブジェクト領域120内に格納されていた被参照オブジェクトBは、未だ参照オブジェクトAと参照オブジェクトCに向けた参照情報を保持しているものの(図5中では図示省略)、自身はどのオブジェクトからも参照されなくなる。
したがって、先に被参照オブジェクト領域120内に格納されていた被参照オブジェクトBは、キャッシュ領域100から削除される対象となり、後に自動削除される。
(3) The original object is to be deleted The referenced object B that was previously stored in the referenced object area 120 still holds reference information for the reference object A and the reference object C ( (It is not shown in FIG. 5), and itself is not referred to by any object.
Therefore, the referenced object B previously stored in the referenced object area 120 becomes a target to be deleted from the cache area 100 and is automatically deleted later.

なお、ステップ(2)において、キャッシュマネージャ200が参照オブジェクト領域110内の各オブジェクトの参照情報を張り替えている最中(コミット中に相当)は、他のアプリケーションがキャッシュ領域100にアクセスしないよう、キャッシュ領域100は、キャッシュマネージャ200によりロックされる。   In step (2), while the cache manager 200 is changing the reference information of each object in the reference object area 110 (corresponding to the commit), the cache manager 200 is configured so that other applications do not access the cache area 100. The area 100 is locked by the cache manager 200.

以上のように、本実施の形態2によれば、キャッシュマネージャ200は、アプリケーション300が被参照オブジェクトBのクローンに対して行った変更をキャッシュ領域100に反映して確定する際には、参照オブジェクト領域Bに格納されている参照オブジェクトBの参照情報を、被参照オブジェクトBのクローンに向けた参照情報に書き換えることにより、確定処理を実行する。
そのため、キャッシュ領域100に対する反映を確定する処理が極めて短時間で終了するので、キャッシュ領域100をロックする時間を短縮し、アプリケーションの同時アクセス性を高めることができる。
As described above, according to the second embodiment, when the cache manager 200 reflects the change made by the application 300 on the clone of the referenced object B in the cache area 100 and determines the change, the reference object The confirmation process is executed by rewriting the reference information of the reference object B stored in the area B to the reference information for the clone of the referenced object B.
For this reason, the process of determining the reflection to the cache area 100 is completed in a very short time, so that the time for locking the cache area 100 can be shortened and the simultaneous accessibility of applications can be improved.

実施の形態3.
実施の形態2では、被参照オブジェクトBのクローンに対して加えた変更をキャッシュ領域100に反映して確定する手順を説明した。
本発明の実施の形態3では、先にオブジェクトがキャッシュ領域に格納されている場合において、そのオブジェクトに関連付けられた新たなオブジェクトを追加し、キャッシュ領域100に反映して確定させる手順を説明する。なお、オブジェクトキャッシュに係る各構成は実施の形態1〜2と同様であるため、説明を省略する。
Embodiment 3 FIG.
In the second embodiment, the procedure for reflecting and confirming the change made to the clone of the referenced object B in the cache area 100 has been described.
In the third embodiment of the present invention, a procedure will be described in which, when an object is stored in the cache area first, a new object associated with the object is added and reflected in the cache area 100 for confirmation. Note that each configuration related to the object cache is the same as that in the first and second embodiments, and thus the description thereof is omitted.

図6は、既存のエンティティAに関連Bをもって新たなエンティティCを関連付ける様子を、関連モデルで表したものである。
図6(a)はエンティティCの追加前、図6(b)はエンティティCの追加後を表す。
次に、この関連モデル上の追加を、本実施の形態3に係るオブジェクトキャッシュ上で実施する手順について、図7〜図10で説明する。
FIG. 6 shows a state in which a new entity C is associated with an existing entity A with a relationship B using a relationship model.
6A shows the state before the addition of the entity C, and FIG. 6B shows the state after the addition of the entity C.
Next, the procedure for performing the addition on the relation model on the object cache according to the third embodiment will be described with reference to FIGS.

図7は、アプリケーション300が、キャッシュ領域100に格納されている被参照オブジェクトAを取得する様子を示すものである。
キャッシュ領域100には、図6のエンティティAに対応した参照オブジェクトAと被参照オブジェクトAが格納されている。
アプリケーション300は、これから関連BとエンティティCに対応したオブジェクトBとオブジェクトCを生成するに際し、まずキャッシュ領域100内のオブジェクトAを取得する。取得の手順は、実施の形態1の図4(2)で説明したものと同様である。
キャッシュマネージャ200は、被参照オブジェクトAのクローンを生成するとともに、アプリケーション300に、新たに生成した参照オブジェクトAを返す。
アプリケーション300は、受け取った参照オブジェクトAを介して、被参照オブジェクトAのクローンにアクセスすることができる。
FIG. 7 shows how the application 300 acquires the referenced object A stored in the cache area 100.
The cache area 100 stores a reference object A and a referenced object A corresponding to the entity A in FIG.
The application 300 first acquires the object A in the cache area 100 when generating the object B and the object C corresponding to the relationship B and the entity C. The acquisition procedure is the same as that described in FIG. 4B of the first embodiment.
The cache manager 200 creates a clone of the referenced object A and returns the newly created reference object A to the application 300.
The application 300 can access the clone of the referenced object A via the received reference object A.

図8は、アプリケーション300が、新たに追加するオブジェクトCと、関連を表す関連オブジェクトBとを生成する様子を示すものである。
図6(b)で説明した関連モデルは、図2(b)で説明したように、オブジェクトAとオブジェクトCが関連オブジェクトBで関連付けられることで、表現される。したがってアプリケーション300は、図7の手順で取得した被参照オブジェクトAのクローンに加え、新たにオブジェクトBとオブジェクトCを生成する。
FIG. 8 shows a state in which the application 300 generates a newly added object C and a related object B representing the relationship.
The related model described with reference to FIG. 6B is expressed by associating the object A and the object C with the related object B as described with reference to FIG. Therefore, the application 300 newly generates an object B and an object C in addition to the clone of the referenced object A acquired in the procedure of FIG.

このときアプリケーション300は、本発明におけるオブジェクトの格納構造に準じ、オブジェクトBとオブジェクトCを、参照オブジェクトと被参照オブジェクトに分割して生成する。各参照オブジェクトは、それぞれが対応する被参照オブジェクトに向けた参照情報を保持する。   At this time, the application 300 generates the object B and the object C by dividing them into a reference object and a referenced object according to the object storage structure in the present invention. Each reference object holds reference information directed to the corresponding referenced object.

なお、単一のオブジェクトをキャッシュ領域100に預けるときと同様に、被参照オブジェクトのみを生成してキャッシュマネージャ200に預け、キャッシュマネージャ200が参照オブジェクトを生成するようにしてもよい。
ここでは、説明の便宜上、アプリケーション300側で被参照オブジェクトと参照オブジェクトの双方を生成することとする。
As in the case of depositing a single object in the cache area 100, only the referenced object may be generated and deposited in the cache manager 200, and the cache manager 200 may generate the reference object.
Here, for convenience of explanation, it is assumed that both the referenced object and the reference object are generated on the application 300 side.

また、下記の参照関係は、参照先オブジェクトの識別キーを用いた論理上のみの参照として保持しておく。
(1)参照オブジェクトBと被参照オブジェクトA/Cとの参照関係
(2)被参照オブジェクトBと参照オブジェクトA/Cとの参照関係
Further, the following reference relationship is held as a logical reference using the identification key of the reference destination object.
(1) Reference relationship between reference object B and referenced object A / C (2) Reference relationship between referenced object B and reference object A / C

上記(1)(2)の参照関係について、参照情報を保持させるのではなく、識別キーを用いた論理参照のみとするのは、これらのオブジェクトをキャッシュ領域100に格納する際に、他のアプリケーションから参照情報を辿って各オブジェクトにアクセスさせないようにするためである。   Regarding the reference relationship of (1) and (2) above, reference information is not held but only logical reference using an identification key is used when other objects are stored when storing these objects in the cache area 100. This is to prevent the access to each object by tracing the reference information.

図9は、アプリケーション300が取得および生成した各オブジェクトを、キャッシュ領域100に反映する様子を示すものである。
アプリケーション300は、各オブジェクトをキャッシュ領域100に反映するよう、キャッシュマネージャ200に要求する。これは、データベースでいうところのコミット要求に相当する。
キャッシュマネージャ200は、以下の手順で各オブジェクトをキャッシュ領域100に反映する。
FIG. 9 shows a state in which each object acquired and generated by the application 300 is reflected in the cache area 100.
The application 300 requests the cache manager 200 to reflect each object in the cache area 100. This corresponds to a commit request in the database.
The cache manager 200 reflects each object in the cache area 100 in the following procedure.

(1)キャッシュマネージャ200は、参照/被参照オブジェクトBと、参照/被参照オブジェクトCを、キャッシュ領域100のそれぞれの領域に格納する。 (1) The cache manager 200 stores the reference / referenced object B and the reference / referenced object C in each area of the cache area 100.

(2)キャッシュマネージャ200は、先に参照オブジェクト領域110に格納されている参照オブジェクトAの参照情報を、被参照オブジェクトAのクローンに向けた参照情報に書き換える。
これにより、被参照オブジェクト領域120内の被参照オブジェクトAは、被参照オブジェクトAのクローンと論理的に置き換えられることになる。
(2) The cache manager 200 rewrites the reference information of the reference object A previously stored in the reference object area 110 with the reference information for the clone of the referenced object A.
As a result, the referenced object A in the referenced object area 120 is logically replaced with a clone of the referenced object A.

(3)キャッシュマネージャ200は、上述のステップ(1)〜(2)を実行している最中、参照オブジェクト領域110内の参照オブジェクトAに、「Non−repeatable read」フラグを保持させておく。
これは、この時点で参照オブジェクトAにアクセスしても、「Non−repeatable read」が発生する可能性がある、ということを他のアプリケーションに通知するためのフラグである。
同フラグを保持しているオブジェクトに対するアクセス要求を受け付けると、そのフラグの内容が返される。
(3) The cache manager 200 holds the “Non-repeatable read” flag in the reference object A in the reference object area 110 while executing the above steps (1) to (2).
This is a flag for notifying other applications that “Non-repeatable read” may occur even if the reference object A is accessed at this time.
When an access request for an object holding the flag is received, the contents of the flag are returned.

図10は、キャッシュ領域100へ行った変更を確定する様子を示すものである。
キャッシュマネージャ200は、図9の処理に続き、図10に示す各処理を実行することで、キャッシュ領域100に対して行った変更を確定する。以下、図10の各ステップについて説明する。
FIG. 10 shows how changes made to the cache area 100 are confirmed.
The cache manager 200 confirms the changes made to the cache area 100 by executing the processes shown in FIG. 10 following the process of FIG. Hereinafter, each step of FIG. 10 will be described.

(1)キャッシュマネージャ200は、キャッシュ領域100内の各オブジェクト同士のキー参照による論理参照を、参照情報を用いた直接参照に書き換える。
(2)キャッシュマネージャ200は、上記の処理が終了すると、参照オブジェクト領域110内の参照オブジェクトAに保持させている「Non−repeatable read」フラグをクリアする。
(1) The cache manager 200 rewrites the logical reference by the key reference between the objects in the cache area 100 to the direct reference using the reference information.
(2) When the above processing is completed, the cache manager 200 clears the “Non-repeatable read” flag held in the reference object A in the reference object area 110.

(3)先に被参照オブジェクト領域120内に格納されていた被参照オブジェクトAは、どのオブジェクトからも参照されなくなる。したがって、先に被参照オブジェクト領域120内に格納されていた被参照オブジェクトAは、キャッシュ領域100から削除される対象となり、後に自動削除される。 (3) The referenced object A previously stored in the referenced object area 120 is not referred to by any object. Therefore, the referenced object A previously stored in the referenced object area 120 becomes a target to be deleted from the cache area 100 and is automatically deleted later.

以上の手順により、先にキャッシュ領域100に格納されたオブジェクトAに加え、新たにオブジェクトBとオブジェクトCが追加され、図6(b)で説明した関係モデルがキャッシュ領域100上に反映される。   Through the above procedure, in addition to the object A previously stored in the cache area 100, an object B and an object C are newly added, and the relational model described in FIG. 6B is reflected on the cache area 100.

なお、「Non−repeatable read」とは、アプリケーションが以前取得したオブジェクトを再度取得したとき、そのオブジェクトを別のアプリケーションが変更してキャッシュ領域100に確定させたことにより、以前のオブジェクトではなく、新しいオブジェクトを取得してしまう状態を言う。
図9〜図10の状態では、キャッシュマネージャ200はキャッシュ領域100への反映を確定させている最中(コミット中に相当)であるため、この状態で他のアプリケーションがキャッシュ領域100にアクセスしても、再度アクセスした時は異なる内容になってしまっている。これは、「Non−repeatable read」が発生し得る状態そのものであると言える。
Note that “Non-repeatable read” means that when an object acquired by the application is acquired again, another application changes the object and fixes it in the cache area 100, so that the new object is not the previous object. A state where an object is acquired.
9 to 10, the cache manager 200 is in the process of confirming the reflection to the cache area 100 (corresponding to the commit state), so that another application accesses the cache area 100 in this state. However, when accessing again, the contents are different. This can be said to be a state where “Non-repeatable read” can occur.

以上のように、本実施の形態3によれば、アプリケーション300は、先にキャッシュ領域100に格納されているオブジェクトAのクローンを取得し、新たにオブジェクトCおよび関連オブジェクトBを生成し、これらのオブジェクトをキャッシュ領域100に格納するよう、キャッシュマネージャ200に要求する。
この動作により、既存のキャッシュ領域100内のオブジェクトに、任意の関連を追加することができる。
As described above, according to the third embodiment, the application 300 acquires a clone of the object A previously stored in the cache area 100, newly generates the object C and the related object B, and The cache manager 200 is requested to store the object in the cache area 100.
With this operation, an arbitrary relation can be added to the object in the existing cache area 100.

また、本実施の形態3によれば、キャッシュマネージャ200は、キャッシュ領域100内に各オブジェクトを格納した後、各オブジェクト同士のキー参照による論理参照を、参照情報を用いた直接参照に書き換える。
即ち、被参照オブジェクトA/Cに、参照オブジェクトBに向けた参照情報を保持させるとともに、被参照オブジェクトBに、参照オブジェクトA/Cに向けた参照情報を保持させる。
これにより、キャッシュ領域100に対する変更を反映して確定している最中に、他のアプリケーションから変更中のオブジェクトに到達することがなくなり、データ一貫性が維持される。
Further, according to the third embodiment, after storing each object in the cache area 100, the cache manager 200 rewrites the logical reference based on the key reference between the objects to the direct reference using the reference information.
That is, the reference object A / C holds the reference information for the reference object B, and the reference object B holds the reference information for the reference object A / C.
As a result, while the change to the cache area 100 is being reflected, the object being changed is not reached from another application, and data consistency is maintained.

また、本実施の形態3によれば、キャッシュマネージャ200は、キャッシュ領域100に対する変更を反映して確定している最中に、参照オブジェクト領域110内の参照オブジェクトに「Non−repeatable read」フラグを保持させておき、他のアプリケーションから同オブジェクトに対するアクセスがあると、そのフラグの内容に応じた情報を返す。
これにより、他のアプリケーションは、キャッシュ領域100が更新中であることが分かり、エラー処理を行ったり、一定時間待機したりするなど、適宜適切な対応を取ることができる。
Further, according to the third embodiment, the cache manager 200 sets the “Non-repeatable read” flag to the reference object in the reference object area 110 while the change is confirmed by reflecting the change to the cache area 100. If there is an access to the object from another application, information corresponding to the contents of the flag is returned.
As a result, other applications can recognize that the cache area 100 is being updated, and can take appropriate measures such as performing error processing or waiting for a certain period of time.

実施の形態4.
実施の形態3では、新たにオブジェクトCを生成して関連オブジェクトBでオブジェクトAと関連付け、キャッシュ領域100に反映して確定する手順を説明した。
本発明の実施の形態4では、実施の形態3で追加したオブジェクトをキャッシュ領域100から削除し、オブジェクト追加前の状態に戻す手順を説明する。なお、オブジェクトキャッシュに係る各構成は実施の形態1〜3と同様であるため、説明を省略する。
Embodiment 4 FIG.
In the third embodiment, the procedure for generating a new object C, associating with the related object B with the object A, and reflecting and confirming in the cache area 100 has been described.
In the fourth embodiment of the present invention, a procedure for deleting the object added in the third embodiment from the cache area 100 and returning to the state before the object addition will be described. Note that each configuration relating to the object cache is the same as in the first to third embodiments, and thus the description thereof is omitted.

図11は、キャッシュ領域100内のオブジェクトCを削除する最初のステップを示すものである。
アプリケーション300は、キャッシュ領域100内のオブジェクトCを削除するようキャッシュマネージャ200に要求する。
キャッシュマネージャ200は、オブジェクトAとオブジェクトCを関連付けているオブジェクトBのクローンを生成するとともに、対応する参照オブジェクトBを生成し、アプリケーション300に返す。この手順は、実施の形態1の図4(2)で説明したものと同様である。
FIG. 11 shows the first step of deleting the object C in the cache area 100.
The application 300 requests the cache manager 200 to delete the object C in the cache area 100.
The cache manager 200 generates a clone of the object B that associates the object A and the object C, generates a corresponding reference object B, and returns it to the application 300. This procedure is the same as that described in FIG. 4B of the first embodiment.

図12は、被参照オブジェクトBのクローンをキャッシュ領域100に反映するステップを示すものである。
アプリケーション300は、図11で取得した被参照オブジェクトBのクローンをキャッシュ領域100に反映させるよう、キャッシュマネージャ200に要求する。
キャッシュマネージャ200は、参照オブジェクト領域110に格納されている参照オブジェクトBの参照情報を、被参照オブジェクトBのクローンに向けた参照情報に書き換える。
これにより、被参照オブジェクト領域120内の被参照オブジェクトBは、被参照オブジェクトBのクローンと論理的に置き換えられることになる。
FIG. 12 shows a step of reflecting the clone of the referenced object B in the cache area 100.
The application 300 requests the cache manager 200 to reflect the clone of the referenced object B acquired in FIG.
The cache manager 200 rewrites the reference information of the reference object B stored in the reference object area 110 with the reference information for the clone of the referenced object B.
As a result, the referenced object B in the referenced object area 120 is logically replaced with a clone of the referenced object B.

被参照オブジェクトBのクローンは、参照オブジェクト領域110内の参照オブジェクトA/Cに対する参照情報を保持している。
また、クローンの元となった被参照オブジェクトBも、参照オブジェクト領域110内の参照オブジェクトA/Cに対する参照情報を未だ保持している。
したがってこの時点で、参照オブジェクトA/Cは、被参照オブジェクトBから参照されているため、キャッシュ領域100から削除される対象にはなっていない。
The clone of the referenced object B holds reference information for the reference object A / C in the reference object area 110.
Also, the referenced object B that is the origin of the clone still holds reference information for the reference object A / C in the reference object area 110.
Therefore, at this point, the reference object A / C is not deleted from the cache area 100 because it is referenced from the referenced object B.

なお、キャッシュマネージャ200は、参照オブジェクト領域110内の参照オブジェクトBに、「Phantom read」フラグを保持させておく。
これは、この時点で参照オブジェクトBにアクセスしても、「Phantom read」が発生する可能性がある、ということを他のアプリケーションに通知するためのフラグである。「Phantom read」の内容については、後述する。
同フラグを保持しているオブジェクトに対するアクセス要求を受け付けると、そのフラグの内容が返される。
Note that the cache manager 200 holds a “Phantom read” flag in the reference object B in the reference object area 110.
This is a flag for notifying other applications that “Phantom read” may occur even if the reference object B is accessed at this time. The contents of “Phantom read” will be described later.
When an access request for an object holding the flag is received, the contents of the flag are returned.

図13は、被参照オブジェクトA/Cから参照オブジェクトBに向けた参照情報を削除するステップを示すものである。以下、図13の各ステップについて説明する。   FIG. 13 shows a step of deleting reference information from the referenced object A / C toward the reference object B. Hereinafter, each step of FIG. 13 will be described.

(1)キャッシュマネージャ200は、被参照オブジェクトA/Cから参照オブジェクトBに向けた参照情報を、削除する。また、被参照オブジェクトBのクローンから被参照オブジェクトA/Cに向けた参照情報を削除する。
(2)一方、クローンの元となった被参照オブジェクトBは、他のいずれのオブジェクトからも参照されていないため、キャッシュ領域100からの削除対象となる。
(1) The cache manager 200 deletes the reference information from the referenced object A / C toward the reference object B. Further, the reference information directed to the referenced object A / C is deleted from the clone of the referenced object B.
(2) On the other hand, the referenced object B that is the origin of the clone is not referenced by any other object, and is therefore a deletion target from the cache area 100.

図14〜図16は、削除対象の各オブジェクトがキャッシュ領域100から順次削除されていく様子を示すものである。以下、各図について説明する。
なお、被参照オブジェクト領域110内の被参照オブジェクトAは、図示しない他のオブジェクトから参照されており、削除対象にはならないものとする。
14 to 16 show how the objects to be deleted are sequentially deleted from the cache area 100. FIG. Each figure will be described below.
It is assumed that the referenced object A in the referenced object area 110 is referred to by another object (not shown) and is not a deletion target.

図14では、クローンの元となった被参照オブジェクトBがキャッシュ領域100から削除されている。
また、参照オブジェクト領域110内の参照オブジェクトBも、他のいずれのオブジェクトからも参照されなくなるため、キャッシュ領域100からの削除対象となる。
さらには、アプリケーション300がキャッシュマネージャ200から受け取った参照オブジェクトBは、アプリケーション300の終了とともに削除される。
アプリケーション300と参照オブジェクトBが消滅することにより、被参照オブジェクトBのクローンは他のいずれのオブジェクトからも参照されなくなり、後に削除される対象となる。
In FIG. 14, the referenced object B that is the source of the clone is deleted from the cache area 100.
Further, the reference object B in the reference object area 110 is not referenced by any other object, and is therefore a deletion target from the cache area 100.
Furthermore, the reference object B received by the application 300 from the cache manager 200 is deleted when the application 300 ends.
When the application 300 and the reference object B disappear, the clone of the referenced object B is not referred to by any other object, and becomes a target to be deleted later.

図15では、参照オブジェクトCと被参照オブジェクトBのクローンがキャッシュ領域100から削除されている。
また、被参照オブジェクトCも、他のいずれのオブジェクトからも参照されなくなるため、後に削除対象となる。
In FIG. 15, the clones of the reference object C and the referenced object B are deleted from the cache area 100.
In addition, the referenced object C is not deleted from any other object, and is later deleted.

図16は、キャッシュ領域100内の最終的な状態を指す。
最終的に、キャッシュ領域100内には、図示しない他のオブジェクトから参照されている参照オブジェクトAと、その参照オブジェクトAから参照されている被参照オブジェクトAが、削除対象とならずに残される。
FIG. 16 shows the final state in the cache area 100.
Eventually, in the cache area 100, the reference object A referred to by another object (not shown) and the referenced object A referenced from the reference object A are left without being deleted.

以上の手順により、キャッシュ領域100内の状態は、図7と同一の状態まで戻る。
これは、図6(a)で説明した関連モデルに相当する。
Through the above procedure, the state in the cache area 100 is returned to the same state as in FIG.
This corresponds to the related model described in FIG.

なお、「Phantom read」とは、アプリケーションが以前取得したオブジェクトの集合を同じ条件で再度取得したとき、それらのオブジェクトを別のアプリケーションが変更してキャッシュ領域100に確定させたことにより、同じ条件でオブジェクトの集合を取得しても、以前のオブジェクト集合が得られない状態を言う。
図12〜図13の状態では、キャッシュマネージャ200が削除を行っている最中の参照オブジェクトBに他のアプリケーションがアクセスしても、同オブジェクトはその後に削除されてしまうため、再度アクセスしても同じ結果が得られない可能性がある。
これは、「Phantom read」が発生し得る状態そのものであると言える。
Note that “Phantom read” means that when a set of objects previously acquired by an application is acquired again under the same conditions, those objects are changed by another application and confirmed in the cache area 100, so that the same conditions are satisfied. A state in which a previous object set cannot be obtained even if a set of objects is acquired.
In the state of FIGS. 12 to 13, even if another application accesses the reference object B being deleted by the cache manager 200, the object is deleted after that, so even if it is accessed again The same result may not be obtained.
This can be said to be a state where “Phantom read” can occur.

以上のように、本実施の形態4によれば、キャッシュマネージャ200は、先にキャッシュ領域100に格納されている関連オブジェクトBのクローンを取得し、先に格納されている関連オブジェクトBと論理的に入れ替える。
この動作により、関連オブジェクトBのみから参照されているオブジェクトは、他のいずれのオブジェクトからも参照されなくなり、キャッシュ領域100から削除される。
As described above, according to the fourth embodiment, the cache manager 200 acquires a clone of the related object B stored in the cache area 100 first, and logically matches the related object B stored previously. Replace with.
With this operation, an object that is referred to only from the related object B is not referenced from any other object, and is deleted from the cache area 100.

また、本実施の形態4によれば、キャッシュマネージャ200は、参照オブジェクトBに向けた参照情報を削除する。
これにより、関連オブジェクトB自身も、他のいずれのオブジェクトからも参照されなくなり、キャッシュ領域100から削除される。
Further, according to the fourth embodiment, the cache manager 200 deletes the reference information for the reference object B.
As a result, the related object B itself is not referred to by any other object, and is deleted from the cache area 100.

また、本実施の形態4によれば、キャッシュマネージャ200は、オブジェクトB/Cの削除処理を行っている最中に、参照オブジェクト領域110内の参照オブジェクトBに「Phantom read」フラグを保持させておき、他のアプリケーションから同オブジェクトに対するアクセスがあると、そのフラグの内容に応じた情報を返す。
これにより、他のアプリケーションは、キャッシュ領域100が更新中であることが分かり、エラー処理を行ったり、一定時間待機したりするなど、適宜適切な対応を取ることができる。
Further, according to the fourth embodiment, the cache manager 200 holds the “Phantom read” flag in the reference object B in the reference object area 110 during the deletion process of the object B / C. If there is an access to the object from another application, information corresponding to the contents of the flag is returned.
As a result, other applications can recognize that the cache area 100 is being updated, and can take appropriate measures such as performing error processing or waiting for a certain period of time.

実施の形態5.
実施の形態1〜4では、各オブジェクトに対して行った変更/追加/削除などの処理をキャッシュ領域100に反映して確定させる(コミットに相当)際に、キャッシュマネージャ200は、キャッシュ領域100をロックすることを説明した。
しかし、確定処理は瞬時に終了するとはいえ、キャッシュ領域100全体をロックすると、キャッシュ領域100内のオブジェクトに対する平行アクセス性が下がり、全体としてキャッシュのパフォーマンスが下がる可能性がある。
Embodiment 5 FIG.
In the first to fourth embodiments, when the process such as change / addition / deletion performed on each object is reflected in the cache area 100 and determined (corresponding to a commit), the cache manager 200 sets the cache area 100 Explained to lock.
However, although the finalizing process ends instantaneously, if the entire cache area 100 is locked, parallel accessibility to objects in the cache area 100 is lowered, and the cache performance as a whole may be lowered.

そこで、本発明の実施の形態5では、キャッシュ領域100の一部のみをロックする手法について説明する。なお、オブジェクトキャッシュに係る各構成は実施の形態1〜4と同様であるため、説明を省略する。   In the fifth embodiment of the present invention, a method for locking only a part of the cache area 100 will be described. Note that each configuration related to the object cache is the same as that of the first to fourth embodiments, and thus description thereof is omitted.

図17は、本実施の形態5におけるキャッシュ領域100のロック範囲を説明するものである。
本実施の形態5において、キャッシュマネージャ200は、キャッシュ領域100に変更などを反映する際に、対象オブジェクトとその周辺のオブジェクトのみをロック対象とし、その他のオブジェクトは他のアプリケーションから平行してアクセスできるようにしておく。
FIG. 17 illustrates the lock range of the cache area 100 according to the fifth embodiment.
In the fifth embodiment, when reflecting a change or the like in the cache area 100, the cache manager 200 locks only the target object and its surrounding objects, and other objects can be accessed in parallel from other applications. Keep it like that.

本実施の形態5におけるロック範囲は、例えば以下のようにすることができる。
(1)変更対象オブジェクトと、そのオブジェクトから参照される下位オブジェクトとを全てロックする。したがって、ロック範囲は更新の度に異なる。
(2)キャッシュ領域100内をあらかじめ複数の領域に固定的に分割しておき、その領域内のオブジェクトを更新するときは、該当する領域をロック範囲とする。
The lock range in the fifth embodiment can be set as follows, for example.
(1) Lock all change target objects and subordinate objects referenced from the objects. Therefore, the lock range varies with each update.
(2) When the cache area 100 is fixedly divided into a plurality of areas in advance and an object in the area is updated, the corresponding area is set as a lock range.

以上のように、本実施の形態5によれば、キャッシュマネージャ200は、キャッシュ領域100に格納している各オブジェクトに対して行った変更を確定させる際は、キャッシュ領域100全体をロックするのではなく、一部の領域のみを限定的にロックする。
そのため、ロックされていない領域に格納されているオブジェクトに関しては、他のアプリケーションが同時平行してアクセスすることができるので、アプリケーションの同時実効性が上がり、オブジェクトキャッシュとしてのパフォーマンスが向上する。
As described above, according to the fifth embodiment, the cache manager 200 does not lock the entire cache area 100 when confirming the changes made to each object stored in the cache area 100. Instead, only a limited area is locked.
For this reason, the object stored in the unlocked area can be accessed in parallel by other applications, so that the simultaneous effectiveness of the application is improved and the performance as an object cache is improved.

実施の形態6.
本発明の実施の形態6では、キャッシュ領域100に格納されているオブジェクトの参照関係を辿って複数のオブジェクトを取得する際に、その処理を高速化する手法について説明する。
まず、本発明に係るオブジェクトキャッシュ(実体はキャッシュ領域100)から複数のオブジェクトを取得する際の原則的な動作を説明し、その後、本実施の形態6に係るオブジェクト取得動作を説明する。
なお、オブジェクトキャッシュに係る各構成は実施の形態1〜5と同様であるため、説明を省略する。
Embodiment 6 FIG.
In the sixth embodiment of the present invention, a method for speeding up the processing when acquiring a plurality of objects by tracing the reference relationship of objects stored in the cache area 100 will be described.
First, the principle operation when acquiring a plurality of objects from the object cache (the entity is the cache area 100) according to the present invention will be described, and then the object acquisition operation according to the sixth embodiment will be described.
Note that each configuration related to the object cache is the same as that of the first to fifth embodiments, and thus description thereof is omitted.

図18は、キャッシュ領域100から複数のオブジェクトを取得する際の原則的手順を説明するものである。以下、図18の各ステップについて説明する。   FIG. 18 illustrates a principle procedure when acquiring a plurality of objects from the cache area 100. Hereinafter, each step of FIG. 18 will be described.

(1)参照関係を辿っていく
アプリケーション300は、被参照オブジェクトBを取得するよう、キャッシュマネージャ200に要求する。キャッシュマネージャ200は、図4(2)と同様の手順で被参照オブジェクトBのクローンを生成し、新たに生成した参照オブジェクトBをアプリケーション300に返す。
アプリケーション300は、被参照オブジェクトBのクローンが保持する参照情報を辿って、参照先オブジェクトが参照オブジェクトCであることを知る。
(1) Tracing the reference relationship The application 300 requests the cache manager 200 to acquire the referenced object B. The cache manager 200 generates a clone of the referenced object B in the same procedure as in FIG. 4 (2), and returns the newly generated reference object B to the application 300.
The application 300 traces the reference information held by the clone of the referenced object B, and knows that the reference destination object is the reference object C.

(2)参照先オブジェクトを取得する
アプリケーション300は、被参照オブジェクトBのクローンの参照先である被参照オブジェクトCを取得するよう、キャッシュマネージャ200に要求する。キャッシュマネージャ200は、(1)と同様の手順で被参照オブジェクトCのクローンを生成し、新たに生成した参照オブジェクトCをアプリケーション300に返す。
(2) Acquiring Referenced Object The application 300 requests the cache manager 200 to acquire the referenced object C that is the reference destination of the clone of the referenced object B. The cache manager 200 generates a clone of the referenced object C in the same procedure as (1), and returns the newly generated reference object C to the application 300.

以後、同様の手順を繰り返すことにより、アプリケーション300は、キャッシュ領域100に格納されている複数のオブジェクトを、参照情報を辿りながら順次取得することができる。   Thereafter, by repeating the same procedure, the application 300 can sequentially acquire a plurality of objects stored in the cache area 100 while tracing the reference information.

ここで、図18(2)では、アプリケーション300が被参照オブジェクトを取得する毎に、被参照オブジェクトのクローンが生成されることに着目する。
被参照オブジェクトのクローンを生成するのは、操作中の被参照オブジェクトに他のアプリケーションがアクセスしないようにするためであり、その目的に対して有効な効果を発揮するが、大量の被参照オブジェクトを取得する際には、この手法が不都合となる場合がある。
Here, in FIG. 18B, attention is paid to the fact that the clone of the referenced object is generated every time the application 300 acquires the referenced object.
The clone of the referenced object is created to prevent other applications from accessing the referenced object being operated, and it is effective for that purpose. This method may be inconvenient when acquiring.

オブジェクトのクローンを生成する処理は、新たなオブジェクトを生成することに他ならないため、メモリ領域やCPUリソースを一定量消費する。
大量のオブジェクトを取得する場合、これが積み重なり、全体として速度面のパフォーマンスが低下してしまう懸念がある。
Since the process of creating an object clone is nothing but creating a new object, it consumes a certain amount of memory area and CPU resources.
When a large number of objects are acquired, there is a concern that these may be stacked, resulting in a decrease in speed performance as a whole.

そこで、本実施の形態6では、被参照オブジェクトのクローン生成は極力行わないようにし、参照情報を用いた直接参照を行いながら、複数のオブジェクトを取得する手順を説明する。   Therefore, in the sixth embodiment, a procedure for acquiring a plurality of objects while performing direct reference using reference information while avoiding clone generation of the referenced object as much as possible will be described.

図19は、本実施の形態6において、キャッシュ領域100から複数のオブジェクトを取得する手順を説明するものである。以下、図19の各ステップについて説明する。   FIG. 19 illustrates a procedure for acquiring a plurality of objects from the cache area 100 in the sixth embodiment. Hereinafter, each step of FIG. 19 will be described.

(1)参照オブジェクトBを取得する
アプリケーション300は、被参照オブジェクトBを取得するよう、キャッシュマネージャ200に要求する。キャッシュマネージャ200は、図4(2)や図18(1)と同様の手順により、新たに生成した参照オブジェクトBをアプリケーション300に返す。
(1) Acquiring Reference Object B The application 300 requests the cache manager 200 to acquire the referenced object B. The cache manager 200 returns the newly generated reference object B to the application 300 in the same procedure as in FIG. 4 (2) and FIG. 18 (1).

(2)エージェントを生成して送り込む
アプリケーション300は、キャッシュ領域100内のオブジェクトを収集するエージェントオブジェクトを生成し、参照オブジェクトB−>被参照オブジェクトBのクローンを介して、キャッシュ領域100に送り込む。
エージェントオブジェクトを送り込む際の具体的な実装例としては、生成したエージェントオブジェクトを引数として、参照オブジェクト領域110内の参照オブジェクトCのメソッドをコールする、という手法が考えられる。
以後、同様にエージェントオブジェクトを引数として参照先オブジェクトのメソッドを順次コールすることで、エージェントオブジェクトがキャッシュ領域100内を循環し、各オブジェクトの属性値が収集される。
(2) Generating and sending an agent The application 300 creates an agent object that collects objects in the cache area 100 and sends it to the cache area 100 via a clone of the reference object B-> referenced object B.
As a specific implementation example when sending the agent object, a method of calling the method of the reference object C in the reference object area 110 using the generated agent object as an argument can be considered.
Thereafter, similarly, by sequentially calling the method of the reference destination object with the agent object as an argument, the agent object circulates in the cache area 100 and the attribute value of each object is collected.

この手法は、図18で説明した原則的な取得手順と比較すると、最初に被参照オブジェクトBのクローンとエージェントオブジェクトを生成することを除いて、オブジェクト生成が行われないため、CPU処理負荷やメモリ負荷の観点から、図18の例と比較して格段に有利である。
したがって、アプリケーション300が大量のオブジェクトを取得する際でも、速度面のパフォーマンスを低下させる懸念がない。
Compared with the basic acquisition procedure described with reference to FIG. 18, this method does not perform object generation except that the clone of the referenced object B and the agent object are first generated. From the viewpoint of load, it is much more advantageous than the example of FIG.
Therefore, even when the application 300 acquires a large number of objects, there is no concern that the speed performance is degraded.

このような、相手方オブジェクトが保持していない機能(本実施の形態6ではオブジェクト収集機能)を有するオブジェクトを引き渡すことで、相手方オブジェクトに機能を追加する手法は、一般に「Visitorパターン」と呼ばれるデザインパターンとして知られている。
ただし、「Visitorパターン」は、一般的なオブジェクトデザイン手法について言及したものであり、汎用的に定義されたものであるのに対し、本発明では、オブジェクトの参照関係を利用したオブジェクト収集を行う点において、「Visitorパターン」一般とは異なる独自の手法であると言える。
Such a method of adding a function to a counterpart object by delivering an object having a function that the counterpart object does not hold (an object collection function in the sixth embodiment) is a design pattern generally called a “visitor pattern”. Known as.
However, the “Visitor pattern” refers to a general object design method and is defined for general purposes, whereas in the present invention, the object collection using the reference relationship between objects is performed. However, it can be said that this is a unique method different from the general “Visitor pattern”.

図20は、従来のキャッシュと本実施の形態6に係るオブジェクトキャッシュの、メモリ使用に関する差異点を比較して説明するものである。
図20(a)は、従来のキャッシュにおけるメモリの使用状況を示す。従来のキャッシュでは、ある1つのオブジェクトを入口として、関連する全てのオブジェクトを取得する場合は、関連付けられている全てのオブジェクトをアプリケーション300側にクローン生成する。
この場合、関連する全てのオブジェクトがインスタンス化されるため、アプリケーションのメモリ領域を圧迫する要因となっていた。
FIG. 20 compares and explains the difference in memory usage between the conventional cache and the object cache according to the sixth embodiment.
FIG. 20A shows the usage status of a memory in a conventional cache. In the conventional cache, when acquiring all related objects using a certain object as an entrance, all the related objects are cloned on the application 300 side.
In this case, since all related objects are instantiated, this has been a factor in pressing the memory area of the application.

図20(b)は、本実施の形態6に係るオブジェクトキャッシュのオブジェクト収集動作状況を示す。
図19で説明したように、キャッシュ領域100内の複数のオブジェクトを生成する際には、入口となるオブジェクトのクローンのみを生成し、これを入口としてエージェントオブジェクトを送り込むので、オブジェクトのクローンを大量に生成する必要がなく、メモリ使用量の観点からも有利である。
FIG. 20B shows the object collection operation status of the object cache according to the sixth embodiment.
As described with reference to FIG. 19, when generating a plurality of objects in the cache area 100, only the clone of the object that is the entrance is generated, and the agent object is sent using this as the entrance. There is no need to generate the memory, which is advantageous from the viewpoint of memory usage.

以上のように、本実施の形態6では、キャッシュ領域100内の複数のオブジェクトを取得する際は、入口となるオブジェクトを介してエージェントオブジェクトをキャッシュ領域100内に送り込む。
この手法により、アクセス速度とメモリ使用量の双方の観点から、オブジェクトキャッシュのパフォーマンスを向上させることができる。
As described above, in the sixth embodiment, when a plurality of objects in the cache area 100 are acquired, the agent object is sent into the cache area 100 via the object serving as an entrance.
This technique can improve the performance of the object cache from the viewpoint of both access speed and memory usage.

実施の形態7.
実施の形態6では、エージェントオブジェクトを用いて、キャッシュ領域100内のオブジェクトを高速に収集する手法について説明した。
本発明の実施の形態7では、エージェントオブジェクトの収集条件について、より具体的に説明する。
Embodiment 7 FIG.
In the sixth embodiment, the method for collecting the objects in the cache area 100 at high speed using the agent object has been described.
In the seventh embodiment of the present invention, the agent object collection conditions will be described more specifically.

エージェントオブジェクトが、キャッシュ領域100内の全てのオブジェクトを取得する場合は、特段の措置は必要ないが、ある一定の条件に該当するオブジェクトのみを収集するような場合は、検索条件に相当する情報を、エージェントオブジェクトに渡す必要がある。
そこで、本実施の形態7では、エージェントオブジェクトの検索条件を定義したプロパティファイルを、キャッシュマネージャ200の配下に渡しておくこととする。
このプロパティファイルには、以下の(1)(2)の情報を記述しておく。
When the agent object acquires all the objects in the cache area 100, no special measures are required. However, when collecting only objects that meet a certain condition, information corresponding to the search condition is displayed. Need to be passed to the agent object.
Therefore, in the seventh embodiment, the property file defining the search conditions for the agent object is passed under the cache manager 200.
The following information (1) and (2) is described in this property file.

(1)収集対象オブジェクトのタイプ/ステレオタイプの少なくとも一方
収集対象オブジェクトのタイプ/ステレオタイプを指定して収集するとは、例えば以下のようなことを言う。
(1.1)収集対象オブジェクトのクラス型を、プロパティファイルに指定しておく。例えば、「Account」クラスとそのサブクラスのみを収集する、といったような使い方をする。
(1.2)<<control>>ステレオタイプのオブジェクトのみを収集する、といったような使い方をする。
(1.3)上記の双方を収集条件に指定する。
(1) Collecting by specifying at least one of the type / stereotype of the object to be collected and specifying the type / stereotype of the object to be collected means the following, for example.
(1.1) The class type of the collection target object is specified in the property file. For example, the usage is such that only the “Account” class and its subclasses are collected.
(1.2) << control >>>> Only a stereo type object is collected.
(1.3) Specify both of the above as collection conditions.

(2)エージェントオブジェクトの進行方向
進行方向を指定して収集するとは、オブジェクトの参照先が複数ある場合に、エージェントオブジェクトがいずれの方向に向かって進むかを指定しておくことである。
オブジェクトの参照関係は、キャッシュ領域100にオブジェクトを預ける際に、アプリケーション300側で把握しているため、これに基づき、いずれの方向に進んで収集を行うべきかを、アプリケーション300の側から指定する。
(2) Direction of travel of agent object Specifying the direction of travel and collecting means to specify in which direction the agent object proceeds when there are a plurality of object reference destinations.
The object reference relationship is known on the application 300 side when depositing an object in the cache area 100, and based on this, the application 300 side specifies in which direction the collection should be performed. .

以上のように、本実施の形態7では、検索条件をプロパティファイルとしてエージェントプログラムから分離したことで、ひとつのエージェントで様々なパターンのデータ収集が可能になる。   As described above, in the seventh embodiment, the search condition is separated from the agent program as a property file, so that various patterns of data can be collected by one agent.

実施の形態8.
以上の実施の形態1〜7では、キャッシュマネージャ200は、キャッシュ領域100内のオブジェクトの参照情報を張り替えている最中などには、オブジェクトに「Non−repeatable read」フラグや「Phantom read」フラグを保持させておくことを説明した。
アプリケーション300がこれらのフラグの内容を取得した時、アプリケーション300がどのように振舞うかは、そのときのトランザクションのポリシーなどによる。
Embodiment 8 FIG.
In the above first to seventh embodiments, the cache manager 200 sets the “Non-repeatable read” flag and the “Phantom read” flag to the object, for example, while the reference information of the object in the cache area 100 is being replaced. I explained that it was kept.
How the application 300 behaves when the application 300 acquires the contents of these flags depends on the policy of the transaction at that time.

1つの実装例としては、アプリケーション300とキャッシュマネージャ200の間を接続するコネクションオブジェクトを生成し、このコネクションオブジェクトに、上述のようなフラグを受け取った際の振る舞いに関するポリシーをセットしておく、という手法が考えられる。   As one implementation example, a method of generating a connection object for connecting the application 300 and the cache manager 200 and setting a policy related to the behavior when the above-described flag is received is set in the connection object. Can be considered.

実施の形態9.
以上の実施の形態1〜8では、本発明に係るオブジェクトキャッシュの実体は、キャッシュマネージャ200とキャッシュ領域100であることを説明した。
キャッシュマネージャ200の実装形態としては、例えば以下のようなものが考えられる。
Embodiment 9 FIG.
In the first to eighth embodiments described above, the object cache entity according to the present invention is the cache manager 200 and the cache area 100.
As an implementation form of the cache manager 200, for example, the following can be considered.

(1)キャッシュマネージャ200を、コンピュータ上で常時起動してアプリケーション300からの要求を待ち受ける、サービスとして構成する。
(2)キャッシュマネージャ200の機能を、クラスライブラリのような機能群として構成しておき、アプリケーション300にこれを組み込んで、アプリケーション300にこれと同等の機能を付与する。
(1) The cache manager 200 is configured as a service that always starts on the computer and waits for a request from the application 300.
(2) The function of the cache manager 200 is configured as a function group such as a class library, and this is incorporated into the application 300 to give the application 300 the same function.

実施の形態10.
以上の実施の形態1〜9では、オブジェクトキャッシュのアイソレーションレベルとして、「Read Committed」を実現していることを説明したが、その他のアイソレーションレベルも、フラグを適切に設定することにより実現可能である。
Embodiment 10 FIG.
In the above first to ninth embodiments, it has been described that “Read Committed” is realized as the isolation level of the object cache. However, other isolation levels can also be realized by appropriately setting a flag. It is.

また、以上の実施の形態1〜9では、オブジェクトキャッシュを構築する方法として、キャッシュ領域100のみならず、キャッシュマネージャ200を介したオブジェクトの取得や変更などについても説明した。
これは、オブジェクトキャッシュは構築するのみでは用をなさず、格納したオブジェクトを取得や変更することが必須であるからである。
即ち、本発明に係る狭義のオブジェクトキャッシュとは、キャッシュ領域100のことを指すが、本発明に係るオブジェクトキャッシュをより広義に捉えると、キャッシュ領域100とキャッシュマネージャ200の総体を指すものと言えるのである。
In the above first to ninth embodiments, the acquisition and change of the object via the cache manager 200 as well as the cache area 100 have been described as the method for constructing the object cache.
This is because the object cache is not used only for construction, but the stored object must be acquired or changed.
That is, the narrowly-defined object cache according to the present invention refers to the cache area 100, but if the object cache according to the present invention is understood in a broader sense, it can be said that it refers to the whole of the cache area 100 and the cache manager 200. is there.

実施の形態1に係るオブジェクトキャッシュの構成図である。2 is a configuration diagram of an object cache according to Embodiment 1. FIG. キャッシュ領域100にオブジェクトを格納するイメージである。This is an image for storing an object in the cache area 100. アプリケーション300が新たなオブジェクトAをキャッシュ領域100に預ける際の手順を説明するものである。The procedure when the application 300 deposits a new object A in the cache area 100 will be described. キャッシュ領域100に格納されているオブジェクトにアクセスする際の手順を説明するものである。A procedure for accessing an object stored in the cache area 100 will be described. アプリケーション300が被参照オブジェクトBのクローンに対して行った変更をキャッシュ領域100に反映して確定させる手順を説明するものである。A procedure for reflecting changes made by the application 300 to the clone of the referenced object B in the cache area 100 and confirming the changes will be described. 既存のエンティティAに関連Bをもって新たなエンティティCを関連付ける様子を、関連モデルで表したものである。A state in which a new entity C is associated with an existing entity A with a relationship B is represented by a relationship model. アプリケーション300が、キャッシュ領域100に格納されている被参照オブジェクトAを取得する様子を示すものである。It shows how the application 300 acquires the referenced object A stored in the cache area 100. アプリケーション300が、新たに追加するオブジェクトCと、関連を表す関連オブジェクトBとを生成する様子を示すものである。The application 300 shows a state in which an object C to be newly added and a related object B representing a relation are generated. アプリケーション300が取得および生成した各オブジェクトを、キャッシュ領域100に反映する様子を示すものである。It shows how each object acquired and generated by the application 300 is reflected in the cache area 100. キャッシュ領域100へ行った変更を確定する様子を示すものである。It shows how changes made to the cache area 100 are confirmed. キャッシュ領域100内のオブジェクトCを削除する最初のステップを示すものである。This shows the first step of deleting the object C in the cache area 100. 被参照オブジェクトBのクローンをキャッシュ領域100に反映するステップを示すものである。The step of reflecting the clone of the referenced object B in the cache area 100 is shown. 被参照オブジェクトA/Cから参照オブジェクトBに向けた参照情報を削除するステップを示すものである。The step of deleting the reference information from the referenced object A / C toward the reference object B is shown. 削除対象の各オブジェクトがキャッシュ領域100から順次削除されていく様子を示すものである。This shows how the objects to be deleted are sequentially deleted from the cache area 100. 削除対象の各オブジェクトがキャッシュ領域100から順次削除されていく様子を示すものである。This shows how the objects to be deleted are sequentially deleted from the cache area 100. 削除対象の各オブジェクトがキャッシュ領域100から順次削除されていく様子を示すものである。This shows how the objects to be deleted are sequentially deleted from the cache area 100. 実施の形態5におけるキャッシュ領域100のロック範囲を説明するものである。The lock range of the cache area 100 in the fifth embodiment will be described. キャッシュ領域100から複数のオブジェクトを取得する際の原則的手順を説明するものである。A principle procedure for acquiring a plurality of objects from the cache area 100 will be described. 実施の形態6において、キャッシュ領域100から複数のオブジェクトを取得する手順を説明するものである。In the sixth embodiment, a procedure for acquiring a plurality of objects from the cache area 100 will be described. 従来のキャッシュと実施の形態6に係るオブジェクトキャッシュの、メモリ使用に関する差異点を比較して説明するものである。A difference between the conventional cache and the object cache according to the sixth embodiment regarding the memory use will be compared and described.

符号の説明Explanation of symbols

100 キャッシュ領域、110 参照オブジェクト領域、120 被参照オブジェクト領域、200 キャッシュマネージャ、300 アプリケーション。   100 cache area, 110 reference object area, 120 referenced object area, 200 cache manager, 300 application.

Claims (15)

コンピュータのメモリ上にオブジェクトキャッシュを構築する方法であって、
前記メモリ上にキャッシュ領域を確保するステップと、
前記キャッシュ領域にキャッシュ対象オブジェクトを格納するステップと、
格納したキャッシュ対象オブジェクトに対するアクセス要求を受け付けるステップと、
を有し、
前記キャッシュ領域に前記キャッシュ対象オブジェクトを格納する際に、
当該キャッシュ対象オブジェクトを、
そのキャッシュ対象オブジェクトそのものの内容を表す被参照オブジェクトと、
その被参照オブジェクトに向けた参照情報を保持する参照オブジェクトと、
に分割して前記キャッシュ領域に格納しておき、
格納した被参照オブジェクトに対するアクセス要求を受け付けると、
前記参照オブジェクトを介して当該被参照オブジェクトに向けた参照を返し、
その参照を用いて間接的に当該被参照オブジェクトにアクセスさせる
ことを特徴とするオブジェクトキャッシュ構築方法。
A method of building an object cache on a computer memory,
Securing a cache area on the memory;
Storing a cache object in the cache area;
Receiving an access request for the stored cache target object;
Have
When storing the cache target object in the cache area,
The cached object
A referenced object that represents the contents of the cached object itself,
A reference object that holds reference information for the referenced object;
Divided into two and stored in the cache area,
When an access request for the stored referenced object is received,
Returns a reference to the referenced object via the reference object;
A method for constructing an object cache, characterized in that the referenced object is indirectly accessed using the reference.
前記キャッシュ領域に格納した被参照オブジェクトに対するアクセス要求を受け付けると、
その被参照オブジェクトのクローンを生成するとともに、
そのクローンに向けた参照情報を保持する参照オブジェクトを生成し、
その参照オブジェクトを介して前記クローンに向けた参照を返し、
その参照を用いて前記クローンにアクセスさせる
ことを特徴とする請求項1に記載のオブジェクトキャッシュ構築方法。
When receiving an access request for the referenced object stored in the cache area,
A clone of the referenced object,
Create a reference object that holds the reference information for the clone,
Returns a reference to the clone via its reference object,
The object cache construction method according to claim 1, wherein the clone is accessed using the reference.
前記キャッシュ領域に格納した被参照オブジェクトに対するアクセス要求を受け付けてその被参照オブジェクトのクローンを生成する際には、
その被参照オブジェクトが参照している他のオブジェクトへの参照情報を、
当該クローンが参照する参照先オブジェクトを特定する情報として当該クローンに保持させる
ことを特徴とする請求項2に記載のオブジェクトキャッシュ構築方法。
When receiving an access request for a referenced object stored in the cache area and generating a clone of the referenced object,
Reference information to other objects referenced by the referenced object
The object cache construction method according to claim 2, wherein the clone is held as information for specifying a reference destination object referred to by the clone.
前記クローンに対して行った変更を前記キャッシュ領域に反映すべき旨の要求を受け付けるステップと、
その要求に基づき前記変更を前記キャッシュ領域に反映する変更確定ステップと、
を有し、
前記変更確定ステップでは、
変更に係るクローンの元となった被参照オブジェクトに向けた参照情報を保持する参照オブジェクトの当該参照情報を、
変更に係るクローンに向けた参照情報に書き換えることにより、
前記クローンに対して行った変更を前記キャッシュ領域に反映する
ことを特徴とする請求項2または請求項3に記載のオブジェクトキャッシュ構築方法。
Receiving a request to reflect changes made to the clone in the cache area;
A change confirmation step for reflecting the change in the cache area based on the request;
Have
In the change confirmation step,
The reference information of the reference object that holds the reference information for the referenced object that is the source of the clone related to the change,
By rewriting the reference information for the clone to be changed,
The object cache construction method according to claim 2 or 3, wherein a change made to the clone is reflected in the cache area.
前記キャッシュ領域に前記被参照オブジェクトを格納している場合において、
その被参照オブジェクトに関連付けた新たなキャッシュ対象オブジェクトを前記キャッシュ領域に格納すべき旨の要求を受け付けるステップと、
その要求に基づき新たなキャッシュ対象オブジェクトを前記キャッシュ領域に格納するとともに先に格納されている被参照オブジェクトと関連付ける関連追加確定ステップと、
を有し、
前記関連追加確定ステップでは、
先に前記キャッシュ領域に格納されている被参照オブジェクトのクローンを生成し、
そのクローンと新たなキャッシュ対象オブジェクトを関連付けて前記キャッシュ領域に格納する
ことを特徴とする請求項2ないし請求項4のいずれかに記載のオブジェクトキャッシュ構築方法。
In the case where the referenced object is stored in the cache area,
Receiving a request to store a new cache target object associated with the referenced object in the cache area;
An association addition confirmation step for storing a new cache target object in the cache area based on the request and associating the new cache target object with the previously-referenced object;
Have
In the association addition confirmation step,
Generate a clone of the referenced object stored in the cache area first,
The object cache construction method according to any one of claims 2 to 4, wherein the clone and a new cache target object are associated with each other and stored in the cache area.
前記関連追加確定ステップでは、
先に前記キャッシュ領域に格納されている被参照オブジェクトと新たなキャッシュ対象オブジェクトの関連付け情報を保持する関連オブジェクトを生成し、
新たなキャッシュ対象オブジェクトと前記関連オブジェクトを前記キャッシュ領域に格納する
ことを特徴とする請求項5に記載のオブジェクトキャッシュ構築方法。
In the association addition confirmation step,
Generating a related object that retains association information between the referenced object previously stored in the cache area and the new cache target object;
6. The object cache construction method according to claim 5, wherein a new cache target object and the related object are stored in the cache area.
前記関連追加確定ステップでは、
先に前記キャッシュ領域に格納されている被参照オブジェクトに、前記関連オブジェクトに対応する参照オブジェクトに向けた参照情報を保持させるとともに、
新たなキャッシュ対象オブジェクトに、前記関連オブジェクトに対応する参照オブジェクトに向けた参照情報を保持させる
ことを特徴とする請求項6に記載のオブジェクトキャッシュ構築方法。
In the association addition confirmation step,
The referenced object stored in the cache area first holds the reference information for the reference object corresponding to the related object, and
The object cache construction method according to claim 6, further comprising: causing a new cache target object to hold reference information directed to a reference object corresponding to the related object.
前記関連追加確定ステップでは、
前記キャッシュ領域に格納した前記関連オブジェクトに、
先に前記キャッシュ領域に格納されている被参照オブジェクトに対応した参照オブジェクトに向けた参照情報を保持させるとともに、
新たなキャッシュ対象オブジェクトに対応した参照オブジェクトに向けた参照情報を保持させる
ことを特徴とする請求項6または請求項7に記載のオブジェクトキャッシュ構築方法。
In the association addition confirmation step,
In the related object stored in the cache area,
While holding the reference information for the reference object corresponding to the referenced object previously stored in the cache area,
The object cache construction method according to claim 6 or 7, wherein reference information for a reference object corresponding to a new cache target object is held.
前記関連追加確定ステップにおいて、
その処理を行っている旨を表すフラグ情報を、先に前記キャッシュ領域に格納されている被参照オブジェクトに対応する参照オブジェクトに保持させておき、
この参照オブジェクトに対するアクセス要求を受け付けると、前記フラグ情報を返す
ことを特徴とする請求項5ないし請求項8のいずれかに記載のオブジェクトキャッシュ構築方法。
In the association addition confirmation step,
Flag information indicating that the process is being performed is held in a reference object corresponding to the referenced object previously stored in the cache area,
The object cache construction method according to any one of claims 5 to 8, wherein the flag information is returned when an access request for the reference object is received.
前記キャッシュ領域に前記被参照オブジェクトと前記関連オブジェクトを格納している場合において、
前記関連オブジェクトにより関連付けられている被参照オブジェクトを前記キャッシュ領域から削除すべき旨の要求を受け付けるステップと、
その要求に基づきその被参照オブジェクトを前記キャッシュ領域から削除する削除確定ステップと、
を有し、
前記削除確定ステップでは、
前記関連オブジェクトのクローンを生成するとともに、
そのクローンに向けた参照情報を保持する参照オブジェクトを生成し、
その参照オブジェクトを介して、
前記関連オブジェクトにより関連付けられている被参照オブジェクトと、
前記関連オブジェクトとの関連付けを削除する
ことを特徴とする請求項6ないし請求項9のいずれかに記載のオブジェクトキャッシュ構築方法。
In the case where the referenced object and the related object are stored in the cache area,
Receiving a request to delete the referenced object associated by the related object from the cache area;
A deletion confirmation step of deleting the referenced object from the cache area based on the request;
Have
In the deletion confirmation step,
Creating a clone of the related object;
Create a reference object that holds the reference information for the clone,
Via its reference object
A referenced object associated with the associated object;
The object cache construction method according to claim 6, wherein the association with the related object is deleted.
前記削除確定ステップでは、
前記関連オブジェクトに向けた参照情報を保持する参照オブジェクトの当該参照情報を、前記関連オブジェクトのクローンに向けた参照情報に書き換えるとともに、
前記関連オブジェクトにより関連付けられている被参照オブジェクトが保持している、
前記関連オブジェクトに対応する参照オブジェクトに向けた関連付けを削除することにより、
前記関連オブジェクトと関連付けられているオブジェクトの参照情報を削除する
ことを特徴とする請求項10に記載のオブジェクトキャッシュ構築方法。
In the deletion confirmation step,
Rewriting the reference information of the reference object that holds the reference information for the related object, with reference information for the clone of the related object,
Held by the referenced object associated by the related object,
By deleting the association towards the reference object corresponding to the related object,
The object cache construction method according to claim 10, wherein reference information of an object associated with the related object is deleted.
前記削除確定ステップにおいて、
その処理を行っている旨を表すフラグ情報を、前記関連オブジェクトに対応する参照オブジェクトに保持させておき、
この参照オブジェクトに対するアクセス要求を受け付けると、前記フラグ情報を返す
ことを特徴とする請求項10または請求項11に記載のオブジェクトキャッシュ構築方法。
In the deletion confirmation step,
Flag information indicating that the processing is being performed is held in a reference object corresponding to the related object,
The object cache construction method according to claim 10 or 11, wherein the flag information is returned when an access request for the reference object is received.
前記キャッシュ領域に格納されている各オブジェクトに対して行う変更を確定する際には、
そのオブジェクトが参照し、またはそのオブジェクトを参照している周辺のオブジェクトに対する変更を禁止する
ことを特徴とする請求項4ないし請求項12のいずれかに記載のオブジェクトキャッシュ構築方法。
When confirming changes to be made to each object stored in the cache area,
The object cache construction method according to any one of claims 4 to 12, wherein the object refers to or changes to surrounding objects that refer to the object are prohibited.
前記キャッシュ領域に格納されている複数の被参照オブジェクトを一括して取得すべき旨の要求を受け取るステップを有し、
その要求を受け取る際に、
一括取得を実行するエージェントオブジェクトを併せて受け取り、
前記被参照オブジェクトのクローンを生成することなく、
そのエージェントオブジェクトに、
前記キャッシュ領域に格納されている複数の被参照オブジェクトが保持する属性値を、前記参照情報を用いて直接取得させる
ことを特徴とする請求項1ないし請求項13のいずれかに記載のオブジェクトキャッシュ構築方法。
Receiving a request to collectively acquire a plurality of referenced objects stored in the cache area;
Upon receiving that request,
Receives agent objects that execute batch acquisition,
Without creating a clone of the referenced object,
In that agent object,
The object cache construction according to any one of claims 1 to 13, wherein attribute values held by a plurality of referenced objects stored in the cache area are directly obtained using the reference information. Method.
請求項1ないし請求項14のいずれかに記載のオブジェクトキャッシュ構築方法を当該コンピュータに実行させる
ことを特徴とするオブジェクトキャッシュ構築プログラム。
An object cache construction program that causes the computer to execute the object cache construction method according to any one of claims 1 to 14.
JP2007337505A 2007-12-27 2007-12-27 Object cache construction method, object cache construction program Expired - Fee Related JP5511134B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007337505A JP5511134B2 (en) 2007-12-27 2007-12-27 Object cache construction method, object cache construction program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007337505A JP5511134B2 (en) 2007-12-27 2007-12-27 Object cache construction method, object cache construction program

Publications (2)

Publication Number Publication Date
JP2009157805A true JP2009157805A (en) 2009-07-16
JP5511134B2 JP5511134B2 (en) 2014-06-04

Family

ID=40961732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007337505A Expired - Fee Related JP5511134B2 (en) 2007-12-27 2007-12-27 Object cache construction method, object cache construction program

Country Status (1)

Country Link
JP (1) JP5511134B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013046360A1 (en) * 2011-09-28 2013-04-04 株式会社日立製作所 Object management device and object management method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962689A (en) * 1995-08-21 1997-03-07 Matsushita Electric Ind Co Ltd Multimedia compound document management system
JP2003248616A (en) * 2003-02-17 2003-09-05 Fuji Xerox Co Ltd Object-oriented database system and its object managing method
JP2005190221A (en) * 2003-12-25 2005-07-14 Sap Ag Cache control unit, its method, and computer program
JP2006185325A (en) * 2004-12-28 2006-07-13 Internatl Business Mach Corp <Ibm> Method for reusing application object

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962689A (en) * 1995-08-21 1997-03-07 Matsushita Electric Ind Co Ltd Multimedia compound document management system
JP2003248616A (en) * 2003-02-17 2003-09-05 Fuji Xerox Co Ltd Object-oriented database system and its object managing method
JP2005190221A (en) * 2003-12-25 2005-07-14 Sap Ag Cache control unit, its method, and computer program
JP2006185325A (en) * 2004-12-28 2006-07-13 Internatl Business Mach Corp <Ibm> Method for reusing application object

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG199800373020; 渡辺美樹 他: '"Javaのためのデータベース・エンジンの設計課題"' 電子情報通信学会技術研究報告 Vol.97,No.160, 19970714, p.125-130 *
JPN6012061472; 渡辺美樹 他: '"Javaのためのデータベース・エンジンの設計課題"' 電子情報通信学会技術研究報告 Vol.97,No.160, 19970714, p.125-130 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013046360A1 (en) * 2011-09-28 2013-04-04 株式会社日立製作所 Object management device and object management method
JP5668146B2 (en) * 2011-09-28 2015-02-12 株式会社日立製作所 Object management apparatus and object management method

Also Published As

Publication number Publication date
JP5511134B2 (en) 2014-06-04

Similar Documents

Publication Publication Date Title
US5812130A (en) Data management system and method for concurrent engineering
KR101573965B1 (en) Atomic multiple modification of data in a distributed storage system
US9292573B2 (en) Extended database engine providing versioning and embedded analytics
JP2863805B2 (en) Version management method
KR20200093561A (en) Remote tree update for client synchronization service
JP2007299063A (en) Information processor and information processing method
US11698893B2 (en) System and method for use of lock-less techniques with a multidimensional database
US6941309B2 (en) Object integrated management system
US20230401241A1 (en) System for lightweight objects
CN112162846B (en) Transaction processing method, device and computer readable storage medium
CN107977446A (en) A kind of memory grid data load method based on data partition
US20200250136A1 (en) Domains-based snapshots for efficient membership retrieval and governance
KR100313844B1 (en) Locking tool data objects in a framework environment
US8140493B2 (en) Changing metadata without invalidating cursors
US11200198B2 (en) Excluding directory trees from data service operations
JP5511134B2 (en) Object cache construction method, object cache construction program
JP2000347921A (en) Data managing method and device for executing the method
US9009731B2 (en) Conversion of lightweight object to a heavyweight object
US20070112771A1 (en) Directory entry locks
CN114610687A (en) Metadata storage method and distributed file system
WO2021004295A1 (en) Metadata processing method and apparatus, and computer-readable storage medium
CN113901018A (en) Method and device for identifying file to be migrated, computer equipment and storage medium
US20190213081A1 (en) Multi-Role Application Orchestration In A Distributed Storage System
CN116821058B (en) Metadata access method, device, equipment and storage medium
US11514080B1 (en) Cross domain transactions

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131004

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140325

R150 Certificate of patent or registration of utility model

Ref document number: 5511134

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees