JP2020004339A - データベース管理装置およびクエリ分割方法 - Google Patents
データベース管理装置およびクエリ分割方法 Download PDFInfo
- Publication number
- JP2020004339A JP2020004339A JP2018126130A JP2018126130A JP2020004339A JP 2020004339 A JP2020004339 A JP 2020004339A JP 2018126130 A JP2018126130 A JP 2018126130A JP 2018126130 A JP2018126130 A JP 2018126130A JP 2020004339 A JP2020004339 A JP 2020004339A
- Authority
- JP
- Japan
- Prior art keywords
- server
- query
- unit
- database management
- management device
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
図1は、実施形態のデータベース管理装置1が備える基本的な機能を概略的に説明するための図である。
このデータベース管理装置1は、図1に示されるように、他のデータベース管理装置1の上位に位置づけられる上位サーバとして動作することができ、また、他のデータベース管理装置1の下位に位置づけられる下位サーバとして動作することができる。データベース管理装置1は、異なるデータソースのデータ、より詳しくは、下位サーバが保持するテーブルを、あたかも自身が保持するテーブルであるかのように扱うことのできる外部テーブル機能を有している。データベース管理装置1は、外部テーブル機能を使用し、複数の下位サーバに分散するテーブルを1つのテーブルに仮想化する仮想テーブル化を行うことによって、複数のテーブルから1度にデータを取得することができる。
図3に示されるように、データベース管理装置1は、プロセッサ11、主メモリ(内部記憶装置)12、通信装置13、外部記憶装置14などを有している。データベース管理装置1は、汎用的なコンピュータであってもよく、たとえば、外部記憶装置14に格納されるDBMS(DataBase Management System)プログラム100が主メモリ12にロードされてプロセッサ11によって実行されることで、汎用的なコンピュータがデータベース管理装置1として動作する。通信装置13は、ユーザからのクエリを受信したり、そのクエリの結果をユーザへ送信したり、上位サーバである他のデータベース管理装置1からのクエリを受信したり、そのクエリの結果を当該他のデータベース管理装置1へ送信したり、下位サーバである他のデータベース管理装置1へクエリを送信したり、そのクエリの結果を当該他のデータベース管理装置1から受信したりするための通信を司る。
図4は、DBMSプログラム100の機能ブロックの一例を示す図である。なお、図4には、DBMSプログラム100によって確保される記憶領域200内の概要も併せて示されている。この記憶領域200は、たとえば、外部記憶装置14上に確保される領域であって、主メモリ12を介して、DBMSプログラム100、より詳しくは、DBMSプログラム100を実行するプロセッサ11によってアクセスされる。
テーブル管理部121は、テーブル221を管理する。テーブル221は、行(レコード)と列(カラム)とからなる表(テーブル)形式のデータ構造体であり、複数のテーブル221が保持され得る。
図5(A)に示されるように、プロセッサ数情報211は、自サーバ、つまりデータベース管理装置1のプロセッサ数と、下位サーバ(サーバ1,サーバ2,…)のプロセッサ数とを含む。この例では、データベース管理装置1は、16個のプロセッサをもち、サーバ1やサーバ2は、4個のプロセッサをもつことなどが示されている。
図6は、上位サーバとして動作するデータベース管理装置1と、下位サーバとして動作するデータベース管理装置1との間の連携を示す図である。
たとえば、そのクエリで使用されるテーブルが3つの下位サーバに分散して保持されている場合、このクエリを実行するプロセス(本実施形態のデータベース管理装置1におけるクエリ実行部115に相当)を3つ生成し、これらを各下位サーバへ割り当て、各々にクエリを実行させる。しかしながら、この手法では、たとえば各下位サーバにおける保有レコード数などが考慮されていないため、リソースの効率的な割り当てが行われているとは言い難い。
第1に、このデータベース管理装置1では、クエリ分割部114によるクエリ実行部115の合計生成数(並列数)を、最大で自サーバのプロセッサ数とする。なお、たとえば自サーバのプロセッサ数が下位サーバ数未満の場合などにおいては、クエリ実行部115の合計生成数が自サーバのプロセッサ数を超えることも生じ得る。
以上の基本的な規則を踏まえて、このデータベース管理装置1、より詳しくは、クエリ分割部114は、適正な数のクエリ実行部115を以下の通りに生成する。
まず、図7および図8を、図6と併せて参照して、上位サーバ(自サーバ)のプロセッサ数が(クエリで使用されるテーブルを保持する)下位サーバのプロセッサ数よりも多い場合におけるクエリ分割部114の動作例を説明する。
次に、図9および図10を、図6と併せて参照して、(クエリで使用されるテーブルを保持する)下位サーバの処理量がすべて同程度の場合におけるクエリ分割部114の動作例を説明する。
つまり、クエリ分割部114は、図10(C)に示されるように、サーバ1〜3に対して2つずつの合計6つのクエリ実行部115を生成することを決定する。よって、このクエリは、自サーバの8つのプロセッサの中の6つのプロセッサが用いられて6つのクエリ実行部115によって並列に実行されることになる。また、クエリ分割部114は、各下位サーバに対して生成される2つのクエリ実行部115用にクエリを2分割することを併せて実行する。その後、各下位サーバに対して、2つのクエリ分割部114から分割後のクエリが転送されることとなる。
ここでも、下位サーバとしてサーバ1〜3が存在し、これらの下位サーバに分散するテーブル1を使用するクエリを実行することを想定する。また、図11(A)に示されるように、プロセッサ数は、自サーバ(上位サーバ)が2、サーバ1が4、サーバ2が1、サーバ3が2であることを想定する。さらに、図11(B)に示されるように、テーブル1の保有レコード数は、サーバ1が10、サーバ2が20、サーバ3が10であることを想定する。つまり、下位サーバ全体の保有レコード数は40である。
クエリ分割部114は、たとえばSQL(Structured Query Language)において標準的なLIMIT句(図14:b1)およびOFFSET句(図14:b2)を使用してクエリを分割する。
この場合、クエリ分割部114は、図14に示されるように、(A)「SELECT * FROM Table1」というクエリを、(B1)「SELECT * FROM Table1 LIMIT 100/3」、(B2)「SELECT * FROM Table1 OFFSET 100/3 + 1 LIMIT 100/3」、(B3)「SELECT * FROM Table1 OFFSET 2(100/3) + 1」という3つのクエリに分割する。これらは自サーバのクエリ実行部115から下位サーバ側のクエリ実行部124に転送されて並列に実行されることになる。
続いて、データベース管理装置1は、保有レコード数の比率と(自サーバおよび各下位サーバの)プロセッサ数とに基づき、生成するクエリ実行部115の数、つまり各下位サーバへ割り当てる(自サーバの)プロセッサ数を決定する(ステップA3)。また、データベース管理装置1は、下位サーバごとに、生成するクエリ実行部115の数に基づき、クエリを分割する(ステップA4)。
図17は、下位サーバが異なる構成のデータソースである場合における当該下位サーバの違いを吸収するための仕組みの第1例を説明するための図である。なお、ここでは、図16で示した異なる構成のデータソース2A,2Bなどを、異構成データソース2と総称する。また、ここでは、図17中の異構成データソース2が、SQLを実行できないCSV形式でデータを保持するものであることを想定する。異構成データソース2は、クエリを実行するクエリ実行部131と、CSV形式で保持されるテーブルを管理するテーブル管理部132とを少なくとも含むDBMS処理部130を有する。
データベース管理装置1は、下位サーバが自サーバ(上位サーバ)と同様の構成であるか否かを調べる(ステップB1)。同様の構成である場合(ステップB1:YES)、下位サーバ側から自サーバ情報として下位サーバ情報が送信されてくるので、データベース管理装置1は、下位サーバ情報を能動的に下位サーバから収集することは行わない。
以上のように、本実施形態のデータベース管理装置1は、各下位サーバにおけるテーブルの保有レコード数、上位サーバ(自サーバ)のプロセッサ数、各下位サーバのプロセッサ数を考慮した、リソースの効率的な割り当てを実現する。
Claims (11)
- ツリー構造の分散型データベースを構成する複数のサーバの中の1つとして動作することが可能なデータベース管理装置であって、
自サーバおよび下位サーバのサーバ情報を管理するサーバ情報管理部と、
入力されたクエリを解析して前記クエリで使用されるテーブルを判定するクエリ解析部と、
自サーバおよび下位サーバのサーバ情報に基づき、前記クエリを実行するクエリ実行部の生成数を決定し、1つの下位サーバに対して複数のクエリ実行部が生成される場合、その数に応じて前記クエリを分割するクエリ分割部と、
前記決定された生成数の前記クエリ実行部による前記クエリの結果を集積する結果集積部と、
を具備するデータベース管理装置。 - 前記サーバ情報管理部は、自サーバおよび下位サーバのプロセッサ数と、複数の下位サーバに分散するテーブルについての各下位サーバの保有レコード数とを前記サーバ情報として管理し、
前記クエリ分割部は、自サーバのプロセッサ数と、前記クエリで使用されるテーブルを保持する下位サーバのプロセッサ数と、各下位サーバの保有レコード数の総レコード数に対する比の値とに基づき、前記クエリ実行部の生成数を決定する請求項1に記載のデータベース管理装置。 - 前記クエリ分割部は、自サーバのプロセッサ数に各下位サーバの保有レコード数の総レコード数に対する比の値を乗じて得られる値に基づき、各下位サーバに対して生成する前記クエリ実行部の数を決定する請求項2に記載のデータベース管理装置。
- 前記クエリ分割部は、いずれかの下位サーバにおいて、自サーバのプロセッサ数に当該下位サーバの保有レコード数の総レコード数に対する比の値を乗じて得られる値が当該下位サーバのプロセッサ数を超える場合、当該下位サーバに対して生成する前記クエリ実行部の数を当該下位サーバのプロセッサ数に決定する請求項3に記載のデータベース管理装置。
- 前記クエリ分割部は、いずれかの下位サーバにおいて、自サーバのプロセッサ数に当該下位サーバの保有レコード数の総レコード数に対する比の値を乗じて得られる値が1未満である場合、当該下位サーバに対して生成する前記クエリ実行部の数を1に決定する請求項3に記載のデータベース管理装置。
- 前記クエリ分割部は、前記1未満の値が得られて生成された前記クエリ実行部が複数存在する場合、当該複数のクエリ実行部の中の2以上を自サーバの1つのプロセッサに割り当てる請求項5に記載のデータベース管理装置。
- 自サーバに保持されるテーブルの保有レコード数が更新された場合、更新後の自サーバのサーバ情報を上位サーバへ送信する自サーバ情報送信部と、
下位サーバのサーバ情報を取得する下位サーバ情報取得部と、
を具備し、
前記サーバ情報管理部は、前記下位サーバ情報取得部によって取得される下位サーバのサーバ情報を管理する、
請求項1に記載のデータベース管理装置。 - 前記下位サーバ情報取得部は、下位サーバが、前記自サーバ情報送信部を有する、自サーバと同様の構成の場合、当該下位サーバのサーバ情報を、当該下位サーバ側に具備される前記自サーバ情報送信部から受信する請求項7に記載のデータベース管理装置。
- 前記下位サーバ情報取得部は、下位サーバが、前記自サーバ情報送信部を有しない、自サーバと異なる構成の場合、当該下位サーバのサーバ情報を、当該下位サーバから定期的に収集する請求項7に記載のデータベース管理装置。
- 前記下位サーバ情報取得部は、下位サーバが、前記自サーバ情報送信部を有しない、自サーバと異なる構成の場合、前記クエリ実行部が当該下位サーバへクエリを送信するタイミングで、サーバ情報を収集するためのクエリを前記クエリ実行部に当該下位サーバへ送信させる請求項7に記載のデータベース管理装置。
- ツリー構造の分散型データベースを構成する複数のサーバの中の1つとして動作することが可能なデータベース管理装置のクエリ分割方法であって、
自サーバおよび下位サーバのサーバ情報を管理することと、
入力されたクエリを解析して前記クエリで使用されるテーブルを判定することと、
自サーバおよび下位サーバのサーバ情報に基づき、前記クエリを並列的に実行する並列数を決定し、1つの下位サーバに対して複数のクエリが並列的に実行される場合、その数に応じて前記クエリを分割することと、
前記決定された並列数で実行される前記クエリの結果を集積することと、
を具備するクエリ分割方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018126130A JP6926035B2 (ja) | 2018-07-02 | 2018-07-02 | データベース管理装置およびクエリ分割方法 |
US16/411,188 US20200004757A1 (en) | 2018-07-02 | 2019-05-14 | Database management apparatus and query dividing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018126130A JP6926035B2 (ja) | 2018-07-02 | 2018-07-02 | データベース管理装置およびクエリ分割方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020004339A true JP2020004339A (ja) | 2020-01-09 |
JP6926035B2 JP6926035B2 (ja) | 2021-08-25 |
Family
ID=69008118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018126130A Active JP6926035B2 (ja) | 2018-07-02 | 2018-07-02 | データベース管理装置およびクエリ分割方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200004757A1 (ja) |
JP (1) | JP6926035B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021215362A1 (ja) * | 2020-04-21 | 2021-10-28 | Dendritik Design株式会社 | データベース管理システム |
US11847102B2 (en) | 2021-05-20 | 2023-12-19 | Kabushiki Kaisha Toshiba | Data virtualization apparatus and method |
JP7490529B2 (ja) | 2020-04-21 | 2024-05-27 | Dendritik Design株式会社 | データベース管理システム |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10860609B1 (en) | 2020-03-25 | 2020-12-08 | Snowflake Inc. | Distributed stop operator for query processing |
US20220207024A1 (en) * | 2020-12-31 | 2022-06-30 | Waggle Corporation | Tiered server topology |
-
2018
- 2018-07-02 JP JP2018126130A patent/JP6926035B2/ja active Active
-
2019
- 2019-05-14 US US16/411,188 patent/US20200004757A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021215362A1 (ja) * | 2020-04-21 | 2021-10-28 | Dendritik Design株式会社 | データベース管理システム |
JP7490529B2 (ja) | 2020-04-21 | 2024-05-27 | Dendritik Design株式会社 | データベース管理システム |
US11847102B2 (en) | 2021-05-20 | 2023-12-19 | Kabushiki Kaisha Toshiba | Data virtualization apparatus and method |
Also Published As
Publication number | Publication date |
---|---|
JP6926035B2 (ja) | 2021-08-25 |
US20200004757A1 (en) | 2020-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020004339A (ja) | データベース管理装置およびクエリ分割方法 | |
Zhao et al. | Dache: A data aware caching for big-data applications using the MapReduce framework | |
CN107391142B (zh) | 一种应用拆分的方法及装置 | |
JP6083290B2 (ja) | 分散処理システム | |
US9336270B2 (en) | Techniques for accessing a parallel database system via external programs using vertical and/or horizontal partitioning | |
CN108536808B (zh) | 一种基于Spark计算框架的数据获取方法和装置 | |
US11321209B2 (en) | Query-attempt assignment in a database environment | |
EP3575979B1 (en) | Query priority and operation-aware communication buffer management | |
US20220327040A1 (en) | Automated query retry execution in a database system | |
JP6269140B2 (ja) | アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置 | |
CN112307066B (zh) | 分布式数据聚合方法、系统、设备及存储介质 | |
CN106294757A (zh) | 一种基于超图划分的分布式数据库及其集群分区方法 | |
US20130263136A1 (en) | Information processing system and processing method for use therewith | |
US11494369B2 (en) | Identifying software regressions based on query retry attempts in a database environment | |
JP2016024612A (ja) | データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置 | |
CN112597173A (zh) | 一种分布式数据库集群系统对等处理系统及处理方法 | |
CN103634374A (zh) | 一种并发访问请求的处理方法及装置 | |
CN111209305B (zh) | 查询数据的方法、数据节点、分布式数据库、计算设备 | |
Roy et al. | A proposal for optimization of data node by horizontal scaling of name node using big data tools | |
CN114020430A (zh) | 一种分布式任务调度方法、装置、电子设备及存储介质 | |
Thangaselvi et al. | Improving the efficiency of MapReduce scheduling algorithm in Hadoop | |
KR102466247B1 (ko) | 오케스트레이터 환경에서 에이전트를 이용한 컨테이너 관리 장치 및 관리 방법 | |
CN113918644B (zh) | 一种管理应用程序的数据的方法及相关装置 | |
CN116668513A (zh) | 分布式环境下的远程连接系统及方法 | |
CN117667923A (zh) | 状态数据管理方法、系统、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200710 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210531 |
|
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: 20210706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210804 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6926035 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |