JP2022014633A - Distributed processing system, distributed processing device, database management device, and method - Google Patents

Distributed processing system, distributed processing device, database management device, and method Download PDF

Info

Publication number
JP2022014633A
JP2022014633A JP2020117065A JP2020117065A JP2022014633A JP 2022014633 A JP2022014633 A JP 2022014633A JP 2020117065 A JP2020117065 A JP 2020117065A JP 2020117065 A JP2020117065 A JP 2020117065A JP 2022014633 A JP2022014633 A JP 2022014633A
Authority
JP
Japan
Prior art keywords
management device
query
records
distributed processing
database
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
JP2020117065A
Other languages
Japanese (ja)
Other versions
JP7434088B2 (en
Inventor
繁雄 廣瀬
Shigeo Hirose
基孝 金松
Mototaka Kanematsu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2020117065A priority Critical patent/JP7434088B2/en
Publication of JP2022014633A publication Critical patent/JP2022014633A/en
Application granted granted Critical
Publication of JP7434088B2 publication Critical patent/JP7434088B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To provide a distributed processing system, a distributed processing device, a database management device, and a method capable of accelerating processing on a query.SOLUTION: According to an embodiment, a distributed processing device calculates first processing time of a first database management device and second processing time of a second database management device for a first query for acquiring first and second records on the basis of management device information and creates second and third queries on the basis of the first and second processing times. First query execution means of the first database management device acquires a part of a plurality of second records included in a second table and executes processing on the second query when the first processing time is less than the second processing time. Second query execution means of the second database management device acquires a part of a plurality of first records included in a first table and executes processing on the third query when the second processing time is less than the first processing time.SELECTED DRAWING: Figure 16

Description

本発明の実施形態は、分散処理システム、分散処理装置、データベース管理装置及び方法に関する。 Embodiments of the present invention relate to distributed processing systems, distributed processing devices, database management devices and methods.

近年では、分散された複数のデータベースから一括してデータを取得することが可能な分散処理システム(データベース管理システム)が知られている。 In recent years, a distributed processing system (database management system) capable of collectively acquiring data from a plurality of distributed databases has been known.

このような分散処理システムにおいて例えば各データベースに格納されている複数のデータ(テーブル)の結合演算結果を取得するためのクエリがクライアント端末から受信された場合、当該分散処理システムは、当該クエリに対する処理の結果(結合演算結果)を当該クライアント端末(を使用するユーザ)に提供することが可能である。 In such a distributed processing system, for example, when a query for acquiring a join operation result of a plurality of data (tables) stored in each database is received from a client terminal, the distributed processing system processes the query. It is possible to provide the result (combination operation result) of the above to the client terminal (user who uses).

ところで、分散処理システムは例えば分散処理装置及び複数のデータベースの各々を管理する複数のデータベース管理装置(以下、DB管理装置と表記)を備えており、当該分散処理装置(親ノード)は、上記したクエリに対する処理を当該DB管理装置(子ノード)の各々にプッシュダウン(分散)することができる。このような分散処理システムによれば、例えば分散処理装置の負荷を軽減することが可能となる。 By the way, the distributed processing system includes, for example, a distributed processing device and a plurality of database management devices (hereinafter referred to as DB management devices) that manage each of the plurality of databases, and the distributed processing device (parent node) is described above. The processing for the query can be pushed down (distributed) to each of the DB management devices (child nodes). According to such a distributed processing system, it is possible to reduce the load on the distributed processing apparatus, for example.

しかしながら、この場合における各DB管理装置の処理量は当該DB管理装置において管理されているデータベースに格納されているデータ量に依存する。このため、例えば他のDB管理装置において管理されているデータベースと比べてデータ量の多いデータベースを管理するDB管理装置が存在する場合には、当該DB管理装置の処理に時間がかかるため、分散処理システム全体の動作(つまり、クエリに対する処理)が低速となる場合がある。 However, the processing amount of each DB management device in this case depends on the amount of data stored in the database managed by the DB management device. Therefore, for example, if there is a DB management device that manages a database having a larger amount of data than a database managed by another DB management device, it takes time to process the DB management device, so that distributed processing is performed. The operation of the entire system (that is, processing for queries) may be slow.

特許第6253725号公報Japanese Patent No. 6253725

そこで、本発明が解決しようとする課題は、クエリに対する処理を高速化することが可能な分散処理システム、分散処理装置、データベース管理装置及び方法を提供することにある。 Therefore, an object to be solved by the present invention is to provide a distributed processing system, a distributed processing device, a database management device, and a method capable of speeding up processing for a query.

実施形態によれば、分散処理装置と、当該分散処理装置と通信可能に接続される第1データベースを管理する第1データベース管理装置及び前記第1データベースとは異なる第2データベースを管理する第2データベース管理装置とを備える分散処理システムが提供される。前記第1データベースは、前記第1データベース管理装置において収集された複数の第1レコードを有する第1テーブルを格納する。前記第2データベースは、前記第2データベース管理装置において収集された複数の第2レコードを有する第2テーブルを格納する。前記第1及び第2レコードは、同一のフィールドから構成される。前記分散処理装置は、格納手段と、受信手段と、計算手段と、作成手段とを含む。前記格納手段は、前記第1及び第2データベース管理装置の各々の演算性能、前記第1テーブルが有する第1レコードの数及び前記第2テーブルが有する第2レコードの数、または前記分散処理装置と前記第1及び第2データベース管理装置との間の第1通信性能を含む管理装置情報を格納する。前記受信手段は、前記第1及び第2テーブルが有する第1及び第2レコードを取得するための第1クエリを受信する。前記計算手段は、前記管理装置情報に基づいて、前記受信された第1クエリに対する前記第1データベース管理装置の第1処理時間及び前記第2データベース管理装置の第2処理時間を計算する。前記作成手段は、前記計算された第1及び第2処理時間に基づいて第2及び第3クエリを作成する。前記第1データベース管理装置は、前記作成された第2クエリに対する処理を実行する第1クエリ実行手段を含む。前記第2データベース管理装置は、前記作成された第3クエリに対する処理を実行する第2クエリ実行手段を含む。前記第1クエリ実行手段は、前記計算された第1処理時間が前記計算された第2処理時間未満である場合、前記第2テーブルが有する複数の第2レコードの一部を前記第2データベースから取得して前記第2クエリに対する処理を実行する。前記第2クエリ実行手段は、前記計算された第2処理時間が前記計算された第1処理時間未満である場合、前記第1テーブルが有する複数の第1レコードの一部を前記第1データベースから取得して前記第3クエリに対する処理を実行する。 According to the embodiment, the distributed processing device, the first database management device that manages the first database communicably connected to the distributed processing device, and the second database that manages the second database different from the first database. A distributed processing system including a management device is provided. The first database stores a first table having a plurality of first records collected in the first database management device. The second database stores a second table having a plurality of second records collected in the second database management device. The first and second records are composed of the same field. The distributed processing apparatus includes a storage means, a receiving means, a calculation means, and a creating means. The storage means includes the arithmetic performance of each of the first and second database management devices, the number of first records of the first table and the number of second records of the second table, or the distributed processing device. Stores management device information including first communication performance between the first and second database management devices. The receiving means receives the first query for acquiring the first and second records of the first and second tables. The calculation means calculates the first processing time of the first database management device and the second processing time of the second database management device for the received first query based on the management device information. The creating means creates the second and third queries based on the calculated first and second processing times. The first database management device includes a first query execution means for executing a process for the created second query. The second database management device includes a second query execution means for executing a process for the created third query. When the calculated first processing time is less than the calculated second processing time, the first query executing means may obtain a part of a plurality of second records of the second table from the second database. Acquire and execute the process for the second query. When the calculated second processing time is less than the calculated first processing time, the second query executing means may use a part of the plurality of first records of the first table from the first database. Acquire and execute the process for the third query.

実施形態に係る分散処理システムのネットワーク構成の一例を示す図。The figure which shows an example of the network configuration of the distributed processing system which concerns on embodiment. 分散処理装置のハードウェア構成の一例を示す図。The figure which shows an example of the hardware composition of the distributed processing apparatus. 本実施形態の比較例における第1DB管理装置のテーブルの一例を示す図。The figure which shows an example of the table of the 1st DB management apparatus in the comparative example of this embodiment. 本実施形態の比較例における第2DB管理装置のテーブルの一例を示す図。The figure which shows an example of the table of the 2nd DB management apparatus in the comparative example of this embodiment. 本実施形態の比較例における第3DB管理装置のテーブルの一例を示す図。The figure which shows an example of the table of the 3rd DB management apparatus in the comparative example of this embodiment. 本実施形態の比較例における分散処理装置において実行される処理の概要を説明するための図。The figure for demonstrating the outline of the processing executed in the distributed processing apparatus in the comparative example of this embodiment. 本実施形態の比較例における第1DB管理装置において実行される処理の概要を説明するための図。The figure for demonstrating the outline of the process executed in the 1st DB management apparatus in the comparative example of this embodiment. 本実施形態の比較例における第2DB管理装置において実行される処理の概要を説明するための図。The figure for demonstrating the outline of the process executed in the 2nd DB management apparatus in the comparative example of this embodiment. 本実施形態の比較例における第3DB管理装置において実行される処理の概要を説明するための図。The figure for demonstrating the outline of the process executed in the 3rd DB management apparatus in the comparative example of this embodiment. 本実施形態に係る分散処理システムの動作の概要を示す図。The figure which shows the outline of the operation of the distributed processing system which concerns on this embodiment. 分散処理装置の機能構成の一例を示す図。The figure which shows an example of the functional configuration of a distributed processing apparatus. 第1DB管理装置の機能構成の一例を示す図。The figure which shows an example of the functional structure of the 1st DB management apparatus. 演算性能情報のデータ構造の一例を示す図。The figure which shows an example of the data structure of the arithmetic performance information. レコード数情報のデータ構造の一例を示す図。The figure which shows an example of the data structure of the record number information. 通信性能情報のデータ構造の一例を示す図。The figure which shows an example of the data structure of communication performance information. 分散処理システムの処理手順の一例を示すシーケンスチャート。A sequence chart showing an example of the processing procedure of a distributed processing system. 第1DB管理装置の処理時間について具体的に説明するための図。The figure for demonstrating concretely about the processing time of the 1st DB management apparatus. 第2DB管理装置の処理時間について具体的に説明するための図。The figure for demonstrating concretely about the processing time of the 2nd DB management apparatus. 本実施形態に係る分散処理装置とロードバランサとの差異を説明するための図。The figure for demonstrating the difference between the distributed processing apparatus and a load balancer which concerns on this embodiment. 通信性能情報に基づいて決定されるレコードを取得する経路について説明するための図。The figure for demonstrating the route to acquire the record determined based on the communication performance information. 第1DB管理装置への接続情報を用いてレコードを取得する構成の一例を説明するための図。The figure for demonstrating an example of the configuration which acquires a record using the connection information to the 1st DB management apparatus. 第1DB管理装置への接続情報を用いてレコードを取得する構成の他の例を説明するための図。The figure for demonstrating another example of the configuration which acquires a record using the connection information to the 1st DB management apparatus. 第4DB管理装置に処理を分散する構成を説明するための図。The figure for demonstrating the structure which distributes the processing to the 4th DB management apparatus.

以下、図面を参照して、実施形態について説明する。
図1は、本実施形態に係る分散処理システムのネットワーク構成の一例を示す。図1に示すように、分散処理システム1は、クライアント端末10、分散処理装置20及び第1~第3データベース管理装置(以下、DB管理装置と表記)31~33を備える。
Hereinafter, embodiments will be described with reference to the drawings.
FIG. 1 shows an example of a network configuration of a distributed processing system according to the present embodiment. As shown in FIG. 1, the distributed processing system 1 includes a client terminal 10, a distributed processing device 20, and first to third database management devices (hereinafter referred to as DB management devices) 31 to 33.

本実施形態において、クライアント端末10は、分散処理装置20と互いに通信可能に接続されている。また、分散処理装置20は、第1~第3DB管理装置31~33の各々と互いに通信可能に接続されている。 In the present embodiment, the client terminal 10 is connected to the distributed processing device 20 so as to be able to communicate with each other. Further, the distributed processing device 20 is communicably connected to each of the first to third DB management devices 31 to 33.

クライアント端末10は、ユーザによって使用される端末装置である。クライアント端末10においては、ユーザが後述するデータベースに格納されているデータを取得して閲覧するためのアプリケーションプログラム等が動作する。 The client terminal 10 is a terminal device used by the user. The client terminal 10 operates an application program or the like for the user to acquire and browse the data stored in the database described later.

分散処理装置20は、分散処理システム1において第1~第3DB管理装置31~33に対する親ノードとして動作するサーバ装置(DBMS)である。分散処理装置20は、分散処理システム1において実行すべき処理を第1~第3DB管理装置31~33に分散し、当該処理を第1~第3DB管理装置31~33に実行させる機能を有する。 The distributed processing device 20 is a server device (DBMS) that operates as a parent node for the first to third DB management devices 31 to 33 in the distributed processing system 1. The distributed processing device 20 has a function of distributing the processes to be executed in the distributed processing system 1 to the first to third DB management devices 31 to 33 and causing the first to third DB management devices 31 to 33 to execute the processes.

第1~第3DB管理装置31~33は、分散処理システム1において分散処理装置20に対する子ノードとして動作し、各種データを格納するデータベースを管理するサーバ装置(DBMS)である。 The first to third DB management devices 31 to 33 are server devices (DBMS) that operate as child nodes for the distributed processing device 20 in the distributed processing system 1 and manage a database for storing various data.

なお、本実施形態において、分散処理装置20及び第1~第3DB管理装置31~33は、同一のDBMSであるものとする。 In this embodiment, the distributed processing device 20 and the first to third DB management devices 31 to 33 are assumed to be the same DBMS.

また、図1においては分散処理システム1がクライアント端末10、分散処理装置20及び第1~第3DB管理装置31~33を備えるものとして説明したが、分散処理システム1は、分散処理装置20及び第1~第3DB管理装置31~33を備える(つまり、クライアント端末10は分散処理システム1の外部に配置される)構成であってもよい。 Further, in FIG. 1, the distributed processing system 1 has been described as including the client terminal 10, the distributed processing device 20, and the first to third DB management devices 31 to 33, but the distributed processing system 1 includes the distributed processing device 20 and the first. The configuration may include the first to third DB management devices 31 to 33 (that is, the client terminal 10 is arranged outside the distributed processing system 1).

更に、図1においては、第1~第3DB管理装置31~33が示されているが、分散処理システム1には複数のDB管理装置が備えられていればよい。 Further, although the first to third DB management devices 31 to 33 are shown in FIG. 1, the distributed processing system 1 may be provided with a plurality of DB management devices.

図2は、図1に示す分散処理装置20のハードウェア構成の一例を示す。図2に示すように、分散処理装置20は、CPU21、不揮発性メモリ22、主メモリ23及び通信デバイス24等を備える。 FIG. 2 shows an example of the hardware configuration of the distributed processing apparatus 20 shown in FIG. As shown in FIG. 2, the distributed processing device 20 includes a CPU 21, a non-volatile memory 22, a main memory 23, a communication device 24, and the like.

CPU21は、分散処理装置20内の各コンポーネントの動作を制御するプロセッサである。CPU21は、ストレージデバイスである不揮発性メモリ22から主メモリ23にロードされる様々なプログラムを実行する。このプログラムには、オペレーティングシステム(OS)及び分散処理装置20が分散処理システム1において動作するためのプログラム等が含まれる。 The CPU 21 is a processor that controls the operation of each component in the distributed processing device 20. The CPU 21 executes various programs loaded from the non-volatile memory 22 which is a storage device into the main memory 23. This program includes a program for operating the operating system (OS) and the distributed processing apparatus 20 in the distributed processing system 1.

通信デバイス24は、クライアント端末10及び第1~第3DB管理装置31~33等と有線または無線による通信を実行するように構成されたデバイスである。 The communication device 24 is a device configured to execute wired or wireless communication with the client terminal 10, the first to third DB management devices 31 to 33, and the like.

図2においては、CPU21、不揮発性メモリ22、主メモリ23及び通信デバイス24のみが示されているが、分散処理装置20は、例えばHDD(Hard Disk Drive)及びSSD(Solid State Drive)のような他の記憶装置等を更に備えていてもよいし、他のデバイスを更に備えていてもよい。 Although only the CPU 21, the non-volatile memory 22, the main memory 23, and the communication device 24 are shown in FIG. 2, the distributed processing device 20 is, for example, an HDD (Hard Disk Drive) and an SSD (Solid State Drive). Other storage devices and the like may be further provided, and other devices may be further provided.

ここでは分散処理装置20のハードウェア構成について説明したが、第1~第3DB管理装置31~33も同様の構成を有するものとする。 Although the hardware configuration of the distributed processing device 20 has been described here, it is assumed that the first to third DB management devices 31 to 33 also have the same configuration.

ここで、本実施形態に係る分散処理システム1は、第1~第3DB管理装置31~33の各々において管理されているデータベース(分散されたデータベース)からデータを一括して取得するデータベース管理システム(統合データベース)として動作する。 Here, the distributed processing system 1 according to the present embodiment is a database management system (distributed database) that collectively acquires data from the databases (distributed databases) managed by each of the first to third DB management devices 31 to 33. Operates as an integrated database).

具体的には、クライアント端末10を使用するユーザは、当該クライアント端末10を操作することによってデータベースからデータを取得するためのクエリを指定(入力)することができる。ユーザによって指定されるクエリは、例えばSQL(Structured Query Language)で記述された命令文(SQL文)等である。 Specifically, the user who uses the client terminal 10 can specify (input) a query for acquiring data from the database by operating the client terminal 10. The query specified by the user is, for example, an instruction statement (SQL statement) described in SQL (Structured Query Language).

このようなクエリがクライアント端末10から分散処理装置20に送信された場合、分散処理システム1(分散処理装置20及び第1~第3DB管理装置31~33)においては、当該クエリに対する処理が実行され、当該処理の結果(データベースから取得されたデータ)がクライアント端末10に返される。 When such a query is transmitted from the client terminal 10 to the distributed processing device 20, the distributed processing system 1 (distributed processing device 20 and the first to third DB management devices 31 to 33) executes processing for the query. , The result of the process (data acquired from the database) is returned to the client terminal 10.

なお、例えば第1~第3DB管理装置31~33において管理されているデータベースにそれぞれ例えば2種類のデータが格納されている場合には、クエリに対する処理として結合演算(2種類のデータを結合する処理)を実行し、当該結合演算結果をクライアント端末10に返すことができる。 For example, when two types of data are stored in the databases managed by the first to third DB management devices 31 to 33, for example, a join operation (a process of joining two types of data) is performed as a process for a query. ), And the result of the join operation can be returned to the client terminal 10.

例えば第1~第3DB管理装置31~33の各々がそれぞれ異なる店舗(例えば、小売店または量販店等)に設けられており、当該第1~第3DB管理装置31~33において管理されているデータベースが当該第1~第3DB管理装置31~33(が設けられている店舗)おいて独立して収集された当該店舗の売り上げに関するデータ(以下、売上データと表記)及び当該店舗で販売されている商品のデータ(以下、商品データと表記)を格納しているものとする。 For example, a database in which each of the first to third DB management devices 31 to 33 is provided in a different store (for example, a retail store or a mass retailer) and is managed by the first to third DB management devices 31 to 33. Is independently collected in the 1st to 3rd DB management devices 31 to 33 (stores in which the stores are provided) and is sold at the store and data related to the sales of the store (hereinafter referred to as sales data). It is assumed that the product data (hereinafter referred to as product data) is stored.

このような場合において売上データ及び商品データの結合演算結果を取得するためのクエリがユーザによって指定された場合には、第1~第3DB管理装置31~33において管理されているデータベースに格納されている売上データ及び商品データに対して結合演算を実行した結果がクライアント端末10に返される。 In such a case, when the query for acquiring the combined operation result of the sales data and the product data is specified by the user, it is stored in the database managed by the first to third DB management devices 31 to 33. The result of executing the join operation on the sales data and the product data is returned to the client terminal 10.

なお、上記した売上データ及び商品データは、テーブル形式のデータであり、複数のレコードを有する。この場合、分散処理装置20は、第1~第3DB管理装置31~33において管理されているデータベースに格納されている売上データ及び商品データを外部テーブルとして扱うとともに、当該売上データ及び商品データをそれぞれ仮想テーブル化して、クエリに対する処理を実行するものとする。なお、外部テーブルとは、異なるデータソースのテーブルを自身のデータベースのテーブルであるかのように振る舞う機能である。また、仮想テーブル化とは、外部テーブル(の機能)を利用して、複数のデータソースのテーブルを1つのテーブルに仮想化することによって、複数のデータソースからの一括したデータの取得を実現する仕組みである。 The sales data and product data described above are table format data and have a plurality of records. In this case, the distributed processing device 20 handles the sales data and the product data stored in the databases managed by the first to third DB management devices 31 to 33 as an external table, and handles the sales data and the product data, respectively. It is assumed that a virtual table is created and the processing for the query is executed. The external table is a function that behaves as if a table of a different data source is a table of its own database. In addition, virtual table creation realizes the acquisition of batch data from multiple data sources by virtualizing the tables of multiple data sources into one table using (the function of) an external table. It is a mechanism.

ここで、本実施形態に係る分散処理システム1の詳細を説明する前に、本実施形態の比較例に係る分散処理システムにおいて実行されるクエリに対する処理について具体的に説明する。 Here, before explaining the details of the distributed processing system 1 according to the present embodiment, the processing for the query executed in the distributed processing system according to the comparative example of the present embodiment will be specifically described.

ここでは、本実施形態の比較例に係る分散処理システムが分散処理装置20´及び第1~第3DB管理装置31´~33´を備え、当該第1~第3DB管理装置31´~33´において管理されるデータベースの各々には、上記した売上データに相当するテーブルt1及び商品データに相当するテーブルt2が格納されているものとする。 Here, the distributed processing system according to the comparative example of the present embodiment includes the distributed processing devices 20'and the first to third DB management devices 31'to 33', and the first to third DB management devices 31'to 33' It is assumed that each of the managed databases stores a table t1 corresponding to the above-mentioned sales data and a table t2 corresponding to the product data.

なお、本実施形態においては、テーブルt1が売上データであり、テーブルt2が商品データであるものとして説明するが、当該テーブルt1及びt2は他のデータであってもよい。具体的には、テーブルt1及びt2は、例えば発電所における発電データ及び当該発電所に設置される各種機器の動作ログ等であってもよい。 In the present embodiment, it is assumed that the table t1 is the sales data and the table t2 is the product data, but the tables t1 and t2 may be other data. Specifically, the tables t1 and t2 may be, for example, power generation data at a power plant and operation logs of various devices installed at the power plant.

以下の説明においては、第1~第3DB管理装置31´~33´において管理されるデータベースの各々に格納されているテーブルt1及びt2を、便宜的に、第1~第3DB管理装置31´~33´のテーブルt1及びt2と称する。 In the following description, the tables t1 and t2 stored in each of the databases managed by the first to third DB management devices 31'to 33' are, for convenience, the first to third DB management devices 31'to. It is referred to as tables t1 and t2 of 33'.

まず、図3~図5を参照して、第1~第3DB管理装置31´~33´のテーブルt1及びt2について説明する。図3は、第1DB管理装置31´のテーブルt1及びt2(のデータ構造)の一例を示している。図4は、第2DB管理装置32´のテーブルt1及びt2(のデータ構造)の一例を示している。図5は、第3DB管理装置33´のテーブルt1及びt2(のデータ構造)の一例を示している。 First, the tables t1 and t2 of the first to third DB management devices 31'to 33' will be described with reference to FIGS. 3 to 5. FIG. 3 shows an example of tables t1 and t2 (data structure) of the first DB management device 31'. FIG. 4 shows an example of the tables t1 and t2 (data structure) of the second DB management device 32'. FIG. 5 shows an example of tables t1 and t2 (data structure) of the third DB management device 33'.

図3~図5に示すように、第1~第3DB管理装置31´~33´のテーブルt1の各々が有するレコードは、それぞれ同一のフィールド(id、time及びvalue)から構成されている。上記したようにテーブルt1が売上データに相当する場合、idは、店舗において販売された商品を識別するための識別情報に相当する。timeは、idによって識別される商品が販売された時間に相当する。valueは、idによって識別される商品の金額(つまり、売り上げ)や当該商品を購入した購入者に関する情報(例えば、年齢及び性別等)等の付加情報に相当する。 As shown in FIGS. 3 to 5, the records of each of the tables t1 of the first to third DB management devices 31'to 33' are composed of the same fields (id, time and value). When the table t1 corresponds to the sales data as described above, the id corresponds to the identification information for identifying the product sold in the store. time corresponds to the time when the goods identified by id were sold. The value corresponds to additional information such as the amount of goods identified by id (that is, sales) and information about the purchaser who purchased the goods (eg, age, gender, etc.).

同様に、第1~第3DB管理装置31´~33´のテーブルt2の各々が有するレコードは、それぞれ同一のフィールド(id及びname)から構成されている。上記したようにテーブルt2が商品データに相当する場合、idは、店舗において販売されている商品を識別するための識別情報に相当する。nameは、idによって識別される商品の名称(つまり、商品名)に相当する。 Similarly, the records of each of the tables t2 of the first to third DB management devices 31'to 33' are composed of the same fields (id and name). When the table t2 corresponds to the product data as described above, the id corresponds to the identification information for identifying the product sold in the store. name corresponds to the name of the product (that is, the product name) identified by id.

ここで、上記したテーブルt1及びt2の結合演算結果を取得するためのクエリがユーザによって指定された場合を想定する。この場合におけるクエリは、例えば「SELECT*FROM t1,t2 WHERE t1.id=t2.id」である。このクエリは、テーブルt1及びt2を、当該テーブルt1及びt2が有するレコードを構成するid(のフィールド)に基づいて結合した結果を返すことを意味している。なお、クエリ「SELECT*FROM t1,t2 WHERE t1.id=t2.id」中の「t1.id=t2.id」は、テーブルt1及びt2をidに基づいて結合するという条件(式)に相当する。以下の説明においては、この「t1.id=t2.id」をクエリの条件式と称する。 Here, it is assumed that the query for acquiring the join operation result of the tables t1 and t2 described above is specified by the user. The query in this case is, for example, "SELECT * FROM t1, t2 WHERE t1.id = t2.id". This query is meant to return the result of joining tables t1 and t2 based on the id (fields) that make up the records that the tables t1 and t2 have. In addition, "t1.id = t2.id" in the query "SELECT * FROM t1, t2 WHERE t1.id = t2.id" corresponds to the condition (expression) that the tables t1 and t2 are combined based on id. do. In the following description, this "t1.id = t2.id" is referred to as a conditional expression of the query.

この場合、図6に示すように、分散処理装置20´は、第1~第3DB管理装置31´~33´のテーブルt1の各々を当該第1~第3DB管理装置31´~33´から収集し、当該収集されたテーブルt1を組み合わせたテーブルT1を作成する。 In this case, as shown in FIG. 6, the distributed processing device 20'collects each of the tables t1 of the first to third DB management devices 31'to 33'from the first to third DB management devices 31'to 33'. Then, a table T1 is created by combining the collected tables t1.

同様に、分散処理装置20´は、第1~第3DB管理装置31´~33´のテーブルt2の各々を当該第1~第3DB管理装置31´~33´から収集し、当該収集されたテーブルt2を組み合わせたテーブルT2を作成する。 Similarly, the distributed processing device 20'collects each of the tables t2 of the first to third DB management devices 31'to 33' from the first to third DB management devices 31'to 33', and the collected tables. Create a table T2 that combines t2.

次に、分散処理装置20´は、テーブルT1及びT2を上記したクエリの条件式「t1.id=t2.id」に基づいて結合する処理(結合演算)を実行する。これにより、分散処理装置20は、結合演算結果としてテーブルT12を取得する。このテーブルT12は、クエリに対する応答として分散処理装置20´からクライアント端末10に対して返される。 Next, the distributed processing apparatus 20'executes a process (joining operation) of joining the tables T1 and T2 based on the conditional expression "t1.id = t2.id" of the above-mentioned query. As a result, the distributed processing apparatus 20 acquires the table T12 as the result of the join operation. This table T12 is returned from the distributed processing device 20'to the client terminal 10 as a response to the query.

上記した図6においては結合演算を分散処理装置20´(親ノード)で実行する場合を想定しているが、この場合、分散処理装置20´は、第1~第3DB管理装置31´~33´のテーブルt1を組み合わせたテーブルT1が有する複数のレコードの各々と、第1~第3DB管理装置31´~33´のテーブルt2を組み合わせたテーブルT2が有する複数のレコードの各々とが上記したクエリの条件式に基づいて結合可能であるか否かを判定し、結合可能であると判定された場合に当該レコード同士を結合するという処理を実行する必要がある。この場合における分散処理装置20´の計算量は最大でN×M(NはテーブルT1が有するレコードの数、MはテーブルT2が有するレコードの数)の直積となり、テーブルT1が有するレコードの数及びテーブルT2が有するレコードの数によっては当該分散処理装置20´の負担が大きくなる。このため、クエリに対する処理に多くの時間が必要となる場合がある。 In FIG. 6 described above, it is assumed that the join operation is executed by the distributed processing device 20'(parent node). In this case, the distributed processing device 20'is the first to third DB management devices 31'to 33'. Each of the plurality of records possessed by the table T1 in which the table t1 of ′ is combined and each of the plurality of records possessed by the table T2 in which the tables t2 of the first to third DB management devices 31 ′ to 33 ′ are combined are the above-mentioned queries. It is necessary to determine whether or not the records can be combined based on the conditional expression of, and to execute the process of combining the records when it is determined that the records can be combined. In this case, the calculation amount of the distribution processing device 20'is a direct product of N × M (N is the number of records in the table T1 and M is the number of records in the table T2), and the number of records in the table T1 and the number of records in the table T1. Depending on the number of records in the table T2, the load on the distributed processing device 20'will increase. Therefore, it may take a lot of time to process the query.

このため、本実施形態の比較例に係る分散処理システムにおいては、分散処理装置20´(親ノード)の処理の一部を第1~第3DB管理装置31´~33´(子ノード)にプッシュダウン(分散)し、当該分散処理装置20´の負荷を軽減することが行われている。 Therefore, in the distributed processing system according to the comparative example of the present embodiment, a part of the processing of the distributed processing device 20'(parent node) is pushed to the first to third DB management devices 31'to 33'(child node). It is down (distributed) to reduce the load on the distributed processing apparatus 20'.

以下、本実施形態の比較例において実行されるクエリに対する処理(結合演算)を第1~第3DB管理装置31´~33´に分散する場合について説明する。 Hereinafter, a case where the processing (joining operation) for the query executed in the comparative example of the present embodiment is distributed to the first to third DB management devices 31'to 33' will be described.

なお、第1~第3DB管理装置31´~33´のテーブルt1及びt2は上記した図3~図5において説明した通りであり、ユーザによってクエリ「SELECT*FROM t1,t2 WHERE t1.id=t2.id」が指定されたものとする。 The tables t1 and t2 of the first to third DB management devices 31'to 33' are as described in FIGS. 3 to 5 described above, and the query "SELECT * FROM t1, t2 WHERE t1.id = t2" by the user. It is assumed that ".id" is specified.

この場合、分散処理装置20´は、第1~第3DB管理装置31´~33´のテーブルt1及びt2のうちの一方(ここでは、テーブルt2)を当該第1~第3DB管理装置31´~33´から収集し、テーブルT2を作成する。このように作成されたテーブルT2は、第1~第3DB管理装置31´~33´に配布される。ユーザによって指定されたクエリに対する処理(結合演算)は、このように分散処理装置20´から配布されたテーブルT2を用いて実行される。これによれば、第1~第3DB管理装置31´~33´の各々においてテーブルt1が有するレコードを構成するidと同一のidから構成されるレコードをテーブルt2が有していない場合であっても、当該テーブルt1が有するレコードを構成するidと同一のidから構成されるレコードをテーブルT2が有していれば、当該レコードを適切に結合することができる。 In this case, the distributed processing device 20'uses one of the tables t1 and t2 of the first to third DB management devices 31'to 33' (here, the table t2) from the first to third DB management devices 31'to. Collect from 33'and create table T2. The tables T2 created in this way are distributed to the first to third DB management devices 31'to 33'. The process (join operation) for the query specified by the user is executed using the table T2 distributed from the distributed processing device 20'in this way. According to this, in each of the first to third DB management devices 31'to 33', the table t2 does not have a record composed of the same id as the id constituting the record possessed by the table t1. Also, if the table T2 has a record composed of the same id as the id constituting the record possessed by the table t1, the records can be appropriately combined.

次に、第1~第3DB管理装置31´~33´において実行される処理について説明する。 Next, the processes executed by the first to third DB management devices 31'to 33' will be described.

まず、図7は、第1DB管理装置31´において実行される処理の概要を説明するための図である。図7に示すように、第1DB管理装置31´は、当該第1DB管理装置31´のテーブルt1及び分散処理装置20´から配布されたテーブルT2に対して、上記したクエリの条件式「t1.id=t2.id」に基づく結合演算を実行する。これによれば、第1DB管理装置31´は、結合演算結果として図7に示すテーブルt12を取得する。 First, FIG. 7 is a diagram for explaining an outline of processing executed in the first DB management device 31'. As shown in FIG. 7, the first DB management device 31'refers to the table t1 of the first DB management device 31'and the table T2 distributed from the distributed processing device 20', and the conditional expression "t1. The join operation based on "id = t2.id" is executed. According to this, the first DB management device 31'acquires the table t12 shown in FIG. 7 as the result of the join operation.

また、図8は、第2DB管理装置32´において実行される処理の概要を説明するための図である。図8に示すように、第2DB管理装置32´は、当該第2DB管理装置32´のテーブルt1及び分散処理装置20´から配布されたテーブルT2に対して、上記したクエリの条件式「t1.id=t2.id」に基づく結合演算を実行する。これによれば、第2DB管理装置32´は、結合演算結果として図8に示すテーブルt12を取得する。 Further, FIG. 8 is a diagram for explaining an outline of the processing executed by the second DB management device 32'. As shown in FIG. 8, the second DB management device 32'refers to the table t1 of the second DB management device 32'and the table T2 distributed from the distributed processing device 20', and the conditional expression "t1. The join operation based on "id = t2.id" is executed. According to this, the second DB management device 32'acquires the table t12 shown in FIG. 8 as the result of the join operation.

更に、図9は、第3DB管理装置33´において実行される処理の概要を説明するための図である。図9に示すように、第3DB管理装置33´は、当該第3DB管理装置33´のテーブルt1及び分散処理装置20´から配布されたテーブルT2に対して、上記したクエリの条件式「t1.id=t2.id」に基づく結合演算を実行する。これによれば、第3DB管理装置33´は、結合演算結果として図9に示すテーブルt12を取得する。 Further, FIG. 9 is a diagram for explaining an outline of the processing executed by the third DB management device 33'. As shown in FIG. 9, the third DB management device 33'refers to the table t1 of the third DB management device 33'and the table T2 distributed from the distributed processing device 20', and the conditional expression "t1. The join operation based on "id = t2.id" is executed. According to this, the third DB management device 33'acquires the table t12 shown in FIG. 9 as the result of the join operation.

上記したように第1~第3DB管理装置31´~33´によって取得されたテーブルt12は、当該第1~第3DB管理装置31´~33´から分散処理装置20´に送信される。分散処理装置20´は、第1~第3DB管理装置31´~33´の各々から送信されたテーブルt12を組み合わせることにより、上記した図6に示すテーブルT12と同一の結合演算結果を取得することができる。 As described above, the table t12 acquired by the first to third DB management devices 31'to 33' is transmitted from the first to third DB management devices 31'to 33'to the distributed processing device 20'. The distributed processing device 20'acquires the same join operation result as the table T12 shown in FIG. 6 above by combining the tables t12 transmitted from each of the first to third DB management devices 31'to 33'. Can be done.

このようにクエリに対する処理(結合演算)を第1~第3DB管理装置31´~33´の各々に分散した場合には、分散処理装置20´の負荷を軽減することができる。 When the processing (join operation) for the query is distributed to each of the first to third DB management devices 31'to 33' in this way, the load on the distributed processing device 20'can be reduced.

しかしながら、第1~第3DB管理装置31´~33´の各々における処理量は、テーブルt1が有するレコードの数×テーブルT2が有するレコードの数の直積であり、当該第1~第3DB管理装置31´~33´の各々のテーブルt1が有するレコードの数に依存する。すなわち、第1~第3DB管理装置31´~33´間でテーブルt1が有するレコードの数(つまり、データサイズ)に偏りがあると、特定のDB管理装置における処理に極端に時間がかかるような事態が生じる可能性がある。この場合には、分散処理装置20´及び他のDB管理装置は、特定のDB管理装置の処理が完了するまで待機しなければならず、分散処理システム全体としてクエリに対する処理を高速に実行することができない。 However, the processing amount in each of the first to third DB management devices 31'to 33'is a direct product of the number of records in the table t1 x the number of records in the table T2, and the first to third DB management devices 31. It depends on the number of records in each table t1 of ′ to 33 ′. That is, if the number of records (that is, the data size) of the table t1 is biased between the first to third DB management devices 31'to 33', the processing in a specific DB management device takes an extremely long time. Things can happen. In this case, the distributed processing device 20'and other DB management devices must wait until the processing of the specific DB management device is completed, and the distributed processing system as a whole executes the processing for the query at high speed. Can't.

そこで、本実施形態においては、上記したようにクエリに対する処理を第1~第3DB管理装置31~33に分散する場合に、処理量が多いDB管理装置の処理の一部を処理量が少ないDB管理装置に実行させることにより、分散処理システム1全体としてクエリに対する処理を高速化する。 Therefore, in the present embodiment, when the processing for the query is distributed to the first to third DB management devices 31 to 33 as described above, a part of the processing of the DB management device having a large processing amount is partially processed by the DB having a small processing amount. By causing the management device to execute, the processing for the query is speeded up as the entire distributed processing system 1.

図10は、本実施形態に係る分散処理システム1の動作の概要を示す。図10においては、第1DB管理装置31のテーブルt1が有するレコードの数が例えば第2DB管理装置32のテーブルt1が有するレコードの数よりも多い場合を想定している。 FIG. 10 shows an outline of the operation of the distributed processing system 1 according to the present embodiment. In FIG. 10, it is assumed that the number of records in the table t1 of the first DB management device 31 is larger than the number of records in the table t1 of the second DB management device 32, for example.

この場合において、第1DB管理装置31が当該第1DB管理装置31のテーブルt1及び上記したテーブルT2に対する結合演算を実行したものとすると、当該第1DB管理装置31の処理量は、第2DB管理装置32の処理量よりも多くなる。 In this case, assuming that the first DB management device 31 has executed the join operation for the table t1 of the first DB management device 31 and the table T2 described above, the processing amount of the first DB management device 31 is the second DB management device 32. It will be more than the processing amount of.

このため、本実施形態においては、第1DB管理装置31のテーブルt1が有するレコードの一部を第2DB管理装置32に転送し、当該レコードの一部については第2DB管理装置32側で処理させる。 Therefore, in the present embodiment, a part of the record held in the table t1 of the first DB management device 31 is transferred to the second DB management device 32, and a part of the record is processed on the second DB management device 32 side.

これによれば、第1DB管理装置31の処理の一部を第2DB管理装置32に分散し、第1DB管理装置31の処理量を低減することができるため、分散処理システム1全体としての処理を高速化することが可能となる。 According to this, a part of the processing of the first DB management device 31 can be distributed to the second DB management device 32, and the processing amount of the first DB management device 31 can be reduced. Therefore, the processing of the distributed processing system 1 as a whole can be performed. It is possible to increase the speed.

なお、図10においては、第1DB管理装置31のテーブルt1が有するレコードを第2DB管理装置32に転送しているが、当該レコードは、第2及び第3DB管理装置32及び33の両方に転送されてもよいし、第3DB管理装置33のみに転送されても構わない。 In FIG. 10, the record held by the table t1 of the first DB management device 31 is transferred to the second DB management device 32, but the record is transferred to both the second and third DB management devices 32 and 33. Alternatively, it may be transferred only to the third DB management device 33.

以下、本実施形態に係る分散処理システム1の構成について詳細に説明する。まず、図11は、分散処理システム1に備えられる分散処理装置20の機能構成の一例を示す。 Hereinafter, the configuration of the distributed processing system 1 according to the present embodiment will be described in detail. First, FIG. 11 shows an example of the functional configuration of the distributed processing apparatus 20 provided in the distributed processing system 1.

図11に示すように、分散処理装置20は、格納部201、情報管理部202、通信部203、クエリ解析部204、クエリ作成部205、クエリ実行部206及び結果集積部207を含む。 As shown in FIG. 11, the distributed processing device 20 includes a storage unit 201, an information management unit 202, a communication unit 203, a query analysis unit 204, a query creation unit 205, a query execution unit 206, and a result accumulation unit 207.

本実施形態において、格納部201は、分散処理装置20に備えられる不揮発性メモリ22または他の記憶装置等によって実現される。 In the present embodiment, the storage unit 201 is realized by a non-volatile memory 22 or another storage device provided in the distributed processing device 20.

また、本実施形態において、情報管理部202、通信部203、クエリ解析部204、クエリ作成部205、クエリ実行部206及び結果集積部207の一部または全ては、分散処理装置20に備えられるCPU21(つまり、分散処理装置20のコンピュータ)に所定のプログラムを実行させること、すなわち、ソフトウェアによって実現されるものとする。この所定のプログラムは、分散処理装置20が分散処理システム1において動作するためのプログラムであり、コンピュータ読み取り可能な記憶媒体に予め格納して頒布されてもよいし、ネットワークを介して分散処理装置20にダウンロードされてもよい。 Further, in the present embodiment, a part or all of the information management unit 202, the communication unit 203, the query analysis unit 204, the query creation unit 205, the query execution unit 206, and the result accumulation unit 207 are the CPU 21 provided in the distributed processing device 20. It is assumed that (that is, the computer of the distributed processing apparatus 20) executes a predetermined program, that is, it is realized by software. This predetermined program is a program for the distributed processing device 20 to operate in the distributed processing system 1, and may be stored in advance in a computer-readable storage medium and distributed, or the distributed processing device 20 may be distributed via a network. May be downloaded to.

ここでは、上記した各部202~207の一部または全てがソフトウェアによって実現されるものとして説明したが、当該各部201~207の一部または全ては、例えばハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせ構成として実現されてもよい。 Here, a part or all of each part 202 to 207 described above has been described as being realized by software, but a part or all of each part 201 to 207 may be realized by hardware, for example, or software. And may be realized as a combination of hardware.

格納部201は、第1~第3DB管理装置31~33の各々に関する情報(以下、管理装置情報と表記)を格納する。管理装置情報には、第1~第3DB管理装置31~33の各々の演算(計算)性能、第1~第3DB管理装置31~33の各々のテーブル(例えば、テーブルt1及びt2)が有するレコードの数、または分散処理装置20と第1~第3DB管理装置31~33の各々との間の通信性能(を示す情報)が含まれる。 The storage unit 201 stores information (hereinafter, referred to as management device information) regarding each of the first to third DB management devices 31 to 33. The management device information includes the calculation performance of each of the first to third DB management devices 31 to 33, and the records of each table of the first to third DB management devices 31 to 33 (for example, tables t1 and t2). , Or the communication performance (information indicating) between the distributed processing device 20 and each of the first to third DB management devices 31 to 33.

以下の説明においては、第1~第3DB管理装置31~33の各々の演算性能を示す情報を演算性能情報、第1~第3DB管理装置31~33の各々のテーブル(例えば、テーブルt1及びt2)が有するレコードの数を示す情報をレコード数情報、分散処理装置20と第1~第3DB管理装置31~33の各々との間の通信性能を示す情報を通信性能情報と称する。なお、管理装置情報には、演算性能情報、レコード数情報及び通信性能情報のうちの少なくとも1つが含まれていればよいが、本実施形態においては、管理装置情報は演算性能情報、レコード数情報及び通信性能情報の全てを含むものとして説明する。 In the following description, information indicating the calculation performance of each of the first to third DB management devices 31 to 33 is the calculation performance information, and each table of the first to third DB management devices 31 to 33 (for example, tables t1 and t2). ) Is referred to as record number information, and information indicating communication performance between the distributed processing device 20 and each of the first to third DB management devices 31 to 33 is referred to as communication performance information. The management device information may include at least one of calculation performance information, record number information, and communication performance information, but in the present embodiment, the management device information includes calculation performance information and record number information. And all of the communication performance information will be described.

情報管理部202は、格納部に格納されている管理装置情報を管理するための機能部である。具体的には、情報管理部202は、第1~第3DB管理装置31~33から送信される当該第1~第3DB管理装置31~33に関する情報(演算性能情報、レコード数情報及び通信性能情報)を収集し、当該情報を管理装置情報として格納部201に格納する。また、情報管理部202は、上記した第1~第3DB管理装置31~33に関する情報を定期的に収集し、当該収集された情報に基づいて格納部201に格納されている管理装置情報を更新する処理を実行してもよい。 The information management unit 202 is a functional unit for managing the management device information stored in the storage unit. Specifically, the information management unit 202 provides information (calculation performance information, record number information, and communication performance information) related to the first to third DB management devices 31 to 33 transmitted from the first to third DB management devices 31 to 33. ) Is collected, and the information is stored in the storage unit 201 as management device information. Further, the information management unit 202 periodically collects information on the first to third DB management devices 31 to 33 described above, and updates the management device information stored in the storage unit 201 based on the collected information. You may execute the processing to be performed.

通信部203は、クライアント端末10との通信を実行するための機能部である。通信部203は、例えばクライアント端末10においてユーザによって指定されたクエリを当該クライアント端末10から受信する。 The communication unit 203 is a functional unit for executing communication with the client terminal 10. The communication unit 203 receives, for example, a query specified by the user in the client terminal 10 from the client terminal 10.

クエリ解析部204は、通信部203によって受信されたクエリを解析し、第1~第3DB管理装置31~33において実行されるべき当該クエリに対する処理を判別する。 The query analysis unit 204 analyzes the query received by the communication unit 203, and determines the processing for the query to be executed by the first to third DB management devices 31 to 33.

クエリ作成部205は、クエリ解析部204によって判別された第1~第3DB管理装置31~33において実行されるべきクエリに対する処理の処理時間(つまり、クエリに対する第1~第3DB管理装置31~33の各々の処理時間の予測値)を計算する。この第1~第3DB管理装置31~33の各々の処理時間は、格納部201に格納されている管理装置情報に基づいて計算される。 The query creation unit 205 has a processing time for processing a query to be executed in the first to third DB management devices 31 to 33 determined by the query analysis unit 204 (that is, the first to third DB management devices 31 to 33 for the query). Predicted value of each processing time of) is calculated. The processing time of each of the first to third DB management devices 31 to 33 is calculated based on the management device information stored in the storage unit 201.

クエリ作成部205は、計算された第1~第3DB管理装置31~33の各々の処理時間に基づいて、当該第1~第3DB管理装置31~33(の各々が管理するデータベース)に対するクエリを作成する。 The query creation unit 205 makes a query to the first to third DB management devices 31 to 33 (databases managed by each of them) based on the calculated processing time of each of the first to third DB management devices 31 to 33. create.

クエリ実行部206は、クエリ作成部205によって作成された第1~第3DB管理装置31~33に対するクエリを当該第1~第3DB管理装置31~33の各々に実行させるための機能部である。この場合、クエリ実行部206は、第1~第3DB管理装置31~33に対するクエリを当該第1~第3DB管理装置31~33の各々に送信する。 The query execution unit 206 is a functional unit for causing each of the first to third DB management devices 31 to 33 to execute a query for the first to third DB management devices 31 to 33 created by the query creation unit 205. In this case, the query execution unit 206 transmits a query to the first to third DB management devices 31 to 33 to each of the first to third DB management devices 31 to 33.

この分散処理装置20(クエリ作成部205)から第1~第3DB管理装置31~33に送信されるクエリによれば、ユーザによって指定されたクエリに対する処理(例えば、結合演算)を実行することが第1~第3DB管理装置31~33に対して指示される。なお、第1~第3DB管理装置31~33のうちの例えば処理時間が短いDB管理装置に対しては、処理時間が長い他のDB管理装置のテーブルが有する複数のレコードの一部を当該他のDB管理装置から取得して結合演算を実行することが指示される。 According to the query transmitted from the distributed processing device 20 (query creating unit 205) to the first to third DB management devices 31 to 33, it is possible to execute a process (for example, a join operation) for the query specified by the user. It is instructed to the first to third DB management devices 31 to 33. Of the first to third DB management devices 31 to 33, for example, for a DB management device having a short processing time, a part of a plurality of records held by a table of another DB management device having a long processing time may be used. It is instructed to acquire from the DB management device of the above and execute the join operation.

結果集積部207は、分散処理装置20から第1~第3DB管理装置31~33に送信されたクエリに対する処理が実行された結果を、第1~第3DB管理装置31~33から集積する。このように結果集積部207によって集積された結果は、通信部203によって受信されたクエリ(ユーザによって指定されたクエリ)に対する処理結果として、通信部203を介してクライアント端末10に送信される。 The result collection unit 207 collects the results of executing the processing for the queries transmitted from the distributed processing device 20 to the first to third DB management devices 31 to 33 from the first to third DB management devices 31 to 33. The result accumulated by the result accumulation unit 207 in this way is transmitted to the client terminal 10 via the communication unit 203 as a processing result for the query (query specified by the user) received by the communication unit 203.

次に、図12は、分散処理システム1に備えられる第1DB管理装置31の機能構成の一例を示す。 Next, FIG. 12 shows an example of the functional configuration of the first DB management device 31 provided in the distributed processing system 1.

図12に示すように、第1DB管理装置31は、データベース311、通信部312、クエリ実行部313及び情報管理部314を含む。 As shown in FIG. 12, the first DB management device 31 includes a database 311, a communication unit 312, a query execution unit 313, and an information management unit 314.

本実施形態において、データベース311は、第1DB管理装置31に備えられる不揮発性メモリまたは他の記憶装置等によって実現される。 In the present embodiment, the database 311 is realized by a non-volatile memory or another storage device provided in the first DB management device 31.

また、本実施形態において、通信部312、クエリ実行部313及び情報管理部314の一部または全ては、第1DB管理装置31に備えられるCPU(つまり、第1DB管理装置31のコンピュータ)に所定のプログラムを実行させること、すなわち、ソフトウェアによって実現されるものとする。この所定のプログラムは、第1DB管理装置31が分散処理システム1において動作するためのプログラムであり、コンピュータ読み取り可能な記憶媒体に予め格納して頒布されてもよいし、ネットワークを介して第1DB管理装置31にダウンロードされてもよい。 Further, in the present embodiment, a part or all of the communication unit 312, the query execution unit 313, and the information management unit 314 are predetermined to the CPU provided in the first DB management device 31 (that is, the computer of the first DB management device 31). It is assumed that the program is executed, that is, it is realized by software. This predetermined program is a program for the first DB management device 31 to operate in the distributed processing system 1, and may be stored and distributed in advance in a computer-readable storage medium, or the first DB management device 31 may be managed via a network. It may be downloaded to the device 31.

ここでは、上記した各部312~314の一部または全てがソフトウェアによって実現されるものとして説明したが、当該各部312~314の一部または全ては、例えばハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせ構成として実現されてもよい。 Here, a part or all of each part 312 to 314 described above has been described as being realized by software, but a part or all of each part 312 to 314 may be realized by hardware, for example, or software. And may be realized as a combination of hardware.

データベース311には、上記したようにクライアント端末10においてユーザによって指定されたクエリに対する処理が実行されることによって当該ユーザに対して提供されるテーブル形式のデータが格納されている。具体的には、データベース311には、例えば図3に示すような複数のレコードを有するテーブルt1及びt2が格納されている。なお、データベースに格納されているテーブルt1及びt2のデータ構造は上記した図3において説明した通りであるので、ここではその詳しい説明を省略する。 The database 311 stores the table format data provided to the user by executing the process for the query specified by the user on the client terminal 10 as described above. Specifically, the database 311 stores tables t1 and t2 having a plurality of records as shown in FIG. 3, for example. Since the data structures of the tables t1 and t2 stored in the database are as described in FIG. 3 described above, detailed description thereof will be omitted here.

通信部312は、分散処理装置20との通信を実行するための機能部である。通信部312は、分散処理装置20から送信されたクエリ(第1DB管理装置31に対するクエリ)を受信する。なお、通信部312は、更に他のDB管理装置(第2及び第3DB管理装置32及び33)との通信を実行するように構成されていてもよい。 The communication unit 312 is a functional unit for executing communication with the distributed processing device 20. The communication unit 312 receives the query (query for the first DB management device 31) transmitted from the distributed processing device 20. The communication unit 312 may be configured to further execute communication with other DB management devices (second and third DB management devices 32 and 33).

クエリ実行部313は、通信部312によって受信されたクエリに対する処理を実行するための機能部である。 The query execution unit 313 is a functional unit for executing processing for the query received by the communication unit 312.

上記したように分散処理装置20(クエリ作成部205)によって計算された第1DB管理装置31の処理時間が例えば第2DB管理装置32の処理時間未満である場合、第1DB管理装置31は、第2DB管理装置32のテーブル(例えば、テーブルt1)が有する複数のレコードの一部を取得するように分散処理装置20から指示される。このような指示によれば、クエリ実行部313は、第2DB管理装置32のテーブルが有する複数のレコードの一部を、当該第2DB管理装置32から取得する。この場合、クエリ実行部313は、データベース311に格納されているテーブルが有する複数のレコード及び第2DB管理装置32から取得されたレコードを用いて、クエリに対する処理(結合演算)を実行する。 When the processing time of the first DB management device 31 calculated by the distributed processing device 20 (query creation unit 205) is less than, for example, the processing time of the second DB management device 32 as described above, the first DB management device 31 is the second DB. The distributed processing device 20 is instructed to acquire a part of a plurality of records possessed by the table of the management device 32 (for example, the table t1). According to such an instruction, the query execution unit 313 acquires a part of a plurality of records included in the table of the second DB management device 32 from the second DB management device 32. In this case, the query execution unit 313 executes the processing (join operation) for the query by using the plurality of records in the table stored in the database 311 and the records acquired from the second DB management device 32.

一方、上記したように分散処理装置20(クエリ作成部205)によって計算された第2DB管理装置32の処理時間が第1DB管理装置31の処理時間未満である場合、データベース311に格納されているテーブルが有する複数のレコードの一部は第2DB管理装置32に転送される(つまり、第2DB管理装置32によって取得される)。この場合、クエリ実行部313は、データベース311に格納されているテーブルが有する複数のレコードのうち、第2DB管理装置32に転送されていないレコードを用いて、クエリに対する処理(結合演算)を実行する。 On the other hand, when the processing time of the second DB management device 32 calculated by the distributed processing device 20 (query creation unit 205) is less than the processing time of the first DB management device 31 as described above, the table stored in the database 311. A part of the plurality of records possessed by the second DB management device 32 is transferred to the second DB management device 32 (that is, acquired by the second DB management device 32). In this case, the query execution unit 313 executes the processing (join operation) for the query by using the records that have not been transferred to the second DB management device 32 among the plurality of records in the table stored in the database 311. ..

情報管理部314は、第1DB管理装置31に関する情報(演算性能情報、レコード数情報及び通信性能情報)を管理する機能部である。なお、第1DB管理装置31に関する情報はデータベース311に格納されているものとする。情報管理部314は、通信部312を介して、第1DB管理装置31に関する情報を定期的に分散処理装置20に送信する。なお、第1DB管理装置31に関する情報は、例えば第1DB管理装置31が分散処理装置20と接続された際に当該分散処理装置20に送信されてもよいし、第1DB管理装置31の演算性能、データベース311に格納されているテーブルが有するレコードの数または分散処理装置20との間の通信性能に変化が生じた場合に分散処理装置20に送信されてもよい。 The information management unit 314 is a functional unit that manages information (calculation performance information, record number information, and communication performance information) related to the first DB management device 31. It is assumed that the information regarding the first DB management device 31 is stored in the database 311. The information management unit 314 periodically transmits information about the first DB management device 31 to the distributed processing device 20 via the communication unit 312. Information about the first DB management device 31 may be transmitted to the distributed processing device 20 when the first DB management device 31 is connected to the distributed processing device 20, for example, and the calculation performance of the first DB management device 31. It may be transmitted to the distributed processing device 20 when the number of records in the table stored in the database 311 or the communication performance with the distributed processing device 20 changes.

図12においては第1DB管理装置31の機能構成について説明したが、第2及び第3DB管理装置32及び33の機能構成についても第1DB管理装置31と同様である。以下、第1DB管理装置31だけでなく、第2及び第3DB管理装置32及び33の構成に関しても図12を用いて説明する。 Although the functional configuration of the first DB management device 31 has been described in FIG. 12, the functional configurations of the second and third DB management devices 32 and 33 are the same as those of the first DB management device 31. Hereinafter, not only the configuration of the first DB management device 31 but also the configurations of the second and third DB management devices 32 and 33 will be described with reference to FIG.

ここで、図13~図15を参照して、上記した図11に示す分散処理装置20に含まれる格納部201に格納されている管理装置情報のデータ構造の一例について説明する。なお、管理装置情報は、例えば表形式の情報(データ)であり、上記したように演算性能情報、レコード数情報及び通信性能情報を含む。 Here, an example of the data structure of the management device information stored in the storage unit 201 included in the distributed processing device 20 shown in FIG. 11 described above will be described with reference to FIGS. 13 to 15. The management device information is, for example, tabular information (data), and includes calculation performance information, record number information, and communication performance information as described above.

図13は、管理装置情報に含まれる演算性能情報のデータ構造の一例を示す。なお、演算性能情報は上記したように第1~第3DB管理装置31~33の演算性能を示す情報であるが、図13においては、当該第1~第3DB管理装置31~33の演算性能に加えて、分散処理装置20の演算性能を更に示す演算性能情報のデータ構造が示されている。 FIG. 13 shows an example of the data structure of the calculation performance information included in the management device information. As described above, the calculation performance information is information indicating the calculation performance of the first to third DB management devices 31 to 33, but in FIG. 13, the calculation performance of the first to third DB management devices 31 to 33 is used. In addition, a data structure of arithmetic performance information further indicating the arithmetic performance of the distributed processing apparatus 20 is shown.

図13に示すように、演算性能情報は、ノードID及び演算性能値を対応づけて含む。ノードIDは、分散処理システム1を構成する各ノード(分散処理装置20及び第1~第3DB管理装置31~33)を識別するための識別情報である。演算性能値は、ノードIDによって識別されるノードの演算性能を表す値であり、例えば1秒当たりに演算(計算)することが可能なレコードの数を示す。本実施形態において、「レコードを演算する」とは、例えば2つのテーブルに対する結合演算を実行する際に、一方のテーブルが有する1つのレコードと他方のテーブルが有する1つのレコードとがクエリの条件式に基づいて結合可能であるか否かを判定し、結合可能であると判定された場合に当該レコード同士を結合することを含む。なお、演算性能値は、各ノードの演算性能を表す値であれば他の値であってもよい。 As shown in FIG. 13, the calculation performance information includes the node ID and the calculation performance value in association with each other. The node ID is identification information for identifying each node (distributed processing device 20 and first to third DB management devices 31 to 33) constituting the distributed processing system 1. The calculation performance value is a value representing the calculation performance of the node identified by the node ID, and indicates, for example, the number of records that can be calculated (calculated) per second. In the present embodiment, "calculating a record" means, for example, when executing a join operation on two tables, one record possessed by one table and one record possessed by the other table are query conditional expressions. It is included to determine whether or not the records can be combined based on the above, and to combine the records when it is determined that the records can be combined. The calculation performance value may be another value as long as it is a value representing the calculation performance of each node.

図13に示す例において、演算性能情報は、ノード「01」及び演算性能値「100」を対応づけて含む。なお、ノード「01」は、例えば分散処理装置20を識別するための識別情報である。この演算性能情報によれば、分散処理装置20が1秒当たりに100個のレコードを演算することができる演算性能を有していることが示されている。 In the example shown in FIG. 13, the calculation performance information includes the node “01” and the calculation performance value “100” in association with each other. The node "01" is, for example, identification information for identifying the distributed processing device 20. According to this calculation performance information, it is shown that the distributed processing apparatus 20 has a calculation performance capable of calculating 100 records per second.

また、演算性能情報は、ノード「011」及び演算性能値「10」を対応づけて含む。ノード「011」は、例えば第1DB管理装置31を識別するための識別情報である。この演算性能情報によれば、第1DB管理装置31が1秒当たりに10個のレコードを演算することができる演算性能を有していることが示されている。 Further, the calculation performance information includes the node "011" and the calculation performance value "10" in association with each other. The node "011" is, for example, identification information for identifying the first DB management device 31. According to this calculation performance information, it is shown that the first DB management device 31 has a calculation performance capable of calculating 10 records per second.

更に、演算性能情報は、ノード「012」及び演算性能値「20」を対応づけて含む。ノード「012」は、例えば第2DB管理装置32を識別するための識別情報である。この演算性能情報によれば、第2DB管理装置32が1秒当たりに20個のレコードを演算することができる演算性能を有していることが示されている。 Further, the calculation performance information includes the node "012" and the calculation performance value "20" in association with each other. The node "012" is, for example, identification information for identifying the second DB management device 32. According to this calculation performance information, it is shown that the second DB management device 32 has a calculation performance capable of calculating 20 records per second.

また、演算性能情報は、ノード「013」及び演算性能値「30」を対応づけて含む。ノード「013」は、例えば第3DB管理装置33を識別するための識別情報である。この演算性能情報によれば、第3DB管理装置33が1秒当たりに30個のレコードを演算することができる演算性能を有していることが示されている。 Further, the calculation performance information includes the node "013" and the calculation performance value "30" in association with each other. The node "013" is, for example, identification information for identifying the third DB management device 33. According to this calculation performance information, it is shown that the third DB management device 33 has a calculation performance capable of calculating 30 records per second.

図14は、管理装置情報に含まれるレコード数情報のデータ構造の一例を示す。ここでは、第1~第3DB管理装置31~33の各々のデータベース311にテーブルt1及びt2が格納されているものとして説明する。 FIG. 14 shows an example of the data structure of the number of records information included in the management device information. Here, it is assumed that the tables t1 and t2 are stored in the databases 311 of the first to third DB management devices 31 to 33, respectively.

図14に示すように、レコード数情報は、ノードID、テーブルt1及びテーブルt2を含む。ノードIDは上記した演算性能情報に含まれるノードIDと同様であるため、ここではその詳しい説明を省略する。テーブルt1は、ノードIDによって識別されるノードのデータベース311に格納されているテーブルt1が有するレコードの数を示す。テーブルt2は、ノードIDによって識別されるノードのデータベース311に格納されているテーブルt2が有するレコードの数を示す。 As shown in FIG. 14, the record number information includes the node ID, the table t1 and the table t2. Since the node ID is the same as the node ID included in the above-mentioned calculation performance information, detailed description thereof will be omitted here. Table t1 shows the number of records in table t1 stored in the database 311 of the node identified by the node ID. Table t2 shows the number of records held in table t2 stored in the database 311 of the node identified by the node ID.

図14に示す例において、レコード数情報は、ノード「011」、テーブルt1「100」及びテーブルt2「10」を対応づけて含む。このレコード数情報によれば、ノードID「011」によって識別される第1DB管理装置31のテーブルt1が100個のレコードを有し、テーブルt2が10個のレコードを有していることが示されている。 In the example shown in FIG. 14, the record number information includes the node "011", the table t1 "100", and the table t2 "10" in association with each other. According to this record number information, it is shown that the table t1 of the first DB management device 31 identified by the node ID "011" has 100 records, and the table t2 has 10 records. ing.

また、レコード数情報は、ノード「012」、テーブルt1「10」及びテーブルt2「20」を対応づけて含む。このレコード数情報によれば、ノードID「011」によって識別される第2DB管理装置32のテーブルt1が10個のレコードを有し、テーブルt2が20個のレコードを有していることが示されている。 Further, the record number information includes the node "012", the table t1 "10" and the table t2 "20" in association with each other. According to this record number information, it is shown that the table t1 of the second DB management device 32 identified by the node ID "011" has 10 records, and the table t2 has 20 records. ing.

更に、レコード数情報は、ノード「013」、テーブルt1「25」及びテーブルt2「10」を対応づけて含む。このレコード数情報によれば、ノードID「013」によって識別される第3DB管理装置33のテーブルt1が25個のレコードを有し、テーブルt2が10個のレコードを有していることが示されている。 Further, the record number information includes the node "013", the table t1 "25" and the table t2 "10" in association with each other. According to this record number information, it is shown that the table t1 of the third DB management device 33 identified by the node ID "013" has 25 records, and the table t2 has 10 records. ing.

図15は、管理装置情報に含まれる通信性能情報のデータ構造の一例を示す。ここでは、第1DB管理装置31の通信性能を示す通信性能情報について説明する。 FIG. 15 shows an example of the data structure of the communication performance information included in the management device information. Here, the communication performance information indicating the communication performance of the first DB management device 31 will be described.

図15に示すように、通信性能情報は、ノードID及び通信性能値を対応づけて含む。ノードIDは上記した演算性能情報及びレコード数情報に含まれるノードIDと同様であるため、ここではその詳しい説明を省略する。通信性能値は、第1DB管理装置31とノードIDによって識別されるノードとの間の通信性能を表す値であり、例えば1秒当たりに通信(送信)可能なレコードの数を示す。なお、通信性能値は、第1DB管理装置31の通信性能を表す値であれば他の値であってもよい。 As shown in FIG. 15, the communication performance information includes a node ID and a communication performance value in association with each other. Since the node ID is the same as the node ID included in the above-mentioned calculation performance information and record number information, detailed description thereof will be omitted here. The communication performance value is a value representing the communication performance between the first DB management device 31 and the node identified by the node ID, and indicates, for example, the number of records that can be communicated (transmitted) per second. The communication performance value may be another value as long as it is a value representing the communication performance of the first DB management device 31.

図15に示す例において、通信性能情報は、ノード「01」及び通信性能値「100」を対応づけて含む。この通信性能情報によれば、第1DB管理装置31が1秒当たりに100個のレコードをノード「01」によって識別される分散処理装置20に送信することができることが示されている。 In the example shown in FIG. 15, the communication performance information includes the node "01" and the communication performance value "100" in association with each other. According to this communication performance information, it is shown that the first DB management device 31 can transmit 100 records per second to the distributed processing device 20 identified by the node "01".

ここで、本実施形態においては、第1DB管理装置31は分散処理装置20と通信可能に接続されているものとして説明したが、当該第1DB管理装置31は、例えばメッシュネットワーク等を介して他のDB管理装置(第2及び第3DB管理装置32及び33)と通信可能に接続されていてもよい。この場合、通信性能情報は、第1DB管理装置31と第2及び第3DB管理装置32及び33との間の通信性能を更に示す。 Here, in the present embodiment, the first DB management device 31 has been described as being communicably connected to the distributed processing device 20, but the first DB management device 31 may be another, for example, via a mesh network or the like. It may be communicably connected to the DB management devices (second and third DB management devices 32 and 33). In this case, the communication performance information further indicates the communication performance between the first DB management device 31 and the second and third DB management devices 32 and 33.

具体的には、通信性能情報は、ノード「012」及び通信性能値「20」を対応づけて含む。この通信性能情報によれば、第1DB管理装置31が1秒当たりに20個のレコードをノード「012」によって識別される第2DB管理装置32に送信することができることが示されている。 Specifically, the communication performance information includes the node "012" and the communication performance value "20" in association with each other. According to this communication performance information, it is shown that the first DB management device 31 can transmit 20 records per second to the second DB management device 32 identified by the node "012".

また、通信性能情報は、ノード「013」及び通信性能値「25」を対応づけて含む。この通信性能情報によれば、第1DB管理装置31が1秒当たりに25個のレコードをノード「013」によって識別される第3DB管理装置33に送信することができることが示されている。 Further, the communication performance information includes the node "013" and the communication performance value "25" in association with each other. According to this communication performance information, it is shown that the first DB management device 31 can transmit 25 records per second to the third DB management device 33 identified by the node "013".

図15においては第1DB管理装置31の通信性能を示す通信性能情報について説明したが、管理装置情報には、分散処理装置20、第2及び第3DB管理装置32及び33の通信性能を示す通信性能情報も含まれる。なお、分散処理装置20、第2及び第3DB管理装置32及び33の通信性能を示す通信性能情報のデータ構造は図15に示す通信性能情報と同様であるため、ここではその詳しい説明を省略する。 In FIG. 15, the communication performance information indicating the communication performance of the first DB management device 31 has been described, but the management device information includes the communication performance indicating the communication performance of the distributed processing devices 20, the second and third DB management devices 32 and 33. Information is also included. Since the data structure of the communication performance information indicating the communication performance of the distributed processing devices 20, the second and third DB management devices 32 and 33 is the same as the communication performance information shown in FIG. 15, detailed description thereof will be omitted here. ..

なお、図15に示す例では、例えばノード「012」及び通信性能値「20」が対応づけられているが、第1DB管理装置31が第2DB管理装置32にレコードを送信する際の当該第1DB管理装置31の通信性能(値)と、第2DB管理装置32が第1DB管理装置31にレコードを送信する際の当該第2DB管理装置32の通信性能(値)とは、同じであってもよいし、通信環境等に応じて異なっていてもよい。 In the example shown in FIG. 15, for example, the node "012" and the communication performance value "20" are associated with each other, but the first DB when the first DB management device 31 transmits a record to the second DB management device 32. The communication performance (value) of the management device 31 and the communication performance (value) of the second DB management device 32 when the second DB management device 32 transmits a record to the first DB management device 31 may be the same. However, it may differ depending on the communication environment and the like.

上記した図13~図15においては演算性能情報、レコード数情報及び通信性能情報のデータ構造について説明したが、当該図13~図15に示す数値は一例であり、当該数値は、分散処理システム1の構成等に応じて異なっていてもよい。 Although the data structures of the calculation performance information, the number of records information, and the communication performance information have been described in FIGS. 13 to 15 described above, the numerical values shown in FIGS. 13 to 15 are examples, and the numerical values are the distributed processing system 1. It may be different depending on the configuration and the like.

次に、図16のシーケンスチャートを参照して、本実施形態に係る分散処理システム1の処理手順の一例を説明する。 Next, an example of the processing procedure of the distributed processing system 1 according to the present embodiment will be described with reference to the sequence chart of FIG.

まず、第1~第3DB管理装置31~33のデータベース311に格納されているテーブル(データ)を閲覧する場合、ユーザは、クライアント端末10を操作することによって当該テーブル(が有するレコード)を取得するためのクエリ(SQL)を指定する。クライアント端末10(クライアントアプリケーション)においては、このようにユーザによって指定されたクエリ(以下、対象クエリと表記)が作成される(ステップS1)。 First, when browsing the table (data) stored in the databases 311 of the first to third DB management devices 31 to 33, the user acquires the table (the record possessed by) by operating the client terminal 10. Specify the query (SQL) for. In the client terminal 10 (client application), a query specified by the user (hereinafter referred to as a target query) is created (step S1).

ここでは、第1~第3DB管理装置31~33のデータベース311にはそれぞれ上記したテーブルt1及びt2が格納されているものとし、対象クエリは、テーブルt1とテーブルt2との結合演算結果を取得するためのクエリ(「SELECT*FROM t1,t2 WHERE t1.id=t2.id」)であるものとする。 Here, it is assumed that the above-mentioned tables t1 and t2 are stored in the databases 311 of the first to third DB management devices 31 to 33, respectively, and the target query acquires the result of the join operation between the table t1 and the table t2. ("SELECT * FROM t1, t2 WHERE t1.id = t2.id").

ステップS1において作成された対象クエリは、クライアント端末10から分散処理装置20に送信される(ステップS2)。 The target query created in step S1 is transmitted from the client terminal 10 to the distributed processing device 20 (step S2).

ステップS2においてクライアント端末10から送信された対象クエリは、分散処理装置20の通信部203によって受信される。なお、通信部203によって受信された対象クエリは、クエリ解析部204によって解析される。これにより、クエリ解析部204は、対象クエリに基づいて第1~第3DB管理装置31~33において実行されるべき処理を判別することができる。 The target query transmitted from the client terminal 10 in step S2 is received by the communication unit 203 of the distributed processing device 20. The target query received by the communication unit 203 is analyzed by the query analysis unit 204. As a result, the query analysis unit 204 can determine the processing to be executed in the first to third DB management devices 31 to 33 based on the target query.

ここで、本実施形態においては、クエリ解析部204による解析結果(判別結果)に基づいて対象クエリに対する処理(つまり、結合演算)を第1~第3DB管理装置31~33に分散する。この場合、分散処理装置20は、上記したようにテーブルt1及びt2のうちの一方のテーブルを第1~第3DB管理装置31~33から収集し、当該収集されたテーブルを組み合わせたテーブルを第1~第3DB管理装置31~33に配布(転送)する必要がある。 Here, in the present embodiment, the processing (that is, the join operation) for the target query is distributed to the first to third DB management devices 31 to 33 based on the analysis result (discrimination result) by the query analysis unit 204. In this case, the distributed processing device 20 collects one of the tables t1 and t2 from the first to third DB management devices 31 to 33 as described above, and the first table is a combination of the collected tables. It is necessary to distribute (transfer) to the third DB management devices 31 to 33.

このため、クエリ解析部204は、上記したように第1~第3DB管理装置31~33から収集するテーブル(以下、収集テーブルと表記)を決定する(ステップS3)。 Therefore, the query analysis unit 204 determines a table (hereinafter referred to as a collection table) to be collected from the first to third DB management devices 31 to 33 as described above (step S3).

ここで、第1~第3DB管理装置31~33からテーブルを収集する(つまり、テーブルが転送される)処理にかかる時間を低減する(つまり、分散処理システム1全体としての動作を高速に行う)ためには、サイズ(容量)が小さいテーブルを第1~第3DB管理装置31~33から収集することが効果的である。このため、ステップS3においては、第1~第3DB管理装置31~33のデータベース311に格納されているテーブルt1及びt2のうち、サイズが小さいテーブルを収集テーブルとして決定するものとする。なお、テーブルt1及びt2のサイズは、例えば格納部201に格納されている管理装置情報(に含まれるレコード数情報)に基づいて判別してもよいし、当該管理装置情報とは別に用意されたテーブルt1及びt2のサイズに関する情報に基づいて判別してもよい。 Here, the time required for the process of collecting the tables (that is, the tables are transferred) from the first to third DB management devices 31 to 33 is reduced (that is, the operation of the distributed processing system 1 as a whole is performed at high speed). For that purpose, it is effective to collect tables having a small size (capacity) from the first to third DB management devices 31 to 33. Therefore, in step S3, among the tables t1 and t2 stored in the databases 311 of the first to third DB management devices 31 to 33, the table having a smaller size is determined as the collection table. The sizes of the tables t1 and t2 may be determined based on, for example, the management device information (information on the number of records included in the storage unit 201) stored in the storage unit 201, or are prepared separately from the management device information. It may be determined based on the information regarding the sizes of the tables t1 and t2.

図16においては省略されているが、ステップS3においてテーブルt2が収集テーブルとして決定されたものとすると、分散処理装置20は、第1~第3DB管理装置31~33の各々からテーブルt2を収集し、当該テーブルt2を組み合わせたテーブルT2を作成する。このように作成されたテーブルT2は、第1~第3DB管理装置31~33の各々に配布される。 Although omitted in FIG. 16, assuming that the table t2 is determined as the collection table in step S3, the distributed processing device 20 collects the table t2 from each of the first to third DB management devices 31 to 33. , Create a table T2 by combining the table t2. The table T2 created in this way is distributed to each of the first to third DB management devices 31 to 33.

次に、クエリ作成部205は、格納部201に格納されている管理装置情報に基づいて、第1~第3DB管理装置31~33の処理時間を計算する(ステップS4)。 Next, the query creation unit 205 calculates the processing time of the first to third DB management devices 31 to 33 based on the management device information stored in the storage unit 201 (step S4).

なお、本実施形態において、第1DB管理装置31の処理時間とは、第1DB管理装置31のテーブルt1及び分散処理装置20から配布されたテーブルT2に対する結合演算を第1DB管理装置31において実行し、当該結合演算結果が第1DB管理装置31から分散処理装置20に返される(分散処理装置20において受信される)までの時間をいう。換言すれば、第1DB管理装置31の処理時間には、結合演算を実行するために要する時間(以下、演算時間と表記)及び当該結合演算結果を分散処理装置20に送信(転送)するために要する時間(以下、送信時間と表記)が含まれる。第2及び第3DB管理装置32及び33の処理時間についても同様である。 In this embodiment, the processing time of the first DB management device 31 means that the first DB management device 31 executes a join operation for the table t1 of the first DB management device 31 and the table T2 distributed from the distributed processing device 20. The time until the combined operation result is returned from the first DB management device 31 to the distributed processing device 20 (received by the distributed processing device 20). In other words, the processing time of the first DB management device 31 includes the time required to execute the join calculation (hereinafter referred to as the calculation time) and the result of the join calculation to be transmitted (transferred) to the distributed processing device 20. The time required (hereinafter referred to as transmission time) is included. The same applies to the processing times of the second and third DB management devices 32 and 33.

以下、ステップS4において計算される第1~第3DB管理装置31~33の処理時間について具体的に説明する。 Hereinafter, the processing times of the first to third DB management devices 31 to 33 calculated in step S4 will be specifically described.

ここでは、1レコード当たりの演算(計算)時間をc、1レコード当たりの送信(転送)時間をt、テーブルt1が有するレコードの数(テーブルt1の所持レコード数)をrt1、テーブルT2が有するレコードの数(全ノードからテーブルt2を収集することによって作成されたテーブルT2のレコード数)をRT2とする。 Here, the calculation (calculation) time per record is c, the transmission (transfer) time per record is t, the number of records possessed by the table t1 (the number of records possessed by the table t1) is r t1 , and the table T2 has. Let RT2 be the number of records (the number of records in table T2 created by collecting table t2 from all nodes).

ここで、テーブルt1とテーブルT2とを結合する(つまり、テーブルt1及びT2に対する結合演算を実行する)場合には、当該テーブルT1が有するレコードの各々と当該テーブルT2が有するレコードの各々との組み合わせ毎に演算を行う必要がある。よって、テーブルt1及びT2に対する結合演算を実行する際の第1~第3DB管理装置31~33の各々の演算時間はc*rt1*RT2となる。 Here, when the table t1 and the table T2 are joined (that is, the join operation for the tables t1 and T2 is executed), the combination of each of the records possessed by the table T1 and each of the records possessed by the table T2. It is necessary to perform an operation every time. Therefore, the calculation time of each of the first to third DB management devices 31 to 33 when executing the join calculation for the tables t1 and T2 is c * r t1 * RT2 .

一方、例えば全てのレコードの演算結果を第1~第3DB管理装置31~33から分散処理装置20に送信する時間は、rt1*RT2*tによって表すことができる。しかしながら、第1~第DB管理装置31~33から分散処理装置20には全てのレコードの演算結果が送信されるわけではなく、結合されたレコードのみが結合演算結果として送信される。この結合演算結果(として生成されるレコードの数)はクエリの条件式によって変化するため、結合演算を実行する前に当該レコードの数を正確に予測することは困難である。そこで、本実施形態においては、テーブルt1及びT2に対する結合演算おいてレコードがクエリの条件式に一致する(つまり、テーブルt1が有するレコードとテーブルT2が有するレコードとが結合される)確率をpとする。この場合、上記した送信時間は、rt1*RT2*p*tとなる。 On the other hand, for example, the time for transmitting the calculation results of all the records from the first to third DB management devices 31 to 33 to the distributed processing device 20 can be represented by rt1 * RT2 * t. However, the calculation results of all the records are not transmitted from the first to third DB management devices 31 to 33 to the distributed processing device 20, and only the combined records are transmitted as the join calculation result. Since the result of this join operation (the number of records generated as) changes depending on the conditional expression of the query, it is difficult to accurately predict the number of the records before executing the join operation. Therefore, in the present embodiment, the probability that the record matches the conditional expression of the query in the join operation for the tables t1 and T2 (that is, the record of the table t1 and the record of the table T2 are joined) is defined as p. do. In this case, the transmission time described above is r t1 * RT2 * p * t.

これにより、第1~第3DB管理装置31~33の各々の処理時間(つまり、演算時間+送信時間)は、c*rt1*RT2+rt1*RT2*p*tによって表すことができる。 Thereby, each processing time (that is, calculation time + transmission time) of the first to third DB management devices 31 to 33 can be represented by c * r t1 * RT2 + r t1 * RT2 * p * t. ..

なお、上記した1レコード当たりの演算時間cは、格納部201に格納されている演算性能情報(演算性能値)に基づいて得ることができる。また、1レコード当たりの送信時間tは、格納部201に格納されている通信性能情報(通信性能値)に基づいて得ることができる。また、テーブルt1が有するレコードの数rt1及びテーブルT2が有するレコードの数RT2は、格納部201に格納されているレコード数情報に基づいて得ることができる。更に、確率pは、デフォルトで付与された値であればよいが、例えば統計的に算出された値であってもよいし、ユーザによって指定された値であってもよい。 The above-mentioned calculation time c per record can be obtained based on the calculation performance information (calculation performance value) stored in the storage unit 201. Further, the transmission time t per record can be obtained based on the communication performance information (communication performance value) stored in the storage unit 201. Further, the number r t1 of the records in the table t1 and the number RT2 of the records in the table T2 can be obtained based on the record number information stored in the storage unit 201. Further, the probability p may be a value given by default, but may be, for example, a statistically calculated value or a value specified by the user.

ここで、図17及び図18を参照して、テーブルt1及びT2に対する結合演算を実行する際の第1及び第2DB管理装置31及び32の処理時間の具体例について説明する。 Here, a specific example of the processing time of the first and second DB management devices 31 and 32 when executing the join operation for the tables t1 and T2 will be described with reference to FIGS. 17 and 18.

なお、ここで説明する1レコード当たりの演算時間、テーブルt1が有するレコードの数、テーブルt2が有するレコードの数及び1レコード当たりの送信時間は、説明の便宜のために例示するものであって、上記した図13~図15において説明した演算性能情報、レコード数情報及び通信性能情報に基づく値とは異なる。 The calculation time per record, the number of records in the table t1, the number of records in the table t2, and the transmission time per record described here are exemplified for convenience of explanation. The values are different from the values based on the calculation performance information, the number of records information, and the communication performance information described in FIGS. 13 to 15 described above.

まず、図17を参照して、第1DB管理装置31の処理時間について説明する。図17に示す例では、第1DB管理装置31のテーブルt1が有するレコードの数rt1が100000であり、分散処理装置20から第1DB管理装置31に配布されたテーブルT2が有するレコードの数RT2が100である場合を想定している。 First, the processing time of the first DB management device 31 will be described with reference to FIG. In the example shown in FIG. 17, the number r t1 of the records in the table t1 of the first DB management device 31 is 100,000, and the number of records in the table T2 distributed from the distributed processing device 20 to the first DB management device 31 RT2 . Is assumed to be 100.

この場合において、例えば第1DB管理装置31の1レコード当たりの演算時間cが0.01、1レコード当たりの送信時間tが100、テーブルt1及びT2に対する結合演算においてレコードがクエリの条件式に一致する確率pが0.001であるものとすると、第1DB管理装置31の処理時間は、0.01(c)*100000(rt1)*100(RT2)+100000(rt1)*100(RT2)*0.001(p)*100(t)=1100000となる。 In this case, for example, the calculation time c per record of the first DB management device 31 is 0.01, the transmission time t per record is 100, and the records match the conditional expression of the query in the join operation for the tables t1 and T2. Assuming that the probability p is 0.001, the processing time of the first DB management device 31 is 0.01 (c) * 100000 ( rt1 ) * 100 ( RT2 ) + 100000 ( rt1 ) * 100 ( RT2 ). ) * 0.001 (p) * 100 (t) = 1100000.

次に、図18を参照して、第2DB管理装置32の処理時間について説明する。図18に示す例では、第2DB管理装置32のテーブルt1が有するレコードの数rt1は100であり、分散処理装置20から第2DB管理装置32に配布されたテーブルT2が有するレコードの数RT2が100である場合を想定している。 Next, the processing time of the second DB management device 32 will be described with reference to FIG. In the example shown in FIG. 18, the number r t1 of the records in the table t1 of the second DB management device 32 is 100, and the number of records in the table T2 distributed from the distributed processing device 20 to the second DB management device 32 RT2 . Is assumed to be 100.

この場合において、例えば第2DB管理装置32の1レコード当たりの演算時間cが0.01、1レコード当たりの送信時間tが100、テーブルt1及びT2に対する結合演算においてレコードがクエリの条件式に一致する確率pが0.001であるものとすると、第2DB管理装置32の処理時間は、0.01(c)*100(rt1)*100(RT2)+100(rt1)*100(RT2)*0.001(p)*100(t)=1100となる。 In this case, for example, the calculation time c per record of the second DB management device 32 is 0.01, the transmission time t per record is 100, and the records match the conditional expression of the query in the join operation for the tables t1 and T2. Assuming that the probability p is 0.001, the processing time of the second DB management device 32 is 0.01 (c) * 100 ( rt1 ) * 100 ( RT2 ) + 100 ( rt1 ) * 100 ( RT2 ). ) * 0.001 (p) * 100 (t) = 1100.

なお、ここでは第1及び第2DB管理装置31及び32の処理時間について説明したが、ステップS4においては第3DB管理装置33の処理時間についても同様に計算される。 Although the processing time of the first and second DB management devices 31 and 32 has been described here, the processing time of the third DB management device 33 is also calculated in the same manner in step S4.

ステップS4の処理が実行されると、クエリ作成部205は、当該ステップS4において計算された第1~第3DB管理装置31~33の処理時間に基づいて対象クエリの実行計画を作成し、当該実行計画に従った第1~第3DB管理装置31~33に対するクエリ(当該第1~第3DB管理装置31~33の各々によって実行されるべきクエリ)を作成する(ステップS5)。 When the processing of step S4 is executed, the query creation unit 205 creates an execution plan of the target query based on the processing time of the first to third DB management devices 31 to 33 calculated in the step S4, and executes the execution. A query for the first to third DB management devices 31 to 33 according to the plan (a query to be executed by each of the first to third DB management devices 31 to 33) is created (step S5).

ここで、ステップS4において計算された第1DB管理装置31の処理時間が1100000であり、第2DB管理装置32の処理時間が1100である場合を想定する。この場合において、上記した本実施形態の比較例と同様に対象クエリに対する処理が実行されると、第2DB管理装置32の処理が完了した後も、第1DB管理装置31の処理が完了するまで対象クエリに対する応答(つまり、結合演算結果)をクライアント端末10に返すことができず、分散処理システム1の動作が低速となる。 Here, it is assumed that the processing time of the first DB management device 31 calculated in step S4 is 1100000 and the processing time of the second DB management device 32 is 1100. In this case, when the processing for the target query is executed as in the comparative example of the present embodiment described above, even after the processing of the second DB management device 32 is completed, the target is until the processing of the first DB management device 31 is completed. The response to the query (that is, the result of the join operation) cannot be returned to the client terminal 10, and the operation of the distributed processing system 1 becomes slow.

そこで、例えば第1DB管理装置31の処理時間が最大であり、第2DB管理装置32の処理時間が最小である(つまり、第2DB管理装置32の処理時間が第1DB管理装置31の処理時間未満である)場合、当該第1DB管理装置31(以下、最大コストノードと表記)から第2DB管理装置32(つまり、最小コストノードと表記)にレコードを転送するという実行計画を作成する。 Therefore, for example, the processing time of the first DB management device 31 is the maximum, and the processing time of the second DB management device 32 is the minimum (that is, the processing time of the second DB management device 32 is less than the processing time of the first DB management device 31). If there is), an execution plan is created in which records are transferred from the first DB management device 31 (hereinafter referred to as the maximum cost node) to the second DB management device 32 (that is, referred to as the minimum cost node).

本実施形態においては、このように作成された実行計画に基づき、ノード(ここでは、第1及び第2DB管理装置31及び32)間の処理時間の均等化を図る。 In the present embodiment, based on the execution plan created in this way, the processing time is equalized among the nodes (here, the first and second DB management devices 31 and 32).

なお、最大コストノードから最小コストノードに転送されるレコードの数は、例えば以下の式(1)を満たす最小のxとすることができる。
c*(r1t1-x)*r1T2+(r1t1-x)*r1T2*p*t+x*t
>c*(r2t1+x)*r2T2+(r2t1+x)*r2T2*p*t+x*t
式(1)
The number of records transferred from the maximum cost node to the minimum cost node can be, for example, the minimum x satisfying the following equation (1).
c * (r1 t1 -x) * r1 T2 + (r1 t1 -x) * r1 T2 * p * t + x * t
> C * (r2 t1 + x) * r2 T2 + (r2 t1 + x) * r2 T2 * p * t + x * t
Equation (1)

ここで、上記した式(1)において、r1t1は最大コストノードのテーブルt1が有するレコードの数、r2t1は最小コストノードのテーブルt1が有するレコードの数を表している。また、r1T2は分散処理装置20から最大コストノードに配布されたテーブルT2が有するレコードの数を表しており、r2T2は分散処理装置20から最小コストノードに配布されたテーブルT2が有するレコードの数を表している。すなわち、r1T2及びr2T2は、同一の値である。なお、左辺のc及びtは、最大コストノードの1レコード当たりの演算時間及び送信時間である。右辺のc及びtは、最小コストノードの1レコード当たりの演算時間及び送信時間である。pは、テーブルt1及びT2に対する結合演算おいてレコードがクエリの条件式に一致する確率である。 Here, in the above equation (1), r1 t1 represents the number of records held in the table t1 of the maximum cost node, and r2 t1 represents the number of records held in the table t1 of the minimum cost node. Further, r1 T2 represents the number of records held by the table T2 distributed from the distributed processing device 20 to the maximum cost node, and r2 T2 represents the number of records held by the table T2 distributed from the distributed processing device 20 to the minimum cost node. Represents a number. That is, r1 T2 and r2 T2 have the same value. Note that c and t on the left side are the calculation time and transmission time per record of the maximum cost node. C and t on the right side are the calculation time and the transmission time per record of the minimum cost node. p is the probability that the record matches the conditional expression of the query in the join operation for the tables t1 and T2.

上記した式(1)によれば、左辺は最大コストノードから最小コストノードにx個のレコードを転送した場合の最大コストノードの処理時間を表しており、右辺は最大コストノードから最小コストノードにx個のレコードを転送した場合の最小コストノードの処理時間を表している。 According to the above equation (1), the left side represents the processing time of the maximum cost node when x records are transferred from the maximum cost node to the minimum cost node, and the right side represents the processing time of the maximum cost node from the maximum cost node to the minimum cost node. It represents the processing time of the minimum cost node when x records are transferred.

本実施形態においては、このような式(1)を用いて最小のxを算出するものとする。このように算出されたxは、最大コストノードと最小コストノードとで処理時間を同程度とするために転送する必要があるレコードの数に相当する。 In this embodiment, the minimum x is calculated using such an equation (1). The x calculated in this way corresponds to the number of records that need to be transferred in order for the maximum cost node and the minimum cost node to have the same processing time.

例えば最大コストノードが第1DB管理装置31であり、最小コストノードが第2DB管理装置32であるものとすると、上記した図17及び図18において説明した例を式(1)に適用した場合には、x=39996を算出することができる。これによれば、第1DB管理装置31から第2DB管理装置32に39996個のレコードを転送するという実行計画が作成される。 For example, assuming that the maximum cost node is the first DB management device 31 and the minimum cost node is the second DB management device 32, the example described in FIGS. 17 and 18 described above is applied to the equation (1). , X = 39996 can be calculated. According to this, an execution plan of transferring 39996 records from the first DB management device 31 to the second DB management device 32 is created.

この場合、クエリ作成部205は、第1DB管理装置31に対するクエリとして、例えば「SELECT*FROM(SELECT*FROM LIMIT 60004),t2 WHERE t1.id=t2.id」を作成する。このクエリは、第1DB管理装置31のテーブルt1が有する100000個のレコードのうち、1番目から60004番目のレコードをテーブルT2(が有するレコード)と結合することを示している。 In this case, the query creation unit 205 creates, for example, "SELECT * FROM (SELECT * FROM LIMITED 60004), t2 WHERE t1.id = t2.id" as a query to the first DB management device 31. This query indicates that the 1st to 60004th records among the 100,000 records possessed by the table t1 of the first DB management device 31 are to be combined with the table T2 (records possessed by the table T2).

一方、クエリ作成部205は、第2DB管理装置32に対するクエリとして、例えば「GET 第1DB管理装置.t1´s record(60005-100000)」及び「SELECT*FROM t1,t2 WHERE t1.id=t2.id」を作成する。このクエリは、第1DB管理装置31のテーブルt1が有する100000個のレコードのうち、60005番目から100000番目のレコード(つまり、39996個のレコード)を当該第1DB管理装置31から取得し、第2DB管理装置32のテーブルt1が有するレコード及び第1DB管理装置31から取得されたレコードをテーブルT2(が有するレコード)と結合することを示している。 On the other hand, as a query to the second DB management device 32, the query creation unit 205 may use, for example, "GET 1st DB management device. T1's reserve (6005-10000)" and "SELECT * FROM t1, t2 WHERE t1.id = t2. Create "id". This query acquires the 60015th to 1000000th records (that is, 39996 records) from the 100,000 records held in the table t1 of the first DB management device 31 from the first DB management device 31, and manages the second DB. It is shown that the record possessed by the table t1 of the apparatus 32 and the record acquired from the first DB management apparatus 31 are combined with the table T2 (the record possessed by the table T2).

なお、第3DB管理装置33が他のDB管理装置にレコードを転送しないまたは他のDB管理装置からレコードが転送されない場合、当該第3DB管理装置33に対するクエリとしては、「SELECT*FROM t1,t2 WHERE t1.id=t2.id」が作成される。 If the third DB management device 33 does not transfer the record to another DB management device or the record is not transferred from the other DB management device, the query for the third DB management device 33 is "SELECT * FROM t1, t2 WHERE". "t1.id = t2.id" is created.

ここでは、第1DB管理装置31(最大コストノード)から第2DB管理装置32(最小コストノード)に転送されるレコードの数が上記した式(1)を用いて算出されるものとして説明したが、当該転送されるレコードの数は他の手法で算出されてもよい。 Here, the number of records transferred from the first DB management device 31 (maximum cost node) to the second DB management device 32 (minimum cost node) has been described as being calculated using the above equation (1). The number of records to be transferred may be calculated by another method.

更に、本実施形態においては、最大コストノードから最小コストノードにレコードを転送するものとして説明するが、レコードの転送元となるノード及びレコードの転送先となるノードは他の手法で決定されてもよい。 Further, in the present embodiment, the record is transferred from the maximum cost node to the minimum cost node, but the node that is the transfer source of the record and the node that is the transfer destination of the record may be determined by another method. good.

また、例えば全てのノードの処理時間が同程度となるように複数のノード間でレコードが転送される構成としても構わない。 Further, for example, the record may be transferred between a plurality of nodes so that the processing times of all the nodes are about the same.

ステップS5の処理が実行されると、当該ステップS5において作成された第1~第3DB管理装置31~33の各々に対するクエリが、当該第1DB管理装置31~33の各々に送信される(ステップS6)。 When the process of step S5 is executed, a query for each of the first to third DB management devices 31 to 33 created in step S5 is transmitted to each of the first DB management devices 31 to 33 (step S6). ).

ここで、ステップS6において分散処理装置20(クエリ実行部206)から送信されたクエリが第1DB管理装置31(通信部312)において受信されると、当該第1DB管理装置31のクエリ実行部313は、当該クエリに対する処理を実行する。 Here, when the query transmitted from the distributed processing device 20 (query execution unit 206) is received by the first DB management device 31 (communication unit 312) in step S6, the query execution unit 313 of the first DB management device 31 , Executes the process for the query.

ここで、上記したように第1DB管理装置31に対するクエリが「SELECT*FROM(SELECT*FROM LIMIT 60004),t2 WHERE t1.id=t2.id」であるものとすると、第1DB管理装置31のクエリ実行部313は、当該第1DB管理装置31のデータベース311を参照して、第1DB管理装置31の1番目から60004番目のレコードを有するテーブルt1とテーブルT2とを結合する結合演算を実行する(ステップS7)。 Here, assuming that the query to the first DB management device 31 is "SELECT * FROM (SELECT * FROM LIMIT 60004), t2 WHERE t1.id = t2.id" as described above, the query of the first DB management device 31 The execution unit 313 refers to the database 311 of the first DB management device 31, and executes a join operation for joining the table t1 having the first to 6004th records of the first DB management device 31 and the table T2 (step). S7).

ステップS7の処理が実行された結果(結合演算結果)は、第1DB管理装置31の通信部312を介して第1DB管理装置31から分散処理装置20に送信される(ステップS8)。 The result of executing the process of step S7 (combination calculation result) is transmitted from the first DB management device 31 to the distributed processing device 20 via the communication unit 312 of the first DB management device 31 (step S8).

一方、ステップS6において分散処理装置20(クエリ実行部206)から送信されたクエリが第2DB管理装置32(通信部312)において受信されると、当該第2DB管理装置32のクエリ実行部313は、当該クエリに対する処理を実行する。 On the other hand, when the query transmitted from the distributed processing device 20 (query execution unit 206) is received by the second DB management device 32 (communication unit 312) in step S6, the query execution unit 313 of the second DB management device 32 receives the query. Execute the process for the query.

ここで、上記したように第2DB管理装置32に対するクエリが「GET 第1DB管理装置31.t1´s record(60005-100000)」及び「SELECT*FROM t1,t2 WHERE t1.id=t2.id」であるものとすると、第2DB管理装置32のクエリ実行部313は、通信部312と協働し、「GET 第1DB管理装置31.t1´s record(60005-100000)」に基づいて第1DB管理装置31(の通信部312)との通信を実行する(ステップS9)。なお、第1DB管理装置31と第2DB管理装置32との間の通信は、例えば第1~第3DB管理装置31~33によって構築されるメッシュネットワークを介して実行される。 Here, as described above, the query to the second DB management device 32 is "GET 1st DB management device 31. t1's reserve (6005-10000)" and "SELECT * FROM t1, t2 WHERE t1.id = t2.id". Assuming that, the query execution unit 313 of the second DB management device 32 cooperates with the communication unit 312 and manages the first DB based on "GET 1st DB management device 31.t1's reserve (6005-10000)". Communication with the device 31 (communication unit 312) is executed (step S9). Communication between the first DB management device 31 and the second DB management device 32 is executed, for example, via a mesh network constructed by the first to third DB management devices 31 to 33.

このステップS9の処理が実行された場合、第1DB管理装置31のテーブルt1の60005番目から100000番目のレコード(以下、対象レコードと表記)が当該第1DB管理装置31から第2DB管理装置32に転送される。これにより、第2DB管理装置32のクエリ実行部313は、通信部312を介して対象レコードを取得する(ステップS10)。 When the process of step S9 is executed, the 6005-th to 100000th records (hereinafter referred to as target records) in the table t1 of the first DB management device 31 are transferred from the first DB management device 31 to the second DB management device 32. Will be done. As a result, the query execution unit 313 of the second DB management device 32 acquires the target record via the communication unit 312 (step S10).

次に、第2DB管理装置32のクエリ実行部313は、当該第2DB管理装置32のデータベース311を参照して、第2DB管理装置32のテーブルt1及び第1DB管理装置31から取得された対象レコードを有するテーブルを組み合わせたテーブルとテーブルT2とを結合する結合演算を実行する(ステップS11)。 Next, the query execution unit 313 of the second DB management device 32 refers to the database 311 of the second DB management device 32, and sets the target record acquired from the table t1 of the second DB management device 32 and the first DB management device 31. A join operation for joining the table in which the tables are combined and the table T2 is executed (step S11).

ステップS11の処理が実行された結果(結合演算結果)は、第2DB管理装置32の通信部312を介して第2DB管理装置32から分散処理装置20に送信される(ステップS12)。 The result of executing the process of step S11 (combination calculation result) is transmitted from the second DB management device 32 to the distributed processing device 20 via the communication unit 312 of the second DB management device 32 (step S12).

更に、ステップS6において分散処理装置20(クエリ実行部206)から送信されたクエリが第3DB管理装置33(通信部312)において受信されると、当該第3DB管理装置33のクエリ実行部313は、当該クエリに対する処理を実行する。 Further, when the query transmitted from the distributed processing device 20 (query execution unit 206) is received by the third DB management device 33 (communication unit 312) in step S6, the query execution unit 313 of the third DB management device 33 receives the query. Execute the process for the query.

ここで、上記したように第3DB管理装置33に対するクエリが「SELECT*FROM t1,t2 WHERE t1.id=t2.id」であるものとすると、第3DB管理装置33のクエリ実行部313は、当該第3DB管理装置33のデータベース311を参照して、第3DB管理装置33のテーブルt1とテーブルT2とを結合する結合演算を実行する(ステップS13)。 Here, assuming that the query to the third DB management device 33 is "SELECT * FROM t1, t2 WHERE t1.id = t2.id" as described above, the query execution unit 313 of the third DB management device 33 is concerned. With reference to the database 311 of the third DB management device 33, a join operation for joining the table t1 and the table T2 of the third DB management device 33 is executed (step S13).

ステップS13の処理が実行された結果(結合演算結果)は、第3DB管理装置33の通信部312を介して第3DB管理装置33から分散処理装置20に送信される(ステップS14)。 The result of executing the process of step S13 (combination calculation result) is transmitted from the third DB management device 33 to the distributed processing device 20 via the communication unit 312 of the third DB management device 33 (step S14).

上記したステップS8において第1DB管理装置31から送信された結合演算結果、ステップS12において第2DB管理装置32から送信された結合演算結果及びステップS14において第3DB管理装置33から送信された結合演算結果は、分散処理装置20(結果集積部207)によって集積される(ステップS15)。 The join calculation result transmitted from the first DB management device 31 in step S8, the join calculation result transmitted from the second DB management device 32 in step S12, and the join calculation result transmitted from the third DB management device 33 in step S14 are , Are integrated by the distributed processing apparatus 20 (result accumulation unit 207) (step S15).

ステップS15において集積された結合演算結果は、ステップS2においてクライアント端末10から分散処理装置20に送信された対象クエリに対する応答として、分散処理装置20(通信部203)からクライアント端末10(クライアントアプリケーションプログラム)に送信される(ステップS16)。 The join calculation result accumulated in step S15 is a response to the target query transmitted from the client terminal 10 to the distributed processing device 20 in step S2, from the distributed processing device 20 (communication unit 203) to the client terminal 10 (client application program). Is transmitted to (step S16).

ステップS16において分散処理装置20から送信された結合演算結果は、クライアント端末10において受信され、当該クライアント端末10(のディスプレイ等)に表示される(ステップS17)。これにより、ユーザは、結合演算結果を閲覧することができる。 The combination calculation result transmitted from the distributed processing apparatus 20 in step S16 is received by the client terminal 10 and displayed on the client terminal 10 (display or the like) (step S17). As a result, the user can view the result of the join operation.

なお、図16においては第1DB管理装置31のテーブルt1が有する複数のレコードの一部(対象レコード)が第2DB管理装置32に転送される(つまり、第2DB管理装置32が対象レコードを第1DB管理装置31から取得する)ものとして説明したが、当該対象レコードの一部を第2DB管理装置32に転送し、当該対象レコードの残りの部分を第3DB管理装置33に転送するようにしてもよい。 In addition, in FIG. 16, a part (target record) of a plurality of records possessed by the table t1 of the first DB management device 31 is transferred to the second DB management device 32 (that is, the second DB management device 32 transfers the target record to the first DB. Although it has been described as (acquired from the management device 31), a part of the target record may be transferred to the second DB management device 32, and the remaining part of the target record may be transferred to the third DB management device 33. ..

また、ステップS4において計算される処理時間によっては、例えば第2DB管理装置32のテーブルt1が有する複数のレコードの一部(対象レコード)が第1DB管理装置31(または第3DB管理装置33)に転送されても構わない。 Further, depending on the processing time calculated in step S4, for example, a part (target record) of a plurality of records included in the table t1 of the second DB management device 32 is transferred to the first DB management device 31 (or the third DB management device 33). It doesn't matter if it is done.

上記したように本実施形態においては分散処理システム1が第1~第3DB管理装置31~33を備えるものとして説明したが、本実施形態に係る分散処理システム1は、少なくとも2つのDB管理装置を備える構成であればよい。また、分散処理システム1に備えられるDB管理装置の数は4以上であってもよい。 As described above, in the present embodiment, the distributed processing system 1 is described as including the first to third DB management devices 31 to 33, but the distributed processing system 1 according to the present embodiment includes at least two DB management devices. Any configuration may be provided. Further, the number of DB management devices provided in the distributed processing system 1 may be 4 or more.

以下、主に分散処理システム1が2つのDB管理装置(第1及び第2DB管理装置31及び32)を備える構成に関して本実施形態の作用効果を説明する。 Hereinafter, the operation and effect of the present embodiment will be described mainly with respect to the configuration in which the distributed processing system 1 includes two DB management devices (first and second DB management devices 31 and 32).

本実施形態において、第1DB管理装置31のデータベース311は当該第1DB管理装置31において収集された複数のレコード(第1レコード)を有するテーブルt1(第1テーブル)を格納し、第2DB管理装置32のデータベース311は当該第2DB管理装置32において収集された複数のレコード(第2レコード)を有するテーブルt1(第2テーブル)を格納する。なお、第1DB管理装置31のテーブルt1が有するレコード及び第2DB管理装置32のテーブルt1が有するレコードは、同一のフィールドから構成される。 In the present embodiment, the database 311 of the first DB management device 31 stores the table t1 (first table) having a plurality of records (first records) collected in the first DB management device 31, and the second DB management device 32. Database 311 stores a table t1 (second table) having a plurality of records (second records) collected in the second DB management device 32. The record of the table t1 of the first DB management device 31 and the record of the table t1 of the second DB management device 32 are composed of the same fields.

また、本実施形態において、分散処理装置20は、第1及び第2DB管理装置31及び32の各々の演算性能を示す演算性能情報、テーブルt1が有するレコードの数を示すレコード数情報、または分散処理装置20と第1及び第2DB管理装置31及び32との間の通信性能(第1通信性能)を示す通信性能情報を含む管理装置情報を格納する格納部201を含む。また、分散処理装置20は、テーブルt1が有するレコードを取得するためのクエリ(第1クエリ)をクライアント端末10から受信し、当該クエリに対する第1DB管理装置31の処理時間(第1処理時間)及び第2DB管理装置32の処理時間(第2処理時間)を計算し、当該計算された処理時間に基づいて第1DB管理装置31に対するクエリ(第2クエリ)及び第2DB管理装置32に対するクエリ(第3クエリ)を作成する。 Further, in the present embodiment, the distributed processing apparatus 20 has arithmetic performance information indicating the arithmetic performance of each of the first and second DB management devices 31 and 32, record number information indicating the number of records in the table t1, or distributed processing. A storage unit 201 for storing management device information including communication performance information indicating communication performance (first communication performance) between the device 20 and the first and second DB management devices 31 and 32 is included. Further, the distributed processing device 20 receives a query (first query) for acquiring the record of the table t1 from the client terminal 10, and the processing time (first processing time) of the first DB management device 31 for the query and the processing time (first processing time). The processing time (second processing time) of the second DB management device 32 is calculated, and the query to the first DB management device 31 (second query) and the query to the second DB management device 32 (third) based on the calculated processing time. Create a query).

更に、本実施形態において、第1DB管理装置31は分散処理装置20において作成されたクエリに対する処理を実行し、第2DB管理装置32は分散処理装置20において作成されたクエリに対する処理を実行する。なお、第1DB管理装置31は、第1DB管理装置31の処理時間が第2DB管理装置32の処理時間未満である場合、第2DB管理装置32のテーブルt1が有する複数のレコードの一部を第1DB管理装置31(のデータベース311)から取得してクエリに対する処理を実行する。一方、第2DB管理装置32は、第2DB管理装置32の処理時間が第1DB管理装置31の処理時間未満である場合、第1DB管理装置31のテーブルt1が有する複数のレコードの一部を第1DB管理装置31(のデータベース311)から取得してクエリに対する処理を実行する。 Further, in the present embodiment, the first DB management device 31 executes the processing for the query created in the distributed processing device 20, and the second DB management device 32 executes the processing for the query created in the distributed processing device 20. When the processing time of the first DB management device 31 is less than the processing time of the second DB management device 32, the first DB management device 31 uses a part of the plurality of records in the table t1 of the second DB management device 32 as the first DB. It is acquired from the management device 31 (database 311) and the processing for the query is executed. On the other hand, when the processing time of the second DB management device 32 is less than the processing time of the first DB management device 31, the second DB management device 32 uses a part of the plurality of records in the table t1 of the first DB management device 31 as the first DB. It is acquired from the management device 31 (database 311) and the processing for the query is executed.

本実施形態においては、このような構成により、第1DB管理装置31及び32間において処理時間の均等化を図ることが可能となるため、分散処理システム1全体としてクエリに対する処理を高速化することが可能となる。 In the present embodiment, since it is possible to equalize the processing time between the first DB management devices 31 and 32 by such a configuration, it is possible to speed up the processing for the query in the distributed processing system 1 as a whole. It will be possible.

ここで、例えば複数の子ノード(子ノードA及びB)に負荷を分散(分配)するためにロードバランサを配置するようなシステムがあるが、当該ロードバランサは、図19の左側に示すように、当該子ノードA及びBによってデータが共有されていることを前提とするものである。すなわち、ロードバランサは、子ノードA及びBの各々のデータを読み込む位置を変更する、または共有されているデータを予め当該子ノードA及びBに対して分配しておくことにより処理を分散化する。 Here, for example, there is a system in which a load balancer is arranged to distribute (distribute) the load to a plurality of child nodes (child nodes A and B), and the load balancer is as shown on the left side of FIG. , It is assumed that the data is shared by the child nodes A and B. That is, the load balancer decentralizes the processing by changing the position where the data of each of the child nodes A and B is read, or by distributing the shared data to the child nodes A and B in advance. ..

これに対して、本実施形態に係る分散処理システム1(統合データベース)においては、図19の右側に示すように、子ノードA及びB(例えば、第1及び第2DB管理装置31及び32)の各々が管理(所持)している異なるデータ(テーブル)に対してクエリに対する処理を実行するものであるため、上記したロードバランサのように予めデータを分配しておくことができない。 On the other hand, in the distributed processing system 1 (integrated database) according to the present embodiment, as shown on the right side of FIG. 19, the child nodes A and B (for example, the first and second DB management devices 31 and 32) Since the processing for the query is executed for different data (tables) managed (possessed) by each, the data cannot be distributed in advance like the load balancer described above.

このため、本実施形態においては、クエリに対する処理を実行する際に処理量が偏ると予想されるノード(例えば、第1DB管理装置31)の処理を分散及び最適化する構成を採用することにより、分散処理システム1全体の動作を高速化することができる。 Therefore, in the present embodiment, by adopting a configuration that distributes and optimizes the processing of the node (for example, the first DB management device 31) whose processing amount is expected to be biased when executing the processing for the query. The operation of the entire distributed processing system 1 can be speeded up.

なお、本実施形態においては格納部201に格納される管理装置情報が演算性能情報、レコード数情報及び通信性能情報の全てを含むものとして説明したが、当該管理装置情報は、第1及び第2DB管理装置31及び32の処理時間を計算するために用いられる情報であればよく、例えば演算性能情報、レコード数情報及び通信性能情報の少なくとも1つを含むものであればよい。この管理装置情報は、例えば第1及び第2DB管理装置31及び32から収集され、定期的に更新されてもよい。 In the present embodiment, the management device information stored in the storage unit 201 has been described as including all of the calculation performance information, the number of records information, and the communication performance information, but the management device information is the first and second DBs. The information may be any information used for calculating the processing time of the management devices 31 and 32, and may include, for example, at least one of calculation performance information, record number information, and communication performance information. This management device information may be collected from, for example, the first and second DB management devices 31 and 32 and updated periodically.

また、例えば第1DB管理装置31のデータベース311はテーブルt2(第3テーブル)を更に格納し、第2DB管理装置32のデータベース311はテーブルt2(第4テーブル)を更に格納し、当該第1DB管理装置31のテーブルt2が有するレコード及び第2DB管理装置32のテーブルt2が有するレコードは同一のフィールドから構成される。また、本実施形態においてクライアント端末10から分散処理装置20に送信されるクエリは、テーブルt1(第1及び第2テーブル)とテーブルt2(第3及び第4テーブル)との結合演算結果を取得するためのクエリを含む。 Further, for example, the database 311 of the first DB management device 31 further stores the table t2 (third table), and the database 311 of the second DB management device 32 further stores the table t2 (fourth table). The record of the table t2 of 31 and the record of the table t2 of the second DB management device 32 are composed of the same fields. Further, in the query transmitted from the client terminal 10 to the distributed processing apparatus 20 in the present embodiment, the result of the join operation between the table t1 (first and second tables) and the table t2 (third and fourth tables) is acquired. Includes a query for.

この場合、第1及び第2DB管理装置31及び32は当該第1及び第2DB管理装置31及び32のテーブルt2を組み合わせたテーブルT2を用いてクエリに対する処理を実行するが、第1及び第2DB管理装置31及び32のテーブルt1の容量は、当該テーブルT2の容量よりも大きい。これによれば、第1及び第2DB管理装置31及び32からテーブルt1を収集し、当該収集されたテーブルt1を組み合わせたテーブルを当該第1及び第2DB管理装置31及び32に配布する構成と比較して、分散処理装置20と第1及び第2DB管理装置31及び32との間の通信量を削減することができるため、高速な処理を実現することが可能となる。 In this case, the first and second DB management devices 31 and 32 execute the processing for the query by using the table T2 which is a combination of the tables t2 of the first and second DB management devices 31 and 32, but the first and second DB management devices 31 and 32 are managed. The capacity of the table t1 of the devices 31 and 32 is larger than the capacity of the table T2. According to this, the table t1 is collected from the first and second DB management devices 31 and 32, and the table in which the collected tables t1 are combined is distributed to the first and second DB management devices 31 and 32. As a result, the amount of communication between the distributed processing device 20 and the first and second DB management devices 31 and 32 can be reduced, so that high-speed processing can be realized.

ここで、本実施形態においては、例えば第2DB管理装置32の処理時間が第1DB管理装置31の処理時間未満である場合に第2DB管理装置32が第1DB管理装置31から対象レコードを取得するものとして説明したが、例えば第1DB管理装置31の処理時間と第2DB管理装置32の処理時間との差分が小さい場合には、少数のレコードが対象レコードとして第1DB管理装置31から第2DB管理装置32に転送されることになる。一般的には演算処理よりも送信(転送)処理の方が時間を要するため、第1DB管理装置31から第2DB管理装置32に少数のレコードが転送されただけでは、第1DB管理装置31の処理量を十分に低減することができず、更には当該レコードの転送に要する時間が処理の低速化の要因になり得る。 Here, in the present embodiment, for example, when the processing time of the second DB management device 32 is less than the processing time of the first DB management device 31, the second DB management device 32 acquires the target record from the first DB management device 31. However, for example, when the difference between the processing time of the first DB management device 31 and the processing time of the second DB management device 32 is small, a small number of records are the target records from the first DB management device 31 to the second DB management device 32. Will be transferred to. In general, the transmission (transfer) process takes more time than the arithmetic process. Therefore, if only a small number of records are transferred from the first DB management device 31 to the second DB management device 32, the process of the first DB management device 31 is performed. The amount cannot be sufficiently reduced, and the time required for transferring the record may be a factor of slowing down the processing.

このため、本実施形態においては、第1DB管理装置31の処理時間と第2DB管理装置32の処理時間との差分が予め定められた値以上である場合に、第2DB管理装置32が第1DB管理装置31から対象レコードを取得するようにしてもよい。換言すれば、第1DB管理装置31の処理時間と第2DB管理装置32の処理時間との差分が小さい場合には、対象レコードが転送されない構成とすることができる。この場合、第1及び第2DB管理装置31及び32の各々においては、図7及び図8で説明した結合演算が実行されればよい。 Therefore, in the present embodiment, when the difference between the processing time of the first DB management device 31 and the processing time of the second DB management device 32 is equal to or more than a predetermined value, the second DB management device 32 manages the first DB. The target record may be acquired from the device 31. In other words, if the difference between the processing time of the first DB management device 31 and the processing time of the second DB management device 32 is small, the target record may not be transferred. In this case, the join operation described with reference to FIGS. 7 and 8 may be executed in each of the first and second DB management devices 31 and 32.

ここでは、第2DB管理装置32が第1DB管理装置31からレコードを取得する場合について説明したが、第1DB管理装置31が第2DB管理装置32からレコードを取得するような場合についても同様である。 Here, the case where the second DB management device 32 acquires the record from the first DB management device 31 has been described, but the same applies to the case where the first DB management device 31 acquires the record from the second DB management device 32.

また、本実施形態においては、図16において説明したように、例えば第2DB管理装置32が第1DB管理装置31から直接対象レコードを取得するものとして主に説明したが、当該対象レコードは、分散処理装置20を介して取得される構成であってもよい。 Further, in the present embodiment, as described in FIG. 16, for example, the second DB management device 32 is mainly described as acquiring the target record directly from the first DB management device 31, but the target record is distributed processing. The configuration may be acquired via the device 20.

なお、上記した図15において説明したように、分散処理装置20の格納部201に格納されている管理装置情報(通信性能情報)が分散処理装置20と第1及び第2DB管理装置31及び32との間の通信性能に加えて、当該第1及び第2DB管理装置31及び32間の通信性能(第2通信性能)を含む場合、本実施形態においては、当該通信性能情報に基づいてレコードを取得する経路を決定する構成としてもよい。 As described with reference to FIG. 15, the management device information (communication performance information) stored in the storage unit 201 of the distributed processing device 20 includes the distributed processing device 20 and the first and second DB management devices 31 and 32. When the communication performance between the first and second DB management devices 31 and 32 (second communication performance) is included in addition to the communication performance between the two, in the present embodiment, a record is acquired based on the communication performance information. It may be configured to determine the route to be performed.

ここで、例えば第2DB管理装置32が第1DB管理装置31のテーブルt1が有する複数のレコードの一部を対象レコードとして取得するものとすると、当該対象レコードを取得する経路には、第1DB管理装置31から直接する第1経路と、分散処理装置20を介して取得する第2経路とが含まれる。 Here, for example, assuming that the second DB management device 32 acquires a part of a plurality of records included in the table t1 of the first DB management device 31 as the target record, the first DB management device is used as a route for acquiring the target record. A first path directly from 31 and a second path acquired via the distributed processing apparatus 20 are included.

例えば図20に示すように、分散処理装置20と第1及び第2DB管理装置31及び32との間の通信性能(値)が100、第1及び第2DB管理装置31及び32間の通信性能(値)が20であるものとすると、分散処理装置20(クエリ作成部205)は、分散処理装置20を介して取得する第1経路の方が、第1DB管理装置31から直接取得する第2経路よりも高速に対象レコードを取得することができると判定することができる。 For example, as shown in FIG. 20, the communication performance (value) between the distributed processing device 20 and the first and second DB management devices 31 and 32 is 100, and the communication performance (value) between the first and second DB management devices 31 and 32 ( Assuming that the value) is 20, in the distributed processing device 20 (query creation unit 205), the first path acquired via the distributed processing device 20 is the second path directly acquired from the first DB management device 31. It can be determined that the target record can be acquired at a higher speed than that.

上記したように例えば第1及び第2DB管理装置31及び32間で低速な通信が実行される場合には、クエリ作成部205は、レコードを取得する経路として第1経路を決定し、当該第1経路で対象レコードを取得する実行計画を作成することができる。これによれば、第2DB管理装置32は、分散処理装置20において作成されたクエリに対する処理(結合演算)を実行する際に、対象レコードを第1経路で(つまり、分散処理装置20を介して)取得することができる。 As described above, for example, when low-speed communication is executed between the first and second DB management devices 31 and 32, the query creation unit 205 determines the first route as the route for acquiring the record, and the first route is determined. It is possible to create an execution plan to acquire the target record in the route. According to this, when the second DB management device 32 executes the process (join operation) for the query created in the distributed processing device 20, the target record is set in the first path (that is, via the distributed processing device 20). ) Can be obtained.

一方、例えば分散処理装置20が配置される環境等によっては、分散処理装置20と第1及び第2DB管理装置31及び32との間の通信性能よりも、当該第1及び第2DB管理装置31及び32間の通信性能の方が高い場合がある。このような場合には、クエリ作成部205は、レコードを取得する経路として第2経路を決定し、当該第2経路でレコードを取得する実行計画を作成すればよい。これによれば、第2DB管理装置32は、分散処理装置20において作成されたクエリに対する処理(結合演算)を実行する際に、対象レコードを第2経路で(つまり、メッシュネットワークを介して第1DB管理装置31から直接)取得することができる。 On the other hand, for example, depending on the environment in which the distributed processing device 20 is arranged, the communication performance between the distributed processing device 20 and the first and second DB management devices 31 and 32 is more important than the first and second DB management devices 31 and The communication performance between 32 may be higher. In such a case, the query creation unit 205 may determine the second route as the route for acquiring the record, and create an execution plan for acquiring the record in the second route. According to this, when the second DB management device 32 executes the process (join operation) for the query created in the distributed processing device 20, the target record is set in the second path (that is, the first DB via the mesh network). It can be obtained (directly from the management device 31).

なお、第1~第3DB管理装置31~33は例えばメッシュネットワークを介して互いに通信可能に接続されるが、当該第1~第3DB管理装置31~33間は常時接続されていなくてもよい。このような場合において、例えば第2DB管理装置32が第1DB管理装置31から対象レコードを直接取得するためには、当該第2DB管理装置32は、当該第1DB管理装置31への接続情報を用いて当該第1DB管理装置31に接続する必要がある。この第1DB管理装置31への接続情報は、当該第1DB管理装置31と通信を行う(当該第1DB管理装置31に接続する)ための情報であり、例えばIPアドレス及びパスワード等を含む。例えば第3DB管理装置33が第1DB管理装置31から対象レコードを直接取得する場合も同様に、当該第1DB管理装置31への接続情報が必要である。他のDB管理装置間についても同様である。 The first to third DB management devices 31 to 33 are connected to each other so as to be communicable with each other via, for example, a mesh network, but the first to third DB management devices 31 to 33 may not always be connected to each other. In such a case, for example, in order for the second DB management device 32 to directly acquire the target record from the first DB management device 31, the second DB management device 32 uses the connection information to the first DB management device 31. It is necessary to connect to the first DB management device 31. The connection information to the first DB management device 31 is information for communicating with the first DB management device 31 (connecting to the first DB management device 31), and includes, for example, an IP address and a password. For example, when the third DB management device 33 directly acquires the target record from the first DB management device 31, connection information to the first DB management device 31 is also required. The same applies to between other DB management devices.

ここで、例えば分散処理システム1が多数のDB管理装置を備える構成の場合、1つのDB管理装置が他の全てのDB管理装置(全兄弟ノード)への接続情報を保持しておくことは困難である。このため、例えば第2DB管理装置32が第1DB管理装置31から対象レコードを取得する場合において当該対象レコードを取得する経路として第2経路が決定された場合には、図21に示すように、当該第1DB管理装置31への接続情報を含む実行計画が作成され、当該接続情報が分散処理装置20から第2DB管理装置32に送信されるものとする。これによれば、第2DB管理装置32が第1DB管理装置31(を含む全てのDB管理装置)への接続情報を予め保持していなくても、分散処理装置20から送信される接続情報を用いて第1DB管理装置31から対象レコードを直接取得することができる。この場合、分散処理システム1に備えられる複数のDB管理装置(第1~第3DB管理装置31~33)への接続情報は、例えば分散処理装置20(格納部201)において管理されていればよい。 Here, for example, when the distributed processing system 1 is configured to include a large number of DB management devices, it is difficult for one DB management device to hold connection information to all other DB management devices (all sibling nodes). Is. Therefore, for example, when the second DB management device 32 acquires the target record from the first DB management device 31, when the second route is determined as the route for acquiring the target record, the second route is determined as shown in FIG. 21. It is assumed that an execution plan including connection information to the first DB management device 31 is created, and the connection information is transmitted from the distributed processing device 20 to the second DB management device 32. According to this, even if the second DB management device 32 does not hold the connection information to the first DB management device 31 (including all the DB management devices) in advance, the connection information transmitted from the distributed processing device 20 is used. The target record can be directly acquired from the first DB management device 31. In this case, the connection information to the plurality of DB management devices (first to third DB management devices 31 to 33) provided in the distributed processing system 1 may be managed by, for example, the distributed processing device 20 (storage unit 201). ..

ここでは、分散処理装置20から第2DB管理装置32に第1DB管理装置31への接続情報が送信されるものとして説明したが、当該接続情報は、例えば図22に示すように、第2DB管理装置32が分散処理装置20にアクセスすることによって取得されてもよい。 Here, it has been described that the connection information to the first DB management device 31 is transmitted from the distributed processing device 20 to the second DB management device 32, but the connection information is the second DB management device as shown in FIG. 22, for example. 32 may be acquired by accessing the distributed processing device 20.

また、本実施形態においては、分散処理システム1がテーブルt1及びt2を格納するデータベースを管理する第1~第3DB管理装置31~33を備えるものとして説明したが、例えば第3DB管理装置33はテーブルt1及びt2が格納されていないデータベース(第3データベース)を管理するDB管理装置であってもよい。本実施形態においては、このような構成の場合に、例えば第2DB管理装置32の代わりに第3DB管理装置33が第1DB管理装置31から対象レコードを取得し、当該第3DB管理装置33において、当該対象レコードを有するテーブルt1及び分散処理装置20から配布されたテーブルT2に対する結合演算(つまり、分散処理装置20において作成される第4クエリに対する処理)が実行される構成とすることができる。すなわち、本実施形態においては、ユーザによって指定されたクエリに関するデータ(テーブルt1及びt2)を管理していないDB管理装置(子ノード)に当該クエリに対する処理を分散するようにしてもよい。 Further, in the present embodiment, it has been described that the distributed processing system 1 includes the first to third DB management devices 31 to 33 that manage the databases storing the tables t1 and t2. For example, the third DB management device 33 is a table. It may be a DB management device that manages a database (third database) in which t1 and t2 are not stored. In the present embodiment, in the case of such a configuration, for example, the third DB management device 33 acquires the target record from the first DB management device 31 instead of the second DB management device 32, and the third DB management device 33 obtains the target record. The configuration may be such that the join operation (that is, the processing for the fourth query created in the distributed processing device 20) for the table t1 having the target record and the table T2 distributed from the distributed processing device 20 is executed. That is, in the present embodiment, the processing for the query may be distributed to the DB management devices (child nodes) that do not manage the data (tables t1 and t2) related to the query specified by the user.

また、本実施形態においてはクエリに対する処理(結合演算)を複数のDB管理装置に分散するものとして主に説明したが、例えば各DB管理装置のテーブルt1及びt2のサイズが小さい(レコードの数が少ない)場合または分散処理装置20の演算性能が複数のDB管理装置と比較して十分に高いような場合には、分散処理装置20側で全ての結合演算を実行する構成としてもよい。この場合には、上記した図6において説明したような処理が分散処理装置20において実行されればよい。 Further, in the present embodiment, the processing (join operation) for the query is mainly described as being distributed to a plurality of DB management devices, but for example, the sizes of the tables t1 and t2 of each DB management device are small (the number of records is small). If the number is small) or if the calculation performance of the distributed processing device 20 is sufficiently higher than that of the plurality of DB management devices, the distributed processing device 20 may be configured to execute all the join operations. In this case, the processing as described with reference to FIG. 6 may be executed in the distributed processing apparatus 20.

なお、分散処理装置20側で全ての結合演算を実行するか否かは、当該分散処理装置20側で全ての結合演算を実行した場合に必要な処理時間を計算し、当該処理時間と例えば図16に示すステップS4において計算される各DB管理装置の処理時間とを比較することによって判定されてもよい。 Whether or not to execute all the join operations on the distributed processing apparatus 20 side is determined by calculating the processing time required when all the join operations are executed on the distributed processing apparatus 20 side, and the processing time and, for example, the figure. It may be determined by comparing with the processing time of each DB management device calculated in step S4 shown in 16.

更に、本実施形態においては、例えば各DB管理装置の処理時間に基づいて、複数のDB管理装置のうちの一部のDB管理装置にのみクエリに対する処理を分散し、残りの処理を分散処理装置20側で実行するような構成とすることも可能である。 Further, in the present embodiment, for example, based on the processing time of each DB management device, the processing for the query is distributed only to some DB management devices among the plurality of DB management devices, and the remaining processing is distributed processing device. It is also possible to configure it so that it is executed on the 20 side.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。 Although some embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These embodiments can be implemented in various other embodiments, and various omissions, replacements, and changes can be made without departing from the gist of the invention. These embodiments and variations thereof are included in the scope of the invention described in the claims and the equivalent scope thereof, as are included in the scope and gist of the invention.

10…クライアント端末、20…分散処理装置、31…第1DB管理装置(第1データベース管理装置)、32…第2DB管理装置(第2データベース管理装置)、33…第3DB管理装置(第3データベース管理装置)、21…CPU、22…不揮発性メモリ、23…主メモリ、24…通信デバイス、201…格納部、202…情報管理部、203…通信部、204…クエリ解析部、205…クエリ作成部、206…クエリ実行部、207…結果集積部、311…データベース、312…通信部、313…クエリ実行部、314…情報管理部。 10 ... client terminal, 20 ... distributed processing device, 31 ... first DB management device (first database management device), 32 ... second DB management device (second database management device), 33 ... third DB management device (third database management) Device), 21 ... CPU, 22 ... Non-volatile memory, 23 ... Main memory, 24 ... Communication device, 201 ... Storage unit, 202 ... Information management unit, 203 ... Communication unit, 204 ... Query analysis unit, 205 ... Query creation unit , 206 ... Query execution unit, 207 ... Result accumulation unit, 311 ... Database, 312 ... Communication unit, 313 ... Query execution unit, 314 ... Information management department.

Claims (14)

分散処理装置と、当該分散処理装置と通信可能に接続される第1データベースを管理する第1データベース管理装置及び前記第1データベースとは異なる第2データベースを管理する第2データベース管理装置とを備える分散処理システムにおいて、
前記第1データベースは、前記第1データベース管理装置において収集された複数の第1レコードを有する第1テーブルを格納し、
前記第2データベースは、前記第2データベース管理装置において収集された複数の第2レコードを有する第2テーブルを格納し、
前記第1及び第2レコードは、同一のフィールドから構成され、
前記分散処理装置は、
前記第1及び第2データベース管理装置の各々の演算性能、前記第1テーブルが有する第1レコードの数及び前記第2テーブルが有する第2レコードの数、または前記分散処理装置と前記第1及び第2データベース管理装置との間の第1通信性能を含む管理装置情報を格納する格納手段と、
前記第1及び第2テーブルが有する第1及び第2レコードを取得するための第1クエリを受信する受信手段と、
前記管理装置情報に基づいて、前記受信された第1クエリに対する前記第1データベース管理装置の第1処理時間及び前記第2データベース管理装置の第2処理時間を計算する計算手段と、
前記計算された第1及び第2処理時間に基づいて第2及び第3クエリを作成する作成手段と
を含み、
前記第1データベース管理装置は、前記作成された第2クエリに対する処理を実行する第1クエリ実行手段を含み、
前記第2データベース管理装置は、前記作成された第3クエリに対する処理を実行する第2クエリ実行手段を含み、
前記第1クエリ実行手段は、前記計算された第1処理時間が前記計算された第2処理時間未満である場合、前記第2テーブルが有する複数の第2レコードの一部を前記第2データベースから取得して前記第2クエリに対する処理を実行し、
前記第2クエリ実行手段は、前記計算された第2処理時間が前記計算された第1処理時間未満である場合、前記第1テーブルが有する複数の第1レコードの一部を前記第1データベースから取得して前記第3クエリに対する処理を実行する
分散処理システム。
A distributed processing device including a first database management device that manages a first database communicably connected to the distributed processing device, and a second database management device that manages a second database different from the first database. In the processing system
The first database stores a first table having a plurality of first records collected in the first database management device.
The second database stores a second table having a plurality of second records collected in the second database management device.
The first and second records are composed of the same fields.
The distributed processing device is
The computing performance of each of the first and second database management devices, the number of first records in the first table and the number of second records in the second table, or the distributed processing device and the first and first. 2 A storage means for storing management device information including the first communication performance with the database management device, and
A receiving means for receiving the first query for acquiring the first and second records of the first and second tables, and
A calculation means for calculating the first processing time of the first database management device and the second processing time of the second database management device for the received first query based on the management device information.
Including a creation means for creating second and third queries based on the calculated first and second processing times.
The first database management device includes a first query execution means for executing a process for the created second query.
The second database management device includes a second query execution means for executing a process for the created third query.
When the calculated first processing time is less than the calculated second processing time, the first query executing means may obtain a part of a plurality of second records of the second table from the second database. Acquire and execute the process for the second query,
When the calculated second processing time is less than the calculated first processing time, the second query executing means may obtain a part of a plurality of first records of the first table from the first database. A distributed processing system that acquires and executes processing for the third query.
前記格納手段は、前記第1及び第2データベース管理装置から収集された管理装置情報を格納する請求項1記載の分散処理システム。 The distributed processing system according to claim 1, wherein the storage means stores management device information collected from the first and second database management devices. 前記管理装置情報は、定期的に更新される請求項2記載の分散処理システム。 The distributed processing system according to claim 2, wherein the management device information is periodically updated. 前記第1データベースは、前記第1テーブルとは異なる第3テーブルを更に格納し、
前記第2データベースは、前記第2テーブルとは異なる第4テーブルを更に格納し、
前記第3及び前記第4テーブルの各々が有するレコードは、同一のフィールドから構成され、
前記第1クエリは、前記第1及び第2テーブルと前記第3及び第4テーブルとの結合演算結果を取得するためのクエリを含む
請求項1~3のいずれか一項に記載の分散処理システム。
The first database further stores a third table different from the first table.
The second database further stores a fourth table different from the second table.
The records of each of the third and fourth tables are composed of the same fields.
The distributed processing system according to any one of claims 1 to 3, wherein the first query includes a query for acquiring a join operation result between the first and second tables and the third and fourth tables. ..
前記第1及び第2テーブルの容量は、前記第3及び第4テーブルの容量よりも大きい請求項4記載の分散処理システム。 The distributed processing system according to claim 4, wherein the capacities of the first and second tables are larger than the capacities of the third and fourth tables. 前記第1クエリ実行手段は、前記第3テーブル及び前記第2データベースに格納されている第4テーブルを組み合わせたテーブルを用いて前記第2クエリに対する処理を実行し、
前記第2クエリ実行手段は、前記第1データベースに格納されている第3テーブル及び前記第4テーブルを組み合わせたテーブルを用いて前記第3クエリに対する処理を実行する
請求項4または5記載の分散処理システム。
The first query execution means executes a process for the second query using a table in which the third table and the fourth table stored in the second database are combined.
The distributed process according to claim 4 or 5, wherein the second query execution means executes a process for the third query using a table in which the third table and the fourth table stored in the first database are combined. system.
前記第1クエリ実行手段は、前記第1処理時間が前記第2処理時間未満であり、かつ、当該第1処理時間と当該第2処理時間との差分が予め定められた値以上である場合に、前記第2テーブルが有する複数の第2レコードの一部を前記第2データベースから取得し、
前記第2クエリ実行手段は、前記第2処理時間が前記第1処理時間未満であり、かつ、当該第1処理時間と当該第2処理時間との差分が前記予め定められた値以上である場合に、前記第1テーブルが有する複数の第2レコードの一部が前記第1データベースから取得する
請求項1~6のいずれか一項に記載の分散処理システム。
The first query execution means is when the first processing time is less than the second processing time and the difference between the first processing time and the second processing time is equal to or more than a predetermined value. , A part of the plurality of second records of the second table is acquired from the second database.
In the second query execution means, when the second processing time is less than the first processing time and the difference between the first processing time and the second processing time is equal to or more than the predetermined value. The distributed processing system according to any one of claims 1 to 6, wherein a part of a plurality of second records of the first table is acquired from the first database.
前記格納手段に格納されている管理装置情報は、前記第1データベース管理装置と第2データベース管理装置との間の第2通信性能を更に含み、
前記分散処理装置は、前記管理装置情報に含まれる第1及び第2通信性能に基づいて、前記複数の第1レコードの一部または前記複数の第2レコードの一部を取得する経路を決定する決定手段を更に含む
請求項1~7のいずれか一項に記載の分散処理システム。
The management device information stored in the storage means further includes a second communication performance between the first database management device and the second database management device.
The distributed processing device determines a route for acquiring a part of the plurality of first records or a part of the plurality of second records based on the first and second communication performance included in the management device information. The distributed processing system according to any one of claims 1 to 7, further comprising a determination means.
前記経路は、前記複数の第1レコードの一部または前記複数の第2レコードの一部を前記第1及び第2データベース管理装置から直接取得する第1経路と、前記複数の第1レコードの一部または前記複数の第2レコードの一部を前記分散処理装置を介して取得する第2経路とを含む請求項8記載の分散処理システム。 The route is one of the first route for directly acquiring a part of the plurality of first records or a part of the plurality of second records from the first and second database management devices, and one of the plurality of first records. The distributed processing system according to claim 8, further comprising a second route for acquiring a unit or a part of the plurality of second records via the distributed processing apparatus. 前記分散処理装置は、前記第1及び第2データベース管理装置間の通信を実行するための接続情報を前記第1または第2データベース管理装置に送信する送信手段を更に含む請求項9記載の分散処理システム。 The distributed processing according to claim 9, wherein the distributed processing device further includes a transmission means for transmitting connection information for executing communication between the first and second database management devices to the first or second database management device. system. 第1及び第2レコードと同一のフィールドから構成されるレコードを有するテーブルが格納されていない第3データベースを管理する第3データベース管理装置を更に備え、
前記第3データベース管理装置は、前記第1または第2データベース管理装置の代わりに、前記複数の第1レコードの一部または前記複数の第2レコードの一部取得して前記分散処理装置において作成される第4クエリに対する処理を実行する第3クエリ実行手段を含む
請求項1記載の分散処理システム。
Further provided with a third database management device for managing a third database in which a table having a record composed of the same fields as the first and second records is not stored.
The third database management device is created in the distributed processing device by acquiring a part of the plurality of first records or a part of the plurality of second records in place of the first or second database management device. The distributed processing system according to claim 1, which includes a third query execution means for executing processing for the fourth query.
請求項1記載の分散処理システムに用いられる分散処理装置。 A distributed processing apparatus used in the distributed processing system according to claim 1. 請求項1記載の分散処理システムに用いられるデータベース管理装置。 A database management device used in the distributed processing system according to claim 1. 管理装置情報を格納する格納手段を含む分散処理装置と、複数の第1レコードを有する第1テーブルを格納する第1データベースを管理する第1データベース管理装置及び前記複数の第1レコードと同一のフィールドから構成される複数の第2レコードを有する第2テーブルを格納する第2データベースを管理する第2データベース管理装置とを備える分散処理システムが実行する方法であって、
前記第1及び第2テーブルが有する第1及び第2レコードを取得するための第1クエリを受信するステップと、
前記管理装置情報に基づいて、前記受信された第1クエリに対する前記第1データベース管理装置の第1処理時間及び前記第2データベース管理装置の第2処理時間を計算するステップと、
前記計算された第1及び第2処理時間に基づいて第2及び第3クエリを作成するステップと、
前記作成された第2クエリに対する処理を実行するステップと、
前記作成された第3クエリに対する処理を実行するステップと
を具備し、
前記管理装置情報は、前記第1及び第2データベース管理装置の各々の演算性能、前記第1テーブルが有する第1レコードの数及び前記第2テーブルが有する第2レコードの数、または前記分散処理装置と前記第1及び第2データベース管理装置との間の第1通信性能を含み、
前記第2クエリに対する処理を実行するステップは、前記計算された第1処理時間が前記計算された第2処理時間未満である場合、前記第2テーブルが有する複数の第2レコードの一部を前記第2データベースから取得して前記第2クエリに対する処理を実行するステップを含み、
前記第3クエリに対する処理を実行するステップは、前記計算された第2処理時間が前記計算された第1処理時間未満である場合、前記第1テーブルが有する複数の第1レコードの一部を前記第1データベースから取得して前記第3クエリに対する処理を実行するステップを含む
方法。
A distributed processing device including a storage means for storing management device information, a first database management device for managing a first database for storing a first table having a plurality of first records, and the same field as the plurality of first records. It is a method executed by a distributed processing system including a second database management device that manages a second database that stores a second table having a plurality of second records composed of.
The step of receiving the first query for acquiring the first and second records of the first and second tables, and
A step of calculating the first processing time of the first database management device and the second processing time of the second database management device for the received first query based on the management device information.
The step of creating the second and third queries based on the calculated first and second processing times, and
The step to execute the process for the created second query and
It is provided with a step of executing a process for the created third query.
The management device information is the calculation performance of each of the first and second database management devices, the number of first records of the first table and the number of second records of the second table, or the distributed processing device. Includes first communication performance between the first and second database management devices.
When the calculated first processing time is less than the calculated second processing time, the step of executing the processing for the second query includes a part of the plurality of second records of the second table. Including the step of acquiring from the second database and executing the process for the second query.
In the step of executing the process for the third query, when the calculated second processing time is less than the calculated first processing time, a part of the plurality of first records of the first table is described. A method comprising a step of retrieving from a first database and executing processing for the third query.
JP2020117065A 2020-07-07 2020-07-07 Distributed processing system, distributed processing device, database management device and method Active JP7434088B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020117065A JP7434088B2 (en) 2020-07-07 2020-07-07 Distributed processing system, distributed processing device, database management device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020117065A JP7434088B2 (en) 2020-07-07 2020-07-07 Distributed processing system, distributed processing device, database management device and method

Publications (2)

Publication Number Publication Date
JP2022014633A true JP2022014633A (en) 2022-01-20
JP7434088B2 JP7434088B2 (en) 2024-02-20

Family

ID=80120485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020117065A Active JP7434088B2 (en) 2020-07-07 2020-07-07 Distributed processing system, distributed processing device, database management device and method

Country Status (1)

Country Link
JP (1) JP7434088B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847102B2 (en) 2021-05-20 2023-12-19 Kabushiki Kaisha Toshiba Data virtualization apparatus and method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6112110B2 (en) 2012-06-18 2017-04-12 日本電気株式会社 Distributed system, load balancing method, node device, and program
JP6262505B2 (en) 2013-11-29 2018-01-17 Kddi株式会社 Distributed data virtualization system, query processing method, and query processing program
JP6253725B1 (en) 2016-07-12 2017-12-27 株式会社東芝 Database system, data coupling method, integrated server, data coupling program, database system linkage method, and database system linkage program
JP6882673B2 (en) 2017-06-02 2021-06-02 富士通株式会社 Communication route management program, communication route management method, and communication route management device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847102B2 (en) 2021-05-20 2023-12-19 Kabushiki Kaisha Toshiba Data virtualization apparatus and method

Also Published As

Publication number Publication date
JP7434088B2 (en) 2024-02-20

Similar Documents

Publication Publication Date Title
US11163809B2 (en) Management of a database system
US10127285B2 (en) Customizable ranking of search engine results in multi-tenant architecture
US11030171B2 (en) Elastic sharding of data in a multi-tenant cloud
US7739314B2 (en) Scalable user clustering based on set similarity
US20160205218A1 (en) Multi-adapter support in the cloud
US11394794B2 (en) Fast ingestion of records in a database using data locality and queuing
US20150310045A1 (en) Managing an index of a table of a database
US20120036146A1 (en) Apparatus for elastic database processing with heterogeneous data
US20090055370A1 (en) System and method for data warehousing and analytics on a distributed file system
US10078676B2 (en) Schema evolution in multi-tenant environment
US20150310050A1 (en) Managing a table of a database
US9229960B2 (en) Database management delete efficiency
US20160314212A1 (en) Query mediator, a method of querying a polyglot data tier and a computer program execuatable to carry out a method of querying a polyglot data tier
CN103262062A (en) Systems and methods for performing a nested join operation
US20150269224A1 (en) Query routing based on complexity class determination
US20190251097A1 (en) Optimized data distribution system
US20180302268A1 (en) Systems and Methods for Real Time Streaming
JP5844895B2 (en) Distributed data search system, distributed data search method, and management computer
JP6951846B2 (en) Computer system and task allocation method
CN106716400B (en) A kind of partition management method and device of tables of data
JP2022014633A (en) Distributed processing system, distributed processing device, database management device, and method
JP6084700B2 (en) Search system and search method
Malensek et al. Autonomous cloud federation for high-throughput queries over voluminous datasets
JP5464017B2 (en) Distributed memory database system, database server, data processing method and program thereof
JP2018116348A (en) Database system and data processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230731

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231117

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20231128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240207

R151 Written notification of patent or utility model registration

Ref document number: 7434088

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151