JP6889254B2 - Database system, method and program - Google Patents

Database system, method and program Download PDF

Info

Publication number
JP6889254B2
JP6889254B2 JP2019516317A JP2019516317A JP6889254B2 JP 6889254 B2 JP6889254 B2 JP 6889254B2 JP 2019516317 A JP2019516317 A JP 2019516317A JP 2019516317 A JP2019516317 A JP 2019516317A JP 6889254 B2 JP6889254 B2 JP 6889254B2
Authority
JP
Japan
Prior art keywords
view
data
data set
transaction
search
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.)
Active
Application number
JP2019516317A
Other languages
Japanese (ja)
Other versions
JPWO2018203377A1 (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.)
Murakumo Corp
Original Assignee
Murakumo 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 Murakumo Corp filed Critical Murakumo Corp
Publication of JPWO2018203377A1 publication Critical patent/JPWO2018203377A1/en
Application granted granted Critical
Publication of JP6889254B2 publication Critical patent/JP6889254B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、データベースの内容を管理し、変更(modify)するための技術に関する。 The present disclosure relates to a technique for managing and modifying the contents of a database.

従来、多重化データベースシステムにおける同期化方法として、仲介装置が、クライアントからの処理要求を複数のサーバに転送し、各サーバから受信した応答結果のうち正当なものをクライアントに返す多重化データベースシステムにおいて、仲介装置が処理要求に順序番号を付与し、各サーバが該順序番号に基づき処理要求を並べ替えるとともに、サーバにおいてロック競合等が生じないようDBMSへの投入順序を制御する技術が提案されている(特許文献1を参照)。 Conventionally, as a synchronization method in a multiplexed database system, in a multiplexed database system in which an intermediary device transfers a processing request from a client to a plurality of servers and returns a valid response result received from each server to the client. , A technique has been proposed in which an intermediary device assigns a sequence number to a processing request, each server sorts the processing request based on the sequence number, and controls the input order to the DBMS so that a lock conflict or the like does not occur in the server. (See Patent Document 1).

また、データ複製機能にモバイルエージェントを使用し、サイトAでデータベースを更新した場合、この更新を検出して更新内容から更新トランザクションデータを生成し、サイトBに移動して更新トランザクションを実行し、データベースを更新する分散データベースシステムが提案されている(特許文献2を参照)。 In addition, when a mobile agent is used for the data replication function and the database is updated at site A, this update is detected, update transaction data is generated from the updated contents, the data is moved to site B, the update transaction is executed, and the database is executed. A distributed database system for updating is proposed (see Patent Document 2).

また、データ操作のログを蓄積し、ログ形式のままデータを管理するデータ管理方法が各種提案されている(非特許文献1および2を参照)。 In addition, various data management methods have been proposed in which data operation logs are accumulated and data is managed in the log format (see Non-Patent Documents 1 and 2).

特開2007−219598号公報JP-A-2007-219598 特開2001−350777号公報Japanese Unexamined Patent Publication No. 2001-350777

Hoang Tam Vo, Sheng Wang, Divyakant Agrawal, Gang Chen, Beng Chin Ooi, “LogBase: A Scalable Log−structured Database System in the Cloud”Hoang Tam Vo, Sheng Wang, Divyakant Agrawal, Gang Chen, Beng Chin Ooi, “LogBase: A Scalable Log-Structured Database System” Philip A. Bernstein, Colin W. Reid, Sudipto Das, “Hyder − A Transactional Record Manager for Shared Flash”Philip A. Bernstein, Colin W. Red, Sudipto Das, "Hyder-A Transitional Record Manager for Shared Flash"

従来、データベース管理システム(DBMS)では、検索処理の効率化のため、所定の検索条件による検索結果としてのビューを予め作成しておき、検索処理を効率化することが行われている。しかし、このようなビューを変更(modify)するには、まずビューの作成に用いられたテーブルを変更し、変更後のテーブルを検索してビューの変更に必要な情報を抽出し、ビューを変更するという処理が必要となる。このような処理は、例えばテーブルの変更をトリガーとして実行されるが、処理内容は複雑であり、システム全体への処理負荷は大きい。 Conventionally, in a database management system (DBMS), in order to improve the efficiency of a search process, a view as a search result according to a predetermined search condition is created in advance to improve the efficiency of the search process. However, to modify such a view, first modify the table used to create the view, search the modified table to extract the information needed to modify the view, and then modify the view. The process of doing is required. Such processing is executed, for example, by using a table change as a trigger, but the processing content is complicated and the processing load on the entire system is large.

ここで、ビューの変更にかかる処理負荷を抑えるために、実体としてのビューのコンテンツが生成・保持されない、論理上のビューを用いるシステムも考えられる。しかし、このような論理上のビューでは、ビューが参照される都度テーブルを参照することとなるため、検索処理の負荷を低減させることは困難である。 Here, in order to reduce the processing load required to change the view, a system using a logical view in which the content of the view as an entity is not generated / retained can be considered. However, in such a logical view, it is difficult to reduce the load of the search process because the table is referenced each time the view is referenced.

本開示にかかる技術は、上記した問題に鑑み、ビューの変更における処理負荷およびビューの参照における処理負荷を何れも抑えたまま、所定の検索条件による検索結果としてのビューを提供することを課題とする。 In view of the above problems, the technique according to the present disclosure has an object of providing a view as a search result according to a predetermined search condition while suppressing both the processing load for changing the view and the processing load for referencing the view. To do.

本開示では、上記した課題を解決するために、以下の手段を採用した。即ち、本開示に係るデータベースシステムは、1または複数のセッション管理ノードと、1または複数のデータストア管理ノードと、少なくとも1のビュー管理ノードとを備えるデータベースシステムであって、前記セッション管理ノードの夫々は、データベースの内容が変更される場合に、変更の対象となるデータ単位を一意に把握可能な対象識別情報と、該データ単位の変更内容と、を含むデータセットを生成するデータセット生成手段と、前記データセットを、少なくとも何れかの前記データストア管理ノードへ送信する、データセット送信手段と、を備え、前記データストア管理ノードの夫々は、受信された前記データセットを、トランザクションの時系列における位置を把握可能なトランザクション識別子を設定して蓄積するデータベース管理手段と、前記データベース管理手段によって蓄積されている前記データセットに基づいて、予め設定された検索条件に合致するデータを含むビュー用データセットを生成するビュー用データ生成手段と、前記ビュー用データセットを、前記ビュー管理ノードに送信するビュー用データ送信手段と、を備え、前記ビュー管理ノードは、前記予め設定された検索条件に合致するデータを含むビュー用データセットを、前記データストア管理ノードから取得するビュー用データ取得手段と、前記ビュー用データ取得手段によって取得されたビュー用データセットに含まれるデータの集合を、前記予め設定された検索条件に対応するビューとして保持するビュー管理手段と、指定された検索条件に従って前記ビューを検索するビュー検索手段と、を備え、前記ビュー管理手段は、前記ビュー用データセットに含まれるデータのうち、前記ビューに対応するスナップショットを示すトランザクション識別子であるビュー用トランザクション識別子によって指定された時点以前のデータの集合を、前記予め設定された検索条件および該ビュー用トランザクション識別子に対応するビューとして保持する、データベースシステムである。 In the present disclosure, the following means are adopted in order to solve the above-mentioned problems. That is, the database system according to the present disclosure is a database system including one or more session management nodes, one or more data store management nodes, and at least one view management node, and each of the session management nodes. Is a data set generation means for generating a data set including the target identification information that can uniquely grasp the data unit to be changed when the contents of the database are changed and the changed contents of the data unit. A data set transmission means for transmitting the data set to at least one of the data store management nodes, each of the data store management nodes sending the received data set in a time series of transactions. A database management means that sets and stores a transaction identifier that can grasp the position, and a view data set that includes data that matches preset search conditions based on the data set stored by the database management means. The view management node includes a view data generation means for generating data and a view data transmission means for transmitting the view data set to the view management node, and the view management node matches the preset search condition. The view data acquisition means for acquiring the view data set including the data from the data store management node and the set of data included in the view data set acquired by the view data acquisition means are set in advance. A view management means for holding the view as a view corresponding to the search condition and a view search means for searching the view according to a specified search condition are provided, and the view management means includes data included in the view data set. Among them, a set of data before the time specified by the view transaction identifier, which is a transaction identifier indicating a snapshot corresponding to the view, is retained as a view corresponding to the preset search condition and the view transaction identifier. It is a database system.

本開示は、情報処理装置、システム、コンピューターによって実行される方法またはコンピューターに実行させるプログラムとして把握することが可能である。また、本開示は、そのようなプログラムをコンピューターその他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピューター等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的または化学的作用によって蓄積し、コンピューター等から読み取ることができる記録媒体をいう。 The present disclosure can be understood as a method executed by an information processing device, a system, a computer, or a program executed by a computer. Further, the present disclosure can be grasped as if such a program is recorded on a recording medium that can be read by a computer or other device, a machine, or the like. Here, a recording medium that can be read by a computer or the like is a recording medium that can be read from a computer or the like by accumulating information such as data or programs by electrical, magnetic, optical, mechanical or chemical action. Say.

本開示に係る技術によれば、ビューの変更における処理負荷およびビューの参照における処理負荷を何れも抑えたまま、所定の検索条件による検索結果としてのビューを提供することが可能となる。 According to the technique according to the present disclosure, it is possible to provide a view as a search result according to a predetermined search condition while suppressing both the processing load for changing the view and the processing load for referencing the view.

実施形態に係るデータベースシステムの構造を例示する図である。It is a figure which illustrates the structure of the database system which concerns on embodiment. 実施形態に係るノードのハードウェア構成の概略を示す図である。It is a figure which shows the outline of the hardware configuration of the node which concerns on embodiment. 実施形態に係るノードの機能構成の概略を示す図である。It is a figure which shows the outline of the functional structure of the node which concerns on embodiment. 実施形態において生成される変更用データセットの構造を示す図である。It is a figure which shows the structure of the change data set generated in an embodiment. 実施形態におけるデータベース管理処理の流れを示すフローチャート(1)である。It is a flowchart (1) which shows the flow of the database management process in an embodiment. 実施形態におけるデータベース管理処理の流れを示すフローチャート(2)である。It is a flowchart (2) which shows the flow of the database management process in an embodiment. 実施形態においてセッションマネージャーによって実行される、命令処理及び変更用データセット生成/更新処理の流れを示す図である。It is a figure which shows the flow of instruction processing and data set generation / update processing for change executed by the session manager in embodiment. 実施形態におけるデータベース管理処理の流れを示すフローチャート(3)である。It is a flowchart (3) which shows the flow of the database management process in an embodiment. 実施形態におけるデータベース管理処理の流れを示すフローチャート(4)である。It is a flowchart (4) which shows the flow of the database management process in an embodiment. 実施形態におけるデータベース管理処理の流れを示すフローチャート(5)である。It is a flowchart (5) which shows the flow of the database management process in an embodiment. 実施形態に係る、データストアマネージャーにおけるデータ検索処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the data search process in the data store manager which concerns on embodiment. 実施形態に係る、ビューマネージャーにおけるデータ検索処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the data search process in the view manager which concerns on embodiment. 実施形態に係る、データストアマネージャーにおけるトランケート処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the truncated process in the data store manager which concerns on embodiment. 実施形態に係る、ビュー作成処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the view creation process which concerns on embodiment. 実施形態に係る、ビュー変更処理の流れを示すフローチャート(1)である。It is a flowchart (1) which shows the flow of view change processing which concerns on embodiment. 実施形態に係る、ビュー変更処理の流れを示すフローチャート(2)である。It is a flowchart (2) which shows the flow of view change processing which concerns on embodiment. 実施形態に係る、ビュー変更処理の流れを示すフローチャート(3)である。It is a flowchart (3) which shows the flow of view change processing which concerns on embodiment.

以下、本開示に係るシステム、情報処理装置、方法およびプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係るシステム、情報処理装置、方法およびプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の態様に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。 Hereinafter, embodiments of the system, information processing apparatus, method, and program according to the present disclosure will be described with reference to the drawings. However, the embodiments described below are merely examples of the embodiments, and the system, information processing apparatus, method, and program according to the present disclosure are not limited to the specific configurations described below. In the implementation, a specific configuration according to the embodiment may be appropriately adopted, and various improvements and modifications may be made.

<システムの構成>
以下、複数のノードを有するデータベースシステムにおいて、データベースの内容の変更命令(INSERT命令、DELETE命令、UPDATE命令等)を含むトランザクションが処理される場合に、当該変更命令に係る変更内容を、当該データベースシステムに属する複数のノードが管理する夫々のデータストアにおいて管理する技術を説明する。ここで、データストアとは、本開示に係るデータベースシステムによって管理されるデータベースの一部または全部の記録、またはデータベースの一部または全部が保持される場所、を示す語である。なお、本開示に係るデータベース管理技術は、本実施形態において例示されたシステムに限らず、複数のノードを有するデータベースシステムに適用可能である。また、本開示に係るデータベース管理技術を採用可能なデータベースシステムは、特定の種類のデータベースシステムに限定されない。
<System configuration>
Hereinafter, in a database system having a plurality of nodes, when a transaction including a database content change instruction (INSERT instruction, DELETE instruction, UPDATE instruction, etc.) is processed, the change content related to the change instruction is transmitted to the database system. The technology to be managed in each data store managed by a plurality of nodes belonging to is described. Here, the data store is a term indicating a record of a part or all of the database managed by the database system according to the present disclosure, or a place where a part or all of the database is held. The database management technique according to the present disclosure is applicable not only to the system exemplified in the present embodiment but also to a database system having a plurality of nodes. Further, the database system to which the database management technology according to the present disclosure can be adopted is not limited to a specific type of database system.

図1は、本実施形態に係るデータベースシステムの構造を例示する図である。本実施形態に係るデータベースシステムでは、複数の情報処理装置(ノード)が、ネットワークを介して互いに通信可能に接続されている。本実施形態に係るデータベースシステムでは、複数のノードのうちの少なくとも1つが、トランザクションマネージャーとしての役割を有するトランザクション管理ノードである。また、その他の複数のノードのうちの一部は、セッションマネージャーとしての役割を有するノードであり、セッション管理ノードとして動作する。また、その他の複数のノードのうちの一部は、データストアマネージャーとしての役割を有するノードであり、データストア管理ノードとして動作する。更に、その他の複数のノードのうちの一部は、ビューマネージャーとしての役割を有するノードであり、ビュー管理ノードとして動作する。 FIG. 1 is a diagram illustrating the structure of the database system according to the present embodiment. In the database system according to the present embodiment, a plurality of information processing devices (nodes) are connected to each other so as to be able to communicate with each other via a network. In the database system according to the present embodiment, at least one of the plurality of nodes is a transaction management node having a role as a transaction manager. In addition, some of the other plurality of nodes are nodes that have a role as a session manager and operate as a session management node. In addition, some of the other plurality of nodes are nodes that have a role as a data store manager and operate as a data store management node. Further, some of the other plurality of nodes are nodes that have a role as a view manager and operate as a view management node.

但し、本開示に係るデータベース管理技術を適用可能なデータベースシステムは、本実施形態に例示した構成のデータベースシステムに限定されない。例えば、セッションマネージャーとデータストアマネージャーとは、同一のノードにおいて動作してもよい。また、ビューを参照しないデータベースシステムを構築する場合には、ビューマネージャーは省略されてよい。何れにしても、本実施形態に係るデータベースシステムは、複数のセッション管理ノードと、複数のデータストア管理ノードと、少なくとも1のトランザクション管理ノードとを備える。 However, the database system to which the database management technology according to the present disclosure can be applied is not limited to the database system having the configuration illustrated in the present embodiment. For example, the session manager and the data store manager may operate on the same node. In addition, when constructing a database system that does not refer to views, the view manager may be omitted. In any case, the database system according to the present embodiment includes a plurality of session management nodes, a plurality of data store management nodes, and at least one transaction management node.

本実施形態において、データストア管理ノードは、夫々、自身において動作するデータストアマネージャーによって管理されるデータストアを有しており、これらのデータストアは、本開示に係るデータベースシステムによって管理されるデータベースの一部または全部に係るデータを有している。本開示に係るデータベース管理技術では、データベースに加えられる変更の内容を含む変更用データセットが、何れかのセッションマネージャーによって生成され、システムに属する1または複数のデータストアマネージャーに伝播され、伝播された変更用データセットにトランザクションIDが付されて各データストアで管理されることで、データベース全体の変更が完了する。このため、本実施形態に係るシステムでは、変更用データセットの発生時に、同一の変更用データセットを複数のデータストアマネージャーに対して送信することで、データストア管理を冗長化でき、データベースのレプリケーションを実現できる。データストア管理の冗長化は、例えば、変更用データセットの送信先のノードIDを複数指定することでも実現可能であるし、単一のノードIDに対して複数のデータストア管理ノードを用意することでも実現可能である。データベース管理技術の詳細については、後述する。 In the present embodiment, each data store management node has a data store managed by a data store manager operating by itself, and these data stores are of a database managed by the database system according to the present disclosure. I have some or all of the data. In the database management technology according to the present disclosure, a change dataset containing the contents of changes made to the database is generated by one of the session managers and propagated to one or more data store managers belonging to the system. By assigning a transaction ID to the change data set and managing it in each data store, the change of the entire database is completed. Therefore, in the system according to the present embodiment, when the change data set is generated, the same change data set is transmitted to a plurality of data store managers, so that the data store management can be made redundant and the database replication can be performed. Can be realized. Redundancy of data store management can be realized by, for example, specifying multiple node IDs of destinations of the data set for change, and preparing multiple data store management nodes for a single node ID. But it is feasible. Details of the database management technology will be described later.

また、本実施形態において、ビュー管理ノードは、夫々、自身において動作するビューマネージャーによって管理されるビューを有している。本実施形態において、ビューとは、あるトランザクションIDによって特定される時点におけるデータを、検索条件によって絞り込み、且つ検索に適した形に整理したものである。この検索条件は、当該検索条件に係るビューを識別可能な情報と共に、データストアマネージャーおよびセッションマネージャーに通知される。なお、ビューがデータを保持する形式は限定されない。ビューは、例えば、表(テーブル)やグラフ等の形式でデータを保持することができる。本実施形態では、1のビューマネージャーが1のビューを管理することを前提として説明する。このため、本実施形態では、ビューのIDによってビューマネージャーを識別することが可能であるし、ビューを生成するために用いられる検索条件(ビューの検索条件)は、ビューおよびビューマネージャーを識別するための情報としても用いることができる。但し、1のビューマネージャーによって複数のビューが管理されてもよい。 Further, in the present embodiment, each view management node has a view managed by a view manager that operates on its own. In the present embodiment, the view is a view that narrows down the data at the time specified by a certain transaction ID according to the search conditions and organizes the data into a form suitable for the search. This search condition is notified to the data store manager and the session manager together with information that can identify the view related to the search condition. The format in which the view holds data is not limited. The view can hold data in the form of, for example, a table or a graph. In this embodiment, it is assumed that one view manager manages one view. Therefore, in the present embodiment, the view manager can be identified by the ID of the view, and the search condition (view search condition) used to generate the view is to identify the view and the view manager. It can also be used as information for. However, a plurality of views may be managed by one view manager.

また、ビューによってカバーされるデータの範囲は任意に設定可能であり、複数のビューによってカバーされるデータは互いに重複してもよいし、何れのビューによってもカバーされないデータがあってもよい。ビューによってカバーされていないデータについても、データストアマネージャーが変更用データセットの形式で管理しているため、全てのデータを検索することが可能である。即ち、本実施形態に係るシステムによれば、変更用データセットによるデータ管理でデータ変更の処理負荷を低減させつつ、検索を高速化したいデータについてはビューでカバーすることが可能である。 Further, the range of data covered by the views can be arbitrarily set, and the data covered by the plurality of views may overlap with each other, or some data may not be covered by any of the views. Even if the data is not covered by the view, the data store manager manages it in the form of a change dataset, so it is possible to search all the data. That is, according to the system according to the present embodiment, it is possible to cover the data for which the search speed is desired to be covered by the view while reducing the processing load of the data change by the data management by the data set for change.

本実施形態において、複数のビューまたはビューマネージャー(ビュー管理ノード)は、階層関係を有し、上位ビューは、下位ビューによってカバーされるデータを参照して構築することができる。ビューの階層関係が3層以上に及び、上位層のビューが下位層のビューを参照する場合、これらのビューが属する階層は隣接していなくてもよい(例えば、第3層のビューが第1層のビューを参照することが出来る)。 In the present embodiment, a plurality of views or view managers (view management nodes) have a hierarchical relationship, and the upper view can be constructed by referring to the data covered by the lower view. When the hierarchical relationship of the views extends to three or more layers and the upper layer views refer to the lower layer views, the layers to which these views belong do not have to be adjacent (for example, the third layer view is the first layer). You can see the view of the layer).

更に、ネットワークには、ユーザー端末9が接続されている。本実施形態に開示されたデータベースシステムは、何れのセッションマネージャーも、ユーザー端末9等から送信されたクエリを受け付けて実行することが可能なデータベースシステムである。 Further, the user terminal 9 is connected to the network. The database system disclosed in the present embodiment is a database system in which any session manager can receive and execute a query transmitted from a user terminal 9 or the like.

図2は、本実施形態に係るノードのハードウェア構成の概略を示す図である。ノードは、CPU(Central Processing Unit)11、RAM(Random Access Memory)12およびROM(Read Only Memory)13等からなる制御部10と、ストレージ(補助記憶装置)14と、通信インターフェース15と、を備えるコンピューターである。但し、ノードの具体的なハードウェア構成に関しては、実施の態様に応じて適宜省略や置換、追加が可能である。また、ノードは、単一の装置に限定されない。ノードは、所謂クラウドや分散コンピューティングの技術等を用いた、複数の装置によって実現されてよい。なお、各ノードが管理するデータストアは、ストレージ14上に構築されてもよいし、RAM12上に構築されてもよく、データストアの構築場所は限定されない。 FIG. 2 is a diagram showing an outline of the hardware configuration of the node according to the present embodiment. The node includes a control unit 10 including a CPU (Central Processing Unit) 11, a RAM (Random Access Memory) 12, a ROM (Read Only Memory) 13, a storage (auxiliary storage device) 14, and a communication interface 15. It is a computer. However, the specific hardware configuration of the node can be omitted, replaced, or added as appropriate depending on the embodiment. Also, the node is not limited to a single device. A node may be realized by a plurality of devices using so-called cloud or distributed computing technology. The data store managed by each node may be built on the storage 14 or the RAM 12, and the location where the data store is built is not limited.

ストレージ14には、オペレーティングシステムとともに、各種プログラムが格納されており、当該プログラムをバスおよびRAM12を介してCPU11が読み込んで実行することによって、前述のノードとしての機能が実現される。なお、各マネージャーが動作するノードは、何れも同様のハードウェア構成を有してよい。 Various programs are stored in the storage 14 together with the operating system, and the CPU 11 reads and executes the programs via the bus and the RAM 12, thereby realizing the above-mentioned function as a node. The node on which each manager operates may have the same hardware configuration.

図3は、本実施形態に係るノードの機能構成の概略を示す図である。先述の通り、本実施形態において、各ノードは、セッションマネージャー、トランザクションマネージャー、データストアマネージャーおよびビューマネージャーの何れかの役割を有する。 FIG. 3 is a diagram showing an outline of the functional configuration of the node according to the present embodiment. As described above, in the present embodiment, each node has one of the roles of session manager, transaction manager, data store manager, and view manager.

はじめに、セッション管理ノードの機能構成を説明する。本実施形態において、セッションマネージャーとしての役割を有する複数のノードの夫々は、セッションマネージャー用プログラムをバスおよびRAM12を介してCPU11が読み込んで実行することによって、クエリ受付部21、クエリ処理部22、スナップショット特定用情報取得部23、処理用データ取得部24、データセット生成部25およびデータセット送信部26を備えるセッション管理ノードとして機能する。 First, the functional configuration of the session management node will be described. In the present embodiment, each of the plurality of nodes having a role as a session manager reads and executes the session manager program by the CPU 11 via the bus and the RAM 12, so that the query reception unit 21, the query processing unit 22, and the snap are executed. It functions as a session management node including a shot identification information acquisition unit 23, a processing data acquisition unit 24, a data set generation unit 25, and a data set transmission unit 26.

クエリ受付部21は、ユーザー端末9から送信された、データベースシステムに対するクエリを受け付ける。本実施形態に係るデータベースシステムでは、セッションマネージャーを実行するセッション管理ノードが複数あり、これら複数のセッション管理ノードの何れも、ユーザー端末9からのクエリを受け付けることが出来る。 The query reception unit 21 receives a query for the database system sent from the user terminal 9. In the database system according to the present embodiment, there are a plurality of session management nodes that execute the session manager, and any of these plurality of session management nodes can accept queries from the user terminal 9.

クエリ処理部22は、クエリ受付部21によって受け付けられたクエリを処理する。 The query processing unit 22 processes the query received by the query receiving unit 21.

スナップショット特定用情報取得部23は、トランザクションマネージャーから、処理に用いられるスナップショットを特定可能な情報を取得する。ここで、スナップショットとは、トランザクションが順次コミットされることでデータベースの内容が変化していく時系列における、ある時点におけるデータベースの内容を示す語である。なお、本実施形態において、スナップショット特定用情報取得部23によって取得される情報は、トランザクションID(以下、「スナップショット特定用トランザクションID」と称する)である。但し、取得される情報は、トランザクションの処理に用いられるデータの一貫性を保証するためのものであるため、スナップショットを特定可能な情報であればよく、トランザクションIDに限られない。例えば、スナップショットを特定可能な情報は、トランザクションIDではなく、複数のトランザクションが順次処理される時系列における論理上のある時点を特定可能な情報であってもよい。 The snapshot identification information acquisition unit 23 acquires information that can identify the snapshot used for processing from the transaction manager. Here, the snapshot is a word indicating the contents of the database at a certain point in time in a time series in which the contents of the database change as the transactions are committed sequentially. In the present embodiment, the information acquired by the snapshot identification information acquisition unit 23 is a transaction ID (hereinafter, referred to as “snapshot identification transaction ID”). However, since the acquired information is for guaranteeing the consistency of the data used for the transaction processing, the information may be any information that can identify the snapshot, and is not limited to the transaction ID. For example, the information that can identify the snapshot may not be the transaction ID but the information that can specify a logical point in time in the time series in which a plurality of transactions are sequentially processed.

処理用データ取得部24は、クエリの処理に用いるデータを、複数のデータストアマネージャーおよび複数のビューマネージャーの少なくとも何れかから取得する。この際、処理用データ取得部24は、データストアマネージャーまたはビューマネージャーに対して、スナップショット特定用情報取得部23によって取得された情報(スナップショット特定用トランザクションID)を指定することで、所定のスナップショットにおけるデータを取得する。 The processing data acquisition unit 24 acquires data used for query processing from at least one of a plurality of data store managers and a plurality of view managers. At this time, the processing data acquisition unit 24 specifies the information (snapshot identification transaction ID) acquired by the snapshot identification information acquisition unit 23 to the data store manager or the view manager, thereby determining a predetermined value. Take the data in the snapshot.

データセット生成部25は、取得されたデータに係るトランザクションに、データベースの内容を変更する変更命令が含まれる場合に、当該変更命令に基づく変更をデータベースに加えることなく、変更対象のタプルのタプルIDおよび変更内容を含む変更用データセットを生成する。即ち、本実施形態に係るデータベースシステムでは、セッションマネージャーのデータセット生成部25によって変更用データセットが生成されたことは、データベースに変更内容が反映されたことを意味しない。本実施形態に係るデータベースシステムでは、セッションマネージャーのデータセット生成部25によって生成された変更用データセットがデータストアマネージャーに送信され、データストアマネージャーによって当該変更用データセットにトランザクションIDが付与されることで、データベースに変更内容が反映される。 When the transaction related to the acquired data includes a change instruction for changing the contents of the database, the data set generation unit 25 does not make a change based on the change instruction to the database, and the tuple ID of the taple to be changed. And generate a change dataset that contains the changes. That is, in the database system according to the present embodiment, the fact that the data set for change is generated by the data set generation unit 25 of the session manager does not mean that the changed contents are reflected in the database. In the database system according to the present embodiment, the change data set generated by the data set generation unit 25 of the session manager is transmitted to the data store manager, and the data store manager assigns a transaction ID to the change data set. Then, the changes are reflected in the database.

なお、本実施形態では、データベースにおいて個々のレコードとして扱われるデータ単位をタプルと称して説明しているが、本発明を適用可能なデータ単位は、一般的なデータベースシステムにおいてタプルと称されるものに限定されない。本開示に係るデータベースシステムのデータストアにおいて、データは、リレーショナルデータベースにおいて用いられる表形式等ではなく、変更用データセットの形式のまま管理される。そのため、本発明では、リレーショナルデータベースにおけるタプル以外のデータ単位も統一的に扱うことができる。タプルIDは、複数のデータストアマネージャーによって管理される複数のデータストア間において、変更の対象となるタプル(データ単位)を一意に把握可能な(ユニークな)対象識別情報である。本実施形態において、データセット生成部25は、複数のセッション管理ノード毎に異なる値(例えば、ノードID)をタプルIDに含めることで、ユニークなタプルIDを生成する。但し、変更用データセットは、変更命令に基づく当該データベースの変更内容、および当該データベースシステムにおいて変更の対象となるタプルを一意に把握可能な情報を含んでいればよく、これらの情報は、本実施形態における例示に限定されない。 In the present embodiment, the data unit treated as an individual record in the database is described as a tuple, but the data unit to which the present invention can be applied is called a tuple in a general database system. Not limited to. In the data store of the database system according to the present disclosure, the data is managed in the format of the data set for modification, not in the tabular format used in the relational database. Therefore, in the present invention, data units other than tuples in a relational database can be handled in a unified manner. The tuple ID is (unique) target identification information that can uniquely grasp the tuple (data unit) to be changed among a plurality of data stores managed by a plurality of data store managers. In the present embodiment, the data set generation unit 25 generates a unique tuple ID by including a different value (for example, a node ID) for each of a plurality of session management nodes in the tuple ID. However, the change data set only needs to include the change contents of the database based on the change instruction and the information that can uniquely grasp the tuple to be changed in the database system, and this information is used in the present implementation. It is not limited to the examples in the form.

図4は、本実施形態において生成される変更用データセットの構造を示す図である。但し、変更用データセットの具体的な構成、フォーマットまたは生成方法は、本実施形態における例示に限定されない。本実施形態における変更用データセットは、変更命令に基づく変更の対象となるタプルを含むデータをRAM12上に読み出して、当該データに対して変更命令に基づく操作を行うことで生成される情報であり、DELETEデータセット(DELETE命令対象タプルリスト)およびINSERTデータセット(INSERT命令対象タプルリスト)を含む。 FIG. 4 is a diagram showing the structure of the modification data set generated in the present embodiment. However, the specific configuration, format, or generation method of the modification data set is not limited to the examples in the present embodiment. The change data set in the present embodiment is information generated by reading data including taples to be changed based on the change instruction onto the RAM 12 and performing an operation based on the change instruction on the data. , DELETE dataset (DELETE instruction target tuple list) and ENCERT data set (ENCERT instruction target tuple list) are included.

また、変更用データセットには、スナップショット特定用トランザクションID及びデータセットIDが設定されている。データセットIDは、変更用データセットを一意に識別可能な識別情報であり、変更用データセットの生成時に付与される。 In addition, a transaction ID for specifying a snapshot and a data set ID are set in the change data set. The data set ID is identification information that can uniquely identify the change data set, and is given when the change data set is generated.

DELETEデータセットおよびINSERTデータセットには、変更命令の対象となるタプルを示す情報が含まれる。具体的には、DELETEデータセットには、削除の対象となるタプルのタプルID(図4に示す例では、2)が含まれ、INSERTデータセットには、追加されるタプルのタプルID(図4に示す例では、13)および追加されるデータの内容が含まれる。なお、本実施形態では、UPDATE命令はINSERT命令とDELETE命令の組み合わせとして扱われ、UPDATE命令による更新前のデータを含むタプルのタプルIDはDELETEデータセットに含まれ、UPDATE命令による更新後のデータ及び当該データを含むタプルのタプルIDはINSERTデータセットに含まれる。但し、UPDATE命令による更新前のデータを含むタプルのタプルIDと、更新後のデータ及び当該データを含むタプルのタプルIDとが格納されるデータセットは、本実施形態に開示された例に限定されない。例えば、UPDATE命令にかかるこれらのタプルID及びデータは、まとめてUPDATEデータセットに含まれるように構成されても良い。 The DELETE and INSERT datasets contain information that indicates the tuple that is the target of the change instruction. Specifically, the DELETE dataset contains the tuple ID of the tuple to be deleted (2 in the example shown in FIG. 4), and the ENCERT dataset contains the tuple ID of the tuple to be added (FIG. 4). In the example shown in, 13) and the content of the data to be added are included. In the present embodiment, the UPDATE instruction is treated as a combination of the INSERT instruction and the DELETE instruction, and the tapple ID of the taple including the data before the update by the UPDATE instruction is included in the DELETE data set, and the data after the update by the UPDATE instruction and the data The tuple ID of the tuple containing the data is included in the INSERT dataset. However, the data set in which the tuple ID including the data before the update by the UPDATE command and the tuple ID of the updated data and the tuple including the data are stored is not limited to the example disclosed in the present embodiment. .. For example, these tuple IDs and data related to the UPDATE instruction may be configured to be collectively included in the UPDATE dataset.

データセット送信部26は、変更用データセットを、少なくとも、変更対象のデータを含むデータストアを管理するデータストアマネージャーへ到達するように送信する。更に、データセット送信部26は、当該データセットに含まれるタプルIDのうち少なくとも削除対象のデータ単位を示す削除対象タプルID(DELETEデータセットに記載されたタプルID)およびデータセットIDを、トランザクションマネージャーに送信する。 The data set transmission unit 26 transmits the data set for change so as to reach at least the data store manager that manages the data store including the data to be changed. Further, the data set transmission unit 26 sets the deletion target taple ID (taple ID described in the DELETE data set) and the dataset ID indicating at least the data unit to be deleted among the tuple IDs included in the data set as the transaction manager. Send to.

次に、トランザクション管理ノードの機能構成を説明する。本実施形態において、トランザクションマネージャーとしての役割を有するノードは、トランザクションマネージャー用プログラムをバスおよびRAM12を介してCPU11が読み込んで実行することによって、情報取得部31、競合判定部32、変更データ単位情報蓄積部33、識別子生成部34および識別子送信部35を備えるトランザクション管理ノードとして機能する。 Next, the functional configuration of the transaction management node will be described. In the present embodiment, the node having a role as a transaction manager reads and executes the transaction manager program by the CPU 11 via the bus and the RAM 12, thereby causing the information acquisition unit 31, the conflict determination unit 32, and the change data unit information storage. It functions as a transaction management node including a unit 33, an identifier generation unit 34, and an identifier transmission unit 35.

情報取得部31は、セッションマネージャーのデータセット送信部26によって送信された、削除対象タプルID(DELETEデータセットに記載されたタプルID)およびデータセットIDを取得する。 The information acquisition unit 31 acquires the deletion target tuple ID (tuple ID described in the DELETE data set) and the data set ID transmitted by the data set transmission unit 26 of the session manager.

競合判定部32は、情報取得部31によって取得されたDELETEデータセットに記載された削除対象タプルIDと、変更データ単位情報蓄積部33によって蓄積された、変更済のタプルを示す情報(本実施形態では削除されたタプルのタプルID)と、を比較し、一致するタプルIDが存在するか否かを確認することで、削除対象の競合の有無を判定する。競合判定部32によって削除対象の競合が有ると判定された場合、変更用データセットに基づく変更は中止される。 The conflict determination unit 32 includes a tuple ID to be deleted described in the DELETE data set acquired by the information acquisition unit 31, and information indicating the changed tuple accumulated by the change data unit information storage unit 33 (the present embodiment). Then, by comparing with the deleted tuple ID) and confirming whether or not a matching tuple ID exists, it is determined whether or not there is a conflict to be deleted. When the conflict determination unit 32 determines that there is a conflict to be deleted, the change based on the change data set is canceled.

変更データ単位情報蓄積部33は、競合判定部32によって削除対象の競合が無いと判定された場合に、情報取得部31によって取得された削除対象タプルIDを、当該データベースシステムにおいて変更されたタプルを示す情報(何れのタプルが何れの時点で変更されたか、を把握可能な情報)として蓄積する。 When the conflict determination unit 32 determines that there is no conflict to be deleted, the change data unit information storage unit 33 uses the tuple ID acquired by the information acquisition unit 31 as the tuple changed in the database system. It is accumulated as the information to be shown (information that can grasp which tuple was changed at what time).

識別子生成部34は、競合判定部32によって削除対象の競合が無いと判定された場合に、変更用データセットに対して、当該変更用データセットに係るトランザクションを識別するためのトランザクションIDを生成(採番)する。ここで生成されるトランザクションIDは、トランザクションの処理に係る論理上の時系列における位置を把握可能な識別子である。本実施形態では、トランザクションIDとして、昇順の整数が用いられる。 When the conflict determination unit 32 determines that there is no conflict to be deleted, the identifier generation unit 34 generates a transaction ID for identifying the transaction related to the change data set (for the change data set). Numbering). The transaction ID generated here is an identifier that can grasp the position in the logical time series related to the transaction processing. In this embodiment, ascending integers are used as the transaction ID.

識別子送信部35は、データセットIDと当該データセットIDに対応するトランザクションIDとを含む識別子セットを、複数のデータストアマネージャーのうち、少なくとも、データセット送信部26によって当該データセットIDに対応するデータセットが送信されたデータストアマネージャーに送信する。識別子セットは、全てのデータストアマネージャーに対して送信されてもよい。 The identifier transmission unit 35 sets the identifier set including the data set ID and the transaction ID corresponding to the data set ID to the data corresponding to the data set ID by at least the data set transmission unit 26 among the plurality of data store managers. Send the set to the data store manager to which it was sent. The identifier set may be sent to all data store managers.

次に、データストア管理ノードの機能構成を説明する。本実施形態において、データストアマネージャーとしての役割を有する複数のノードの夫々は、データストアマネージャー用プログラムをバスおよびRAM12を介してCPU11が読み込んで実行することによって、処理用データ送信部41、データセット/識別子受信部42、データベース管理部43、集合データセット生成部44、データ抽出部45、ビュー用データ生成部46およびビュー用データ送信部47を備えるデータストア管理ノードとして機能する。 Next, the functional configuration of the data store management node will be described. In the present embodiment, each of the plurality of nodes having a role as a data store manager reads and executes the data store manager program by the CPU 11 via the bus and the RAM 12, thereby performing the processing data transmission unit 41 and the data set. / It functions as a data store management node including an identifier receiving unit 42, a database management unit 43, a set data set generation unit 44, a data extraction unit 45, a view data generation unit 46, and a view data transmission unit 47.

処理用データ送信部41は、セッションマネージャーから、スナップショットを特定可能な情報(本実施形態では、スナップショット特定用トランザクションID)を指定したデータ要求を受信した場合に、指定されたスナップショットまでの変更用データセットに基づいて生成された処理用データを、セッションマネージャーに対して送信する。 When the processing data transmission unit 41 receives a data request for which information that can identify a snapshot (in this embodiment, a transaction ID for specifying a snapshot) is received from the session manager, up to the specified snapshot. Send the processing data generated based on the modification data set to the session manager.

データセット/識別子受信部42は、セッションマネージャーによって送信された変更用データセット、およびトランザクションマネージャーによって送信された識別子セットを受信する。 The data set / identifier receiving unit 42 receives the modification data set transmitted by the session manager and the identifier set transmitted by the transaction manager.

データベース管理部43は、本開示に係るデータベース管理技術によって管理されるデータベースの一部または全部を、データストアとして管理する。ここで、本実施形態に係るデータベース管理部43は、受信されたデータセットを、トランザクションIDを設定して蓄積することで、データベースを管理する。より具体的には、データセット/識別子受信部42によって識別子セットが受信されると、データベース管理部43は、識別子セットに含まれるデータセットIDによって示されるデータセットを特定し、当該データセットに、当該データセットIDに対応するトランザクションIDを設定する。 The database management unit 43 manages a part or all of the database managed by the database management technique according to the present disclosure as a data store. Here, the database management unit 43 according to the present embodiment manages the database by setting the transaction ID and accumulating the received data set. More specifically, when the identifier set is received by the data set / identifier receiving unit 42, the database management unit 43 identifies the data set indicated by the data set ID included in the identifier set, and applies the data set to the data set. A transaction ID corresponding to the data set ID is set.

集合データセット生成部44は、所定のトランザクションIDによって指定された時点のデータセット及びより古いデータセットに含まれる変更内容を連結し、DELETEデータセットに示されたデータを除くことで、所定のトランザクションIDによって指定された時点のデータセット及びより古いデータセットを統合し、集合データセットを生成する。集合データセットが生成されると、データベース管理部43は、集合データセットにトランザクションIDを設定することで、当該集合データセットを、蓄積されたデータセットの1つとして管理する。本実施形態では、集合データセットに、始点を示すトランザクションIDと、終点を示すトランザクションIDと、の2つのトランザクションIDが設定されることで、当該集合データセットに含まれるトランザクションの範囲を示す。ここで、始点を示すトランザクションIDとは、集合データセットに連結されたオリジナルのトランザクションのうち最も古いトランザクションのIDであり、終点を示すトランザクションIDとは、集合データセットに連結されたオリジナルのトランザクションのうち最も新しいトランザクションのIDである。また、データベース管理部43は、集合データセットへのトランザクションIDの設定に伴って、当該集合データセットの生成に用いられたデータセットを削除する。 The aggregate data set generation unit 44 concatenates the data set at the time specified by the predetermined transaction ID and the changes contained in the older data set, and removes the data shown in the DELETE data set to remove the data indicated in the DELETE data set, thereby performing a predetermined transaction. The data set at the time specified by the ID and the older data set are integrated to generate a collective data set. When the set data set is generated, the database management unit 43 manages the set data set as one of the accumulated data sets by setting a transaction ID in the set data set. In the present embodiment, two transaction IDs, a transaction ID indicating a start point and a transaction ID indicating an end point, are set in the set data set to indicate the range of transactions included in the set data set. Here, the transaction ID indicating the start point is the ID of the oldest transaction among the original transactions concatenated in the aggregate data set, and the transaction ID indicating the end point is the ID of the original transaction concatenated in the aggregate data set. This is the ID of the newest transaction. Further, the database management unit 43 deletes the data set used for generating the set data set in accordance with the setting of the transaction ID in the set data set.

データ抽出部45は、データベース管理部43によって蓄積されているデータセットのうち、所望のトランザクションIDによって指定された時点のデータセット及びより古いトランザクションIDが設定されたデータセットから、所望の検索条件に合致するデータを抽出する。具体的には、データ抽出部45は、INSERTデータセットに含まれるタプルの変更内容を検索することによって索出されたデータから、DELETEデータセットに記載された削除対象タプルIDに示されたデータを除くことで、所望の検索条件に合致するデータを抽出する。ここでデータ抽出部45は、検索対象トランザクションIDが、以後反映されないデータセットの範囲を示す特定トランザクションID(本実施形態では、最新のトランザクションID)よりも新しい場合、検索対象トランザクションIDが、当該特定トランザクションIDと同じか又はより古いトランザクションIDとなるのを待ってから、抽出を行う。 Among the data sets accumulated by the database management unit 43, the data extraction unit 45 sets the desired search conditions from the data set at the time specified by the desired transaction ID and the data set in which the older transaction ID is set. Extract matching data. Specifically, the data extraction unit 45 selects the data indicated in the deletion target tuple ID described in the DELETE data set from the data retrieved by searching the changed contents of the tuple included in the INSERT data set. By excluding, data matching the desired search conditions is extracted. Here, when the search target transaction ID is newer than the specific transaction ID indicating the range of the data set that is not reflected thereafter (in the present embodiment, the latest transaction ID), the data extraction unit 45 determines that the search target transaction ID is the specific. The extraction is performed after waiting for the transaction ID to be the same as or older than the transaction ID.

ビュー用データ生成部46は、データベース管理部43によって蓄積されているデータセットに基づいて、予め設定された検索条件に合致するデータを含むビュー用データセットを生成する。なお、ここで生成されるビュー用データセットの構成は、図4を用いて説明した変更用データセットの構成と概略同様であり、生成されたビュー用データセットには、対応するトランザクションIDが設定される。 The view data generation unit 46 generates a view data set including data that matches the preset search conditions based on the data set accumulated by the database management unit 43. The structure of the view data set generated here is substantially the same as the structure of the change data set described with reference to FIG. 4, and the corresponding transaction ID is set in the generated view data set. Will be done.

ビュー用データ送信部47は、データベース管理部43によって蓄積されているデータセットに基づいて生成された、予め設定された検索条件に合致するデータを含むビュー用データセットを、ビューマネージャーに送信する。 The view data transmission unit 47 transmits to the view manager a view data set including data that matches the preset search conditions, which is generated based on the data set accumulated by the database management unit 43.

次に、ビュー管理ノードの機能構成を説明する。本実施形態において、ビューマネージャーとしての役割を有する複数のノードの夫々は、ビューマネージャー用プログラムをバスおよびRAM12を介してCPU11が読み込んで実行することによって、ビュー用データ取得部51、ビュー管理部52、ビュー用データ生成部53、ビュー用データ送信部54、ビュー用トランザクションID更新部55、ビュー変更部56、ビュー検索部57、ビュー検索結果補正部58および特定トランザクションID決定部59を備えるビュー管理ノードとして機能する。 Next, the functional configuration of the view management node will be described. In the present embodiment, each of the plurality of nodes having a role as a view manager has the view data acquisition unit 51 and the view management unit 52 by reading and executing the view manager program by the CPU 11 via the bus and the RAM 12. View management including a view data generation unit 53, a view data transmission unit 54, a view transaction ID update unit 55, a view change unit 56, a view search unit 57, a view search result correction unit 58, and a specific transaction ID determination unit 59. Acts as a node.

ビュー用データ取得部51は、予め設定された検索条件に合致するデータを含むビュー用データセットを、データストアマネージャーまたは他のビューマネージャーから取得する。 The view data acquisition unit 51 acquires a view data set including data that matches the preset search conditions from the data store manager or another view manager.

ビュー管理部52は、ビュー用データ取得部51によって取得されたビュー用データセットに含まれるデータのうち、ビュー用トランザクションIDによって指定された時点のデータ及びより古いデータの集合を、予め設定された検索条件およびビュー用トランザクションIDに対応するビューとして保持する。ここで、ビュー用トランザクションIDとは、ビューに対応するスナップショットを示すトランザクションIDである。また、ビュー管理部52は、ビュー変更部56によってビューが変更された場合も、変更されたビューを、更新されたビュー用トランザクションIDに対応するビューとして保持する。 The view management unit 52 presets a set of data at the time specified by the view transaction ID and older data among the data included in the view data set acquired by the view data acquisition unit 51. It is retained as a view corresponding to the search condition and the transaction ID for the view. Here, the view transaction ID is a transaction ID indicating a snapshot corresponding to the view. Further, the view management unit 52 holds the changed view as a view corresponding to the updated transaction ID for the view even when the view is changed by the view changing unit 56.

ビュー用データ生成部53は、他のビューに予め設定された検索条件(本実施形態では、当該ビュー用データ送信部54を備えるビューより上位のビューに予め設定された検索条件)に合致するデータを含む第二のビュー用データセットを生成する。ここで、第二のビュー用データセットは、上位ビューによって管理されるビューの変更のために生成されるものである。 The view data generation unit 53 is data that matches search conditions preset for other views (in the present embodiment, search conditions preset for a view higher than the view including the view data transmission unit 54). Generate a second view dataset that contains. Here, the second view data set is generated for changing the view managed by the upper view.

また、ビュー用データ生成部53は、当該ビューマネージャーによって管理されているビューに基づいて第二のビュー用データセットを生成してもよいし、ビュー用データ取得部51によって取得されたビュー用データセットに基づいて第二のビュー用データセットを生成してもよい。ビュー用データセットに基づいて第二のビュー用データセットを生成する場合、ビュー用データ生成部53は、取得されたビュー用データセットのうち、ビュー用トランザクションIDより新しいトランザクションIDが設定されたデータセットに基づいて、第二のビュー用データセットを生成する。 Further, the view data generation unit 53 may generate a second view data set based on the view managed by the view manager, or the view data acquisition unit 51 may generate a second view data set. A second view dataset may be generated based on the set. When the second view data set is generated based on the view data set, the view data generation unit 53 sets the transaction ID newer than the view transaction ID among the acquired view data sets. Generate a second view dataset based on the set.

ビュー用データ送信部54は、第二のビュー用データセットを、当該第二のビュー用データセットの生成に用いられた検索条件に係るビューを管理するビューマネージャー(本実施形態では、上位ビューを管理するビューマネージャー)に送信する。 The view data transmission unit 54 manages the view related to the search condition used to generate the second view data set for the second view data set (in the present embodiment, the upper view is used as the upper view). Send to the view manager to manage).

ビュー用トランザクションID更新部55は、ビュー用トランザクションIDを更新する。 The view transaction ID update unit 55 updates the view transaction ID.

ビュー変更部56は、ビュー管理部52によって管理されているビューを、更新されたビュー用トランザクションIDによって指定された時点のビュー用データセット及びより古いビュー用データセットを用いて変更する。 The view change unit 56 changes the view managed by the view management unit 52 by using the view data set at the time specified by the updated view transaction ID and the older view data set.

ビュー検索部57は、指定された検索条件に従ってビューを検索する。 The view search unit 57 searches for a view according to a designated search condition.

ビュー検索結果補正部58は、検索対象のスナップショットを示す検索対象トランザクションIDが、ビュー用トランザクションIDよりも新しい場合に、ビュー検索部57による検索結果を補正する。ビュー検索結果補正部58は、検索結果の補正に、ビュー用データ取得部51によって取得されたがビューに未反映のビュー用データセットのうち、検索対象トランザクションIDまでのビュー用データセットを用いる。但し、ここでビュー検索結果補正部58は、検索対象トランザクションIDが、以後取得されないビュー用データセットの範囲を示す特定トランザクションIDよりも新しい場合、検索対象トランザクションIDが、当該特定トランザクションIDと同じか又はより古いトランザクションIDとなるのを待ってから、補正を行う。 The view search result correction unit 58 corrects the search result by the view search unit 57 when the search target transaction ID indicating the snapshot of the search target is newer than the view transaction ID. The view search result correction unit 58 uses the view data set up to the search target transaction ID among the view data sets acquired by the view data acquisition unit 51 but not reflected in the view to correct the search result. However, if the view search result correction unit 58 is newer than the specific transaction ID indicating the range of the view data set that is not acquired thereafter, is the search target transaction ID the same as the specific transaction ID? Alternatively, the correction is performed after waiting for the transaction ID to become older.

特定トランザクションID決定部59は、ビュー用データセットを生成する夫々のノードから、ノード毎のビュー用データセット生成部46、53によるビュー用データセット生成処理の進行時点を示すトランザクションIDを収集し、最もビュー用データセット生成処理の進行が遅れているノードにおける進行時点を示すトランザクションIDを、特定トランザクションIDとして決定する。即ち、特定トランザクションID決定部59は、各ノードからノード毎の現在の処理進行時点を示すトランザクションIDを収集してこの値をノード毎に管理し、ノード毎の最新の値を比較して、比較の結果決定された最小の値(最も古い処理時点を指す値)を、特定トランザクションIDとして決定する。 The specific transaction ID determination unit 59 collects transaction IDs indicating the progress time of the view data set generation process by the view data set generation units 46 and 53 for each node from each node that generates the view data set. The transaction ID indicating the progress time in the node in which the progress of the view data set generation process is the most delayed is determined as the specific transaction ID. That is, the specific transaction ID determination unit 59 collects transaction IDs indicating the current processing progress time of each node from each node, manages this value for each node, compares the latest values for each node, and compares them. The minimum value (value indicating the oldest processing time point) determined as a result of is determined as a specific transaction ID.

<処理の流れ>
次に、本実施形態に係る処理の詳細を説明する。なお、本実施形態において説明される処理の具体的な内容および順序等は、実施する上での一例である。具体的な処理内容および順序等は、実施の態様に応じて適宜選択されてよい。
<Processing flow>
Next, the details of the processing according to the present embodiment will be described. The specific contents and order of the processes described in the present embodiment are examples in carrying out the processes. The specific processing content, order, and the like may be appropriately selected depending on the embodiment.

図5から図10は、本実施形態におけるデータベース管理処理の流れを示すフローチャートである。図5のフローチャートに示された処理は、データベースシステムに属する何れかのセッション管理ノードのクエリ受付部21によって、ユーザー端末9から送信されたクエリが受け付けられ、また、データベースの内容の変更命令を含むトランザクションの開始命令が受信されたことを契機として開始される。 5 to 10 are flowcharts showing a flow of database management processing in the present embodiment. The process shown in the flowchart of FIG. 5 includes a query sent from the user terminal 9 by the query reception unit 21 of any session management node belonging to the database system, and also includes an instruction to change the contents of the database. It is started when the transaction start command is received.

ステップS101からステップS105では、トランザクションが開始され、処理に用いられるスナップショット特定用トランザクションIDが取得される。トランザクションの開始命令が受信されると(ステップS101)、スナップショット特定用情報取得部23は、トランザクションマネージャーに対して、処理に用いられるスナップショット特定用トランザクションIDを問い合わせる(ステップS102およびステップS103)。そして、トランザクションマネージャーは、返信の時点において最後に付与されたトランザクションIDをセッションマネージャーに送信し(ステップS104)、セッションマネージャーのスナップショット特定用情報取得部23は、このトランザクションIDを取得する(ステップS105)。なお、本実施形態において、トランザクションマネージャーは、返信の時点において最後に付与された(即ち、最新の)トランザクションIDを送信することとしているが、この際に送信されるトランザクションIDは、最新のものに限定されない。その後、本フローチャートに示された処理は終了する。 In steps S101 to S105, a transaction is started, and a snapshot identification transaction ID used for processing is acquired. When the transaction start command is received (step S101), the snapshot identification information acquisition unit 23 inquires the transaction manager of the snapshot identification transaction ID used for processing (step S102 and step S103). Then, the transaction manager transmits the transaction ID finally assigned at the time of reply to the session manager (step S104), and the snapshot identification information acquisition unit 23 of the session manager acquires this transaction ID (step S105). ). In the present embodiment, the transaction manager transmits the transaction ID last given (that is, the latest) at the time of reply, but the transaction ID transmitted at this time is the latest one. Not limited. After that, the process shown in this flowchart ends.

図6のフローチャートに示された処理は、図5に示された処理においてスナップショット特定用トランザクションIDが取得されたことを契機として開始される。 The process shown in the flowchart of FIG. 6 is started when the snapshot identification transaction ID is acquired in the process shown in FIG.

ステップS106では、トランザクションに含まれる命令が読み出される。処理用データ取得部24は、クエリ受信部によって受信されたクエリに含まれる、次に処理されるべき命令を読み出す。その後、処理はステップS107へ進む。 In step S106, the instruction included in the transaction is read out. The processing data acquisition unit 24 reads the instruction to be processed next included in the query received by the query receiving unit. After that, the process proceeds to step S107.

ステップS107では、当該トランザクションに係る変更用データセット生成/更新処理を終了するか否かが判定される。具体的には、クエリ処理部22は、当該トランザクションにおける次の命令がコミット命令である場合、当該トランザクションに係る変更用データセット生成/更新処理を終了する。当該トランザクションにおける次の命令がコミット命令ではない場合、処理はステップS108へ進む。 In step S107, it is determined whether or not to end the change data set generation / update process related to the transaction. Specifically, when the next instruction in the transaction is a commit instruction, the query processing unit 22 ends the change data set generation / update process related to the transaction. If the next instruction in the transaction is not a commit instruction, the process proceeds to step S108.

ステップS108からステップS112では、ステップS106で読み出された命令の処理に必要なデータが取得される。ステップS108からステップS112では、処理用データ取得部24は、データストアマネージャーより高速なデータ取得に適したビューマネージャーに対して、データの要求を行う。処理用データ取得部24は、読み出された命令に基づいて作成された検索条件、およびステップS105で取得されたスナップショット特定用トランザクションIDをビューマネージャーに通知して、データを要求する(ステップS108)。そして、送信されたデータ要求は、ビューマネージャーによって受信される(ステップS109)。 In steps S108 to S112, data necessary for processing the instruction read in step S106 is acquired. In steps S108 to S112, the processing data acquisition unit 24 requests data from a view manager suitable for data acquisition at a higher speed than the data store manager. The processing data acquisition unit 24 notifies the view manager of the search condition created based on the read instruction and the snapshot identification transaction ID acquired in step S105, and requests data (step S108). ). Then, the transmitted data request is received by the view manager (step S109).

ステップS109でデータ要求を受信したビューマネージャーは、当該ビューマネージャーが管理するビューから、検索条件およびスナップショット特定用トランザクションIDに応じたデータを取得する(ステップS110)。データ要求を受信したビューマネージャーがデータを取得する処理の流れは、図12を用いて後述する。 The view manager who received the data request in step S109 acquires the data according to the search condition and the transaction ID for specifying the snapshot from the view managed by the view manager (step S110). The flow of the process in which the view manager that receives the data request acquires the data will be described later with reference to FIG.

データ要求を受信したビューマネージャーは、ステップS110で取得された処理用データを、データ要求の送信元セッションマネージャーに対して送信する(ステップS111)。その後、データ要求の送信元セッションマネージャーの処理用データ取得部24は、送信されたデータを受信することで、処理用データを取得する(ステップS112)。その後、処理はステップS113へ進む。 The view manager that has received the data request transmits the processing data acquired in step S110 to the session manager that sends the data request (step S111). After that, the processing data acquisition unit 24 of the data request transmission source session manager acquires the processing data by receiving the transmitted data (step S112). After that, the process proceeds to step S113.

ステップS113では、データストアマネージャーからのデータ取得が必要か否か判定される。セッションマネージャーは、ステップS112までのビューマネージャーからの処理用データの取得処理で、クエリ処理部22による処理に必要なデータが全て揃ったか否かを判定する。これは、ビューによってカバーされていないデータが存在する可能性があり、処理に必要なデータがビューマネージャーから取得できない可能性があるためである。 In step S113, it is determined whether or not it is necessary to acquire data from the data store manager. The session manager determines whether or not all the data necessary for the processing by the query processing unit 22 is prepared in the processing data acquisition processing from the view manager up to step S112. This is because there may be some data that is not covered by the view and the data needed for processing may not be available from the view manager.

例えば、ビューによってカバーされるデータの範囲が、データ取得対象のテーブルの一部である場合、当該テーブルに含まれるデータのうち、ビューによってカバーされているデータについては、ビューマネージャーへの問い合わせで取得される。一方、データ取得対象のテーブルのうち、ビューによってカバーされていないデータについては、データストアアネージャーから取得する必要がある。ここで、ステップS113における判定の具体的な方法としては、テーブルにおいてビューによってカバーされる範囲を示すリスト等の情報(例えば、タプルIDや、テーブルの主キー等のタプルの内容を用いてビューによるカバーの有無を示すことが出来る)を設定しておき、このリストを参照することで、ビューマネージャーへの問い合わせのみで必要なデータが全て揃ったか否かを判定する方法が採用されてよい。 For example, if the range of data covered by the view is part of the table for which data is to be acquired, the data contained in the table that is covered by the view will be acquired by querying the view manager. Will be done. On the other hand, among the tables to be acquired, the data that is not covered by the view needs to be acquired from the data store manager. Here, as a specific method of determination in step S113, information such as a list indicating the range covered by the view in the table (for example, the tuple ID, the content of the tuple such as the primary key of the table, etc. is used by the view. By setting (it can indicate the presence or absence of a cover) and referring to this list, a method of determining whether or not all the necessary data are available may be adopted only by inquiring to the view manager.

また、ビューによってカバーされるデータの範囲が、テーブル単位で設定される場合、より単純化した判定方法を採用することも出来る。例えば、テーブルがビューによってカバーされているか否かを判定可能な情報をテーブル単位で設定し、ビューによってカバーされていないテーブルについては、データストアアネージャーに問い合わせる方法を採用することとしてもよい。 Further, when the range of data covered by the view is set for each table, a simpler determination method can be adopted. For example, information that can determine whether or not a table is covered by a view may be set for each table, and for a table that is not covered by a view, a method of inquiring to the data store manager may be adopted.

判定の結果、処理に必要なデータが全て揃った(データストアマネージャーからのデータ取得が不要である)と判定された場合、処理はステップS119へ進む。一方、判定の結果、処理に必要なデータが不足している(データストアマネージャーからのデータ取得が必要である)と判定された場合、処理はステップS114へ進む。 As a result of the determination, if it is determined that all the data necessary for the processing is complete (data acquisition from the data store manager is unnecessary), the processing proceeds to step S119. On the other hand, if it is determined as a result of the determination that the data required for the process is insufficient (data acquisition from the data store manager is necessary), the process proceeds to step S114.

ステップS114からステップS118では、ステップS106で読み出された命令の処理に必要なデータが取得される。処理用データ取得部24は、検索条件およびスナップショット特定用トランザクションIDを、データストアマネージャーに通知して、データを要求する(ステップS114)。 In steps S114 to S118, data necessary for processing the instruction read in step S106 is acquired. The processing data acquisition unit 24 notifies the data store manager of the search condition and the transaction ID for specifying the snapshot, and requests the data (step S114).

データ要求を受信した(ステップS115)データストアマネージャーの処理用データ送信部41は、受信されたスナップショット特定用トランザクションIDによって指定された時点の変更用データセット及びより古い変更用データセットを、受信された検索条件で検索し(ステップS116)、検索の結果得られた処理用データを、セッションマネージャーに対して送信する(ステップS117)。ここで、データ要求を受信したデータストアマネージャーがデータを取得する処理の流れの詳細は、図11を用いて後述する。その後、処理用データ取得部24は、データストアマネージャーから送信されたデータを受信することで、所望の処理用データを取得する(ステップS118)。その後、処理はステップS119へ進む。 Upon receiving the data request (step S115), the processing data transmission unit 41 of the data store manager receives the change data set at the time specified by the received snapshot identification transaction ID and the older change data set. The search is performed based on the search conditions (step S116), and the processing data obtained as a result of the search is transmitted to the session manager (step S117). Here, the details of the process flow for the data store manager receiving the data request to acquire the data will be described later with reference to FIG. After that, the processing data acquisition unit 24 acquires the desired processing data by receiving the data transmitted from the data store manager (step S118). After that, the process proceeds to step S119.

ステップS119では、命令処理及び変更用データセット生成/更新処理が実行される。本ステップで実行される処理の詳細については、図7を用いて詳述する。その後、処理はステップS106へ戻る。 In step S119, instruction processing and change data set generation / update processing are executed. The details of the processing executed in this step will be described in detail with reference to FIG. 7. After that, the process returns to step S106.

図7は、本実施形態においてセッションマネージャーによって実行される、命令処理及び変更用データセット生成/更新処理の流れを示す図である。本フローチャートは、図6に示されたステップS119の処理の内容を詳細に示したものである。 FIG. 7 is a diagram showing a flow of instruction processing and data set generation / update processing for change executed by the session manager in the present embodiment. This flowchart shows in detail the contents of the process of step S119 shown in FIG.

ステップS121では、取得された処理用データから、重複データが削除される。上述の通り、ビューは検索条件に基づいてデータストアマネージャー等から得られたデータを用いて生成されるものであるため、ステップS112でビューマネージャーから取得されたデータと、ステップS118でデータストアマネージャーから取得されたデータには、同一のタプルに関するデータの重複が生じ得る。このため、処理用データ取得部24は、ステップS112及びステップS118で取得されたデータに、同一のタプルに係るデータが重複して含まれている場合、重複するデータの一方を削除することで、データの重複を解消させる。その後、処理はステップS122へ進む。 In step S121, duplicate data is deleted from the acquired processing data. As described above, since the view is generated using the data obtained from the data store manager or the like based on the search conditions, the data acquired from the view manager in step S112 and the data from the data store manager in step S118 The acquired data may have duplicate data related to the same taple. Therefore, when the data acquired in steps S112 and S118 contains duplicate data related to the same tuple, the processing data acquisition unit 24 deletes one of the duplicated data. Eliminate data duplication. After that, the process proceeds to step S122.

なお、本実施形態では、データを取得した後に重複を解消する手法を採用しているが、このような手法に代えて、データ要求の時点で重複が発生しないように、ステップS108及びステップS114で送信されるデータ要求の内容を変更する手法が採用されてもよい。 In the present embodiment, a method of eliminating duplication after acquiring data is adopted, but instead of such a method, in step S108 and step S114 so that duplication does not occur at the time of data request. A method of changing the content of the data request to be transmitted may be adopted.

ステップS122及びステップS123では、命令処理のために取得されたデータに対して、当該トランザクションにおいて生成済みの変更用データセットに基づいた調整が加えられる。これは、ステップS124における命令実行を、同一トランザクション内において既に実行された命令の実行結果を正しく反映したものとするための処理である。クエリ処理部22は、当該トランザクションについて既に1回以上変更用データセット生成/変更処理が実行されており、当該トランザクションに係る変更用データセットが生成されている場合、当該変更用データセットの内容を用いて、ステップS118までの処理で取得されたデータを調整する。 In steps S122 and S123, adjustments are made to the data acquired for instruction processing based on the change dataset generated in the transaction. This is a process for correctly reflecting the execution result of the instruction already executed in the same transaction for the instruction execution in step S124. When the change data set generation / change process has already been executed once or more for the transaction and the change data set related to the transaction has been generated, the query processing unit 22 displays the contents of the change data set. It is used to adjust the data acquired in the processes up to step S118.

より具体的には、クエリ処理部22は、当該変更用データセット内のINSERTセットを検索条件(ステップS108及びステップS114で用いられた検索条件)で検索し、検索の結果抽出されたタプルを、ステップS118までに得られた取得データに追加する(ステップS122)。更に、クエリ処理部22は、当該変更用データセット内のDELETEセットに示されたタプルを、当該取得データから除外する(ステップS123)。その後、処理はステップS124へ進む。 More specifically, the query processing unit 22 searches the INSERT set in the change data set with the search conditions (search conditions used in steps S108 and S114), and extracts the tuples extracted as a result of the search. It is added to the acquired data obtained up to step S118 (step S122). Further, the query processing unit 22 excludes the tuple shown in the DELETE set in the change data set from the acquired data (step S123). After that, the process proceeds to step S124.

ステップS124では、命令が実行される。クエリ処理部22は、ステップS108からステップS118までの処理で取得され、ステップS122及びステップS123で調整された結果得られた取得データを用いて、ステップS106で読み出された命令を処理する。即ち、クエリ処理部22は、データストアマネージャーおよび/またはビューマネージャーからの取得データ、及び当該トランザクションにおいて生成済みの変更用データセットに基づいて、命令を処理する。その後、処理はステップS125へ進む。 In step S124, the instruction is executed. The query processing unit 22 processes the instruction read in step S106 by using the acquired data acquired in the processes from step S108 to step S118 and adjusted in steps S122 and S123. That is, the query processing unit 22 processes the instruction based on the data acquired from the data store manager and / or the view manager, and the change data set generated in the transaction. After that, the process proceeds to step S125.

ステップS125からステップS127では、変更用データセットが生成または更新される。データセット生成部25は、ステップS124における命令実行の結果得られた変更をデータベースに反映することなく、変更対象のタプルIDおよび変更内容を含む変更用データセット(図4を参照)を生成または更新する。 From step S125 to step S127, the change data set is generated or updated. The data set generation unit 25 generates or updates a change data set (see FIG. 4) including the tuple ID to be changed and the change contents without reflecting the change obtained as a result of the instruction execution in step S124 in the database. To do.

ここで、命令実行の結果発生した新たな削除対象タプルには、当該トランザクションのこれまでの処理において新たに追加されたタプルを対象とするものと、そうでないものとが存在する。このため、データセット生成部25は、命令実行の結果発生した新たな削除対象タプルのうち、当該トランザクションに係る変更用データセット内のINSERTセットに存在するタプル(当該トランザクションのこれまでの処理において新たに追加されたタプル)については、当該INSERTセットから削除する(ステップS125)。また、データセット生成部25は、命令実行の結果発生した新たな削除対象タプルのうち、当該トランザクションに係る変更用データセット内のINSERTセットに無い新たな削除対象タプルについては、当該トランザクションに係る変更用データセット内のDELETEセットに追加する(ステップS126)。そして、データセット生成部25は、命令実行の結果発生した新たに追加されるタプル(タプルID及び当該タプルのデータ内容)を、当該トランザクションに係る変更用データセット内のINSERTセットに追加する(ステップS127)。 Here, the new tuples to be deleted generated as a result of instruction execution include those that target the tuples newly added in the processing so far of the transaction and those that do not. Therefore, the data set generation unit 25 uses the tuples existing in the INSERT set in the change data set related to the transaction among the new tuples to be deleted generated as a result of instruction execution (new in the processing so far of the transaction). The tuples added to) are deleted from the INSERT set (step S125). In addition, the data set generation unit 25 changes the new deletion target taples generated as a result of instruction execution for the new deletion target taples that are not in the INSERT set in the change data set related to the transaction. Add to the INSERT set in the data set for use (step S126). Then, the data set generation unit 25 adds the newly added tuple (tuple ID and data content of the tuple) generated as a result of instruction execution to the INSERT set in the change data set related to the transaction (step). S127).

ここで、変更命令がUPDATE命令またはINSERT命令である場合、INSERTデータセットのタプルIDには、新たに採番された、データベースシステム全体において(より具体的には、複数のデータストアマネージャーによって管理される複数のデータストア間において)ユニークなタプルIDが書き込まれる。また、当該トランザクションに係る変更用データセットが新たに生成される場合、当該変更用データセットには、ステップS105で取得された、スナップショット特定用トランザクションIDが設定される。その後、本フローチャートに示された処理は終了する。 Here, when the change instruction is an UPDATE instruction or an INSERT instruction, the tapple ID of the INSERT data set is managed by a newly assigned database system as a whole (more specifically, by a plurality of data store managers). A unique tapple ID is written (between multiple data stores). When a change data set related to the transaction is newly generated, the snapshot identification transaction ID acquired in step S105 is set in the change data set. After that, the process shown in this flowchart ends.

なお、本実施形態では、命令実行の結果発生した新たな削除対象タプルが、当該トランザクションに係る変更用データセット内のINSERTセットに存在するタプルである場合、命令実行の都度、新たな削除対象タプルを変更用データセット内のINSERTセットから削除する方法を採用している(ステップS125を参照)。但し、上述した方法に代えて、他の方法が採用されてもよい。例えば、トランザクション内での命令実行で発生する削除対象タプルを、命令が順次実行されている間はDELETEセットに蓄積しておき、INSERTセットのデータストアマネージャーへの送信(後述するステップS206)前に、INSERTセットとDELETEセットとを比較し、DELETEセットとINSERTセットとの間で重複するタプルを相殺することとしてもよい。 In the present embodiment, when the new deletion target taple generated as a result of instruction execution is a taple existing in the INSERT set in the change data set related to the transaction, the new deletion target taple is deleted each time the instruction is executed. Is deleted from the INSERT set in the change data set (see step S125). However, instead of the above-mentioned method, another method may be adopted. For example, the delete target taples generated by the execution of instructions in a transaction are stored in the DELETE set while the instructions are sequentially executed, and before the INSERT set is transmitted to the data store manager (step S206 described later). , The INSERT set and the INSERT set may be compared to offset the overlapping taples between the INSERT set and the INSERT set.

図8のフローチャートに示された処理は、セッションマネージャーによって生成された変更用データセットに係るコミット命令が読み出されたことを契機として実行される。 The process shown in the flowchart of FIG. 8 is executed when the commit instruction related to the change data set generated by the session manager is read.

ステップS201およびステップS202では、変更用データセットに含まれるINSERTデータセット(変更内容)及び当該変更用データセットに設定されたデータセットIDが、データストアマネージャー宛に送信される。ここで、各セッションマネージャーのデータセット送信部26は、複数のデータストアマネージャーのうち、少なくとも、INSERT命令によってデータが追加されるデータストアを管理するデータストアマネージャーを決定し(ステップS201)、データセットIDおよびINSERTデータセットを、決定されたデータストアマネージャーに対して送信する(ステップS202)。ここで、INSERTデータセットは、目的のデータストアマネージャーに対して直接送信されてもよいし、複数のノードを介して間接的に送信されてもよい。そして、データストアマネージャーのデータセット/識別子受信部42は、セッションマネージャーによって送信されたデータセットIDおよびINSERTデータセット(変更内容)を取得する。その後、処理はステップS203へ進む。 In step S201 and step S202, the ENCERT data set (change content) included in the change data set and the data set ID set in the change data set are transmitted to the data store manager. Here, the data set transmission unit 26 of each session manager determines at least the data store manager that manages the data store to which data is added by the ENCERT instruction among the plurality of data store managers (step S201), and determines the data set. The ID and INSERT data sets are transmitted to the determined data store manager (step S202). Here, the INSERT dataset may be transmitted directly to the target data store manager or indirectly via a plurality of nodes. Then, the data set / identifier receiving unit 42 of the data store manager acquires the data set ID and the ENCERT data set (change contents) transmitted by the session manager. After that, the process proceeds to step S203.

ステップS203では、変更用データセットにDELETEデータセットが含まれるか否かが判定される。変更用データセットにDELETEデータセットが含まれず、INSERTデータセットのみが変更用データセットに含まれる場合、当該命令は既存のタプルを変更するものでは無いため、トランザクションマネージャーによる競合判定は不要である。このため、変更用データセットにDELETEデータセットが含まれないと判定された場合、処理はステップS204へ進む。 In step S203, it is determined whether or not the change data set includes the DELETE data set. When the change data set does not include the DELETE data set and only the INSERT data set is included in the change data set, the instruction does not change the existing taple, and the transaction manager does not need to determine the conflict. Therefore, if it is determined that the change data set does not include the DELETE data set, the process proceeds to step S204.

ステップS204では、データセットIDが送信される。セッションマネージャーのデータセット送信部26は、データセットIDを、トランザクションマネージャーに送信する。トランザクションマネージャーの情報取得部31は、セッションマネージャーによって送信されたデータセットIDを取得する。その後、本フローチャートに示された処理は終了する。 In step S204, the dataset ID is transmitted. The data set transmission unit 26 of the session manager transmits the data set ID to the transaction manager. The information acquisition unit 31 of the transaction manager acquires the data set ID transmitted by the session manager. After that, the process shown in this flowchart ends.

一方、ステップS203で変更用データセットにDELETEデータセットが含まれると判定された場合、処理はステップS205へ進む。 On the other hand, if it is determined in step S203 that the change data set includes the DELETE data set, the process proceeds to step S205.

ステップS205およびステップS206では、変更用データセットに設定されたデータセットIDおよびDELETEデータセット(変更内容)が、データストアマネージャー宛に送信される。ここで、各セッションマネージャーのデータセット送信部26は、複数のデータストアマネージャーのうち、少なくとも、DELETE命令による変更対象のデータを含むデータストアを管理するデータストアマネージャーを送信先に決定し(ステップS205)、データセットIDおよびDELETEデータセットを、送信先に決定されたデータストアマネージャーに対して送信する(ステップS206)。ここで、DELETEデータセットは、目的のデータストアマネージャーに対して直接送信されてもよいし、複数のノードを介して間接的に送信されてもよい。そして、データストアマネージャーのデータセット/識別子受信部42は、セッションマネージャーによって送信されたデータセットIDおよびDELETEデータセット(変更内容)を取得する。その後、処理はステップS207へ進む。 In step S205 and step S206, the data set ID and the DELETE data set (change contents) set in the change data set are transmitted to the data store manager. Here, the data set transmission unit 26 of each session manager determines, among the plurality of data store managers, at least the data store manager that manages the data store including the data to be changed by the DELETE instruction as the transmission destination (step S205). ), The data set ID and the DELETE data set are transmitted to the data store manager determined as the destination (step S206). Here, the DELETE data set may be transmitted directly to the target data store manager, or may be indirectly transmitted via a plurality of nodes. Then, the data set / identifier receiving unit 42 of the data store manager acquires the data set ID and the DELETE data set (change contents) transmitted by the session manager. After that, the process proceeds to step S207.

ステップS207では、データセットID、スナップショット特定用トランザクションIDおよびDELETEデータセットが、トランザクションマネージャー宛に送信される。セッションマネージャーのデータセット送信部26は、ステップS206で送信されたデータセットIDおよびDELETEデータセット(削除対象タプルID)を、スナップショット特定用トランザクションIDとともに、トランザクションマネージャーに送信する。トランザクションマネージャーの情報取得部31は、セッションマネージャーによって送信されたデータセットID、スナップショット特定用トランザクションIDおよびDELETEデータセット(削除対象タプルID)を取得する。その後、本フローチャートに示された処理は終了する。 In step S207, the data set ID, the snapshot identification transaction ID, and the DELETE data set are transmitted to the transaction manager. The data set transmission unit 26 of the session manager transmits the data set ID and the DELETE data set (delete target taple ID) transmitted in step S206 to the transaction manager together with the transaction ID for specifying the snapshot. The transaction manager information acquisition unit 31 acquires the data set ID, the snapshot identification transaction ID, and the DELETE data set (delete target taple ID) transmitted by the session manager. After that, the process shown in this flowchart ends.

図9および図10のフローチャートに示された処理は、セッションマネージャーによって送信されたデータセットIDがトランザクションマネージャーによって受信されたことを契機として実行される。 The processing shown in the flowcharts of FIGS. 9 and 10 is executed when the data set ID transmitted by the session manager is received by the transaction manager.

ステップS301では、データセットIDが受信される。ここで、送信されたデータセットIDがステップS204で送信されたものである場合、トランザクションマネージャーの情報取得部31は、セッションマネージャーによって送信されたデータセットIDを受信する。一方、送信されたデータセットIDがステップS207で送信されたものである場合、トランザクションマネージャーの情報取得部31は、データセットIDに加えて、スナップショット特定用トランザクションIDおよびDELETEデータセットを取得する。その後、処理はステップS302へ進む。 In step S301, the dataset ID is received. Here, when the transmitted data set ID is the one transmitted in step S204, the information acquisition unit 31 of the transaction manager receives the data set ID transmitted by the session manager. On the other hand, when the transmitted data set ID is the one transmitted in step S207, the information acquisition unit 31 of the transaction manager acquires the snapshot identification transaction ID and the DELETE data set in addition to the data set ID. After that, the process proceeds to step S302.

ステップS302では、受信されたデータセットIDが、DELETEデータセットと併せて受信されたものであるか否かが判定される。受信されたデータセットIDにDELETEデータセットが組み合わせられている場合、処理はステップS304の競合判定へ進む。一方、受信されたデータセットIDにDELETEデータセットが組み合わせられていない場合、当該データセットIDが示す変更用データセットは既存のタプルを変更するものでは無いため、トランザクションマネージャーによる競合判定は不要である。このため、受信されたデータセットIDにDELETEデータセットが組み合わせられていない場合、処理はステップS303へ進む。 In step S302, it is determined whether or not the received data set ID is received together with the DELETE data set. When the received data set ID is combined with the DELETE data set, the process proceeds to the conflict determination in step S304. On the other hand, when the received data set ID is not combined with the DELETE data set, the change data set indicated by the data set ID does not change the existing tuple, so that the transaction manager does not need to determine the conflict. .. Therefore, if the received data set ID is not combined with the DELETE data set, the process proceeds to step S303.

ステップS303では、トランザクションIDが採番される。削除対象の競合が無い場合、識別子生成部34は、当該データセットIDが示す変更用データセットに係るトランザクションを識別するためのトランザクションIDを採番する。上述の通り、トランザクションIDは、トランザクションの処理に係る論理上の時系列における位置を把握可能な識別子であり、本実施形態では、競合が存在しないことが確認された順に、昇順で整数の数値が採番される。その後、処理はステップS314へ進む。 In step S303, the transaction ID is numbered. When there is no conflict to be deleted, the identifier generation unit 34 assigns a transaction ID for identifying the transaction related to the change data set indicated by the data set ID. As described above, the transaction ID is an identifier that can grasp the position in the logical time series related to the transaction processing, and in the present embodiment, the numerical values of integers in ascending order are in ascending order in the order in which it is confirmed that there is no conflict. It will be numbered. After that, the process proceeds to step S314.

ステップS304では、競合判定が行われる。競合判定部32は、ステップS301で取得されたDELETEデータセットに記載された削除対象タプルIDと、後述するステップS313が以前に実行された際に蓄積された競合判定用タプルIDと、を比較し、一致するタプルIDが存在するか否かを確認することで、削除対象の競合の有無を判定する。 In step S304, a conflict determination is performed. The conflict determination unit 32 compares the deletion target tuple ID described in the DELETE data set acquired in step S301 with the conflict determination tuple ID accumulated when step S313, which will be described later, is executed before. By confirming whether or not a matching tuple ID exists, it is determined whether or not there is a conflict to be deleted.

また、競合判定用タプルIDは、本フローチャートに係るデータベース管理処理が以前に実行された際に、後述するステップS313において蓄積されたタプルIDである。上述の通り、変更用データセットには、ステップS105で取得されたスナップショット特定用トランザクションIDが設定されており、競合判定部32は、当該トランザクションIDによって特定されるトランザクションよりも後に蓄積された競合判定用タプルIDと、削除対象タプルIDとを比較する。 Further, the tuple ID for conflict determination is a tuple ID accumulated in step S313 described later when the database management process according to this flowchart is previously executed. As described above, the snapshot identification transaction ID acquired in step S105 is set in the change data set, and the conflict determination unit 32 has the conflict accumulated after the transaction specified by the transaction ID. The determination tuple ID and the deletion target tuple ID are compared.

競合判定の結果、削除対象タプルIDと競合判定用タプルIDとが競合する(一致するタプルIDが存在する)と判定された場合、処理はステップS305へ進む。一方、競合判定の結果、削除対象タプルIDと競合判定用タプルIDとが競合しない(一致するタプルIDが存在しない)と判定された場合、処理はステップS312へ進む。 If it is determined as a result of the conflict determination that the tuple ID to be deleted and the tuple ID for conflict determination conflict (there is a matching tuple ID), the process proceeds to step S305. On the other hand, if it is determined as a result of the conflict determination that the tuple ID to be deleted and the tuple ID for conflict determination do not conflict (there is no matching tuple ID), the process proceeds to step S312.

ステップS305からS311では、変更用データセットに係るトランザクションが中断され、当該変更用データセットに基づく変更が中止される。ステップS304の競合判定において削除対象の競合があると判定された場合、トランザクションマネージャー、セッションマネージャーおよびデータストアマネージャーは、該当する削除対象タプルを含む変更用データセットに基づくデータベースの変更を中止する。 In steps S305 to S311 the transaction related to the change data set is interrupted, and the change based on the change data set is stopped. If it is determined in the conflict determination in step S304 that there is a conflict to be deleted, the transaction manager, the session manager, and the data store manager stop the modification of the database based on the modification data set including the corresponding tuple to be deleted.

具体的には、トランザクションマネージャーは、アボート通知を、データセットIDの送信元セッションマネージャーに送信する(ステップS305)。アボート通知を受信したセッションマネージャーは(ステップS306)、当該変更用データセットに係るトランザクションを中断(アボート)し(ステップS307)、少なくとも当該変更用データセットが送付されたデータストア管理ノードに対して、当該変更用データセットの破棄を指示する(ステップS308)。変更用データセットの破棄の指示を受信したデータストアマネージャーは(ステップS309)、受信済みの変更用データセットを破棄する(ステップS310)。また、セッションマネージャーは、トランザクションの中断をユーザーに通知する(ステップS311)。 Specifically, the transaction manager sends an abort notification to the source session manager of the dataset ID (step S305). Upon receiving the abort notification (step S306), the session manager suspends (above) the transaction related to the change dataset (step S307), and at least to the data store management node to which the change dataset was sent. Instruct the destruction of the modification data set (step S308). The data store manager that has received the instruction to destroy the change data set (step S309) discards the received change data set (step S310). In addition, the session manager notifies the user of the interruption of the transaction (step S311).

なお、本実施形態では、データストアマネージャーへのデータセット破棄の指示はセッションマネージャーから送信されるが、トランザクションマネージャーがデータストアマネージャーに対して直接アボート通知を送信することとしてもよい。この際、トランザクションマネージャーは、アボート通知の送信先(アボート対象のデータセットを受信したデータストアマネージャー)を、セッションマネージャーから取得してもよいし、全てのデータストアマネージャーに対してアボート通知をブロードキャストすることとしてもよい。その後、本フローチャートに示された処理は終了する。 In the present embodiment, the instruction to destroy the data set to the data store manager is transmitted from the session manager, but the transaction manager may directly send the abort notification to the data store manager. At this time, the transaction manager may acquire the destination of the abort notification (the data store manager that received the data set to be aborted) from the session manager, or broadcast the abort notification to all the data store managers. It may be that. After that, the process shown in this flowchart ends.

ステップS312では、トランザクションIDが採番される。ステップS304で削除対象の競合が無いと判定された場合、識別子生成部34は、当該データセットIDが示す変更用データセットに係るトランザクションを識別するためのトランザクションIDを採番する。採用される具体的なトランザクションIDの態様は、ステップS303において説明した通りである。その後、処理はステップS313へ進む。 In step S312, the transaction ID is numbered. When it is determined in step S304 that there is no conflict to be deleted, the identifier generation unit 34 assigns a transaction ID for identifying the transaction related to the change data set indicated by the data set ID. The specific mode of the transaction ID adopted is as described in step S303. After that, the process proceeds to step S313.

ステップS313では、競合判定用タプルIDが蓄積される。変更データ単位情報蓄積部33は、ステップS301で取得されたDELETEデータセットに記載された削除対象タプルIDを、競合判定用タプルIDとして、ステップS312で採番されたトランザクションIDと紐付けて蓄積する。ここで蓄積された競合判定用タプルIDは、本フローチャートに係るデータベース管理処理が次回以降実行された際に、ステップS304で参照される。その後、処理はステップS314へ進む。 In step S313, the tuple ID for conflict determination is accumulated. The change data unit information storage unit 33 stores the deletion target tuple ID described in the DELETE data set acquired in step S301 as a conflict determination tuple ID in association with the transaction ID numbered in step S312. .. The tuple ID for conflict determination accumulated here will be referred to in step S304 when the database management process according to this flowchart is executed from the next time onward. After that, the process proceeds to step S314.

ステップS314およびステップS315では、データセットIDおよびトランザクションIDが記録され、データセットIDおよびトランザクションIDが送信される。トランザクションマネージャーは、採番されたトランザクションIDと、データセットIDとを紐付けて、トランザクション管理ノードのストレージに記録する(ステップS314)。そして、トランザクションマネージャーの識別子送信部35は、互いに紐付けられたデータセットIDおよびトランザクションIDの組である識別子セットを、全てのデータストアマネージャーに対して送信する(ステップS315)。 In step S314 and step S315, the data set ID and the transaction ID are recorded, and the data set ID and the transaction ID are transmitted. The transaction manager associates the numbered transaction ID with the data set ID and records them in the storage of the transaction management node (step S314). Then, the transaction manager identifier transmission unit 35 transmits the identifier set, which is a set of the data set ID and the transaction ID associated with each other, to all the data store managers (step S315).

即ち、本実施形態では、トランザクションマネージャーは、採番されたトランザクションIDを、対応するデータセットを有さないデータストアマネージャーに対しても、最新のトランザクションIDとして通知する。最新のトランザクションIDの通知を受けたデータストアマネージャーは、最新のトランザクションIDを、図11を参照して後述するデータ検索処理において、検索対象トランザクションIDとの比較のために用いる。 That is, in the present embodiment, the transaction manager notifies the numbered transaction ID as the latest transaction ID even to the data store manager which does not have the corresponding data set. Upon receiving the notification of the latest transaction ID, the data store manager uses the latest transaction ID for comparison with the search target transaction ID in the data search process described later with reference to FIG.

但し、ステップS315の処理の時点では、採番されたトランザクションIDは、少なくとも、当該データセットIDが示す変更用データセットの変更対象となるデータストアを管理するデータストアマネージャー宛に送信されていればよい。対応するデータセットを有さないデータストアマネージャーへのトランザクションIDの通知がステップS315の処理の時点で行われない場合、例えば、トランザクションマネージャーは、トランザクションIDが採番されるごとに通知するのではなく、定期的(例えば、1秒ごと)に通知することで、通信量を減らすことができる。 However, at the time of the process of step S315, if the numbered transaction ID is at least transmitted to the data store manager that manages the data store to be changed of the data set for change indicated by the data set ID. Good. If the transaction ID is not notified to the data store manager that does not have the corresponding dataset at the time of processing in step S315, for example, the transaction manager does not notify each time the transaction ID is numbered. By notifying regularly (for example, every second), the amount of communication can be reduced.

なお、ステップS315において識別子セットを、変更対象のデータストアを管理するデータストアマネージャーのみに送信する構成を採用する場合、トランザクションマネージャーは、対応するINSERTデータセットおよびDELETEデータセットを受信したデータストアマネージャーを、セッションマネージャーからの通知を受けることによって知ることが出来る。但し、識別子セットの送信先となるデータストアマネージャーを決定するための手段は限定されず、種々の手段が採用されてよい。 In step S315, when adopting a configuration in which the identifier set is transmitted only to the data store manager that manages the data store to be changed, the transaction manager selects the data store manager that has received the corresponding ENCERT data set and the DELETE data set. , You can know by receiving the notification from the session manager. However, the means for determining the data store manager to which the identifier set is transmitted is not limited, and various means may be adopted.

また、識別子送信部35は、複数の識別子セットをまとめて送信してもよい。複数の識別子セットをまとめて送信することで、データベースシステムにおける通信負荷を軽減することが出来る。その後、処理はステップS316へ進む。 Further, the identifier transmission unit 35 may transmit a plurality of identifier sets at once. By transmitting a plurality of identifier sets at once, the communication load in the database system can be reduced. After that, the process proceeds to step S316.

ステップS316からステップS318では、コミット通知が行われる。トランザクションマネージャーは、変更用データセットの送信元セッションマネージャーに対してコミット通知を送信する(ステップS316)。コミット通知を受信した(ステップS317)セッションマネージャーは、クエリの送信元であるユーザー端末9に対して、コミットが完了したことを通知する(ステップS318)。本開示に係るデータベース管理技術では、ユーザーに対するコミット通知は、データストアにおけるデータセットへのトランザクションID付与(後述するステップS321)を待たずに行われてもよいし、待ってから行われてもよい。 From step S316 to step S318, the commit notification is performed. The transaction manager sends a commit notification to the source session manager of the change dataset (step S316). Upon receiving the commit notification (step S317), the session manager notifies the user terminal 9 that is the source of the query that the commit has been completed (step S318). In the database management technique according to the present disclosure, the commit notification to the user may be performed without waiting for the transaction ID to be assigned to the data set in the data store (step S321 described later), or may be performed after waiting. ..

ステップS319では、データセットIDおよびトランザクションIDが受信される。データストアマネージャーのデータセット/識別子受信部42は、データセットIDおよびトランザクションIDの組である識別子セットを受信する。その後、処理はステップS320へ進む。 In step S319, the dataset ID and transaction ID are received. The data set / identifier receiving unit 42 of the data store manager receives an identifier set which is a set of a data set ID and a transaction ID. After that, the process proceeds to step S320.

ステップS320およびステップS321では、変更用データセットにトランザクションIDが付される。データストアマネージャーのデータベース管理部43は、図8を参照して説明した処理で予め受信されている変更用データセット(INSERTデータセットおよび/またはDELETEデータセット)に設定されたデータセットIDと、ステップS319で受信したデータセットIDとを比較することで、受信したデータセットIDに対応する変更用データセットを特定する(ステップS320)。当該データストアマネージャーが、データセットIDに対応する変更用データセットを受信している場合、データベース管理部43は、識別子セットに含まれるデータセットIDによって示されるINSERTデータセットおよび/またはDELETEデータセットに、当該データセットIDに対応するトランザクションIDを設定する(S321)。その後、処理はステップS322へ進む。 In step S320 and step S321, the transaction ID is attached to the change data set. The database management unit 43 of the data store manager sets the data set ID set in the change data set (INSERT data set and / or DELETE data set) received in advance in the process described with reference to FIG. 8, and the step. By comparing with the data set ID received in S319, the data set for change corresponding to the received data set ID is specified (step S320). When the data store manager has received the change data set corresponding to the data set ID, the database management unit 43 puts it in the ENCERT data set and / or the DELETE data set indicated by the data set ID included in the identifier set. , Set the transaction ID corresponding to the data set ID (S321). After that, the process proceeds to step S322.

ステップS322では、特定トランザクションIDが更新される。データストアマネージャーのデータベース管理部43は、ステップS319で受信されたトランザクションIDで、当該データストアマネージャーによって管理される特定トランザクションIDを更新する。ここで更新される特定トランザクションIDは、当該データストアマネージャーによって以後データベースに反映されないデータセットの範囲を示すトランザクションIDであり、後述するデータ検索処理において、検索処理の待機の要否を判定するために用いられる。その後、本フローチャートに示された処理は終了する。 In step S322, the specific transaction ID is updated. The database management unit 43 of the data store manager updates the specific transaction ID managed by the data store manager with the transaction ID received in step S319. The specific transaction ID updated here is a transaction ID indicating the range of the data set that is not reflected in the database by the data store manager thereafter, and is used to determine whether or not to wait for the search process in the data search process described later. Used. After that, the process shown in this flowchart ends.

本実施形態に係るデータベースシステムでは、所定の形式を有するテーブル等が書き換えられることによってデータベースの内容が変更されるのではなく、変更の内容を含む変更用データセットをトランザクションIDに関連付けてデータストアに蓄積することで、データベースの内容が変更される。このため、本実施形態に係るデータベースシステムによれば、データベースの内容変更(更新および削除)に伴う処理負荷を低減させることが出来る。また、本実施形態に係るデータベースシステムでは、データベースの基礎部分が整理されたテーブル等に依存しないため、テーブルが壊れる等の問題に対処するための仕組み(チェックポイント等)を省略することが出来る。 In the database system according to the present embodiment, the contents of the database are not changed by rewriting the table or the like having a predetermined format, but the data set for change including the changed contents is associated with the transaction ID and stored in the data store. By accumulating, the contents of the database are changed. Therefore, according to the database system according to the present embodiment, it is possible to reduce the processing load associated with changing (updating and deleting) the contents of the database. Further, in the database system according to the present embodiment, since the basic part of the database does not depend on the organized table or the like, a mechanism (checkpoint or the like) for dealing with a problem such as a broken table can be omitted.

図11は、本実施形態に係る、データストアマネージャーにおけるデータ検索処理の流れを示すフローチャートである。図11は、ステップS116やステップS710等において実行されるデータ検索処理を詳細に説明するものである。 FIG. 11 is a flowchart showing the flow of data search processing in the data store manager according to the present embodiment. FIG. 11 describes in detail the data search process executed in steps S116, S710, and the like.

ステップS401およびステップS402では、検索に必要なデータセットが当該データストアマネージャーによって未だデータベースに反映されていない可能性、換言すれば、当該データストアマネージャーによって未だトランザクションIDが付されていないデータセットに、検索に必要なデータセットが含まれている可能性が判定される。判定の結果、検索に必要なデータセットが未だ反映されていない可能性がある場合、検索処理が待機される。具体的には、データ抽出部45は、待機の必要性を判定するため、検索対象のスナップショットを示す検索対象トランザクションIDと、当該データベースシステム全体における現在の処理の進行時点を示す特定トランザクションIDと、を比較する(ステップS401)。ここで、検索対象トランザクションIDは、当該データ検索処理がステップS116に係る処理である場合、スナップショット特定用トランザクションIDであり、当該データ検索処理がステップS710に係る処理である場合、ビュー用トランザクションIDである。 In steps S401 and S402, it is possible that the dataset required for the search has not yet been reflected in the database by the data store manager, in other words, the dataset that has not yet been assigned a transaction ID by the data store manager. It is determined that the data set required for the search may be included. As a result of the determination, if there is a possibility that the data set required for the search has not been reflected yet, the search process is waited. Specifically, in order to determine the necessity of waiting, the data extraction unit 45 has a search target transaction ID indicating a snapshot of the search target and a specific transaction ID indicating the current processing progress time in the entire database system. , Are compared (step S401). Here, the search target transaction ID is a snapshot identification transaction ID when the data search process is the process related to step S116, and the view transaction ID when the data search process is the process related to step S710. Is.

また、本実施形態において、検索対象トランザクションIDと比較される特定トランザクションIDは、図10のステップS322で更新された、特定トランザクションIDである。 Further, in the present embodiment, the specific transaction ID to be compared with the search target transaction ID is the specific transaction ID updated in step S322 of FIG.

なお、検索結果の補正に必要なデータセットが未だ反映されていない可能性の有無を判断するために検索対象トランザクションIDと比較される対象は、本実施形態に開示された例に限定されない。検索対象トランザクションIDと比較される特定トランザクションIDは、検索を行うデータストアマネージャーによって以後反映されないデータセットの範囲を示すトランザクションIDであればよい。即ち、本実施形態において、データストアマネージャーにおける特定トランザクションIDとは、検索を行うデータストアマネージャーが、(既に受信したか、または今後受信する全ての)データセットにその値より小さいトランザクションID(即ち、それより古いトランザクションID)を付与することがないことが保証されたトランザクションIDである。また、判断を行うデータストアマネージャーが、判断のための情報(例えば、最新のトランザクションID)を取得する方法も限定されない。本実施形態では、最新のトランザクションIDがトランザクションマネージャーから通知されることによって(ステップS315)、データストアマネージャーは判断のための情報を取得するが、データストアマネージャーは、判断のための情報を、検索処理の際にトランザクションマネージャーや他のデータストアマネージャーに問い合わせることで取得してもよい。 The target to be compared with the search target transaction ID in order to determine whether or not the data set necessary for correcting the search result may not be reflected is not limited to the example disclosed in this embodiment. The specific transaction ID to be compared with the transaction ID to be searched may be a transaction ID indicating a range of data sets that is not reflected thereafter by the data store manager that performs the search. That is, in the present embodiment, the specific transaction ID in the data store manager is a transaction ID (that is, a transaction ID smaller than that value) in the data set (all already received or received in the future) by the data store manager performing the search. It is a transaction ID that is guaranteed not to be assigned an older transaction ID). Further, the method by which the data store manager making the judgment acquires the information for the judgment (for example, the latest transaction ID) is not limited. In the present embodiment, the latest transaction ID is notified from the transaction manager (step S315), so that the data store manager acquires the information for judgment, but the data store manager searches for the information for judgment. It may be obtained by contacting the transaction manager or another data store manager during processing.

ステップS401における判定の結果、検索対象トランザクションIDが、特定トランザクションIDより後の(新しい)トランザクションIDであると判定された場合、検索に必要なデータセットが当該データストアマネージャーによって未だデータベースに反映されていない可能性がある。このため、データ抽出部45は、特定トランザクションIDが、検索対象トランザクションIDと同じ又は新しいトランザクションIDとなるまで(換言すれば、検索に必要なデータセットが取得される可能性が無くなるまで)待機する(ステップS402)。一方、検索対象トランザクションIDが、特定トランザクションIDと同じか又はより古いトランザクションIDであると判定された場合、処理はステップS403へ進む。 As a result of the determination in step S401, when it is determined that the transaction ID to be searched is a (new) transaction ID after the specific transaction ID, the data set required for the search is still reflected in the database by the data store manager. May not be. Therefore, the data extraction unit 45 waits until the specific transaction ID becomes the same transaction ID as the search target transaction ID or a new transaction ID (in other words, until there is no possibility that the data set required for the search is acquired). (Step S402). On the other hand, if it is determined that the transaction ID to be searched is the same as or older than the specific transaction ID, the process proceeds to step S403.

ステップS403からステップS405では、検索条件に応じたデータの抽出が行われる。はじめに、データ抽出部45は、データベース管理部43によって蓄積されているデータセットのうち、検索対象のスナップショットを示す検索対象トランザクションIDと同じか又はより古いトランザクションIDが設定されたデータセットから、所望の検索条件(例えば、他のノードから通知された検索条件)に合致するデータ(具体的には、INSERTデータセットに含まれるタプルの変更内容)を抽出する(ステップS403)。 In steps S403 to S405, data is extracted according to the search conditions. First, the data extraction unit 45 desires from the data set accumulated by the database management unit 43 from the data set in which the transaction ID equal to or older than the search target transaction ID indicating the snapshot of the search target is set. Data that matches the search condition (for example, the search condition notified from another node) (specifically, the changed content of the taple included in the INSERT data set) is extracted (step S403).

次に、データ抽出部45は、ステップS403でINSERTデータセットから索出されたタプルのタプルIDで、検索対象のスナップショットを示す検索対象トランザクションIDと同じか又はより古いトランザクションIDが設定されたDELETEデータセットを検索する(ステップS404)。そして、データ抽出部45は、ステップS403の索出結果から、ステップS404でDELETEデータセット内に発見されたタプルIDに係るデータを除く(ステップS405)。このようにすることで、データ抽出部45は、データストアマネージャーに蓄積された変更用データセット(INSERTデータセットおよびDELETEデータセットを含む)から、所望の検索条件および所望のスナップショットに合致するデータを抽出する。その後、本フローチャートに示された処理は終了する。 Next, the data extraction unit 45 sets the DELETE, which is the tuple ID of the tuple retrieved from the INSERT dataset in step S403, and has the same or older transaction ID as the search target transaction ID indicating the snapshot to be searched. Search the dataset (step S404). Then, the data extraction unit 45 excludes the data related to the tuple ID found in the DELETE data set in step S404 from the search result in step S403 (step S405). By doing so, the data extraction unit 45 sets the data that matches the desired search conditions and the desired snapshot from the change data set (including the ENCERT data set and the DELETE data set) accumulated in the data store manager. Is extracted. After that, the process shown in this flowchart ends.

図12は、本実施形態に係る、ビューマネージャーにおけるデータ検索処理の流れを示すフローチャートである。図12は、ステップS110やステップS703等において実行されるデータ検索処理を詳細に説明するものである。 FIG. 12 is a flowchart showing the flow of data search processing in the view manager according to the present embodiment. FIG. 12 describes in detail the data search process executed in step S110, step S703, and the like.

ステップS501およびステップS502では、検索結果の補正に必要なビュー用データセットが当該ビューマネージャーによって未だ受信されていない可能性が判定され、必要なデータセットが未だ受信されていない可能性がある場合、検索処理が待機される。具体的には、ビュー検索結果補正部58は、待機の必要性を判定するため、検索対象のスナップショットを示す検索対象トランザクションIDと、当該データベースシステム全体における現在のビュー用データセット生成処理の進行時点を示す特定トランザクションIDとを比較する(ステップS501)。 In steps S501 and S502, it is determined that the view data set required for correction of the search result may not have been received by the view manager, and the required data set may not have been received yet. The search process is waiting. Specifically, the view search result correction unit 58 determines a search target transaction ID indicating a snapshot of the search target and the progress of the current view data set generation process in the entire database system in order to determine the necessity of waiting. Compare with the specific transaction ID indicating the time point (step S501).

本実施形態において、データベースシステム全体における現在のビュー用データセット生成処理の進行時点を示す特定トランザクションIDは、以下のようにして決定される。即ち、特定トランザクションID決定部59は、ビュー用データセットを生成する各ノード(データストアマネージャーおよびビューマネージャーを含む)から、ノード毎のビュー用データセット生成処理(図15および図16を参照)の進行時点を示すトランザクションIDを収集し、最も処理の進行が遅れているノードにおける進行時点を示すトランザクションIDを、特定トランザクションIDとして決定する。このため、本実施形態では、ビュー用データセットを生成する各ノード(データストアマネージャーおよびビューマネージャーを含む)は、自ノードのビュー用データセット生成処理の進行時点を示すトランザクションIDを、システム内の関連するビューマネージャーに対して通知する(通知処理については、図15および図16を用いて後述する)。 In the present embodiment, the specific transaction ID indicating the progress time of the current view data set generation process in the entire database system is determined as follows. That is, the specific transaction ID determination unit 59 performs the view data set generation process (see FIGS. 15 and 16) for each node from each node (including the data store manager and the view manager) that generates the view data set. A transaction ID indicating a progress time is collected, and a transaction ID indicating a progress time in the node in which the progress of processing is the latest is determined as a specific transaction ID. Therefore, in the present embodiment, each node (including the data store manager and the view manager) that generates the view data set has a transaction ID in the system indicating the progress time of the view data set generation process of the own node. Notify the relevant view manager (the notification process will be described later with reference to FIGS. 15 and 16).

なお、検索結果の補正に必要なデータセットが未だ受信されていない可能性の判断には、その他の手法が採用されてもよい。検索対象トランザクションIDと比較される特定トランザクションIDは、検索の対象となるビューについて以後取得されないビュー用データセットの範囲を示すトランザクションIDであればよい。即ち、本実施形態において、ビューにおける特定トランザクションIDとは、検索を行うビューマネージャーが、以後、検索対象となるビューについてその値より小さいトランザクションID(即ち、それより古いトランザクションID)が付与されたビュー用データセットを取得することがないことが保証されたトランザクションIDである。また、判断を行うビューマネージャーが、判断のための情報(本実施形態では、ノード毎のビュー用データセット生成処理の進行時点を示すトランザクションID)を収集する方法も限定されない。ビューマネージャーは、判断のための情報を、検索処理の際にデータストアマネージャーや他のビューマネージャーに問い合わせることで収集してもよい。 In addition, other methods may be adopted for determining the possibility that the data set necessary for correcting the search result has not yet been received. The specific transaction ID to be compared with the search target transaction ID may be a transaction ID indicating the range of the view data set that is not subsequently acquired for the view to be searched. That is, in the present embodiment, the specific transaction ID in the view is a view in which the view manager performing the search is given a transaction ID smaller than the value (that is, a transaction ID older than that) for the view to be searched thereafter. It is a transaction ID that is guaranteed not to acquire the data set for use. Further, the method in which the view manager making the judgment collects the information for the judgment (in the present embodiment, the transaction ID indicating the progress time of the view data set generation process for each node) is not limited. The view manager may collect information for judgment by contacting the data store manager or another view manager during the search process.

ステップS501における判定の結果、検索対象トランザクションIDが、特定トランザクションIDより後の(新しい)トランザクションIDであると判定された場合、検索結果の補正に必要なデータセットが当該ビューマネージャーによって未だ受信されていない可能性がある。このため、ビュー検索結果補正部58は、特定トランザクションIDが、検索対象トランザクションIDと同じ又は新しいトランザクションIDとなるまで(換言すれば、検索結果の補正に必要なデータセットが取得される可能性が無くなるまで)待機する(ステップS502)。一方、検索対象トランザクションIDが、特定トランザクションIDと同じか又はより古いトランザクションIDであると判定された場合、処理はステップS503へ進む。 As a result of the determination in step S501, when it is determined that the transaction ID to be searched is a (new) transaction ID after the specific transaction ID, the data set necessary for correcting the search result is still received by the view manager. May not be. Therefore, the view search result correction unit 58 may acquire the data set necessary for correcting the search result until the specific transaction ID becomes the same transaction ID as the search target transaction ID or a new transaction ID (in other words, the search result correction unit 58). Wait (until it disappears) (step S502). On the other hand, if it is determined that the transaction ID to be searched is the same as or older than the specific transaction ID, the process proceeds to step S503.

なお、本実施形態では、検索対象トランザクションIDと、前記特定トランザクションIDと、を比較することで、検索結果の補正に必要なデータセットが未だ受信されていない可能性の有無を判断しているが、この判断はその他の手法を用いて行われてもよい。 In the present embodiment, by comparing the search target transaction ID with the specific transaction ID, it is determined whether or not there is a possibility that the data set necessary for correcting the search result has not yet been received. , This determination may be made using other methods.

ステップS503では、検索対象のスナップショットを示す検索対象トランザクションIDと、ビュー用トランザクションIDとが比較される。ここで、検索対象トランザクションIDが、ビュー用トランザクションIDより古いトランザクションIDであると判定された場合、当該ビューマネージャーに保持されているビューでは検索対象のスナップショットの検索は困難である。このため、ビューマネージャーは検索リクエストの送信元に対して、検索失敗を通知する(ステップS504)。一方、検索対象トランザクションIDが、ビュー用トランザクションIDと同じかまたはより新しいトランザクションIDであると判定された場合、処理はステップS505へ進む。 In step S503, the search target transaction ID indicating the search target snapshot is compared with the view transaction ID. Here, when it is determined that the transaction ID to be searched is a transaction ID older than the transaction ID for view, it is difficult to search the snapshot to be searched in the view held in the view manager. Therefore, the view manager notifies the sender of the search request of the search failure (step S504). On the other hand, if it is determined that the transaction ID to be searched is the same as or newer the transaction ID for the view, the process proceeds to step S505.

ステップS505では、指定された検索条件に従ってビューが検索される。ビュー検索部57は、指定された検索条件を用いて、ビューが保持されているデータ形式(例えば、表形式やグラフ形式等)に応じた方法で、ビューを検索する。前述の通り、本開示を実施する際に採用されるビューのデータ形式は限定されず、その検索方法も限定されない。ビューのデータ形式には、表形式やグラフ形式等の従来のデータベース技術に係るものが採用可能であり、その検索方法も従来と同様のものが採用可能であるため、ビューの検索方法についての詳細な説明は省略する。その後、処理はステップS506へ進む。 In step S505, the view is searched according to the designated search condition. The view search unit 57 searches for a view by a method according to a data format (for example, a table format, a graph format, etc.) in which the view is held, using the designated search conditions. As described above, the data format of the view adopted when implementing the present disclosure is not limited, and the search method thereof is also not limited. As the view data format, those related to conventional database technology such as table format and graph format can be adopted, and the same search method as before can be adopted. Therefore, details on the view search method can be adopted. The explanation will be omitted. After that, the process proceeds to step S506.

ステップS506からステップS508では、ステップS505における検索結果が補正される。ビュー検索結果補正部58は、ビュー用データ取得部51によって取得されたがビューに未反映のビュー用データセットのうち、検索対象トランザクションIDまでのビュー用データセットに含まれる、指定された検索条件に合致する変更内容(具体的には、INSERTデータセットに含まれるタプルの変更内容)を索出する(ステップS506)。そして、ビュー検索結果補正部58は、ステップS505およびステップS506で索出されたタプルのタプルIDで、未反映のビュー用データセットのうち、ビューのトランザクションID以降且つ検索対象トランザクションID以前のDELETEデータセットを検索する(ステップS507)。 In steps S506 to S508, the search result in step S505 is corrected. The view search result correction unit 58 is a designated search condition included in the view data set up to the search target transaction ID among the view data sets acquired by the view data acquisition unit 51 but not reflected in the view. (Specifically, the change content of the taple included in the INSERT data set) that matches the above is searched for (step S506). Then, the view search result correction unit 58 is the tuple ID of the tuples searched in step S505 and step S506, and among the unreflected view data sets, the DELETE data after the transaction ID of the view and before the transaction ID to be searched. Search for a set (step S507).

なお、ステップS506では、検索によって取得されたデータから、重複データが削除される。ビュー用データセットは複数のノードから通知されているため、ビュー用データセットに含まれるデータには、同一のタプルに関するデータの重複が生じ得る。このため、ビュー検索結果補正部58は、検索の結果INSERTデータセットから取得されたデータに、同一のタプルに係るデータが重複して含まれている場合、重複するデータの一方を削除することで、データの重複を解消させる。 In step S506, duplicate data is deleted from the data acquired by the search. Since the view dataset is notified from a plurality of nodes, the data included in the view dataset may have duplicate data related to the same tuple. Therefore, when the data acquired from the search result INSERT dataset contains duplicate data related to the same taple, the view search result correction unit 58 deletes one of the duplicated data. , Eliminate data duplication.

なお、本実施形態では、データを索出した後に重複を解消する手法を採用しているが、このような手法に代えて、データ検索の時点で重複が発生しないように検索条件を調整する手法が採用されてもよい。 In the present embodiment, a method of eliminating duplication after searching for data is adopted, but instead of such a method, a method of adjusting search conditions so that duplication does not occur at the time of data search. May be adopted.

その後、ビュー検索結果補正部58は、ステップS505で索出されたデータに、ステップS506で索出されたデータを加え、そこから、ステップS507でDELETEデータセットから索出された削除対象タプルIDに係るデータを除く(ステップS508)。ビュー検索部57は、ステップS508で得られたデータを、検索結果とする。その後、本フローチャートに示された処理は終了する。 After that, the view search result correction unit 58 adds the data searched in step S506 to the data searched in step S505, and from there to the tuple ID to be deleted searched from the DELETE data set in step S507. Such data is excluded (step S508). The view search unit 57 uses the data obtained in step S508 as a search result. After that, the process shown in this flowchart ends.

図5から図12のフローチャートを用いて説明した処理によって、上述の通りデータベースの変更に伴う負荷を低減させることが出来る。また、データストアマネージャーを複数用意することで、検索負荷は分散させることが可能である。但し、上記説明した処理では、INSERTデータセットおよびDELETEデータセットがデータストアマネージャーに蓄積されるに伴って、図11に示したデータストアマネージャーにおけるデータ検索処理の処理量およびデータセットを保持するために使用される記憶領域が増える。このため、本実施形態に係るデータベースシステムでは、トランケート処理を行い、ストレージを効率的に使用することとした。ここで、トランケート処理は、データセット(INSERTデータセットおよびDELETEデータセット)の変形という方法で行われる。 By the process described with reference to the flowcharts of FIGS. 5 to 12, the load associated with the change of the database can be reduced as described above. In addition, the search load can be distributed by preparing a plurality of data store managers. However, in the process described above, as the ENCERT data set and the DELETE data set are accumulated in the data store manager, in order to retain the processing amount and the data set of the data search process in the data store manager shown in FIG. More storage space is used. Therefore, in the database system according to the present embodiment, it is decided to perform the truncated process and use the storage efficiently. Here, the truncated process is performed by a method of transforming the data set (INSERT data set and DELETE data set).

図13は、本実施形態に係る、データストアマネージャーにおけるトランケート処理の流れを示すフローチャートである。図13のフローチャートに示された処理は、例えば、定期的にバックグラウンド実行される。 FIG. 13 is a flowchart showing the flow of the truncated process in the data store manager according to the present embodiment. The process shown in the flowchart of FIG. 13 is, for example, periodically executed in the background.

ステップS601では、処理の基準となる所定のトランザクションID(Xi)が決定される。集合データセット生成部44は、以降発生しうるクエリ処理やビュー変更処理における、所定の時点より前のスナップショットの必要性に基づいて、処理の基準となる所定のトランザクションID(Xi)を決定する。処理の基準となる所定のトランザクションID(Xi)は、現在スナップショット特定用トランザクションIDまたはビュー用トランザクションIDとして使われている最も古いID、今後トランザクションマネージャーがスナップショット特定用トランザクションIDとして通知する可能性のある最も古いID、および今後ビュー用トランザクションIDとして用いられる可能性のある最も古いID、の何れよりも古いトランザクションIDであることが好ましい。 In step S601, a predetermined transaction ID (Xi) as a reference for processing is determined. The aggregate data set generation unit 44 determines a predetermined transaction ID (Xi) as a reference for processing based on the necessity of a snapshot before a predetermined time point in the query processing or view change processing that may occur thereafter. .. The predetermined transaction ID (Xi) that is the basis of processing is the oldest ID currently used as the transaction ID for snapshot identification or the transaction ID for view, and the transaction manager may notify it as the transaction ID for snapshot identification in the future. It is preferable that the transaction ID is older than any of the oldest ID having a transaction ID and the oldest ID that may be used as a transaction ID for viewing in the future.

所定のトランザクションID(Xi)を決定する具体的な手法には、様々な手法が採用されてよい。例えば、参照されているスナップショットのトランザクションIDを集計し、最も古いものに合わせて更新する手法が採用されてよい。また、例えば、後述するビュー用トランザクションIDよりもトランザクションの時系列において所定期間以上古いトランザクションIDが用いられることとしてもよい。その後、処理はステップS602へ進む。 Various methods may be adopted as a specific method for determining a predetermined transaction ID (Xi). For example, a method of aggregating the transaction IDs of the referenced snapshots and updating them according to the oldest one may be adopted. Further, for example, a transaction ID older than a predetermined period in the transaction time series may be used, which is older than the view transaction ID described later. After that, the process proceeds to step S602.

ステップS602およびステップS603では、所定のトランザクションIDによって指定された時点のデータセット及びより古いデータセットに含まれる、タプルの変更内容が連結され、削除対象タプルIDに示されたデータが除かれることで、所定のトランザクションID(Xi)によって指定された時点のデータセット及びより古いデータセットが統合された、集合データセットが生成される。具体的には、集合データセット生成部44は、データストアマネージャーに蓄積されているデータセットのうち、所定のトランザクションID(Xi)によって指定された時点のINSERTデータセット及びより古いINSERTデータセットを特定して連結することで、集合INSERTデータセットを生成する(ステップS602)。 In steps S602 and S603, the changes in the tapple contained in the data set at the time specified by the predetermined transaction ID and the older data set are concatenated, and the data indicated in the taple ID to be deleted is removed. , A collective dataset is generated that integrates the dataset at the time specified by the given transaction ID (Xi) and the older dataset. Specifically, the aggregate data set generation unit 44 identifies the INSERT data set and the older INSERT data set at the time specified by the predetermined transaction ID (Xi) among the data sets stored in the data store manager. And concatenate them to generate a set INSERT data set (step S602).

そして、集合データセット生成部44は、連結によって生成された集合INSERTデータセットから、所定のトランザクションID(Xi)によって指定された時点のDELETEデータセット及びより古いDELETEデータセットに指定されているタプルを除外する(ステップS603)。その後、処理はステップS604へ進む。 Then, the set data set generation unit 44 selects the DELETE data set at the time specified by the predetermined transaction ID (Xi) and the taple specified in the older DELETE data set from the set INSERT data set generated by the concatenation. Exclude (step S603). After that, the process proceeds to step S604.

ステップS604およびステップS605では、生成された集合INSERTデータセットが、データストアの一部として管理開始される。データベース管理部43は、新たに生成された集合INSERTデータセットに、始点を示すトランザクションID(X0)と、終点を示すトランザクションID(Xi)と、の2つのトランザクションID(X0及びXi)を設定する(ステップS604)。このようにして、新たに生成された集合データセットは、蓄積されたデータセットの1つとして管理される。そして、データベース管理部43は、当該集合データセットの生成に用いられたデータセット、即ち、所定のトランザクションID(Xi)によって指定された時点のINSERTデータセットおよびDELETEデータセット、並びにより古いINSERTデータセットおよびDELETEデータセットを削除する(但し、新たに生成された集合INSERTデータセットを除く)(ステップS605)。その後、本フローチャートに示された処理は終了する。 In step S604 and step S605, the generated aggregate INSERT dataset is started to be managed as part of the data store. The database management unit 43 sets two transaction IDs (X0 and Xi), a transaction ID (X0) indicating a start point and a transaction ID (Xi) indicating an end point, in the newly generated set INSERT data set. (Step S604). In this way, the newly generated aggregate data set is managed as one of the accumulated data sets. Then, the database management unit 43 determines the data set used to generate the aggregate data set, that is, the ENCERT data set and the DELETE data set at the time specified by the predetermined transaction ID (Xi), and the older INSERT data set. And the DELETE data set is deleted (except for the newly generated set INSERT data set) (step S605). After that, the process shown in this flowchart ends.

また、本実施形態に係るデータベースシステムでは、データストアマネージャーによる検索負荷を低減させるために、ビューマネージャーによってビューを管理することとしている。以下、図14から図17を参照して、本実施形態におけるビューの作成および変更処理を説明する。 Further, in the database system according to the present embodiment, the view is managed by the view manager in order to reduce the search load by the data store manager. Hereinafter, the view creation and modification processing in the present embodiment will be described with reference to FIGS. 14 to 17.

図14は、本実施形態に係る、ビュー作成処理の流れを示すフローチャートである。図14のフローチャートに示された処理は、ビューマネージャーに、ビューの生成および当該ビューを生成するための検索条件が指示されたことを契機として開始される。この指示は、管理者やユーザー等によって行われてもよいし、上位ビューを管理するビューマネージャーやセッションマネージャー等の他のノードによって行われてもよい。上述の通り、本実施形態において、複数のビューは階層関係を有しており、上位ビューは、下位ビューによってカバーされるデータを参照して構築することができる。このため、上位ビューを管理するビューマネージャー(以下、「上位ビューマネージャー」と称する)は、より下位のビューを管理するビューマネージャー(以下、「下位ビューマネージャー」と称する)に対してビューの生成指示や検索条件の指示、データ要求等を行うことができる。 FIG. 14 is a flowchart showing the flow of the view creation process according to the present embodiment. The process shown in the flowchart of FIG. 14 is started when the view manager is instructed to generate a view and search conditions for generating the view. This instruction may be given by an administrator, a user, or the like, or may be given by another node such as a view manager or a session manager that manages the upper view. As described above, in the present embodiment, the plurality of views have a hierarchical relationship, and the upper view can be constructed by referring to the data covered by the lower view. Therefore, the view manager that manages the upper view (hereinafter referred to as "upper view manager") instructs the view manager that manages the lower view (hereinafter referred to as "lower view manager") to generate a view. , Search condition instructions, data request, etc. can be performed.

ステップS701からステップS706では、下位ビューマネージャーから、ビューの作成に必要なデータ(ビュー用データセット)が取得される。上位ビューマネージャーのビュー用データ取得部51は、予め設定された検索条件およびビュー用トランザクションID(ビューに対応するスナップショットを示すトランザクションID)を下位ビューマネージャーに通知して、データを要求する(ステップS701)。そして、送信されたデータ要求は、下位ビューマネージャーによって受信される(ステップS702)。 In steps S701 to S706, data (view data set) necessary for creating a view is acquired from the lower view manager. The view data acquisition unit 51 of the upper view manager notifies the lower view manager of the preset search conditions and the view transaction ID (transaction ID indicating the snapshot corresponding to the view), and requests the data (step). S701). Then, the transmitted data request is received by the lower view manager (step S702).

ステップS702でデータ要求を受信した下位ビューマネージャーのビュー検索部57は、指定された検索条件に従ってビューを検索し、検索条件およびビュー用トランザクションIDに応じたデータを取得する(ステップS703)。ここで、データ要求を受信した下位ビューマネージャーがデータを取得する処理の流れは、図12を用いて説明した通りである。そして、下位ビューマネージャーのビュー用データ生成部53は、上位ビューに予め設定された検索条件に合致するデータ(タプル)をINSERTセットとして含むビュー用データセットを生成する。また、下位ビューマネージャーは、ステップS702で受信された検索条件を、送信元の上位ビューマネージャーによって管理されるビューを識別可能な情報に関連付けて保存する(ステップS704)。 The view search unit 57 of the lower view manager that received the data request in step S702 searches the view according to the designated search condition, and acquires the data according to the search condition and the transaction ID for the view (step S703). Here, the flow of the process in which the lower view manager that receives the data request acquires the data is as described with reference to FIG. Then, the view data generation unit 53 of the lower view manager generates a view data set including data (tuples) matching the search conditions preset in the upper view as an INSERT set. Further, the lower view manager saves the search condition received in step S702 in association with the view managed by the upper view manager of the source in association with the identifiable information (step S704).

データ要求を受信した下位ビューマネージャーのビュー用データ送信部54は、ステップS703で生成されたビュー用データセットを、データ要求の送信元である上位ビューマネージャーに対して送信する(ステップS705)。その後、データ要求の送信元である上位ビューマネージャーのビュー用データ取得部51は、送信されたデータを受信することで、ビュー用データセットを取得する(ステップS706)。その後、処理はステップS707へ進む。 The view data transmission unit 54 of the lower view manager that has received the data request transmits the view data set generated in step S703 to the upper view manager that is the source of the data request (step S705). After that, the view data acquisition unit 51 of the upper view manager, which is the transmission source of the data request, acquires the view data set by receiving the transmitted data (step S706). After that, the process proceeds to step S707.

ステップS707では、データストアマネージャーからのデータ取得が必要か否か判定される。ビューマネージャーは、ステップS706までの下位ビューマネージャーからのビュー用データセットの取得処理で、ビューの作成に必要なデータが全て揃ったか否かを判定する。これは、下位ビューによってカバーされていないデータが存在する可能性があり、処理に必要なデータが下位ビューマネージャーから取得できない可能性があるためである。 In step S707, it is determined whether or not it is necessary to acquire data from the data store manager. The view manager determines whether or not all the data necessary for creating the view are available in the process of acquiring the view data set from the lower view manager up to step S706. This is because there may be some data that is not covered by the lower view and the data required for processing may not be available from the lower view manager.

例えば、下位ビューによってカバーされるデータの範囲が、データ取得対象のテーブルの一部である場合、当該テーブルに含まれるデータのうち、下位ビューによってカバーされているデータについては、下位ビューマネージャーへの問い合わせで取得される。一方、データ取得対象のテーブルのうち、下位ビューによってカバーされていないデータについては、データストアアネージャーから取得する必要がある。ステップS707における判定の具体的な方法については、ステップS113において説明した方法と概略同様であるため、説明を省略する。 For example, when the range of data covered by the lower view is a part of the table to be acquired, the data included in the table that is covered by the lower view is sent to the lower view manager. Obtained by inquiry. On the other hand, among the tables to be acquired, the data that is not covered by the lower view needs to be acquired from the data store manager. Since the specific method of determination in step S707 is substantially the same as the method described in step S113, the description thereof will be omitted.

判定の結果、ビューの作成に必要なデータが全て揃った(データストアマネージャーからのデータ取得が不要である)と判定された場合、処理はステップS714へ進む。一方、判定の結果、処理に必要なデータが不足している(データストアマネージャーからのデータ取得が必要である)と判定された場合、処理はステップS708へ進む。 As a result of the determination, if it is determined that all the data necessary for creating the view are available (data acquisition from the data store manager is unnecessary), the process proceeds to step S714. On the other hand, if it is determined as a result of the determination that the data required for the process is insufficient (data acquisition from the data store manager is necessary), the process proceeds to step S708.

ステップS708からステップS713では、データストアマネージャーから、ビューの作成に必要なデータ(ビュー用データセット)が取得される。ビューマネージャーのビュー用データ取得部51は、予め設定された検索条件およびビュー用トランザクションIDを、データストアマネージャーに通知して、データを要求する(ステップS708)。 In steps S708 to S713, data (view dataset) necessary for creating a view is acquired from the data store manager. The view data acquisition unit 51 of the view manager notifies the data store manager of the preset search conditions and the view transaction ID, and requests the data (step S708).

データ要求を受信した(ステップS709)データストアマネージャーのデータ抽出部45は、データベース管理部43によって蓄積されているデータセットに基づいて、予め設定された検索条件に合致するデータを抽出する。ビュー用データ生成部46は、抽出されたデータ(タプル)をINSERTセットとして含むビュー用データセットを生成する(ステップS710)。ここで、データ要求を受信したデータストアマネージャーがデータを取得する処理の流れの詳細は、図11を用いて説明した通りである(この場合、ビュー用トランザクションIDが、図11の説明における「検索対象トランザクションID」として用いられる)。そして、データストアマネージャーは、ステップS709で受信された検索条件を、送信元のビューマネージャーによって管理されるビューを識別可能な情報に関連付けて保存する(ステップS711)。 Upon receiving the data request (step S709), the data extraction unit 45 of the data store manager extracts data that matches the preset search conditions based on the data set accumulated by the database management unit 43. The view data generation unit 46 generates a view data set including the extracted data (tuple) as an INSERT set (step S710). Here, the details of the process flow for the data store manager receiving the data request to acquire the data are as described with reference to FIG. 11 (in this case, the view transaction ID is the “search” in the description of FIG. Used as "target transaction ID"). Then, the data store manager saves the search condition received in step S709 in association with the view managed by the source view manager with the identifiable information (step S711).

ビュー用データ送信部47は、ステップS710で生成されたビュー用データセットを、ビューマネージャーに送信する(ステップS712)。その後、ビュー用データ取得部51は、データストアマネージャーから送信されたデータを受信することで、所望のデータを取得する(ステップS713)。その後、処理はステップS714へ進む。 The view data transmission unit 47 transmits the view data set generated in step S710 to the view manager (step S712). After that, the view data acquisition unit 51 acquires desired data by receiving the data transmitted from the data store manager (step S713). After that, the process proceeds to step S714.

ステップS714およびステップS715では、ビューの管理が開始される。ビュー管理部52は、ビュー用データ取得部51によって取得されたビュー用データセットに含まれるデータを、所定の形式(例えば、テーブル形式、グラフ形式等)のデータ集合であるビューとして生成する(ステップS714)。なお、ビューが生成される際には、ビュー用データセットに含まれるデータから、重複データが削除される。上述の通り、ビューは検索条件に基づいてデータストアマネージャー等から得られたデータを用いて生成されるものであるため、ステップS706で下位ビューマネージャーから取得されたデータと、ステップS713でデータストアマネージャーから取得されたデータには、同一のタプルに関するデータの重複が生じ得る。このため、ビュー管理部52は、ステップS706及びステップS713で取得されたデータに、同一のタプルに係るデータが重複して含まれている場合、重複するデータの一方を削除することで、データの重複を解消させる。 In step S714 and step S715, view management is started. The view management unit 52 generates the data included in the view data set acquired by the view data acquisition unit 51 as a view that is a data set in a predetermined format (for example, table format, graph format, etc.) (step). S714). When the view is generated, duplicate data is deleted from the data included in the view data set. As described above, since the view is generated by using the data obtained from the data store manager or the like based on the search conditions, the data acquired from the lower view manager in step S706 and the data store manager in step S713. Data obtained from can be duplicated for the same taple. Therefore, when the data acquired in step S706 and step S713 include duplicate data related to the same tuple, the view management unit 52 deletes one of the duplicated data to obtain the data. Eliminate duplication.

なお、本実施形態では、データを取得した後に重複を解消する手法を採用しているが、このような手法に代えて、データ要求の時点で重複が発生しないように、ステップS701及びステップS708で送信されるデータ要求の内容を変更する手法が採用されてもよい。 In the present embodiment, a method of eliminating duplication after acquiring data is adopted, but instead of such a method, in step S701 and step S708 so that duplication does not occur at the time of data request. A method of changing the content of the data request to be transmitted may be adopted.

ビューが生成されると、ビュー管理部52は、生成されたビューを、予め設定された検索条件およびビュー用トランザクションIDに対応するビューとして保持する(ステップS715)。その後、本フローチャートに示された処理は終了する。 When the view is generated, the view management unit 52 holds the generated view as a view corresponding to the preset search conditions and the transaction ID for the view (step S715). After that, the process shown in this flowchart ends.

図15から図17は、本実施形態に係る、ビュー変更処理の流れを示すフローチャートである。図15および図16に示された処理は、データストアマネージャーにおいて新たなデータセットが管理開始されたこと(換言すれば、データセットにトランザクションIDが付与されたこと)を契機として実行される。データセットへのトランザクションIDの付与については、図10のステップS321で説明した通りである。但し、図15および図16に示された処理は、トランザクションIDの付与とは独立したタイミングで、例えば定期的にバッチ処理されてもよい。 15 to 17 are flowcharts showing a flow of view change processing according to the present embodiment. The processes shown in FIGS. 15 and 16 are executed when the data store manager starts managing a new data set (in other words, a transaction ID is assigned to the data set). The assignment of the transaction ID to the data set is as described in step S321 of FIG. However, the processes shown in FIGS. 15 and 16 may be batch-processed at a timing independent of the assignment of the transaction ID, for example, periodically.

ステップS801およびステップS802では、データストアマネージャーにおいてデータセットが検索される。ここで用いられる検索条件は、ビューマネージャーによって管理されているビューに設定されている検索条件であり、図14のステップS711等で保存された検索条件である。データストアマネージャーのビュー用データ生成部46は、予め設定されている検索条件で、新たにトランザクションIDが付されたINSERTデータセットを検索し、検索条件に合致する変更内容を抽出する(ステップS801)。また、ビュー用データ生成部46は、前記検索条件で、新たにトランザクションIDが付されたDELETEデータセットに含まれるタプルIDが示すタプルを検索し、検索条件に合致する内容を有するタプルのタプルIDを特定する(ステップS802)。その後、処理はステップS803へ進む。 In step S801 and step S802, the data set is retrieved in the data store manager. The search condition used here is a search condition set in the view managed by the view manager, and is a search condition saved in step S711 or the like in FIG. The view data generation unit 46 of the data store manager searches the INSERT dataset with a new transaction ID using the preset search conditions, and extracts the changed contents that match the search conditions (step S801). .. Further, the view data generation unit 46 searches for the tuple indicated by the tuple ID included in the DELETE dataset to which the transaction ID is newly added by the search condition, and the tuple ID of the tuple having the content matching the search condition. (Step S802). After that, the process proceeds to step S803.

なお、本実施形態では、データストアマネージャーがビューマネージャーにDELETEデータセットを送信する場合、データストアマネージャーは、設定された検索条件に対応する削除されたタプルIDのみを送信することとしている(ステップS805およびステップS806を参照)。そして、本実施形態では、設定された検索条件に対応する削除されたタプルIDを索出する方法として、データストアマネージャーのDELETEデータセット内のタプルIDで過去のINSERTデータセットをチェックして、ヒットしたタプルがそのビューの検索条件に合致するか否かを判定することとしている(ステップS802を参照)。但し、設定された検索条件に対応する削除されたタプルIDを索出する方法としては、ビューに送ったタプルIDのリストを保持しておき、これと照合する等の、その他の方法が採用されてもよい。また、ビューの更新のためにデータストアマネージャーがビューマネージャーにDELETEデータセットを送信する場合、すべてのDELETEデータセットを送信してもよい。 In the present embodiment, when the data store manager transmits the DELETE data set to the view manager, the data store manager transmits only the deleted tapple ID corresponding to the set search condition (step S805). And step S806). Then, in the present embodiment, as a method of searching for the deleted tuple ID corresponding to the set search condition, the past INSERT data set is checked with the tuple ID in the DELETE data set of the data store manager, and a hit is obtained. It is determined whether or not the tuple is matched with the search condition of the view (see step S802). However, as a method of searching for the deleted tuple ID corresponding to the set search condition, another method such as holding a list of tuple IDs sent to the view and collating with this is adopted. You may. Also, if the data store manager sends a DELETE dataset to the view manager to update the view, it may send all the DELETE datasets.

ステップS803およびステップS804では、検索結果の有無が判定され、検索結果が得られなかった場合に、トランザクションIDが送信される。ステップS801およびステップS802における検索の結果、検索条件に合致するタプルが索出されなかった場合(ステップS803のNO)、データストアマネージャーは、検索対象となったデータセットに付されていたトランザクションIDを、自ノードのビュー用データセット生成処理の進行時点を示すトランザクションIDとして、ビューマネージャーに送信する(ステップS804)。 In step S803 and step S804, the presence / absence of the search result is determined, and if the search result is not obtained, the transaction ID is transmitted. As a result of the search in step S801 and step S802, when a taple matching the search condition is not found (NO in step S803), the data store manager determines the transaction ID attached to the data set to be searched. , Is transmitted to the view manager as a transaction ID indicating the progress time of the view data set generation process of the own node (step S804).

ここで、トランザクションIDの送信先となるビューマネージャーは、検索に用いられた検索条件に対応するビューを保持するビューマネージャーであり、ステップS711で検索条件が保存された際に関連付けられた、ビューを識別可能な情報を参照することで特定される。送信されたトランザクションIDを受信したビューマネージャーは、当該トランザクションIDを、送信元ノードのビュー用データセット生成処理の進行時点を示すトランザクションIDとして管理する。即ち、ここで受信されたトランザクションIDは、ステップS501において特定トランザクションIDを決定するために参照される。 Here, the view manager to which the transaction ID is sent is a view manager that holds the view corresponding to the search condition used for the search, and the view associated with the search condition saved in step S711 is displayed. It is identified by reference to identifiable information. The view manager that has received the transmitted transaction ID manages the transaction ID as a transaction ID indicating the progress time of the view data set generation process of the source node. That is, the transaction ID received here is referred to in step S501 to determine the specific transaction ID.

一方、ステップS801およびステップS802における検索の結果、検索条件に合致するタプルが索出された場合(ステップS803のYES)、処理はステップS805へ進む。 On the other hand, if a tuple matching the search condition is found as a result of the search in steps S801 and S802 (YES in step S803), the process proceeds to step S805.

ステップS805からステップS807では、データストアマネージャーにおいてビュー用データセットが生成される。ビュー用データ生成部46は、ステップS801で抽出された変更内容をINSERTデータセットに含み、ステップS802で特定されたタプルIDをDELETEデータセットに含むビュー用データセットを生成する(ステップS805)。そして、ビュー用データ送信部47は、生成されたビュー用データセットを、トランザクションIDに関連付けて、ビューマネージャーに送信する(ステップS806)。ここで送信先となるビューマネージャーは、検索に用いられた検索条件に対応するビューを保持するビューマネージャーであり、ステップS711で検索条件が保存された際に関連付けられた、ビューを識別可能な情報を参照することで特定される。ビューマネージャーのビュー用データ取得部51は、送信されたビュー用データセットを受信する(ステップS807)。送信されたビュー用データセットを受信したビューマネージャーは、当該ビュー用データセットと共に受信されたトランザクションIDを、送信元ノードのビュー用データセット生成処理の進行時点を示すトランザクションIDとして管理し、ステップS501において特定トランザクションIDを決定するために参照する。その後、処理はステップS808へ進む。 From step S805 to step S807, the view dataset is generated in the data store manager. The view data generation unit 46 includes the changes extracted in step S801 in the INSERT data set, and generates a view data set including the taple ID specified in step S802 in the DELETE data set (step S805). Then, the view data transmission unit 47 associates the generated view data set with the transaction ID and transmits the generated view data set to the view manager (step S806). The view manager to be sent here is a view manager that holds the view corresponding to the search condition used for the search, and the view identifiable information associated with the view when the search condition is saved in step S711. It is identified by referring to. The view data acquisition unit 51 of the view manager receives the transmitted view data set (step S807). The view manager that has received the transmitted view data set manages the transaction ID received together with the view data set as a transaction ID indicating the progress time of the view data set generation process of the source node, and steps S501. Refer to in order to determine a specific transaction ID. After that, the process proceeds to step S808.

ステップS808およびステップS809では、ビューマネージャーにおいてデータセットが検索される。ここで用いられる検索条件は、当該ビューマネージャーが管理するビューより上位のビューに設定されている検索条件であり、図14のステップS704等で保存された検索条件である。このため、ステップS808からステップS813の処理は、当該ビューマネージャーが上位ビューの検索条件を保持していない場合、実行されない。ビューマネージャーのビュー用データ生成部53は、予め設定されている検索条件で、ステップS807で受信されたビュー用データセットに含まれるINSERTデータセットを検索し、検索条件に合致する変更内容を抽出する(ステップS808)。また、ビュー用データ生成部53は、前記検索条件で、ステップS807で受信されたビュー用データセットに含まれるDELETEデータセットに含まれるタプルIDが示すタプルを検索し、検索条件に合致する内容を有するタプルのタプルIDを特定する(ステップS809)。その後、処理はステップS810へ進む。 In step S808 and step S809, the data set is retrieved in the view manager. The search condition used here is a search condition set in a view higher than the view managed by the view manager, and is a search condition saved in step S704 or the like in FIG. Therefore, the processing of steps S808 to S813 is not executed if the view manager does not hold the search condition of the upper view. The view data generation unit 53 of the view manager searches the INSERT data set included in the view data set received in step S807 with the preset search conditions, and extracts the changed contents that match the search conditions. (Step S808). Further, the view data generation unit 53 searches for the tuple indicated by the tuple ID included in the DELETE data set included in the view data set received in step S807 in the search condition, and searches for the content matching the search condition. The tuple ID of the tuple to have is specified (step S809). After that, the process proceeds to step S810.

ステップS810およびステップS811では、検索結果の有無が判定され、検索結果が得られなかった場合に、トランザクションIDが送信される。ステップS808およびステップS809における検索の結果、検索条件に合致するタプルが索出されなかった場合(ステップS810のNO)、ビューマネージャーは、検索対象となったビュー用データセットに付されていたトランザクションIDを、自ノードのビュー用データセット生成処理の進行時点を示すトランザクションIDとして、上位ビューマネージャーに送信する(ステップS811)。 In step S810 and step S811, the presence or absence of the search result is determined, and if the search result is not obtained, the transaction ID is transmitted. As a result of the search in step S808 and step S809, when a taple matching the search condition is not found (NO in step S810), the view manager is assigned a transaction ID attached to the view data set to be searched. Is transmitted to the upper view manager as a transaction ID indicating the progress time of the view data set generation process of the own node (step S811).

ここで、トランザクションIDの送信先となる上位ビューマネージャーは、検索に用いられた検索条件に対応するビューを保持する上位ビューマネージャーであり、ステップS704で検索条件が保存された際に関連付けられた、ビューを識別可能な情報を参照することで特定される。送信されたトランザクションIDを受信した上位ビューマネージャーは、当該トランザクションIDを、送信元ノードのビュー用データセット生成処理の進行時点を示すトランザクションIDとして管理し、ステップS501において特定トランザクションIDを決定するために参照する。 Here, the upper view manager to which the transaction ID is sent is the upper view manager that holds the view corresponding to the search condition used for the search, and is associated when the search condition is saved in step S704. The view is identified by reference to identifiable information. The upper view manager that has received the transmitted transaction ID manages the transaction ID as a transaction ID indicating the progress time of the view data set generation process of the source node, and determines the specific transaction ID in step S501. refer.

一方、ステップS808およびステップS809における検索の結果、検索条件に合致するタプルが索出された場合(ステップS810のYES)、処理はステップS812へ進む。 On the other hand, if a tuple matching the search condition is found as a result of the search in step S808 and step S809 (YES in step S810), the process proceeds to step S812.

ステップS812およびステップS813では、ビューマネージャーにおいて第二のビュー用データセットが生成される。ビュー用データ生成部53は、ステップS808で抽出された変更内容をINSERTデータセットに含み、ステップS809で特定されたタプルIDをDELETEデータセットに含む第二のビュー用データセットを生成する(ステップS812)。そして、ビュー用データ送信部54は、生成された第二のビュー用データセットを、トランザクションIDに関連付けて、上位ビューマネージャーに送信する(ステップS813)。ここで送信先となる上位ビューマネージャーは、検索に用いられた検索条件に対応するビューを保持する上位ビューマネージャーであり、ステップS704で検索条件が保存された際に関連付けられた、ビューを識別可能な情報を参照することで特定される。上位ビューマネージャーのビュー用データ取得部51は、送信された第二のビュー用データセットを受信する(図示は省略する)。なお、受信された第二のビュー用データセットは、データストアマネージャーから送信されたその他のビュー用データセットと同様、ビューの変更に用いられる(図17を参照)。また、送信された第二のビュー用データセットを受信したビューマネージャーは、当該ビュー用データセットと共に受信されたトランザクションIDを、送信元ノードのビュー用データセット生成処理の進行時点を示すトランザクションIDとして管理し、ステップS501において特定トランザクションIDを決定するために参照する。その後、本フローチャートに示された処理は終了する。 In step S812 and step S813, the view manager generates a second view dataset. The view data generation unit 53 includes the changes extracted in step S808 in the INSERT data set, and generates a second view data set including the taple ID specified in step S809 in the DELETE data set (step S812). ). Then, the view data transmission unit 54 associates the generated second view data set with the transaction ID and transmits the generated second view data set to the upper view manager (step S813). The upper view manager that is the destination here is the upper view manager that holds the view corresponding to the search condition used for the search, and can identify the view associated with the search condition when the search condition is saved in step S704. It is identified by referring to various information. The view data acquisition unit 51 of the upper view manager receives the transmitted second view data set (not shown). The received second view dataset is used to change the view in the same manner as the other view datasets sent from the data store manager (see FIG. 17). Further, the view manager receiving the transmitted second view data set uses the transaction ID received together with the view data set as the transaction ID indicating the progress time of the view data set generation process of the source node. It is managed and referred to in step S501 to determine a specific transaction ID. After that, the process shown in this flowchart ends.

なお、ステップS813で送信されたビュー用データセットを受信したビューマネージャーが、更に上位のビューマネージャーを有する場合、ビュー用データセットを受信したビューマネージャーは、ステップS807からステップS813に示された処理を実行することで、当該ビューマネージャーから見て上位のビューマネージャーのためのビュー用データセットを生成し、送信する。即ち、ステップS807からステップS813に示された処理は、ビューマネージャー間の階層における下位から上位に向けて、生成されたビュー用データセットを受け渡しながら、それぞれのビューマネージャーにおいて実行される。 When the view manager receiving the view data set transmitted in step S813 has a higher-level view manager, the view manager receiving the view data set performs the processes shown in steps S807 to S813. By executing, the view data set for the view manager higher than the view manager is generated and transmitted. That is, the processes shown in steps S807 to S813 are executed in each view manager while passing the generated view data set from the lower level to the upper level in the hierarchy between the view managers.

図17に示された処理は、所定のタイミングで(例えば、定期的に)実行される。 The process shown in FIG. 17 is executed at a predetermined timing (for example, periodically).

ステップS901では、新たなビュー用トランザクションIDが決定される。ビュー用トランザクションID更新部55は、ビュー用トランザクションIDを更新する。新たなビュー用トランザクションIDを決定する具体的な手法には様々なものが採用されうるが、例えば、複数のセッションマネージャーにおいて参照されているスナップショットのトランザクションIDを集計し、最も古いものに合わせて更新する等の手法が採用されてよい。この際、まれに極端に古いスナップショットが参照されている可能性があるが、そのようなスナップショットについては、トランザクションIDに閾値を設定する等して集計から除外することとしてもよい。新たなビュー用トランザクションIDが決定すると、処理はステップS902へ進む。 In step S901, a new view transaction ID is determined. The view transaction ID update unit 55 updates the view transaction ID. Various specific methods can be adopted to determine the transaction ID for a new view. For example, the transaction IDs of snapshots referenced by multiple session managers are aggregated and matched to the oldest one. A method such as updating may be adopted. At this time, an extremely old snapshot may be referred to in rare cases, but such a snapshot may be excluded from the aggregation by setting a threshold value for the transaction ID or the like. When the new view transaction ID is determined, the process proceeds to step S902.

ステップS902では、ビューが変更される。ビュー変更部56は、ビュー管理部52によって管理されているビューを、更新された新たなビュー用トランザクションIDによって指定された時点のビュー用データセット及びより古いビュー用データセットを用いて変更する。この際、ビュー変更部56は、更新後のビュー用トランザクションIDまでのすべてのビュー用データセットを反映する。その後、本フローチャートに示された処理は終了する。 In step S902, the view is changed. The view change unit 56 changes the view managed by the view management unit 52 by using the view data set at the time specified by the updated new view transaction ID and the older view data set. At this time, the view changing unit 56 reflects all the view data sets up to the updated view transaction ID. After that, the process shown in this flowchart ends.

本実施形態に係るデータベースシステムによれば、リレーショナルデータベースのようなテーブル等に依拠してビューが作成および変更されるのではなく、変更履歴(例えば、データセット)を参照してビューが作成および変更されるため、ビューの作成および変更に係る処理負荷を低減させることができる。また、ビューの作成および変更に係る処理負荷を低減させるために、メモリや記憶装置上にビューの実体を持たない論理上のビューを用いる技術も従来提案されているが、このようなビューでは、ビューの検索の度にビューのリンク先(実体)へのアクセスが発生するため、検索時の処理負荷が低減されない。これに対して、本実施形態に係るデータベースシステムによれば、ビューはメモリや記憶装置上に実体として存在するため、検索時の処理負荷を低減させることが出来る。 According to the database system according to the present embodiment, the view is not created and modified by relying on a table or the like such as a relational database, but is created and modified by referring to a change history (for example, a data set). Therefore, the processing load related to view creation and modification can be reduced. Further, in order to reduce the processing load related to the creation and modification of the view, a technique of using a logical view having no actual view on the memory or storage device has been conventionally proposed, but such a view has been proposed. Since the access to the link destination (entity) of the view occurs every time the view is searched, the processing load at the time of searching is not reduced. On the other hand, according to the database system according to the present embodiment, since the view exists as an entity on the memory or the storage device, the processing load at the time of searching can be reduced.

また、本実施形態に係るデータベースシステムによれば、蓄積された変更履歴(例えば、データセット)をデータベースの基礎部分として用いるデータベースシステムにおいて検索を行う場合の処理負荷を、上記説明したようなビューマネージャーを備えることによって低減させることが出来る。このため、図5から図11および図13を用いて説明した、蓄積されたデータセットに依拠するデータベース管理と、図12および図14から図17を用いて説明した、データセットに基づくビューの作成および変更と、を組み合わせることにより、データベースの内容変更(更新および削除)に伴う処理負荷の低減と、検索時の処理負荷の低減とを両立させることが出来る。但し、蓄積されたデータセットに依拠するデータベース管理と、データセットに基づくビューの作成および変更とは、必ずしも組み合わせて用いられなくても良く、他のデータベースシステムにおいて、個別に採用することとしてもよい。 Further, according to the database system according to the present embodiment, the processing load when performing a search in a database system that uses the accumulated change history (for example, a data set) as the basic part of the database is determined by the view manager as described above. It can be reduced by providing. Therefore, the database management that relies on the accumulated data set described with reference to FIGS. 5 to 11 and 13 and the creation of the data set-based view described with reference to FIGS. 12 and 14 to 17. By combining and change, it is possible to achieve both reduction of the processing load due to database content change (update and deletion) and reduction of the processing load at the time of search. However, database management that relies on accumulated datasets and view creation and modification based on datasets do not necessarily have to be used in combination, and may be adopted individually in other database systems. ..

<バリエーション>
次に、本開示に係るシステム、情報処理装置、方法およびプログラムを実施する場合のバリエーションを説明する。
<Variation>
Next, variations when implementing the system, information processing device, method, and program according to the present disclosure will be described.

本実施形態に係るデータベースシステムにおいて、更に、データベースの内容変更の際にINSERTデータセットおよびDELETEデータセットが送信される宛先データストアマネージャーを決定するためのルール(ハッシュ関数等)を予め決めておいてもよい。このようにすることで、データベースシステムを、データの配置が管理された分散データベースシステムとすることが出来る。 In the database system according to the present embodiment, further, rules (hash function, etc.) for determining the destination data store manager to which the ENCERT data set and the DELETE data set are transmitted when the contents of the database are changed are determined in advance. May be good. By doing so, the database system can be a distributed database system in which the arrangement of data is managed.

また、上記実施形態では、ビューの更新が所定のタイミングで(例えば、定期的に)実行される例について説明したが、ビューの更新のタイミングは、意図的に遅延されてもよい。例えば、ビュー管理部52によって管理されているビューの一部または全部が、ビューマネージャーのメモリに読み込まれている場合に、当該ビューのうちメモリに読み込まれている部分を変更してもよい。この際、ビュー変更部56は、メモリに読み込まれているブロックに、更新されたビュー用トランザクションIDまでの関連する全てのビュー用データセットを反映する。 Further, in the above embodiment, the example in which the view update is executed at a predetermined timing (for example, periodically) has been described, but the view update timing may be intentionally delayed. For example, when a part or all of the views managed by the view management unit 52 are read in the memory of the view manager, the part of the view that is read in the memory may be changed. At this time, the view change unit 56 reflects all the related view data sets up to the updated view transaction ID in the block read in the memory.

また、例えば、ビュー変更部56は、ビュー管理部52によって管理されているビューが、更新されたビュー用トランザクションIDと同じかまたはより新しいスナップショットが指定された処理の対象となったことを契機として、当該ビューを変更してもよい。これらの手法が採用された場合、ビューが変更されるタイミングは散発的なものとなる。 Further, for example, the view changing unit 56 takes the opportunity that the view managed by the view management unit 52 becomes the target of the process in which the same or newer snapshot as the updated transaction ID for the view is specified. The view may be changed. When these techniques are adopted, the timing of view changes will be sporadic.

<効果>
本実施形態に係るデータベースシステムでは、変更用データセットをトランザクションIDに関連付けてデータストアに蓄積することで、データベースの内容が変更されるため、データベースの内容変更に伴う処理負荷を低減させることが出来る。また、本実施形態に係るデータベースシステムでは、データベースの基礎部分をリレーショナルデータベースのようなテーブル等に依拠しないため、テーブルが壊れる等の問題に対処するための仕組みを省略することが出来る。
<Effect>
In the database system according to the present embodiment, the contents of the database are changed by accumulating the data set for change in association with the transaction ID in the data store, so that the processing load associated with the change of the contents of the database can be reduced. .. Further, in the database system according to the present embodiment, since the basic part of the database does not depend on a table or the like such as a relational database, a mechanism for dealing with a problem such as a broken table can be omitted.

また、本実施形態に係るデータベースシステムによれば、変更履歴に基づいてビューが作成および変更されるため、ビューの作成および変更に係る処理負荷を低減させることができる。また、本実施形態に係るデータベースシステムによれば、ビューはメモリや記憶装置上に実体として存在するため、検索時の処理負荷を低減させることが出来る。 Further, according to the database system according to the present embodiment, since the view is created and changed based on the change history, the processing load related to the creation and change of the view can be reduced. Further, according to the database system according to the present embodiment, since the view exists as an entity on the memory or the storage device, the processing load at the time of searching can be reduced.

更に、本実施形態に係るデータベースシステムによれば、ビューマネージャーを備えることによって、検索の処理負荷を低減させることが出来、データセットを用いたデータベース管理と、データセットに基づくビューの作成および変更と、を組み合わせることにより、データベースの内容変更(更新および削除)に伴う処理負荷の低減と、検索時の処理負荷の低減とを両立させることが出来る。但し、データセットを用いたデータベース管理と、データセットに基づくビューの作成および変更とは、必ずしも組み合わせて用いられなくても良く、他のデータベースシステムにおいて、個別に採用することとしてもよい。
Further, according to the database system according to the present embodiment, by providing the view manager, the processing load of the search can be reduced, the database management using the data set, and the creation and modification of the view based on the data set can be performed. By combining,, it is possible to achieve both reduction of the processing load due to database content change (update and deletion) and reduction of the processing load at the time of search. However, database management using a data set and creation and modification of a view based on the data set do not necessarily have to be used in combination, and may be adopted individually in other database systems.

Claims (13)

1または複数のセッション管理ノードと、1または複数のデータストア管理ノードと、少なくとも1のビュー管理ノードとを備えるデータベースシステムであって、
前記セッション管理ノードの夫々は、
データベースの内容が変更される場合に、変更の対象となるデータ単位を一意に把握可能な対象識別情報と、該データ単位の変更内容と、を含むデータセットを生成するデータセット生成手段と、
前記データセットを、少なくとも何れかの前記データストア管理ノードへ送信する、データセット送信手段と、を備え、
前記データストア管理ノードの夫々は、
受信された前記データセットを、トランザクションの時系列における位置を把握可能なトランザクション識別子を設定して蓄積するデータベース管理手段と、
前記データベース管理手段によって蓄積されている前記データセットに基づいて、予め設定された検索条件に合致するデータを含むビュー用データセットを生成するビュー用データ生成手段と、
前記ビュー用データセットを、前記ビュー管理ノードに送信するビュー用データ送信手段と、を備え、
前記ビュー管理ノードは、
前記予め設定された検索条件に合致するデータを含むビュー用データセットを、前記データストア管理ノードから取得するビュー用データ取得手段と、
前記ビュー用データ取得手段によって取得されたビュー用データセットに含まれるデータの集合を、前記予め設定された検索条件に対応するビューとして保持するビュー管理手段と、
指定された検索条件に従って前記ビューを検索するビュー検索手段と、を備え、
前記ビュー管理手段は、前記ビュー用データセットに含まれるデータのうち、前記ビューに対応するスナップショットを示すトランザクション識別子であるビュー用トランザクション識別子によって指定された時点以前のデータの集合を、前記予め設定された検索条件および該ビュー用トランザクション識別子に対応するビューとして保持する、
データベースシステム。
A database system comprising one or more session management nodes, one or more data store management nodes, and at least one view management node.
Each of the session management nodes
When the contents of the database are changed, the target identification information that can uniquely grasp the data unit to be changed, the data set generation means for generating the data set including the changed contents of the data unit, and the data set generation means.
A data set transmission means for transmitting the data set to at least one of the data store management nodes.
Each of the data store management nodes
A database management means for accumulating the received data set by setting a transaction identifier that can grasp the position of the transaction in the time series.
A view data generation means that generates a view data set including data that matches preset search conditions based on the data set accumulated by the database management means, and a view data generation means.
A view data transmission means for transmitting the view data set to the view management node is provided.
The view management node is
A view data acquisition means for acquiring a view data set containing data matching the preset search conditions from the data store management node, and a view data acquisition means.
A view management means that holds a set of data included in the view data set acquired by the view data acquisition means as a view corresponding to the preset search condition, and a view management means.
A view search means for searching the view according to a specified search condition is provided.
The view management means presets a set of data included in the view data set before the time specified by the view transaction identifier, which is a transaction identifier indicating a snapshot corresponding to the view. It is retained as a view corresponding to the search condition and the transaction identifier for the view.
Database system.
前記ビュー管理ノードは、
前記ビュー用データ取得手段によって取得された前記ビュー用データセットに基づいて、他のビューに予め設定された検索条件に合致するデータを含む第二のビュー用データセットを生成するビュー用データ生成手段と、
前記第二のビュー用データセットを、前記他のビューを管理するビュー管理ノードに送信するビュー用データ送信手段と、を更に備える、
請求項1に記載のデータベースシステム。
The view management node is
View data generation means for generating a second view data set containing data matching preset search conditions for other views based on the view data set acquired by the view data acquisition means. When,
A view data transmission means for transmitting the second view data set to the view management node that manages the other views is further provided.
The database system according to claim 1.
該データベースシステムは、階層関係を有する複数のビューを備え、
前記ビュー用データ生成手段は、前記ビュー用データ取得手段によって取得された前記ビュー用データセットに基づいて、該ビュー用データ送信手段を備えるビュー管理ノードが管理するビューより上位のビューを管理する上位ビュー管理ノードに予め設定された検索条件に合致するデータを含む第二のビュー用データセットを生成し、
前記ビュー用データ送信手段は、前記第二のビュー用データセットを、前記上位ビュー管理ノードに送信する、
請求項2に記載のデータベースシステム。
The database system includes a plurality of views having a hierarchical relationship.
The view data generation means manages a view higher than the view managed by the view management node including the view data transmission means based on the view data set acquired by the view data acquisition means. Generate a second view dataset that contains data that matches the preset search criteria in the view management node.
The view data transmission means transmits the second view data set to the upper view management node.
The database system according to claim 2.
前記ビュー用データ生成手段は、前記ビュー用トランザクション識別子より新しいトランザクション識別子が設定されたデータセットに基づいて、前記予め設定された検索条件に合致するデータを含むビュー用データセットを更に生成し、
前記ビュー管理ノードは、
前記ビュー用トランザクション識別子を更新するビュー用トランザクション識別子更新手段と、
前記ビュー管理手段によって管理されているビューを、前記更新されたビュー用トランザクション識別子によって指定された時点以前のビュー用データセットを用いて変更するビュー変更手段と、を更に備え、
前記ビュー管理手段は、前記ビュー変更手段によって変更されたビューを、前記更新されたビュー用トランザクション識別子に対応するビューとして保持する、
請求項1から3の何れか一項に記載のデータベースシステム。
The view data generation means further generates a view data set including data matching the preset search conditions based on a data set in which a transaction identifier newer than the view transaction identifier is set.
The view management node is
A view transaction identifier update means for updating the view transaction identifier, and a view transaction identifier update means.
A view changing means for changing the view managed by the view management means by using the view data set before the time specified by the updated view transaction identifier is further provided.
The view management means holds the view changed by the view changing means as a view corresponding to the updated view transaction identifier.
The database system according to any one of claims 1 to 3.
前記ビュー変更手段は、前記ビュー管理手段によって管理されている前記ビューの一部または全部が、前記ビュー管理ノードのメモリに読み込まれている場合に、該ビューのうちメモリに読み込まれている部分を変更する、
請求項4に記載のデータベースシステム。
When a part or all of the view managed by the view management means is read in the memory of the view management node, the view changing means reads a part of the view that is read in the memory. change,
The database system according to claim 4.
前記ビュー変更手段は、前記ビュー管理手段によって管理されている前記ビューが、前記更新されたビュー用トランザクション識別子以降のスナップショットが指定された処理の対象となったことを契機として、該ビューを変更する、
請求項4に記載のデータベースシステム。
The view changing means changes the view when the view managed by the view management means becomes a target of a process in which a snapshot after the updated view transaction identifier is specified. To do
The database system according to claim 4.
前記ビュー管理ノードは、前記ビュー用データ取得手段によって取得されたが前記ビューに未反映の前記ビュー用データセットのうち、検索対象のスナップショットを示す検索対象トランザクション識別子までの前記ビュー用データセットを用いて、前記ビュー検索手段による検索結果を補正するビュー検索結果補正手段を更に備える、
請求項1から6の何れか一項に記載のデータベースシステム。
The view management node captures the view data set up to the search target transaction identifier indicating the search target snapshot among the view data sets acquired by the view data acquisition means but not reflected in the view. A view search result correction means for correcting the search result by the view search means is further provided.
The database system according to any one of claims 1 to 6.
前記ビュー検索結果補正手段は、前記ビュー検索手段による検索結果に対して、
前記未反映の前記ビュー用データセットのうち前記検索対象トランザクション識別子までの前記ビュー用データセットに含まれる、前記指定された検索条件に合致する変更内容を、前記ビュー検索手段による検索結果に加える追加処理と、
前記未反映の前記ビュー用データセットのうち前記検索対象トランザクション識別子までの前記ビュー用データセットに含まれる前記対象識別情報のうち、削除対象のデータ単位を示す削除対象識別情報に示されたデータを、前記追加処理の結果から除く除外処理と、
を実行することで、前記ビュー検索手段による検索結果を補正する、
請求項7に記載のデータベースシステム。
The view search result correction means refers to the search result by the view search means.
Addition of changes that match the specified search conditions included in the view data set up to the search target transaction identifier among the unreflected view data sets to the search result by the view search means. Processing and
Of the target identification information included in the view data set up to the search target transaction identifier of the unreflected view data set, the data shown in the deletion target identification information indicating the data unit to be deleted is used. , Exclusion processing excluded from the result of the additional processing,
By executing, the search result by the view search means is corrected.
The database system according to claim 7.
前記ビュー検索結果補正手段は、前記ビュー用データ取得手段によって以後取得されないビュー用データセットの範囲を示す特定トランザクション識別子が、前記検索対象トランザクション識別子よりも古い場合、前記特定トランザクション識別子が、前記検索対象トランザクション識別子と同じ又は新しい識別子となるのを待ってから、前記補正を行う、
請求項7または8に記載のデータベースシステム。
In the view search result correction means, when the specific transaction identifier indicating the range of the view data set that is not subsequently acquired by the view data acquisition means is older than the search target transaction identifier, the specific transaction identifier is the search target. After waiting for the same or new identifier as the transaction identifier, the correction is performed.
The database system according to claim 7 or 8.
前記ビュー管理ノードは、前記ビュー用データセットを生成する夫々のノードから、ノード毎のビュー用データセットの生成処理の進行時点を示すトランザクション識別子を収集し、最も処理の進行が遅れているノードにおける進行時点を示すトランザクション識別子を前記特定トランザクション識別子として決定する、特定トランザクション識別子決定手段を更に備える、
請求項9に記載のデータベースシステム。
The view management node collects transaction identifiers indicating the progress time of the view data set generation process for each node from each node that generates the view data set, and the node in which the process progresses the most is the slowest. A means for determining a specific transaction identifier, which determines a transaction identifier indicating a progress time point as the specific transaction identifier, is further provided.
The database system according to claim 9.
前記対象識別情報は、前記変更の対象となるデータ単位を複数のデータストア管理ノードによって管理される複数のデータストア間で一意に把握可能な情報である、
請求項1から10の何れか一項に記載のデータベースシステム。
The target identification information is information that can uniquely grasp the data unit to be changed among a plurality of data stores managed by a plurality of data store management nodes.
The database system according to any one of claims 1 to 10.
1または複数のセッション管理ノードと、1または複数のデータストア管理ノードと、少なくとも1のビュー管理ノードとを備えるデータベースシステムにおいて、
前記セッション管理ノードの夫々が、
データベースの内容が変更される場合に、変更の対象となるデータ単位を一意に把握可能な対象識別情報と、該データ単位の変更内容と、を含むデータセットを生成するデータセット生成ステップと、
前記データセットを、少なくとも何れかの前記データストア管理ノードへ送信する、データセット送信ステップと、を実行し、
前記データストア管理ノードの夫々が、
受信された前記データセットを、トランザクションの時系列における位置を把握可能なトランザクション識別子を設定して蓄積するデータベース管理ステップと、
前記データベース管理ステップで蓄積されている前記データセットに基づいて、予め設定された検索条件に合致するデータを含むビュー用データセットを生成するビュー用データ生成ステップと、
前記ビュー用データセットを、前記ビュー管理ノードに送信するビュー用データ送信ステップと、を実行し、
前記ビュー管理ノードは、
前記予め設定された検索条件に合致するデータを含むビュー用データセットを、前記データストア管理ノードから取得するビュー用データ取得ステップと、
前記ビュー用データ取得ステップで取得されたビュー用データセットに含まれるデータの集合を、前記予め設定された検索条件に対応するビューとして保持するビュー管理ステップと、
指定された検索条件に従って前記ビューを検索するビュー検索ステップと、を実行し、
前記ビュー管理ステップでは、前記ビュー用データセットに含まれるデータのうち、前記ビューに対応するスナップショットを示すトランザクション識別子であるビュー用トランザクション識別子によって指定された時点以前のデータの集合が、前記予め設定された検索条件および該ビュー用トランザクション識別子に対応するビューとして保持される、
方法。
In a database system with one or more session management nodes, one or more data store management nodes, and at least one view management node.
Each of the session management nodes
When the contents of the database are changed, the data set generation step for generating a data set including the target identification information that can uniquely grasp the data unit to be changed and the changed contents of the data unit, and the data set generation step.
Performing a dataset transmission step, which transmits the dataset to at least one of the data store management nodes,
Each of the data store management nodes
A database management step that stores the received data set by setting a transaction identifier that can grasp the position of the transaction in the time series, and
A view data generation step that generates a view data set containing data that matches preset search conditions based on the data set accumulated in the database management step, and a view data generation step.
A view data transmission step of transmitting the view data set to the view management node is executed.
The view management node is
A view data acquisition step for acquiring a view data set containing data matching the preset search conditions from the data store management node, and a view data acquisition step.
A view management step that holds a set of data included in the view data set acquired in the view data acquisition step as a view corresponding to the preset search condition, and a view management step.
A view search step, which searches for the view according to the specified search conditions, is executed.
In the view management step, among the data included in the view data set, a set of data before the time specified by the view transaction identifier, which is a transaction identifier indicating a snapshot corresponding to the view, is preset. It is retained as a view corresponding to the search condition and the transaction identifier for the view.
Method.
1または複数のセッション管理ノードと、1または複数のデータストア管理ノードと、少なくとも1のビュー管理ノードとを備えるデータベースシステムにおいて、
前記セッション管理ノードの夫々を、
データベースの内容が変更される場合に、変更の対象となるデータ単位を一意に把握可能な対象識別情報と、該データ単位の変更内容と、を含むデータセットを生成するデータセット生成手段と、
前記データセットを、少なくとも何れかの前記データストア管理ノードへ送信する、データセット送信手段と、として機能させ、
前記データストア管理ノードの夫々を、
受信された前記データセットを、トランザクションの時系列における位置を把握可能なトランザクション識別子を設定して蓄積するデータベース管理手段と、
前記データベース管理手段によって蓄積されている前記データセットに基づいて、予め設定された検索条件に合致するデータを含むビュー用データセットを生成するビュー用データ生成手段と、
前記ビュー用データセットを、前記ビュー管理ノードに送信するビュー用データ送信手段と、として機能させ、
前記ビュー管理ノードを、
前記予め設定された検索条件に合致するデータを含むビュー用データセットを、前記データストア管理ノードから取得するビュー用データ取得手段と、
前記ビュー用データ取得手段によって取得されたビュー用データセットに含まれるデータの集合を、前記予め設定された検索条件に対応するビューとして保持するビュー管理手段と、
指定された検索条件に従って前記ビューを検索するビュー検索手段と、として機能させ、
前記ビュー管理手段は、前記ビュー用データセットに含まれるデータのうち、前記ビューに対応するスナップショットを示すトランザクション識別子であるビュー用トランザクション識別子によって指定された時点以前のデータの集合を、前記予め設定された検索条件および該ビュー用トランザクション識別子に対応するビューとして保持する、
プログラム。
In a database system with one or more session management nodes, one or more data store management nodes, and at least one view management node.
Each of the session management nodes
When the contents of the database are changed, the target identification information that can uniquely grasp the data unit to be changed, the data set generation means for generating the data set including the changed contents of the data unit, and the data set generation means.
Acting as a dataset transmitting means that transmits the dataset to at least one of the data store management nodes.
Each of the data store management nodes
A database management means for accumulating the received data set by setting a transaction identifier that can grasp the position of the transaction in the time series.
A view data generation means that generates a view data set including data that matches preset search conditions based on the data set accumulated by the database management means, and a view data generation means.
The view data set is made to function as a view data transmission means for transmitting to the view management node.
The view management node
A view data acquisition means for acquiring a view data set containing data matching the preset search conditions from the data store management node, and a view data acquisition means.
A view management means that holds a set of data included in the view data set acquired by the view data acquisition means as a view corresponding to the preset search condition, and a view management means.
To function as a view search means for searching the view according to specified search conditions,
The view management means presets a set of data included in the view data set before the time specified by the view transaction identifier, which is a transaction identifier indicating a snapshot corresponding to the view. It is retained as a view corresponding to the search condition and the transaction identifier for the view.
program.
JP2019516317A 2017-05-01 2017-05-01 Database system, method and program Active JP6889254B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/017203 WO2018203377A1 (en) 2017-05-01 2017-05-01 Database system, method, and program

Publications (2)

Publication Number Publication Date
JPWO2018203377A1 JPWO2018203377A1 (en) 2020-03-12
JP6889254B2 true JP6889254B2 (en) 2021-06-18

Family

ID=64016042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019516317A Active JP6889254B2 (en) 2017-05-01 2017-05-01 Database system, method and program

Country Status (2)

Country Link
JP (1) JP6889254B2 (en)
WO (1) WO2018203377A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631374B1 (en) * 2000-09-29 2003-10-07 Oracle Corp. System and method for providing fine-grained temporal database access
US8095511B2 (en) * 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
EP3373148A4 (en) * 2015-11-05 2019-05-15 Murakumo Corporation Database system, transaction management node, method, and program

Also Published As

Publication number Publication date
JPWO2018203377A1 (en) 2020-03-12
WO2018203377A1 (en) 2018-11-08

Similar Documents

Publication Publication Date Title
US10983868B2 (en) Epoch based snapshot summary
US9747320B2 (en) Efficient reference counting in content addressable storage
US9305072B2 (en) Information storage system and data replication method thereof
US9262280B1 (en) Age-out selection in hash caches
US7440977B2 (en) Recovery method using extendible hashing-based cluster logs in shared-nothing spatial database cluster
US10496618B2 (en) Managing data replication in a data grid
US11188423B2 (en) Data processing apparatus and method
WO2016148670A1 (en) Deduplication and garbage collection across logical databases
JP2007128335A (en) Replication arbitration device, method and program
JP2011238179A (en) Retrieval method, integrated retrieval server and computer program
US20180107404A1 (en) Garbage collection system and process
US11860739B2 (en) Methods for managing snapshots in a distributed de-duplication system and devices thereof
JP5352712B2 (en) Search method, integrated search server, and computer program
JP6586174B2 (en) Database system, transaction management node, method and program
US9875249B1 (en) Reducing database fragmentation
JP6889254B2 (en) Database system, method and program
JP6889253B2 (en) Database system, method and program
JP5685213B2 (en) Differential replication system, master database device, and slave database device
US10324750B2 (en) Computer system, computer system management method and program
EP3485386A1 (en) Improved data deduplication for eventual consistency system and method
US10795891B2 (en) Data deduplication for eventual consistency system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200423

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210520

R150 Certificate of patent or registration of utility model

Ref document number: 6889254

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350