JPH11120067A - Data base processing method for managing partial information of data precedently - Google Patents
Data base processing method for managing partial information of data precedentlyInfo
- Publication number
- JPH11120067A JPH11120067A JP9284906A JP28490697A JPH11120067A JP H11120067 A JPH11120067 A JP H11120067A JP 9284906 A JP9284906 A JP 9284906A JP 28490697 A JP28490697 A JP 28490697A JP H11120067 A JPH11120067 A JP H11120067A
- Authority
- JP
- Japan
- Prior art keywords
- instance
- database
- stored
- information
- proxy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、データベース処理
装置に関する。特にリレーショナルデータベース管理シ
ステムをオブジェクト指向拡張する場合において、複雑
な構造をもつデータや可変長のデータや長大なデータを
管理する方法に関する。[0001] The present invention relates to a database processing apparatus. In particular, the present invention relates to a method for managing data having a complicated structure, variable-length data, or long data when an object-oriented extension of a relational database management system is performed.
【0002】[0002]
【従来の技術】オブジェクト指向プログラミングの中心
となる考え方にデータ抽象がある。データ抽象は、デー
タの物理的な構造をデータのユーザから隠蔽し、データ
モデルを論理的なインタフェース仕様であるオブジェク
トの「振る舞い」によって表現する。このデータ抽象の実
装技術の一つに「ハンドル」がある。ハンドルは、固定長
のオブジェクトを指すポインタである。ユーザはハンド
ルを用いることにより、ハンドルが指すオブジェクトの
サイズや物理構造などを意識せずにすむ。例えば、「オ
ブジェクトAがオブジェクトBを含む」というモデルを
実装する場合、オブジェクトBの物理的な構造を知らな
くとも、オブジェクトBを指すハンドルをもつことによ
って、オブジェクトAを構築することができる。2. Description of the Related Art Data abstraction is a central idea of object-oriented programming. Data abstraction hides the physical structure of the data from the user of the data, and expresses the data model by the "behavior" of the object, which is a logical interface specification. One of the implementation techniques of this data abstraction is a "handle". A handle is a pointer to a fixed-length object. By using the handle, the user does not need to be aware of the size or physical structure of the object indicated by the handle. For example, when implementing a model in which "object A includes object B", object A can be constructed by having a handle pointing to object B without knowing the physical structure of object B.
【0003】また、ハンドルは無用のコピーを削減す
る。オブジェクトの代入操作では、オブジェクトのコピ
ーを行うのではなく、オブジェクトを指すハンドルをコ
ピーし、複数のハンドルでオブジェクトを共有する。あ
るハンドル経由でオブジェクトを更新するときに初めて
オブジェクトのコピーを行う(コピーオンライト)。こ
のようにハンドルを用いることで、コピーに伴う負荷の
低減やメモリ資源の節約を図ることができる。ハンドル
に対してオブジェクトが大きい場合や可変長の場合に、
この効果は顕著に現れる。[0003] Handles also reduce unnecessary copying. In an object assignment operation, instead of copying an object, a handle pointing to the object is copied, and the object is shared by a plurality of handles. Copy an object for the first time when updating the object via a handle (copy-on-write). By using the handle in this manner, it is possible to reduce the load associated with copying and save memory resources. If the object is large or variable length with respect to the handle,
This effect appears remarkably.
【0004】オブジェクト指向プログラミング言語C+
+でのハンドルの例題は、R.B.Murray著(岩谷訳)「現
実的なC++プログラミング」(ソフトバンク 1994)
に記述されている。The object-oriented programming language C +
An example of a handle with + is by RBMurray (translated by Iwatani), "Realistic C ++ Programming" (Softbank 1994)
It is described in.
【0005】オブジェクト指向データベースにおける永
続オブジェクトへのハンドルについては、オブジェクト
データベースの標準のひとつであるオブジェクトデータ
ベース標準:ODMG−93(R.G.G.Cattel,et al.“T
HE OBJECT DATABASE STANDARD:ODMG-93 Release 1.1”,
Morgan Kaufmann Publishers, Inc.,1994)にRefクラス
として記述されている。Regarding a handle to a persistent object in an object-oriented database, an object database standard: ODMG-93 (RGGCattel, et al. “T
HE OBJECT DATABASE STANDARD: ODMG-93 Release 1.1 ”,
Morgan Kaufmann Publishers, Inc., 1994).
【0006】リレーショナルデータベースの分野でも、
オブジェクト指向の考え方を導入する動きがある。その
標準として検討されているSQL3(Database Language SQ
L, ISO Working Draft, July 1996)には、抽象データ
型や長大オブジェクト型がサポートされ、ユーザがそれ
ぞれの型のオブジェクトを操作するためのハンドルであ
るロケータの概念が導入されている。ただし、このロケ
ータはオブジェクト指向データベースのRefなどのハン
ドルとは異なり、オブジェクト識別性をもたない「値
(インスタンス)」を指すハンドルである。In the field of relational databases,
There is a move to introduce object-oriented thinking. SQL3 (Database Language SQ) being considered as the standard
L, ISO Working Draft, July 1996) supports abstract data types and long object types, and introduces the concept of a locator, which is a handle for the user to manipulate objects of each type. However, this locator is different from a handle such as Ref of an object-oriented database, and is a handle indicating a “value (instance)” having no object identification.
【0007】このような背景において、抽象データ型や
長大オブジェクト型のインスタンスを指すハンドルにイ
ンスタンスを管理するデータベースサーバへのアクセス
情報を付加することによって、これらのインスタンスの
遅延取り出しを行う方法が考案されている(特願平9-54
155)。サーバ間のインスタンスのやり取りをハンドル
で行い、実際にインスタンスが必要になるまで実インス
タンスのサーバ間の転送を遅延させる。ハンドルの転送
に比べて抽象データ型や長大オブジェクト型のインスタ
ンスの転送は負荷がはるかに高いため、データベース処
理の高速化が可能となる。In such a background, a method has been devised in which access information to a database server that manages instances is added to a handle that points to an instance of an abstract data type or a long object type, so that these instances can be fetched with delay. (Japanese Patent Application 9-54)
155). The exchange of instances between servers is handled by handles, and the transfer of real instances between servers is delayed until the instances are actually needed. Since the transfer of an instance of an abstract data type or a long object type is much higher than the transfer of a handle, the speed of database processing can be increased.
【0008】[0008]
【発明が解決しようとする課題】データベース管理シス
テムにおいて、オブジェクト指向の考え方を導入する場
合、操作するデータの物理的構造や、データの寿命(一
時・永続)に依存しない一貫したインタフェースをユー
ザに提供できることが望ましい。この実装には、データ
の物理的構造を隠蔽することができるハンドルを用いる
ことが有効である。しかし、上記従来技術のハンドルを
用いた実装では、ハンドルが指すインスタンスに対する
操作が発生した場合、その動作を保証するために、イン
スタンス全体をメモリ上に展開する必要がある。このた
め、抽象データ型や長大オブジェクト型などの長大ある
いは構造が複雑であるデータ型をハンドルを用いてサポ
ートする場合に、次の二つの問題点が発生する。When an object-oriented concept is introduced in a database management system, a user is provided with a consistent interface that does not depend on the physical structure of data to be operated or the life (temporary / permanent) of data. Desirable. For this implementation, it is useful to use a handle that can hide the physical structure of the data. However, in the above-described implementation using a handle, when an operation is performed on an instance indicated by the handle, it is necessary to expand the entire instance on a memory in order to guarantee the operation. For this reason, the following two problems occur when a long or complicated data type such as an abstract data type or a long object type is supported using a handle.
【0009】(1)ユーザまたは内部処理に必要なデー
タはインスタンスの一部分になのにもかかわらず、イン
スタンス全体が取り出されるため余分な通信や不必要な
メモリ資源の消費がおこり、処理が遅くなり、場合によ
っては資源不足により処理が不可能となる。(1) In spite of the fact that the data necessary for the user or internal processing is a part of the instance, the entire instance is taken out, so that extra communication and unnecessary memory resource consumption occur, and the processing becomes slow. In some cases, processing becomes impossible due to lack of resources.
【0010】例えば、動的なタイプチェックには、イン
スタンス中のタイプ情報が必要となる。このタイプ情報
を取得するためだけに、インスタンス全体の取り出しが
発生する。[0010] For example, dynamic type checking requires type information in an instance. Just to get this type information, retrieval of the whole instance occurs.
【0011】また、ある条件を満たす文書を検索し、該
当する文書の題目と著者をリストアップし、その中から
選択された文書の内容を表示するというアプリケーショ
ンを考える。リストアップに必要なのは題目と著者であ
る。選択されない文書に関しては、長大なデータである
文書内容などは必要ない。にもかかわらず、リストアッ
プした文書インスタンスすべてがメモリに展開されてし
まう。もちろん、アプリケーション側で題目・著者など
と文書インスタンスへのハンドルを管理することによ
り、メモリ資源の消費や通信コストを抑えることができ
る。しかし、題目や著者は文書の属性であるのが自然で
ある。文書というものを抽象データ型として一括してデ
ータベースに格納できるにもかかわらず、アプリケーシ
ョン側で属性ごとにばらばらに取り出し、管理し直すと
いうのはデータベースとアプリケーション間のインタフ
ェース仕様の不良である。Also, consider an application that searches for a document that satisfies certain conditions, lists the titles and authors of the document, and displays the contents of the document selected from the list. All you need to list is the subject and the author. For documents that are not selected, document contents, which are long data, are not required. Nevertheless, all listed document instances are expanded in memory. Of course, by managing the title / author and the handle to the document instance on the application side, consumption of memory resources and communication cost can be suppressed. However, it is natural that the title and author are attributes of the document. Despite the fact that documents can be stored in a database as an abstract data type all at once, retrieving and re-managing each attribute separately on the application side is a defect in the interface specification between the database and the application.
【0012】(2)長大なインスタンスの場合は、全体
をメモリに展開することが現実的でない場合が存在す
る。また、ハンドルによって物理的構造が隠蔽されてい
るため、長大であるという物理的特性を考慮した処理を
選択する手段がない。したがって、メモリに展開するこ
とが現実的でない大きさのインスタンスの処理を行うと
莫大な通信負荷とメモリ資源の消費が発生し、多くの場
合に処理が不可能となる。(2) In the case of a long instance, there is a case where it is not practical to develop the entire instance in a memory. Further, since the physical structure is concealed by the handle, there is no means for selecting a process in consideration of the physical characteristic of being long. Therefore, when processing an instance having a size that is not practical to be developed in a memory, an enormous communication load and consumption of memory resources occur, and in many cases, the processing becomes impossible.
【0013】この2つの問題点を解決するために本発明
は、データベースに格納された複雑な構造をもつデータ
や、メモリ上に展開することが現実的でない長大データ
の操作や問い合わせ処理を、データの構造に依存しない
一貫したインタフェースを保ちながら高速化する手段を
提供することを課題とする。In order to solve these two problems, the present invention provides a method for operating and querying data having a complicated structure stored in a database or long data which is not practical to be developed on a memory. It is an object of the present invention to provide means for increasing the speed while maintaining a consistent interface that does not depend on the structure of.
【0014】[0014]
【課題を解決するための手段】前述の課題を解決するた
めに、インスタンスのもつ情報のうち、ユーザやデータ
ベース処理に必要な部分情報または前述の情報を制御す
るための制御情報と、部分情報または制御情報を管理す
る情報と、前述のインスタンスを取得するのに必要な情
報とからなる代理インスタンスを実インスタンスの代わ
りにハンドルから指すことで、ハンドルを用いたインス
タンス操作の一部分を代理インスタンスで処理し、実イ
ンスタンス全体の転送やメモリへの展開を抑制する。Means for Solving the Problems In order to solve the above-mentioned problems, of the information of the instance, partial information necessary for user or database processing or control information for controlling the above-mentioned information, and partial information or A part of the instance operation using the handle is processed by the proxy instance by pointing the proxy instance consisting of the information for managing the control information and the information necessary for acquiring the above-mentioned instance from the handle instead of the real instance. In addition, the transfer of the entire actual instance and the expansion to the memory are suppressed.
【0015】[0015]
【発明の実施の形態】以下、本発明の実施例を図面に基
づいて詳細に説明する。Embodiments of the present invention will be described below in detail with reference to the drawings.
【0016】第一の実施例として、抽象データ型のイン
スタンスに対するデータベース処理を代理インスタンス
をもちいて行う方法を説明する。As a first embodiment, a method for performing database processing on an instance of an abstract data type using a proxy instance will be described.
【0017】まず、本発明を実施するハードウェアの構
成を説明する。First, the configuration of hardware for implementing the present invention will be described.
【0018】図2は本発明の実施例のハードウエアの構
成を表している。処理装置の単位である1個以上のノー
ドがLANなどのネットワーク(200)によって接続
されている。一つのノードの構成は独立にデータベース
システムとして機能するコンピュータシステムであれば
どのような形態をとってもかまわない。例えば、ノード
201は中央演算装置や主記憶装置などからなるデータ
処理装置(211)とハードディスクなどのデータ記憶
装置(210)からなる。また、ノード202はノード
201の構成にキーボードやディスプレイなどのデータ
入出力装置を加えた構成となっている。それぞれのノー
ドは、独立にデータベースシステムとして機能し、さら
にネットワークを通してデータのやり取りを行うことが
できる。この構成は複数のデータベースシステムがネッ
トワークを介して相互に結合し、データ処理を並列に行
うシステムである。FIG. 2 shows a hardware configuration according to an embodiment of the present invention. One or more nodes, which are units of a processing device, are connected by a network (200) such as a LAN. The configuration of one node may take any form as long as it is a computer system that independently functions as a database system. For example, the node 201 includes a data processing device (211) including a central processing unit and a main storage device, and a data storage device (210) such as a hard disk. The node 202 has a configuration in which a data input / output device such as a keyboard and a display is added to the configuration of the node 201. Each node independently functions as a database system and can exchange data through a network. This configuration is a system in which a plurality of database systems are mutually connected via a network to perform data processing in parallel.
【0019】次に、上記ハードウェア構成の各ノードが
機能するデータベースシステムの概要を図3をもちいて
説明する。Next, an outline of a database system in which each node of the above hardware configuration functions will be described with reference to FIG.
【0020】データベースシステムは、ユーザが作成し
た複数のアプリケーションプログラム303及び304
と、アプリケーションプログラムからのデータ操作や問
い合せなどの処理やリソース管理などデータベースシス
テム全体の管理を行なうデータベース管理システム(3
00)と、データが格納されるデータベース(103)
と、データベースの定義情報を格納するディクショナリ
(302)から構成する。The database system includes a plurality of application programs 303 and 304 created by the user.
And a database management system (3) that manages the entire database system such as processing of data operations and inquiries from application programs and resource management.
00) and a database (103) in which data is stored
And a dictionary (302) for storing database definition information.
【0021】データベース管理システム(300)は、
論理処理部(310)と物理処理部(320)とシステ
ム制御部に分割することができる。論理処理部(31
0)はアプリケーションプログラムからの問い合せなど
を解析・実行する。アプリケーションプログラムから渡
される問い合せはSQLなどのデータベース問い合せ言
語によって記述されている。問い合せ解析部(311)
は、問い合せ文に対して構文解析及び意味解析を行う。
解析結果は静的最適化処理(312)によって、問い合
せに最適な処理手順を選択する。コード生成(313)
は、選択された処理手順に従い、実行可能な中間コード
を生成する。動的最適化処理(314)は、静的最適化
処理によって選ばれた処理候補の中から実行時の状態に
応じた最適な処理を選択する。コード解析実行(31
5)は生成した中間コードを動的最適化処理の選択に従
い実行する。The database management system (300)
It can be divided into a logical processing unit (310), a physical processing unit (320), and a system control unit. Logical processing unit (31
0) analyzes and executes inquiries from the application program. The query passed from the application program is described in a database query language such as SQL. Inquiry analysis unit (311)
Performs syntactic and semantic analysis on the query sentence.
The analysis result selects the optimal processing procedure for the inquiry by the static optimization processing (312). Code generation (313)
Generates an executable intermediate code according to the selected processing procedure. The dynamic optimization process (314) selects an optimal process according to the state at the time of execution from the process candidates selected by the static optimization process. Execute code analysis (31
5) executes the generated intermediate code according to the selection of the dynamic optimization processing.
【0022】物理処理部(320)は、システムで共用
するリソースの排他制御を行う排他制御(321)と、
データの編集や条件判定などを行うデータアクセス処理
(322)と、データの読み書きを行うデータベースバ
ッファ制御(323)から成る。The physical processing unit (320) includes an exclusive control (321) for performing exclusive control of resources shared by the system;
It comprises a data access process (322) for editing data and determining conditions, and a database buffer control (323) for reading and writing data.
【0023】システム制御部(330)は入出力の管理
などを行う。The system control unit (330) performs input / output management and the like.
【0024】以下、上記データベース管理システムにお
いて、代理インスタンスを用いたデータベース処理方法
について説明する。Hereinafter, a database processing method using a proxy instance in the database management system will be described.
【0025】図1は、代理インスタンスを用いたデータ
ベース処理の概要図である。FIG. 1 is a schematic diagram of database processing using a proxy instance.
【0026】本実施例では、説明を容易にするためデー
タベース処理を2つのノードにおける処理として説明す
る。実際は、複数のノードが存在できる。これらの処理
は、2つのノードにおける処理の組み合わせとして考え
ることができる。また、問い合わせ実行ノード(10
1)やデータベースアクセスノード(102)は、論理
的な処理の単位であり、図2のハードウェア構成の物理
的なノードに対応させることもできるし、一つの物理的
なノード内で、ソフトウェア的にノード(例えば、プロ
セスなど)を割り当てることもできる。前者の場合は、
100は図2の200のネットワークと同等であるし、
後者の場合は、100はプロセス間通信などを表わす。In this embodiment, the database processing will be described as processing in two nodes for ease of explanation. In practice, there can be multiple nodes. These processes can be considered as a combination of processes in two nodes. In addition, the query execution node (10
1) and the database access node (102) are units of logical processing, and can correspond to the physical node having the hardware configuration shown in FIG. 2, or can be implemented by software within one physical node. Can be assigned a node (eg, a process). In the former case,
100 is equivalent to the 200 network of FIG.
In the latter case, 100 indicates inter-process communication or the like.
【0027】問い合わせ実行ノード(101)は、問い
合わせを解析した結果から生成した中間コードに従い、
インスタンスの操作を実行するノードである。問い合わ
せ実行ノード(101)には、インスタンス管理(10
5)が存在し、インスタンスを展開するための領域の確
保・解放、インスタンスに対する基本操作(生成、破
壊、参照、更新、代入)を提供する。代理インスタンス
に対する基本操作もこのインスタンス管理(105)が
行う。The query execution node (101) according to the intermediate code generated from the result of analyzing the query,
This is the node that performs the operation of the instance. The query execution node (101) has an instance management (10
5) exists, and provides for securing / releasing an area for expanding an instance and basic operations (generation, destruction, reference, update, and substitution) for the instance. The basic operation for the proxy instance is also performed by this instance management (105).
【0028】データベースアクセスノード(102)
は、データベースに格納されたインスタンスを管理する
ノードであり、格納インスタンスに対する基本操作(挿
入、更新、検索、取り出し、削除)を提供する格納イン
スタンス操作(104)と、インスタンスを格納するデ
ータベースから成る。Database access node (102)
Is a node that manages instances stored in the database, and includes a storage instance operation (104) that provides basic operations (insert, update, search, retrieval, and deletion) on the storage instance, and a database that stores the instance.
【0029】次にインスタンスの構造を概説する。Next, the structure of the instance will be outlined.
【0030】インスタンスは、インスタンスの値を管理
する物理表現(インスタンス実体)とインスタンスの物
理表現を指すハンドル(180)から構成される。イン
スタンスの物理表現には、インスタンスのサイズや参照
カウンタなどを管理するインスタンス管理情報(19
0)とインスタンスの値を表わす本体から成る。インス
タンス操作はハンドルを経由して行う。An instance is composed of a physical expression (instance entity) for managing the value of the instance and a handle (180) indicating the physical expression of the instance. The physical representation of the instance includes instance management information (19
0) and a body representing the value of the instance. Instance operations are performed via handles.
【0031】図1において、データベースに格納されて
いるインスタンスは120,130,140の3つのイ
ンスタンスから成る複合インスタンスである。インスタ
ンス120に注目する。インスタンスは、インスタンス
管理情報(190)とインスタンスのデータを表わす本
体(121)から成る。インスタンス120の本体12
1には、各属性a1,a2,a3ごとに値が格納されている。In FIG. 1, the instances stored in the database are composite instances composed of three instances 120, 130 and 140. Attention is paid to the instance 120. The instance includes instance management information (190) and a main body (121) representing data of the instance. The body 12 of the instance 120
1 stores a value for each attribute a1, a2, a3.
【0032】属性a1の値はインスタンス130へのハン
ドル(180)である。The value of the attribute a1 is a handle (180) to the instance 130.
【0033】属性a2の値はva2である。The value of the attribute a2 is va2.
【0034】属性a3の値はインスタンス140へのハン
ドル(180)である。The value of the attribute a3 is a handle (180) to the instance 140.
【0035】インスタンス130の本体131には、属
性管理されていない値(例えば、文字列型のインスタン
スや長大オブジェクト型のインスタンスの本体)、vb1
が格納されている。In the body 131 of the instance 130, a value that is not attribute-managed (for example, a body of a character string type instance or a long object type instance), vb1
Is stored.
【0036】インスタンス140の本体141は、属性
c1,c2から成り、それぞれに値vc1,vc2が格納されてい
る。The body 141 of the instance 140 has attributes
It consists of c1 and c2, and the values vc1 and vc2 are stored respectively.
【0037】代理インスタンスはインスタンスの一つで
あり、基本的な構造は、一般のインスタンス実体と同様
に、インスタンス管理情報(190)と本体部分からな
る。したがって、一般のインスタンスに対する基本操作
をすべて行うことができる。ただし、代理インスタンス
を指すハンドルは、代理インスタンスを実体とするので
はなく、代理インスタンスが指すインスタンスの物理表
現を実体とする。The proxy instance is one of the instances, and its basic structure is made up of instance management information (190) and a main body, similar to a general instance entity. Therefore, all basic operations on general instances can be performed. However, the handle indicating the proxy instance does not use the proxy instance as an entity, but uses the physical representation of the instance indicated by the proxy instance as an entity.
【0038】図1の代理インスタンス110は、インス
タンス120,130,140と同様にインスタンス管
理情報(190)と本体から成る。本体はインスタンス
実体120へのハンドル(180)と部分データ管理情
報(111)とデータキャッシュ領域(112)から構
成されている。本実施例では、データキャッシュ領域に
はインスタンス120の属性a2の値va2と、インスタン
ス120の属性a3の値であるインスタンス140の属性
c2の値vc2がキャッシングされている。The proxy instance 110 shown in FIG. 1 includes instance management information (190) and a main body, like the instances 120, 130, and 140. The main body is composed of a handle (180) to the instance entity 120, partial data management information (111), and a data cache area (112). In this embodiment, in the data cache area, the value va2 of the attribute a2 of the instance 120 and the attribute of the instance 140 which is the value of the attribute a3 of the instance 120 are stored.
The value vc2 of c2 is cached.
【0039】代理インスタンス110は、ハンドル1
(180)とハンドル2(180)から直接参照されて
いるが、ハンドル1とハンドル2は、論理的にはインス
タンス120を指すハンドルである。したがって、ハン
ドル1やハンドル2を経由するインスタンス操作はイン
スタンス実体120への操作となる。The proxy instance 110 has a handle 1
Although referenced directly from (180) and handle 2 (180), handle 1 and handle 2 are handles that logically point to instance 120. Therefore, an instance operation via the handle 1 or the handle 2 is an operation on the instance entity 120.
【0040】さらに詳しく代理インスタンスの各構造に
ついて説明する。Each structure of the proxy instance will be described in more detail.
【0041】インスタンス管理情報:一般のインスタン
スと同様。参照カウンタ、インスタンス長、本体のデー
タタイプ(抽象データ型、長大オブジェクト型、文字列
型などを識別)などを管理する。Instance management information: Same as a general instance. It manages the reference counter, instance length, body data type (identifies abstract data type, long object type, character string type, etc.), etc.
【0042】ただし、代理インスタンスを導入するため
に、本体のデータタイプとは別に、代理インスタンスで
あることの識別フラグが必要である。However, in order to introduce a proxy instance, an identification flag indicating that it is a proxy instance is required separately from the data type of the main body.
【0043】なお、本体のデータタイプは、インスタン
ス実体のデータタイプとなる。すなわち、インスタンス
管理情報から、何のインスタンス実体の代理インスタン
スなのかを判定することができる。例えば、抽象データ
型のインスタンスの代理インスタンスと判定することが
可能である。The data type of the main body is the data type of the instance entity. That is, it is possible to determine from which instance entity the proxy instance is based on the instance management information. For example, it is possible to determine that the instance is a proxy instance of the instance of the abstract data type.
【0044】インスタンス実体へのハンドル:代理をす
るインスタンス実体を指すハンドル。A handle to an instance entity: a handle pointing to an instance entity acting as a proxy.
【0045】代理インスタンスを指すハンドルは、代理
インスタンスのこのハンドルが指すインスタンス実体を
操作するためのハンドルである。The handle pointing to the proxy instance is a handle for operating the instance entity pointed to by this handle of the proxy instance.
【0046】データキャッシュ管理情報:データキャッ
シュ領域にキャッシュするインスタンス実体の部分情報
または制御情報を管理するための情報であり、 ・キャッシュする情報の種別。Data cache management information: Information for managing partial information or control information of an instance entity to be cached in the data cache area. Type of information to be cached.
【0047】・キャッシュする情報。Information to be cached.
【0048】・キャッシュする情報のキャッシュ状態。The cache state of the information to be cached.
【0049】などを管理する。And the like are managed.
【0050】データキャッシュ領域:インスタンス実体
の部分情報または制御情報を格納する領域。Data cache area: An area for storing partial information or control information of an instance entity.
【0051】コンパイル時にキャッシュする内容が決定
したときに、領域長を計算する。When the contents to be cached are determined at the time of compiling, the area length is calculated.
【0052】次に、代理インスタンスで管理するインス
タンス実体の部分情報または制御情報を指定する方法に
ついて説明する。インスタンス実体の部分情報とは、抽
象データ型の属性や、長大オブジェクト型や文字列型の
部分データ(先頭からのオフセットと取り出す長さで指
定)などの値の一部分や、抽象データ型のタイプ識別子
や長大オブジェクト型や文字列型のインスタンス長など
値を管理するための情報などである。インスタンス実体
の制御情報とは、長大オブジェクト型のインスタンスの
分割転送など制御するための情報などである。Next, a method for designating partial information or control information of the instance entity managed by the proxy instance will be described. The partial information of an instance entity is an abstract data type attribute, part of a value such as a long object type or character string type partial data (specified by an offset from the beginning and a length to be extracted), or a type identifier of an abstract data type And information for managing values such as the instance length of a large object type or a character string type. The control information of the instance entity is information for controlling the split transfer of the instance of the long object type.
【0053】これらの情報を代理インスタンスで管理す
ることを指定する方法は、大きく2つに分けることがで
きる。The method of designating that such information is managed by the proxy instance can be roughly divided into two methods.
【0054】一つは、ユーザによる明示的な指定であ
る。指定の方法は、 ・定義文の拡張を行い、タイプ定義やテーブル生成にお
いて属性に代理インスタンスでキャッシュすることを示
すマークを設ける ・長大オブジェクトは分割転送することを環境変数など
で指定する ・明示的に代理インスタンスのコンストラクタを呼び出
し、長大オブジェクトの分割転送の指示を出すなどであ
る。One is an explicit designation by the user. The specification method is as follows: ・ Extend the definition statement and provide a mark in the type definition or table generation to indicate that the proxy instance is to be cached in the attribute. Call the constructor of the proxy instance, and issue instructions to split and transfer long objects.
【0055】もう一つは、データベースシステムがキャ
ッシュする内容を決定する方法である。これらは、 ・デフォルト。特にユーザの指定が無い場合、デフォル
ト指定としてタイプ識別子などのキャッシュを行う。The other is a method of determining contents to be cached by the database system. These are: Default. In particular, when there is no user specification, caching such as a type identifier is performed as a default specification.
【0056】・問い合わせ文のなどの解析結果から、図
3の静的最適化処理(312)などでキャッシュすべき
属性を決定する。例えば、 Select 文書,文書>>題目,文書>>著者 From 文書表 wher
e ... という問い合わせ文であれば、文書インスタンスの代理
インスタンスに題目、著者をキャッシュする。The attribute to be cached in the static optimization process (312) shown in FIG. For example, Select Document, Document >> Subject, Document >> Author From Document Table wher
If the query is e ..., the subject and author are cached in the proxy instance of the document instance.
【0057】・統計情報を取得し、頻繁にアクセスされ
る属性を解析し、その属性をキャッシュする。Obtain statistical information, analyze frequently accessed attributes, and cache the attributes.
【0058】・実行時にインスタンスの状態を解析し、
キャッシュする内容を決定する。例えば、ある一定値よ
りも大きい長大オブジェクト型のインスタンスは、分割
転送用の制御情報をキャッシュする。Analyzing the state of the instance at the time of execution,
Decide what to cache. For example, an instance of a long object type larger than a certain value caches control information for divided transfer.
【0059】などがある。And the like.
【0060】次に、図1のように、抽象データ型の一部
の属性を部分情報としてキャッシュしている代理インス
タンスを用いて、属性の参照というデータベース処理の
方法を図4、図5の流れ図を用いて説明する。Next, as shown in FIG. 1, a database processing method of referring to attributes using a proxy instance that caches some attributes of the abstract data type as partial information will be described with reference to FIGS. 4 and 5. This will be described with reference to FIG.
【0061】代理インスタンスをもちいた属性の参照は
大きく2つの処理に分けることができる。属性参照の第
一の処理は、検索を実行し、検索結果の抽象データ型の
ハンドルを取得し、代理インスタンスを生成する。属性
参照の第二の処理は、生成した代理インスタンスを指す
ハンドルを経由して、属性の参照を行う。Reference of an attribute using a proxy instance can be roughly divided into two processes. The first process of attribute reference is to execute a search, obtain a handle of an abstract data type of the search result, and generate a proxy instance. The second process of attribute reference refers to the attribute via the handle pointing to the generated proxy instance.
【0062】図4は、属性参照の第一の処理の流れ図で
ある。FIG. 4 is a flowchart of the first process of attribute reference.
【0063】図1の問い合わせ実行ノードにおいて、検
索の実行と代理インスタンスの生成(400)を行う。
まず、目的の抽象データ型のインスタンスを取得するた
めに、データベースアクセスノードに問い合せ文の実
行、すなわち、検索の実行を要求する(401)。この
とき、検索結果には、目的の抽象データ型のインスタン
ス(のハンドル)だけではなく、代理インスタンスにキ
ャッシュする属性値も指定する。図1のようにa2とc2を
キャッシュするのであれば、問い合せ文の一つの例は,
C1を目的の抽象データ型のインスタンスが格納されてい
るカラムであるとして、 Select C1, C1>>a2, C1>>a3>>c2 from ..... のようになる。In the query execution node shown in FIG. 1, a search is executed and a proxy instance is generated (400).
First, in order to obtain an instance of a target abstract data type, the database access node is requested to execute a query statement, that is, to execute a search (401). At this time, the search result specifies not only the instance (handle of) the target abstract data type but also the attribute value to be cached in the proxy instance. If you cache a2 and c2 as in Figure 1, one example of a query statement is
Select C1, C1 >> a2, C1 >> a3 >> c2 from ..... assuming that C1 is a column that stores the instance of the target abstract data type.
【0064】この要求を受け、データベースアクセスノ
ードでは、検索を実行(450,451,452)す
る。問い合せ実行ノードでは、検索結果として、指定し
た抽象データ型のインスタンスへのハンドルと代理イン
スタンスにキャッシュする属性の属性値を取得する(4
02)。キャッシュするデータのサイズを考慮して代理
インスタンスを生成し、取得したハンドルの内容を、代
理インスタンスのインスタンス実体へのハンドルに設定
する。さらに、取得した属性値を代理インスタンスのデ
ータキャッシュ領域に設定し、キャッシュ管理情報の内
容を更新する(403)。さらに検索結果として取得し
た抽象データ型のインスタンスを指すハンドルを生成し
た代理インスタンスを指すように更新する(404)。
図1は、この第一の処理が終了した時点での各ノードの
状態を表している。Upon receiving this request, the database access node executes a search (450, 451, 452). The query execution node obtains, as a search result, the handle to the instance of the specified abstract data type and the attribute value of the attribute to be cached in the proxy instance (4).
02). Generate a proxy instance in consideration of the size of the data to be cached, and set the contents of the obtained handle as a handle to the instance entity of the proxy instance. Further, the acquired attribute value is set in the data cache area of the proxy instance, and the content of the cache management information is updated (403). Further, a handle pointing to the instance of the abstract data type acquired as a search result is updated to point to the proxy instance that has generated (404).
FIG. 1 shows the state of each node at the time when the first processing is completed.
【0065】図5は、属性参照の第二の処理の流れ図で
ある。問い合わせ実行ノードにおいて、ハンドルを経由
して、指定した属性値を取得する(500)。まず、ハ
ンドルが指すインスタンスが代理インスタンスかどうか
をチェックする。これは、インスタンスのインスタンス
管理情報(190)から調べることができる。もし、代
理インスタンスでなければ、すでに、抽象データ型のイ
ンスタンスがメモリ上に展開されているので、インスタ
ンス実体から属性値の取得を行う(514)。代理イン
スタンスであれば、次に指定した属性がキャッシュする
属性であるかどうかをチェックし(502)、さらに属
性がキャッシュされているかどうかをチェック(50
3)する。キャッシュ管理情報から指定した属性がキャ
ッシュ対象であり、かつ属性値がキャッシュされている
のであれば、代理インスタンスのデータキャッシュ領域
から属性値を取得する(504)。もし、どちらかのチ
ェック条件が満たされないのであれば、インスタンス実
体の転送要求を代理インスタンスのインスタンス実体へ
のハンドルを用いて行う(510)。この要求を受け
て、データベースアクセスノードでは、インスタンスの
転送処理を行う(550)。まず、ハンドルで複合イン
スタンスを形成しているような抽象データ型のインスタ
ンスは、転送可能なように、一つの連続した領域に梱包
する(551)。このとき、ハンドルの内容は相対位置
を表すように変更する。そして、この梱包したインスタ
ンスを転送する(552)。問い合わせ実行ノードで
は、転送されたインスタンスを受け取り、代理インスタ
ンスと入れ替える(512)。代理インスタンスは削除
する(513)。このステップ513が終了した時点で
の問い合わせ実行ノードの状態を表したのが図6であ
る。図1では、代理インスタンスを指していたハンドル
1とハンドル2が、図6ではインスタンス実体を指して
いる。属性値の取得は、この展開されたインスタンス実
体から行う(514)。FIG. 5 is a flowchart of the second process of attribute reference. In the query execution node, the designated attribute value is obtained via the handle (500). First, it checks whether the instance pointed to by the handle is a proxy instance. This can be checked from the instance management information (190) of the instance. If it is not a proxy instance, an instance of an abstract data type has already been expanded on the memory, so that an attribute value is obtained from the instance entity (514). If it is a proxy instance, it is checked whether the next specified attribute is an attribute to be cached (502), and further, whether or not the attribute is cached (50).
3) Yes. If the attribute specified from the cache management information is to be cached and the attribute value is cached, the attribute value is obtained from the data cache area of the proxy instance (504). If either check condition is not satisfied, a request to transfer the instance entity is made using the handle to the instance entity of the proxy instance (510). In response to this request, the database access node performs an instance transfer process (550). First, an instance of an abstract data type that forms a composite instance with a handle is packed in one continuous area so as to be transferable (551). At this time, the contents of the handle are changed to indicate the relative position. Then, the packed instance is transferred (552). The query execution node receives the transferred instance and replaces it with the proxy instance (512). The proxy instance is deleted (513). FIG. 6 shows the state of the query execution node at the time when this step 513 is completed. In FIG. 1, the handle 1 and the handle 2 which pointed to the proxy instance are pointing to the instance entity in FIG. The attribute value is obtained from the expanded instance entity (514).
【0066】このように、代理インスタンスにキャッシ
ュされているデータのアクセスには、新たなメモリ確保
もデータ転送も発生しないため非常に高速である。ま
た、キャッシュしていないデータへのアクセスが発生し
た場合でも、代理インスタンスはインスタンス実体への
ハンドルをもっているため、インスタンス実体のデータ
をアクセスすることが可能である。ただし、インスタン
スの転送やメモリの確保が発生する。As described above, the access to the data cached in the proxy instance is very fast because neither new memory nor data transfer occurs. Further, even when access to uncached data occurs, the proxy instance has a handle to the instance entity, and therefore can access the data of the instance entity. However, instance transfer and memory reservation occur.
【0067】第二の実施例として、文字列型や長大オブ
ジェク型のインスタンスなど、メモリに展開することが
現実的でないサイズの長大インスタンスに対するデータ
ベース処理を、代理インスタンスを用いて行う方法につ
いて説明する。As a second embodiment, a description will be given of a method for performing database processing using a proxy instance for a large instance such as a character string type or a large object type instance which is not realistic to be developed in memory.
【0068】ハードウェア構成や、基本となるデータベ
ースシステムの構成は第一の実施例と同様である。The hardware configuration and the configuration of the basic database system are the same as in the first embodiment.
【0069】図7は、代理インスタンスを用いた長大イ
ンスタンスの取り出しの概要を説明する図である。FIG. 7 is a diagram for explaining the outline of taking out a long instance using a proxy instance.
【0070】データベースアクセスノード(102)と
問い合わせ実行ノード(101)が、100のネットワ
ークまたはプロセス間通信で接続されている。問い合わ
せ実行ノードにはアプリケーションプログラム(70
0)が接続している。The database access node (102) and the query execution node (101) are connected by 100 networks or inter-process communication. An application program (70
0) is connected.
【0071】データベースアクセスノードには、インス
タンス管理(105)がある。これは、図1の問い合わ
せ実行ノードのインスタンス管理と同様のものである。The database access node has an instance management (105). This is similar to the instance management of the query execution node in FIG.
【0072】データベースには、長大インスタンス(7
20)が格納され、そのインスタンスを指す(代理イン
スタンスを指す)ハンドル(180)をアプリケーショ
ンプログラムが取得し、このハンドルを用いて、アプリ
ケーションプログラムの長大インスタンス作業領域(7
01)に、長大インスタンスの本体部分(721)を取
り出そうとしている。なお、長大インスタンス作業領域
はメモリ上の領域、またはその他の記憶装置の領域であ
る。長大インスタンスは大きいため、問い合わせ実行ノ
ードやデータベースアクセスノードのメモリ上に展開す
るのは現実的ではない。そこで、メモリ上に展開しなく
てもハンドルを用いてデータアクセスができるように、
代理インスタンス(710)を導入する。この代理イン
スタンスは、データキャッシュ領域(112)に、長大
インスタンスの部分情報である長大インスタンスのデー
タ長(711)と、長大インスタンスをメモリ上に展開
しなくともデータの取得ができるような制御情報(71
2)をキャッシュしている。制御情報712は具体的に
は、分割転送を制御するための情報であり、分割転送用
のバッファ管理や、状態管理の情報を保持する。In the database, a long instance (7
20) is stored, the application program obtains a handle (180) pointing to the instance (pointing to the proxy instance), and using this handle, the long instance work area (7) of the application program
01), the body part (721) of the long instance is to be extracted. The long-sized instance work area is an area on a memory or an area of another storage device. Since the long instance is large, it is not realistic to develop it on the memory of the query execution node or the database access node. So, you can access the data using the handle without expanding it on the memory.
Introduce a proxy instance (710). This proxy instance stores, in the data cache area (112), the data length (711) of the long instance, which is partial information of the long instance, and control information (11) that can acquire data without expanding the long instance on a memory. 71
2) is cached. The control information 712 is, specifically, information for controlling divided transfer, and holds information on buffer management for divided transfer and state management.
【0073】代理インスタンスを用いた長大インスタン
スの取り出しも、第一の実施例と同様に、検索をして代
理インスタンスを生成する第一の処理と、長大インスタ
ンスを分割転送する第二の処理から成る。As in the first embodiment, retrieval of a long instance using a proxy instance also includes a first process of searching and generating a proxy instance and a second process of dividing and transferring a long instance. .
【0074】図8は、長大インスタンスの取り出しの第
一の処理の流れ図である。アプリケーションプログラム
は、データベースに格納された長大インスタンスを取得
する(800)ために問い合わせ文の実行をデータベー
スアクセスノードに要求する(801)。これを受け、
データベースアクセスノードでは、検索の実行と代理イ
ンスタンスの生成を行う(850)。まず、問い合わせ
文に従い検索を実行する(851)。次に、代理インス
タンスを生成し、初期化する。検索結果の長大インスタ
ンスへのハンドルの内容を代理インスタンスのインスタ
ンス実体へのハンドルに設定する(852)。この生成
した代理インスタンスを指すハンドルを検索結果として
返却する(853)。アプリケーションプログラムで
は、データベースアクセスノードのインスタンス管理に
生成された代理インスタンスを指すハンドルを検索結果
として受け取る(802)。FIG. 8 is a flowchart of the first process of extracting a long instance. The application program requests the database access node to execute a query statement (801) in order to obtain the long instance stored in the database (800). In response,
The database access node executes a search and generates a proxy instance (850). First, a search is executed according to the query (851). Next, a proxy instance is generated and initialized. The contents of the handle to the long instance of the search result are set as the handle to the instance entity of the proxy instance (852). The handle pointing to the generated proxy instance is returned as a search result (853). The application program receives a handle indicating the proxy instance generated in the instance management of the database access node as a search result (802).
【0075】図9は、長大インスタンスの取り出しの第
二の処理の流れ図である。FIG. 9 is a flowchart of a second process for extracting a long instance.
【0076】アプリケーションプログラムにおいて、長
大インスタンスの取得処理が開始される(900)。長
大インスタンス作業領域を確保するために、長大インス
タンスのデータ長の取得要求をハンドルを用いてデータ
ベースアクセスノードに要求する(901)。これを受
けてデータベースアクセスノードで長大インスタンスの
データ長の取得を行う(920)。まず、ハンドルが指
す代理インスタンスのデータキャッシュ領域にあるデー
タ長がキャッシュされているかどうかをチェックする
(921)。キャッシュされているのであれば、キャッ
シュされている値を返却する(922,923)。キャ
ッシュされていないのであれば、データベースから長大
インスタンスのデータ長を代理インスタンスのインスタ
ンス実体へのハンドルを用いて取得する(930)。取
得した値を代理インスタンスのデータキャッシュ領域に
設定して(931)、返却する(923)。In the application program, a long instance acquisition process is started (900). In order to secure a long instance work area, a request to acquire the data length of the long instance is issued to the database access node using the handle (901). In response, the database access node obtains the data length of the long instance (920). First, it is checked whether or not the data length in the data cache area of the proxy instance indicated by the handle is cached (921). If cached, the cached value is returned (922, 923). If not cached, the data length of the long instance is obtained from the database using the handle to the instance instance of the proxy instance (930). The acquired value is set in the data cache area of the proxy instance (931) and returned (923).
【0077】アプリケーションプログラムでは、取得し
たデータ長(902)を用い、長大インスタンス作業領
域を確保する(903)。この領域を指定し、ハンドル
をもちいて、長大インスタンスの取り出しを要求する
(904,910)。データベースアクセスノードで
は、インスタンスの転送処理を開始し(930)、代理
インスタンスのインスタンス実体へのハンドルを用い、
転送制御情報をメンテナンスしながら、データベースの
長大インスタンスを分割転送する(931,932,9
33,934)。The application program uses the acquired data length (902) to secure a long instance work area (903). By specifying this area and using the handle, a request is made to retrieve a long instance (904, 910). The database access node starts the transfer process of the instance (930), and uses the handle to the instance entity of the proxy instance,
While maintaining the transfer control information, the long instance of the database is divided and transferred (931, 932, 9
33, 934).
【0078】問い合わせ実行ノードではこの分割転送を
受ける処理を実行する(911,912,913)。す
べてが受信できると、長大インスタンス作業領域に長大
インスタンスが取り出されている(905)。The inquiry execution node executes processing for receiving the divided transfer (911, 912, 913). If all of them can be received, the long instance has been extracted to the long instance work area (905).
【0079】図10は、代理インスタンスを用いた長大
インスタンスのデータベースへの挿入の概要を示してい
る。代理インスタンスの形式は図7と同様であるが、代
理インスタンスが問い合わせ実行ノード側のインスタン
ス管理上に存在すること、代理インスタンスのインスタ
ンス実体へのハンドルが長大インスタンスが格納されて
いる長大インスタンス作業領域を指していること、代理
インスタンスを指すハンドルがデータベースアクセスノ
ードの格納インスタンス操作が保持していること、が異
なる。FIG. 10 shows an outline of insertion of a long instance into a database using a proxy instance. The format of the proxy instance is the same as that of FIG. 7, except that the proxy instance exists on the instance management of the query execution node side, and the handle to the instance instance of the proxy instance is a long instance work area in which the long instance is stored. The difference is that the handle pointing to the proxy instance is held by the storage instance operation of the database access node.
【0080】代理インスタンスを用いた長大インスタン
スの挿入の方法を図11の流れ図を用いて説明する。A method of inserting a long instance using a proxy instance will be described with reference to the flowchart of FIG.
【0081】アプリケーションプログラムにおいて、長
大インスタンス作業領域に格納した長大インスタンスを
データベースに挿入する処理を開始する(1100)。
代理インスタンスを生成し、代理インスタンスのインス
タンス実体を指すハンドルに長大インスタンス作業領域
へのポインタを設定する(1101)。この生成した代
理インスタンスへのハンドルを用いて、長大インスタン
スのデータベースへの挿入を要求する。これを受け、デ
ータベースアクセスノードでは、長大インスタンスの挿
入処理が開始される(1110)。まず、挿入要求時に
指定された代理インスタンスへのハンドルを取得する
(1111)。このハンドルを経由して、代理インスタ
ンスに対し、長大インスタンスの分割転送要求を発行す
る(1112)。分割転送の方法は、問い合わせ実行ノ
ードからデータベースアクセスノードへと方向が逆にな
るが、方法は図9と同様であるので省略する。データベ
ースアクセスノードでは、分割して転送されるデータを
逐次データベースに格納する(1113)。すべてが転
送終了すると、終了通知がアプリケーションプログラム
に送られる(1103)。In the application program, the process of inserting the long instance stored in the long instance work area into the database is started (1100).
A proxy instance is generated, and a pointer to a long-sized instance work area is set in a handle pointing to the instance entity of the proxy instance (1101). Using the generated handle to the proxy instance, a request is made to insert the long instance into the database. In response to this, the database access node starts insertion processing of the long instance (1110). First, a handle to the proxy instance specified at the time of the insertion request is obtained (1111). Via this handle, a long instance split transfer request is issued to the proxy instance (1112). Although the direction of the split transfer is reversed from the query execution node to the database access node, the method is the same as in FIG. The database access node sequentially stores the data to be divided and transferred in the database (1113). When the transfer is completed, an end notification is sent to the application program (1103).
【0082】このように、データ転送制御情報を代理イ
ンスタンスにキャッシュすることで、長大インスタンス
をメモリ上に展開せずに、データベースからユーザ領域
へまたはユーザ領域からデータベースへと転送すること
ができる。しかも、ハンドル用いたインタフェースはそ
もままである。As described above, by caching the data transfer control information in the proxy instance, the long instance can be transferred from the database to the user area or from the user area to the database without expanding the long instance on the memory. Moreover, the interface using the handle remains as it is.
【0083】[0083]
【発明の効果】頻繁にアクセスするインスタンスの一部
分を、インスタンスのハンドルを取得するときに、同時
に取得し、代理インスタンスにキャッシュすることで、
インスタンスの実体を転送し、メモリに展開する処理を
抑制することで、データ転送負荷の軽減やメモリ資源の
消費を抑えることが可能となった。また、データベース
とユーザの間のデータ転送を制御する情報を代理インス
タンスにキャッシュすることで、メモリ資源の消費を抑
え、データ転送の最適化が可能となった。したがって、
全体の処理効率が高まり、データベース処理の高速化を
実現する。As described above, when a part of an instance that is frequently accessed is acquired at the same time as the handle of the instance is acquired, the acquired part is cached in a proxy instance.
By suppressing the process of transferring the entity of the instance and expanding it in the memory, the data transfer load can be reduced and the consumption of memory resources can be suppressed. Further, by caching information for controlling data transfer between the database and the user in the proxy instance, the consumption of memory resources can be suppressed, and the data transfer can be optimized. Therefore,
The overall processing efficiency is increased, and the speed of database processing is increased.
【0084】この効果は、データ転送が多く発生するノ
ード数の多い並列データベースシステムにおいて顕著で
ある。This effect is remarkable in a parallel database system having a large number of nodes where data transfer frequently occurs.
【図1】代理インスタンスを用いたデータベース処理の
概要図FIG. 1 is a schematic diagram of database processing using a proxy instance
【図2】ハードウエア構成図FIG. 2 is a hardware configuration diagram.
【図3】データベースシステムの構成図FIG. 3 is a configuration diagram of a database system.
【図4】代理インスタンスを用いたインスタンスの属性
参照の流れ図−1FIG. 4 is a flowchart of attribute reference of an instance using a proxy instance-1.
【図5】代理インスタンスを用いたインスタンスの属性
参照の流れ図−2FIG. 5 is a flowchart of attribute reference of an instance using a proxy instance-2.
【図6】代理インスタンスを実インスタンスに置き変え
た後の状態FIG. 6 shows a state after a proxy instance is replaced with a real instance.
【図7】代理インスタンスを用いた長大インスタンスの
取り出しの概要図FIG. 7 is a schematic diagram of taking out a long instance using a proxy instance.
【図8】代理インスタンスを用いた長大インスタンスの
取り出しの流れ図−1FIG. 8 is a flowchart of taking out a long-sized instance using a proxy instance-1.
【図9】代理インスタンスを用いた長大インスタンスの
取り出しの流れ図−2FIG. 9 is a flowchart of taking out a long instance using a proxy instance;
【図10】代理インスタンスを用いた長大インスタンス
の挿入の概要図FIG. 10 is a schematic diagram of insertion of a long instance using a proxy instance.
【図11】代理インスタンスを用いた長大インスタンス
の挿入の流れ図FIG. 11 is a flowchart of inserting a long instance using a proxy instance.
100…ネットワークまたはプロセス間通信、101…
問い合わせ実行ノード、102…データベースアクセス
ノード、 103…データベース、104…格納イ
ンスタンス操作、 105…インスタンス管
理、111…代理インスタンスのキャッシュ管理情報、
112…代理インスタンスのデータキャッシュ領域、1
80…ハンドル、190…インスタンス管理情報、31
1…問い合せ解析部、 312…静的最適化処理、 3
13…コード生成、 314…動的最適化処理、 31
5…コード解析実行、 700…アプリケーションプロ
グラム、701…長大インスタンス作業領域。100 ... network or inter-process communication, 101 ...
Inquiry execution node, 102: database access node, 103: database, 104: operation of stored instance, 105: instance management, 111: cache management information of proxy instance,
112: Data cache area of proxy instance, 1
80 handle, 190 instance management information, 31
1: Inquiry analysis unit, 312: Static optimization processing, 3
13: code generation, 314: dynamic optimization processing, 31
5: execution of code analysis, 700: application program, 701: long instance work area.
───────────────────────────────────────────────────── フロントページの続き (72)発明者 亀城 嘉人 神奈川県横浜市戸塚区戸塚町5030番地株式 会社日立製作所ソフトウェア開発本部内 ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Yoshito Kamejo 5030 Totsukacho, Totsuka-ku, Yokohama-shi, Kanagawa Prefecture Software Development Division, Hitachi, Ltd.
Claims (8)
え、それぞれのノードは他のノードとネットワークで接
続される並列データベースシステムにおけるデータベー
ス処理方法であって、 データベースに格納されているインスタンスの一部分の
情報と、 前述のデータベースに格納されているインスタンスをア
クセスすることが可能な情報とを、 前述のデータベースに格納されているインスタンスより
も小さな領域のインスタンスである代理インスタンスに
格納し、前述のデータベースに格納されているインスタ
ンスの代わりに、 前述の代理インスタンスに格納されている、前述のデー
タベースに格納されているインスタンスの一部分の情報
をもちいてデータベース処理を行うことを特徴とするデ
ータベース処理方法。1. A database processing method in a parallel database system comprising a plurality of nodes for performing database processing, each node being connected to another node via a network, wherein information on a part of an instance stored in a database is provided. And the information that can access the instance stored in the aforementioned database is stored in the proxy instance which is an instance of a smaller area than the instance stored in the aforementioned database, and is stored in the aforementioned database. A database processing method, wherein database processing is performed using information on a part of the instance stored in the database, stored in the proxy instance, instead of the instance being performed.
求項1の代理インスタンスに格納されている、請求項1
のデータベースに格納されているインスタンスの一部分
の情報だけでは行うことができない場合は、 前述の代理インスタンスに格納されている、 請求項1の前述のデータベースに格納されているインス
タンスをアクセスすることが可能な情報から、前述のデ
ータベースに格納されているインスタンスにアクセスす
ることにより、前述のデータベース処理を行うことを特
徴とするデータベース処理方法。2. The method according to claim 1, wherein the database processing according to claim 1 is stored in a proxy instance according to claim 1.
2. If the information cannot be obtained by only information on a part of the instance stored in the database, the instance stored in the database described in claim 1 can be accessed. A database processing method characterized by performing the above-mentioned database processing by accessing an instance stored in the above-mentioned database from basic information.
スタンスとその代理インスタンスは、 それぞれ同一構造のインスタンス管理情報をもち、 それぞれ同一構造のハンドルでアクセスすることがで
き、 前述のインスタンス管理情報に代理インスタンスである
ことを識別するフラグでのみ、前述のデータベースに格
納されたインスタンスとその代理インスタンスを区別す
ることを特徴とするデータベース処理方法。3. The instance stored in the database of claim 1 and its proxy instance each have instance management information of the same structure, and can be accessed by handles of the same structure, respectively. A database processing method characterized in that an instance stored in the database and its proxy instance are distinguished only by a flag for identifying the instance.
タベースに格納されているインスタンスの一部分の情報
に対し、前述の情報が設定済みであるかどうかの状態を
管理する設定状態情報を前述の代理インスタンスに格納
し、 前述の代理インスタンスをアクセスする際に、設定状態
をチェックし、 設定されるべき情報が設定されていない場合、 前述のデータベースに格納されたインスタンスをアクセ
スするか、前述の設定されるべき情報を取得する際にそ
の情報を設定することを特徴とするデータベース処理方
法。4. The proxy instance according to claim 1, wherein said information has already been set with respect to information of a part of the instance stored in said database stored in said proxy instance. Stores the configuration status information that manages the status of the proxy instance in the proxy instance described above, checks the configuration status when accessing the proxy instance, and stores it in the database if the information to be configured is not set A database processing method characterized in that when accessing a set instance or when acquiring the information to be set, the information is set.
タベースに格納されているインスタンスの一部分の情報
に対し、どの一部分を格納するかを、タイプ定義やテー
ブル生成時に指定できる手段をもち、指定された内容を
ディクショナリに登録し、前述のデータベースに格納さ
れたインスタンスへのハンドルを取得する際に、前述の
登録された内容にしたがって、前述のデータベースに格
納されたインスタンスの一部分の情報も一緒に取得する
ような問い合わせを発行し、問い合わせの結果を用い
て、代理インスタンスを生成することを特徴とするデー
タベース処理方法。5. The type definition of the proxy instance of claim 1, which part of the information of a part of the instance stored in the database of claim 1 stored in the proxy instance is stored. And means that can be specified at the time of table generation, register the specified contents in the dictionary, and when acquiring the handle to the instance stored in the above database, according to the above registered contents, A database processing method characterized by issuing a query for obtaining information of a part of a stored instance together, and generating a proxy instance using a result of the query.
スタンスのどの一部分を、代理インスタンスに格納する
かを、問い合わせの解析結果や統計情報、インスタンス
の状態からデータベースシステムが判断し、前述のデー
タベースに格納されたインスタンスへのハンドルを取得
する際に、前述の判断された内容にしたがって、前述の
データベースに格納されたインスタンスの一部分の情報
も一緒に取得するような問い合わせを発行し、問い合わ
せの結果を用いて、代理インスタンスを生成することを
特徴とするデータベース処理方法。6. The database system determines which part of the instance stored in the database according to claim 5 is to be stored in the proxy instance from the analysis result of the inquiry, the statistical information, and the state of the instance. When obtaining the handle to the stored instance, issue a query that also obtains information on a part of the instance stored in the database according to the above-described determined contents, and returns the result of the query. And generating a proxy instance by using the database processing method.
ス処理において、 データベースに格納されている当該インスタンスが長大
である場合、 前述の長大インスタンスへのハンドルを返却するのでは
なく、 代理インスタンスを生成し、前述の代理インスタンスに
前述の長大インスタンスを分割転送することができる制
御情報を格納することで、長大インスタンスがメモリ上
に展開されることを抑止することを特徴とするデータベ
ース処理方法。7. In the database processing of fetching an instance, if the instance stored in the database is long, instead of returning the handle to the long instance, a proxy instance is generated and the proxy is generated. A database processing method characterized by storing control information capable of dividing and transferring the above-mentioned long instance into an instance, thereby preventing the long instance from being expanded on a memory.
する場合、 長大なインスタンスを生成するのではなく、請求項7の
長大インスタンスを分割転送することができる制御情報
を格納した代理インスタンスを生成することで、長大イ
ンスタンスがメモリ上に展開されることを抑止すること
を特徴とするデータベース処理方法。8. When inserting a long instance into a database, instead of generating a long instance, a proxy instance storing control information capable of dividing and transferring the long instance is generated. A database processing method for preventing a long instance from being expanded on a memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9284906A JPH11120067A (en) | 1997-10-17 | 1997-10-17 | Data base processing method for managing partial information of data precedently |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9284906A JPH11120067A (en) | 1997-10-17 | 1997-10-17 | Data base processing method for managing partial information of data precedently |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11120067A true JPH11120067A (en) | 1999-04-30 |
Family
ID=17684587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9284906A Pending JPH11120067A (en) | 1997-10-17 | 1997-10-17 | Data base processing method for managing partial information of data precedently |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11120067A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005049943A (en) * | 2003-07-29 | 2005-02-24 | Toshiba Corp | Data processing apparatus, data processing method, and program |
JP2023518118A (en) * | 2020-05-12 | 2023-04-27 | グーグル エルエルシー | Zero copy optimization for Select* queries |
-
1997
- 1997-10-17 JP JP9284906A patent/JPH11120067A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005049943A (en) * | 2003-07-29 | 2005-02-24 | Toshiba Corp | Data processing apparatus, data processing method, and program |
JP2023518118A (en) * | 2020-05-12 | 2023-04-27 | グーグル エルエルシー | Zero copy optimization for Select* queries |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6487641B1 (en) | Dynamic caches with miss tables | |
US7526481B1 (en) | Web servers with queryable dynamic caches | |
US7421541B2 (en) | Version management of cached permissions metadata | |
US7987217B2 (en) | Transaction-aware caching for document metadata | |
US7058639B1 (en) | Use of dynamic multi-level hash table for managing hierarchically structured information | |
US7720869B2 (en) | Hierarchical structured abstract file system | |
JP3160719B2 (en) | System and method for locating pages and documents on the World Wide Web from a network of computers | |
US6463439B1 (en) | System for accessing database tables mapped into memory for high performance data retrieval | |
US6119126A (en) | Object-relational query builder which determines existence of structures from information loaded from the server and cached locally on the client computing system | |
US7533136B2 (en) | Efficient implementation of multiple work areas in a file system like repository that supports file versioning | |
JP3742177B2 (en) | Parallel database system routine execution method | |
JPH10240589A (en) | Database processing method taking out actual data delay | |
US7203709B2 (en) | Transaction-aware caching for access control metadata | |
US8010887B2 (en) | Implementing versioning support for data using a two-table approach that maximizes database efficiency | |
CN108920600B (en) | Distributed file system metadata prefetching method based on data relevance | |
JP3863291B2 (en) | Database processing method, database processing system, and medium | |
US20110087642A1 (en) | Memory-Mapped Objects | |
US20050102276A1 (en) | Method and apparatus for case insensitive searching of ralational databases | |
CN110502535A (en) | Data access method, device, equipment and storage medium | |
JPH11120067A (en) | Data base processing method for managing partial information of data precedently | |
JP2000137689A (en) | Common data cache processing method/processor and medium recording its processing program | |
JPH08235040A (en) | Data file management system | |
JPH09218880A (en) | Document data retrieval system | |
JP4825504B2 (en) | Data registration / retrieval system and data registration / retrieval method | |
JPH117445A (en) | Integrated document management device |