JP2005309684A - Database system and program - Google Patents

Database system and program Download PDF

Info

Publication number
JP2005309684A
JP2005309684A JP2004124487A JP2004124487A JP2005309684A JP 2005309684 A JP2005309684 A JP 2005309684A JP 2004124487 A JP2004124487 A JP 2004124487A JP 2004124487 A JP2004124487 A JP 2004124487A JP 2005309684 A JP2005309684 A JP 2005309684A
Authority
JP
Japan
Prior art keywords
execution
instruction
node
data
transfer
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
JP2004124487A
Other languages
Japanese (ja)
Other versions
JP4331045B2 (en
Inventor
Kimitaka Uyama
公隆 宇山
Kinya Fujitsuka
勤也 藤塚
Keita Tanikoshi
桂太 谷越
Kimihisa Kondo
公久 近藤
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.)
NTT Data Group Corp
Original Assignee
NTT Data 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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2004124487A priority Critical patent/JP4331045B2/en
Publication of JP2005309684A publication Critical patent/JP2005309684A/en
Application granted granted Critical
Publication of JP4331045B2 publication Critical patent/JP4331045B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To improve the efficiency of parallel distributed processing in a database system in a cluster environment. <P>SOLUTION: A control node 100 generates a common execution instruction instructing execution of arithmetic processing in execution nodes 200, and generates a transfer instruction instructing transfer of data used for the arithmetic processing. The control node 100 generates instruction information by mutually connecting the generated execution instruction and transfer instruction, and simultaneously delivers it to a plurality of execution nodes 200 through a communication network 10. The execution nodes 200 which received the instruction information perform transmitting and receiving of data with other execution nodes 200 through the communication network 10 based on the received transfer instruction to acquire data necessary for processing. The execution nodes 200 execute the arithmetic processing by use of the data accumulated therein and the data received from the other execution nodes 200 based on the received execution instruction. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、データベースシステム、および、プログラムに関し、特に、並列分散処理に好適なデータベースシステム、および、プログラムに関する。   The present invention relates to a database system and a program, and more particularly to a database system and a program suitable for parallel distributed processing.

共有ディスクを用いずに、データ(例えば、テーブルデータ)が複数のコンピュータ(ノード)に分散配置される方式(Shared Nothing Type)の並列データベースシステムにおいては、異なるノードに存在するテーブル間のデータを必要とする処理(主に結合演算処理)を実行する場合の方法として、例えば、それぞれのテーブルにハッシュをかけることで各ノードに分散させる方法が知られている(例えば、非特許文献1)。   In a parallel database system (Shared Nothing Type) in which data (for example, table data) is distributed to multiple computers (nodes) without using a shared disk, data between tables existing on different nodes is required. As a method for executing the processing (mainly join operation processing), for example, a method of distributing each node by hashing each table is known (for example, Non-Patent Document 1).

例えば、全ノードに分散配置されているテーブル(分散テーブル)と、特定のノードにのみ存在するテーブル(特定テーブル)とを結合演算する場合、上記の方法では、結合演算の結合条件に基づいて結合キーが生成され、対象となるテーブルをそれぞれの結合キーでハッシュすることで、テーブルが再配置される。すなわち、分散テーブルと特定テーブルが各ノードに再配置される。分散テーブルと特定テーブルが各ノードに再配置されるので、これらを結合する結合演算を各ノードにおいて実行することができる。   For example, when performing a join operation on a table (distributed table) distributed on all nodes and a table (specific table) that exists only on a specific node, the above method joins based on the join conditions of the join operation. A key is generated, and the table is rearranged by hashing the target table with each join key. That is, the distributed table and the specific table are rearranged at each node. Since the distributed table and the specific table are rearranged at each node, a join operation for joining them can be executed at each node.

この方法では、演算対象となるテーブルのそれぞれをハッシュして再配置するので、対象となるテーブルの数が多い場合、処理量が膨大となり、処理効率が低下してしまう。また、ノード間の通信負荷も大きい。
合田和生,他2名,「並列データベースカーネルDBKernelを用いた高速情報検索処理:TRECデータによる実験」,電子情報通信学会,第12回データ工学ワークショップ DEWS2001,平成13年3月9日
In this method, since each table to be calculated is hashed and rearranged, if the number of tables to be processed is large, the amount of processing becomes enormous and the processing efficiency decreases. Moreover, the communication load between nodes is also large.
Kazuo Goda and two others, “High-speed information retrieval using parallel database kernel DBKernel: Experiments with TREC data”, IEICE, 12th Data Engineering Workshop DEWS2001, March 9, 2001

本発明は上記実状に鑑みてなされたもので、処理負荷が低く、高速に処理を実行することができるデータベースシステムを提供することを目的とする。   The present invention has been made in view of the above circumstances, and an object thereof is to provide a database system that has a low processing load and can execute processing at high speed.

上記目的を達成するため、本発明の第1の観点にかかるデータベースシステムは、
複数のノードで並列分散処理をおこなうデータベースシステムにおいて、
前記複数のノードは、通信ネットワークを介して相互接続された、前記並列分散処理を統括する統括ノードと、データの蓄積および演算処理をおこなう複数の実行ノードと、から構成され、
前記統括ノードは、
各実行ノードでの演算処理の実行を指示する共通の実行命令を生成する実行命令生成手段と、
前記実行命令で指示される演算処理で用いるデータの転送を指示する転送命令を生成する転送命令生成手段と、
前記実行命令生成手段が生成した実行命令と、前記転送命令生成手段が生成した転送命令とを結合した命令情報を、前記通信ネットワークを介して前記複数の実行ノードに同報配信する命令配信手段と、
を備え、
前記実行ノードは、
前記統括ノードの命令配信手段から配信される命令情報を前記通信ネットワークを介して受信する命令受信手段と、
前記命令受信手段が受信した転送命令に基づき、前記通信ネットワークを介して他の実行ノードとの間でデータの送受信を行うデータ転送手段と、
前記命令受信手段が受信した実行命令に基づき、蓄積されているデータおよび前記データ転送手段が受信したデータを用いて演算処理を実行する演算手段と、
を備えることを特徴とする。
In order to achieve the above object, a database system according to the first aspect of the present invention provides:
In a database system that performs parallel distributed processing on multiple nodes,
The plurality of nodes are composed of a central node that controls the parallel distributed processing and a plurality of execution nodes that perform data accumulation and arithmetic processing, which are interconnected via a communication network.
The supervising node is
Execution instruction generation means for generating a common execution instruction for instructing execution of arithmetic processing in each execution node;
Transfer instruction generation means for generating a transfer instruction for instructing transfer of data used in the arithmetic processing instructed by the execution instruction;
Instruction distribution means for broadcasting the instruction information obtained by combining the execution instruction generated by the execution instruction generation means and the transfer instruction generated by the transfer instruction generation means to the plurality of execution nodes via the communication network; ,
With
The execution node is
Command receiving means for receiving command information distributed from the command distributing means of the supervising node via the communication network;
Data transfer means for transmitting and receiving data to and from other execution nodes via the communication network based on the transfer command received by the command receiving means;
Based on the execution command received by the command receiving means, arithmetic means for performing arithmetic processing using the stored data and the data received by the data transfer means;
It is characterized by providing.

上記データベースシステムにおいて、
前記転送命令生成手段は、データを送信すべき実行ノードと、データを受信すべき実行ノードと、を指定した転送命令を生成することが望ましい。
In the above database system,
It is desirable that the transfer command generation unit generates a transfer command specifying an execution node that should transmit data and an execution node that should receive data.

上記データベースシステムにおいて、
前記統括ノードは、
いずれの実行ノードにいずれのデータが格納されているかを示す配置情報を取得して記憶する配置情報取得手段をさらに備えていることが望ましく、この場合、
前記転送命令生成手段は、前記配置情報取得手段が記憶する配置情報に基づいて、前記転送命令を生成することができる。
In the above database system,
The supervising node is
It is desirable to further include arrangement information acquisition means for acquiring and storing arrangement information indicating which data is stored in which execution node.
The transfer command generation unit can generate the transfer command based on the arrangement information stored in the arrangement information acquisition unit.

上記データベースシステムにおいて、
前記命令配信手段は、前記実行命令生成手段が生成した実行命令と、前記転送命令生成手段が生成した転送命令とを結合したツリー構造の命令情報を前記複数の実行ノードに配信し、
前記演算手段は、前記命令受信手段が受信したツリー構造の命令情報を再帰的に実行することで、該命令情報に含まれる実行命令が指示する演算処理を実行することが望ましい。
In the above database system,
The instruction distribution means distributes the instruction information of a tree structure in which the execution instruction generated by the execution instruction generation means and the transfer instruction generated by the transfer instruction generation means are combined to the plurality of execution nodes,
The arithmetic means preferably executes arithmetic processing indicated by an execution instruction included in the instruction information by recursively executing the instruction information of the tree structure received by the instruction receiving means.

上記目的を達成するため、本発明の第2の観点にかかるプログラムは、
並列分散処理をおこなうデータベースシステムを統括するコンピュータに、
前記データベースシステムを構成する複数のコンピュータのいずれに、いずれのデータが格納されているかを示す配置情報を取得して記憶するステップと、
前記複数のコンピュータそれぞれで実行させる演算処理の内容を示す情報と、当該演算処理で用いるデータを指定する情報と、を含んだ実行命令を生成するステップと、
前記配置情報に基づいて、他のコンピュータにデータを送信すべきコンピュータを示す情報と、他のコンピュータからデータを受信すべきコンピュータを示す情報と、を含んだ転送命令を生成するステップと、
前記生成された実行命令と転送命令とを結合させた命令情報を、通信ネットワークを介して前記複数のコンピュータにブロードキャストするステップと、
を実行させることを特徴とする。
In order to achieve the above object, a program according to the second aspect of the present invention is:
To the computer that supervises the database system that performs parallel and distributed processing,
Obtaining and storing arrangement information indicating which data is stored in which of the plurality of computers constituting the database system;
Generating an execution instruction including information indicating contents of arithmetic processing to be executed by each of the plurality of computers, and information specifying data used in the arithmetic processing;
Generating, based on the arrangement information, a transfer instruction including information indicating a computer that should transmit data to another computer and information indicating a computer that should receive data from the other computer;
Broadcasting instruction information obtained by combining the generated execution instruction and transfer instruction to the plurality of computers via a communication network;
Is executed.

上記目的を達成するため、本発明の第3の観点にかかるプログラムは、
並列分散処理をおこなうデータベースシステムを構成するコンピュータに、
演算処理に用いられるデータを蓄積するステップと、
前記データベースシステムを制御するコンピュータから配信される実行命令と転送命令とを通信ネットワークを介して受信するステップと、
受信した転送命令に基づき、前記通信ネットワークを介して他のコンピュータとの間でデータの送受信をおこなうステップと、
受信した実行命令に基づいて、蓄積しているデータおよび他のコンピュータから受信したデータを用いて演算処理を実行するステップと、
を実行させることを特徴とする。
In order to achieve the above object, a program according to the third aspect of the present invention is:
In the computer that constitutes the database system that performs parallel and distributed processing,
Storing data used for arithmetic processing;
Receiving an execution instruction and a transfer instruction distributed from a computer controlling the database system via a communication network;
Transmitting and receiving data to and from another computer via the communication network based on the received transfer command;
A step of performing arithmetic processing using the stored data and data received from another computer based on the received execution instruction;
Is executed.

本発明によれば、並列分散処理をおこなうデータベースシステムにおいて、実行する処理を指示する命令と、処理に必要なデータの転送を指示する命令とを含んだ一の命令情報の配信により、処理の実行を指示することができるので、各ノードおよび通信ネットワークの負荷を軽減することができ、データベースシステム全体の処理効率を向上させることができる。   According to the present invention, in a database system that performs parallel and distributed processing, processing is executed by distributing one command information including a command for instructing processing to be executed and a command for instructing transfer of data necessary for processing. Therefore, the load on each node and communication network can be reduced, and the processing efficiency of the entire database system can be improved.

(第1の実施形態)
本発明にかかる実施の形態を、以下図面を参照して説明する。
(First embodiment)
Embodiments according to the present invention will be described below with reference to the drawings.

図1は、本実施の形態にかかるデータベースシステム1の構成を模式的に示す図である。本実施の形態にかかるデータベースシステム1は、複数の情報処理装置(例えば、ワークステーションやパーソナルコンピュータなど)、すなわち「ノード」から構成される。データベースシステム1を構成する複数のノードは、図1に示すように、統括ノード100と、複数の実行ノード200から構成されており、各ノードは、所定の通信ネットワーク10を介して相互接続されている。   FIG. 1 is a diagram schematically illustrating a configuration of a database system 1 according to the present embodiment. The database system 1 according to the present embodiment includes a plurality of information processing apparatuses (for example, workstations and personal computers), that is, “nodes”. As shown in FIG. 1, a plurality of nodes constituting the database system 1 is composed of a central node 100 and a plurality of execution nodes 200, and each node is interconnected via a predetermined communication network 10. Yes.

ここで、本実施の形態にかかるデータベースシステム1は、複数のノード(実行ノード200)にデータを分散配置し、各実行ノード200で所定の演算を実行する、いわゆるクラスタ環境の並列分散データベースである。そして、統括ノード100は、このような並列分散処理を統括するものであり、複数の実行ノード200から構成されているデータベースを管理するDBMS(DataBase Management System:データベース管理システム)として機能する。   Here, the database system 1 according to the present embodiment is a parallel distributed database in a so-called cluster environment in which data is distributed and arranged in a plurality of nodes (execution nodes 200), and predetermined execution is executed in each execution node 200. . The supervising node 100 supervises such parallel and distributed processing, and functions as a DBMS (DataBase Management System) that manages a database composed of a plurality of execution nodes 200.

通信ネットワーク10は、例えば、IEEE802.3などの通信規格に基づいた通信媒体であり、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)などの通信プロトコルに基づく各ノード間のデータ送受信を媒介する。   The communication network 10 is a communication medium based on a communication standard such as IEEE802.3, for example, and mediates data transmission / reception between nodes based on a communication protocol such as TCP / IP (Transmission Control Protocol / Internet Protocol). .

統括ノード100、および、実行ノード200の構成を図面を参照して以下説明する。   The configurations of the central node 100 and the execution node 200 will be described below with reference to the drawings.

統括ノード100はデータベースシステム1における並列分散処理を統括するノード(コーディネータノード)であり、図2に示すような構成を有する。図示するように、統括ノード100は、制御部110と、通信制御部120と、入力制御部130と、出力制御部140と、プログラム格納部150と、記憶部160と、から構成される。   The supervising node 100 is a node (coordinator node) that supervises parallel and distributed processing in the database system 1, and has a configuration as shown in FIG. As shown in the figure, the central node 100 includes a control unit 110, a communication control unit 120, an input control unit 130, an output control unit 140, a program storage unit 150, and a storage unit 160.

制御部110は、例えば、CPU(Central Processing Unit:中央演算処理装置)やワークエリアとなる所定の記憶装置(RAM(Random Access Memory)など)から構成され、統括ノード100の各部を制御するとともに、プログラム格納部150に格納されている所定の動作プログラムに基づいて後述する各処理を実行する。   The control unit 110 includes, for example, a CPU (Central Processing Unit) and a predetermined storage device (RAM (Random Access Memory)) serving as a work area, and controls each unit of the overall node 100. Each process described later is executed based on a predetermined operation program stored in the program storage unit 150.

通信制御部120は、例えば、NIC(Network Interface Card)などの所定の通信装置から構成され、統括ノード100と通信ネットワーク10とを接続し、実行ノード200との通信をおこなう。   The communication control unit 120 is composed of a predetermined communication device such as a NIC (Network Interface Card), for example, and connects the central node 100 and the communication network 10 to communicate with the execution node 200.

入力制御部130は、例えば、キーボードやポインティング・デバイスなどの所定の入力装置13を接続し、入力装置13から入力された指示などを制御部110に伝達する。   For example, the input control unit 130 connects a predetermined input device 13 such as a keyboard or a pointing device, and transmits an instruction or the like input from the input device 13 to the control unit 110.

出力制御部140は、例えば、ディスプレイ装置やプリンタなどの所定の出力装置14を接続し、制御部110の処理結果などを必要に応じて出力装置14に出力する。   For example, the output control unit 140 connects a predetermined output device 14 such as a display device or a printer, and outputs the processing result of the control unit 110 to the output device 14 as necessary.

プログラム格納部150は、例えば、ハードディスク装置やROM(Read Only Memory)などといった所定の記憶装置から構成され、制御部110が実行する種々の動作プログラムが格納されている。プログラム格納部150に格納される動作プログラムは、統括ノード100の基本動作を司る任意のOS(Operating System:基本ソフトウェア)の他に、OSと協働して後述する各処理を実現するための、以下に示すような動作プログラムが格納されているものとする。後述する統括ノード100による処理は、制御部110がこれらの動作プログラムを実行することで実現される。
(P1−1)「通信制御プログラム」:通信制御部120を制御し、通信ネットワーク10を介して実行ノード200と通信をおこなうためのプログラム
(P1−2)「DBMSプログラム」:各実行ノード200における出入力などを指示し、データベースシステム1における並列分散処理を統括・管理するためのプログラム
(P1−3):「命令生成プログラム」:並列分散処理を実施する際の各実行ノード200における動作を指示する命令を生成するプログラム
The program storage unit 150 is configured from a predetermined storage device such as a hard disk device or a ROM (Read Only Memory), and stores various operation programs executed by the control unit 110. The operation program stored in the program storage unit 150 is used to implement each process described later in cooperation with the OS, in addition to an arbitrary OS (Operating System: basic software) that controls the basic operation of the overall node 100. It is assumed that the following operation program is stored. Processing performed by the central node 100 described later is realized by the control unit 110 executing these operation programs.
(P1-1) “Communication control program”: a program for controlling the communication control unit 120 to communicate with the execution node 200 via the communication network 10 (P1-2) “DBMS program”: in each execution node 200 A program for instructing input / output, etc., and for managing and managing parallel distributed processing in the database system 1 (P1-3): “instruction generation program”: Instructing operations at each execution node 200 when executing parallel distributed processing That generates instructions to execute

統括ノード100の制御部110が上記プログラムを実行することで、統括ノード100は下記の機能を実現する。
(F1−1)「実行命令生成機能」:入力制御部130などから入力されるクエリに基づいて、各実行ノード200で実行する並列処理の内容、および、当該処理で用いるデータを指定する共通の実行命令を生成する機能
(F1−2)「転送命令生成機能」:実行命令で指定する処理に用いられるデータを、いずれの実行ノード200からいずれの実行ノード200に転送すべきかを指定した転送命令を生成する機能
(F1−3)「命令配信機能」:実行命令と転送命令とを結合し、通信制御部120から通信ネットワーク10を介して実行ノード200に同報配信(ブロードキャスト)する機能
When the control unit 110 of the supervising node 100 executes the above program, the supervising node 100 realizes the following functions.
(F1-1) “Execution instruction generation function”: common to specify the content of parallel processing executed in each execution node 200 and data used in the processing based on a query input from the input control unit 130 or the like Function for generating an execution instruction (F1-2) “transfer instruction generation function”: a transfer instruction that specifies from which execution node 200 to which execution node 200 data to be used for processing specified by the execution instruction should be transferred (F1-3) “command distribution function”: a function for combining an execution command and a transfer command and broadcasting (broadcasting) from the communication control unit 120 to the execution node 200 via the communication network 10

本実施の形態では、制御部110がプログラム格納部150に格納されているプログラムを実行することにより、いわゆるソフトウェア処理で上記機能を実現するが、これらの機能に特化した回路(いわゆる、ASIC(Application Specific Integrated Circuit))などを統括ノード100に構成することで、いわゆるハードウェア処理によって上記機能が実現されてもよい。   In the present embodiment, the control unit 110 executes the program stored in the program storage unit 150 to realize the above functions by so-called software processing. However, a circuit specialized for these functions (so-called ASIC ( The above function may be realized by so-called hardware processing by configuring the application specific integrated circuit)) in the integrated node 100.

記憶部160は、例えば、RAMやハードディスク装置などといった所定の記憶装置から構成され、各実行ノード200に配信する情報や、実行ノード200から受信した情報などを格納する他、処理に用いるデータがいずれの実行ノード200に配置されているかを示した、図3(a)に示すような「データ配置情報」を格納する。   The storage unit 160 includes a predetermined storage device such as a RAM or a hard disk device, and stores information distributed to each execution node 200, information received from the execution node 200, and other data used for processing. The “data arrangement information” as shown in FIG. 3A indicating whether the execution node 200 is arranged is stored.

図示するように、「データ配置情報」には、データベースシステム1を構成する複数の実行ノード200を特定するための「ノードID」をキーとしたレコードに、当該ノードIDの実行ノード200に格納されているデータを特定するための「データID」が記録されている。「ノードID」は、例えば、IPアドレスなどといった、実行ノード200それぞれに割り当てられている一意の識別情報である。また「データID」は、データベースシステム1全体で蓄積している複数のデータそれぞれに一意に割り当てられている識別情報である。   As shown in the figure, the “data arrangement information” is stored in the execution node 200 of the node ID in a record using “node ID” as a key for specifying a plurality of execution nodes 200 constituting the database system 1. A “data ID” for specifying the current data is recorded. The “node ID” is unique identification information assigned to each execution node 200 such as an IP address. The “data ID” is identification information uniquely assigned to each of a plurality of data stored in the entire database system 1.

このようなデータ配置情報は、例えば、入力制御部130を介してオペレータから入力される他、通信ネットワーク10を介して統括ノード100が各実行ノード200に問い合わせをおこなうことで、自動的に取得して蓄積するようにしてもよい。また、統括ノード100がデータを分割して各実行ノード200に配置するような場合には、その際に統括ノード100がデータ配置情報を生成して蓄積するようにしてもよい。   Such data arrangement information is automatically acquired by, for example, being input from an operator via the input control unit 130 or by the supervising node 100 inquiring each execution node 200 via the communication network 10. May be accumulated. Further, in the case where the supervising node 100 divides data and places it in each execution node 200, the supervising node 100 may generate and store data placement information at that time.

また、記憶部160には、実行ノード200に対して送信した命令を管理するための、図3(b)に示すような「命令管理テーブル」が作成される。図示するように、「命令管理テーブル」には、データベースシステム1を用いた並列分散処理の実行を指示する入力命令(クエリなど)毎に一意に割り当てられる命令IDをキーとするレコードが作成され、各レコードには、「入力命令」、「対象データ」、「対象ノード」、「転送命令」、「実行命令」、「配信命令」、「配信先ノード」、などの項目が用意される。   In addition, an “instruction management table” as shown in FIG. 3B is created in the storage unit 160 for managing instructions sent to the execution node 200. As shown in the figure, in the “instruction management table”, a record is created with an instruction ID that is uniquely assigned to each input instruction (such as a query) instructing execution of parallel distributed processing using the database system 1 as a key, In each record, items such as “input command”, “target data”, “target node”, “transfer command”, “execution command”, “distribution command”, and “distribution destination node” are prepared.

項目「入力命令」には、統括ノード100に入力された命令を示す情報が記録される。項目「対象データ」には、当該命令で指示される処理に用いるデータを特定するための情報(識別情報)が記録される。項目「対象ノード」には、当該命令で指示される処理を実行するノードを特定するための情報(ノードID)が記録される。項目「転送命令」および「実行命令」には、後述する「命令処理」で作成される転送命令と実行命令(詳細後述)を示す情報が記録される。項目「配信命令」には、実際に実行ノード200に配信される、転送命令と実行命令とが結合された命令が記録される。項目「配信先ノード」には、命令の配信先となった実行ノード200を示す情報が記録される。   In the item “input command”, information indicating a command input to the overall node 100 is recorded. In the item “target data”, information (identification information) for specifying data used for the processing instructed by the command is recorded. In the item “target node”, information (node ID) for specifying the node that executes the process instructed by the command is recorded. In the items “transfer command” and “execution command”, information indicating a transfer command and an execution command (detailed later) created in “command processing” described later is recorded. In the item “distribution instruction”, an instruction that is actually delivered to the execution node 200 and is combined with a transfer instruction and an execution instruction is recorded. In the item “distribution destination node”, information indicating the execution node 200 that is the distribution destination of the instruction is recorded.

さらに、記憶部160には、各実行ノード200の処理結果を格納するための、図3(c)に示すような「処理結果管理テーブル」が作成される。図示するように、「処理結果管理テーブル」には、「命令管理テーブル」の各入力命令に対応する処理結果に一意に割り当てられる「処理結果ID」(命令IDと同一でもよい)毎にレコードが作成され、各レコードには、「命令ID」、「個別処理結果」、「最終処理結果」、などの項目が用意される。項目「命令ID」には、当該処理の実行を指示した入力命令に割り当てられている命令IDが記録される。項目「個別処理結果」には、当該命令に基づいて実行ノード200で実行された処理結果が記録される。項目「最終処理結果」には、「個別処理結果」に記録されている個別処理結果を統合した最終処理結果が記録される。   Further, a “processing result management table” as shown in FIG. 3C is created in the storage unit 160 for storing the processing results of the respective execution nodes 200. As shown in the figure, the “processing result management table” has a record for each “processing result ID” (which may be the same as the command ID) uniquely assigned to the processing result corresponding to each input command of the “command management table”. Items such as “command ID”, “individual processing result”, and “final processing result” are prepared in each record. In the item “command ID”, a command ID assigned to an input command instructing execution of the process is recorded. In the item “individual processing result”, a processing result executed by the execution node 200 based on the command is recorded. In the item “final process result”, a final process result obtained by integrating the individual process results recorded in the “individual process result” is recorded.

なお、記憶部160には、データベースシステム1を構成する各ノードとの通信に必要な情報、例えば、通信ネットワーク10を介した通信での宛先となるIPアドレスやMACアドレスなどのアドレス情報が格納されているものとする。この場合、各ノードを示す識別情報と、当該ノードのアドレス情報とが対応付けられて記憶される。   The storage unit 160 stores information necessary for communication with each node included in the database system 1, for example, address information such as an IP address and a MAC address that are destinations in communication via the communication network 10. It shall be. In this case, identification information indicating each node and the address information of the node are stored in association with each other.

次に実行ノード200の構成を説明する。実行ノード200はデータベースシステム1において分散配置されるデータを蓄積するとともに、統括ノードからの指示に基づいて演算処理を実行するノード(サブノード)であり、図4に示すような構成を有する。図示するように、実行ノード200は、制御部210と、通信制御部220と、入力制御部230と、出力制御部240と、プログラム格納部250と、記憶部260と、から構成される。   Next, the configuration of the execution node 200 will be described. The execution node 200 is a node (subnode) that accumulates data distributed in the database system 1 and executes arithmetic processing based on an instruction from the supervising node, and has a configuration as shown in FIG. As illustrated, the execution node 200 includes a control unit 210, a communication control unit 220, an input control unit 230, an output control unit 240, a program storage unit 250, and a storage unit 260.

制御部210は、例えば、CPUやワークエリアとなる所定の記憶装置(RAMなど)から構成され、実行ノード200の各部を制御するとともに、プログラム格納部250に格納されている所定の動作プログラムに基づいて後述する各処理を実行する。   The control unit 210 includes, for example, a CPU and a predetermined storage device (such as a RAM) serving as a work area, controls each unit of the execution node 200, and is based on a predetermined operation program stored in the program storage unit 250. Then, each process described later is executed.

通信制御部220は、例えば、NICなどの所定の通信装置から構成され、当該実行ノード200と通信ネットワーク10とを接続し、統括ノード100および他の実行ノード200との通信をおこなう。   The communication control unit 220 includes, for example, a predetermined communication device such as a NIC, connects the execution node 200 and the communication network 10, and communicates with the central node 100 and other execution nodes 200.

入力制御部230は、例えば、キーボードやポインティング・デバイスなどの所定の入力装置23を接続し、入力装置23から入力された指示などを制御部210に伝達する。   The input control unit 230 connects, for example, a predetermined input device 23 such as a keyboard or a pointing device, and transmits an instruction input from the input device 23 to the control unit 210.

出力制御部240は、例えば、ディスプレイ装置やプリンタなどの所定の出力装置24を接続し、制御部210の処理結果などを必要に応じて出力装置24に出力する。   The output control unit 240 connects a predetermined output device 24 such as a display device or a printer, and outputs the processing result of the control unit 210 to the output device 24 as necessary.

プログラム格納部250は、例えば、ハードディスク装置やROMなどといった所定の記憶装置から構成され、制御部210が実行する種々の動作プログラムが格納されている。プログラム格納部250に格納される動作プログラムは、実行ノード200の基本動作を司る任意のOSの他に、OSと協働して後述する各処理を実現するための、以下に示すような動作プログラムが格納されているものとする。後述する実行ノード200による処理は、制御部210がこれらの動作プログラムを実行することで実現される。
(P2−1)「通信制御プログラム」:通信制御部220を制御し、通信ネットワーク10を介して統括ノード100および他の実行ノード200と通信をおこなうためのプログラム
(P2−2)「処理実行プログラム」:統括ノード100からの命令に基づいて、実行ノード200に分散配置されたデータを用いて演算処理を実行するためのプログラム
The program storage unit 250 includes a predetermined storage device such as a hard disk device or a ROM, and stores various operation programs executed by the control unit 210. The operation program stored in the program storage unit 250 is an operation program as described below for realizing each process described later in cooperation with the OS in addition to an arbitrary OS that controls the basic operation of the execution node 200. Is stored. Processing performed by the execution node 200 described later is realized by the control unit 210 executing these operation programs.
(P2-1) “Communication control program”: Program (P2-2) “Processing execution program for controlling the communication control unit 220 to communicate with the central node 100 and other execution nodes 200 via the communication network 10 ": A program for executing arithmetic processing using data distributed in the execution node 200 based on an instruction from the supervising node 100

実行ノード200の制御部210が上記プログラムを実行することで、実行ノード200は下記の機能を実現する。
(F2−1)「データ転送機能」:統括ノード100から受信した転送命令に基づいて、指定されたデータの他の実行ノード200への送信、もしくは、他の実行ノード200からの受信をおこなう機能
(F2−2)「処理実行機能」:統括ノード100から受信した実行命令に基づき、指定されたデータを用いて演算処理を実行する機能
When the control unit 210 of the execution node 200 executes the program, the execution node 200 realizes the following functions.
(F2-1) “Data transfer function”: a function of transmitting designated data to another execution node 200 or receiving from another execution node 200 based on a transfer command received from the supervising node 100 (F2-2) “Processing execution function”: a function for executing arithmetic processing using designated data based on an execution instruction received from the overall node 100

本実施の形態では、制御部210がプログラム格納部250に格納されているプログラムを実行することにより、いわゆるソフトウェア処理で上記機能を実現するが、これらの機能に特化した回路(いわゆる、ASIC(Application Specific Integrated Circuit))などを実行ノード200に構成することで、いわゆるハードウェア処理によって上記機能が実現されてもよい。   In this embodiment, the control unit 210 executes the program stored in the program storage unit 250 to realize the above functions by so-called software processing. However, a circuit specialized for these functions (so-called ASIC ( By configuring the Application Specific Integrated Circuit)) in the execution node 200, the above function may be realized by so-called hardware processing.

記憶部260は、例えば、RAMやハードディスク装置などといった所定の記憶装置から構成され、データベースシステム1の並列分散処理で用いられるデータなどを蓄積する。   The storage unit 260 is configured from a predetermined storage device such as a RAM or a hard disk device, for example, and accumulates data used in the parallel distributed processing of the database system 1.

本実施の形態では、所定の表データ(テーブルデータ)TBを並列分散処理に用いるものとする。このような表データは複数の実行ノード200に分散配置されるが、表データTB毎に任意の分散方式が適用される。本実施の形態では、図5に示すように、複数の実行ノード200の内の特定の実行ノード200にのみ格納される表データ(以下、「特定テーブルST」とする)と、一の表データの内容が分割されて複数の実行ノード200に配置される表データ(以下、「分割テーブルPT」とする)を想定する。   In the present embodiment, it is assumed that predetermined table data (table data) TB is used for parallel distributed processing. Such table data is distributed and arranged in a plurality of execution nodes 200, but an arbitrary distribution method is applied to each table data TB. In the present embodiment, as shown in FIG. 5, table data (hereinafter referred to as “specific table ST”) stored only in a specific execution node 200 among a plurality of execution nodes 200, and one table data Table data (hereinafter referred to as “partition table PT”) that is divided and arranged in a plurality of execution nodes 200 is assumed.

分割テーブルPTは、当該表データの内容が分割されて複数の実行ノード200に配置されるものであるので、換言すれば、複数の実行ノード200に配置された分割テーブルPTを結合すると一のテーブルとなる。ここで、データベースシステム1に格納される表データが特定テーブルSTとなるか分割テーブルPTとなるかは、例えば、各表データのサイズなどによって決まる。すなわち、表データのサイズが比較的大きく、当該表データ全体を一のノードで処理するには相当の処理能力や処理時間を要するような表データは、その内容が分割されて複数の実行ノード200に配置される。一方、サイズが比較的小さく、一のノードによっても効率的に処理できる表データは、当該表データの全体を特定の実行ノード200に配置する。   The divided table PT is a table in which the contents of the table data are divided and arranged in a plurality of execution nodes 200. In other words, when the divided tables PT arranged in the plurality of execution nodes 200 are combined, one table is obtained. It becomes. Here, whether the table data stored in the database system 1 is the specific table ST or the divided table PT depends on, for example, the size of each table data. That is, the size of table data is relatively large, and table data that requires considerable processing capability and processing time to process the entire table data with one node is divided into a plurality of execution nodes 200. Placed in. On the other hand, for table data that is relatively small in size and can be processed efficiently by one node, the entire table data is arranged in a specific execution node 200.

また、各ノードには、それぞれを識別するための識別情報が付与されているが、理解を容易にするため、図5に示す例では、実行ノード200の数を「5」とし、各実行ノード200に1〜5の識別番号が付与されているものとする。そして、表データとしてテーブルTB1、テーブルTB2、テーブルTB3が用意されているものとする。「テーブルTB1」は、識別番号が「1」の実行ノード200のみに格納された特定テーブルSTである。「テーブルTB2」は、その内容が分割されて(TB2a〜TB2d)、識別番号が「1」〜「4」の実行ノード200に配置された分割テーブルPTである。「テーブルTB3」は、識別番号が「5」の実行ノード200のみに格納された特定テーブルSTである。換言すれば、識別番号「5」の実行ノード200は、テーブルTB3のみを格納している。   Further, although identification information for identifying each node is given to each node, in order to facilitate understanding, in the example shown in FIG. 5, the number of execution nodes 200 is set to “5”, and each execution node It is assumed that an identification number of 1 to 5 is assigned to 200. Assume that a table TB1, a table TB2, and a table TB3 are prepared as table data. “Table TB1” is a specific table ST stored only in the execution node 200 with the identification number “1”. The “table TB2” is a divided table PT that is arranged in the execution nodes 200 whose contents are divided (TB2a to TB2d) and whose identification numbers are “1” to “4”. “Table TB3” is a specific table ST stored only in the execution node 200 whose identification number is “5”. In other words, the execution node 200 with the identification number “5” stores only the table TB3.

このような場合、統括ノード100の記憶部160に格納される「データ配置情報」には、実行ノード200の識別番号が「ノードID」に記録され、テーブルを特定する情報(「TB1」など)が「データID」として記録される。   In such a case, in the “data arrangement information” stored in the storage unit 160 of the supervising node 100, the identification number of the execution node 200 is recorded in the “node ID”, and information specifying the table (such as “TB1”). Is recorded as “data ID”.

なお、実行ノード200の記憶部260には、データベースシステム1を構成する各ノードとの通信に必要な情報、例えば、通信ネットワーク10を介した通信での宛先となるIPアドレスやMACアドレスなどのアドレス情報が格納されているものとする。この場合、各ノードを示す識別情報と、当該ノードのアドレス情報とが対応付けられて記憶される。   The storage unit 260 of the execution node 200 stores information necessary for communication with each node constituting the database system 1, for example, an address such as an IP address or a MAC address that is a destination in communication via the communication network 10. Assume that information is stored. In this case, identification information indicating each node and the address information of the node are stored in association with each other.

さらに、必要に応じて、実行ノード200による処理結果を示す情報が記憶部260に格納される。   Furthermore, information indicating the processing result by the execution node 200 is stored in the storage unit 260 as necessary.

このような構成を有するデータベースシステム1の動作を以下説明する。本実施の形態では、データベースシステム1の実行ノード200に分散配置されている異なる表データを結合演算する場合を想定する。本実施の形態では、テーブルTB1とテーブルTB2の間での結合演算をおこなうものとして以下説明する。   The operation of the database system 1 having such a configuration will be described below. In the present embodiment, it is assumed that different table data distributed in the execution node 200 of the database system 1 are subjected to a join operation. In the present embodiment, the following description will be made assuming that a join operation is performed between the table TB1 and the table TB2.

まず、データベースシステム1で実行される「並列分散処理」を図6に示すフローチャートを参照して説明する。   First, “parallel distributed processing” executed in the database system 1 will be described with reference to the flowchart shown in FIG.

この「並列分散処理」では、まず、統括ノード100から実行ノード200へ処理実行を指示するための「命令処理」が実行される(ステップS100)。ここでは、並列分散処理のための各実行ノード200の動作が規定され、実行ノード200に指示する。そして、統括ノード100から指示を受けた実行ノード200は、指示に基づいた動作によって処理を遂行する「実行処理」を実行する(ステップS200)。そして、統括ノード100が、実行ノード200による処理結果を全体的な処理結果として集約する「統合処理」(ステップS300)を実行することで、データベースシステム1による並列分散処理が完了する。   In this “parallel distributed processing”, first, “command processing” for instructing execution of processing from the supervising node 100 to the execution node 200 is executed (step S100). Here, the operation of each execution node 200 for parallel distributed processing is defined, and the execution node 200 is instructed. Then, the execution node 200 that receives the instruction from the supervising node 100 executes “execution process” that performs the process by the operation based on the instruction (step S200). Then, the central node 100 executes “integrated processing” (step S300) in which the processing results of the execution node 200 are aggregated as overall processing results, whereby the parallel distributed processing by the database system 1 is completed.

各処理の詳細を以下図面を参照して説明する。まず、統括ノード100が実行する「命令処理」(ステップS100)の詳細を図7に示すフローチャートを参照して説明する。この「命令処理」は、データベースシステム1に蓄積されているデータを用いた並列分散処理を指示するクエリ(例えば、SQL文など)が、入力制御部130などから制御部110に入力されたことを契機に開始されるものとする。本実施の形態では、テーブルTB1とテーブルTB2との結合演算を指示するクエリが入力されるものとする。また、クエリが入力されると、制御部110は、記憶部160の「命令管理テーブル」に新規レコードを作成し、項目「入力命令」に入力されたクエリを記録する。   Details of each processing will be described below with reference to the drawings. First, the details of the “command processing” (step S100) executed by the supervising node 100 will be described with reference to the flowchart shown in FIG. This “command processing” indicates that a query (for example, an SQL statement) instructing parallel distributed processing using data stored in the database system 1 is input from the input control unit 130 or the like to the control unit 110. It shall be started when triggered. In the present embodiment, it is assumed that a query instructing a join operation between the table TB1 and the table TB2 is input. When a query is input, the control unit 110 creates a new record in the “command management table” in the storage unit 160 and records the query input in the item “input command”.

制御部110は、入力されたクエリを分析し、当該クエリで指示された処理に用いるデータ(以下、「対象データ」とする)を特定する(ステップS101)。本例では、テーブルTB1とテーブルTB2の結合演算が指示されているので、「テーブルTB1」と「テーブルTB2」が対象データとして特定される。また、特定された対象データを示す識別情報(「TB1」や「TB2」など)が記憶部160の「命令管理テーブル」に記録される。   The control unit 110 analyzes the input query and identifies data (hereinafter referred to as “target data”) used for the processing instructed by the query (step S101). In this example, since the join operation of the table TB1 and the table TB2 is instructed, “table TB1” and “table TB2” are specified as the target data. Also, identification information (“TB1”, “TB2”, etc.) indicating the specified target data is recorded in the “command management table” of the storage unit 160.

対象データを特定すると、制御部110は、当該処理のために対象ノードが実行する処理動作を指示する「実行命令」を生成し(ステップS102)、記憶部160の「命令管理テーブル」に記録する。この「実行命令」は、「いずれのデータを用いて、どのような処理(演算)をおこなうか」を示す。すなわち、入力されたクエリと同様の情報とすることができる。換言すれば、処理全体の命令をそのまま各実行ノード200に対する共通の命令として用いることができる。本例のように、テーブルTB1とテーブルTB2を結合演算する処理の場合、例えば、SQL文によって「select * from TB1, TB2 where TB1.属性a = TB2.属性b;」などと記述することができる。例示した実行命令は、各対象ノードにおいて、「テーブルTB1とテーブルTB2から、テーブルTB1での属性aとテーブルTB2での属性bが一致する列を抽出せよ」という処理内容を指示する命令となる。このように、統括ノード100で生成される実行命令は、全実行ノード200に共通の一の命令で構成することができる。   When the target data is specified, the control unit 110 generates an “execution instruction” for instructing a processing operation to be executed by the target node for the processing (step S102), and records it in the “instruction management table” of the storage unit 160. . This “execution instruction” indicates “what kind of processing (calculation) is to be performed using which data”. That is, it can be the same information as the input query. In other words, the instruction for the entire process can be used as a common instruction for the execution nodes 200 as it is. As in this example, in the case of a process of performing a join operation between the table TB1 and the table TB2, for example, “select * from TB1, TB2 where TB1.attribute a = TB2.attribute b;” can be described by an SQL statement. . The exemplified execution instruction is an instruction for instructing the processing contents of “extract a column in which the attribute a in the table TB1 and the attribute b in the table TB2 match from the table TB1 and the table TB2” in each target node. As described above, the execution instruction generated in the supervising node 100 can be composed of one instruction common to all the execution nodes 200.

実行命令を生成すると、制御部110は、記憶部160に格納されている「データ配置情報」を参照し、特定された対象データが格納されている実行ノード200(以下、「対象ノード」とする)を、対象データ毎に特定する(ステップS103)。図5に示す例では、テーブルTB1が識別番号「1」の実行ノード200に格納されているので、この実行ノード200が対象ノードとして特定される。同様に、テーブルTB2は、識別番号が「1」〜「4」の実行ノード200に格納されているので、これらの実行ノード200が対象ノードとして特定される。また、特定された対象ノードを示す識別情報が、記憶部160の「命令管理テーブル」に記録される。   When the execution instruction is generated, the control unit 110 refers to the “data arrangement information” stored in the storage unit 160 and executes the execution node 200 (hereinafter referred to as “target node”) in which the specified target data is stored. ) Is specified for each target data (step S103). In the example shown in FIG. 5, since the table TB1 is stored in the execution node 200 with the identification number “1”, this execution node 200 is specified as the target node. Similarly, since the table TB2 is stored in the execution nodes 200 having the identification numbers “1” to “4”, these execution nodes 200 are specified as target nodes. Further, identification information indicating the identified target node is recorded in the “command management table” of the storage unit 160.

対象ノードを特定すると、制御部110は、特定した対象ノードのすべてが対象データを取得するようにデータ転送経路を決定する。本実施の形態では、各実行ノード200で並列分散処理をおこなうため、対象ノードとなった実行ノード200のそれぞれが、処理に用いるデータを取得する必要がある。本実施の形態では、特定テーブルSTであるテーブルTB1を他の対象ノードに転送することとする。この場合、制御部110は、識別番号「1」の実行ノード200から、識別番号「2」〜「4」の実行ノード200にテーブルTB1を転送すべきであると分析する。   When the target node is specified, the control unit 110 determines the data transfer path so that all of the specified target nodes acquire the target data. In the present embodiment, since each execution node 200 performs parallel distributed processing, each of the execution nodes 200 that are the target nodes needs to acquire data used for the processing. In the present embodiment, the table TB1 that is the specific table ST is transferred to another target node. In this case, the control unit 110 analyzes that the table TB1 should be transferred from the execution node 200 with the identification number “1” to the execution nodes 200 with the identification numbers “2” to “4”.

データ転送経路が決定されると、対象ノードに対するデータ転送を指示する「転送命令」(プリプラン)を生成し(ステップS104)、記憶部160の「命令管理テーブル」に記録する。この転送命令は、対象ノードでの処理(実行プラン)を実行する前に、各対象ノード間でのデータ転送の実行を指示するものであり、「いずれのノードが、いずれのノードに、いずれのデータを転送するか」を記述したものである。ここでは、ノードを示す情報としてノードIDが用いられ、データを示す情報としてデータIDが用いられるものとする。そして、データ転送の実行指示を示す所定の変数と組み合わされることで、転送命令が構成される。   When the data transfer path is determined, a “transfer command” (preplan) instructing data transfer to the target node is generated (step S104) and recorded in the “command management table” of the storage unit 160. This transfer instruction instructs execution of data transfer between each target node before executing processing (execution plan) at the target node. It describes whether to transfer data. Here, a node ID is used as information indicating a node, and a data ID is used as information indicating data. A transfer instruction is configured by combining with a predetermined variable indicating an instruction to execute data transfer.

例えば、「Data = TB1、sNode = 1、rNode = 2, 3, 4」などといった文字列情報が転送命令として生成される。この場合、変数「Data」は、転送すべきデータ(テーブル)を示し、変数「sNode」は、データを送信するノード(以下、「送信ノード」とする)を示し、変数「rNode」は、データを受信するノード(以下、「受信ノード」とする)を示す。したがって、上記に例示した転送命令は、「テーブルTB1を、識別番号が「1」の実行ノード200から、識別番号が「2」、「3」、「4」の実行ノード200に送信せよ」という命令となる。換言すれば、「識別番号が「2」、「3」、「4」の実行ノード200は、テーブルTB1を、識別番号が「1」の実行ノード200から受信せよ」という命令となる。   For example, character string information such as “Data = TB1, sNode = 1, rNode = 2, 3, 4” is generated as a transfer command. In this case, the variable “Data” indicates data (table) to be transferred, the variable “sNode” indicates a node that transmits data (hereinafter referred to as “transmission node”), and the variable “rNode” indicates data. Indicates a node (hereinafter referred to as “receiving node”). Therefore, the transfer command exemplified above says that “send table TB1 from the execution node 200 having the identification number“ 1 ”to the execution node 200 having the identification numbers“ 2 ”,“ 3 ”, and“ 4 ”. It becomes an instruction. In other words, the execution node 200 with the identification numbers “2”, “3”, and “4” is a command “receive the table TB1 from the execution node 200 with the identification number“ 1 ””.

実行命令が生成されると、制御部110は、ステップS102で生成した実行命令とステップS104で生成した転送命令とを結合した「命令情報」を生成し、すべての実行ノード200に同報配信(ブロードキャスト)する(ステップS105)。すなわち、制御部110は通信制御部120を制御し、通信ネットワーク10を介して実行ノード200に命令情報を送信する。また、生成された命令情報、および、配信先となった実行ノード200を示す情報(識別情報)が記憶部160の「命令管理テーブル」に記録される。ここで、配信した命令情報には、記憶部160の命令管理テーブル上で割り当てられている命令IDが付加されているものとする。命令情報が実行ノード200に配信されると、「命令処理」を終了し、「並列分散処理」のメインフロー(図6)に戻る。   When the execution instruction is generated, the control unit 110 generates “instruction information” obtained by combining the execution instruction generated in step S102 and the transfer instruction generated in step S104, and broadcast distribution to all execution nodes 200 ( Broadcast) (step S105). That is, the control unit 110 controls the communication control unit 120 and transmits command information to the execution node 200 via the communication network 10. Further, the generated command information and information (identification information) indicating the execution node 200 that is the distribution destination are recorded in the “command management table” of the storage unit 160. Here, it is assumed that a command ID assigned on the command management table of the storage unit 160 is added to the distributed command information. When the command information is distributed to the execution node 200, the “command processing” is terminated, and the process returns to the main flow (FIG. 6) of “parallel distributed processing”.

上記「命令処理」では、実行する並列分散処理に応じて、処理に用いるデータと、当該データが格納されているノードが特定されるので、いずれのノードにいずれのデータを転送すべきであるかが決定される。そして、この決定に基づく転送命令が生成され、処理の実行を指示する実行命令とともに実行ノード200にブロードキャストされる。ここで「実行命令」は、実行ノード200毎に個別に規定されるのではなく、1つの共通した情報であり、かつ、「転送命令」も、転送すべきデータとそのデータを送信するノードおよび受信するノードを示すのみの極めて単純な情報となる。さらに、このような実行命令と転送命令とを結合させ、一の情報として配信するので、命令の送信回数を1回とすることができる。したがって、統括ノード100の処理や通信ネットワーク10に負荷をかけることなく、並列分散処理を実行するための命令情報を実行ノード200に配信することができる。   In the above “instruction processing”, the data used for processing and the node storing the data are specified according to the parallel distributed processing to be executed. Which data should be transferred to which node Is determined. A transfer instruction based on this determination is generated and broadcast to the execution node 200 together with an execution instruction for instructing execution of the process. Here, the “execution instruction” is not individually defined for each execution node 200 but is one piece of common information, and the “transfer instruction” also includes data to be transferred, a node that transmits the data, and This is very simple information that only indicates the receiving node. Furthermore, since such an execution instruction and a transfer instruction are combined and distributed as one piece of information, the number of instruction transmissions can be reduced to one. Therefore, the instruction information for executing the parallel distributed processing can be distributed to the execution node 200 without imposing a load on the processing of the central node 100 and the communication network 10.

「命令処理」によって命令情報が実行ノード200に配信されると、各実行ノード200では、配信された命令情報に基づいて、制御部210が「実行処理」を実行する(図6、ステップS200)。この「実行処理」の詳細を図8に示すフローチャートを参照して説明する。「実行処理」は、実行ノード200が命令情報を受信したことを契機に開始される。より詳細には、実行ノード200の通信制御部220が通信ネットワーク10を介して統括ノード100から命令情報を受信し、受信した命令情報を制御部210に入力したことを契機に開始される。   When the command information is distributed to the execution node 200 by the “command processing”, in each execution node 200, the control unit 210 executes the “execution processing” based on the distributed command information (FIG. 6, step S200). . The details of the “execution process” will be described with reference to the flowchart shown in FIG. The “execution process” is started when the execution node 200 receives the instruction information. More specifically, the communication control unit 220 of the execution node 200 receives command information from the supervising node 100 via the communication network 10 and starts when the received command information is input to the control unit 210.

制御部210は、受信した「命令情報」から「転送命令」を抽出する(ステップS201)。制御部210は、抽出した転送命令に、当該実行ノード200が送信ノードとして指定されているか否かを判別する(ステップS202)。上述した転送命令の例では、送信ノードを示す変数「sNode」に、当該実行ノード200の識別情報が設定されているか否かによって判別することができる。   The control unit 210 extracts a “transfer command” from the received “command information” (step S201). The control unit 210 determines whether or not the execution node 200 is designated as a transmission node in the extracted transfer instruction (step S202). In the example of the transfer command described above, the determination can be made based on whether or not the identification information of the execution node 200 is set in the variable “sNode” indicating the transmission node.

当該実行ノード200が送信ノードとして指定されている場合(ステップS202:Yes)、制御部210は、転送命令に指定されているデータ(以下、「転送対象データ」とする)を記憶部260から取得する(ステップS203)。すなわち、転送命令の変数「Data」に設定されている表データを記憶部260から取得する。例えば、「Data = TB1」と記述されている場合、制御部210は、テーブルTB1を転送対象データとして記憶部260から取得する。図5に示す例では、対象データであるテーブルTB1とテーブルTB2の内、特定テーブルSTとなっているテーブルTB1を格納している識別番号「1」の実行ノード200が、本処理をおこなうこととなる。   When the execution node 200 is designated as the transmission node (step S202: Yes), the control unit 210 acquires the data designated in the transfer command (hereinafter referred to as “transfer target data”) from the storage unit 260. (Step S203). That is, the table data set in the variable “Data” of the transfer instruction is acquired from the storage unit 260. For example, when “Data = TB1” is described, the control unit 210 acquires the table TB1 from the storage unit 260 as transfer target data. In the example shown in FIG. 5, the execution node 200 having the identification number “1” storing the table TB1 that is the specific table ST out of the table TB1 and the table TB2 that are target data performs this processing. Become.

制御部210はさらに、通信制御部220を制御して、ステップS203で取得した表データ(転送対象データ)を、転送命令で「受信ノード」に指定されている実行ノード200に送信する(ステップS204)。上記転送命令の例では、変数「rNode」に設定されている実行ノード200を特定し、当該実行ノード200に表データを送信する。この場合、制御部210は、「rNode」に設定されている識別情報に対応するアドレス情報を記憶部260から取得し、当該アドレス宛に表データを送信する。なお、各ノードの識別情報をIPアドレスなどのアドレス情報としている場合は、転送命令に識別情報として設定されているアドレス宛に表データを送信する。   The control unit 210 further controls the communication control unit 220 to transmit the table data (transfer target data) acquired in step S203 to the execution node 200 designated as “receiving node” by the transfer command (step S204). ). In the example of the transfer instruction, the execution node 200 set in the variable “rNode” is specified, and the table data is transmitted to the execution node 200. In this case, the control unit 210 acquires address information corresponding to the identification information set in “rNode” from the storage unit 260, and transmits the table data to the address. When the identification information of each node is address information such as an IP address, the table data is transmitted to the address set as the identification information in the transfer command.

表データを送信すると、制御部210は、受信した命令情報から「実行命令」を抽出し(ステップS205)、抽出した実行命令に指定されているデータ(表データ)を用いて、指定された処理(結合演算など)を実行する(ステップS206)。ここでは、当該実行ノード200の記憶部260に格納されている表データを用いて処理を実行することとなる。当該ノードが送信ノードである場合は、対象データを予め有していることになるので、記憶部260に格納されている表データを用いて処理が実行される。図5に示す例では、識別番号「1」の実行ノード200が該当するので、記憶部260に格納されているテーブルTB1とテーブルTB2を用いて、例えば、結合演算を実行する。   When the table data is transmitted, the control unit 210 extracts the “execution instruction” from the received instruction information (step S205), and uses the data (table data) specified in the extracted execution instruction to perform the specified process. (A join operation or the like) is executed (step S206). Here, the process is executed using the table data stored in the storage unit 260 of the execution node 200. If the node is a transmission node, the target data is stored in advance, so the process is executed using the table data stored in the storage unit 260. In the example illustrated in FIG. 5, the execution node 200 with the identification number “1” corresponds, and therefore, for example, a join operation is executed using the tables TB1 and TB2 stored in the storage unit 260.

指定された処理の実行が完了すると、制御部210は、実行結果を示す情報(以下、「個別結果情報」とする)を記憶部260もしくはワークエリアに格納するとともに、通信制御部220から当該個別結果情報を通信ネットワーク10を介して統括ノード100に送信する(ステップS207)。実行ノード200が送信する個別結果情報には、統括ノード100から受信した命令情報に付加されていた命令IDおよび当該実行ノード200の識別情報が付加されるものとする。統括ノード100に個別結果情報を配信すると、「実行処理」を終了し、「並列分散処理」のメインフロー(図6)に戻る。   When the execution of the designated processing is completed, the control unit 210 stores information indicating the execution result (hereinafter referred to as “individual result information”) in the storage unit 260 or the work area, and also from the communication control unit 220 to the individual The result information is transmitted to the supervising node 100 via the communication network 10 (step S207). The individual result information transmitted by the execution node 200 is added with the instruction ID added to the instruction information received from the supervising node 100 and the identification information of the execution node 200. When the individual result information is distributed to the supervising node 100, the “execution process” is terminated and the process returns to the main flow (FIG. 6) of the “parallel distributed process”.

一方、当該実行ノード200が送信ノードとして指定されていない場合(ステップS202:No)、制御部210は、当該実行ノード200が受信ノードとして転送命令に設定されているか否かを判別する(ステップS208)。上記転送命令の例では、変数「rNode」に当該実行ノード200を示す識別情報が設定されているか否かに基づいて判別される。   On the other hand, when the execution node 200 is not designated as the transmission node (step S202: No), the control unit 210 determines whether or not the execution node 200 is set in the transfer command as the reception node (step S208). ). In the example of the transfer instruction, the determination is made based on whether or not the identification information indicating the execution node 200 is set in the variable “rNode”.

当該実行ノード200が受信ノードとして指定されている場合(ステップS208:Yes)、制御部210は、送信ノードとして設定されている実行ノード200から、対象データが送信されるのを待機する。   When the execution node 200 is designated as the reception node (step S208: Yes), the control unit 210 waits for the target data to be transmitted from the execution node 200 set as the transmission node.

送信ノードから対象データを受信すると(ステップS209)、制御部210は、受信した対象データを記憶部260に格納する(ステップS210)。   When the target data is received from the transmission node (step S209), the control unit 210 stores the received target data in the storage unit 260 (step S210).

他のノードから転送された対象データが記憶部260に格納されると、制御部210は、受信した命令情報から「実行命令」を抽出し(ステップS205)、抽出した実行命令に指定されているデータ(表データ)を用いて、指定された処理(結合演算など)を実行する(ステップS206)。当該ノードが受信ノードである場合は、分割テーブルPTとして予め有しているデータと、他のノードから転送されたデータが対象データとなる。図5に示す例では、識別番号が「2」、「3」、「4」の実行ノード200が該当するので、記憶部260に当初から格納されているテーブルTB2と、識別番号「1」の実行ノード200から転送されたテーブルTB1を用いて、例えば、結合演算を実行する。   When the target data transferred from another node is stored in the storage unit 260, the control unit 210 extracts an “execution instruction” from the received instruction information (step S205), and is specified in the extracted execution instruction. Using the data (table data), a designated process (such as a join operation) is executed (step S206). When the node is a receiving node, the data previously stored as the division table PT and the data transferred from other nodes are the target data. In the example illustrated in FIG. 5, the execution nodes 200 with the identification numbers “2”, “3”, and “4” correspond to the table TB2 stored in the storage unit 260 from the beginning, and the identification number “1”. Using the table TB1 transferred from the execution node 200, for example, a join operation is executed.

指定された処理の実行が完了すると、制御部210は、実行結果を示す個別結果情報を記憶部260もしくはワークエリアに格納するとともに、通信制御部220から当該個別結果情報を通信ネットワーク10を介して統括ノード100に送信して(ステップS207)、「並列分散処理」のメインフロー(図6)に戻る。   When the execution of the designated process is completed, the control unit 210 stores the individual result information indicating the execution result in the storage unit 260 or the work area, and transmits the individual result information from the communication control unit 220 via the communication network 10. The data is transmitted to the central node 100 (step S207), and the process returns to the main flow (FIG. 6) of “parallel distributed processing”.

一方、当該実行ノード200が送信ノードおよび受信ノードのいずれにも指定されていない場合(ステップS208:No)、制御部210は、何も処理をおこなわずに「並列分散処理」のメインフロー(図6)に戻る。すなわち、データの送信も受信も行うことなく「実行処理」を終了する。図5に示す例では、識別番号「5」の実行ノード200がこれに該当する。この実行ノード200は、テーブルTB3のみを格納しているので、テーブルTB1とテーブルTB2とが対象データである今回の並列分散処理には参加する必要がない。したがって、データ転送も演算もおこなうことなく「実行処理」が終了する。   On the other hand, when the execution node 200 is not designated as either the transmission node or the reception node (step S208: No), the control unit 210 performs the main flow of “parallel distributed processing” without performing any processing (FIG. Return to 6). That is, the “execution process” is terminated without transmitting or receiving data. In the example shown in FIG. 5, the execution node 200 with the identification number “5” corresponds to this. Since the execution node 200 stores only the table TB3, it is not necessary to participate in the current parallel distributed processing in which the table TB1 and the table TB2 are target data. Therefore, the “execution process” ends without performing data transfer or calculation.

このように、上記「実行処理」では、統括ノード100から配信された「転送命令」に基づいて、処理の実行に必要となるデータが各ノード間で転送される。すなわち、対象データが特定テーブルSTと分割テーブルPTである場合には、特定のノードにのみ格納されている特定テーブルSTが他のノードに転送される。これにより、並列分散処理を実行するすべてのノードが必要なデータを保持することとなる。このように、対象ノードにより必要な対象データが過不足なく保持されると、各対象ノードにて、対象データを用いた処理が実行される。上述したように、分割テーブルPTは、一のテーブルの内容を分割して複数の実行ノード200に分散配置しているので、各実行ノード200では、当該テーブルの全体よりも小さいサイズのテーブルデータを対象にして結合演算などの処理をおこなうので、効率的に処理することができる。   As described above, in the “execution process”, data necessary for execution of the process is transferred between the nodes based on the “transfer instruction” distributed from the supervising node 100. That is, when the target data is the specific table ST and the partition table PT, the specific table ST stored only in the specific node is transferred to another node. As a result, all nodes that execute parallel distributed processing hold necessary data. Thus, when the target data required by the target node is held without excess or deficiency, processing using the target data is executed at each target node. As described above, since the divided table PT divides the contents of one table and is distributed to a plurality of execution nodes 200, each execution node 200 stores table data having a size smaller than the entire table. Since processing such as a join operation is performed on the target, processing can be performed efficiently.

また、対象データを有していないノードではデータ転送がおこなわれない。すなわち、複数の実行ノード200の内、必要最小限のノード間のみでデータ転送がおこなわれるので、通信ネットワーク10のネットワーク負荷が過剰に大きくなることがない。   Further, data transfer is not performed in a node that does not have target data. That is, since data transfer is performed only between the minimum necessary nodes among the plurality of execution nodes 200, the network load of the communication network 10 does not increase excessively.

上記「実行処理」により、各実行ノード200で処理が実行されて処理結果が取得されると、統括ノード100にて、各実行ノード200からの処理結果を統合するための「統合処理」が実行される(図6、ステップS300)。この「統合処理」の詳細を図9に示すフローチャートを参照して説明する。「統合処理」は、統括ノード100が、対象ノードのいずれかから個別結果情報を受信したことを契機に開始される。より詳細には、統括ノード100の通信制御部120が、対象ノードとなっている実行ノード200が送信した個別結果情報を受信し、受信した個別結果情報が制御部110に入力されたことを契機に開始される。   When the processing is executed by each execution node 200 and the processing result is acquired by the “execution processing”, the integrated node 100 executes the “integration processing” for integrating the processing results from the execution nodes 200. (FIG. 6, step S300). Details of the “integration processing” will be described with reference to the flowchart shown in FIG. The “integration process” is started when the supervising node 100 receives the individual result information from any of the target nodes. More specifically, the communication control unit 120 of the supervising node 100 receives the individual result information transmitted from the execution node 200 that is the target node, and the received individual result information is input to the control unit 110. To begin.

対象ノードとなっている実行ノード200のいずれかから個別結果情報を受信すると、制御部110は、当該個別結果情報に付加されている命令IDに基づき、記憶部160の「処理結果管理テーブル」に、当該命令IDが記録されているレコードがあるか否かを検索する(ステップS301)。   When the individual result information is received from any of the execution nodes 200 that are the target nodes, the control unit 110 stores the “process result management table” in the storage unit 160 based on the instruction ID added to the individual result information. Then, it is searched whether there is a record in which the command ID is recorded (step S301).

当該命令IDを含むレコードがない場合(ステップS301:No)、制御部110は、処理結果IDを付与し、当該処理結果IDをキーとしたレコードを「処理結果管理テーブル」に新規作成し(ステップS302)、当該レコードの項目「個別処理結果」に、受信した個別結果情報を格納する(ステップS303)。すなわち、発した命令に対する処理結果が最初に到来した場合、新規レコードを作成して個別結果情報を格納する。   When there is no record including the instruction ID (step S301: No), the control unit 110 assigns a processing result ID, and newly creates a record with the processing result ID as a key in the “processing result management table” (step S302), the received individual result information is stored in the item “individual processing result” of the record (step S303). That is, when the processing result for the issued instruction comes first, a new record is created and individual result information is stored.

2番目以降に到来した処理結果については、既にレコードが作成されているため(ステップS301:Yes)、当該レコードに受信した個別結果情報を格納する(ステップS303)。   Regarding the processing results that have arrived after the second, since records have already been created (step S301: Yes), the received individual result information is stored in the records (step S303).

制御部110は、受信する個別結果情報に付加されている実行ノード200の識別情報と、記憶部160の「命令管理テーブル」に記録されている対象ノードを示す識別情報とに基づいて、すべての対象ノードから個別結果情報を受信したか否かを判別する(ステップS304)。   Based on the identification information of the execution node 200 added to the received individual result information and the identification information indicating the target node recorded in the “command management table” of the storage unit 160, the control unit 110 It is determined whether or not individual result information has been received from the target node (step S304).

すべての対象ノードから個別結果情報を受信していない場合(ステップS304:No)、ステップS301に戻り、すべての対象ノードから個別結果情報を受信するまで「処理結果管理テーブル」に個別結果情報を蓄積する。   When the individual result information has not been received from all the target nodes (step S304: No), the process returns to step S301, and the individual result information is accumulated in the “processing result management table” until the individual result information is received from all the target nodes. To do.

すべての対象ノードから個別結果情報を受信すると(ステップS304:Yes)、制御部110は、「処理結果管理テーブル」に蓄積された個別結果情報を統合し、最終処理結果情報を生成する(ステップS305)。すなわち、並列分散処理により、各実行ノード200で得られた処理結果を1つにまとめることで、当初の入力命令に対する処理結果とする。生成された最終処理結果情報は、記憶部160の「処理結果管理テーブル」に記録される。   When the individual result information is received from all the target nodes (step S304: Yes), the control unit 110 integrates the individual result information accumulated in the “processing result management table” and generates final processing result information (step S305). ). That is, the processing results obtained at each execution node 200 are combined into one by parallel distributed processing, thereby obtaining the processing result for the original input instruction. The generated final process result information is recorded in the “process result management table” of the storage unit 160.

制御部110は、生成した最終処理結果情報を、出力制御部140を介して出力装置14から出力して(ステップS306)、処理を終了する。   The control unit 110 outputs the generated final process result information from the output device 14 via the output control unit 140 (step S306), and ends the process.

以上説明したように、上記実施の形態によれば、並列分散処理をおこなうデータベースシステム1において、複数の実行ノード200に対して発する命令の情報量を小さくすることができるので、命令を発する統括ノード100や命令を伝達する通信ネットワーク10に負荷をかけることなく、複数の実行ノード200に命令を発することができる。   As described above, according to the above embodiment, in the database system 1 that performs parallel and distributed processing, the information amount of instructions issued to a plurality of execution nodes 200 can be reduced. A command can be issued to a plurality of execution nodes 200 without imposing a load on the communication network 10 that transmits 100 or the command.

また、命令情報の構成を極めて単純なものとすることができ、かつ、すべての実行ノード200に対して共通のものとすることができるので、命令情報を生成する統括ノード100、および、命令情報を認識する実行ノード200の処理負荷が軽減される。   Further, since the configuration of the instruction information can be made extremely simple and can be made common to all the execution nodes 200, the general node 100 that generates the instruction information, and the instruction information The processing load of the execution node 200 that recognizes is reduced.

さらに、実行すべき処理内容を指示する実行命令と、処理実行前に実施すべきデータ転送を指示する転送命令とを結合させた一の命令情報のみを送信すればよいので、命令送信回数が1回のみでよい。これにより、命令情報を送信する統括ノード100および命令情報を伝達する通信ネットワーク10に負荷をかけることなく、複数の実行ノード200に命令を発することができる。   Furthermore, since only one command information obtained by combining an execution command for instructing the processing content to be executed and a transfer command for instructing data transfer to be executed before the processing execution needs to be transmitted, the number of command transmissions is 1. Only once. As a result, it is possible to issue a command to a plurality of execution nodes 200 without imposing a load on the central node 100 that transmits the command information and the communication network 10 that transmits the command information.

また、データベースシステム1で格納しているデータの分散方式に応じて、処理に必要なデータを実行ノード200間で転送することで、処理を実行する実行ノード200自身が必要とするデータを取得するので、すべてのデータを取得して配信する特定のノードなどを設ける必要がない。すなわち、表データなどのサイズの大きなデータを特定のノードのみで処理する必要がないため、全体の処理効率を高くすることができる。また、処理を実行しないノードではデータの転送をおこなわないので、データ転送を媒介する通信ネットワーク10に必要以上の負荷をかけることなくデータ転送することができる。また、このようなデータ転送の実施を、上述のような極めて単純な構成の転送命令で実現することができる。   Further, according to the distribution method of data stored in the database system 1, data necessary for the processing is transferred between the execution nodes 200, thereby acquiring the data required by the execution node 200 executing the processing. Therefore, there is no need to provide a specific node for acquiring and distributing all data. That is, since it is not necessary to process large data such as table data only by a specific node, overall processing efficiency can be increased. In addition, since data is not transferred in a node that does not execute processing, data can be transferred without imposing a load more than necessary on the communication network 10 that mediates data transfer. Further, such data transfer can be realized by a transfer command having a very simple configuration as described above.

(第2の実施形態)
上記第1の実施形態では、理解を容易にするため、システム構成(ノード数)や対象データの構成、処理内容などを簡易にして説明したが、実際のデータベースシステムにおいては、ノード数やデータ量が膨大となる場合があり、かつ、データの分散形態も複雑となる場合がある。また、第1の実施形態で例示したような、2つのテーブルデータを結合させるだけの単純な処理ではない場合も多い。このような場合、実行命令や転送命令が複数必要となり、命令情報が複雑になってしまうこともある。このように命令が複雑となってしまう場合であっても効率的に処理をおこなう手法を、第2の実施形態として以下説明する。なお、本実施の形態におけるデータベースシステム1の構成は第1の実施形態と同様である。
(Second Embodiment)
In the first embodiment, for ease of understanding, the system configuration (number of nodes), the configuration of target data, the processing contents, etc. have been described in a simplified manner, but in an actual database system, the number of nodes and the amount of data are described. May be enormous, and the data distribution may be complicated. In many cases, the process is not simply a process of joining two pieces of table data as exemplified in the first embodiment. In such a case, a plurality of execution instructions and transfer instructions are required, and the instruction information may be complicated. A technique for efficiently performing processing even when the instructions become complicated will be described below as a second embodiment. The configuration of the database system 1 in the present embodiment is the same as that in the first embodiment.

上記第1の実施形態では、データの分散形態として、特定テーブルSTと分割テーブルPTを例示したが、本実施の形態では、これらに加え「分散テーブルAT」を想定する。分散テーブルATは、一のテーブルデータを分割せずに複数の実行ノード200に配置する形態である。すなわち、同一のテーブルデータが複数の実行ノード200に配置される。また、本実施の形態では、2種類の分割テーブル(PT1とPT2)を想定する。   In the first embodiment, the specific table ST and the partition table PT are exemplified as the data distribution form, but in this embodiment, a “distribution table AT” is assumed in addition to these. The distributed table AT is a form in which one table data is arranged in a plurality of execution nodes 200 without being divided. That is, the same table data is arranged in a plurality of execution nodes 200. In the present embodiment, two types of division tables (PT1 and PT2) are assumed.

すなわち、図10に示すように、本実施の形態では、以下のような4種類のテーブルデータを想定する。
・テーブルTB1:識別番号「1」の実行ノード200にのみ配置された特定テーブルST
・テーブルTB2:識別番号「1」〜「4」の実行ノード200に分割して配置された分割テーブルPT1
・テーブルTB3:識別番号「2」〜「5」の実行ノード200に分割して配置された分割テーブルPT2
・テーブルTB4:識別番号「1」〜「5」の実行ノード200に配置された分散テーブルAT
That is, as shown in FIG. 10, in the present embodiment, the following four types of table data are assumed.
Table TB1: Specific table ST arranged only in the execution node 200 with the identification number “1”
Table TB2: a divided table PT1 that is divided and arranged in the execution nodes 200 with the identification numbers “1” to “4”
Table TB3: a division table PT2 arranged by being divided into execution nodes 200 with identification numbers “2” to “5”
Table TB4: Distributed table AT arranged in the execution nodes 200 with identification numbers “1” to “5”

また、本実施の形態では、実行命令と転送命令とを結合させた命令情報をツリー構造(木構造)にし、このようなツリー構造の命令を各実行ノード200が再帰的に実行する。すなわち、「命令処理」(図7)のステップS105で統括ノード100が命令情報を生成する際に、図11に示すような、ツリー構造(階層構造)の命令情報を生成する。図11の例では、第1階層から第4階層までの4階層構造を有する。本実施の形態では、第1階層を最上位階層とする。   In this embodiment, the instruction information obtained by combining the execution instruction and the transfer instruction is made into a tree structure (tree structure), and each execution node 200 recursively executes such a tree structure instruction. That is, when the supervising node 100 generates instruction information in step S105 of “instruction processing” (FIG. 7), tree structure (hierarchical structure) instruction information as shown in FIG. 11 is generated. The example of FIG. 11 has a four-layer structure from the first layer to the fourth layer. In the present embodiment, the first hierarchy is the highest hierarchy.

図11において、ツリー構造の第1階層にある「実行プランタグ」は、複数の実行命令と転送命令を含んだ一の命令情報(プラン)であることを示すものである。すなわち、複数の実行命令と転送命令がツリー状の階層構造で実行プランタグに続く。   In FIG. 11, an “execution plan tag” in the first hierarchy of the tree structure indicates that it is one instruction information (plan) including a plurality of execution instructions and transfer instructions. That is, a plurality of execution instructions and transfer instructions follow the execution plan tag in a tree-like hierarchical structure.

第1階層の「実行命令1」は、直近下位の第2階層における「実行命令2」と「実行命令5」の実行結果を用いた処理(結合演算)の実行を指示する実行命令である。   “Execution instruction 1” in the first hierarchy is an execution instruction that instructs execution of processing (join operation) using the execution results of “execution instruction 2” and “execution instruction 5” in the second hierarchy immediately below.

第2階層の「実行命令2」は、例えば、テーブルTB1とテーブルTB2との結合演算の実行を指示する実行命令である。ここで、テーブルTB1は特定テーブルSTであり、テーブルTB2は分割テーブルPT1であるから、いずれも実行ノード200間での転送が必要となる。したがって、「実行命令2」には第3階層にて「転送命令1」と「転送命令2」が続く。   The “execution instruction 2” in the second hierarchy is an execution instruction that instructs execution of a join operation between the table TB1 and the table TB2, for example. Here, since the table TB1 is the specific table ST and the table TB2 is the division table PT1, both of them need to be transferred between the execution nodes 200. Therefore, “execution instruction 2” is followed by “transfer instruction 1” and “transfer instruction 2” in the third hierarchy.

「転送命令1」は、テーブルTB1の転送を指示する転送命令であり、「転送命令2」は、テーブルTB2の転送を指示する転送命令である。転送命令の記述形式は第1の実施形態と同様である。すなわち、転送対象となるデータ、転送元のノード、転送先のノード、などが記述される。転送命令に続く実行命令は、転送命令の実行によって取得されたテーブルデータへのアクセス(テーブルスキャン)を指示するものである。図11の例では、「転送命令1」に続く「実行命令3」によって、テーブルTB1に対するテーブルスキャンの実行が指示され、「転送命令2」に続く「実行命令4」によって、テーブルTB2に対するテーブルスキャンの実行が指示される。   The “transfer instruction 1” is a transfer instruction for instructing transfer of the table TB1, and the “transfer instruction 2” is a transfer instruction for instructing transfer of the table TB2. The description format of the transfer instruction is the same as that in the first embodiment. That is, data to be transferred, a transfer source node, a transfer destination node, and the like are described. The execution instruction following the transfer instruction is an instruction to access (table scan) the table data acquired by executing the transfer instruction. In the example of FIG. 11, execution of table scan for the table TB1 is instructed by “execution instruction 3” following “transfer instruction 1”, and table scan for table TB2 is executed by “execution instruction 4” following “transfer instruction 2”. Execution is instructed.

すなわち、実行ノード200間での転送が必要なテーブルデータに対する動作を指示する実行命令の直前の階層に、当該テーブルデータの転送を指示する転送命令が挿入される形となる。   In other words, a transfer instruction for instructing the transfer of the table data is inserted in the hierarchy immediately before the execution instruction for instructing an operation on the table data that needs to be transferred between the execution nodes 200.

一方、第2階層で「実行命令2」と並行する「実行命令5」についても、同様に適当な実行命令や転送命令が階層構造で続く。図11の例では、実行命令5は、例えば、テーブルTB4とテーブルTB3の結合演算の実行を指示する実行命令である。ここで、テーブルTB4は、すべての実行ノード200に配置されている分散テーブルATであるので、各実行ノード200間でテーブルTB4を転送する必要はない。したがって、実行命令5の直下に、テーブルTB4に対するテーブルスキャンを指示する「実行命令6」が続く。   On the other hand, for “execution instruction 5” parallel to “execution instruction 2” in the second hierarchy, appropriate execution instructions and transfer instructions follow in a hierarchical structure. In the example of FIG. 11, the execution instruction 5 is an execution instruction for instructing execution of a join operation between the table TB4 and the table TB3, for example. Here, since the table TB4 is a distributed table AT arranged in all the execution nodes 200, it is not necessary to transfer the table TB4 between the execution nodes 200. Therefore, “execution instruction 6” instructing the table scan for the table TB4 follows immediately below the execution instruction 5.

また、実行命令5が対象とするテーブルTB3は、分割テーブルPT2であるため、実行ノード200間での転送が必要となる。したがって、実行命令5の下位階層である第3階層に、テーブルTB3の転送を指示する「転送命令3」が続く。転送命令3の直下には、転送命令3で取得されるテーブルTB3に対するテーブルスキャンの実行を指示する「実行命令7」が続く。   Further, since the table TB3 targeted by the execution instruction 5 is the partition table PT2, transfer between the execution nodes 200 is required. Therefore, “transfer instruction 3” instructing transfer of the table TB3 follows the third hierarchy, which is a lower hierarchy of the execution instruction 5. Immediately below the transfer instruction 3, an “execution instruction 7” instructing execution of a table scan for the table TB3 acquired by the transfer instruction 3 follows.

このようなツリー構造の命令情報を受信した実行ノード200の動作を以下説明する。   The operation of the execution node 200 having received such tree structure instruction information will be described below.

実行ノード200において、通信制御部220が統括ノード100から命令情報を受信すると、制御部210は、命令情報の最上位階層から下位方向に順次巡っていき、転送命令を実行していく。上述したように、本実施の形態においても、第1の実施形態で例示した転送命令と同様の転送命令であるので、制御部210は、転送命令の記述にしたがって、対象データの送受信をおこなう。すなわち、自身が送信ノードとして指定されている場合には、記憶部260に格納している対象データを他の実行ノード200に転送し、自身が受信ノードとして指定されている場合には、他の実行ノード200から転送される対象データを受信する。   In the execution node 200, when the communication control unit 220 receives the command information from the supervising node 100, the control unit 210 sequentially goes around from the highest hierarchy of the command information to execute the transfer command. As described above, also in this embodiment, since it is a transfer command similar to the transfer command illustrated in the first embodiment, the control unit 210 transmits and receives target data according to the description of the transfer command. That is, when the node itself is designated as a transmission node, the target data stored in the storage unit 260 is transferred to another execution node 200, and when the node itself is designated as a reception node, The target data transferred from the execution node 200 is received.

図11における「実行命令2」以降を例にとると、直下の「転送命令1」を各実行ノード200が実行することで、テーブルTB1の転送が実行ノード200間でおこなわれる。また、同じく「実行命令2」の直下にある「転送命令2」を各実行ノード200が実行することで、テーブルTB2の転送が各実行ノード200間でおこなわれる。転送命令の実行においては、第1の実施形態と同様に、送信ノードに指定された実行ノード200は対象データを転送先に指定されている実行ノード200に送信し、受信ノードに指定された実行ノード200は対象データの転送を待機する。   Taking “execution instruction 2” and the like in FIG. 11 as an example, each execution node 200 executes “transfer instruction 1” immediately below, whereby the table TB1 is transferred between the execution nodes 200. Similarly, each execution node 200 executes “transfer instruction 2” immediately below “execution instruction 2”, whereby the table TB2 is transferred between the execution nodes 200. In execution of the transfer instruction, as in the first embodiment, the execution node 200 specified as the transmission node transmits the target data to the execution node 200 specified as the transfer destination, and the execution specified as the reception node. The node 200 waits for transfer of the target data.

転送命令の実行により対象データの転送が完了すると、各実行ノード200では、当該転送命令の直下の実行命令が実行される。転送命令の直下がテーブルスキャンを指示する実行命令である場合には、制御部210が、転送命令に指定されていたテーブルデータに対しテーブルスキャンをおこなうことで、データを取得する。そして、転送命令の直下の実行命令の実行後は、制御部210は、当該転送命令の直近上位の実行命令を実行する。すなわち、実行ノード200の制御部210は、受信したツリー構造の命令を再帰的に実行する。   When the transfer of the target data is completed by executing the transfer instruction, each execution node 200 executes the execution instruction immediately below the transfer instruction. When the execution command directly instructing the table scan is directly below the transfer command, the control unit 210 acquires the data by performing a table scan on the table data specified in the transfer command. After execution of the execution instruction immediately below the transfer instruction, the control unit 210 executes the execution instruction immediately above the transfer instruction. That is, the control unit 210 of the execution node 200 recursively executes the received tree structure instruction.

図11における「実行命令2」以降を例にとると、制御部210は「転送命令1」(第3階層)の実行により転送されたテーブルTB1に対するテーブルスキャン(第4階層の「実行命令3」)と、「転送命令2」(第3階層)の実行により転送されたテーブルTB2に対するテーブルスキャン(第4階層の「実行命令4」)とを並列に実行して、テーブルTB1とテーブルTB2から必要な情報を取得すると、第2階層の「実行命令2」を実行して、取得したテーブルTB1とテーブルTB2との結合演算を実行する。すなわち、ツリー構造の各枝毎に、転送命令が実行命令より先行して実行されることになる。   Taking “execution instruction 2” and the like in FIG. 11 as an example, the control unit 210 performs table scan (table 4 “execution instruction 3” on the table TB1 transferred by execution of “transfer instruction 1” (third hierarchy). ) And the table scan (table 4 “execution command 4”) transferred to the table TB2 transferred by the execution of “transfer command 2” (third layer), are executed in parallel from the tables TB1 and TB2. When such information is acquired, the “execution instruction 2” of the second hierarchy is executed, and a join operation between the acquired table TB1 and the table TB2 is executed. That is, for each branch of the tree structure, the transfer instruction is executed prior to the execution instruction.

図11における「実行命令5」以降も同様であり、転送命令が存在する場合には、転送命令が先に実行される。すなわち、制御部210は、実行命令5の直下の「転送命令3」を実行してテーブルTB3を転送すると、転送されたテーブルTB3に対してテーブルスキャンをおこなって内容を取得する(「実行命令7」)。これと並行して、制御部210は、分散テーブルATであるテーブルTB4をテーブルスキャンして内容を取得する(「実行命令6」)。そして、テーブルTB3とテーブルTB4が取得されると、制御部210は、「実行命令5」を再帰的に実行することで、テーブルTB3とテーブルTB4との結合演算をおこなう。   The same applies to “execution instruction 5” and thereafter in FIG. 11, and when a transfer instruction exists, the transfer instruction is executed first. That is, when executing the “transfer instruction 3” immediately below the execution instruction 5 and transferring the table TB3, the control unit 210 performs a table scan on the transferred table TB3 to acquire the contents (“execution instruction 7 "). In parallel with this, the controller 210 scans the table TB4, which is the distributed table AT, and acquires the contents (“execution instruction 6”). When the table TB3 and the table TB4 are acquired, the control unit 210 performs a join operation between the table TB3 and the table TB4 by recursively executing the “execution instruction 5”.

さらに、制御部210は、「実行命令1」を再帰的に実行することで、「実行命令2」による結合演算の結果と、「実行命令5」による結合演算の結果とを用いて結合演算をおこなうことで、最終的な個別処理結果を算出し、統括ノード100に送信する。   Further, the control unit 210 recursively executes “execution instruction 1”, thereby performing a join operation using the result of the join operation by “execution instruction 2” and the result of the join operation by “execution instruction 5”. By performing this, the final individual processing result is calculated and transmitted to the overall node 100.

このように、命令情報をツリー構造とし、各実行ノード200で再帰的に実行させることにより、ノード数やデータ量が多かったり、データの分散形態が複雑であったり、実行する処理の内容が複雑であるような場合であっても、一の命令情報によって並列分散処理を実行することができる。   As described above, the instruction information is made into a tree structure and is recursively executed by each execution node 200, so that the number of nodes and the amount of data are large, the data distribution form is complicated, and the contents of the processing to be executed are complicated. Even in such a case, parallel distributed processing can be executed with one instruction information.

すなわち、本発明を上記各実施の形態の如く適用することにより、並列分散処理をおこなうデータベースシステムの処理効率を向上させることができる。   That is, by applying the present invention as in the above embodiments, the processing efficiency of the database system that performs parallel distributed processing can be improved.

なお、上記実施の形態では、特定のノードのみに格納されている特定テーブルSTや、複数のノードに分割配置されている分割テーブルPT、あるいは、同一のテーブルデータが複数の実行ノード200に分散配置されている分散テーブルATを対象データとして結合演算する場合を例示したが、対象とするデータや実行する処理などは任意である。例えば、特定テーブルST同士の結合演算や、分割テーブルPT同士の結合演算などであっても、同様に処理することができる。また、データベースシステム1に格納するデータあるいは演算処理に用いるデータの種類は、例示した表データ(テーブルデータ)に限られず、任意のデータを取り扱うことができる。   In the above embodiment, the specific table ST stored only in a specific node, the divided table PT divided and arranged in a plurality of nodes, or the same table data is distributed in a plurality of execution nodes 200. Although the case of performing a join operation using the distributed table AT as target data has been illustrated, target data, processing to be executed, and the like are arbitrary. For example, the same processing can be performed for a join operation between specific tables ST or a join operation between divided tables PT. The type of data stored in the database system 1 or data used for arithmetic processing is not limited to the exemplified table data (table data), and arbitrary data can be handled.

また、転送命令を生成する際の転送経路の決定は、ノード毎の処理能力や各データの種類やサイズなどに応じて決定されることが望ましい。すなわち、第1の実施形態における転送経路の決定においては、一の実行ノード200にのみ配置されている特定テーブルSTを他の実行ノード200に転送するような転送経路としたが、逆に、複数の実行ノード200に格納されている分割テーブルPTを、特定テーブルSTを保持している実行ノード200に転送するようにしてもよい。すなわち、統括ノード100の制御部110が、例えば、統計情報などに基づいてコスト計算することで、最も効率的な転送経路を決定すればよい。この場合、例えば、統括ノード100の記憶部160に記憶される「データ配置情報」などに、各実行ノード200の処理能力を示す情報を記録してもよい。   In addition, it is desirable that the transfer path when generating the transfer command is determined according to the processing capability of each node, the type and size of each data, and the like. That is, in the determination of the transfer route in the first embodiment, the transfer route is such that the specific table ST arranged only in one execution node 200 is transferred to another execution node 200. The partition table PT stored in the execution node 200 may be transferred to the execution node 200 holding the specific table ST. That is, the control unit 110 of the supervising node 100 may determine the most efficient transfer route by calculating the cost based on, for example, statistical information. In this case, for example, information indicating the processing capability of each execution node 200 may be recorded in “data arrangement information” stored in the storage unit 160 of the supervising node 100.

また、上記実施の形態では、命令情報をすべての実行ノード200にブロードキャストするものとしたが、特定された対象ノードのみに配信するようにしてもよい。この場合、特定された対象ノードの識別情報に基づいてアドレスを特定し、特定したアドレス宛に命令情報を送信すればよい。これにより、命令配信時のネットワーク負荷をさらに軽減させることができる。   In the above embodiment, the instruction information is broadcast to all the execution nodes 200. However, the instruction information may be distributed only to the specified target node. In this case, an address may be specified based on the identification information of the specified target node, and command information may be transmitted to the specified address. Thereby, the network load at the time of command distribution can be further reduced.

上記実施の形態にかかる統括ノード100および実行ノード200は、専用装置から構成可能であることはもとより、汎用のコンピュータ装置などを用いて構成することもできる。すなわち、このような汎用装置に上述したプログラムをインストールして実行させることで、上記実施の形態にかかる統括ノード100および実行ノード200として機能させることができる。   The supervising node 100 and the execution node 200 according to the above embodiment can be configured by using a general-purpose computer device or the like as well as being configured by a dedicated device. That is, by installing and executing the above-described program in such a general-purpose device, the general node 100 and the execution node 200 according to the embodiment can be functioned.

このようなプログラムの提供方法は任意であり、例えば、CD−ROMなどの記憶媒体に格納して配布可能であることはもとより、プログラムデータを搬送波に重畳することで、所定の通信媒体(例えば、インターネットなど)を介して配布することもできる。   Such a program providing method is arbitrary. For example, the program data can be stored and distributed in a storage medium such as a CD-ROM, and the program data can be superposed on a carrier wave so that a predetermined communication medium (for example, It can also be distributed via the Internet).

本発明の実施の形態にかかる「データベースシステム」の構成を模式的に示す図である。It is a figure which shows typically the structure of the "database system" concerning embodiment of this invention. 図1に示す「統括ノード」の構成を示すブロック図である。FIG. 2 is a block diagram illustrating a configuration of a “general node” illustrated in FIG. 1. 図2に示す「記憶部」に記録される情報の例を示す図であり、(a)は「データ配置情報」の例を示し、(b)は「命令管理テーブル」の例を示し、(c)は「処理結果管理テーブル」の例を示す。FIG. 3 is a diagram illustrating an example of information recorded in a “storage unit” illustrated in FIG. 2, where (a) illustrates an example of “data arrangement information”, (b) illustrates an example of an “instruction management table”, ( c) shows an example of a “processing result management table”. 図1に示す「実行ノード」の構成を示すブロック図である。FIG. 2 is a block diagram illustrating a configuration of an “execution node” illustrated in FIG. 1. 図1に示す「実行ノード」に配置されるデータの分散方式を説明するための図である。It is a figure for demonstrating the distribution system of the data arrange | positioned at the "execution node" shown in FIG. 本発明の実施の形態「並列分散処理」を説明するためのフローチャートである。It is a flowchart for demonstrating embodiment "parallel distributed processing" of this invention. 図6に示す「並列分散処理」で実行される「命令処理」を説明するためのフローチャートである。7 is a flowchart for explaining “instruction processing” executed in “parallel distributed processing” shown in FIG. 6. 図6に示す「並列分散処理」で実行される「実行処理」を説明するためのフローチャートである。It is a flowchart for demonstrating the "execution process" performed by the "parallel distributed process" shown in FIG. 図6に示す「並列分散処理」で実行される「統合処理」を説明するためのフローチャートである。It is a flowchart for demonstrating the "integration process" performed by the "parallel distributed process" shown in FIG. 本発明の第2の実施形態にかかるデータの分散方式を説明するための図である。It is a figure for demonstrating the data distribution system concerning the 2nd Embodiment of this invention. 本発明の第2の実施形態にかかるツリー構造の命令情報を説明するための図である。It is a figure for demonstrating the command information of the tree structure concerning the 2nd Embodiment of this invention.

符号の説明Explanation of symbols

1 データベースシステム
10 通信ネットワーク
100 統括ノード
200 実行ノード
1 Database system 10 Communication network 100 Supervising node 200 Execution node

Claims (6)

複数のノードで並列分散処理をおこなうデータベースシステムにおいて、
前記複数のノードは、通信ネットワークを介して相互接続された、前記並列分散処理を統括する統括ノードと、データの蓄積および演算処理をおこなう複数の実行ノードと、から構成され、
前記統括ノードは、
各実行ノードでの演算処理の実行を指示する共通の実行命令を生成する実行命令生成手段と、
前記実行命令で指示される演算処理で用いるデータの転送を指示する転送命令を生成する転送命令生成手段と、
前記実行命令生成手段が生成した実行命令と、前記転送命令生成手段が生成した転送命令とを結合した命令情報を、前記通信ネットワークを介して前記複数の実行ノードに同報配信する命令配信手段と、
を備え、
前記実行ノードは、
前記統括ノードの命令配信手段から配信される命令情報を前記通信ネットワークを介して受信する命令受信手段と、
前記命令受信手段が受信した転送命令に基づき、前記通信ネットワークを介して他の実行ノードとの間でデータの送受信を行うデータ転送手段と、
前記命令受信手段が受信した実行命令に基づき、蓄積されているデータおよび前記データ転送手段が受信したデータを用いて演算処理を実行する演算手段と、
を備えることを特徴とするデータベースシステム。
In a database system that performs parallel distributed processing on multiple nodes,
The plurality of nodes are composed of a central node that controls the parallel and distributed processing and a plurality of execution nodes that perform data accumulation and arithmetic processing, which are interconnected via a communication network.
The supervising node is
Execution instruction generation means for generating a common execution instruction for instructing execution of arithmetic processing in each execution node;
Transfer instruction generation means for generating a transfer instruction for instructing transfer of data used in the arithmetic processing instructed by the execution instruction;
Instruction distribution means for broadcasting instruction information obtained by combining the execution instruction generated by the execution instruction generation means and the transfer instruction generated by the transfer instruction generation means to the plurality of execution nodes via the communication network; ,
With
The execution node is
Command receiving means for receiving command information distributed from the command distributing means of the supervising node via the communication network;
Data transfer means for transmitting and receiving data to and from other execution nodes via the communication network based on the transfer command received by the command receiving means;
Based on the execution command received by the command receiving means, arithmetic means for performing arithmetic processing using the stored data and the data received by the data transfer means;
A database system comprising:
前記転送命令生成手段は、データを送信すべき実行ノードと、データを受信すべき実行ノードと、を指定した転送命令を生成する、
ことを特徴とする請求項1に記載のデータベースシステム。
The transfer command generating means generates a transfer command specifying an execution node to which data is to be transmitted and an execution node to be receiving data.
The database system according to claim 1.
前記統括ノードは、
いずれの実行ノードにいずれのデータが格納されているかを示す配置情報を取得して記憶する配置情報取得手段をさらに備え、
前記転送命令生成手段は、前記配置情報取得手段が記憶する配置情報に基づいて、前記転送命令を生成する、
ことを特徴とする請求項1または2に記載のデータベースシステム。
The supervising node is
It further comprises arrangement information acquisition means for acquiring and storing arrangement information indicating which data is stored in which execution node,
The transfer command generation unit generates the transfer command based on the arrangement information stored in the arrangement information acquisition unit.
The database system according to claim 1 or 2, wherein
前記命令配信手段は、前記実行命令生成手段が生成した実行命令と、前記転送命令生成手段が生成した転送命令とを結合したツリー構造の命令情報を前記複数の実行ノードに配信し、
前記演算手段は、前記命令受信手段が受信したツリー構造の命令情報を再帰的に実行することで、該命令情報に含まれる実行命令が指示する演算処理を実行する、
ことを特徴とする請求項1乃至3のいずれか1項に記載のデータベースシステム。
The instruction distribution means distributes the instruction information of a tree structure in which the execution instruction generated by the execution instruction generation means and the transfer instruction generated by the transfer instruction generation means are combined to the plurality of execution nodes,
The arithmetic means recursively executes the instruction information of the tree structure received by the instruction receiving means, thereby executing arithmetic processing indicated by the execution instruction included in the instruction information.
The database system according to any one of claims 1 to 3, wherein:
並列分散処理をおこなうデータベースシステムを統括するコンピュータに、
前記データベースシステムを構成する複数のコンピュータのいずれに、いずれのデータが格納されているかを示す配置情報を取得して記憶するステップと、
前記複数のコンピュータそれぞれで実行させる演算処理の内容を示す情報と、当該演算処理で用いるデータを指定する情報と、を含んだ実行命令を生成するステップと、
前記配置情報に基づいて、他のコンピュータにデータを送信すべきコンピュータを示す情報と、他のコンピュータからデータを受信すべきコンピュータを示す情報と、を含んだ転送命令を生成するステップと、
前記生成された実行命令と転送命令とを結合させた命令情報を、通信ネットワークを介して前記複数のコンピュータにブロードキャストするステップと、
を実行させることを特徴とするプログラム。
To the computer that supervises the database system that performs parallel and distributed processing,
Obtaining and storing arrangement information indicating which data is stored in which of the plurality of computers constituting the database system;
Generating an execution instruction including information indicating contents of arithmetic processing to be executed by each of the plurality of computers, and information specifying data used in the arithmetic processing;
Generating, based on the arrangement information, a transfer instruction including information indicating a computer that should transmit data to another computer and information indicating a computer that should receive data from the other computer;
Broadcasting instruction information obtained by combining the generated execution instruction and transfer instruction to the plurality of computers via a communication network;
A program characterized by having executed.
並列分散処理をおこなうデータベースシステムを構成するコンピュータに、
演算処理に用いられるデータを蓄積するステップと、
前記データベースシステムを制御するコンピュータから配信される実行命令と転送命令とを通信ネットワークを介して受信するステップと、
受信した転送命令に基づき、前記通信ネットワークを介して他のコンピュータとの間でデータの送受信をおこなうステップと、
受信した実行命令に基づいて、蓄積しているデータおよび他のコンピュータから受信したデータを用いて演算処理を実行するステップと、
を実行させることを特徴とするプログラム。
In the computer that constitutes the database system that performs parallel and distributed processing,
Storing data used for arithmetic processing;
Receiving an execution instruction and a transfer instruction distributed from a computer controlling the database system via a communication network;
Transmitting and receiving data to and from another computer via the communication network based on the received transfer command;
A step of performing arithmetic processing using the stored data and data received from another computer based on the received execution instruction;
A program characterized by having executed.
JP2004124487A 2004-04-20 2004-04-20 Database system and program Expired - Fee Related JP4331045B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004124487A JP4331045B2 (en) 2004-04-20 2004-04-20 Database system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004124487A JP4331045B2 (en) 2004-04-20 2004-04-20 Database system and program

Publications (2)

Publication Number Publication Date
JP2005309684A true JP2005309684A (en) 2005-11-04
JP4331045B2 JP4331045B2 (en) 2009-09-16

Family

ID=35438422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004124487A Expired - Fee Related JP4331045B2 (en) 2004-04-20 2004-04-20 Database system and program

Country Status (1)

Country Link
JP (1) JP4331045B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015072629A (en) * 2013-10-03 2015-04-16 富士通株式会社 Data processing program and data processing method
US9170851B2 (en) 2010-11-22 2015-10-27 International Business Machines Corporation Connection distribution for load balancing in a distributed database
JP2017010569A (en) * 2010-10-22 2017-01-12 株式会社インテック Distributed database system and distributed data processing system
JP2017027325A (en) * 2015-07-22 2017-02-02 株式会社東芝 Database system and program for database system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017010569A (en) * 2010-10-22 2017-01-12 株式会社インテック Distributed database system and distributed data processing system
US9170851B2 (en) 2010-11-22 2015-10-27 International Business Machines Corporation Connection distribution for load balancing in a distributed database
JP2015072629A (en) * 2013-10-03 2015-04-16 富士通株式会社 Data processing program and data processing method
JP2017027325A (en) * 2015-07-22 2017-02-02 株式会社東芝 Database system and program for database system

Also Published As

Publication number Publication date
JP4331045B2 (en) 2009-09-16

Similar Documents

Publication Publication Date Title
CN102567495B (en) Mass information storage system and implementation method
US8713182B2 (en) Selection of a suitable node to host a virtual machine in an environment containing a large number of nodes
JP4277918B2 (en) Data search device, data search method, and data search program
CN102375837A (en) Data acquiring system and method
CN103546572A (en) Cloud storage device and multi-cloud storage networking system and method
US20190228009A1 (en) Information processing system and information processing method
CN103377269A (en) Sensor data positioning method and device
CN103336782A (en) Relational distributed database system
JP6951846B2 (en) Computer system and task allocation method
Mseddi et al. On optimizing replica migration in distributed cloud storage systems
JP6303300B2 (en) Control request method, information processing apparatus, system, and program
JP4331045B2 (en) Database system and program
CN113127526A (en) Distributed data storage and retrieval system based on Kubernetes
JP2018147301A5 (en)
KR100907533B1 (en) Distributed Distributed Processing Systems and Methods
CN107193654B (en) Resource operation method and device of distributed system and distributed system
CN112235356B (en) Distributed PB-level CFD simulation data management system based on cluster
US11381642B2 (en) Distributed storage system suitable for sensor data
CN109416683B (en) Data processing apparatus, database system, and communication operation method of database system
CN104537081A (en) File management system and method
CN112765443B (en) Internet of things data query method and device based on historical operation data
TWI673610B (en) Remote working system and working method thereof
JP2003195938A (en) Distributed control system, and its control device and program
JP2004192103A (en) Information distribution system through network
JP2005234878A (en) Resource retrieval system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090407

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090617

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130626

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees