JP4314126B2 - Concurrent execution control method and apparatus - Google Patents

Concurrent execution control method and apparatus Download PDF

Info

Publication number
JP4314126B2
JP4314126B2 JP2004044210A JP2004044210A JP4314126B2 JP 4314126 B2 JP4314126 B2 JP 4314126B2 JP 2004044210 A JP2004044210 A JP 2004044210A JP 2004044210 A JP2004044210 A JP 2004044210A JP 4314126 B2 JP4314126 B2 JP 4314126B2
Authority
JP
Japan
Prior art keywords
data
update
time
object data
storage 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.)
Expired - Fee Related
Application number
JP2004044210A
Other languages
Japanese (ja)
Other versions
JP2005234945A (en
Inventor
雅一 服部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004044210A priority Critical patent/JP4314126B2/en
Publication of JP2005234945A publication Critical patent/JP2005234945A/en
Application granted granted Critical
Publication of JP4314126B2 publication Critical patent/JP4314126B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

本発明は、更新処理と参照処理(検索処理)の同時実行制御を行うデータベースシステムに関する。   The present invention relates to a database system that performs simultaneous execution control of update processing and reference processing (search processing).

従来からデータベースシステムにおいて同時実行制御によるデータベーストランザクション(更新、参照(検索)、などから成る処理単位)の管理が行われている。この同時実行制御とは、複数のユーザがデータベースシステムにおいて同じデータに対して同時にトランザクション、つまり更新、参照などのアクセスを行おうとするとき、排他制御を行ってデータの整合を保証しようとするものである。   Conventionally, database transactions (processing units consisting of update, reference (search), etc.) are managed in a database system by concurrent execution control. This concurrency control is intended to guarantee data consistency by performing exclusive control when multiple users try to access the same data in the database system at the same time, that is, access such as update and reference. is there.

通常データベースでは、トランザクションがデータにアクセスしようとするとき、専有ロックや共有ロックなどのロックをかけて他のトランザクションのアクセスに対して制限を加える方法がとられる。通常、2相ロックにより、トランザクション開始で順次、データ操作を行う前にロックをかけて、トランザクション終了時までロックを解放しない。このようなロック方式では、他のトランザクションのアクセスが制限されてしまうため、更新トランザクションにより検索トランザクションが待たされてしまう問題が発生してしまう。   Normally, in a database, when a transaction tries to access data, a lock such as a private lock or a shared lock is applied to restrict access to other transactions. Normally, with a two-phase lock, locks are made sequentially before data operations at the start of a transaction, and the lock is not released until the end of the transaction. In such a lock method, access to other transactions is restricted, and thus a problem that a search transaction is waited for by an update transaction occurs.

マルチバージョン方式では、更新トランザクションは更新するデータの複製をとってから更新するので、複製データを他の検索トランザクションが同時にアクセスすることができるようになる(例えば、特許文献1、特許文献2参照)。
特開平6−28315号公報 特開2003−140951公報
In the multi-version method, the update transaction is updated after copying the data to be updated, so that other search transactions can simultaneously access the replicated data (see, for example, Patent Document 1 and Patent Document 2). .
JP-A-6-28315 JP 2003-140951 A

従来、マルチバージョン方式により更新と参照(検索)の同時実行制御を行う場合、更新処理の前後に発生する検索処理のために更新前と更新後のデータベースの状態をそれぞれ保持する必要があり、そのために要する記憶容量が膨大になるという問題点があった。   Conventionally, when concurrent execution control of update and reference (search) is performed by the multi-version method, it is necessary to maintain the state of the database before update and after update for the search process that occurs before and after the update process, respectively. There is a problem that the storage capacity required for the process becomes enormous.

そこで、本発明は、上記問題点に鑑み、格納すべきデータ量を最小限に抑えて更新と参照(検索)の同時実行制御を容易に行うことのできる同時実行制御方法及び装置を提供することを目的とする。   Accordingly, in view of the above problems, the present invention provides a simultaneous execution control method and apparatus capable of easily performing simultaneous execution control of update and reference (search) while minimizing the amount of data to be stored. With the goal.

本発明は、識別子の与えられた複数のデータ群のうちの1つである第1のデータ群について、更新前のデータを含む更新前の第1のデータ群と更新後のデータを含む更新後の第1のデータ群とをそれぞれ別の記憶エリアに記憶し、複数の索引語と、当該複数の索引語のうちの1つにそれぞれ対応し、当該索引語を含むデータをもつデータ群の識別子がそれぞれ登録された複数のテーブルのなかから、検索要求で指定された索引語に対応するテーブル群を選択し、(a)前記第1のデータ群の更新が終了する前にテーブル群が選択された場合、更新前後の第1のデータ群のうちの更新前の第1のデータ群にのみ含まれる第1の索引語に対応する第1のテーブルと、更新前後の第1のデータ群のうちの更新後の第1のデータ群にのみ含まれる第2の索引語に対応する第2のテーブルとのうち少なくとも前記第1のテーブルが前記テーブル群に含まれているときに、更新前の第1のデータ群を検索結果として出力し、(b)前記第1のデータ群の更新が終了した後にテーブル群が選択された場合、前記検索要求を受け付けた時刻である第1の時刻が前記更新の開始時刻である第2の時刻より前であるときには、前記テーブル群に第1及び第2のテーブルのうち少なくとも第1のテーブルが含まれているときに更新前の第1のデータ群を出力し、前記第1の時刻が前記第2の時刻より後であるときには、前記テーブル群に第1及び第2のテーブルのうち少なくとも第2のテーブルが含まれているときに更新後の第1のデータ群を検索結果として出力する。   The present invention relates to a first data group that is one of a plurality of data groups to which identifiers are given, and a first data group before update including data before update and after update including data after update. The first data group is stored in a separate storage area, and a plurality of index words and an identifier of a data group corresponding to one of the plurality of index words and having data including the index word Is selected from among a plurality of registered tables, and (a) the table group is selected before the update of the first data group is completed. The first table corresponding to the first index word included only in the first data group before the update of the first data group before and after the update, and the first data group before and after the update The second included only in the first data group after updating When at least the first table of the second table corresponding to the index word is included in the table group, the first data group before update is output as a search result, and (b) the first table When the table group is selected after the update of one data group is completed, when the first time that is the time when the search request is received is before the second time that is the start time of the update, When the table group includes at least the first table of the first and second tables, the first data group before update is output, and the first time is later than the second time. In some cases, when the table group includes at least a second table of the first and second tables, the updated first data group is output as a search result.

格納すべきデータ量を最小限に抑えて更新と参照(検索)の同時実行制御を容易に行うことができる。   Simultaneous execution control of update and reference (search) can be easily performed while minimizing the amount of data to be stored.

図1は、本実施形態に係る同時実行制御装置を適用した情報管理装置の構成例を示したものである。図1に示すように、情報管理装置1は、更新処理部2、コミット処理部3、参照処理部4、バージョンデータ管理部5、時刻管理部6、テーブル記憶部10を有し、さらに、索引データ記憶部21とマップテーブル記憶部22とオブジェクトデータ記憶部23を有するデータベース20が接続して構成されている。   FIG. 1 shows a configuration example of an information management apparatus to which the simultaneous execution control apparatus according to this embodiment is applied. As shown in FIG. 1, the information management apparatus 1 includes an update processing unit 2, a commit processing unit 3, a reference processing unit 4, a version data management unit 5, a time management unit 6, and a table storage unit 10, and further includes an indexing unit. A database 20 having a data storage unit 21, a map table storage unit 22, and an object data storage unit 23 is connected.

情報管理装置1には、複数の(ここでは、例えば2台の)端末TE1〜TE2が所定のネットワーク等を介して接続され、当該端末からデータ更新やデータ参照やデータコミットなどの要求を受ける。   A plurality of (in this case, for example, two) terminals TE1 to TE2 are connected to the information management apparatus 1 via a predetermined network or the like, and receives requests such as data update, data reference, and data commit from the terminal.

更新処理部2は、端末からのデータ更新要求を受けてデータベース20にアクセスして、オブジェクトデータや索引データの更新を行う。   In response to a data update request from the terminal, the update processing unit 2 accesses the database 20 and updates object data and index data.

コミット処理部3は、端末からのコミット要求を受けて、更新処理部2を介して行った更新内容を確定するための処理を行う。コミットとは、ここでは、更新確定と同義である。   In response to the commit request from the terminal, the commit processing unit 3 performs a process for confirming the update content performed via the update processing unit 2. Here, commit is synonymous with update confirmation.

参照処理部4は、端末からの(オブジェクトデータを検索するためのキーワードを含む)データ参照要求を受けて、オブジェクトデータ記憶部23から当該キーワードを含むオブジェクトデータを検索して要求元の端末へ送信する。   The reference processing unit 4 receives a data reference request (including a keyword for searching for object data) from the terminal, searches the object data storage unit 23 for object data including the keyword, and transmits it to the requesting terminal. To do.

時刻管理部6は、更新処理終了の度に(コミット処理終了の度に)、「1」だけインクリメントされる時刻を記憶、更新する。   The time management unit 6 stores and updates the time incremented by “1” every time the update process ends (every commit process ends).

テーブル記憶部10には、更新ログテーブル11、バージョンデータテーブル12、参照ログテーブル13が記憶されている。   The table storage unit 10 stores an update log table 11, a version data table 12, and a reference log table 13.

オブジェクトデータ記憶部23には、更新・参照(検索)対象の複数のオブジェクトデータが記憶されている。オブジェクトデータは、論理オブジェクトIDと物理オブジェクトIDにて指定される。論理オブジェクトIDとは、物理的なオブジェクト配置場所を考慮しないオブジェクトIDである。論理オブジェクトIDとは、物理的なオブジェクト配置場所(オブジェクトデータ記憶部23に対応する記憶領域内の当該オブジェクトデータが記憶されている位置)から算出されるオブジェクトIDである。通常、索引データでの発生位置は論理オブジェクトIDにて表現される。論理オブジェクトIDから物理オブジェクトIDへの変換は、マップテーブル記憶部22に記憶されているマップテーブルを使って行われる。   The object data storage unit 23 stores a plurality of object data to be updated / referenced (searched). Object data is specified by a logical object ID and a physical object ID. The logical object ID is an object ID that does not consider the physical object placement location. The logical object ID is an object ID calculated from a physical object arrangement location (a position where the object data is stored in a storage area corresponding to the object data storage unit 23). Usually, the occurrence position in the index data is expressed by a logical object ID. The conversion from the logical object ID to the physical object ID is performed using a map table stored in the map table storage unit 22.

図2は、オブジェクトデータ記憶部23におけるオブジェクトデータの記憶例を模式的に示したものである。1つのオブジェクトデータは、複数のデータ(要素データ)をそれらの順序関係(あるいは上下関係)に従ってリンクして構成されている。   FIG. 2 schematically shows an example of storing object data in the object data storage unit 23. One object data is configured by linking a plurality of data (element data) according to their order relationship (or vertical relationship).

オブジェクトデータ記憶部23内のオブジェクトデータの格納エリアは、当該オブジェクトデータを構成する要素データを格納する記憶領域である複数のスロットから構成されている。各スロットは、スロットIDで特定するものとする。従って、各要素データは、当該要素データを含むオブジェクトデータの論理オブジェクトID(あるいは当該論理オブジェクトIDに対応する物理オブジェクトID)、当該要素データの格納されているスロットのスロットIDとで特定する。   The object data storage area in the object data storage unit 23 is composed of a plurality of slots which are storage areas for storing element data constituting the object data. Each slot is specified by a slot ID. Therefore, each element data is specified by the logical object ID of the object data including the element data (or the physical object ID corresponding to the logical object ID) and the slot ID of the slot in which the element data is stored.

例えば、オブジェクトデータ記憶部23の物理オブジェクトID「POID5」に格納されているオブジェクトデータは、“メモリ”と“データベース”という2つの要素データをこの順序で繋げて構成されたものである。“メモリ”と“データベース”という各要素データは、スロットID「SLOT0」と「SLOT1」というスロットにそれぞれ格納されている。また、オブジェクトデータ記憶部23の物理オブジェクトID「POID6」に格納されているオブジェクトデータは、“XML”と“データ”という2つの要素データをこの順序で繋げて構成されたものである。“XML”と“データ”という各要素データは、スロットID「SLOT0」と「SLOT1」というスロットにそれぞれ格納されている。このように、各オブジェクトデータは、リスト形式のデータ構造を有している。   For example, the object data stored in the physical object ID “POID5” of the object data storage unit 23 is configured by connecting two element data “memory” and “database” in this order. The element data “memory” and “database” are respectively stored in slots with slot IDs “SLOT0” and “SLOT1”. The object data stored in the physical object ID “POID6” of the object data storage unit 23 is configured by connecting two element data “XML” and “data” in this order. The element data “XML” and “data” are respectively stored in slots with slot IDs “SLOT0” and “SLOT1”. As described above, each object data has a data structure in a list format.

また、各オブジェクトデータの格納領域の先頭スロットは、リストの先頭要素データのスロットへのポインタ情報(例えば先頭要素データのスロットID)が格納され、各スロットには、次の要素データの格納されているスロットへのポインタ情報(スロットID)が要素データとともに格納されている。従ってポインタ情報によるチェーンをたどることでリストの各要素データをたどれる。   The first slot of each object data storage area stores pointer information (for example, the slot ID of the first element data) to the first element data slot of the list, and each slot stores the next element data. Pointer information (slot ID) to a slot is stored together with element data. Therefore, each element data of the list can be traced by following the chain based on the pointer information.

図3は、索引データ記憶部21に記憶される索引データの記憶例を模式的に示したものである。ここでは索引データとは、少なくとも数値(日付や時刻などを含む),単語,語彙からなる索引語と、当該索引語を含む要素データをもつオブジェクトデータの論理オブジェクトIDと、当該要素データのスロットIDとを対応付けたものである。すなわち、索引語から当該索引語をもつ(当該索引語の発生している)要素データおよびオブジェクトデータを探し出すためのデータである。   FIG. 3 schematically shows an example of storage of index data stored in the index data storage unit 21. Here, the index data is an index word composed of at least a numerical value (including date and time), a word, and a vocabulary, a logical object ID of object data having element data including the index word, and a slot ID of the element data. Are associated with each other. That is, it is data for finding out element data and object data having the index word (where the index word is generated) from the index word.

図3において、索引データは、「語彙」欄と「発生位置テーブル」欄から構成されている。「語彙」欄には、複数の索引語が登録されている。各語彙に対して、論理オブジェクトIDとスロットIDと、さらに、当該論理オブジェクトIDとスロットIDとで特定される要素データが更新により削除されるものなのかあるいは挿入されるものなのかを示す情報と、当該要素データが実際にオブジェクトデータ記憶部23に記憶されているか否かを確認する必要があるか否かを示す情報と、更新時刻とを組とした発生位置テーブルが登録されている。   In FIG. 3, the index data includes a “vocabulary” field and an “occurrence position table” field. In the “vocabulary” column, a plurality of index words are registered. For each vocabulary, a logical object ID and a slot ID, and information indicating whether the element data specified by the logical object ID and the slot ID is deleted or inserted by update A generation position table in which information indicating whether or not it is necessary to check whether or not the element data is actually stored in the object data storage unit 23 and an update time is registered.

例えば「語彙」欄中の索引語“メモリ”、“データベース”に対して、それぞれ1つの発生位置テーブルが対応付けられており、当該発生位置テーブルには、当該索引語を含む要素データと、この要素データのオブジェクトデータにおける発生位置等を示した発生位置データが登録されている。   For example, one occurrence position table is associated with each of the index words “memory” and “database” in the “vocabulary” column. In the occurrence position table, element data including the index word and this data The generation position data indicating the generation position in the object data of the element data is registered.

発生位置テーブルは、図3に示すように、「発生位置」欄と「削除挿入」欄と「確認要否」欄と「更新時刻」欄とからなる。「発生位置」欄には、索引語が発生する要素データと当該要素データをもつオブジェクトデータを特定するための論理オブジェクトIDとスロットIDとを1組とするデータが登録されている。「削除挿入」欄には、当該要素データが削除予定なのか挿入予定なのか判別するための情報が登録されている。ここでは、例えば削除予定であれば「削」挿入予定であれば「挿」が登録される。「確認要否」欄には、データ参照(データ検索)時、当該要素データがオブジェクトデータ記憶部23に実際に記憶されているか否か(有効なのか無効なのか)チェックの必要の有無を表すための情報(フラグ情報)が登録されている。ここでは、例えばチェックの必要があれば「要」、必要でなければ「否」が登録される。「更新時刻」欄には、当該要素データが更新された時刻(更新確認(コミット)された時刻)が登録される。   As shown in FIG. 3, the occurrence position table includes an “occurrence position” field, a “deletion / insertion” field, a “confirmation necessity” field, and an “update time” field. Registered in the “occurrence position” column is data including a set of element data in which an index word is generated and a logical object ID and slot ID for specifying object data having the element data. In the “deletion / insertion” column, information for determining whether the element data is scheduled to be deleted or inserted is registered. Here, for example, if “to delete” is scheduled, “insert” is registered if “delete” is to be inserted. The “necessity of confirmation” column indicates whether or not it is necessary to check whether the element data is actually stored in the object data storage unit 23 (valid or invalid) at the time of data reference (data search). Information (flag information) is registered. Here, for example, “necessary” is registered if it is necessary to check, and “no” is registered if not necessary. In the “update time” column, the time (update confirmation (commit) time) when the element data is updated is registered.

図3では、索引データの「語彙」欄の“メモリ”に対応付けられている発生位置テーブルに、「LOID5、SLOT0、挿、否、Time6」というレコード(発生位置データ)が登録されている。これは「論理オブジェクトID「LOID5」を持つオブジェクトデータのスロットID「SLOT0」のスロット(「0」番目のスロット)に“メモリ”という語彙が発生している。更新時刻は「Time6」でコミットされている。データ参照を行う場合にスロットチェックが不要である」という意味である。   In FIG. 3, a record (occurrence position data) “LOID5, SLOT0, Insertion, No, Time6” is registered in the occurrence position table associated with “memory” in the “vocabulary” column of the index data. This is because the word “memory” is generated in the slot (“0” slot) of the slot ID “SLOT0” of the object data having the logical object ID “LOID5”. The update time is “Time 6” and is committed. This means that slot check is not necessary when data is referred to.

図4は、マップテーブル記憶部22に記憶されているマップテーブルの一例を示したものである。マップテーブルは、論理オブジェクトID(LOID)と当該論理オブジェクトIDをもつオブジェクトデータの物理オブジェクトID(POID)であってコミットされたときの物理オブジェクトIDとを1組とする複数のデータが登録されたものである。例えば、論理オブジェクトID「LOID5」は物理オブジェクトID「POID5」に変換されるということを意味している。   FIG. 4 shows an example of a map table stored in the map table storage unit 22. In the map table, a plurality of data, each of which is a set of a logical object ID (LOID) and a physical object ID (POID) of object data having the logical object ID and a physical object ID when committed, are registered. Is. For example, it means that the logical object ID “LOID5” is converted into the physical object ID “POID5”.

データ更新の要求が入力したとき、更新処理部2にて、索引データの更新、オブジェクトデータの更新が行われる。データ更新はコミットされる(更新が確定する)まで、更新開始から更新が確定するまでに受け付けた参照処理に対しては更新前の結果のみ見えて、更新後の結果が見えないように制御しなければならない。このため、情報管理装置1は、バージョンデータテーブル12を用いて、データ参照処理に対する更新内容の見え方を制御している。   When a data update request is input, the update processing unit 2 updates the index data and the object data. Until the data update is committed (update is confirmed), the reference process accepted from the start of the update until the update is confirmed can be controlled so that only the result before the update can be seen and the result after the update cannot be seen. There must be. For this reason, the information management apparatus 1 uses the version data table 12 to control the appearance of the update contents for the data reference process.

バージョンデータ管理部5は、オブジェクトデータ記憶部23の更新前の状態しか見せられない参照処理が終了した時点で、バージョンデータテーブル12や索引データ記憶部21内の索引データを更新するとともに、オブジェクトデータ記憶部23の不要となった記憶領域を開放する。   The version data management unit 5 updates the index data in the version data table 12 and the index data storage unit 21 at the time when the reference process that only shows the state before the update of the object data storage unit 23 is completed, and the object data The storage area that is no longer needed in the storage unit 23 is released.

コミット要求が入力したとき、コミット処理部3はデータ更新が確定されたものとみなして、マップテーブル記憶部22に記憶されているマップテーブルや索引データ記憶部21に記憶されている索引データの更新を行う。また、コミット前後にわたって参照処理部4で実行されている参照処理のために、更新前の結果を見せる必要がある。このためにバージョンデータテーブル12の更新を行う。   When a commit request is input, the commit processing unit 3 regards that the data update has been confirmed, and updates the map table stored in the map table storage unit 22 and the index data stored in the index data storage unit 21. I do. In addition, it is necessary to show the result before the update for the reference processing executed by the reference processing unit 4 before and after the commit. For this purpose, the version data table 12 is updated.

データ参照の要求が入力したとき、参照処理部4は、索引データのアクセスからオブジェクトデータへのアクセス、あるいは直接的にオブジェクトデータへのアクセスが行われる。データ参照のルールとして、データ参照要求を受け付けたときの状態のオブジェクトデータ記憶部23に対する参照でなければならない。すなわち、コミットされたオブジェクトデータ記憶部23のスナップショットがあったとして、これに対する参照が行われなければ、データ一貫性が失われてしまうからである。   When a data reference request is input, the reference processing unit 4 performs access from the index data access to the object data or directly from the object data. As a data reference rule, it must be a reference to the object data storage unit 23 in the state when the data reference request is received. That is, even if there is a committed snapshot of the object data storage unit 23, data consistency will be lost unless the snapshot is referenced.

参照処理部4における、索引データのアクセスから開始する場合の基本的な動作は、索引データから条件を満足する(条件として指定された数値、記号、語彙などを含む)要素データの発生位置データの集合を取り出し、マップテーブル記憶部22に記憶されているマップテーブルにて論理オブジェクトIDから物理オブジェクトIDへの変換を行って、オブジェクトデータ記憶部23内のオブジェクトデータにアクセスする。直接的にオブジェクトデータへのアクセスする場合の基本的な動作は、マップテーブルにて論理オブジェクトIDから物理オブジェクトIDへの変換を行って、オブジェクトデータ記憶部23内のオブジェクトデータにアクセスする。   The basic operation in the reference processing unit 4 when starting from access to index data is the generation position data of element data that satisfies the conditions from the index data (including numerical values, symbols, vocabulary, etc. specified as conditions). The set is taken out, the logical object ID is converted into the physical object ID in the map table stored in the map table storage unit 22, and the object data in the object data storage unit 23 is accessed. The basic operation for directly accessing the object data is to convert the logical object ID to the physical object ID in the map table and access the object data in the object data storage unit 23.

ここで、図5を参照して、オブジェクトデータの更新(更新処理TXN2)開始前に開始され、当該更新がコミットされた後も継続している検索処理(参照処理Query3、Query4)と、当該更新がコミットされた後に開始される検索処理(参照処理Query2)とが混在する場合について説明する。すなわち、このような場合、参照処理Query3、Query4には当該更新前のオブジェクトデータを参照対象とし、参照処理Query2には当該更新後の(更新結果の)オブジェクトデータを参照対象とする切替を行う。   Here, referring to FIG. 5, the search process (reference process Query3, Query4) started before the start of the update of object data (update process TXN2) and continued after the update is committed, and the update A case will be described in which search processing (reference processing Query2) started after committing is committed. That is, in such a case, the reference process Query 3 and Query 4 are switched with the object data before update as a reference target, and the reference process Query 2 is switched with the updated (update result) object data as a reference target.

図5は、2つの更新処理と4つの参照処理のそれぞれの発生時と終了時を時系列に示したものである。図5には、以下の更新処理と参照処理を示している。なお、図5において、時刻「Time6」から「Time7」、「Time7」から「Time8」等の時刻の更新は、図5では表されていない更新処理がコミットされたために、時刻が更新されている。   FIG. 5 shows the time of occurrence and end of each of the two update processes and the four reference processes in time series. FIG. 5 shows the following update process and reference process. In FIG. 5, the time updates such as “Time6” to “Time7” and “Time7” to “Time8” are updated because the update process not shown in FIG. 5 is committed. .

時刻「Time6」に更新処理TXN1が発生し、論理オブジェクトID「LOID5」のオブジェクトデータ(“メモリ”,“データベース”)を格納した。   An update process TXN1 occurred at time “Time6”, and object data (“memory”, “database”) of the logical object ID “LOID5” was stored.

時刻「Time7」に参照処理Query1が発生し、語彙“メモリ”を含むオブジェクトデータの検索(参照)処理が開始され、時刻「Time7」の間に当該検索処理は終了した。   The reference process Query1 occurred at time “Time7”, the search (reference) process for object data including the vocabulary “memory” was started, and the search process was completed during the time “Time7”.

時刻「Time7」に参照処理Query3が発生し、語彙“メモリ”と“半導体”を含むオブジェクトデータの検索(参照)処理が開始され、当該検索処理は時刻「Time9」に終了した。   The reference process Query3 occurs at time “Time7”, the search (reference) process for object data including the vocabulary “memory” and “semiconductor” is started, and the search process ends at the time “Time9”.

時刻「Time7」に参照処理Query4が発生し、語彙“ディスク”を含むオブジェクトデータの検索(参照)処理が開始され、当該検索処置は時刻「Time9」に終了した。   The reference process Query4 occurs at time “Time7”, the search (reference) process for object data including the vocabulary “disc” is started, and the search process ends at time “Time9”.

時刻「Time8」に更新処理TXN2が発生し、論理オブジェクトID「LOID5」のオブジェクトデータの“メモリ”を“ディスク”に更新した。   The update process TXN2 occurred at time “Time8”, and the “memory” of the object data of the logical object ID “LOID5” was updated to “disk”.

時刻「Time9」に参照処理Query2が発生し、語彙“メモリ”を含むオブジェクトデータの検索(参照)処理が開始され、時刻「Time9」の間に当該検索処理は終了した。   The reference process Query2 occurs at time “Time9”, the search (reference) process for object data including the vocabulary “memory” is started, and the search process ends during the time “Time9”.

図5に示した状態の場合、各参照処理の参照対象は、当該参照処理の参照要求の発生した時点において既にコミットされているオブジェクトデータのみである。例えば、参照処理Query1では、更新処理TXN1の更新結果までが参照対象となり、論理オブジェクトID「LOID5」のオブジェクトデータ(“メモリ”,“データベース”)を参照することができる。参照処理Query2では、更新処理TXN2での更新結果までが参照対象となり、当該オブジェクトデータ(“メモリ”,“データベース”)は参照できない。代わって、更新処理TXN2での更新結果(“ディスク”,“データベース”)が参照対象となる。   In the state shown in FIG. 5, the reference target of each reference process is only the object data that has already been committed at the time when the reference request for the reference process occurs. For example, in the reference process Query 1, the update result of the update process TXN 1 is a reference target, and the object data (“memory”, “database”) of the logical object ID “LOID 5” can be referred to. In the reference process Query2, the update result in the update process TXN2 is a reference target, and the object data ("memory", "database") cannot be referred to. Instead, the update result (“disk”, “database”) in the update process TXN2 is a reference target.

参照処理Query3やQuery4では、これらの参照要求の発生時前に既にコミットされている更新処理TXN1の更新結果までが参照対象となる。しかし、これら参照処理中に更新処理TXN2が発生し、更新がコミットされているので、更新処理TXN2の終了後(コミット後)に、この更新結果を参照処理Query3やQuery4の参照対象とならないように制御する必要がある。すなわち、参照処理Query3やQuery4は、更新処理TXN2が発生する以前のオブジェクトデータを参照対象とするべきなので、更新処理TXN2が終了後も更新処理TXN2の更新前のオブジェクトデータを保持しておく。そして、少なくとも参照処理Query3やQuery4が終了するまで、これら参照処理Query3やQuery4に対しては、更新処理TXN2の更新前のオブジェクトデータをみせ、更新処理TXN2終了後に参照要求を行った検索処理(例えば、図5では参照処理Query2)に対しては、更新処理TXN2の更新後のオブジェクトデータをみせるという切替を行う。   In the reference processes Query3 and Query4, the update target of the update process TXN1 that has already been committed before the occurrence of these reference requests is the reference target. However, since the update process TXN2 occurs during the reference process and the update is committed, the update result is not made the reference target of the reference process Query3 or Query4 after the update process TXN2 ends (after the commit). Need to control. That is, since the reference processing Query3 and Query4 should refer to the object data before the update processing TXN2 occurs, the object data before the update processing TXN2 is retained even after the update processing TXN2 is completed. Then, at least until the reference process Query3 or Query4 is completed, the reference process Query3 or Query4 is displayed with the object data before the update process TXN2 is updated, and the search process (for example, a reference request is made after the update process TXN2 is completed) In FIG. 5, the reference process Query2) is switched to show the updated object data of the update process TXN2.

次に、図6に示すフローチャートを参照して、図1の情報管理装置1の更新処理動作について説明する。   Next, the update processing operation of the information management apparatus 1 in FIG. 1 will be described with reference to the flowchart shown in FIG.

なお、ここでは、図5の更新処理TXN2の更新処理動作を例にとり説明し、当該更新前のオブジェクトデータ記憶部23、索引データ記憶部21、マップテーブル記憶部22の状態は、それぞれ図2〜図4に示すような状態であるとする。   Here, the update process operation of the update process TXN2 of FIG. 5 will be described as an example, and the states of the object data storage unit 23, the index data storage unit 21, and the map table storage unit 22 before the update are shown in FIG. Assume that the state is as shown in FIG.

例えば、端末TE1から、論理オブジェクトID「LOID5」のオブジェクトデータ(“メモリ”,“データベース”)に対する更新要求であって、当該オブジェクトデータの先頭の要素データ“メモリ”を“ディスク”に変更する更新要求メッセージが送られてきたとする。この更新は、図5の更新処理TXN2に対応する。   For example, an update request from the terminal TE1 to the object data (“memory”, “database”) of the logical object ID “LOID5”, and the update is performed by changing the first element data “memory” of the object data to “disk”. Suppose a request message is sent. This update corresponds to the update process TXN2 of FIG.

当該更新要求メッセージは、更新処理部2で受け取られる。更新処理部2は、まず、時刻管理部6から、現在の時刻(更新時刻)を得る(ステップS1)。ここで時刻とは、情報管理装置1が起動してからシリアルにふられていく番号であり、コミット処理により「1」だけ増加する。すなわち、時刻を見れば、更新が確定した時点(更新がコミットされた時点)と参照要求の発生した時点との時間的な前後関係がわかるものとする。   The update request message is received by the update processing unit 2. First, the update processing unit 2 obtains the current time (update time) from the time management unit 6 (step S1). Here, the time is a number assigned serially after the information management apparatus 1 is activated, and increases by “1” by the commit process. In other words, it is assumed that the temporal relationship between the time when the update is confirmed (the time when the update is committed) and the time when the reference request is generated can be understood from the time.

なお、更新処理部2で当該更新要求を受け取った時点(時刻「Time8」)では、図5からも明らかなように、時刻「Time7」に発生した参照要求が2件あり(Query3、Query4)、これらの参照処理は今だ継続中である。時刻「Time8」における参照ログテーブル13を図7に示す。図7に示すように、参照ログテーブル13には、現時点において参照処理が継続中である参照処理の数が、当該参照処理の発生時刻別に登録されている。例えば、図7には、時刻「Time7」に発生した参照処理(Query3、Query4)の数として「2」が登録されている。   At the time when the update processing unit 2 receives the update request (time “Time 8”), as is apparent from FIG. 5, there are two reference requests generated at the time “Time 7” (Query 3 and Query 4). These reference processes are still ongoing. The reference log table 13 at time “Time 8” is shown in FIG. As illustrated in FIG. 7, the reference log table 13 registers the number of reference processes for which reference processes are currently being performed, for each occurrence time of the reference processes. For example, in FIG. 7, “2” is registered as the number of reference processes (Query3, Query4) that occurred at time “Time7”.

次に、更新処理部2は、更新対象のオブジェクトデータの複製を、オブジェクトデータ記憶部23内の未使用の記憶エリアに格納する。そして、更新された新たな要素データは、未使用スロットに格納する(ステップS2)。   Next, the update processing unit 2 stores a copy of the object data to be updated in an unused storage area in the object data storage unit 23. Then, the updated new element data is stored in an unused slot (step S2).

例えば、図9に示すように、更新対象の物理オブジェクトID「POID5」のオブジェクトデータの複製は、オブジェクトデータ記憶部23内の空きエリアである、物理オブジェクトID「POID21」に格納し、先頭スロットの要素データに代わる新たな要素データである“ディスク”が空きのスロット(スロットID「SLOT2」)に格納される。   For example, as shown in FIG. 9, the copy of the object data of the physical object ID “POID5” to be updated is stored in the physical object ID “POID21”, which is an empty area in the object data storage unit 23, and is stored in the first slot. “Disk” which is new element data replacing element data is stored in an empty slot (slot ID “SLOT2”).

このように、更新前のオブジェクトデータをそのまま残しておき、当該更新前のオブジェクトデータの複製に更新を行ったものを新たなオブジェクトデータとして更新前のオブジェクトデータとは別の格納エリアに格納する。そして、更新前の先頭スロット「SLOT0」を使わずに、未使用のスロット「SLOT2」を新たな先頭の要素データ“ディスク”用に割当てることにより、次のようにして、発生位置データの有効性、無効性をコントロールすることができる。   In this way, the object data before update is left as it is, and a copy of the object data before update is updated and stored as new object data in a storage area different from the object data before update. Then, the unused slot “SLOT2” is allocated for the new head element data “disk” without using the first slot “SLOT0” before the update, and the validity of the generated position data is as follows. , Can control the invalidity.

(A)発生位置テーブルの「確認要否」欄が「要」であり、実際にオブジェクトデータ記憶部23に当該発生位置データで表されたスロットが存在しなければ、当該発生位置データは無効である。   (A) If the “necessity of confirmation” column of the occurrence position table is “necessary” and the slot represented by the occurrence position data does not actually exist in the object data storage unit 23, the occurrence position data is invalid. is there.

(B)発生位置テーブルの「確認要否」欄が「要」であり、実際にオブジェクトデータ記憶部23に当該発生位置データで表されたスロットが存在すれば、当該発生位置データは有効である。   (B) If the “necessity of confirmation” column of the generation position table is “necessary” and the slot represented by the generation position data actually exists in the object data storage unit 23, the generation position data is valid. .

(C)発生位置テーブルの「確認要否」欄が「否」であれば、当該発生位置データは有効である。   (C) If the “confirmation necessity” column of the occurrence position table is “No”, the occurrence position data is valid.

と判断することができる。このような判断は後述する参照処理において行われる。   It can be judged. Such a determination is made in a reference process described later.

更新処理部2は、オブジェクトデータ記憶部23内のオブジェクトデータの更新に伴い、当該更新により追加された新たな要素データに対応する索引データの更新、当該更新により削除された要素データに対応する索引データの更新を行う(ステップS3)。具体的には、追加された新たな要素データに対応する索引語と発生位置データの発生位置テーブルへの追加(図3の索引データへのデータの追加)を行う。このとき発生位置テーブルへ追加された新たな発生位置データの「削除挿入」欄は「挿」、「確認要否」欄は「要」となり、「更新時刻」欄には更新時刻は登録されていない。また、削除される要素データに対応する発生位置データ内の「確認要否」欄の「否」を「要」とする。   The update processing unit 2 updates the index data corresponding to the new element data added by the update as the object data in the object data storage unit 23 is updated, and the index corresponding to the element data deleted by the update. Data is updated (step S3). Specifically, an index word corresponding to the added new element data and the occurrence position data are added to the occurrence position table (addition of data to the index data in FIG. 3). At this time, the “delete insertion” field of the new generation position data added to the generation position table is “insertion”, the “necessity of confirmation” field is “necessary”, and the update time is registered in the “update time” field. Absent. Further, “necessary” is set to “necessary” in the “necessity of confirmation” column in the generation position data corresponding to the element data to be deleted.

例えば、ここでは、“メモリ”という要素データが“ディスク”に書き換える更新であるから、まず、図10に示すように、索引データの「語彙」欄の“ディスク”という語彙に対応付けて、発生位置が論理オブジェクトID「LOID5」とスロットID「SLOT0」である新たな発生位置データを発生位置テーブルへ追加する。また、“メモリ”という要素データは削除予定であるから、図10に示すように、当該要素データに対応する発生位置データ内の「確認要否」欄の「否」を「要」とする。   For example, here, since the element data “memory” is an update to be rewritten to “disk”, first, as shown in FIG. 10, it is generated in association with the vocabulary “disk” in the “vocabulary” column of the index data. New generation position data whose position is the logical object ID “LOID5” and the slot ID “SLOT0” is added to the generation position table. Further, since the element data “memory” is scheduled to be deleted, as shown in FIG. 10, “No” in the “necessity of confirmation” column in the generation position data corresponding to the element data is set to “necessary”.

次に、図11に示すフローチャートを参照して、図1の情報管理装置1のコミット処理動作について説明する。コミット処理とは、更新処理により更新内容を確定するための処理であり、コミット処理が終了することで、当該更新処理が終了する。ここでは、更新処理TXN2を終了するためのコミット処理を例にとり説明する。   Next, the commit processing operation of the information management apparatus 1 in FIG. 1 will be described with reference to the flowchart shown in FIG. The commit process is a process for confirming the update contents by the update process. When the commit process ends, the update process ends. Here, a commit process for ending the update process TXN2 will be described as an example.

端末TE1から、前述したように、“メモリ”という要素データが“ディスク”に書き換える更新に対しコミットするためのコミット要求メッセージが情報管理装置1へ送信される。当該コミット要求メッセージは、コミット処理部3で受け取られる(ステップS11)。   As described above, the terminal TE1 transmits a commit request message for committing to the update in which the element data “memory” is rewritten to “disk” to the information management apparatus 1. The commit request message is received by the commit processing unit 3 (step S11).

コミット処理部3では、当該コミット要求を受け付けると、図12に示すように、バージョンデータテーブル12に、当該更新の更新時刻(ここでは例えば「Time8」)、更新対象のオブジェクトデータの論理オブジェクトID(ここでは例えば「LOID5」)、更新後のオブジェクトデータの格納されている新たな物理オブジェクトID(ここでは例えば「POID21」)、当該更新前のオブジェクトデータの格納されている物理オブジェクトID(ここでは例えば「POID5」)を登録する(ステップS12)。   When the commit processing unit 3 accepts the commit request, as shown in FIG. 12, the update time (in this example, “Time 8”) of the update and the logical object ID of the object data to be updated (as shown in FIG. 12) Here, for example, “LOID5”), a new physical object ID in which the updated object data is stored (here, “POID21”, for example), and a physical object ID in which the object data before the update is stored (in this case, for example, "POID5") is registered (step S12).

バージョンデータテーブル12には、図12に示すように、更新のコミット時に、当該更新の開始時刻である更新時刻と、当該更新の更新対象のオブジェクトデータの論理オブジェクトID(LOID)と、更新後のオブジェクトデータの格納されている新たな物理オブジェクトID(NewPOID)と、更新前のオブジェクトデータの格納されている物理オブジェクトID(OldPOID)とが登録される。   In the version data table 12, as shown in FIG. 12, at the time of committing the update, the update time that is the start time of the update, the logical object ID (LOID) of the update target object data, and the post-update A new physical object ID (NewPOID) in which object data is stored and a physical object ID (OldPOID) in which object data before update is stored are registered.

例えば、図12に示したバージョンデータテーブル12には、時刻「Time8」にて、論理オブジェクトID「LOID5」のオブジェクトデータの物理オブジェクトIDが「POID5」から「POID21」に変更されたことを示している。時刻「Time8」よりも前の時点で開始された参照処理において、論理オブジェクトID「LOID5」のオブジェクトIDを参照しようとすれば、オブジェクトデータ記憶部23内の物理オブジェクトID「POID5」にアクセスすれば良いことになる。   For example, the version data table 12 shown in FIG. 12 indicates that the physical object ID of the object data with the logical object ID “LOID5” has been changed from “POID5” to “POID21” at the time “Time8”. Yes. In the reference process started before the time “Time8”, if the object ID of the logical object ID “LOID5” is to be referred to, the physical object ID “POID5” in the object data storage unit 23 is accessed. It will be good.

バージョンデータテーブル12は「更新時刻」欄の時刻にて降順にソートされている。   The version data table 12 is sorted in descending order by the time in the “update time” column.

コミット処理部3は、次に、索引データ記憶部21に記憶されている、更新前の要素データに対応する発生位置データの「削除挿入」欄と「更新時刻」欄を更新するとともに、更新後の要素データに対応する発生位置データの「更新時刻」欄を更新する(ステップS13)。具体的には、更新により、削除予定の要素データに対応する発生位置データの「削除挿入」欄に「削」を登録し、「更新時刻」欄に、当該更新処理で取得した時刻を登録する。また、更新により追加(挿入)予定の要素データに対応する発生位置データの「更新時刻」欄に、当該更新処理で取得した時刻を登録する。   Next, the commit processing unit 3 updates the “deletion / insertion” column and the “update time” column of the generated position data corresponding to the element data before the update stored in the index data storage unit 21 and after the update. The “update time” column of the generated position data corresponding to the element data is updated (step S13). Specifically, by updating, “delete” is registered in the “delete insertion” field of the occurrence position data corresponding to the element data to be deleted, and the time acquired by the update process is registered in the “update time” field. . In addition, the time acquired by the update process is registered in the “update time” column of the generated position data corresponding to the element data scheduled to be added (inserted) by update.

例えば、図13に示すように、論理オブジェクトID「LOID5」のオブジェクトデータの“メモリ”という要素データが“ディスク”という要素データに書き換えられた場合には、更新前の要素データ“メモリ”に対応する発生位置データ101は削除予定であるので、「削除挿入」欄の「挿」を「削」に書換え、「更新時刻」欄に、当該更新処理で取得した時刻「Time8」を登録する。また、更新後の要素データ“ディスク”に対応する発生位置データ102の「更新時刻」欄に、当該更新処理で取得した時刻「Time8」を登録する。   For example, as shown in FIG. 13, when the element data “memory” of the object data of the logical object ID “LOID5” is rewritten to the element data “disk”, it corresponds to the element data “memory” before the update. Since the occurrence position data 101 to be deleted is scheduled to be deleted, “insert” in the “delete insertion” column is rewritten to “delete”, and the time “Time 8” acquired in the update process is registered in the “update time” column. In addition, the time “Time 8” acquired by the update process is registered in the “update time” column of the generated position data 102 corresponding to the updated element data “disk”.

コミット処理部3は、次に、マップテーブル記憶部22に記憶されているマップテーブルを更新する(ステップS14)。すなわち、コミットされた更新結果をマップテーブルに反映させるべく、図14に示すように、更新対象のオブジェクトデータの論理オブジェクトIDに対応付ける物理オブジェクトIDを、更新前の更新後のオブジェクトデータの格納されている物理オブジェクトIDに書き換える。   Next, the commit processing unit 3 updates the map table stored in the map table storage unit 22 (step S14). That is, in order to reflect the committed update result in the map table, as shown in FIG. 14, the physical object ID associated with the logical object ID of the object data to be updated is stored in the object data after update before update. The physical object ID is rewritten.

図14では、論理オブジェクトID「LOID5」に対応する物理オブジェクトIDが「POID5」から、更新後のオブジェクトデータの格納されている物理オブジェクトID「POID21」に書き換えられている。   In FIG. 14, the physical object ID corresponding to the logical object ID “LOID5” is rewritten from “POID5” to the physical object ID “POID21” in which the updated object data is stored.

コミット処理部3は、さらに、更新ログテーブル11に、更新処理の最初に取得した時刻(ここでは「Time8」)と、更新対象のオブジェクトデータの物理オブジェクトID(ここでは、「POID5」)を、図8に示すように更新ログテーブル11に登録する(ステップS15)。更新ログテーブル11には、図8に示すように、更新処理の発生した時刻(更新時刻)と、当該更新処理により更新対象となったオブジェクトデータの物理オブジェクトIDとを1組とした更新ログが登録される。   Further, the commit processing unit 3 stores in the update log table 11 the time (in this case, “Time8”) acquired at the beginning of the update processing and the physical object ID (in this case, “POID5”) of the object data to be updated. As shown in FIG. 8, it is registered in the update log table 11 (step S15). As shown in FIG. 8, the update log table 11 includes an update log that includes a set of the time (update time) when the update process occurs and the physical object ID of the object data that is the update target by the update process. be registered.

最後に、時刻を1つインクリメントする(ステップS16)。ここでは、「Time8」から「Time9」に更新される。   Finally, the time is incremented by 1 (step S16). Here, “Time 8” is updated to “Time 9”.

次に、図15〜図17に示すフローチャートを参照して、図1の情報管理装置1の参照処理動作について説明する。ここでは、図5の参照処理QUERY3の参照処理動作を例にとり説明する。この場合、図5からも明らかなように、当該参照処理QUERY3の参照要求を受けた時点では、継続中の更新処理は存在しない。オブジェクトデータ記憶部23内のオブジェクトデータは全てコミットされた状態である。従って、更新ログテーブル11にはレコードが存在しない。また、参照ログテーブル13には、図18に示すように、時刻「Time7」に開始された参照処理QUERY1に対応する参照ログのレコードが記録されている。   Next, the reference processing operation of the information management apparatus 1 in FIG. 1 will be described with reference to the flowcharts shown in FIGS. Here, the reference processing operation of the reference processing QUERY3 in FIG. 5 will be described as an example. In this case, as is clear from FIG. 5, there is no ongoing update process at the time when the reference request for the reference process QUERY 3 is received. All object data in the object data storage unit 23 is committed. Therefore, no record exists in the update log table 11. In addition, as shown in FIG. 18, the reference log table 13 records a reference log record corresponding to the reference process QUERY1 started at time “Time7”.

この状態で、端末TE1から「“メモリ”と“半導体”のうちのいずれか一方を含むオブジェクトデータを取り出す」旨の参照要求メッセージが情報管理装置1へ送信される。当該参照要求メッセージは参照処理部4で受け取られる。   In this state, a reference request message stating “take out object data including any one of“ memory ”and“ semiconductor ”” is transmitted from the terminal TE1 to the information management apparatus 1. The reference request message is received by the reference processing unit 4.

参照処理部4では、当該参照要求メッセージを受け付けると、まず、時刻管理部6から現在の時刻(参照時刻)Tqを得る。ここでは、「Time7」が得られる。この結果、参照ログテーブル13の「Time7」に対応する参照数は1つ増加されて「2」に更新される(ステップS21)。   When receiving the reference request message, the reference processing unit 4 first obtains the current time (reference time) Tq from the time management unit 6. Here, “Time 7” is obtained. As a result, the number of references corresponding to “Time7” in the reference log table 13 is increased by 1 and updated to “2” (step S21).

次に、参照処理部4は、索引データ記憶部21にアクセスして、索引データ中の「語彙」欄の“メモリ”、“半導体”に対応付けて記憶されている位置発生テーブルから発生位置データの集合を得る(ステップS22)。なお、ここで発生位置データを収集する際には、「更新時刻」欄に更新時刻が記載されずに空欄(あるいは「NULL」)となっている発生位置データは除くようにしてもよい。「更新時刻」欄が空欄(あるいは「NULL」)となっている発生位置データは、前述したように、更新中であるがコミットされていない要素データの発生位置データであるからである。また、「削除挿入」欄が「挿」のときには「更新時刻」欄の時刻が当該参照処理の参照処理時刻Tq以前のもの、「削除挿入」欄が「削」のときには「更新時刻」欄の時刻が当該参照処理の参照処理時刻Tq以前以後にかかわりなく時刻が登録されていれば収集するようにしてもよい。   Next, the reference processing unit 4 accesses the index data storage unit 21 and generates generated position data from the position generation table stored in association with “memory” and “semiconductor” in the “vocabulary” column in the index data. Is obtained (step S22). When collecting the occurrence position data here, the occurrence position data in which the update time is not described in the “update time” field but is blank (or “NULL”) may be excluded. This is because the occurrence position data in which the “update time” field is blank (or “NULL”) is the occurrence position data of element data that is being updated but not committed as described above. Further, when the “deletion / insertion” field is “insertion”, the time of the “update time” field is before the reference processing time Tq of the reference process, and when the “deletion / insertion” field is “deletion”, If the time is registered regardless of the time before or after the reference processing time Tq of the reference processing, the time may be collected.

以下、(ケースX1)他の全てのトランザクション(例えば、この例では更新処理TXN2)が開始する前に、参照処理部4がデータベース20にアクセスする場合と、(ケースX2)他の少なくとも1つのトランザクション(例えば、この例では更新処理TXN2)が開始しているが、コミットはされていないときに、参照処理部4がデータベース20にアクセスする場合と、(ケースX3)全てのトランザクション(この例では更新処理TXN2)が終了後に参照処理部4がデータベース20にアクセスする場合とに分けて説明する。   Hereinafter, (Case X1) when the reference processing unit 4 accesses the database 20 before all other transactions (for example, update processing TXN2 in this example) are started, and (Case X2) at least one other transaction (For example, update processing TXN2 in this example) has started, but when the commit is not committed, the reference processing unit 4 accesses the database 20, and (case X3) all transactions (update in this example) The case where the reference processing unit 4 accesses the database 20 after the processing TXN2) is completed will be described separately.

(ケースX1)他の全てのトランザクション(例えば、この例では更新処理TXN2)が開始する前に、参照処理部4がデータベース20にアクセスする場合。   (Case X1) When the reference processing unit 4 accesses the database 20 before all other transactions (for example, the update process TXN2 in this example) are started.

オブジェクトデータ記憶部23と索引データ記憶部21とマップテーブル記憶部22の状態は、図2〜図3に示した状態である。従って、ステップS22では、図3に示した索引データから、発生位置データ101を含む発生位置データの集合を得る。   The states of the object data storage unit 23, the index data storage unit 21, and the map table storage unit 22 are the states shown in FIGS. Therefore, in step S22, a set of generated position data including the generated position data 101 is obtained from the index data shown in FIG.

得られた発生位置データのそれぞれについて、ステップS24〜ステップS33の処理を繰り返す(ステップS23〜ステップS34)。すなわち、ステップS24では、発生位置データ内の「確認要否」欄をチェックする。(ケースX1)の場合、得られた全ての発生位置データの「確認要否」欄は「否」となっていることが期待できるので、ここでは、ステップS31へ進む。ステップS31では、現在処理対象の発生位置データから論理オブジェクトID(LOID)を取り出し、マップテーブルから当該LOIDに対応する物理オブジェクトID(POID)を得る。例えば、現在処理対象の発生位置データが発生位置データ101である場合、論理オブジェクトIDは「LOID5」であるので、図4に示したマップテーブルから物理オブジェクトID「POID5」が得られる。そして、ステップS33へ進み、オブジェクトデータ記憶部23の物理オブジェクトID「POID5」に対応する記憶エリアからオブジェクトデータを読み出す。   The processing of step S24 to step S33 is repeated for each of the obtained generation position data (step S23 to step S34). That is, in step S24, the “confirmation necessity” column in the generated position data is checked. In the case of (Case X1), it can be expected that the “confirmation necessity” column of all the obtained occurrence position data is “No”, and thus the process proceeds to Step S31. In step S31, a logical object ID (LOID) is extracted from the generation position data currently being processed, and a physical object ID (POID) corresponding to the LOID is obtained from the map table. For example, when the generated position data to be processed is the generated position data 101, since the logical object ID is “LOID5”, the physical object ID “POID5” is obtained from the map table shown in FIG. In step S33, the object data is read from the storage area corresponding to the physical object ID “POID5” in the object data storage unit 23.

以上のステップS24〜ステップS34の処理をステップS22で得られた全ての発生位置データについて行う。   The processes in steps S24 to S34 described above are performed for all occurrence position data obtained in step S22.

その後、図17のステップS51へ進む。   Thereafter, the process proceeds to step S51 in FIG.

(ケースX2)他の少なくとも1つのトランザクション(例えば、この例では更新処理TXN2)が開始しているがコミットはされていないときに、参照処理部4がデータベース20にアクセスする場合。   (Case X2) When the reference processing unit 4 accesses the database 20 when at least one other transaction (for example, the update process TXN2 in this example) is started but not committed.

オブジェクトデータ記憶部23は、図9に示した状態であり、索引データ記憶部21は、図10に示した状態であり、マップテーブル記憶部22は図4に示した状態である。この場合も、ステップS22では、図10に示した索引データから、発生位置データ101を含む発生位置データの集合を得る。なお、例えば“メモリ”に対応付けて記憶されている発生位置データであっても、「更新時刻」欄が空欄(あるいは「NULL」)となっている発生位置データは、前述したように、更新中であるがコミットされていない要素データの発生位置データであり、そのような発生位置データは除くようにしてもよい。 得られた発生位置データのそれぞれについて、ステップS24〜ステップS33の処理を繰り返す(ステップS23〜ステップS34)。すなわち、ステップS24では、発生位置データ内の「確認要否」欄をチェックする。(ケースX2)の場合、更新処理TXN2が開始されているが、まだ、コミットはされていない。従って、「確認要否」欄は「要」となっている発生位置データも存在する。例えば、発生位置データ101は、図10からも明らかなように、現在更新中であるので、「確認要否」欄は「要」となっている。この場合には、図16のステップS61へ進む。   The object data storage unit 23 is in the state shown in FIG. 9, the index data storage unit 21 is in the state shown in FIG. 10, and the map table storage unit 22 is in the state shown in FIG. Also in this case, in step S22, a set of generated position data including the generated position data 101 is obtained from the index data shown in FIG. For example, even if the generation position data is stored in association with “memory”, the generation position data whose “update time” field is blank (or “NULL”) is updated as described above. It is the generation position data of element data that is in the middle but not committed, and such generation position data may be excluded. The processing of step S24 to step S33 is repeated for each of the obtained generation position data (step S23 to step S34). That is, in step S24, the “confirmation necessity” column in the generated position data is checked. In the case (Case X2), the update process TXN2 has been started, but has not been committed yet. Accordingly, there is occurrence position data in which “required” is “necessary” in the “confirmation necessity” column. For example, since the generation position data 101 is currently being updated as is apparent from FIG. 10, the “necessity of confirmation” column is “necessary”. In this case, the process proceeds to step S61 in FIG.

ステップS61では、現在処理対象の発生位置データの「削除挿入」欄をチェックする。「削除挿入」欄が「削」となっているときには、ステップS62へ進み、参照ログテーブル13内で現在最も古い参照時刻を取得し、当該参照時刻と処理対象の発生位置データの「更新時刻」欄の更新時刻と比較する。処理対象の発生位置データの更新時刻が、取得した参照時刻より以前のものであるときには、ステップS64へ進み、発生位置データの集合から当該処理対象の発生位置データを削除し、図15のステップS34へ進む。一方、処理対象の発生位置データの更新時刻が、取得した参照時刻以降のものであるときには、ステップS65へ進む。   In step S61, the “deletion / insertion” column of the generation position data currently being processed is checked. When the “delete insertion” field is “delete”, the process proceeds to step S 62, the oldest reference time currently in the reference log table 13 is acquired, and the “update time” of the reference time and the generation position data to be processed is acquired. Compare with column update time. When the update time of the generated position data to be processed is earlier than the acquired reference time, the process proceeds to step S64, where the generated position data to be processed is deleted from the set of generated position data, and step S34 in FIG. Proceed to On the other hand, when the update time of the generation position data to be processed is after the acquired reference time, the process proceeds to step S65.

ステップS61で、現在処理対象の発生位置データの「削除挿入」欄が「挿」となっているときには、ステップS63へ進み、参照ログテーブル13内で現在最も古い参照時刻を取得し、当該参照時刻と処理対象の発生位置データの「更新時刻」欄の更新時刻と比較する。処理対象の発生位置データの更新時刻が、取得した参照時刻より前であるときには、ステップS66へ進み、当該処理対象の発生位置データ内の「確認要否」欄を「要」から「否」へ書き換える。その後、ステップS66´へ進み、当該発生位置データのLOIDに対応するPOIDをマップデータから取得し、ステップS72へ進み、オブジェクトデータ記憶部23内の当該得られたPOIDに対応する記憶エリアからオブジェクトデータを読み出す。   If it is determined in step S61 that the “deletion / insertion” field of the occurrence position data currently being processed is “insertion”, the process proceeds to step S63, where the current oldest reference time is acquired in the reference log table 13, and the reference time And the update time in the “update time” column of the generation position data to be processed. When the update time of the generation position data to be processed is before the acquired reference time, the process proceeds to step S66, and the “confirmation necessity” column in the generation position data to be processed is changed from “required” to “not”. rewrite. Thereafter, the process proceeds to step S66 ′, the POID corresponding to the LOID of the generated position data is acquired from the map data, and the process proceeds to step S72, where the object data is stored in the object data storage unit 23 from the storage area corresponding to the obtained POID. Is read.

一方、ステップS63において、処理対象の発生位置データの更新時刻が、取得した参照時刻以降であるときには、ステップS65へ進む。   On the other hand, when the update time of the generation position data to be processed is after the acquired reference time in step S63, the process proceeds to step S65.

ステップS65では、バージョンデータテーブル12を参照し、現在処理対象となっている発生位置データ内の論理オブジェクトIDに対するコミットされた更新があるか否かチェックする。そして、そのようなレコード(バージョンデータ)が存在すれば、ステップS67へ進み、存在しなければステップS68へ進む。   In step S65, the version data table 12 is referred to and it is checked whether or not there is a committed update for the logical object ID in the generation position data that is currently processed. If such a record (version data) exists, the process proceeds to step S67, and if not, the process proceeds to step S68.

ステップS67では、当該バージョンデータに含まれる更新時刻と現在の参照処理の開始時に取得した時刻(参照時刻)とを比較する。バージョンデータの更新時刻が参照時刻より以前であれば、当該更新結果の参照は可能であるので、ステップS69へ進む。バージョンデータの更新時刻が参照時刻より後であれば、当該更新結果の参照は不可能であるので、ステップS70へ進む。   In step S67, the update time included in the version data is compared with the time (reference time) acquired at the start of the current reference process. If the update time of the version data is earlier than the reference time, the update result can be referred to, and the process proceeds to step S69. If the update time of the version data is later than the reference time, it is impossible to refer to the update result, and the process proceeds to step S70.

ステップS69では、当該バージョンデータから「NewPOID」を取出し、ステップS70では、当該バージョンデータから「OldPOID」を取出す。その後、(「確認要否」欄が「要」であったので)、ステップS71へ進み、得られたPOIDに対応するオブジェクトデータ記憶部23内の記憶エリアに、処理対象の発生位置データで指定されているスロットIDをもつスロットが存在するかを確認する。当該スロットIDのスロットが存在するときには、ステップS72へ進み、オブジェクトデータ記憶部23内の当該得られたPOIDに対応する記憶エリアからオブジェクトデータを読み出す。ステップS71において、当該スロットIDをもつスロットが存在しないときには、当該POIDからのオブジェクトデータの読出は行わず、図15のステップS34へ進み、次の処理対象とすべき発生位置データがあるか否かを調べる。   In step S69, “NewPOID” is extracted from the version data. In step S70, “OldPOID” is extracted from the version data. Thereafter (because the “necessity of confirmation” column is “necessary”), the process proceeds to step S71, and the storage location in the object data storage unit 23 corresponding to the obtained POID is designated by the generation position data to be processed. It is confirmed whether there is a slot having the specified slot ID. If there is a slot with the slot ID, the process proceeds to step S72, and object data is read from the storage area corresponding to the obtained POID in the object data storage unit 23. In step S71, when there is no slot having the slot ID, object data is not read from the POID, and the process proceeds to step S34 in FIG. 15 to determine whether there is generation position data to be processed next. Check out.

ステップS68では、処理対象の発生位置データ内のLOIDに対応するPOIDをマップデータから得、ステップS71へ進む。   In step S68, the POID corresponding to the LOID in the generation position data to be processed is obtained from the map data, and the process proceeds to step S71.

現在行っている参照処理QUERY3の開始時刻(参照時刻Time7)以降に開始され、現在処理対象となっている発生位置データ内の論理オブジェクトIDに対するコミットされた更新があり、当該更新処理に対応するバージョンデータが存在すれば、ステップS70へ進む。現在行っている参照処理QUERY3の開始時刻(参照時刻Time7)より前に、現在処理対象となっている発生位置データ内の論理オブジェクトIDに対するコミットされた更新があり、当該更新処理に対応するバージョンデータが存在すれば、ステップS69へ進む。   A version corresponding to the update process, which is started after the start time (reference time Time7) of the reference process QUERY3 currently being performed, and there is a committed update to the logical object ID in the generation position data currently being processed. If data exists, the process proceeds to step S70. Before the start time (reference time Time7) of the reference process QUERY3 currently being performed, there is a committed update to the logical object ID in the occurrence position data that is the current process target, and the version data corresponding to the update process If exists, the process proceeds to step S69.

上記以外の処理は、(ケースX1)の場合と同様である。   Processes other than those described above are the same as in (Case X1).

(ケースX3)全てのトランザクション(この例では更新処理TXN2)が終了後に参照処理部4がデータベース20にアクセスする場合。   (Case X3) When the reference processing unit 4 accesses the database 20 after completion of all transactions (in this example, the update process TXN2).

オブジェクトデータ記憶部23は図9に示した状態であり、索引データ記憶部21は図13に示した状態であり、マップテーブル記憶部22の状態は図14に示した状態である。また、バージョンデータテーブル12には、図12に示したように、更新処理TXN2による更新(更新時刻「Time8」)に関するレコード201が記録されている。この場合、ステップS22では、図13に示した索引データから、発生位置データ101を含む発生位置データの集合を得る。   The object data storage unit 23 is in the state shown in FIG. 9, the index data storage unit 21 is in the state shown in FIG. 13, and the map table storage unit 22 is in the state shown in FIG. Further, as shown in FIG. 12, the version data table 12 records a record 201 related to the update (update time “Time 8”) by the update process TXN2. In this case, in step S22, a set of generated position data including the generated position data 101 is obtained from the index data shown in FIG.

得られた発生位置データのそれぞれについて、ステップS24〜ステップS33の処理を繰り返す(ステップS23〜ステップS34)。すなわち、ステップS24では、発生位置データ内の「確認要否」欄をチェックする。(ケースX3)の場合、更新処理TXN2がコミットされているので、「確認要否」欄は「要」となっている発生位置データが存在する。例えば、発生位置データ101は、図13からも明らかなように、「確認要否」欄は「要」となっている。この場合には、図16のステップS61へ進む。   The processing of step S24 to step S33 is repeated for each of the obtained generation position data (step S23 to step S34). That is, in step S24, the “confirmation necessity” column in the generated position data is checked. In the case of (Case X3), since the update process TXN2 is committed, there is occurrence position data in which the “necessity of confirmation” column is “necessary”. For example, as is apparent from FIG. 13, the occurrence position data 101 is “necessary” in the “confirmation necessity” column. In this case, the process proceeds to step S61 in FIG.

ステップS61では、発生位置データ101の「削除挿入」欄が「削」となっているので、ステップS62へ進む。発生位置データ101の更新時刻「Time8」より前に開始された参照処理QUERY3やQUERY4が存在するため、ステップS62からステップS65へ進む。バージョンデータテーブル12を参照すると、バージョンデータテーブル12には、現在行っている参照処理QUERY3の開始時刻(参照時刻Time7)以降に開始されて既にコミットされた更新処理TXN2の更新時刻「Time8」のバージョンデータ201が存在する。当該更新処理の更新対象は論理オブジェクトID「LOID5」のオブジェクトデータである。   In step S61, since the “deletion / insertion” field of the generated position data 101 is “cut”, the process proceeds to step S62. Since the reference processing QUERY3 and QUERY4 started before the update time “Time8” of the occurrence position data 101 exists, the process proceeds from step S62 to step S65. Referring to the version data table 12, the version data table 12 includes a version of the update time “Time8” of the update process TXN2 that has been started after the start time (reference time Time7) of the reference process QUERY3 that is currently being performed. Data 201 exists. The update target of the update process is the object data with the logical object ID “LOID5”.

現在処理対象の発生位置データ101に含まれる論理オブジェクトIDは「LOID5」、スロットID「SLOT0」である。バージョンデータテーブル12内に、バージョンデータ201が存在し、バージョンデータ内の更新時刻「Time8」が現在行っている参照処理QUERY3の開始時刻(参照時刻Time7)より後であることから、ステップS67からステップS70へ進む。ステップS70では、バージョンデータテーブル12のレコード201からOldPOID「POID5」を取り出す。そして、そして、ステップS71へ進み、オブジェクトデータ記憶部23の物理オブジェクトID「POID5」に対応する記憶エリアに、スロットID「SLOT0」のスロットが存在するかチェックする。この場合、当該スロットは存在するので、ステップS72へ進み、当該記憶エリアから当該オブジェクトデータを読み出す。その後、図15のステップS34へ進む。   The logical object ID included in the generation position data 101 to be processed is “LOID5” and the slot ID “SLOT0”. Since the version data 201 exists in the version data table 12 and the update time “Time8” in the version data is after the start time (reference time Time7) of the reference processing QUERY3 currently performed, the steps from step S67 are performed. Proceed to S70. In step S <b> 70, OldPOID “POID5” is extracted from the record 201 of the version data table 12. Then, the process proceeds to step S71, and it is checked whether or not a slot with the slot ID “SLOT0” exists in the storage area corresponding to the physical object ID “POID5” in the object data storage unit 23. In this case, since the slot exists, the process proceeds to step S72, and the object data is read from the storage area. Thereafter, the process proceeds to step S34 in FIG.

上記以外の処理は(ケースX1)の場合と同様である。   Processing other than the above is the same as in (Case X1).

(ケースX1)〜(ケースX3)のそれぞれの場合において、以上のステップS24〜ステップS34の処理を実行することにより、ステップS22で得られた発生位置データの集合から、参照結果としてのオブジェクトデータが得られたので、図17のステップS51へ進み、参照処理部4は参照ログテーブル13の参照時刻「Time7」の参照数の数を1つ減ずる。   In each case of (Case X1) to (Case X3), by executing the processing of Step S24 to Step S34 described above, object data as a reference result is obtained from the set of generation position data obtained in Step S22. Since it is obtained, the process proceeds to step S51 in FIG. 17, and the reference processing unit 4 decreases the number of references of the reference time “Time7” in the reference log table 13 by one.

このとき参照時刻「Time7」の参照数が「0」になったときにはステップS53へ進み、参照数が「1」以上のときには処理は終了する。ステップS53以降の処理は、バージョンデータ管理部5で行われる。   At this time, when the reference number of the reference time “Time7” becomes “0”, the process proceeds to step S53, and when the reference number is “1” or more, the process ends. The processing after step S53 is performed by the version data management unit 5.

ステップS53では、参照ログテーブル13から参照数が「0」となったレコードを削除する。その後、参照ログテーブル13中で現在最も古い参照時刻を取得し、当該参照時刻と、更新ログテーブル11内の更新時刻とを比較する。更新ログテーブル11内に、当該参照時刻より以前の更新時刻のレコードが存在する場合には、ステップS55へ進み、存在しない場合には処理を終了する。   In step S53, the record with the reference number “0” is deleted from the reference log table 13. Thereafter, the oldest reference time in the reference log table 13 is acquired, and the reference time is compared with the update time in the update log table 11. If there is a record with an update time earlier than the reference time in the update log table 11, the process proceeds to step S55, and if not, the process ends.

例えば、図5から、参照時刻「Time7」の参照数が「0」となったとき(時刻「Time9」)、すなわち、参照処理QUERY3,QUERY4が終了したとき、参照ログテーブル11内で最も古い参照時刻は「Time9」である。このとき、更新ログテーブル11は、図8に示す状態である。この場合、ステップS54において、更新時刻「Time8」の更新ログが検知される。そして、ステップS55では、図12のバージョンデータテーブル12から更新時刻「Time8」のバージョンデータ201を削除するとともに、更新ログテーブル11から更新時刻「Time8」の更新ログを削除する。   For example, from FIG. 5, when the reference number of the reference time “Time7” becomes “0” (time “Time9”), that is, when the reference processing QUERY3 and QUERY4 are completed, the oldest reference in the reference log table 11 The time is “Time9”. At this time, the update log table 11 is in the state shown in FIG. In this case, in step S54, an update log at the update time “Time8” is detected. In step S55, the version data 201 at the update time “Time8” is deleted from the version data table 12 in FIG. 12, and the update log at the update time “Time8” is deleted from the update log table 11.

次に、ステップS56では、バージョンデータ管理部5は、ステップS55で削除したバージョンデータ中の「OldPOID」に対応する、オブジェクトデータ記憶部23内の記憶エリアを解放する(空きの記憶エリアとする)。 例えば、ステップS55において、図12の更新時刻「Time8」のバージョンデータ201が削除された場合、「OldPOID」は「POID5」であるから、ステップS56において、オブジェクトデータ記憶部23内の「POID5」に対応する記憶エリアが解放されて、「POID5」に対応する記憶エリアは空き記憶エリアとなる。 なお、図17では、不要となった更新ログデータとバージョンデータを削除してから(ステップS55)、オブジェクトデータ記憶部23の記憶エリアの開放(ステップS56)をおこなっているが、先に、ステップS56を行った後に、ステップS55の処理を行うようにしてもよい。   Next, in step S56, the version data management unit 5 releases the storage area in the object data storage unit 23 corresponding to “OldPOID” in the version data deleted in step S55 (set as an empty storage area). . For example, when the version data 201 of the update time “Time8” in FIG. 12 is deleted in step S55, “OldPOID” is “POID5”, and therefore in step S56, “POID5” in the object data storage unit 23 is set. The corresponding storage area is released, and the storage area corresponding to “POID5” becomes a free storage area. In FIG. 17, the update log data and version data that are no longer necessary are deleted (step S55), and the storage area of the object data storage unit 23 is released (step S56). After performing S56, the process of step S55 may be performed.

次に、図5の参照処理QUERY4の参照処理動作を例にとり、図15〜図17に示すフローチャートを参照して、図1の情報管理装置1の参照処理動作について説明する。なお、ここでは、前述の図5の参照処理QUERY3の参照処理動作と異なる部分について説明する。参照処理QUERY4は、“ディスク”を含むオブジェクトデータを取り出す参照処理である。参照処理QUERY4は、図5に示すように、参照処理QUERY3と同じ時刻に開始され、同じ時刻にコミットされて終了するものとする。   Next, referring to the flowcharts shown in FIGS. 15 to 17, the reference processing operation of the information management apparatus 1 in FIG. 1 will be described with reference to the reference processing operation in the reference process QUERY 4 in FIG. 5 as an example. Here, a description will be given of parts different from the reference processing operation of the reference processing QUERY3 of FIG. The reference process QUERY 4 is a reference process for extracting object data including “disk”. As illustrated in FIG. 5, the reference process QUERY 4 is started at the same time as the reference process QUERY 3 and is committed and ended at the same time.

図5からも明らかなように、前述の参照処理QUERY3の場合と同様、参照処理QUERY4の参照要求を受けた時点では、継続中の更新処理は存在しない。オブジェクトデータ記憶部23内のオブジェクトデータは全てコミットされた状態である。また、更新ログテーブル11にはレコードが存在しない。参照ログテーブル13には、図18に示すように、時刻「Time7」に開始された参照処理QUERY1に対応する参照ログのレコードが記録されている。   As is clear from FIG. 5, as in the case of the reference process QUERY3 described above, there is no ongoing update process when a reference request for the reference process QUERY4 is received. All object data in the object data storage unit 23 is committed. In addition, there is no record in the update log table 11. In the reference log table 13, as shown in FIG. 18, a record of the reference log corresponding to the reference process QUERY1 started at time “Time7” is recorded.

図15のステップS21で、端末TE1から送信された「“ディスク”を含むオブジェクトデータを取り出す」旨の参照要求メッセージが情報管理装置1の参照処理部4で受け取られると、参照処理部4は、索引データ記憶部21にアクセスして、索引データ中の「語彙」欄の“ディスク”に対応付けて記憶されている発生位置テーブルから発生位置データの集合を得る(ステップS22)。   In step S21 of FIG. 15, when the reference processing message transmitted from the terminal TE1 and indicating that “object data including“ disk ”is extracted” is received by the reference processing unit 4 of the information management device 1, the reference processing unit 4 The index data storage unit 21 is accessed, and a set of generated position data is obtained from the generated position table stored in association with “disk” in the “vocabulary” column in the index data (step S22).

更新処理TXN2開始前に、参照処理部4がデータベース20にアクセスする場合(ケースX1)は、前述の参照処理QUERY3の場合と同様である。更新処理TXN2が開始されているが、コミットはされていないときに、参照処理部4がデータベース20にアクセスする場合(ケースX2)、ステップS22では、図10に示した索引データ中の発生位置データ102は無視される。「更新時刻」欄が空欄(あるいは「NULL」)となっているからである。   When the reference processing unit 4 accesses the database 20 before starting the update process TXN2 (Case X1), it is the same as the case of the reference process QUERY3 described above. If the reference processing unit 4 accesses the database 20 when the update process TXN2 is started but not committed (case X2), in step S22, the generated position data in the index data shown in FIG. 102 is ignored. This is because the “update time” column is blank (or “NULL”).

更新処理TXN2による更新がコミットされた後に参照処理部4がデータベース20にアクセスする場合(ケースX3)には、ステップS22では、図13に示した索引データ中の発生位置データ102が得られる。発生位置データ102の「確認要否」欄は「要」、「削除挿入」欄は「挿」であるから、図16のステップS61、ステップS63へ進む。発生位置データ102の「更新時刻」は「Time8」であり、これより前に開始された更新処理QUERY3やQUERY4が存在するから、ステップS65へ進み、発生位置データ102内の論理オブジェクトID「LOID5」に対するバージョンデータ201を取得し、ステップS67へ進む。ステップS67では、当該バージョンデータに含まれる更新時刻「Time8」が、現在の参照処理の開始時に取得した時刻(参照時刻「Time7」)よりも後であるから、ステップS70へ進み、当該バージョンデータ201から「OldPOID」を取出す。その後の処理は、前述同様である。   When the reference processing unit 4 accesses the database 20 after the update by the update process TXN2 is committed (case X3), the generation position data 102 in the index data shown in FIG. 13 is obtained in step S22. Since the “confirmation necessity” column of the occurrence position data 102 is “necessary” and the “delete insertion” column is “insertion”, the process proceeds to step S61 and step S63 in FIG. The “update time” of the occurrence position data 102 is “Time8”, and update processing QUERY3 and QUERY4 started before this exist, so the process proceeds to step S65, and the logical object ID “LOID5” in the occurrence position data 102 is present. Version data 201 for is acquired, and the process proceeds to step S67. In step S67, the update time “Time8” included in the version data is later than the time acquired at the start of the current reference process (reference time “Time7”). Remove “OldPOID” from The subsequent processing is the same as described above.

次に、図5の参照処理QUERY2の参照処理動作を例にとり、図15〜図17に示すフローチャートを参照して、図1の情報管理装置1の参照処理動作について説明する。なお、ここでは、前述の図5の参照処理QUERY3の参照処理動作と異なる部分について説明する。参照処理QUERY2は、“メモリ”を含むオブジェクトデータを取り出す参照処理である。参照処理QUERY2は、図5に示すように、更新処理TXN2終了後(コミット後)の時刻「Time9」に開始する。また、参照処理QUERY2開始時には、参照処理QUERY3、4も処理継続中である。   Next, the reference processing operation of the information management apparatus 1 in FIG. 1 will be described with reference to the flowcharts shown in FIGS. 15 to 17 by taking the reference processing operation of the reference processing QUERY2 in FIG. 5 as an example. Here, a description will be given of parts different from the reference processing operation of the reference processing QUERY3 of FIG. The reference process QUERY2 is a reference process for extracting object data including “memory”. As illustrated in FIG. 5, the reference process QUERY2 starts at time “Time9” after the update process TXN2 ends (after commit). At the start of the reference process QUERY2, the reference processes QUERY3 and 4 are also being processed.

更新処理TXN2による更新がコミットされた後は、オブジェクトデータ記憶部23は図9に示した状態であり、索引データ記憶部21は図13に示した状態であり、マップテーブル記憶部22の状態は図14に示した状態である。また、バージョンデータテーブル12には、図12に示したように、更新処理TXN2による更新(更新時刻「Time8」)に関するレコード201が記録されている。この場合、ステップS22では、図13に示した索引データから、発生位置データ101を含む発生位置データの集合を得る。   After the update by the update process TXN2 is committed, the object data storage unit 23 is in the state shown in FIG. 9, the index data storage unit 21 is in the state shown in FIG. 13, and the state of the map table storage unit 22 is This is the state shown in FIG. Further, as shown in FIG. 12, the version data table 12 records a record 201 related to the update (update time “Time 8”) by the update process TXN2. In this case, in step S22, a set of generated position data including the generated position data 101 is obtained from the index data shown in FIG.

得られた発生位置データのそれぞれについて、ステップS24〜ステップS33の処理を繰り返す(ステップS23〜ステップS34)。すなわち、ステップS24では、発生位置データ内の「確認要否」欄をチェックする。発生位置データ101は、図13からも明らかなように、「確認要否」欄は「要」となっている。この場合には、図16のステップS61へ進む。   The processing of step S24 to step S33 is repeated for each of the obtained generation position data (step S23 to step S34). That is, in step S24, the “confirmation necessity” column in the generated position data is checked. As is clear from FIG. 13, the occurrence position data 101 is “necessary” in the “necessity of confirmation” column. In this case, the process proceeds to step S61 in FIG.

ステップS25では、発生位置データ101の「削除挿入」欄が「削」となっているので、ステップS62へ進む。処理対象の発生位置データ101の「更新時刻」欄の更新時刻より前に開始された参照処理がまだ継続中であるから、ステップS65へ進む。   In step S25, since the “deletion / insertion” field of the generated position data 101 is “cut”, the process proceeds to step S62. Since the reference process started before the update time in the “update time” column of the generation position data 101 to be processed is still continuing, the process proceeds to step S65.

現在処理対象の発生位置データ101に含まれる論理オブジェクトID「LOID5」に対応するバージョンデータ201がバージョンデータテーブル12内に存在し、当該バージョンデータ201の更新時刻「Time8」が参照時刻「Time9」より以前であることからステップS67、S69へと進む。ステップS69では、バージョンデータテーブル12のレコード201からNewPOID「POID21」を取り出す。そして、ステップS71へ進み、得られたPOIDに対応するオブジェクトデータ記憶部23内の記憶エリアに、処理対象の発生位置データ101で指定されているスロットID「SLOT0」をもつスロットが存在するかを確認する。この場合、「POID21」の記憶エリアは図9に示すように、スロットID「SLOT0」のスロットは存在しないので(“メモリ”を削除する更新がコミットされているので)、図15のステップS34へ進む。   Version data 201 corresponding to the logical object ID “LOID5” included in the generation position data 101 that is currently processed exists in the version data table 12, and the update time “Time8” of the version data 201 is from the reference time “Time9”. Since it is before, it progresses to step S67, S69. In step S69, NewPOID “POID21” is extracted from the record 201 of the version data table 12. Then, the process proceeds to step S71, and whether there is a slot having the slot ID “SLOT0” specified in the generation position data 101 to be processed in the storage area in the object data storage unit 23 corresponding to the obtained POID. Check. In this case, as shown in FIG. 9, the storage area of “POID21” has no slot with the slot ID “SLOT0” (since the update to delete “memory” has been committed), so the process proceeds to step S34 in FIG. move on.

以上の更新、参照処理をまとめると、次のようになる。   The above update and reference processing is summarized as follows.

オブジェクトデータの更新処理では、まず、更新開始時の時刻(更新時刻)を取得する。更新対象のオブジェクトデータの記憶エリアとは別の記憶エリアに当該更新対象のオブジェクトデータの複製を格納し、当該複製の記憶エリア上で更新する。そして、更新確定後(コミット後)には、更新時刻と、更新対象のオブジェクトデータのLOID(論理オブジェクトID)と更新前のオブジェクトデータの記憶エリアのアドレスを表すPOID(物理オブジェクトID)と更新後のオブジェクトデータの記憶エリアのアドレスを表すPOIDとを1組とするバージョンデータを格納しておく。   In the update process of object data, first, the update start time (update time) is acquired. A copy of the object data to be updated is stored in a storage area different from the storage area of the object data to be updated, and is updated on the storage area of the copy. After the update is confirmed (after commit), the update time, the LOID (logical object ID) of the object data to be updated, the POID (physical object ID) indicating the address of the storage area of the object data before the update, and the post-update Version data is stored as a set of POIDs representing addresses of storage areas of the object data.

更新対象のオブジェクトデータが、更新処理開始前に開始され、更新処理終了後(コミット後)も継続している参照処理(第1の参照処理)の参照対象となったときには、当該第1の参照処理には更新前の状態をみせ、更新処理終了後に開始された参照処理(第2の参照処理)の参照対象となったときには更新後の状態をみせるよう、更新対象であったオブジェクトデータを切り替えるために、バージョンデータが参照される。   When the object data to be updated is the reference target of the reference process (first reference process) that is started before the start of the update process and continues even after the end of the update process (after commit), the first reference The process shows the state before update, and when it becomes the reference target of the reference process (second reference process) started after the end of the update process, the object data that was the update target is switched so that the state after the update is shown Therefore, the version data is referred to.

索引データは、語彙、数値、記号などの索引語と、当該索引語を含む要素データおよび当該要素データをもつオブジェクトデータを特定するための発生位置データ(当該索引語の発生位置をLOIDとスロットIDとで表している)とを対応付けるものである。オブジェクトデータの更新処理により追加(新規追加も含む)あるいは削除される要素データの発生位置データには、当該更新処理の更新時刻も含まれている。また、発生位置データが上記第1の参照処理と上記第2の参照処理とにアクセスされたときには、第1の参照処理には更新前のオブジェクトデータのPOIDを提供し、第2の参照処理には更新後のオブジェクトデータのPOIDを提供するための上記バージョンデータへの参照することとなるが、その結果、所望の語彙を含むスロットが更新前のオブジェクトデータには含まれ、更新後のオブジェクトデータには含まれていない、あるいは、その逆の場合もありえる。そこで、必ず所望の語彙を含むオブジェクトデータが得られるように、得られたPOIDに対応する記憶エリア内に当該発生位置データにて指定されたスロットIDのスロットがあるかの確認を指示するフラグ情報(「確認要否」欄の情報)が当該発生位置データに含まれている。   The index data includes index words such as vocabulary, numerical values, symbols, etc., element data including the index words, and generation position data for specifying object data having the element data (the generation position of the index word is LOID and slot ID) ). The generation position data of the element data added (including new addition) or deleted by the update process of the object data includes the update time of the update process. When the generated position data is accessed in the first reference process and the second reference process, the POID of the object data before update is provided to the first reference process, and the second reference process is used for the second reference process. Refers to the above version data for providing the POID of the updated object data. As a result, the slot containing the desired vocabulary is included in the object data before update, and the object data after update May not be included, or vice versa. Accordingly, flag information for instructing whether or not there is a slot having the slot ID specified by the generated position data in the storage area corresponding to the obtained POID so that object data including a desired vocabulary is always obtained. (Information in the “necessity of confirmation” column) is included in the occurrence position data.

参照処理の際にはまず、参照処理開始時の時刻(参照時刻)を取得する。索引データを参照して、所望の語彙を含む要素データの発生位置データの集合を求める。 得られた各発生位置データについて、当該発生位置データに含まれる更新時刻が参照時刻より後あるいは「NUll」であるときには更新前のオブジェクトデータが格納されているPOIDが提供され、該発生位置データに含まれる更新時刻が参照時刻より前であるときには更新後のオブジェクトデータが格納されているPOIDが提供される。   In the reference process, first, the time (reference time) at the start of the reference process is acquired. With reference to the index data, a set of generation position data of element data including a desired vocabulary is obtained. For each occurrence position data obtained, when the update time included in the occurrence position data is later than the reference time or “NUll”, a POID storing object data before update is provided, and the occurrence position data is included in the occurrence position data. When the included update time is before the reference time, a POID in which the updated object data is stored is provided.

得られた発生位置データの「確認要否」欄に「要」が記録された発生位置データについては、得られたPOIDに対応する記憶エリアに当該発生位置データで指定されているスロットIDのスロットが実際に存在するか否かを確認し、存在するときには、当該POIDの記憶エリアからオブジェクトデータを読み出す。   For occurrence position data in which “necessary” is recorded in the “necessity of confirmation” column of the obtained occurrence position data, the slot of the slot ID specified by the occurrence position data is stored in the storage area corresponding to the obtained POID. Is actually present, and if it exists, the object data is read from the storage area of the POID.

その結果、図5の参照処理Query2は、更新処理TXN2での更新がコミットされた後に開始された参照処理であるから、論理オブジェクトID「LOID5」の更新前の物理オブジェクトID「POID5」のオブジェクトデータ(“メモリ”,“データベース”)は参照できない。また、参照処理Query3やQuery4では、これらの参照要求の発生時前に既にコミットされている更新処理TXN1の更新結果までが参照対象となり、これら参照処理中に発生しコミットされた更新処理TXN2の更新結果は参照対象とならない。   As a result, since the reference process Query2 in FIG. 5 is a reference process started after the update in the update process TXN2 is committed, the object data of the physical object ID “POID5” before the logical object ID “LOID5” is updated. ("Memory", "Database") cannot be referenced. Also, in the reference processing Query3 and Query4, the update result of the update processing TXN1 that has already been committed before the occurrence of these reference requests becomes the reference target, and the update of the update processing TXN2 that has occurred and committed during these reference processing is updated. Results are not subject to reference.

このように、上記実施形態では、更新処理開始前に開始された参照処理はもちろんのこと、その中でも特に、更新処理終了後(コミット後)も継続している参照処理(第1の参照処理)に対しては更新前の状態を提供し、更新処理終了後に開始された参照処理(第2の参照処理)に対しては更新後の状態を提供するといった、更新対象であったオブジェクトデータの切り替えを容易に行うことができる。すなわち、参照処理中にデータベース内の更新がなされたとしても、当該参照処理に対しては、参照要求時のデータベース内の状態を維持することができるのである。   As described above, in the above-described embodiment, not only the reference process started before the start of the update process, but also the reference process that continues even after the end of the update process (after the commit) (first reference process). For example, the state before update is provided and the state after update is provided for the reference process (second reference process) started after the end of the update process. Can be easily performed. In other words, even if the database is updated during the reference process, the state in the database at the time of the reference request can be maintained for the reference process.

本発明の実施形態に係る情報管理装置の構成例を示した図。The figure which showed the structural example of the information management apparatus which concerns on embodiment of this invention. オブジェクトデータ記憶部におけるオブジェクトデータの記憶例を模式的に示した図。The figure which showed typically the example of a memory | storage of the object data in an object data storage part. 索引データ記憶部に記憶される索引データの記憶例を模式的に示した図。The figure which showed typically the memory | storage example of the index data memorize | stored in an index data memory | storage part. マップテーブル記憶部に記憶されているマップテーブルの一例を示した図。The figure which showed an example of the map table memorize | stored in the map table memory | storage part. 更新処理と参照処理の同時実行制御を説明するための図。The figure for demonstrating simultaneous execution control of an update process and a reference process. 更新処理動作を説明するためのフローチャート。The flowchart for demonstrating update process operation | movement. 参照ログテーブルの一例を示した図。The figure which showed an example of the reference log table. 更新ログテーブルの一例を示した図。The figure which showed an example of the update log table. 更新後のオブジェクトデータ記憶部の様子を示した図。The figure which showed the mode of the object data storage part after an update. 更新後の索引データ記憶部の様子を示した図。The figure which showed the mode of the index data storage part after an update. コミット処理動作を説明するためのフローチャート。10 is a flowchart for explaining a commit processing operation. バージョンデータテーブルの一例を示した図。The figure which showed an example of the version data table. コミット後の索引データ記憶部の様子を示した図。The figure which showed the mode of the index data memory | storage part after a commit. コミット後のマップテーブルを示した図。The figure which showed the map table after a commit. 参照処理動作を説明するためのフローチャート。The flowchart for demonstrating reference processing operation | movement. 参照処理動作を説明するためのフローチャート。The flowchart for demonstrating reference processing operation | movement. 参照処理動作を説明するためのフローチャート。The flowchart for demonstrating reference processing operation | movement. 参照処理QUERY3の参照要求を受けた時点における参照ログテーブルを示した図。The figure which showed the reference log table at the time of receiving the reference request of reference processing QUERY3.

符号の説明Explanation of symbols

1…情報管理装置、2…更新処理部、3…コミット処理部、4…参照処理部、5…バージョンデータ管理部、6…時刻管理部、10…テーブル記憶部、11…更新ログテーブル、12…バージョンデータテーブル、13…参照ログテーブル、20…データベース、21…索引データ記憶部、22…マップテーブル記憶部、23…オブジェクトデータ記憶部、TE1、TE2…端末。   DESCRIPTION OF SYMBOLS 1 ... Information management apparatus, 2 ... Update processing part, 3 ... Commit processing part, 4 ... Reference processing part, 5 ... Version data management part, 6 ... Time management part, 10 ... Table storage part, 11 ... Update log table, 12 ... version data table, 13 ... reference log table, 20 ... database, 21 ... index data storage unit, 22 ... map table storage unit, 23 ... object data storage unit, TE1, TE2 ... terminal.

Claims (10)

それぞれが複数の要素データを含むとともに識別子の与えられている複数のオブジェクトデータと、前記複数のオブジェクトデータのうち更新対象となったオブジェクトデータについて、更新前の当該オブジェクトデータが記憶されている記憶エリアとは別の記憶エリアに、更新中またはコミット後の当該オブジェクトデータを記憶する第1の記憶手段と、
1つのオブジェクトデータの更新がコミットされる度に「1」だけ増加される時刻を記憶及び更新する時刻管理手段と、
(x)複数の索引語と、(y)各索引語に対応し、当該索引語を含む要素データをもつオブジェクトデータの識別子と、当該オブジェクトデータ中の当該索引語を含む要素データの発生位置情報と、当該要素データが更新対象となったときに、前記発生位置情報に対応する記憶エリアに当該要素データが記憶されているかを調べる必要があることを示す「要」となり、当該発生位置情報に対応する記憶エリアに当該要素データが記憶されているかを調べる必要のないときには「否」となる確認要否情報と、当該索引語を含む要素データが「削除予定」であるのか「挿入予定」であるのかを示す情報と、当該索引語を含む要素データが更新中であるときには更新中であることを示し、更新がコミットされたときにはその更新の開始されたときの前記時刻である更新時刻とを含む発生位置データとを記憶する第2の記憶手段と、
更新がコミット済みのオブジェクトデータについて、その識別子と、前記更新時刻と、更新前の当該オブジェクトデータが記憶されている記憶エリアのIDと、コミット済みのオブジェクトデータが記憶されている記憶エリアのIDとを含むバージョンデータを記憶する第3の記憶手段と、
各オブジェクトデータについて、その識別子と、コミット済みのなかで最新のオブジェクトデータが記憶されている記憶エリアのIDとを含むマップテーブルを記憶する第4の記憶手段と、
検索要求を受け付ける手段と、
前記第2の記憶手段から、前記検索要求で指定された索引語に対応する発生位置データの集合を選択し、
(A)前記発生位置データの集合のうち、前記確認要否情報が「要」であり、かつ「削除予定」であり、かつ前記更新時刻が前記検索要求を受け付けたときの前記時刻である参照時刻以後の発生位置データについては、当該発生位置データ中の前記識別子に対応する更新前のオブジェクトデータの記憶エリアのIDを前記バージョンデータから取得し、
(B)前記発生位置データの集合のうち、前記確認要否情報が「要」であり、かつ「挿入予定」であり、かつ前記更新時刻が前記参照時刻以前の発生位置データについては、前記マップテーブルから当該発生位置データ中の前記識別子に対応する記憶エリアのIDを取得する、または前記バージョンデータから当該識別子に対応するコミット済みのオブジェクトデータの記憶エリアのIDを取得する検索手段と、
を具備したことを特徴とする同時実行制御装置。
A storage area in which object data before update is stored for a plurality of object data each including a plurality of element data and given an identifier, and object data to be updated among the plurality of object data A first storage means for storing the object data being updated or committed in a storage area different from the storage area;
Time management means for storing and updating a time incremented by “1” each time an update of one object data is committed;
(X) a plurality of index words, (y) an identifier of object data corresponding to each index word and having element data including the index word, and occurrence position information of element data including the index word in the object data If, when the element data becomes updated, becomes "necessary" to indicate that the element data in the storage area is necessary to examine whether the stored corresponding to the generated position information, to the occurrence position information When it is not necessary to check whether or not the corresponding element data is stored in the corresponding storage area, the confirmation necessity information that is “No” and whether the element data including the index word is “to be deleted” or “to be inserted” Information indicating whether or not the element data containing the index word is being updated, indicating that it is being updated, and when the update is committed, Second storage means for storing the generated position data including the update time is serial time,
For object data that has been committed to update, the identifier, the update time, the ID of the storage area that stores the object data before the update, and the ID of the storage area that stores the committed object data Third storage means for storing version data including:
For each object data, a fourth storage means for storing a map table including an identifier thereof and an ID of a storage area in which the latest object data among the committed object data is stored;
Means for accepting search requests;
From the second storage means, select a set of occurrence position data corresponding to the index word specified in the search request,
(A) In the set of generated position data, the confirmation necessity information is “necessary” and “to be deleted”, and the update time is the time when the search request is accepted For the occurrence position data after the time, the ID of the storage area of the object data before update corresponding to the identifier in the occurrence position data is acquired from the version data,
(B) For the occurrence position data in which the confirmation necessity information is “necessary” and “scheduled to be inserted” and the update time is before the reference time in the set of occurrence position data, the map search means for obtaining the ID of the storage area of committed object data to retrieve the ID of the storage area, or from the version data corresponding to the identifier corresponding from the table to the identifier in the generated position data,
A concurrent execution control device comprising:
前記検索手段は、前記発生位置データの集合のうち、前記確認要否情報が「否」である発生位置データについては、前記マップテーブルから、当該発生位置データ中の前記識別子に対応する記憶エリアのIDを取得する請求項1記載の同時実行制御装置。   The search means, for the occurrence position data whose confirmation necessity information is “No” in the set of occurrence position data, from the map table, in the storage area corresponding to the identifier in the occurrence position data. The simultaneous execution control apparatus according to claim 1, wherein the ID is acquired. 前記検索手段は、
前記発生位置データの集合のうち、「挿入予定」でありかつ前記確認要否情報が「要」の発生位置データについて、当該発生位置データ中の前記更新時刻よりも前に受け付けられた検索要求が無い場合、当該発生位置データ中の前記確認要否情報を「否」に更新し、前記マップテーブルから当該発生位置データ中の前記識別子に対応する記憶エリアのIDを取得する請求項1記載の同時実行制御装置。
The search means includes
For the occurrence position data that is “scheduled to be inserted” and the confirmation necessity information is “necessary” in the set of occurrence position data, a search request received before the update time in the occurrence position data is The simultaneous confirmation according to claim 1, wherein if there is not, the confirmation necessity information in the generated position data is updated to "No", and the ID of the storage area corresponding to the identifier in the generated position data is acquired from the map table. Execution control device.
更新のコミットされたオブジェクトデータの前記更新時刻を含む更新ログを記憶する第5の記憶手段と、
前記更新ログ中の前記更新時刻以前に受け付けられた検索要求が存在しない場合には、当該更新ログと、当該更新時刻を含むバージョンデータと、当該バージョンデータ中の更新前の記憶エリアのIDに対応する前記第1の記憶手段中の記憶エリアを空にする削除手段と、
をさらに含む請求項1記載の同時実行制御装置。
Fifth storage means for storing an update log including the update time of the object data to which the update is committed;
When there is no search request accepted before the update time in the update log, it corresponds to the update log, the version data including the update time, and the ID of the storage area before the update in the version data Deleting means for emptying the storage area in the first storage means;
The concurrency control device according to claim 1, further comprising:
それぞれが複数の要素データを含むとともに識別子の与えられている複数のオブジェクトデータと、前記複数のオブジェクトデータのうち更新対象となったオブジェクトデータについて、更新前の当該オブジェクトデータが記憶されている記憶エリアとは別の記憶エリアに、更新中またはコミット後の当該オブジェクトデータを記憶する第1の記憶手段と、
1つのオブジェクトデータの更新がコミットされる度に「1」だけ増加される時刻を記憶及び更新する時刻管理手段と、
(x)複数の索引語と、(y)各索引語に対応し、当該索引語を含む要素データをもつオブジェクトデータの識別子と、当該オブジェクトデータ中の当該索引語を含む要素データの発生位置情報と、当該要素データが更新対象となったときに、前記発生位置情報に対応する記憶エリアに当該要素データが記憶されているかを調べる必要があることを示す「要」となり、当該発生位置情報に対応する記憶エリアに当該要素データが記憶されているかを調べる必要のないときには「否」となる確認要否情報と,当該索引語を含む要素データが「削除予定」であるのか「挿入予定」であるのかを示す情報と、当該索引語を含む要素データが更新中であるときには更新中であることを示し、更新がコミットされたときにはその更新の開始されたときの前記時刻である更新時刻とを含む発生位置データとを記憶する第2の記憶手段と、
更新がコミットされているオブジェクトデータについて、その識別子と、前記更新時刻と、更新前の当該オブジェクトデータが記憶されている記憶エリアのIDと、更新後の当該オブジェクトデータが記憶されている記憶エリアのIDとを含むバージョンデータを記憶する第3の記憶手段と、
各オブジェクトデータについて、その識別子と、コミット済みのなかで最新のオブジェクトデータが記憶されている記憶エリアのIDとを含むマップテーブルを記憶する第4の記憶手段と、
検索手段と、
を含む同時実行制御装置における同時実行制御方法であって、
前記検索手段が検索要求を受け付けるステップと、
前記検索手段が、前記第2の記憶手段から、前記検索要求で指定された索引語に対応する発生位置データの集合を選択するステップと、
前記発生位置データの集合のうち、前記確認要否情報が「要」であり、かつ「削除予定」であり、かつ前記更新時刻が前記検索要求を受け付けたときの前記時刻である参照時刻以後の発生位置データについては、前記検索手段が、当該発生位置データ中の前記識別子に対応する更新前のオブジェクトデータの記憶エリアのIDを前記バージョンデータから取得するステップと、
前記発生位置データの集合のうち、前記確認要否情報が「要」であり、かつ「挿入予定」であり、かつ前記更新時刻が前記参照時刻以前の発生位置データについては、前記検索手段が、前記マップテーブルから当該発生位置データ中の前記識別子に対応する記憶エリアのIDを取得する、または、前記バージョンデータから当該識別子に対応する更新後のオブジェクトデータの記憶エリアのIDを取得するステップと、
を含むことを特徴とする同時実行制御方法。
A storage area in which object data before update is stored for a plurality of object data each including a plurality of element data and given an identifier, and object data to be updated among the plurality of object data A first storage means for storing the object data being updated or committed in a storage area different from the storage area;
Time management means for storing and updating a time incremented by “1” each time an update of one object data is committed;
(X) a plurality of index words, (y) an identifier of object data corresponding to each index word and having element data including the index word, and occurrence position information of element data including the index word in the object data If, when the element data becomes updated, becomes "necessary" to indicate that the element data in the storage area is necessary to examine whether the stored corresponding to the generated position information, to the occurrence position information When it is not necessary to check whether or not the corresponding element data is stored in the corresponding storage area, whether the element data including the index word is “to be deleted” or “to be inserted”. Information indicating whether or not the element data containing the index word is being updated , indicating that it is being updated, and when the update is committed, before the start of the update Second storage means for storing generated position data including an update time that is a recording time;
For object data that has been committed to update, the identifier, the update time, the ID of the storage area that stores the object data before update, and the storage area that stores the object data after update Third storage means for storing version data including an ID;
For each object data, a fourth storage means for storing a map table including an identifier thereof and an ID of a storage area in which the latest object data among the committed object data is stored;
Search means;
A concurrent execution control method in a concurrent execution control device comprising:
The search means accepting a search request;
The search means selecting a set of occurrence position data corresponding to the index word specified in the search request from the second storage means;
Of the set of occurrence position data, the confirmation necessity information is “necessary” and “scheduled to be deleted”, and the update time is after the reference time which is the time when the search request is received. For the generated position data, the search means acquires from the version data the ID of the storage area of the object data before update corresponding to the identifier in the generated position data;
Of the set of occurrence position data, for the occurrence position data whose confirmation necessity information is “necessary” and “scheduled to be inserted” and whose update time is before the reference time, the search means includes: obtain the ID of the storage area corresponding to the identifier of the generation position in the data from said map table, or acquiring the ID of the storage area of the object data after updating corresponding to the identifier from the version data,
A concurrent execution control method comprising:
前記発生位置データの集合のうち、前記確認要否情報が「否」である発生位置データについては、前記検索手段が、前記マップテーブルから、当該発生位置データ中の前記識別子に対応する記憶エリアのIDを取得するステップをさらに含む請求項5記載の同時実行制御方法。   For the occurrence position data in which the confirmation necessity information is “No” in the set of occurrence position data, the search means stores, from the map table, the storage area corresponding to the identifier in the occurrence position data. 6. The simultaneous execution control method according to claim 5, further comprising a step of acquiring an ID. それぞれが複数の要素データを含むとともに識別子の与えられている複数のオブジェクトデータと、前記複数のオブジェクトデータのうち更新対象となったオブジェクトデータについて、更新前の当該オブジェクトデータが記憶されている記憶エリアとは別の記憶エリアに、更新中または更新コミット後の当該オブジェクトデータを記憶する第1の記憶手段と、
1つのオブジェクトデータの更新がコミットされる度に「1」だけ増加される時刻を記憶及び更新する時刻管理手段と、
(x)複数の索引語と、(y)各索引語に対応し、当該索引語を含む要素データをもつオブジェクトデータの識別子と、当該オブジェクトデータ中の当該索引語を含む要素データの発生位置情報と、当該索引語を含む要素データが有効か否かを示すフラグ情報と、更新コミット済みの有効な要素データの場合にはその更新の開始されたときの前記時刻である更新時刻と、を含む発生位置データとを記憶する第2の記憶手段と、
更新コミット済みのオブジェクトデータについて、その識別子と、前記更新時刻と、更新前の当該オブジェクトデータが記憶されている記憶エリアのIDと、更新コミット済みのオブジェクトデータが記憶されている記憶エリアのIDとを含むバージョンデータとを記憶する第3の記憶手段と、
各オブジェクトデータについて、その識別子と、更新コミット済みのなかで最新のオブジェクトデータが記憶されている記憶エリアのIDとを含むマップテーブルを記憶する第4の記憶手段と、
検索要求を受け付ける手段と、
(A)前記第2の記憶手段から、前記検索要求で指定された索引語に対応する発生位置データの集合を選択し、(B)前記発生位置データの集合のうち、前記フラグ情報が有効を示す発生位置データについては、前記マップテーブルから、当該発生位置データ中の前記識別子に対応する記憶エリアのIDを取得し、(C)前記発生位置データの集合のうち、前記フラグ情報が有効ではないことを示す発生位置データについては、当該発生位置データ中の前記識別子に対応する前記バージョンデータ中の前記更新時刻と、前記検索要求受け付けたときの前記時刻である参照時刻との比較結果に基づき、当該バージョンデータ中の前記更新前のオブジェクトデータの記憶エリアのIDと前記更新コミット済みのオブジェクトデータの記憶エリアのIDとのうちのいずれか一方を、当該発生位置データ中の前記識別子に対応する記憶エリアのIDとして取得する検索手段と、
を具備したことを特徴とする同時実行制御装置。
A storage area in which object data before update is stored for a plurality of object data each including a plurality of element data and given an identifier, and object data to be updated among the plurality of object data A first storage means for storing the object data during update or after update commit in a storage area different from
Time management means for storing and updating a time incremented by “1” each time an update of one object data is committed;
(X) a plurality of index words, (y) an identifier of object data corresponding to each index word and having element data including the index word, and occurrence position information of element data including the index word in the object data And flag information indicating whether or not the element data including the index word is valid, and, in the case of valid element data that has been updated , the update time that is the time when the update is started Second storage means for storing the generated position data;
For the object data that has been updated , the identifier, the update time, the ID of the storage area that stores the object data before the update, and the ID of the storage area that stores the object data that has been updated Third storage means for storing version data including
For each object data, a fourth storage means for storing a map table including an identifier thereof and an ID of a storage area in which the latest object data is stored among update commits;
Means for accepting search requests;
(A) A set of generated position data corresponding to the index word specified in the search request is selected from the second storage means, and (B) the flag information is valid among the set of generated position data. For the generated position data shown, the ID of the storage area corresponding to the identifier in the generated position data is obtained from the map table , and (C) the flag information is not valid in the set of generated position data. Is generated based on a comparison result between the update time in the version data corresponding to the identifier in the generated position data and a reference time that is the time when the search request is received . , the version storing area of ID and the update committed object data storage area of the object data before the update in data Either one of the ID, and searching means for acquiring the ID of the storage area corresponding to the identifier in the generated position data,
A concurrent execution control device comprising:
各索引語に対応する発生位置データは、当該索引語を含む要素データが「削除予定」であるのか「挿入予定」であるのかを示す情報をさらに含み、
前記検索手段は、前記フラグ情報が有効ではないことを示す発生位置データのうち、(c1)「削除予定」であり、かつ前記更新時刻が前記参照時刻以後の発生位置データについては、前記バージョンデータ中の前記更新前のオブジェクトデータの記憶エリアのIDを取得し、(c2)「挿入予定」でありかつ前記更新時刻が前記参照時刻以前の発生位置データについては、前記バージョンデータ中の前記更新コミット済みのオブジェクトデータの記憶エリアのIDを取得することを特徴とする請求項7記載の同時実行制御装置。
The occurrence position data corresponding to each index word further includes information indicating whether the element data including the index word is “to be deleted” or “to be inserted”,
The search means includes (c1) “occurrence of deletion” among occurrence position data indicating that the flag information is not valid, and the version data for occurrence position data whose update time is after the reference time. ID of the storage area of the object data before the update in (c2) “update schedule” and the update commit in the version data for the occurrence position data whose update time is before the reference time 8. The simultaneous execution control device according to claim 7, wherein the ID of the storage area of the completed object data is acquired.
それぞれが複数の要素データを含むとともに識別子の与えられている複数のオブジェクトデータと、前記複数のオブジェクトデータのうち更新対象となったオブジェクトデータについて、更新前の当該オブジェクトデータが記憶されている記憶エリアとは別の記憶エリアに、更新中または更新コミット後の当該オブジェクトデータを記憶する第1の記憶手段と、
1つのオブジェクトデータの更新がコミットされる度に「1」だけ増加される時刻を記憶及び更新する時刻管理手段と、
(x)複数の索引語と、(y)各索引語に対応し、当該索引語を含む要素データをもつオブジェクトデータの識別子と、当該オブジェクトデータ中の当該索引語を含む要素データの発生位置情報と、当該索引語を含む要素データが有効か否かを示すフラグ情報と、更新コミット済みの有効な要素データの場合にはその更新の開始されたときの前記時刻である更新時刻と、を含む発生位置データとを記憶する第2の記憶手段と、
更新コミット済みのオブジェクトデータについて、その識別子と、前記更新時刻と、更新前の当該オブジェクトデータが記憶されている記憶エリアのIDと、更新コミット済みのオブジェクトデータが記憶されている記憶エリアのIDとを含むバージョンデータとを記憶する第3の記憶手段と、
各オブジェクトデータについて、その識別子と、更新コミット済みでかつ最新のオブジェクトデータが記憶されている記憶エリアのIDとを含むマップテーブルを記憶する第4の記憶手段と、
検索手段と、
を含む同時実行制御装置における同時実行制御方法であって、
前記検索手段が、検索要求を受け付けるステップと、
前記検索手段が、前記第2の記憶手段から、前記検索要求で指定された索引語に対応する発生位置データの集合を選択する選択ステップと、
前記発生位置データの集合のうち、前記フラグ情報が有効を示す発生位置データについては、前記検索手段が、前記マップテーブルから、当該発生位置データ中の前記識別子に対応する記憶エリアのIDを取得する第1の取得ステップと、
前記発生位置データの集合のうち、前記フラグ情報が有効ではないことを示す発生位置データについては、前記検索手段が、当該発生位置データ中の前記識別子に対応する前記バージョンデータ中の前記更新時刻と、前記検索要求受け付けときの前記時刻である参照時刻との比較結果に基づき、当該バージョンデータ中の前記更新前のオブジェクトデータの記憶エリアのIDと前記更新コミット済みのオブジェクトデータの記憶エリアのIDとのうちのいずれか一方を、当該発生位置データ中の前記識別子に対応する記憶エリアのIDとして取得する第2の取得ステップと、
を含む同時実行制御方法。
A storage area in which object data before update is stored for a plurality of object data each including a plurality of element data and given an identifier, and object data to be updated among the plurality of object data A first storage means for storing the object data during update or after update commit in a storage area different from
Time management means for storing and updating a time incremented by “1” each time an update of one object data is committed;
(X) a plurality of index words, (y) an identifier of object data corresponding to each index word and having element data including the index word, and occurrence position information of element data including the index word in the object data And flag information indicating whether or not the element data including the index word is valid, and, in the case of valid element data that has been updated , the update time that is the time when the update is started Second storage means for storing the generated position data;
For the object data that has been updated , the identifier, the update time, the ID of the storage area that stores the object data before the update, and the ID of the storage area that stores the object data that has been updated Third storage means for storing version data including
For each object data, a fourth storage means for storing a map table including its identifier and an ID of a storage area in which update commit has been completed and the latest object data is stored;
Search means;
A concurrent execution control method in a concurrent execution control device comprising:
The search means accepting a search request;
A selection step in which the search means selects a set of occurrence position data corresponding to the index word specified in the search request from the second storage means;
For the generated position data indicating that the flag information is valid in the set of generated position data, the search unit obtains the ID of the storage area corresponding to the identifier in the generated position data from the map table. A first acquisition step;
For the generated position data indicating that the flag information is not valid in the set of generated position data, the search means includes the update time in the version data corresponding to the identifier in the generated position data. , Based on the comparison result with the reference time that is the time when the search request is received, the ID of the storage area of the object data before the update in the version data and the ID of the storage area of the object data for which the update has been committed A second acquisition step of acquiring any one of and as an ID of a storage area corresponding to the identifier in the generated position data;
Concurrent execution control method.
各索引語に対応する発生位置データは、当該索引語を含む要素データが「削除予定」であるのか「挿入予定」であるのかを示す情報をさらに含み、
前記第2の取得ステップは、前記フラグ情報が有効ではないことを示す発生位置データのうち、(c1)「削除予定」であり、かつ前記更新時刻が前記参照時刻以後の発生位置データについては、前記バージョンデータ中の前記更新前のオブジェクトデータの記憶エリアのIDを取得し、(c2)「挿入予定」でありかつ前記更新時刻が前記参照時刻以前の発生位置データについては、前記バージョンデータ中の前記更新コミット済みのオブジェクトデータの記憶エリアのIDを取得することを特徴とする請求項9記載の同時実行制御方法。
The occurrence position data corresponding to each index word further includes information indicating whether the element data including the index word is “to be deleted” or “to be inserted”,
In the second acquisition step, out of occurrence position data indicating that the flag information is not valid, (c1) “deletion schedule” and occurrence position data whose update time is after the reference time The ID of the storage area of the object data before update in the version data is acquired, (c2) For occurrence position data that is “to be inserted” and whose update time is before the reference time , concurrency control method according to claim 9, wherein the acquiring the ID of the storage area of the object data already the update committed.
JP2004044210A 2004-02-20 2004-02-20 Concurrent execution control method and apparatus Expired - Fee Related JP4314126B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004044210A JP4314126B2 (en) 2004-02-20 2004-02-20 Concurrent execution control method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004044210A JP4314126B2 (en) 2004-02-20 2004-02-20 Concurrent execution control method and apparatus

Publications (2)

Publication Number Publication Date
JP2005234945A JP2005234945A (en) 2005-09-02
JP4314126B2 true JP4314126B2 (en) 2009-08-12

Family

ID=35017837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004044210A Expired - Fee Related JP4314126B2 (en) 2004-02-20 2004-02-20 Concurrent execution control method and apparatus

Country Status (1)

Country Link
JP (1) JP4314126B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4432087B2 (en) 2006-12-26 2010-03-17 インターナショナル・ビジネス・マシーンズ・コーポレーション Database update management system, program and method
JP4585579B2 (en) * 2008-04-24 2010-11-24 株式会社日立製作所 Data management method, data management program, and data management apparatus
JP5343399B2 (en) * 2008-05-22 2013-11-13 富士通株式会社 Management program, management method, and management apparatus
JP5377672B2 (en) * 2010-02-15 2013-12-25 東芝ソリューション株式会社 Database management system
JP5464003B2 (en) * 2010-03-26 2014-04-09 富士通株式会社 Database management apparatus and database management program
US10977229B2 (en) * 2013-05-21 2021-04-13 Facebook, Inc. Database sharding with update layer
WO2018069998A1 (en) 2016-10-12 2018-04-19 富士通株式会社 Processing unit size calculation program, processing unit size calculation method, and processing unit size calculation device

Also Published As

Publication number Publication date
JP2005234945A (en) 2005-09-02

Similar Documents

Publication Publication Date Title
AU608872B2 (en) Device for enabling concurrent access of indexed sequential data files
US4914569A (en) Method for concurrent record access, insertion, deletion and alteration using an index tree
US8140495B2 (en) Asynchronous database index maintenance
US7716182B2 (en) Version-controlled cached data store
US8103697B2 (en) Database index key update method and program
US20070118547A1 (en) Efficient index versioning in multi-version databases
JP4101410B2 (en) Time version data storage device
JP2009522677A (en) Method, system, and device for file system dump / restore by node numbering
CN111737331B (en) Transaction consistency processing method and system for database and object storage
JP4314126B2 (en) Concurrent execution control method and apparatus
US7269589B2 (en) Database managing method and system having data backup function and associated programs
US8521789B2 (en) Undrop objects and dependent objects in a database system
CN117194739B (en) Method, electronic equipment and medium for searching hierarchical tree nodes based on hit state
CN110413617B (en) Method for dynamically adjusting hash table group according to size of data volume
JP2675958B2 (en) Information retrieval computer system and method of operating storage device thereof
CN112631741A (en) Transaction processing method, device and storage medium
JPH0844609A (en) Data backup method
JP2980610B2 (en) Transaction management device
CN114385584A (en) Data writing method and data reading method
JP3008500B2 (en) Update record reading mechanism
CN118069648A (en) Method, device, equipment and medium for processing execution plan
KR20240114380A (en) Apparatus and method for indexing media metadata in a vehicle terminal
JPH05120343A (en) Index updating system
JPS6058492B2 (en) Database search method
CN118689910A (en) Vector indexing method, vector indexing device, electronic equipment and computer readable storage medium

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090306

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090518

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4314126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140522

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees