JPWO2018203377A1 - Database system, method and program - Google Patents

Database system, method and program Download PDF

Info

Publication number
JPWO2018203377A1
JPWO2018203377A1 JP2019516317A JP2019516317A JPWO2018203377A1 JP WO2018203377 A1 JPWO2018203377 A1 JP WO2018203377A1 JP 2019516317 A JP2019516317 A JP 2019516317A JP 2019516317 A JP2019516317 A JP 2019516317A JP WO2018203377 A1 JPWO2018203377 A1 JP WO2018203377A1
Authority
JP
Japan
Prior art keywords
view
data
data set
transaction
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019516317A
Other languages
Japanese (ja)
Other versions
JP6889254B2 (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)

Abstract

ビューの変更における処理負荷およびビューの参照における処理負荷を何れも抑えたままビューを提供することを課題とし、セッションマネージャーの夫々は、タプルID及び変更内容を含むデータセットを生成し、データセットをデータストアマネージャーへ送信し、データストアマネージャーの夫々は、受診され蓄積されているデータセットに基づいて、予め設定された検索条件に合致するデータを含むビュー用データセットを生成し、ビュー用データセットを、ビューマネージャーに送信し、ビューマネージャーは、ビュー用データセットに含まれるデータのうち、ビューに対応するスナップショットを示すトランザクションIDであるビュー用トランザクションIDによって指定された時点以前のデータの集合を、予め設定された検索条件およびビュー用トランザクションIDに対応するビューとして保持することとした。An object of the present invention is to provide a view while suppressing the processing load in changing a view and the processing load in referencing a view. Each of the session managers generates a data set including a tuple ID and a change content, and generates a data set. Transmitting the data to the data store manager, each of the data store managers generates a view data set including data that matches a preset search condition based on the consulted and accumulated data set, and Is transmitted to the view manager, and the view manager extracts a set of data before the time point designated by the view transaction ID which is a transaction ID indicating a snapshot corresponding to the view among the data included in the view data set. , A preset detection It was decided to retain as a view corresponding to the transaction ID for conditions and views.

Description

本開示は、データベースの内容を管理し、変更(modify)するための技術に関する。   The present disclosure relates to technology 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, 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 rearranges the processing request based on the sequence number, and controls the order of input to the DBMS so that lock conflicts do not occur in the server. (See Patent Document 1).

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

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

特開2007−219598号公報JP 2007-219598 A 特開2001−350777号公報JP 2001-350777 A

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, Divakant 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.S. Reid, Sudipto Das, “Hyder-A Transactional Record Manager for Shared Flash”

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

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

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

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

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

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

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

以下、本開示に係るシステム、情報処理装置、方法およびプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係るシステム、情報処理装置、方法およびプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の態様に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。   Hereinafter, embodiments of a system, an information processing apparatus, a method, and a program according to the present disclosure will be described with reference to the drawings. However, the embodiments described below exemplify the embodiments, and do not limit the system, the information processing apparatus, the method, and the program according to the present disclosure to the specific configurations described below. In the implementation, a specific configuration according to the embodiment is 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 an instruction to change the contents of a database (such as an INSERT instruction, a DELETE instruction, and an UPDATE instruction) is processed, the contents of the change related to the change instruction are stored in the database system. A technique for managing data in respective data stores managed by a plurality of nodes belonging to a. Here, the data store is a word indicating a record of part or all of the database managed by the database system according to the present disclosure, or a place where part or all of the database is held. Note that the database management technology according to the present disclosure is not limited to the system illustrated in the present embodiment, but is applicable to a database system having a plurality of nodes. Further, the database system that can adopt the database management technology according to the present disclosure 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 communicably connected to 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. Some of the other nodes are nodes having a role as a session manager, and operate as a session management node. Some of the other nodes are nodes having a role as a data store manager, and operate as data store management nodes. Further, some of the other nodes are nodes having a role as a view manager, and operate as view management nodes.

但し、本開示に係るデータベース管理技術を適用可能なデータベースシステムは、本実施形態に例示した構成のデータベースシステムに限定されない。例えば、セッションマネージャーとデータストアマネージャーとは、同一のノードにおいて動作してもよい。また、ビューを参照しないデータベースシステムを構築する場合には、ビューマネージャーは省略されてよい。何れにしても、本実施形態に係るデータベースシステムは、複数のセッション管理ノードと、複数のデータストア管理ノードと、少なくとも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. Also, when constructing a database system that does not refer to a view, 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 of the data store management nodes has a data store managed by a data store manager operating on itself, and these data stores are stored in a database managed by the database system according to the present disclosure. It has some or all of the data. In the database management technique according to the present disclosure, a change data set including the content of a change to be made to a database is generated by any session manager, propagated to one or more data store managers belonging to the system, and propagated. When the transaction ID is assigned to the change data set and managed by each data store, the change of the entire database is completed. For this reason, in the system according to the present embodiment, when a change data set occurs, the same change data set is transmitted to a plurality of data store managers, so that data store management can be made redundant, and database replication can be performed. Can be realized. Redundancy of data store management can be realized, for example, by specifying a plurality of node IDs of the transmission destination of the change data set, or preparing a plurality of 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のビューマネージャーによって複数のビューが管理されてもよい。   In the present embodiment, each view management node has a view managed by a view manager operating on itself. In the present embodiment, a view is data obtained by narrowing down data at a time point specified by a certain transaction ID by a search condition and organizing the data in a form suitable for a search. The search condition is notified to the data store manager and the session manager together with information capable of identifying the view related to the search condition. Note that the format in which the view holds data is not limited. The view can hold data in the form of, for example, a table (table) or a graph. The present embodiment will be described on the assumption that one view manager manages one view. For this reason, in the present embodiment, the view manager can be identified by the view ID, and the search condition (view search condition) used to generate the view is to identify the view and the view manager. Can also be used as information. However, a plurality of views may be managed by one view manager.

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

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

更に、ネットワークには、ユーザー端末9が接続されている。本実施形態に開示されたデータベースシステムは、何れのセッションマネージャーも、ユーザー端末9等から送信されたクエリを受け付けて実行することが可能なデータベースシステムである。   Further, a 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 the 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 illustrating an outline of a hardware configuration of a 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, and the like, 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 according to the embodiment. Further, the node is not limited to a single device. The node may be realized by a plurality of devices using a so-called cloud or distributed computing technique. The data store managed by each node may be constructed on the storage 14 or on the RAM 12, and the construction location of the data store is not limited.

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

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

はじめに、セッション管理ノードの機能構成を説明する。本実施形態において、セッションマネージャーとしての役割を有する複数のノードの夫々は、セッションマネージャー用プログラムをバスおよびRAM12を介してCPU11が読み込んで実行することによって、クエリ受付部21、クエリ処理部22、スナップショット特定用情報取得部23、処理用データ取得部24、データセット生成部25およびデータセット送信部26を備えるセッション管理ノードとして機能する。   First, a functional configuration of the session management node will be described. In the present embodiment, each of the plurality of nodes having the role of the session manager reads and executes the session manager program via the bus and the RAM 12 to execute the query accepting unit 21, the query processing unit 22, and the snap processing unit. It functions as a session management node including a shot specifying 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 receiving unit 21 receives a query for the database system transmitted from the user terminal 9. In the database system according to the present embodiment, there are a plurality of session management nodes that execute a session manager, and any of the plurality of session management nodes can receive a query 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 specifying information obtaining unit 23 obtains, from the transaction manager, information capable of specifying a snapshot used for processing. Here, the snapshot is a word indicating the content of the database at a certain point in time series in which the content of the database changes as transactions are sequentially committed. In the present embodiment, the information acquired by the snapshot identifying information acquiring unit 23 is a transaction ID (hereinafter, referred to as “snapshot identifying transaction ID”). However, the acquired information is for guaranteeing the consistency of data used in the processing of the transaction, and thus may be any information that can specify the snapshot, and is not limited to the transaction ID. For example, the information that can specify a snapshot may be information that can specify a logical point in time in a time series in which a plurality of transactions are sequentially processed, instead of the transaction ID.

処理用データ取得部24は、クエリの処理に用いるデータを、複数のデータストアマネージャーおよび複数のビューマネージャーの少なくとも何れかから取得する。この際、処理用データ取得部24は、データストアマネージャーまたはビューマネージャーに対して、スナップショット特定用情報取得部23によって取得された情報(スナップショット特定用トランザクションID)を指定することで、所定のスナップショットにおけるデータを取得する。   The processing data acquisition unit 24 acquires data used for processing a query from at least one of a plurality of data store managers and a plurality of view managers. At this time, the processing data obtaining unit 24 specifies the information (snapshot specifying transaction ID) obtained by the snapshot specifying information obtaining unit 23 to the data store manager or the view manager, and Get 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 performs the tuple ID of the tuple to be changed without making a change based on the change instruction to the database. And a change data set including the change contents. 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 content of the change is reflected in the database. In the database system according to the present embodiment, the data set for change 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 data set for change. The changes are reflected in the database.

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

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

また、変更用データセットには、スナップショット特定用トランザクションID及びデータセットIDが設定されている。データセットIDは、変更用データセットを一意に識別可能な識別情報であり、変更用データセットの生成時に付与される。   In addition, a snapshot identification transaction ID and a data set ID are set in the change data set. The data set ID is identification information capable of uniquely identifying 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 data set and the INSERT data set include information indicating a tuple targeted for a change instruction. Specifically, the DELETE data set includes the tuple ID of the tuple to be deleted (2 in the example shown in FIG. 4), and the INSERT data set includes the tuple ID of the tuple to be added (FIG. 4). In the example shown in (1), 13) and the content of data to be added are included. In this embodiment, the UPDATE instruction is treated as a combination of the INSERT instruction and the DELETE instruction. The tuple ID of the tuple 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 tuple ID of the tuple containing the data is included in the INSERT data set. However, the data set in which the tuple ID of the tuple including the data before the update by the UPDATE instruction and the tuple ID of the tuple including the updated data and the data are not limited to the example disclosed in the present embodiment. . For example, the tuple ID and data related to the UPDATE instruction may be configured to be collectively included in the UPDATE data set.

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

次に、トランザクション管理ノードの機能構成を説明する。本実施形態において、トランザクションマネージャーとしての役割を有するノードは、トランザクションマネージャー用プログラムをバスおよびRAM12を介してCPU11が読み込んで実行することによって、情報取得部31、競合判定部32、変更データ単位情報蓄積部33、識別子生成部34および識別子送信部35を備えるトランザクション管理ノードとして機能する。   Next, a functional configuration of the transaction management node will be described. In this embodiment, the node having the role of the transaction manager reads and executes the transaction manager program via the bus and the RAM 12 to execute 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 transmission unit 26 of the session manager.

競合判定部32は、情報取得部31によって取得されたDELETEデータセットに記載された削除対象タプルIDと、変更データ単位情報蓄積部33によって蓄積された、変更済のタプルを示す情報(本実施形態では削除されたタプルのタプルID)と、を比較し、一致するタプルIDが存在するか否かを確認することで、削除対象の競合の有無を判定する。競合判定部32によって削除対象の競合が有ると判定された場合、変更用データセットに基づく変更は中止される。   The conflict determination unit 32 includes a deletion target tuple ID described in the DELETE data set acquired by the information acquisition unit 31 and information indicating the changed tuple accumulated by the modified data unit information accumulation unit 33 (this embodiment Then, the tuple ID of the deleted tuple is compared with the corresponding tuple ID to confirm whether or not a matching tuple ID exists, thereby determining 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 stopped.

変更データ単位情報蓄積部33は、競合判定部32によって削除対象の競合が無いと判定された場合に、情報取得部31によって取得された削除対象タプルIDを、当該データベースシステムにおいて変更されたタプルを示す情報(何れのタプルが何れの時点で変更されたか、を把握可能な情報)として蓄積する。   When the conflict determination unit 32 determines that there is no conflict of the deletion target, the change data unit information storage unit 33 replaces the tuple ID acquired by the information acquisition unit 31 with the tuple changed in the database system. The information is accumulated as information indicating which tuple was changed at which 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 capable of grasping a position in a logical chronological order related to the processing of the transaction. In this embodiment, an ascending integer is used as the transaction ID.

識別子送信部35は、データセットIDと当該データセットIDに対応するトランザクションIDとを含む識別子セットを、複数のデータストアマネージャーのうち、少なくとも、データセット送信部26によって当該データセットIDに対応するデータセットが送信されたデータストアマネージャーに送信する。識別子セットは、全てのデータストアマネージャーに対して送信されてもよい。   The identifier transmitting unit 35 transmits the identifier set including the data set ID and the transaction ID corresponding to the data set ID to at least the data corresponding to the data set ID by the data set transmitting unit 26 among the plurality of data store managers. Send to the datastore manager where the set 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 the role of the data store manager reads and executes the data store manager program via the bus and the RAM 12 so that the processing data transmission unit 41 and the data set It functions as a data store management node including a / identifier receiving unit 42, a database management unit 43, an aggregate 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, from the session manager, a data request specifying information that can specify a snapshot (in this embodiment, a transaction ID for specifying a snapshot), the processing data transmission unit 41 performs processing up to the specified snapshot. The processing data generated based on the change data set is transmitted to the session manager.

データセット/識別子受信部42は、セッションマネージャーによって送信された変更用データセット、およびトランザクションマネージャーによって送信された識別子セットを受信する。   The data set / identifier receiving unit 42 receives the change 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 technology 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 a transaction ID and storing the received data set. More specifically, when the data set / identifier receiving unit 42 receives the identifier set, the database management unit 43 specifies the data set indicated by the data set ID included in the identifier set, and 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 changes contained in the data set at the time point designated by the predetermined transaction ID and the older data set, and removes the data indicated in the DELETE data set to thereby execute the predetermined transaction. The data set at the point in time specified by the ID and the older data set are integrated to generate an aggregated data set. When the aggregate dataset is generated, the database management unit 43 manages the aggregate dataset as one of the stored datasets by setting a transaction ID to the aggregate dataset. In the present embodiment, by setting two transaction IDs, a transaction ID indicating a start point and a transaction ID indicating an end point, in a set data set, the range of transactions included in the set data set is indicated. Here, the transaction ID indicating the start point is the ID of the oldest transaction among the original transactions linked to the aggregate data set, and the transaction ID indicating the end point is the ID of the original transaction linked to the aggregate data set. This is the ID of the newest transaction. In addition, 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 for the set data set.

データ抽出部45は、データベース管理部43によって蓄積されているデータセットのうち、所望のトランザクションIDによって指定された時点のデータセット及びより古いトランザクションIDが設定されたデータセットから、所望の検索条件に合致するデータを抽出する。具体的には、データ抽出部45は、INSERTデータセットに含まれるタプルの変更内容を検索することによって索出されたデータから、DELETEデータセットに記載された削除対象タプルIDに示されたデータを除くことで、所望の検索条件に合致するデータを抽出する。ここでデータ抽出部45は、検索対象トランザクションIDが、以後反映されないデータセットの範囲を示す特定トランザクションID(本実施形態では、最新のトランザクションID)よりも新しい場合、検索対象トランザクションIDが、当該特定トランザクションIDと同じか又はより古いトランザクションIDとなるのを待ってから、抽出を行う。   The data extracting unit 45 converts a data set designated by a desired transaction ID and a data set in which an older transaction ID is set from data sets stored by the database management unit 43 into a desired search condition. Extract matching data. Specifically, the data extracting unit 45 extracts data indicated by the deletion target tuple ID described in the DELETE data set from the data searched out by searching for the changed contents of the tuple included in the INSERT data set. By removing the data, data matching the desired search condition is extracted. Here, when the search target transaction ID is newer than the specific transaction ID (in this embodiment, the latest transaction ID) indicating the range of the data set that is not reflected thereafter, the data extraction unit 45 determines that the search target transaction ID is Extraction is performed after waiting for a transaction ID equal to 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 a preset search condition based on the data set stored by the database management unit 43. The configuration of the view data set generated here is substantially the same as the configuration of the change data set described with reference to FIG. 4, and the generated transaction data set has a corresponding transaction ID. Is done.

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

次に、ビュー管理ノードの機能構成を説明する。本実施形態において、ビューマネージャーとしての役割を有する複数のノードの夫々は、ビューマネージャー用プログラムをバスおよびRAM12を介してCPU11が読み込んで実行することによって、ビュー用データ取得部51、ビュー管理部52、ビュー用データ生成部53、ビュー用データ送信部54、ビュー用トランザクションID更新部55、ビュー変更部56、ビュー検索部57、ビュー検索結果補正部58および特定トランザクションID決定部59を備えるビュー管理ノードとして機能する。   Next, a functional configuration of the view management node will be described. In the present embodiment, each of the plurality of nodes serving as the view manager reads and executes the view manager program via the bus and the RAM 12 to execute the view data acquisition unit 51 and the view management unit 52. 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. Act as a node.

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

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

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

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

ビュー用データ送信部54は、第二のビュー用データセットを、当該第二のビュー用データセットの生成に用いられた検索条件に係るビューを管理するビューマネージャー(本実施形態では、上位ビューを管理するビューマネージャー)に送信する。   The view data transmitting unit 54 converts the second view data set into a view manager (in this embodiment, a higher-level view, which manages a view related to the search condition used to generate the second view data set). View manager).

ビュー用トランザクションID更新部55は、ビュー用トランザクションIDを更新する。   The view transaction ID updating 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 using the view data set at the time point designated by the updated view transaction ID and the older view data set.

ビュー検索部57は、指定された検索条件に従ってビューを検索する。   The view search unit 57 searches for a view according to the specified 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 search target snapshot is newer than the view transaction ID. The view search result correction unit 58 uses the view data sets 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 views to correct the search results. However, here, the view search result correction unit 58 determines whether the search target transaction ID is the same as the specific transaction ID when the search target transaction ID is newer than the specific transaction ID indicating the range of the view data set that is not acquired thereafter. Alternatively, the correction is performed after waiting for an older transaction ID.

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

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

図5から図10は、本実施形態におけるデータベース管理処理の流れを示すフローチャートである。図5のフローチャートに示された処理は、データベースシステムに属する何れかのセッション管理ノードのクエリ受付部21によって、ユーザー端末9から送信されたクエリが受け付けられ、また、データベースの内容の変更命令を含むトランザクションの開始命令が受信されたことを契機として開始される。   5 to 10 are flowcharts illustrating the flow of the database management process according to the present embodiment. The process illustrated in the flowchart of FIG. 5 includes a query transmitted from the user terminal 9 by the query receiving unit 21 of any session management node belonging to the database system, and includes a command to change the content of the database. It is started when a 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 obtained. When a transaction start command is received (step S101), the snapshot specifying information acquisition unit 23 inquires of the transaction manager about a snapshot specifying transaction ID used for processing (steps S102 and S103). Then, the transaction manager transmits the transaction ID last given at the time of the reply to the session manager (step S104), and the snapshot specifying 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 (ie, the latest) at the time of reply, but the transaction ID transmitted at this time is set to the latest transaction ID. Not limited. Thereafter, the processing shown in this flowchart ends.

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

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

ステップS107では、当該トランザクションに係る変更用データセット生成/更新処理を終了するか否かが判定される。具体的には、クエリ処理部22は、当該トランザクションにおける次の命令がコミット命令である場合、当該トランザクションに係る変更用データセット生成/更新処理を終了する。当該トランザクションにおける次の命令がコミット命令ではない場合、処理はステップS108へ進む。   In step S107, it is determined whether to end the change data set generation / update processing for the transaction. Specifically, when the next command in the transaction is a commit command, the query processing unit 22 ends the change data set generation / update process related to the transaction. If the next command in the transaction is not a commit command, 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 obtained. In steps S108 to S112, the processing data acquisition unit 24 requests data from a view manager suitable for acquiring data 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 command 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 that has received the data request in step S109 acquires data corresponding to the search condition and the snapshot identification transaction ID from the view managed by the view manager (step S110). The flow of the process in which the view manager that has received 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 transmitted the data request (step S111). Thereafter, the processing data acquisition unit 24 of the session manager that has transmitted the data request acquires the processing data by receiving the transmitted data (step S112). Thereafter, the process proceeds to step S113.

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

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

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

判定の結果、処理に必要なデータが全て揃った(データストアマネージャーからのデータ取得が不要である)と判定された場合、処理はステップS119へ進む。一方、判定の結果、処理に必要なデータが不足している(データストアマネージャーからのデータ取得が必要である)と判定された場合、処理はステップS114へ進む。   As a result of the determination, when it is determined that all the data necessary for the processing are obtained (the data acquisition from the data store manager is unnecessary), the processing proceeds to step S119. On the other hand, if it is determined that the data required for the processing is insufficient (data acquisition from the data store manager is necessary), the processing 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 obtained. The processing data acquisition unit 24 notifies the data store manager of the search condition and the snapshot identification transaction ID, and requests 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 point specified by the received snapshot specifying transaction ID and the older change data set. A search is performed using the searched 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 flow of the process in which the data store manager receives the data request to acquire the data will be described later with reference to FIG. Thereafter, the processing data acquisition unit 24 acquires desired processing data by receiving the data transmitted from the data store manager (step S118). Thereafter, the process proceeds to step S119.

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

図7は、本実施形態においてセッションマネージャーによって実行される、命令処理及び変更用データセット生成/更新処理の流れを示す図である。本フローチャートは、図6に示されたステップS119の処理の内容を詳細に示したものである。   FIG. 7 is a diagram showing the flow of the command processing and the data set generation / update processing for change executed by the session manager in the present embodiment. This flowchart shows the details of the processing in 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 condition, the data obtained from the view manager in step S112 and the data obtained from the data store manager in step S118. In the acquired data, data duplication for the same tuple may occur. For this reason, when the data acquired in step S112 and step S118 includes data related to the same tuple redundantly, the processing data acquisition unit 24 deletes one of the duplicated data, Eliminate data duplication. Thereafter, the process proceeds to step S122.

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

ステップS122及びステップS123では、命令処理のために取得されたデータに対して、当該トランザクションにおいて生成済みの変更用データセットに基づいた調整が加えられる。これは、ステップS124における命令実行を、同一トランザクション内において既に実行された命令の実行結果を正しく反映したものとするための処理である。クエリ処理部22は、当該トランザクションについて既に1回以上変更用データセット生成/変更処理が実行されており、当該トランザクションに係る変更用データセットが生成されている場合、当該変更用データセットの内容を用いて、ステップS118までの処理で取得されたデータを調整する。   In steps S122 and S123, the data acquired for the instruction processing is adjusted based on the change data set generated in the transaction. This is a process for making the instruction execution in step S124 correctly reflect the execution result of the instruction already executed in the same transaction. If the change data set generation / change processing has already been executed at least once for the transaction and the change data set related to the transaction has been generated, the query processing unit 22 deletes the contents of the change data set. To adjust the data acquired in the processing 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 using search conditions (the search conditions used in step S108 and step S114), and searches the tuple 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 indicated in the DELETE set in the change data set from the obtained data (step S123). Thereafter, the processing proceeds to step S124.

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

ステップS125からステップS127では、変更用データセットが生成または更新される。データセット生成部25は、ステップS124における命令実行の結果得られた変更をデータベースに反映することなく、変更対象のタプルIDおよび変更内容を含む変更用データセット(図4を参照)を生成または更新する。   In steps S125 to S127, a data set for change 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 content without reflecting the change obtained as a result of the instruction execution in step S124 in the database. I do.

ここで、命令実行の結果発生した新たな削除対象タプルには、当該トランザクションのこれまでの処理において新たに追加されたタプルを対象とするものと、そうでないものとが存在する。このため、データセット生成部25は、命令実行の結果発生した新たな削除対象タプルのうち、当該トランザクションに係る変更用データセット内のINSERTセットに存在するタプル(当該トランザクションのこれまでの処理において新たに追加されたタプル)については、当該INSERTセットから削除する(ステップS125)。また、データセット生成部25は、命令実行の結果発生した新たな削除対象タプルのうち、当該トランザクションに係る変更用データセット内のINSERTセットに無い新たな削除対象タプルについては、当該トランザクションに係る変更用データセット内のDELETEセットに追加する(ステップS126)。そして、データセット生成部25は、命令実行の結果発生した新たに追加されるタプル(タプルID及び当該タプルのデータ内容)を、当該トランザクションに係る変更用データセット内のINSERTセットに追加する(ステップS127)。   Here, the new tuple to be deleted generated as a result of the instruction execution includes a tuple newly added in the processing so far of the transaction and a tuple that is not. For this reason, the data set generation unit 25 selects, from among the new deletion target tuples generated as a result of the instruction execution, the tuples existing in the INSERT set in the change data set related to the transaction (the new tuples in the previous processing of the transaction). Is deleted from the INSERT set (step S125). In addition, among the new deletion target tuples generated as a result of the instruction execution, the data set generation unit 25 changes the new deletion target tuple that is not included in the INSERT set in the change data set related to the transaction. It is added to the DELETE 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 the 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 tuple ID of the INSERT data set includes the newly numbered entire database system (more specifically, managed by a plurality of data store managers). A unique tuple ID is written between a plurality of data stores. Further, when a change data set relating to the transaction is newly generated, the snapshot identification transaction ID acquired in step S105 is set in the change data set. Thereafter, the processing shown in this flowchart ends.

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

図8のフローチャートに示された処理は、セッションマネージャーによって生成された変更用データセットに係るコミット命令が読み出されたことを契機として実行される。   The process shown in the flowchart of FIG. 8 is executed when the commit command 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 steps S201 and S202, the INSERT 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 a data store manager that manages a data store to which data is added by an INSERT instruction among a plurality of data store managers (step S201), The ID and the INSERT data set are transmitted to the determined data store manager (step S202). Here, the INSERT data set may be transmitted directly to a target data store manager, or may be transmitted 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 INSERT data set (change contents) transmitted by the session manager. Thereafter, the process proceeds to step S203.

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

ステップS204では、データセットIDが送信される。セッションマネージャーのデータセット送信部26は、データセットIDを、トランザクションマネージャーに送信する。トランザクションマネージャーの情報取得部31は、セッションマネージャーによって送信されたデータセットIDを取得する。その後、本フローチャートに示された処理は終了する。   In step S204, the data set ID is transmitted. The data set transmitting 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. Thereafter, the processing shown in this flowchart ends.

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

ステップS205およびステップS206では、変更用データセットに設定されたデータセットIDおよびDELETEデータセット(変更内容)が、データストアマネージャー宛に送信される。ここで、各セッションマネージャーのデータセット送信部26は、複数のデータストアマネージャーのうち、少なくとも、DELETE命令による変更対象のデータを含むデータストアを管理するデータストアマネージャーを送信先に決定し(ステップS205)、データセットIDおよびDELETEデータセットを、送信先に決定されたデータストアマネージャーに対して送信する(ステップS206)。ここで、DELETEデータセットは、目的のデータストアマネージャーに対して直接送信されてもよいし、複数のノードを介して間接的に送信されてもよい。そして、データストアマネージャーのデータセット/識別子受信部42は、セッションマネージャーによって送信されたデータセットIDおよびDELETEデータセット(変更内容)を取得する。その後、処理はステップS207へ進む。   In steps S205 and 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, as a transmission destination, at least a data store manager that manages a data store including data to be changed by the DELETE instruction among a plurality of data store managers (Step S205). ), The data set ID and the DELETE data set are transmitted to the data store manager determined as the transmission destination (step S206). Here, the DELETE data set may be transmitted directly to a target data store manager, or may be transmitted 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 DELETE data set (change contents) transmitted by the session manager. Thereafter, 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 specifying 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 (deletion target tuple ID) transmitted in step S206 to the transaction manager together with the snapshot identification transaction ID. The information acquisition unit 31 of the transaction manager acquires the data set ID, the snapshot identification transaction ID, and the DELETE data set (deletion target tuple ID) transmitted by the session manager. Thereafter, the processing 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, a data set 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 transaction ID for snapshot identification and the DELETE data set in addition to the data set ID. Thereafter, 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 has been received together with the DELETE data set. If the DELETE data set is combined with the received data set ID, the process proceeds to conflict determination in step S304. On the other hand, when the DELETE data set is not combined with the received data set ID, the change data set indicated by the data set ID does not change the existing tuple, so that the conflict determination by the transaction manager is unnecessary. . Therefore, if the DELETE data set is not combined with the received data set ID, the process proceeds to step S303.

ステップS303では、トランザクションIDが採番される。削除対象の競合が無い場合、識別子生成部34は、当該データセットIDが示す変更用データセットに係るトランザクションを識別するためのトランザクションIDを採番する。上述の通り、トランザクションIDは、トランザクションの処理に係る論理上の時系列における位置を把握可能な識別子であり、本実施形態では、競合が存在しないことが確認された順に、昇順で整数の数値が採番される。その後、処理はステップS314へ進む。   In step S303, a transaction ID is assigned. When there is no conflict of the deletion target, the identifier generation unit 34 assigns a transaction ID for identifying a transaction related to the change data set indicated by the data set ID. As described above, the transaction ID is an identifier capable of grasping a position in a logical chronological order related to the processing of the transaction. In the present embodiment, the integer numerical values are assigned in ascending order in the order in which no conflict exists. Numbered. Thereafter, 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 tuple ID to be deleted described in the DELETE data set acquired in step S301 with the conflict determination tuple ID accumulated when step S313 described below was previously executed. By checking whether a matching tuple ID exists, it is determined whether 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 was executed before. As described above, the transaction ID for snapshot identification acquired in step S105 is set in the data set for change, and the conflict determination unit 32 determines that the conflict ID stored after the transaction identified by the transaction ID is The tuple ID for determination and the tuple ID to be deleted are compared.

競合判定の結果、削除対象タプルIDと競合判定用タプルIDとが競合する(一致するタプルIDが存在する)と判定された場合、処理はステップS305へ進む。一方、競合判定の結果、削除対象タプルIDと競合判定用タプルIDとが競合しない(一致するタプルIDが存在しない)と判定された場合、処理はステップS312へ進む。   As a result of the conflict determination, if it is determined that the tuple ID to be deleted and the tuple ID for conflict determination conflict (a matching tuple ID exists), the process proceeds to step S305. On the other hand, as a result of the conflict determination, if it is determined that the tuple ID to be deleted does not conflict with the tuple ID for conflict determination (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 data set for change is interrupted, and the change based on the data set for change 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 changing the database based on the change dataset including the corresponding tuple to be deleted.

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

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

ステップS312では、トランザクションIDが採番される。ステップS304で削除対象の競合が無いと判定された場合、識別子生成部34は、当該データセットIDが示す変更用データセットに係るトランザクションを識別するためのトランザクションIDを採番する。採用される具体的なトランザクションIDの態様は、ステップS303において説明した通りである。その後、処理はステップS313へ進む。   In step S312, a transaction ID is assigned. If 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 a transaction related to the change data set indicated by the data set ID. The specific form of the transaction ID employed is as described in step S303. Thereafter, 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 accumulation unit 33 accumulates 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 accumulated tuple ID for conflict determination stored here is referred to in step S304 when the database management process according to this flowchart is executed next time or later. Thereafter, the process proceeds to step S314.

ステップS314およびステップS315では、データセットIDおよびトランザクションIDが記録され、データセットIDおよびトランザクションIDが送信される。トランザクションマネージャーは、採番されたトランザクションIDと、データセットIDとを紐付けて、トランザクション管理ノードのストレージに記録する(ステップS314)。そして、トランザクションマネージャーの識別子送信部35は、互いに紐付けられたデータセットIDおよびトランザクションIDの組である識別子セットを、全てのデータストアマネージャーに対して送信する(ステップS315)。   In steps S314 and 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 it in the storage of the transaction management node (step S314). Then, the identifier transmission unit 35 of the transaction manager transmits an identifier set, which is a set of the data set ID and the transaction ID linked to 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 to the data store manager having no corresponding data set as the latest transaction ID. The data store manager that has received the notification of the latest transaction ID uses the latest transaction ID for comparison with the search target transaction ID in a data search process described later with reference to FIG.

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

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

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

ステップS316からステップS318では、コミット通知が行われる。トランザクションマネージャーは、変更用データセットの送信元セッションマネージャーに対してコミット通知を送信する(ステップS316)。コミット通知を受信した(ステップS317)セッションマネージャーは、クエリの送信元であるユーザー端末9に対して、コミットが完了したことを通知する(ステップS318)。本開示に係るデータベース管理技術では、ユーザーに対するコミット通知は、データストアにおけるデータセットへのトランザクションID付与(後述するステップS321)を待たずに行われてもよいし、待ってから行われてもよい。   In steps S316 to S318, a commit notification is performed. The transaction manager transmits a commit notification to the source session manager of the data set for change (step S316). Upon receiving the commit notification (step S317), the session manager notifies the user terminal 9 that has transmitted 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 assignment 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 data set ID and the 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. Thereafter, 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 steps S320 and S321, a transaction ID is assigned 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 processing described with reference to FIG. By comparing the received data set ID with the received data set ID in S319, the change data set corresponding to the received data set ID is specified (Step S320). When the data store manager has received the data set for change corresponding to the data set ID, the database management unit 43 stores the INSERT data set and / or the DELETE data set indicated by the data set ID included in the identifier set. Then, a transaction ID corresponding to the data set ID is set (S321). Thereafter, 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 to be updated here is a transaction ID indicating a range of a data set that is not reflected in the database by the data store manager thereafter. Used. Thereafter, the processing shown in this flowchart ends.

本実施形態に係るデータベースシステムでは、所定の形式を有するテーブル等が書き換えられることによってデータベースの内容が変更されるのではなく、変更の内容を含む変更用データセットをトランザクションIDに関連付けてデータストアに蓄積することで、データベースの内容が変更される。このため、本実施形態に係るデータベースシステムによれば、データベースの内容変更(更新および削除)に伴う処理負荷を低減させることが出来る。また、本実施形態に係るデータベースシステムでは、データベースの基礎部分が整理されたテーブル等に依存しないため、テーブルが壊れる等の問題に対処するための仕組み(チェックポイント等)を省略することが出来る。   In the database system according to the present embodiment, the content of the database is not changed by rewriting a table or the like having a predetermined format, but the data set for change including the content of the change is associated with the transaction ID and stored in the data store. The accumulation changes the contents of the database. For this reason, 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 tables 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 illustrating a flow of a data search process in the data store manager according to the present embodiment. FIG. 11 explains in detail the data search processing executed in step S116, step S710, and the like.

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

なお、検索結果の補正に必要なデータセットが未だ反映されていない可能性の有無を判断するために検索対象トランザクションIDと比較される対象は、本実施形態に開示された例に限定されない。検索対象トランザクションIDと比較される特定トランザクションIDは、検索を行うデータストアマネージャーによって以後反映されないデータセットの範囲を示すトランザクションIDであればよい。即ち、本実施形態において、データストアマネージャーにおける特定トランザクションIDとは、検索を行うデータストアマネージャーが、(既に受信したか、または今後受信する全ての)データセットにその値より小さいトランザクションID(即ち、それより古いトランザクションID)を付与することがないことが保証されたトランザクションIDである。また、判断を行うデータストアマネージャーが、判断のための情報(例えば、最新のトランザクションID)を取得する方法も限定されない。本実施形態では、最新のトランザクションIDがトランザクションマネージャーから通知されることによって(ステップS315)、データストアマネージャーは判断のための情報を取得するが、データストアマネージャーは、判断のための情報を、検索処理の際にトランザクションマネージャーや他のデータストアマネージャーに問い合わせることで取得してもよい。   The target to be compared with the search target transaction ID to determine whether there is a possibility that the data set required for correcting the search result has not yet been reflected is not limited to the example disclosed in the present embodiment. The specific transaction ID to be compared with the search target transaction ID may be a transaction ID indicating a range of a data set that is not reflected by the data store manager performing 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 that is smaller than that value) in the data set (all data already received or received in the future). This is a transaction ID that is guaranteed not to be assigned an older transaction ID. Further, the method by which the data store manager that makes the determination obtains information for determination (for example, the latest transaction ID) is not limited. In this embodiment, when the latest transaction ID is notified from the transaction manager (step S315), the data store manager obtains information for determination, but the data store manager searches for information for determination. It may be obtained by inquiring the transaction manager or another data store manager at the time of 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 search target transaction ID is a (newer) 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 or a new transaction ID as the search target transaction ID (in other words, until there is no possibility that a data set required for the search is acquired). (Step S402). On the other hand, when it is determined that the search target transaction ID is the same 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 in accordance with the search condition. First, the data extraction unit 45 selects a desired data set from among the data sets stored by the database management unit 43, in which the same or older transaction ID as the search target transaction ID indicating the search target snapshot is set. (Specifically, the change contents of the tuple included in the INSERT data set) that matches the search condition (for example, the search condition notified from another node) (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 in which the same or older transaction ID as the search target transaction ID indicating the search target snapshot is set in the tuple ID of the tuple retrieved from the INSERT dataset in step S403. A data set is searched (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 extracting unit 45 can extract, from the data set for change (including the INSERT data set and the DELETE data set) stored in the data store manager, data matching the desired search condition and the desired snapshot. Is extracted. Thereafter, the processing shown in this flowchart ends.

図12は、本実施形態に係る、ビューマネージャーにおけるデータ検索処理の流れを示すフローチャートである。図12は、ステップS110やステップS703等において実行されるデータ検索処理を詳細に説明するものである。   FIG. 12 is a flowchart illustrating a flow of a data search process in the view manager according to the present embodiment. FIG. 12 describes in detail the data search processing 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 necessary for the search result correction has not yet been received by the view manager, and if there is a possibility that the necessary data set has not yet been received, Search processing is awaited. Specifically, the view search result correction unit 58 determines the necessity of standby by searching for the search target transaction ID indicating the search target snapshot and the progress of the current view data set generation process in the entire database system. The specific transaction ID indicating the time point is compared (step S501).

本実施形態において、データベースシステム全体における現在のビュー用データセット生成処理の進行時点を示す特定トランザクションIDは、以下のようにして決定される。即ち、特定トランザクションID決定部59は、ビュー用データセットを生成する各ノード(データストアマネージャーおよびビューマネージャーを含む)から、ノード毎のビュー用データセット生成処理(図15および図16を参照)の進行時点を示すトランザクションIDを収集し、最も処理の進行が遅れているノードにおける進行時点を示すトランザクションIDを、特定トランザクションIDとして決定する。このため、本実施形態では、ビュー用データセットを生成する各ノード(データストアマネージャーおよびビューマネージャーを含む)は、自ノードのビュー用データセット生成処理の進行時点を示すトランザクションIDを、システム内の関連するビューマネージャーに対して通知する(通知処理については、図15および図16を用いて後述する)。   In the present embodiment, the specific transaction ID indicating the progress point 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 processing (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. The transaction ID indicating the progress point is collected, and the transaction ID indicating the progress point at the node where the processing progresses most late is determined as the specific transaction ID. For this reason, in the present embodiment, each node (including the data store manager and the view manager) that generates a view data set assigns a transaction ID indicating the progress point of the view data set generation process of its own node to the transaction ID in the system. The notification is sent to the relevant view manager (notification processing will be described later with reference to FIGS. 15 and 16).

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

ステップ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 search target transaction ID is a (newer) transaction ID after the specific transaction ID, a 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 determines that the specific transaction ID is the same as or new to the search target transaction ID (in other words, there is a possibility that a data set required for correcting the search result may be obtained). The process waits (until it disappears) (step S502). On the other hand, if it is determined that the search target transaction ID is the same 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 there is a possibility that the data set required for correcting the search result may not be received yet. 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 search target transaction ID is a transaction ID older than the view transaction ID, it is difficult to search for the search target snapshot in the view held by the view manager. Therefore, the view manager notifies the transmission source of the search request that the search has failed (step S504). On the other hand, if it is determined that the search target transaction ID is the same as or newer than the view transaction ID, the process proceeds to step S505.

ステップS505では、指定された検索条件に従ってビューが検索される。ビュー検索部57は、指定された検索条件を用いて、ビューが保持されているデータ形式(例えば、表形式やグラフ形式等)に応じた方法で、ビューを検索する。前述の通り、本開示を実施する際に採用されるビューのデータ形式は限定されず、その検索方法も限定されない。ビューのデータ形式には、表形式やグラフ形式等の従来のデータベース技術に係るものが採用可能であり、その検索方法も従来と同様のものが採用可能であるため、ビューの検索方法についての詳細な説明は省略する。その後、処理はステップS506へ進む。   In step S505, a view is searched according to the specified search condition. The view search unit 57 searches for a view using a specified search condition in a method according to a data format (for example, a table format or a graph format) in which the view is stored. As described above, the data format of the view adopted when implementing the present disclosure is not limited, and the search method is not limited. As the data format of the view, those related to the conventional database technology such as the table format and the graph format can be adopted, and the same retrieval method as the conventional one can be adopted. Detailed description is omitted. Thereafter, 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 includes a specified search condition included in the view data sets 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 contents of the tuple included in the INSERT data set) (step S506). Then, the view search result correction unit 58 uses the tuple ID of the tuple found in steps S505 and S506, and deletes the DELETE data of the unreflected view data set after the view transaction ID and before the search target transaction ID. A set is searched (step S507).

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

なお、本実施形態では、データを索出した後に重複を解消する手法を採用しているが、このような手法に代えて、データ検索の時点で重複が発生しないように検索条件を調整する手法が採用されてもよい。   Although the present embodiment employs a method of resolving duplication after searching for data, 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 out in step S506 to the data searched out in step S505, and then adds the data to be deleted to the tuple ID searched out 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. Thereafter, the processing shown in this flowchart ends.

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

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

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

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

ステップS602およびステップS603では、所定のトランザクションIDによって指定された時点のデータセット及びより古いデータセットに含まれる、タプルの変更内容が連結され、削除対象タプルIDに示されたデータが除かれることで、所定のトランザクションID(Xi)によって指定された時点のデータセット及びより古いデータセットが統合された、集合データセットが生成される。具体的には、集合データセット生成部44は、データストアマネージャーに蓄積されているデータセットのうち、所定のトランザクションID(Xi)によって指定された時点のINSERTデータセット及びより古いINSERTデータセットを特定して連結することで、集合INSERTデータセットを生成する(ステップS602)。   In steps S602 and S603, the tuple changes included in the data set specified by the predetermined transaction ID and the older data set are linked, and the data indicated by the deletion target tuple ID is removed. , An aggregated data set is generated by integrating the data set at the time point specified by the predetermined transaction ID (Xi) and the older data set. Specifically, the aggregate data set generation unit 44 specifies an INSERT data set at the time point designated by a predetermined transaction ID (Xi) and an older INSERT data set among the data sets stored in the data store manager. Then, a set INSERT data set is generated (step S602).

そして、集合データセット生成部44は、連結によって生成された集合INSERTデータセットから、所定のトランザクションID(Xi)によって指定された時点のDELETEデータセット及びより古いDELETEデータセットに指定されているタプルを除外する(ステップS603)。その後、処理はステップS604へ進む。   Then, from the set INSERT data set generated by the concatenation, the set data set generation unit 44 extracts tuples specified as the DELETE data set at the time point specified by the predetermined transaction ID (Xi) and the older DELETE data set. Excluded (step S603). Thereafter, 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, management of the generated set INSERT data set is started as a part of the data store. The database management unit 43 sets two transaction IDs (X0 and Xi), a transaction ID (X0) indicating the start point and a transaction ID (Xi) indicating the end point, in the newly generated set INSERT dataset. (Step S604). In this way, the newly generated aggregate data set is managed as one of the stored data sets. Then, the database management unit 43 checks the data set used for generating the set data set, that is, the INSERT data set and the DELETE data set at the time point designated by the predetermined transaction ID (Xi), and the older INSERT data set. And the DELETE data set are deleted (however, except for the newly generated set INSERT data set) (step S605). Thereafter, the processing shown in this flowchart ends.

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

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

ステップ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-level view manager. The view data acquisition unit 51 of the upper view manager notifies the lower view manager of preset search conditions and view transaction IDs (transaction IDs indicating snapshots corresponding to views), and requests data (step). S701). Then, the transmitted data request is received by the lower-level view manager (step S702).

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

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

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

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

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

ステップS708からステップS713では、データストアマネージャーから、ビューの作成に必要なデータ(ビュー用データセット)が取得される。ビューマネージャーのビュー用データ取得部51は、予め設定された検索条件およびビュー用トランザクションIDを、データストアマネージャーに通知して、データを要求する(ステップS708)。   In steps S708 to S713, data (view data set) 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 condition and view transaction ID, and requests 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 a preset search condition based on the data set stored 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 flow of the process in which the data store manager that has received the data request obtains the data is as described with reference to FIG. 11 (in this case, the transaction ID for view is “search” in the description of FIG. 11). Target transaction ID ”). Then, the data store manager stores the search condition received in step S709 in association with information that can identify the view managed by the transmission source view manager (step S711).

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

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

なお、本実施形態では、データを取得した後に重複を解消する手法を採用しているが、このような手法に代えて、データ要求の時点で重複が発生しないように、ステップS701及びステップS708で送信されるデータ要求の内容を変更する手法が採用されてもよい。   In the present embodiment, a method for eliminating duplication after data is acquired is adopted. However, instead of such a method, steps S701 and S708 are performed so that duplication does not occur at the time of a data request. A technique for changing the content of the transmitted data request 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 a preset search condition and view transaction ID (step S715). Thereafter, the processing shown in this flowchart ends.

図15から図17は、本実施形態に係る、ビュー変更処理の流れを示すフローチャートである。図15および図16に示された処理は、データストアマネージャーにおいて新たなデータセットが管理開始されたこと(換言すれば、データセットにトランザクションIDが付与されたこと)を契機として実行される。データセットへのトランザクションIDの付与については、図10のステップS321で説明した通りである。但し、図15および図16に示された処理は、トランザクションIDの付与とは独立したタイミングで、例えば定期的にバッチ処理されてもよい。   15 to 17 are flowcharts illustrating the flow of the view change processing according to the present embodiment. The processing shown in FIGS. 15 and 16 is executed when the management of a new data set is started in the data store manager (in other words, the transaction ID is assigned to the data set). The assignment of the transaction ID to the data set is as described in step S321 in FIG. However, the processing shown in FIG. 15 and FIG. 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 steps S801 and S802, a data set is searched in the data store manager. The search condition used here is the search condition set for the view managed by the view manager, and is the search condition saved in step S711 in FIG. The view data generation unit 46 of the data store manager searches for an INSERT data set to which a new transaction ID is assigned using preset search conditions, and extracts changes that match the search conditions (step S801). . Further, the view data generation unit 46 searches the tuple indicated by the tuple ID included in the DELETE data set to which the transaction ID is newly added, based on the search condition, and obtains the tuple ID of the tuple having the content matching the search condition. Is specified (step S802). Thereafter, processing 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 tuple ID corresponding to the set search condition (step S805). And step S806). In the present embodiment, as a method of searching for a deleted tuple ID corresponding to the set search condition, a past INSERT data set is checked with a tuple ID in the DELETE data set of the data store manager, and a hit is performed. It is determined whether or not the set tuple matches the search condition of the view (see step S802). However, as a method of searching for a deleted tuple ID corresponding to the set search condition, other methods such as holding a list of tuple IDs sent to the view and collating with this are adopted. You may. Further, when the data store manager transmits the DELETE data set to the view manager for updating the view, all the DELETE data sets may be transmitted.

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

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

一方、ステップS801およびステップS802における検索の結果、検索条件に合致するタプルが索出された場合(ステップS803のYES)、処理はステップS805へ進む。   On the other hand, as a result of the search in steps S801 and S802, if a tuple that matches the search condition is found (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へ進む。   In steps S805 to S807, a data set for a view is generated in the data store manager. The view data generation unit 46 generates a view data set including the change content extracted in step S801 in the INSERT data set and the tuple ID specified in step S802 in the DELETE data set (step S805). Then, the view data transmitting unit 47 transmits the generated view data set to the view manager in association with the transaction ID (step S806). Here, the view manager that is the transmission destination is a view manager that holds a view corresponding to the search condition used for the search, and is information associated with the view when the search condition was saved in step S711 and that can identify the view. Is specified 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 point of the view data set generation processing of the transmission source node, and step S501. Will be referred to in order to determine a specific transaction ID. Thereafter, processing proceeds to step S808.

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

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

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

一方、ステップS808およびステップS809における検索の結果、検索条件に合致するタプルが索出された場合(ステップS810のYES)、処理はステップS812へ進む。   On the other hand, as a result of the search in steps S808 and S809, if a tuple that matches the search condition is found (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 steps S812 and S813, a second view data set is generated in the view manager. The view data generation unit 53 generates a second view data set including the change content extracted in step S808 in the INSERT data set and the tuple ID specified in step S809 in the DELETE data set (step S812). ). Then, the view data transmitting unit 54 transmits the generated second view data set to the upper-level view manager in association with the transaction ID (step S813). Here, the upper-level view manager that is the transmission destination is the upper-level view manager that holds the view corresponding to the search condition used for the search, and can identify the view associated when the search condition was saved in step S704. It is specified by referring to important 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 data set is used for changing the view, similarly to the other view data sets transmitted from the data store manager (see FIG. 17). In addition, the view manager that has received the transmitted second view data set uses the transaction ID received together with the view data set as a transaction ID indicating the progress point 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. Thereafter, the processing shown in this flowchart ends.

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

図17に示された処理は、所定のタイミングで(例えば、定期的に)実行される。   The processing illustrated 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 updating unit 55 updates the view transaction ID. Various methods can be adopted as a specific method of determining a transaction ID for a new view. For example, transaction IDs of snapshots referred to by a plurality of session managers are aggregated, and the snapshot ID is determined according to the oldest. A method such as updating may be adopted. At this time, an extremely old snapshot may rarely be referred to, but such a snapshot may be excluded from the totaling by setting a threshold value for the transaction ID or the like. When a 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 changing unit 56 changes the view managed by the view management unit 52 using the view data set at the time point designated by the updated new view transaction ID and the older view data set. At this time, the view changing unit 56 reflects all view data sets up to the updated view transaction ID. Thereafter, the processing shown in this flowchart ends.

本実施形態に係るデータベースシステムによれば、リレーショナルデータベースのようなテーブル等に依拠してビューが作成および変更されるのではなく、変更履歴(例えば、データセット)を参照してビューが作成および変更されるため、ビューの作成および変更に係る処理負荷を低減させることができる。また、ビューの作成および変更に係る処理負荷を低減させるために、メモリや記憶装置上にビューの実体を持たない論理上のビューを用いる技術も従来提案されているが、このようなビューでは、ビューの検索の度にビューのリンク先(実体)へのアクセスが発生するため、検索時の処理負荷が低減されない。これに対して、本実施形態に係るデータベースシステムによれば、ビューはメモリや記憶装置上に実体として存在するため、検索時の処理負荷を低減させることが出来る。   According to the database system according to the present embodiment, a view is not created and changed based on a table or the like like a relational database, but a view is created and changed with reference to a change history (for example, a data set). Therefore, it is possible to reduce the processing load for creating and changing views. Further, in order to reduce the processing load related to the creation and modification of views, a technique of using a logical view having no view substance on a memory or a storage device has been conventionally proposed. Each time a view is searched, an access to the link destination (entity) of the view occurs, so that the processing load at the time of the search is not reduced. On the other hand, according to the database system according to the present embodiment, since the view exists as an entity in the memory or the storage device, the processing load at the time of the search 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 the database system using the accumulated change history (for example, a data set) as a basic part of the database is reduced by the view manager as described above. , It can be reduced. Therefore, the database management based on the accumulated data set described with reference to FIGS. 5 to 11 and 13 and the creation of the view based on the data set described with reference to FIGS. 12 and 14 to 17 are performed. By combining and changing, it is possible to achieve both a reduction in processing load associated with a change (update and deletion) in the contents of the database and a reduction in processing load at the time of retrieval. However, the database management relying on the accumulated data set and the creation and modification of a view based on the data set do not necessarily need to be used in combination, and may be individually adopted in another database system. .

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

本実施形態に係るデータベースシステムにおいて、更に、データベースの内容変更の際にINSERTデータセットおよびDELETEデータセットが送信される宛先データストアマネージャーを決定するためのルール(ハッシュ関数等)を予め決めておいてもよい。このようにすることで、データベースシステムを、データの配置が管理された分散データベースシステムとすることが出来る。   In the database system according to the present embodiment, rules (such as a hash function) for determining a destination data store manager to which the INSERT data set and the DELETE data set are transmitted when the content of the database is changed are determined in advance. Is also 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-described embodiment, an example in which the view update is performed at a predetermined timing (for example, periodically) has been described. However, the view update timing may be intentionally delayed. For example, when some or all of the views managed by the view management unit 52 are read into the memory of the view manager, the part of the view that is read into the memory may be changed. At this time, the view change unit 56 reflects all related view data sets up to the updated view transaction ID in the block read into the memory.

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

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

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

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, data set generation means for generating a data set including target identification information capable of uniquely grasping a data unit to be changed, and a change content of the data unit,
Transmitting the data set to at least one of the data store management nodes, comprising:
Each of the data store management nodes,
Database management means for storing the received data set by setting a transaction identifier capable of grasping the position of the transaction in time series, and
A view data generation unit that generates a view data set including data that matches a preset search condition based on the data set stored by the database management unit;
View data transmission means for transmitting the view data set to the view management node,
The view management node includes:
A view data acquisition unit that acquires a view data set including data that matches the preset search condition from the data store management node;
A view management unit that holds a set of data included in the view data set acquired by the view data acquisition unit as a view corresponding to the preset search condition;
View search means for searching for the view according to a specified search condition,
The view management means sets, in the data included in the view data set, a set of data before a time point designated by a view transaction identifier which is a transaction identifier indicating a snapshot corresponding to the view, in advance. Held as a view corresponding to the retrieved search condition and the view transaction identifier,
Database system.
前記ビュー管理ノードは、
前記ビュー用データ取得手段によって取得された前記ビュー用データセットに基づいて、他のビューに予め設定された検索条件に合致するデータを含む第二のビュー用データセットを生成するビュー用データ生成手段と、
前記第二のビュー用データセットを、前記他のビューを管理するビュー管理ノードに送信するビュー用データ送信手段と、を更に備える、
請求項1に記載のデータベースシステム。
The view management node includes:
View data generating means for generating a second view data set including data that matches search conditions preset for another view based on the view data set acquired by the view data acquiring means When,
A view data transmitting unit that transmits the second view data set to a view management node that manages the another view,
The database system according to claim 1.
該データベースシステムは、階層関係を有する複数のビューを備え、
前記ビュー用データ生成手段は、前記ビュー用データ取得手段によって取得された前記ビュー用データセットに基づいて、該ビュー用データ送信手段を備えるビュー管理ノードが管理するビューより上位のビューを管理する上位ビュー管理ノードに予め設定された検索条件に合致するデータを含む第二のビュー用データセットを生成し、
前記ビュー用データ送信手段は、前記第二のビュー用データセットを、前記上位ビュー管理ノードに送信する、
請求項2に記載のデータベースシステム。
The database system includes a plurality of views having a hierarchical relationship,
The view data generating unit, based on the view data set acquired by the view data acquisition unit, manages a view higher than a view managed by a view management node including the view data transmission unit. Generate a second view data set including data that matches search conditions set in advance in the view management node,
The view data transmitting unit transmits the second view data set to the upper-level view management node,
The database system according to claim 2.
前記ビュー用データ生成手段は、前記ビュー用トランザクション識別子より新しいトランザクション識別子が設定されたデータセットに基づいて、前記予め設定された検索条件に合致するデータを含むビュー用データセットを更に生成し、
前記ビュー管理ノードは、
前記ビュー用トランザクション識別子を更新するビュー用トランザクション識別子更新手段と、
前記ビュー管理手段によって管理されているビューを、前記更新されたビュー用トランザクション識別子によって指定された時点以前のビュー用データセットを用いて変更するビュー変更手段と、を更に備え、
前記ビュー管理手段は、前記ビュー変更手段によって変更されたビューを、前記更新されたビュー用トランザクション識別子に対応するビューとして保持する、
請求項1から3の何れか一項に記載のデータベースシステム。
The view data generation unit further generates a view data set including data that matches the preset search condition, based on the data set in which a transaction identifier newer than the view transaction identifier is set,
The view management node includes:
View transaction identifier updating means for updating the view transaction identifier,
View change means for changing the view managed by the view management means using a view data set before the time point designated by the updated view transaction identifier,
The view management means holds the view changed by the view change means as a view corresponding to the updated view transaction identifier,
The database system according to claim 1.
前記ビュー変更手段は、前記ビュー管理手段によって管理されている前記ビューの一部または全部が、前記ビュー管理ノードのメモリに読み込まれている場合に、該ビューのうちメモリに読み込まれている部分を変更する、
請求項4に記載のデータベースシステム。
The view change unit, when a part or all of the view managed by the view management unit is read into a memory of the view management node, a part of the view that is read into the memory. change,
The database system according to claim 4.
前記ビュー変更手段は、前記ビュー管理手段によって管理されている前記ビューが、前記更新されたビュー用トランザクション識別子以降のスナップショットが指定された処理の対象となったことを契機として、該ビューを変更する、
請求項4に記載のデータベースシステム。
The view change unit changes the view managed by the view management unit when a snapshot after the updated view transaction identifier becomes a target of a designated process. Do
The database system according to claim 4.
前記ビュー管理ノードは、前記ビュー用データ取得手段によって取得されたが前記ビューに未反映の前記ビュー用データセットのうち、検索対象のスナップショットを示す検索対象トランザクション識別子までの前記ビュー用データセットを用いて、前記ビュー検索手段による検索結果を補正するビュー検索結果補正手段を更に備える、
請求項1から6の何れか一項に記載のデータベースシステム。
The view management node includes, among the view data sets acquired by the view data acquisition unit but not reflected in the view, the view data sets up to a search target transaction identifier indicating a search target snapshot. Further comprising a view search result correction unit for correcting a search result by the view search unit.
The database system according to any one of claims 1 to 6.
前記ビュー検索結果補正手段は、前記ビュー検索手段による検索結果に対して、
前記未反映の前記ビュー用データセットのうち前記検索対象トランザクション識別子までの前記ビュー用データセットに含まれる、前記指定された検索条件に合致する変更内容を、前記ビュー検索手段による検索結果に加える追加処理と、
前記未反映の前記ビュー用データセットのうち前記検索対象トランザクション識別子までの前記ビュー用データセットに含まれる前記対象識別情報のうち、削除対象のデータ単位を示す削除対象識別情報に示されたデータを、前記追加処理の結果から除く除外処理と、
を実行することで、前記ビュー検索手段による検索結果を補正する、
請求項7に記載のデータベースシステム。
The view search result correction means, for a search result by the view search means,
Adding, to the search results by the view search means, changes included in the view data sets up to the search target transaction identifier among the unreflected view data sets and matching the specified search conditions. Processing,
Among the target identification information included in the view data set up to the search target transaction identifier in the unreflected view data set, the data indicated in the deletion target identification information indicating the data unit to be deleted, Exclusion processing to be excluded from the result of the additional processing;
Correcting the search result by the view search means,
The database system according to claim 7.
前記ビュー検索結果補正手段は、前記ビュー用データ取得手段によって以後取得されないビュー用データセットの範囲を示す特定トランザクション識別子が、前記検索対象トランザクション識別子よりも古い場合、前記特定トランザクション識別子が、前記検索対象トランザクション識別子と同じ又は新しい識別子となるのを待ってから、前記補正を行う、
請求項7または8に記載のデータベースシステム。
The view search result correction unit is configured to, when a specific transaction identifier indicating a range of a view data set that is not subsequently obtained by the view data obtaining unit is older than the search target transaction identifier, the specific transaction identifier is set to the search target Waiting for the transaction identifier to be the same or a new identifier, and then performing the correction,
The database system according to claim 7.
前記ビュー管理ノードは、前記ビュー用データセットを生成する夫々のノードから、ノード毎のビュー用データセットの生成処理の進行時点を示すトランザクション識別子を収集し、最も処理の進行が遅れているノードにおける進行時点を示すトランザクション識別子を前記特定トランザクション識別子として決定する、特定トランザクション識別子決定手段を更に備える、
請求項9に記載のデータベースシステム。
The view management node collects, from each of the nodes that generate the view data sets, a transaction identifier indicating the progress point of the view data set generation processing for each node. Determining a transaction identifier indicating a progress point as the specific transaction identifier, further comprising a specific transaction identifier determining means,
The database system according to claim 9.
前記対象識別情報は、前記変更の対象となるデータ単位を複数のデータストア管理ノードによって管理される複数のデータストア間で一意に把握可能な情報である、
請求項1から10の何れか一項に記載のデータベースシステム。
The target identification information is information capable of uniquely grasping 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 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,
A data set generation step of generating a data set including target identification information capable of uniquely grasping a data unit to be changed when the content of the database is changed, and a change content of the data unit;
Transmitting the data set to at least one of the data store management nodes, a data set transmission step,
Each of the data store management nodes,
A database management step of storing the received data set by setting a transaction identifier capable of grasping the position of the transaction in time series, and
A view data generation step of generating a view data set including data that matches a preset search condition based on the data set accumulated in the database management step;
Transmitting the view data set to the view management node, and performing a view data transmission step;
The view management node includes:
A view data set including data that matches the preset search condition, a view data acquisition step of acquiring from the data store management node,
A view management step of retaining 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;
Performing a view search step of searching for the view according to specified search conditions;
In the view management step, among the data included in the view data set, a set of data before a time point designated by a view transaction identifier which is a transaction identifier indicating a snapshot corresponding to the view is set in advance. Held as a view corresponding to the retrieved search condition and the view transaction identifier,
Method.
1または複数のセッション管理ノードと、1または複数のデータストア管理ノードと、少なくとも1のビュー管理ノードとを備えるデータベースシステムにおいて、
前記セッション管理ノードの夫々を、
データベースの内容が変更される場合に、変更の対象となるデータ単位を一意に把握可能な対象識別情報と、該データ単位の変更内容と、を含むデータセットを生成するデータセット生成手段と、
前記データセットを、少なくとも何れかの前記データストア管理ノードへ送信する、データセット送信手段と、として機能させ、
前記データストア管理ノードの夫々を、
受信された前記データセットを、トランザクションの時系列における位置を把握可能なトランザクション識別子を設定して蓄積するデータベース管理手段と、
前記データベース管理手段によって蓄積されている前記データセットに基づいて、予め設定された検索条件に合致するデータを含むビュー用データセットを生成するビュー用データ生成手段と、
前記ビュー用データセットを、前記ビュー管理ノードに送信するビュー用データ送信手段と、として機能させ、
前記ビュー管理ノードを、
前記予め設定された検索条件に合致するデータを含むビュー用データセットを、前記データストア管理ノードから取得するビュー用データ取得手段と、
前記ビュー用データ取得手段によって取得されたビュー用データセットに含まれるデータの集合を、前記予め設定された検索条件に対応するビューとして保持するビュー管理手段と、
指定された検索条件に従って前記ビューを検索するビュー検索手段と、として機能させ、
前記ビュー管理手段は、前記ビュー用データセットに含まれるデータのうち、前記ビューに対応するスナップショットを示すトランザクション識別子であるビュー用トランザクション識別子によって指定された時点以前のデータの集合を、前記予め設定された検索条件および該ビュー用トランザクション識別子に対応するビューとして保持する、
プログラム。
In 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, data set generation means for generating a data set including target identification information capable of uniquely grasping a data unit to be changed, and a change content of the data unit,
Transmitting the data set to at least one of the data store management nodes, and functioning as a data set transmission unit;
Each of the data store management nodes,
Database management means for storing the received data set by setting a transaction identifier capable of grasping the position of the transaction in time series, and
A view data generation unit that generates a view data set including data that matches a preset search condition based on the data set stored by the database management unit;
The view data set, and view data transmission means for transmitting to the view management node, and function as,
The view management node,
A view data acquisition unit that acquires a view data set including data that matches the preset search condition from the data store management node;
A view management unit that holds a set of data included in the view data set acquired by the view data acquisition unit as a view corresponding to the preset search condition;
Functioning as view search means for searching the view according to specified search conditions;
The view management means sets, in the data included in the view data set, a set of data before a time point designated by a view transaction identifier which is a transaction identifier indicating a snapshot corresponding to the view, in advance. Held as a view corresponding to the retrieved search condition and the view transaction identifier,
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 true JPWO2018203377A1 (en) 2020-03-12
JP6889254B2 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)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004512585A (en) * 2000-09-29 2004-04-22 オラクル・コーポレイション Systems and methods for providing fine-grained temporary database access
JP2007524173A (en) * 2004-02-25 2007-08-23 マイクロソフト コーポレーション Database data recovery system and method
WO2017077616A1 (en) * 2015-11-05 2017-05-11 株式会社Murakumo Database system, transaction management node, method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004512585A (en) * 2000-09-29 2004-04-22 オラクル・コーポレイション Systems and methods for providing fine-grained temporary database access
JP2007524173A (en) * 2004-02-25 2007-08-23 マイクロソフト コーポレーション Database data recovery system and method
WO2017077616A1 (en) * 2015-11-05 2017-05-11 株式会社Murakumo Database system, transaction management node, method, and program

Also Published As

Publication number Publication date
JP6889254B2 (en) 2021-06-18
WO2018203377A1 (en) 2018-11-08

Similar Documents

Publication Publication Date Title
US10983868B2 (en) Epoch based snapshot summary
US11281534B2 (en) Distributed data object management system
CN110249321B (en) System and method for capturing change data from a distributed data source for use by heterogeneous targets
US10353895B2 (en) Atomic visibility switch for transactional cache invalidation
US10877956B2 (en) Transactional cache invalidation for inter-node caching
JP7038710B2 (en) Data management method and system
US9305072B2 (en) Information storage system and data replication method thereof
US9020916B2 (en) Database server apparatus, method for updating database, and recording medium for database update program
US20150347250A1 (en) Database management system for providing partial re-synchronization and partial re-synchronization method of using the same
US20160041885A1 (en) Data Replicating System, Data Replicating Method, Node Device, Management Device and Computer Readable Medium
US11188423B2 (en) Data processing apparatus and method
US20180225051A1 (en) Managing data replication in a data grid
EP3818454B1 (en) Asynchronous cache coherency for mvcc based database systems
US11003532B2 (en) Distributed data object management system operations
JP6586174B2 (en) Database system, transaction management node, method and program
US10162841B1 (en) Data management platform
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
Liao et al. FileScale: Fast and Elastic Metadata Management for Distributed File Systems
WO2018013541A1 (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