JP4314126B2 - Concurrent execution control method and apparatus - Google Patents
Concurrent execution control method and apparatus Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 205
- 238000013500 data storage Methods 0.000 claims description 57
- 238000012790 confirmation Methods 0.000 claims description 35
- 238000007726 management method Methods 0.000 claims description 24
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 description 95
- 101000801891 Homo sapiens Thioredoxin, mitochondrial Proteins 0.000 description 33
- 102100034795 Thioredoxin, mitochondrial Human genes 0.000 description 33
- 238000003780 insertion Methods 0.000 description 19
- 230000037431 insertion Effects 0.000 description 19
- 238000013523 data management Methods 0.000 description 5
- 101150061874 TXN gene Proteins 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000011112 process operation Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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参照)。
従来、マルチバージョン方式により更新と参照(検索)の同時実行制御を行う場合、更新処理の前後に発生する検索処理のために更新前と更新後のデータベースの状態をそれぞれ保持する必要があり、そのために要する記憶容量が膨大になるという問題点があった。 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
情報管理装置1には、複数の(ここでは、例えば2台の)端末TE1〜TE2が所定のネットワーク等を介して接続され、当該端末からデータ更新やデータ参照やデータコミットなどの要求を受ける。
A plurality of (in this case, for example, two) terminals TE1 to TE2 are connected to the
更新処理部2は、端末からのデータ更新要求を受けてデータベース20にアクセスして、オブジェクトデータや索引データの更新を行う。
In response to a data update request from the terminal, the
コミット処理部3は、端末からのコミット要求を受けて、更新処理部2を介して行った更新内容を確定するための処理を行う。コミットとは、ここでは、更新確定と同義である。
In response to the commit request from the terminal, the
参照処理部4は、端末からの(オブジェクトデータを検索するためのキーワードを含む)データ参照要求を受けて、オブジェクトデータ記憶部23から当該キーワードを含むオブジェクトデータを検索して要求元の端末へ送信する。
The
時刻管理部6は、更新処理終了の度に(コミット処理終了の度に)、「1」だけインクリメントされる時刻を記憶、更新する。
The
テーブル記憶部10には、更新ログテーブル11、バージョンデータテーブル12、参照ログテーブル13が記憶されている。
The
オブジェクトデータ記憶部23には、更新・参照(検索)対象の複数のオブジェクトデータが記憶されている。オブジェクトデータは、論理オブジェクトIDと物理オブジェクトIDにて指定される。論理オブジェクトIDとは、物理的なオブジェクト配置場所を考慮しないオブジェクトIDである。論理オブジェクトIDとは、物理的なオブジェクト配置場所(オブジェクトデータ記憶部23に対応する記憶領域内の当該オブジェクトデータが記憶されている位置)から算出されるオブジェクトIDである。通常、索引データでの発生位置は論理オブジェクトIDにて表現される。論理オブジェクトIDから物理オブジェクトIDへの変換は、マップテーブル記憶部22に記憶されているマップテーブルを使って行われる。
The object
図2は、オブジェクトデータ記憶部23におけるオブジェクトデータの記憶例を模式的に示したものである。1つのオブジェクトデータは、複数のデータ(要素データ)をそれらの順序関係(あるいは上下関係)に従ってリンクして構成されている。
FIG. 2 schematically shows an example of storing object data in the object
オブジェクトデータ記憶部23内のオブジェクトデータの格納エリアは、当該オブジェクトデータを構成する要素データを格納する記憶領域である複数のスロットから構成されている。各スロットは、スロットIDで特定するものとする。従って、各要素データは、当該要素データを含むオブジェクトデータの論理オブジェクトID(あるいは当該論理オブジェクトIDに対応する物理オブジェクトID)、当該要素データの格納されているスロットのスロットIDとで特定する。
The object data storage area in the object
例えば、オブジェクトデータ記憶部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
また、各オブジェクトデータの格納領域の先頭スロットは、リストの先頭要素データのスロットへのポインタ情報(例えば先頭要素データのスロット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
図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
例えば「語彙」欄中の索引語“メモリ”、“データベース”に対して、それぞれ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 “
図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
バージョンデータ管理部5は、オブジェクトデータ記憶部23の更新前の状態しか見せられない参照処理が終了した時点で、バージョンデータテーブル12や索引データ記憶部21内の索引データを更新するとともに、オブジェクトデータ記憶部23の不要となった記憶領域を開放する。
The version
コミット要求が入力したとき、コミット処理部3はデータ更新が確定されたものとみなして、マップテーブル記憶部22に記憶されているマップテーブルや索引データ記憶部21に記憶されている索引データの更新を行う。また、コミット前後にわたって参照処理部4で実行されている参照処理のために、更新前の結果を見せる必要がある。このためにバージョンデータテーブル12の更新を行う。
When a commit request is input, the commit
データ参照の要求が入力したとき、参照処理部4は、索引データのアクセスからオブジェクトデータへのアクセス、あるいは直接的にオブジェクトデータへのアクセスが行われる。データ参照のルールとして、データ参照要求を受け付けたときの状態のオブジェクトデータ記憶部23に対する参照でなければならない。すなわち、コミットされたオブジェクトデータ記憶部23のスナップショットがあったとして、これに対する参照が行われなければ、データ一貫性が失われてしまうからである。
When a data reference request is input, the
参照処理部4における、索引データのアクセスから開始する場合の基本的な動作は、索引データから条件を満足する(条件として指定された数値、記号、語彙などを含む)要素データの発生位置データの集合を取り出し、マップテーブル記憶部22に記憶されているマップテーブルにて論理オブジェクトIDから物理オブジェクトIDへの変換を行って、オブジェクトデータ記憶部23内のオブジェクトデータにアクセスする。直接的にオブジェクトデータへのアクセスする場合の基本的な動作は、マップテーブルにて論理オブジェクトIDから物理オブジェクトIDへの変換を行って、オブジェクトデータ記憶部23内のオブジェクトデータにアクセスする。
The basic operation in the
ここで、図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
図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
参照処理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
なお、ここでは、図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
例えば、端末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
なお、更新処理部2で当該更新要求を受け取った時点(時刻「Time8」)では、図5からも明らかなように、時刻「Time7」に発生した参照要求が2件あり(Query3、Query4)、これらの参照処理は今だ継続中である。時刻「Time8」における参照ログテーブル13を図7に示す。図7に示すように、参照ログテーブル13には、現時点において参照処理が継続中である参照処理の数が、当該参照処理の発生時刻別に登録されている。例えば、図7には、時刻「Time7」に発生した参照処理(Query3、Query4)の数として「2」が登録されている。
At the time when the
次に、更新処理部2は、更新対象のオブジェクトデータの複製を、オブジェクトデータ記憶部23内の未使用の記憶エリアに格納する。そして、更新された新たな要素データは、未使用スロットに格納する(ステップS2)。
Next, the
例えば、図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
このように、更新前のオブジェクトデータをそのまま残しておき、当該更新前のオブジェクトデータの複製に更新を行ったものを新たなオブジェクトデータとして更新前のオブジェクトデータとは別の格納エリアに格納する。そして、更新前の先頭スロット「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
(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
(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
例えば、ここでは、“メモリ”という要素データが“ディスク”に書き換える更新であるから、まず、図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
端末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
コミット処理部3では、当該コミット要求を受け付けると、図12に示すように、バージョンデータテーブル12に、当該更新の更新時刻(ここでは例えば「Time8」)、更新対象のオブジェクトデータの論理オブジェクトID(ここでは例えば「LOID5」)、更新後のオブジェクトデータの格納されている新たな物理オブジェクトID(ここでは例えば「POID21」)、当該更新前のオブジェクトデータの格納されている物理オブジェクトID(ここでは例えば「POID5」)を登録する(ステップS12)。
When the commit
バージョンデータテーブル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
バージョンデータテーブル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
例えば、図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
コミット処理部3は、次に、マップテーブル記憶部22に記憶されているマップテーブルを更新する(ステップS14)。すなわち、コミットされた更新結果をマップテーブルに反映させるべく、図14に示すように、更新対象のオブジェクトデータの論理オブジェクトIDに対応付ける物理オブジェクトIDを、更新前の更新後のオブジェクトデータの格納されている物理オブジェクトIDに書き換える。
Next, the commit
図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
最後に、時刻を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
この状態で、端末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
参照処理部4では、当該参照要求メッセージを受け付けると、まず、時刻管理部6から現在の時刻(参照時刻)Tqを得る。ここでは、「Time7」が得られる。この結果、参照ログテーブル13の「Time7」に対応する参照数は1つ増加されて「2」に更新される(ステップS21)。
When receiving the reference request message, the
次に、参照処理部4は、索引データ記憶部21にアクセスして、索引データ中の「語彙」欄の“メモリ”、“半導体”に対応付けて記憶されている位置発生テーブルから発生位置データの集合を得る(ステップS22)。なお、ここで発生位置データを収集する際には、「更新時刻」欄に更新時刻が記載されずに空欄(あるいは「NULL」)となっている発生位置データは除くようにしてもよい。「更新時刻」欄が空欄(あるいは「NULL」)となっている発生位置データは、前述したように、更新中であるがコミットされていない要素データの発生位置データであるからである。また、「削除挿入」欄が「挿」のときには「更新時刻」欄の時刻が当該参照処理の参照処理時刻Tq以前のもの、「削除挿入」欄が「削」のときには「更新時刻」欄の時刻が当該参照処理の参照処理時刻Tq以前以後にかかわりなく時刻が登録されていれば収集するようにしてもよい。
Next, the
以下、(ケースX1)他の全てのトランザクション(例えば、この例では更新処理TXN2)が開始する前に、参照処理部4がデータベース20にアクセスする場合と、(ケースX2)他の少なくとも1つのトランザクション(例えば、この例では更新処理TXN2)が開始しているが、コミットはされていないときに、参照処理部4がデータベース20にアクセスする場合と、(ケースX3)全てのトランザクション(この例では更新処理TXN2)が終了後に参照処理部4がデータベース20にアクセスする場合とに分けて説明する。
Hereinafter, (Case X1) when the
(ケースX1)他の全てのトランザクション(例えば、この例では更新処理TXN2)が開始する前に、参照処理部4がデータベース20にアクセスする場合。
(Case X1) When the
オブジェクトデータ記憶部23と索引データ記憶部21とマップテーブル記憶部22の状態は、図2〜図3に示した状態である。従って、ステップS22では、図3に示した索引データから、発生位置データ101を含む発生位置データの集合を得る。
The states of the object
得られた発生位置データのそれぞれについて、ステップ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
以上のステップ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
オブジェクトデータ記憶部23は、図9に示した状態であり、索引データ記憶部21は、図10に示した状態であり、マップテーブル記憶部22は図4に示した状態である。この場合も、ステップS22では、図10に示した索引データから、発生位置データ101を含む発生位置データの集合を得る。なお、例えば“メモリ”に対応付けて記憶されている発生位置データであっても、「更新時刻」欄が空欄(あるいは「NULL」)となっている発生位置データは、前述したように、更新中であるがコミットされていない要素データの発生位置データであり、そのような発生位置データは除くようにしてもよい。 得られた発生位置データのそれぞれについて、ステップS24〜ステップS33の処理を繰り返す(ステップS23〜ステップS34)。すなわち、ステップS24では、発生位置データ内の「確認要否」欄をチェックする。(ケースX2)の場合、更新処理TXN2が開始されているが、まだ、コミットはされていない。従って、「確認要否」欄は「要」となっている発生位置データも存在する。例えば、発生位置データ101は、図10からも明らかなように、現在更新中であるので、「確認要否」欄は「要」となっている。この場合には、図16のステップS61へ進む。
The object
ステップ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
ステップ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
一方、ステップ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
ステップ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
オブジェクトデータ記憶部23は図9に示した状態であり、索引データ記憶部21は図13に示した状態であり、マップテーブル記憶部22の状態は図14に示した状態である。また、バージョンデータテーブル12には、図12に示したように、更新処理TXN2による更新(更新時刻「Time8」)に関するレコード201が記録されている。この場合、ステップS22では、図13に示した索引データから、発生位置データ101を含む発生位置データの集合を得る。
The object
得られた発生位置データのそれぞれについて、ステップ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
ステップ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
現在処理対象の発生位置データ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
上記以外の処理は(ケース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
このとき参照時刻「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
ステップ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
次に、ステップ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
次に、図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
図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
図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
更新処理TXN2開始前に、参照処理部4がデータベース20にアクセスする場合(ケースX1)は、前述の参照処理QUERY3の場合と同様である。更新処理TXN2が開始されているが、コミットはされていないときに、参照処理部4がデータベース20にアクセスする場合(ケースX2)、ステップS22では、図10に示した索引データ中の発生位置データ102は無視される。「更新時刻」欄が空欄(あるいは「NULL」)となっているからである。
When the
更新処理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
次に、図5の参照処理QUERY2の参照処理動作を例にとり、図15〜図17に示すフローチャートを参照して、図1の情報管理装置1の参照処理動作について説明する。なお、ここでは、前述の図5の参照処理QUERY3の参照処理動作と異なる部分について説明する。参照処理QUERY2は、“メモリ”を含むオブジェクトデータを取り出す参照処理である。参照処理QUERY2は、図5に示すように、更新処理TXN2終了後(コミット後)の時刻「Time9」に開始する。また、参照処理QUERY2開始時には、参照処理QUERY3、4も処理継続中である。
Next, the reference processing operation of the
更新処理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
得られた発生位置データのそれぞれについて、ステップ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
ステップS25では、発生位置データ101の「削除挿入」欄が「削」となっているので、ステップS62へ進む。処理対象の発生位置データ101の「更新時刻」欄の更新時刻より前に開始された参照処理がまだ継続中であるから、ステップS65へ進む。
In step S25, since the “deletion / insertion” field of the generated
現在処理対象の発生位置データ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へ進む。
以上の更新、参照処理をまとめると、次のようになる。 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.
1…情報管理装置、2…更新処理部、3…コミット処理部、4…参照処理部、5…バージョンデータ管理部、6…時刻管理部、10…テーブル記憶部、11…更新ログテーブル、12…バージョンデータテーブル、13…参照ログテーブル、20…データベース、21…索引データ記憶部、22…マップテーブル記憶部、23…オブジェクトデータ記憶部、TE1、TE2…端末。
DESCRIPTION OF
Claims (10)
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 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.
前記更新ログ中の前記更新時刻以前に受け付けられた検索要求が存在しない場合には、当該更新ログと、当該更新時刻を含むバージョンデータと、当該バージョンデータ中の更新前の記憶エリアの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」だけ増加される時刻を記憶及び更新する時刻管理手段と、
(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:
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」だけ増加される時刻を記憶及び更新する時刻管理手段と、
(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.
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)
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 |
-
2004
- 2004-02-20 JP JP2004044210A patent/JP4314126B2/en not_active Expired - Fee Related
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 |