JP6367441B2 - Database device - Google Patents
Database device Download PDFInfo
- Publication number
- JP6367441B2 JP6367441B2 JP2017153915A JP2017153915A JP6367441B2 JP 6367441 B2 JP6367441 B2 JP 6367441B2 JP 2017153915 A JP2017153915 A JP 2017153915A JP 2017153915 A JP2017153915 A JP 2017153915A JP 6367441 B2 JP6367441 B2 JP 6367441B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- data
- unit
- database
- kvs
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本明細書に記載の実施の形態は、データベース装置に関する。 Embodiments described herein relate to a database apparatus.
インターネットの普及や、コンピュータの処理速度の向上などに伴い生成される、大容量のデジタルデータであるビッグデータが注目されている。ビッグデータは、単に大容量であるだけでなく、非定型でかつリアルタイム性が高い。従来のデータベース管理システムでは、データを定型化して蓄積し、その後で処理分析するため、相反する性質を持つビッグデータを扱うことは困難とされていた。しかし、近年、ビッグデータを高速かつ簡単に分析できる技術が登場し、ビッグデータを活用すれば、これまで予想できなかった新たなパターンやルールを発見できることが明らかとなった。そこで、ビッグデータなどの大規模データ処理を高速に行いたいという技術的要請が高まっている。 Big data, which is large-capacity digital data generated with the spread of the Internet and the improvement of computer processing speed, has attracted attention. Big data is not only large-capacity but also atypical and highly real-time. In a conventional database management system, data is standardized and accumulated, and then processed and analyzed, so it has been difficult to handle big data having conflicting properties. However, in recent years, technology that can analyze big data quickly and easily has appeared, and it has become clear that new patterns and rules that could not have been anticipated can be discovered by using big data. Thus, there is an increasing technical demand for high-speed processing of large-scale data such as big data.
大規模データ処理を高速に行う技術の一つとしてRDBMS(Relational DataBase Management System)があるが、RDBMSは内部処理が複雑なため、処理を高速に行うことができないという問題がある。 RDBMS (Relational DataBase Management System) is one of the technologies that perform large-scale data processing at high speed. However, RDBMS has a problem that internal processing is complicated and thus processing cannot be performed at high speed.
SQLでのデータ取得や操作は、通常、RDBMSであるため高速に実行できない。一方、KVS (Key Value Store)型データベースでは処理を高速に行うことができるが、通常はSQLを解釈できないため、既存のSQLアプリケーションから使用することができないという問題がある。 Data acquisition and manipulation using SQL is usually an RDBMS and cannot be performed at high speed. On the other hand, a KVS (Key Value Store) type database can perform processing at high speed, but normally has a problem that it cannot be used from existing SQL applications because it cannot interpret SQL.
KVS型データベースで複数valueを持たせる場合、アプリケーション側でvalueのシリアライズを行うことになるが、アプリケーションでシリアライズを行う場合、アプリケーションとデータベースでそれぞれテーブル構造を持つことになるため、テーブル構造を変更することが難しいという問題がある。 If you have multiple values in the KVS database, the application will serialize the value, but if you serialize in the application, the application and database will each have a table structure, so change the table structure There is a problem that it is difficult.
本発明の目的は、データ処理を高速で実行することを可能にしつつ、アプリケーションでシリアライズを行う場合であっても、テーブル構造を変更することが容易である、大規模データ処理の技術を提供することにある。 An object of the present invention is to provide a technique for large-scale data processing that enables data processing to be executed at high speed and allows easy change of the table structure even when serialization is performed by an application. There is.
本発明の実施の形態はデータベース装置として提案される。このデータベース装置は、記憶手段と、データ処理手段と、第2コマンド実行手段と、第1コマンド処理手段と、インタフェース手段とを有する。
記憶手段は、索引データと実データとをペアで保存するデータベース方式でデータを記憶する。
The embodiment of the present invention is proposed as a database apparatus. The database device includes storage means, data processing means, second command execution means, first command processing means, and interface means.
The storage means stores data in a database system that stores index data and actual data in pairs.
データ処理手段は、索引データと実データとをペアで保存するデータベース方式のためのデータベース言語である第1のデータベース言語で記述された第1のコマンドを受け取ると、当該第1のコマンドに応じて記憶手段に記憶されたデータを操作する。 When the data processing means receives a first command described in a first database language that is a database language for a database system that stores index data and actual data in pairs, the data processing means responds to the first command. Manipulate the data stored in the storage means.
第2コマンド実行手段は、第1のデータベース言語とは別のデータベース言語である第2のデータベース言語で記述された第2のコマンドを受け取ると、この第2のコマンドをシリアライズさせて、索引データと実データとからなるデータを生成させ、このデータをデータ処理手段に渡す。 When the second command execution means receives the second command described in the second database language, which is a database language different from the first database language, the second command execution means serializes the second command to generate the index data and Data consisting of actual data is generated, and this data is passed to the data processing means.
第1コマンド処理手段は、第1のデータベース言語で記述された第1のコマンドを受け取ると、第1のコマンドをシリアライズさせて、索引データと実データとからなるデータを生成させ、このデータをデータ処理手段に送信させる。 When the first command processing means receives the first command described in the first database language, the first command processing means serializes the first command to generate data composed of the index data and the actual data. Send to processing means.
インタフェース手段は、第1のデータベース言語で記述された第1のコマンドをアプリケーションから受け取った場合、この第1のコマンドを第1コマンド処理手段に渡し、第2のデータベース言語で記述された第2のコマンドを受け取ると、当該第2のコマンドを第2コマンド実行手段に送信させる。 When the interface means receives the first command described in the first database language from the application, the interface means passes the first command to the first command processing means, and the second command written in the second database language. When the command is received, the second command is transmitted to the second command execution means.
以下、図面を参照して本発明の実施の形態にかかるデータベース装置を説明する。
[0.用語の定義]
本明細書中で使用する用語の定義を述べる。
A database device according to an embodiment of the present invention will be described below with reference to the drawings.
[0. Definition of terms]
Definitions of terms used in this specification will be described.
[0.1.データベース言語]
「データベース言語」とは、データベースを扱うためのコンピュータ言語のことをいう。
[0.1. Database language]
“Database language” refers to a computer language for handling a database.
[0.2.SQL]
「SQL」とは、リレーショナルデータベース管理システム (RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)をいう。主にリレーショナルデータベースで使用される。
[0.2. SQL]
“SQL” refers to a database language (inquiry language) for manipulating and defining data in a relational database management system (RDBMS). Used mainly in relational databases.
[0.3.KVS(Key Value Store)]
KVS(Key Value Store)とは、Keyとなる索引データと、Valueとなる実データをペアで保存するデータベース方式をいう。Keyによる検索が高速に実行できる。
[0.3. KVS (Key Value Store)
KVS (Key Value Store) is a database system that stores index data as a key and actual data as a value in pairs. Key search can be performed at high speed.
[0.4.テーブルスキーマ情報]
「テーブルスキーマ情報」とは、データベースにおいて、テーブル作成時などに指定した、各フィールド名や属性など、テーブルの構造に関する情報をいう。
[0.4. Table schema information]
“Table schema information” refers to information related to the structure of the table, such as each field name and attribute specified at the time of table creation in the database.
[0.5.シリアライズ]
「シリアライズ」とは、テキストや数値などの複数データを、一つの文字列に変換する処理をいう。
[0.5. Serialize]
“Serialization” refers to a process of converting a plurality of data such as text and numerical values into one character string.
[0.6.デシリアライズ]
「デシリアライズ」とは、シリアライズされたデータを、元の複数データに戻す処理をいう。
[0.6. Deserialization]
“Deserialization” refers to a process of returning serialized data to a plurality of original data.
[1.第1の実施の形態]
本発明の第1の実施の形態は、データベース装置として提案される。このデータベース装置は、SQLと、KVS用APIという複数のデータ操作手段を備え、KVS用APIにより、速度が遅いというSQLの課題を解決し、既存のアプリケーションで使用される場合が多いSQLでも操作できる装置である。KVS用APIは本実施の形態の第1のデータベース言語に相当し、SQLは本実施の形態の第2のデータベース言語に相当する。
[1. First Embodiment]
The first embodiment of the present invention is proposed as a database device. This database device has multiple data manipulation means called SQL and API for KVS, solves the problem of slow SQL by using KVS API, and can operate even SQL that is often used in existing applications Device. The KVS API corresponds to the first database language of the present embodiment, and the SQL corresponds to the second database language of the present embodiment.
データベース装置は、コンピュータ、ワークステーション、サーバなどの情報処理装置であって、この情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読み出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。 The database apparatus is an information processing apparatus such as a computer, a workstation, or a server. The information processing apparatus includes an arithmetic processing unit (CPU), a main memory (RAM), a read only memory (ROM), and an input / output device (I). / O) and, if necessary, a device having an external storage device such as a hard disk device.
[1.1.構成例]
本発明の実施の形態にかかるデータベース装置の構成について説明する。図1は、本実施の形態にかかるデータベース装置を含む情報処理システムの構成例を示す機能ブロック図である。情報処理システム1は、データベース装置10と、データベース装置10にネットワーク20を介して接続可能な端末装置30とを有する。
[1.1. Configuration example]
A configuration of the database apparatus according to the embodiment of the present invention will be described. FIG. 1 is a functional block diagram showing a configuration example of an information processing system including a database device according to this embodiment. The
端末装置30は、パーソナルコンピュータ、タブレットコンピュータ、携帯端末などの情報処理装置であって、データベース装置10と通信可能な装置であればどのようなものでもよい。端末装置30は、データベース装置10に対してデータの検索、データの登録、データの更新などの処理要求をネットワークを介して送信し、この処理要求に応じてデータベース装置10が処理を行った結果を、ネットワークを介して受信する。
The
データベース装置10は、アプリケーションサーバ100と、アプリケーションサーバ100に接続されたデータベースサーバ200を有している。なお、図1に示す構成例では、アプリケーションサーバ100とデータベースサーバ200はネットワーク20ではなく、専用通信線を介して接続されている構成として図示したが、ネットワーク20若しくはネットワーク20とは別のネットワークを介して接続される構成としてもかまわない。
The
図2に、データベース装置10の構成例を示す機能ブロック図を掲げる。なお、機能ブロック図中に示す構成要素は、データベース装置の機能を機能ごとにまとめてブロックとして捉えたものであり、データベース装置が各構成要素に対応する基板、装置、回路、部品などの物理的構成要素を備えていなければならないことを意味するわけではない。また、「接続」とは、データ、情報、命令などの送信及び/又は受信、受け取り、受け渡しなどが可能な状態になっていることをいい、互いに配線で連結されているような物理的な接続に限られる意味ではない。本明細書中の他の構成要素の機能ブロック図の説明についても同様である。
FIG. 2 is a functional block diagram showing a configuration example of the
本発明の実施の形態にかかるデータベース装置は、アプリケーションサーバ100と、アプリケーションサーバ100に接続されたデータベースサーバ200を有している。アプリケーションサーバ100はネットワーク20に接続されており、ネットワーク20を介して端末装置30と通信可能である。
The database apparatus according to the embodiment of the present invention includes an
[1.1.1.アプリケーションサーバ]
アプリケーションサーバ100は、データベースサーバ200が提供するデータベースを利用して、サービスを端末装置30に提供する機能を有する。
アプリケーションサーバ100は、アプリケーション部400と、アプリケーション部400に接続されたデータベースクライアント300を有する。
アプリケーション部400は、端末装置30から受信した処理要求に基づいて、KVS用APIを呼び出すか、又はSQL文を生成する。
[1.1.1. Application server]
The
The
The
データベースクライアント300は、アプリケーション部400からKVS用APIの呼び出しを受けた場合は、アプリケーション部400から渡されたデータのシリアライズを実行し、シリアライズ後のデータを含むKVS型コマンドを生成してデータベースサーバ200に送信する。また、データベースクライアント300は、アプリケーション部400からSQL文を受信した場合は、そのSQL文が簡単なSQL文か否かを判断し、簡単なSQL文であると判断した場合は、そのSQL文に基づいてKVS型コマンドを生成してデータベースサーバ200に送信し、一方、簡単なSQL文ではないと判断した場合は、そのSQL文をデータベースサーバに送信する。
When the database client 300 receives a call to the KVS API from the
[1.1.1.1.データベースクライアント]
図2を参照しながら、データベースクライアント300の構成例を説明する。データベースクライアント300は、インタフェース部301と、インタフェース部301に接続された処理一次判断部302と、処理一次判断部302に接続されたクライアント側送受信部306及びKVS型コマンド処理部303と、KVS型コマンド処理部303に接続されたクライアント側シリアライズ処理部304及びスキーマ情報キャッシュ305とを有する。なお、インタフェース部301は、アプリケーション部400と接続されており、クライアント側送受信部306は後述するサーバ側送受信部201に接続されている。
[1.1.1.1. Database client]
A configuration example of the database client 300 will be described with reference to FIG. The database client 300 includes an
インタフェース部301は、アプリケーション部400からSQL文若しくはKVS用API呼び出しを受信し、受信した内容がSQL文である場合はそのSQL文を処理一次判断部302に渡し、一方受信した内容がKVS用API呼び出しである場合は、KVS用API呼び出しからKVS型コマンドを生成して、このKVS型コマンドをKVS型コマンド処理部303に渡す。インタフェース部301は、本実施の形態のインタフェース手段に相当する。
The
KVS型コマンド処理部303は、スキーマ情報キャッシュ305からテーブルスキーマ情報を取得し、クライアント側シリアライズ処理部304にテーブルスキーマ情報とKVS型コマンドを渡し、シリアライズされたデータを含むKVS型コマンドを生成させる。KVS型コマンド処理部303は、実施の形態の第1コマンド処理手段に相当する。
The KVS type
クライアント側シリアライズ処理部304は、受け取ったKVS型コマンドに含まれる複数の要素(数値、文字列など)を、スキーマ情報キャッシュ305に記憶されたテーブルスキーマ情報を参照して、シリアライズし、シリアライズした後のKVS型コマンドを出力する。
The client-side
処理一次判断部302は、インタフェース部301から受け取ったSQL文が簡単なSQL文か否かを判断し、簡単なSQL文であると判断した場合は、そのSQL文に基づいてKVS型コマンドを生成し、そのKVS型コマンドをKVS型コマンド処理部303に渡し、一方、受け取ったSQL文が簡単なSQL文でないと判断した場合は、そのSQL文をクライアント側送受信部306に渡す。処理一次判断部302は、本実施の形態の判断手段に相当する。
The processing
ここでいう「簡単なSQL文」とは、基本的には、同等の処理を行うKVS用APIが存在するかどうかという基準で判断する。同等の処理を行うKVS用APIが存在するSQL文は、「簡単なSQL文」である。
なお、簡単なSQL文の例としては、「SELECT * FROM table1」のようなSQL文であり、簡単でないSQL文の例:としては、「SELECT * FROM table1 WHERE value >20;」のようなSQL文である。
クライアント側送受信部306は、後述するサーバ側送受信部201と協働してデータの送受信を行う。
The “simple SQL statement” here is basically determined based on the standard of whether there is a KVS API that performs the same processing. An SQL statement that has an API for KVS that performs equivalent processing is a “simple SQL statement”.
An example of a simple SQL statement is a SQL statement such as "SELECT * FROM table1", and an example of a non-simple SQL statement is: a SQL such as "SELECT * FROM table1 WHERE value>20;" It is a sentence.
The client side transmission /
[1.1.1.2.データベースサーバ]
データベースサーバ200は、データベースクライアント300の要求に応じて、データベースへのデータの登録、取得、削除、更新、等を実行する。データベースサーバ200は、KVS用API及びSQLの双方を扱える。データベースサーバ200は、SQLのパラメータをシリアライズ、デシリアライズする。データベースサーバ200は、データはシリアライズしてKVS形式でレコード単位で保存する。
[1.1.1.2. Database server]
The
データベースサーバ200は、サーバ側送受信部201と、サーバ側送受信部201に接続されたSQL字句解釈部202と、SQL字句解釈部202に接続されたSQLコマンド実行部203と、SQLコマンド実行部203に接続されたKVSデータ処理部206、サーバ側シリアライズ処理部204、スキーマ情報管理部205と、KVSデータ処理部206に接続されたキャッシュメモリ207、ストレージ208とを有しているKVSデータ処理部206及びSQLコマンド実行部203はサーバ側送受信部201に接続されている。サーバ側送受信部201は、クライアント側送受信部306に接続されている。
サーバ側送受信部201は前述したクライアント側送受信部306と協働してデータの送受信を行う。
SQL字句解釈部202は、SQL文であるテキストデータを解析して、構文木を出力する。
The
The server-side transmitting / receiving
The SQL
SQLコマンド実行部203は、SQL字句解釈部202より出力された構文木に含まれるSQLコマンドを実行し、実行結果を出力する。このSQLコマンド実行部203がSQLコマンドをKVS型コマンドに変換してKVS型データ処理部に渡す。SQLコマンド実行部203は、本実施の形態の第2コマンド実行手段に相当する。
The SQL
サーバ側シリアライズ処理部204は、SQL文から、Key及びvalueに相当する要素を取り出し、当該SQL文に対応する、シリアライズされたデータであるKVS形式のデータを生成し、出力する。
The server-side
スキーマ情報管理部205は、ストレージ208及びキャッシュメモリ207に記憶されているテーブルの各フィールド名や属性などのテーブルスキーマ情報を記憶し、テーブルの構成が変更された場合は、変更後のテーブルスキーマ情報に更新する。
The schema
KVSデータ処理部206は、KVS型コマンドに応じてストレージ208又はキャッシュメモリ207にデータの登録、更新、変更、削除を行い、ストレージ208又はキャッシュメモリ207から指定された条件に合うデータを読み出す。KVSデータ処理部206は、本実施の形態のデータ処理手段に相当する。
ストレージ208は、KVS型データからなるテーブルを非揮発的に記憶する。
キャッシュメモリ207はKVS型データからなるテーブルの全部又は一部を一時的に記憶する。
The KVS
The
The
[1.2.KVS用APIとSQLそれぞれのデータ登録フローの具体例]
KVS用APIとSQLそれぞれのデータ登録フローの具体例を以下に示す。
[1.2.1.KVS用APIのデータ登録]
アプリケーション部400が以下のメッセージをKVS用APIとしてデータベースクライアント300に渡した例を述べる。
set tbl1 “coffee”, 280, 1126, “drink”
[1.2. Specific examples of data registration flow for KVS API and SQL]
Specific examples of data registration flow for KVS API and SQL are shown below.
[1.2.1. KVS API data registration]
An example in which the
set tbl1 “coffee”, 280, 1126, “drink”
上記メッセージを受け取ったデータベースクライアント300、より詳しくはクライアント側シリアライズ処理部304は、データベースサーバ200がKVS形式でこのデータを保存できるように、上記メッセージ中のデータのシリアライズを行う。
データのシリアライズは、所定の書き換え規則を用いて行う。書き換え規則の例を以下に示す。
(1)データが整数である場合、 「i***」(*は数字)と書き変える
(2)データが文字列である場合、「t文字数-***」(*は文字)と書き換える
なお、データの属性はスキーマ情報キャッシュ305に格納されているテーブルスキーマ情報を参照して決定する。
The database client 300 that has received the message, more specifically, the client-side
Data serialization is performed using a predetermined rewrite rule. An example of the rewrite rule is shown below.
(1) If the data is an integer, rewrite it as “i ***” (* is a number). (2) If the data is a character string, rewrite it as “t number of characters-***” (* is a character). Note that data attributes are determined by referring to table schema information stored in the
上記「set tbl1 “coffee”, 280, 1126, “drink”」をこの書き換え期し奥によって書き換えてシリアライズしたデータは以下のようになる。
set tbl1 “coffee”, “i280i1126t5-drink”
The serialized data by rewriting the above “set tbl1“ coffee ”, 280, 1126,“ drink ”” by the back and serializing is as follows.
set tbl1 “coffee”, “i280i1126t5-drink”
データベースクライアント300は、シリアライズしたデータをデータベースサーバ200に送信し、データベースサーバ200はシリアライズしたデータを記憶する。
The database client 300 transmits the serialized data to the
上記シリアライズされたデータにおいて、"coffee"がKeyであり、“i280i1126t5-drink”がvalueである。データベースサーバ200は、上記のようなKeyとvalueが対となっているレコードの集合であるテーブルを記憶する。
In the serialized data, “coffee” is a key and “i280i1126t5-drink” is a value. The
テーブルの例を以下に示す。
「Key」 「Value」
coffee i280i1126t5-drink
tea i280i1024t5-drink
pasta i800i0543t4-food
An example table is shown below.
"Key""Value"
coffee i280i1126t5-drink
tea i280i1024t5-drink
pasta i800i0543t4-food
[1.2.2.SQLのデータ登録]
上記「set tbl1 “coffee”, 280, 1126, “drink”」と同一の内容をSQLを用いてデータベースサーバ200に登録させる例を示す。
アプリケーション部400は、以下のSQLコマンドをデータベースクライアント300に渡す。
INSERT INTO tbl1 VALUES (‘coffee’, 280, 1126, ‘drink’);
[1.2.2. SQL data registration]
An example is shown in which the same content as “set tbl1“ coffee ”, 280, 1126,“ drink ”” is registered in the
The
INSERT INTO tbl1 VALUES ('coffee', 280, 1126, 'drink');
上記SQLコマンドを受け取ったデータベースクライアント300は、このSQLコマンドが高速処理可能か否かを判断し、高速処理が不可であると判定した場合、このSQLコマンドをそのままデータベースサーバ200に送信する。
Upon receiving the SQL command, the database client 300 determines whether or not the SQL command can be processed at high speed. If it is determined that high speed processing is not possible, the database client 300 transmits the SQL command to the
上記SQLコマンドを受信したデータベースサーバ200は、SQLコマンドに含まれるデータをシリアライズして、Keyとvalueの対からなるレコードを生成し、このレコードを格納する。データのシリアライズは、所定の書き換え規則を用いて行い、書き換え規則はKVS用APIについて用いる書き換え規則と同一である。
上記SQLコマンドを書き換え規則を用いてシリアライズしたデータは以下のとおりである。
“coffee”, “i280i1126t5-drink”
このデータはKVS用APIの場合に生成されたシリアライズされたデータと同一内容となる。
データベースサーバ200は、上記データを一つのレコードとしてテーブルにつけくわえることにより、データ登録を行う。
Upon receiving the SQL command, the
The serialized data of the above SQL command using rewrite rules is as follows.
“Coffee”, “i280i1126t5-drink”
This data has the same contents as the serialized data generated in the case of the KVS API.
The
[2.動作例]
本実施の形態にかかるデータベース装置の動作を説明する。
[2.1.テーブル作成処理]
データベース装置が実行するテーブル作成処理を説明する。テーブル作成処理は、データベースサーバ200に新たにテーブルを作成させ、これを記憶させる処理である。図3は、テーブル作成処理の一例を示すフローチャートであり、図4は、図3のフローチャートに続くフローチャートである。以下、これらフローチャートを参照しながらテーブル作成処理を説明する。
[2. Example of operation]
The operation of the database apparatus according to this embodiment will be described.
[2.1. Table creation process]
A table creation process executed by the database apparatus will be described. The table creation process is a process for causing the
テーブル作成処理において、まず、データベース装置10、より詳しくはアプリケーション部400は、データベースクライアント300のインタフェース部にSQLコマンドを入力する(S10)。
In the table creation process, first, the
次にデータベース装置10、より詳しくはインタフェース部301は、受け取ったSQLコマンドを処理一次判断部302に渡し、処理一次判断部302は、このSQLコマンドは高速処理が可能かどうか判断する(S11)。この説明では高速処理が不可であると判断したものとして、以下の説明を行う。なお、前述の「簡単なSQL文」は高速処理可能であると判断し、「簡単なSQL文」でない場合は高速処理可能でないと判断する。
高速処理が不可であると判断した処理一次判断部302は、このSQLコマンドをクライアント側送受信部306に渡す。
Next, the
The processing
次にデータベース装置10、より詳しくはデータベースクライアント300のクライアント側送受信部306は、SQLコマンドをデータベースサーバ200のサーバ側送受信部201に送信する(S12)。
Next, the
次に、データベース装置10、より詳しくはデータベースサーバ200のサーバ側送受信部201は、クライアント側送受信部306からSQLコマンドを受信する(S13)。
Next, the
次に、データベース装置10、より詳しくはサーバ側送受信部201はSQL字句解釈部202にSQLコマンドを渡す。SQLコマンドを受け取ったSQL字句解釈部202はこのSQLコマンドを解釈し、解釈結果をSQLコマンド実行部203に渡す(S14)。
Next, the
次にデータベース装置10、より詳しくはSQLコマンド実行部203は、SQLコマンドの解釈結果からテーブルスキーマ情報を生成し、これをスキーマ情報管理部205に渡す(S15)。
Next, the
次にデータベース装置10、より詳しくはSQLコマンド実行部203は、SQLコマンドの解釈結果から、テーブルに登録するデータのKey、valueを取り出し、これらをサーバ側シリアライズ処理部204に渡す。サーバ側シリアライズ処理部204は受け取ったKey、valueをシリアライズ処理し、シリアライズされたデータであるKVSデータを生成してSQLコマンド実行部203に返す(S16)。KVSデータを受け取ったSQLコマンド実行部203はこのKVSデータをKVSデータ処理部206に渡す。
Next, the
データベース装置10、より詳しくはKVSデータ処理部206は、受け取ったKVSデータをキャッシュメモリ207又はストレージ208に記憶させ、データ登録を実行する(S17)。
The
上記データ登録が完了すると、データベース装置10、より詳しくはKVSデータ処理部206は、SQLコマンド実行部203に実行結果を通知する(S18)。
次にデータベース装置10、より詳しくはSQLコマンド実行部203はサーバ側送受信部201に実行結果を通知する(S19)。
次にデータベース装置10、より詳しくはサーバ側送受信部201は、接続中の各データベースクライアント300にテーブル作成を通知する(S20)。
When the data registration is completed, the
Next, the
Next, the
また、データベース装置10、より詳しくはサーバ側送受信部201は、SQLコマンド発行元のデータベースクライアント300のクライアント側送受信部306に実行結果を通知する(S21)。クライアント側送受信部306は実行結果を受け取ると、この実行結果をインタフェース部301に通知する。
Further, the
データベース装置10、より詳しくはデータベースクライアント300のインタフェース部301は、アプリケーション部400に実行結果を通知する(S22)。アプリケーション部400は、自らが発行したSQLコマンドに応じてテーブル登録が完了したことを知る。
以上でテーブル登録処理が終了する。
The
Thus, the table registration process ends.
図5に、上記図3及び図4のフローチャートに対応する、テーブル作成処理のシーケンス図を示す。
アプリケーション部400がSQLコマンド「CREATE TABLE」を、データベースクライアント300のインタフェース部301に送信する(S101)と、インタフェース部301はこのSQLコマンド「CREATE TABLE」を処理一次判断部302に送信し(S102)、処理一次判断部302はクライアント側送受信部306に送信する(S103)。クライアント側送受信部306はこのSQLコマンド「CREATE TABLE」をデータベースサーバ200のサーバ側送受信部201に送信する(S104)。
FIG. 5 shows a sequence diagram of the table creation process corresponding to the flowcharts of FIGS.
When the
このSQLコマンド「CREATE TABLE」を受信したデータベースサーバ200のサーバ側送受信部201はSQL字句解釈部202にSQLコマンド「CREATE TABLE」送信する(S105)。
Upon receiving this SQL command “CREATE TABLE”, the server-side transmitting / receiving
SQLコマンド「CREATE TABLE」を受信したSQL字句解釈部202は、SQLコマンド「CREATE TABLE」の字句解釈を実行し(S106)、字句解釈の結果に基づいてテーブル作成実行命令をSQLコマンド実行部203に送信する(S107)。
The SQL
テーブル作成実行命令を受信したSQLコマンド実行部203は、テーブル作成実行命令からテーブルスキーマ情報を生成し、このテーブルスキーマ情報をスキーマ情報管理部205に送信する(S108)。
The SQL
テーブルスキーマ情報を受信したスキーマ情報管理部205は、このテーブルスキーマ情報を記憶し、テーブルスキーマ情報の記憶を行ったことをSQLコマンド実行部203に通知する(S109)。
The schema
テーブルスキーマ情報の記憶を行った通知を受け取ったSQLコマンド実行部203は、サーバ側シリアライズ処理部204に生成させたシリアライズ化されたデータを登録する要求をKVSデータ処理部206に送信する(S110)。
The SQL
前記要求を受信したKVSデータ処理部206は、シリアライズ化されたデータを格納させる要求を、キャッシュメモリ207又はストレージ208に送信する(S111)。キャッシュメモリ207又はストレージ208は、この要求に応じて、シリアライズ化されたデータを格納する。データの格納を完了したキャッシュメモリ207又はストレージ208は、データの登録が完了した通知をKVSデータ処理部206に送信する(S112)。KVSデータ処理部206はデータの登録が完了した通知をSQLコマンド実行部203に送信する(S113)。
Receiving the request, the KVS
このデータの登録が完了した通知はSQL字句解釈部202、サーバ側送受信部201、クライアント側送受信部306、処理一次判断部302、インタフェース部301を順に経由してアプリケーション部400へ送信される(S114〜S119)。
以上で、テーブル作成処理は終了する。
The notification that the registration of the data is completed is transmitted to the
Thus, the table creation process ends.
[2.2.テーブル内容等変更通知処理]
データベース装置10のテーブル内容等の変更があった場合、データベースサーバ200からデータベースクライアント300へ通知する処理である、テーブル内容等変更通知処理を説明する。図6は、テーブル内容等変更通知処理の一例を示すフローチャートである。また、図7に、上記図6のフローチャートに対応する、テーブル内容等変更通知処理のシーケンス図を示す。以下、図6及び図7を参照しながらテーブル内容等変更通知処理を説明する。
[2.2. Table contents change notification process]
A table content change notification process, which is a process for notifying the database client 300 from the
テーブル内容の変更が発生すると、テーブル作成等を実行したデータベースサーバ200は、接続中の各データベースクライアント300に変更内容を通知するメッセージを送信する(S30)。
When the table contents are changed, the
データベース装置10、より詳しくはデータベースクライアント300のクライアント側送受信部306は、上記変更内容を通知するメッセージを受信する(S31)。
The
クライアント側送受信部306は、変更内容を通知するメッセージをKVSコマンド処理部303に渡し、KVSコマンド処理部303は変更内容を通知するメッセージを取得する(S32)。
変更内容を通知するメッセージを取得したKVSコマンド処理部303は、変更内容をスキーマ情報キャッシュ305に保存させる(S33)。
The client-side transmitting / receiving
The KVS
その後、スキーマ情報キャッシュ305からKVSコマンド処理部303、クライアント側送受信部306を経由してサーバ側送受信部201に実行結果を送信する(S34、S35、S36)。
以上でテーブル内容等変更通知処理が終了する。
Thereafter, the execution result is transmitted from the
The table contents change notification process is thus completed.
[2.3.テーブル削除処理]
データベース装置10が実行するテーブル削除処理を説明する。テーブル削除処理は、データベースサーバ200からテーブルを削除させる処理である。図8は、テーブル削除処理の一例を示すフローチャートであり、図9は図8のフローチャートに続くフローチャートである。以下、このフローチャートを参照しながらテーブル削除処理を説明する。
[2.3. Table deletion processing]
A table deletion process executed by the
テーブル削除処理において、まず、データベース装置10、より詳しくはアプリケーション部400は、データベースクライアント300のインタフェース部301にテーブル削除を要求するSQLコマンド「DROP TABLE 」を入力する(S40)。
In the table deletion process, first, the
次にデータベース装置10、より詳しくはインタフェース部301は、受け取ったSQLコマンド「DROP TABLE 」を処理一次判断部302に渡し、処理一次判断部302は、このSQLコマンドは高速処理が可能かどうか判断する(S41)。この説明では高速処理が不可であると判断したものとして、以下の説明を行う。なお、前述の「簡単なSQL文」は高速処理可能であると判断し、「簡単なSQL文」でない場合は高速処理可能でないと判断する。
なお、ステップS41において高速処理が可能と判断した場合は、処理一次判断部302は当該SQLコマンドに対応するKVS型コマンドを生成し、このKVS型コマンドをKVSコマンド処理部303に渡し、当該KVS型コマンドを実行させる。
Next, the
If it is determined in step S41 that high-speed processing is possible, the primary
さて、ステップS41において高速処理が不可であると判断した処理一次判断部302は、このSQLコマンド「DROP TABLE 」をクライアント側送受信部306に渡す。次にデータベース装置10、より詳しくはデータベースクライアント300のクライアント側送受信部306は、SQLコマンド「DROP TABLE 」をデータベースサーバ200のサーバ側送受信部201に送信する(S42)。
The process
次に、データベース装置10、より詳しくはデータベースサーバ200のサーバ側送受信部201は、クライアント側送受信部306からSQLコマンド「DROP TABLE 」を受信する(S43)。
Next, the
次に、データベース装置10、より詳しくはサーバ側送受信部201はSQL字句解釈部202にSQLコマンド「DROP TABLE 」を渡す。SQLコマンド「DROP TABLE 」を受け取ったSQL字句解釈部202はこの。SQLコマンド「DROP TABLE 」を解釈し、解釈結果をSQLコマンド実行部203に渡す(S44)。
Next, the
次にデータベース装置10、より詳しくはSQLコマンド実行部203は、SQLコマンドの解釈結果からステーブルスキーマ情報を生成し、これをスキーマ情報管理部205に渡す(S45)。
Next, the
次にデータベース装置10、より詳しくはSQLコマンド実行部203は、KVSデータ処理部206にテーブル削除を要求し、KVSデータ処理部206はキャッシュメモリ207又はストレージ208にアクセスしてテーブル削除を実行する(S46)。
上記データ削除が完了すると、データベース装置10、より詳しくはKVSデータ処理部206は、SQLコマンド実行部203に実行結果を返す(S47)。
次にデータベース装置10、より詳しくはSQLコマンド実行部203はサーバ側送受信部201に実行結果を渡す(S48)。
Next, the
When the data deletion is completed, the
Next, the
次にデータベース装置10、より詳しくはサーバ側送受信部201は、接続中の各データベースクライアント300のクライアント側送受信部306にテーブル削除の通知を送信する(S49)。
Next, the
また、データベース装置10、より詳しくはサーバ側送受信部201は、前述したSQLコマンド「DROP TABLE 」発行元のデータベースクライアント300のクライアント側送受信部306に実行結果を送信する(S50)。クライアント側送受信部306は実行結果を受信すると、この実行結果をインタフェース部301に渡す。
Further, the
データベース装置10、より詳しくはデータベースクライアント300のインタフェース部301は、アプリケーション部400に実行結果を通知する(S51)。アプリケーション部400は、自らが発行したSQLコマンド「DROP TABLE 」に応じてテーブル削除が完了したことを知る。
以上でテーブル削除処理が終了する。
図10に、上記図8及び図9に示したフローチャートに対応する、テーブル削除処理のシーケンス図を示す。
The
Thus, the table deletion process ends.
FIG. 10 shows a sequence diagram of table deletion processing corresponding to the flowcharts shown in FIGS.
アプリケーション部400がSQLコマンド「DROP TABLE」を、データベースクライアント300のインタフェース部301に送信する(S201)と、インタフェース部301はこのSQLコマンド「DROP TABLE」を処理一次判断部302に送信し(S202)、処理一次判断部302はこのSQLコマンド「DROP TABLE」をクライアント側送受信部306に送信する(S203)。クライアント側送受信部306はこのSQLコマンド「DROP TABLE」をデータベースサーバ200のサーバ側送受信部201に送信する(S204)。
When the
このSQLコマンド「DROP TABLE」を受信したデータベースサーバ200のサーバ側送受信部201はSQL字句解釈部202にSQLコマンド「DROP TABLE」を渡す(S205)。
Upon receiving this SQL command “DROP TABLE”, the server-side transmitting / receiving
SQLコマンド「DROP TABLE」を受信したSQL字句解釈部202は、SQLコマンド「DROP TABLE」の字句解釈を実行し(S206)、字句解釈の結果に基づいてテーブル削除実行命令をSQLコマンド実行部203に渡す(S207)。
SQLコマンド実行部203は、テーブル削除の要求をKVSデータ処理部206に渡す(S208)。
The SQL
The SQL
前記要求を受信したKVSデータ処理部206は、キャッシュメモリ207又はストレージ208にアクセスし、テーブルの削除を命令する(S209)。キャッシュメモリ207又はストレージ208は、この命令に応じて、指定されたテーブルを削除する。テーブルの削除を完了したキャッシュメモリ207又はストレージ208は、実行結果をKVSデータ処理部206に返す(S210)。
KVSデータ処理部206は実行結果をSQLコマンド実行部203に渡す(S211)。
Receiving the request, the KVS
The KVS
テーブル削除の実行結果を受け取ったSQLコマンド実行部203は、スキーマ情報管理部205に、削除したテーブルに対応するテーブルスキーマ情報の削除要求を渡す(S212)。
The SQL
テーブルスキーマ情報削除要求を受信したスキーマ情報管理部205は、テーブルスキーマ情報を削除し、テーブルスキーマ情報削除の実行結果をSQLコマンド実行部203に返す(S213)。
The schema
テーブルスキーマ情報削除の実行結果及びテーブル削除の実行結果は、SQL字句解釈部202、サーバ側送受信部201、クライアント側送受信部306、処理一次判断部302、インタフェース部301を順に経由してアプリケーション部400に送信される(S214〜S219)。これにより、アプリケーション部400は自らが発したSQLコマンドの実行結果を知る。
以上で、テーブル削除処理は終了する。
The execution result of the table schema information deletion and the execution result of the table deletion are sent to the
This is the end of the table deletion process.
[2.4.KVS用APIデータ登録処理]
データベース装置10が実行するKVS用APIデータ登録処理を説明する。KVS用APIデータ登録処理は、KVS用APIを用いてデータベースサーバ200にデータ登録をさせる処理である。図11は、KVS用APIデータ登録処理の一例を示すフローチャートであり、図12は図11に続くフローチャートである。以下、このフローチャートを参照しながらKVS用APIデータ登録処理を説明する。
[2.4. KVS API data registration process]
The KVS API data registration process executed by the
KVS用APIデータ登録処理において、データベース装置10、より詳しくはアプリケーション部400がデータベースクライアント300のインタフェース部301にKVS用コマンドを送信する(S60)。
In the KVS API data registration process, the
データベース装置10、より詳しくはKVS型コマンド処理部303は、KVS用コマンドを受信する(S610)と、スキーマ情報キャッシュ305に当該KVS用コマンドに対応するテーブルのテーブルスキーマ情報が有るか否かを判定する(S62)。
Upon receiving the KVS command (S610), the
スキーマ情報キャッシュ305に当該KVS用コマンドに対応するテーブルのテーブルスキーマ情報が無いと判定した場合(S62、No)、KVS型コマンド処理部303は、データベースサーバ200に当該KVS用コマンドに対応するテーブルスキーマ情報を要求する(S63)。その後KVS型コマンド処理部303は、データベースサーバ200に当該KVS用コマンドに対応するテーブルスキーマ情報を取得できたか否かを判定する(S64)。
When it is determined that there is no table schema information for the table corresponding to the KVS command in the schema information cache 305 (S62, No), the KVS
データベースサーバ200から当該KVS用コマンドに対応するテーブルスキーマ情報を取得できなかったと判定した場合(S64,No)、KVS用APIデータ登録処理はエラーとなり終了する。一方、データベースサーバ200から当該KVS用コマンドに対応するテーブルスキーマ情報を取得できたと判定した場合(S64,Yes)、後述するステップS65に進む。 If it is determined that the table schema information corresponding to the KVS command cannot be obtained from the database server 200 (S64, No), the KVS API data registration process ends with an error. On the other hand, if it is determined that the table schema information corresponding to the KVS command can be acquired from the database server 200 (S64, Yes), the process proceeds to step S65 described later.
前述のステップS62に戻ってKVS用APIデータ登録処理の説明を続ける。ステップS62においてスキーマ情報キャッシュ305に当該KVS用コマンドに対応するテーブルのテーブルスキーマ情報があると判定した場合(S62、Yes)、KVS型コマンド処理部303は、クライアント側シリアライズ処理部304にKVS用コマンドに含まれているvalueをシリアライズさせる(S65)。クライアント側シリアライズ処理部304はシリアライズされたデータをKVS型コマンド処理部303に返す。KVS型コマンド処理部303はシリアライズされたデータを受け取ると、このシリアライズされたデータを含むKVS用コマンドを生成し、このKVS用コマンドをクライアント側送受信部306に渡す。
クライアント側送受信部306は、データベースサーバ200のサーバ側送受信部201にこのKVS型コマンドを送信する(S66)。
Returning to step S62 described above, the description of the KVS API data registration process will be continued. If it is determined in step S62 that the
The client side transmitting / receiving
データベースサーバ200のサーバ側送受信部201はKVS型コマンドを受信する(S67)と、サーバ側送受信部201はこのKVS型コマンドをKVSデータ処理部206に渡す。
When the server side transmitting / receiving
KVSデータ処理部206は、このKVS型コマンドに応じて、キャッシュメモリ207又はストレージ208にデータ登録を実行するよう命令する(S68)。
In response to the KVS command, the KVS
キャッシュメモリ207又はストレージ208は、上記命令に応じてデータ登録を実行し、実行後にKVSデータ処理部206を経由してサーバ側送受信部201にデータ登録の実行結果を渡す(S69)。
サーバ側送受信部201は、データベースクライアント300のクライアント側送受信部306に実行結果を送信する(S70)。
The
The
クライアント側送受信部306は、データベースクライアント300のインタフェース部301に実行結果を渡し、インタフェース部301はアプリケーション部400に実行結果を送信する(S71)。これによりアプリケーション部400は、KVS用APIデータ登録の実行結果を知る。
以上で、KVS用APIデータ登録処理は終了する。
図13に、上記図11及び図12に示したフローチャートに対応する、KVS用APIデータ登録処理のシーケンス図を示す。
The client side transmitting / receiving
This is the end of the KVS API data registration process.
FIG. 13 shows a sequence diagram of the KVS API data registration process corresponding to the flowcharts shown in FIGS.
まず、データベース装置10、より詳しくはアプリケーション部400がデータベースクライアント300のインタフェース部301にKVS用コマンドを渡す(S301)。
First, the
データベース装置10、より詳しくはKVS型コマンド処理部303は、インタフェース部からこのKVS用コマンドを受け取ると、スキーマ情報キャッシュ305に当該KVS用コマンドに対応するテーブルのテーブルスキーマ情報を読み出すように要求する(S303)。
スキーマ情報キャッシュ305は、要求されたテーブルスキーマ情報があればそのテーブルスキーマ情報をKVS型コマンド処理部303に渡す(S304)。
Upon receiving this KVS command from the interface unit, the
If there is requested table schema information, the
スキーマ情報キャッシュ305に要求されたテーブルスキーマ情報が無い場合、データベースクライアント300は、データベースサーバ200からそのテーブルスキーマ情報の取得を試みる(S305)。このステップS305の処理内容については別途後述する。
If there is no requested table schema information in the
さて、ステップS304において、スキーマ情報キャッシュ305が要求されたテーブルスキーマ情報を有し、そのテーブルスキーマ情報をKVS型コマンド処理部303に渡した場合、KVS型コマンド処理部303は、クライアント側シリアライズ処理部304にKVS用コマンドに含まれているvalueをシリアライズするよう要求する(S306)。
In step S304, when the
ステップS306の要求に応じて、クライアント側シリアライズ処理部304はシリアライズされたデータを生成し、これをKVS型コマンド処理部303に返す(S307)。
KVS型コマンド処理部303はシリアライズされたデータを受け取ると、このシリアライズされたデータを含むKVS用コマンドを生成し、このKVS用コマンドをクライアント側送受信部306に渡す(S308)。
クライアント側送受信部306は、データベースサーバ200のサーバ側送受信部201にこのKVS型コマンドを送信する(S309)。
In response to the request in step S306, the client-side
When receiving the serialized data, the KVS
The client side transmitting / receiving
データベースサーバ200のサーバ側送受信部201は、クライアント側送受信部306からKVS型コマンドを受信すると、このKVS型コマンドをKVSデータ処理部206に渡す(S310)。
When receiving the KVS type command from the client side transmitting / receiving
KVSデータ処理部206は、このKVS型コマンドに応じて、キャッシュメモリ207又はストレージ208にデータ登録を実行するように命令する(S311)。
キャッシュメモリ207又はストレージ208はステップS311の命令に応じてデータ登録(書き込)を実行し、KVSデータ処理部206を経由してサーバ側送受信部201にデータ登録の実行結果を渡す(S312、S313)。
サーバ側送受信部201は、データベースクライアント300のクライアント側送受信部306に実行結果を送信する(S314)。
In response to the KVS type command, the KVS
The
The server side transmission /
サーバ側送受信部201から実行結果を受信したクライアント側送受信部306は、データベースクライアント300のKVSコマンド処理部を経由してインタフェース部301に実行結果を渡し(S315、S316)、この実行結果を受け取ったインタフェース部301はアプリケーション部400に実行結果を送信する(S317)。これにより、アプリケーション部400はKVS用APIデータ登録の実行結果を知る。
以上で、図13に示したKVS用APIデータ登録処理のシーケンス図の説明を終了する。
The client side transmitting / receiving
This is the end of the description of the sequence diagram of the KVS API data registration process shown in FIG.
[2.5.テーブルスキーマ情報取得処理]
前掲の図13であるKVS用APIデータ登録処理のシーケンス図において、スキーマ情報キャッシュ305に要求されたテーブルスキーマ情報が無い場合、データベースクライアント300は、データベースサーバ200からそのテーブルスキーマ情報の取得を試みる(S305)処理であるテーブルスキーマ情報取得処理を行う。このステップS305のテーブルスキーマ情報取得処理について述べる。
[2.5. Table schema information acquisition process]
In the sequence diagram of the KVS API data registration process shown in FIG. 13 described above, when there is no requested table schema information in the
図14は、テーブルスキーマ情報取得処理の一例を示すフローチャートである。図14のフローチャートを参照しながら、テーブルスキーマ情報取得処理の一例を説明する。なお、この例ではスキーマ情報キャッシュ305に該当するテーブルスキーマ情報が記憶されていないことを前提として説明を行う。
FIG. 14 is a flowchart illustrating an example of the table schema information acquisition process. An example of the table schema information acquisition process will be described with reference to the flowchart of FIG. In this example, the description will be made on the assumption that the corresponding table schema information is not stored in the
テーブルスキーマ情報取得処理において、データベース装置10、より詳しくはKVS型コマンド処理部303は、データベースクライアント300のスキーマ情報キャッシュ305に該当テーブルに対応するテーブルスキーマ情報が無いことを確認する(S80)。
In the table schema information acquisition process, the
次にデータベース装置10、より詳しくはデータベースクライアント300のクライアント側送受信部306は、データベースサーバ200にテーブルスキーマ情報を要求するメッセージを送信する(S81)。
Next, the
次にデータベース装置10、より詳しくはデータベースサーバ200のサーバ側送受信部201は、上記メッセージを受信すると、スキーマ情報管理部205に上記メッセージにおいて指定されたテーブルスキーマ情報の読出しを要求する(S82)。
Next, when receiving the message, the
スキーマ情報管理部205は、上記テーブルスキーマ情報を記憶しているか否かを判定する(S83)。上記テーブルスキーマ情報を記憶していると判定した場合(S83、Yes)、
The schema
KVSデータ処理部206はキャッシュメモリ207又はストレージ208から当該テーブルスキーマ情報を読み出し、KVSデータ処理部206はテーブルスキーマ情報を取得する(S84)。この後、後述するステップS85に進む。
The KVS
一方、ステップS83において上記テーブルスキーマ情報を記憶していないと判定した場合(S83、No)、スキーマ情報管理部205はサーバ側送受信部201を経由してクライアント側送受信部306にテーブルスキーマ情報取得の実行結果を送信する。なお、ステップS84において、テーブルスキーマ情報の取得が成功している場合は、上記実行結果とともにテーブルスキーマ情報がクライアント側送受信部306に送信され、クライアント側送受信部306は実行結果(存在した場合はテーブルスキーマ情報を伴う)を受信する(S85)。クライアント側送受信部306は実行結果をKVS型コマンド処理部303に実行結果を渡す。
On the other hand, when it is determined in step S83 that the table schema information is not stored (No in S83), the schema
なお、クライアント側送受信部306がテーブルスキーマ情報を受信した場合は、KVS型コマンド処理部303はそのテーブルスキーマ情報をスキーマ情報キャッシュ305に渡し、スキーマ情報キャッシュ305はそのテーブルスキーマ情報を記憶する(S86)。
以上で、テーブルスキーマ情報取得処理は終了する。
図15に、上記図14のフローチャートに対応する、テーブルスキーマ情報取得処理のシーケンス図を示す。
When the client-side transmitting / receiving
This is the end of the table schema information acquisition process.
FIG. 15 shows a sequence diagram of the table schema information acquisition process corresponding to the flowchart of FIG.
テーブルスキーマ情報取得処理において、まずデータベースクライアント300のKVS型コマンド処理部303は、スキーマ情報キャッシュ305に該当するテーブルスキーマ情報を要求する(S401)。
In the table schema information acquisition process, first, the KVS type
スキーマ情報キャッシュ305は、要求されたテーブルスキーマ情報の読出し結果をKVS型コマンド処理部303に渡す(S402)。なお、以降の説明は、スキーマ情報キャッシュ305が要求されたテーブルスキーマ情報を記憶していないものとして行う。
The
スキーマ情報キャッシュ305から要求されたテーブルスキーマ情報を記憶していない通知を受けたKVS型コマンド処理部303は、クライアント側送受信部306にテーブルスキーマ情報取得要求を渡す(S403)。クライアント側送受信部306はテーブルスキーマ情報取得要求をサーバ側送受信部201に送信する(S404)。
The KVS type
サーバ側送受信部201は、テーブルスキーマ情報取得要求を受信すると、スキーマ情報管理部205にテーブルスキーマ情報の有無の問い合わせを渡す(S405)。スキーマ情報管理部205は、要求されたテーブルスキーマ情報の有無をサーバ側送受信部201に返す(S406)。なお、以降の説明は、スキーマ情報管理部205が要求されたテーブルスキーマ情報有りとの情報をサーバ側送受信部201に返した場合を説明する。スキーマ情報管理部205が要求されたテーブルスキーマ情報無しとの情報をサーバ側送受信部201に返した場合は後述するステップS411に直ちに進む。
Upon receiving the table schema information acquisition request, the server-side transmitting / receiving
スキーマ情報管理部205から要求されたテーブルスキーマ情報有りとの情報を受け取ったサーバ側送受信部201は、KVSデータ処理部206に当該テーブルスキーマ情報取得要求を渡す(S407)。
The server-side transmitting / receiving
テーブルスキーマ情報取得要求を受け取ったKVSデータ処理部206は、キャッシュメモリ207又はストレージ208に当該テーブルスキーマ情報の読出しを要求する(S408)。
Upon receiving the table schema information acquisition request, the KVS
テーブルスキーマ情報の読出しの要求を受け取ったキャッシュメモリ207又はストレージ208は、当該テーブルスキーマ情報を読み出し、これをKVSデータ処理部206に返す(S409)。
The
キャッシュメモリ207又はストレージ208からテーブルスキーマ情報を受け取ったKVSデータ処理部206は、このテーブルスキーマ情報をサーバ側送受信部201に渡す(S410)。
The KVS
サーバ側送受信部201はこのテーブルスキーマ情報をクライアント側送受信部306に送信する(S411)。なお、スキーマ情報管理部205が要求されたテーブルスキーマ情報無しとの情報をサーバ側送受信部201に返した場合は、サーバ側送受信部201は該当するテーブルスキーマ情報は無い旨のメッセージをクライアント側送受信部306に送信する。
The server side transmitting / receiving
要求にかかるテーブルスキーマ情報、又は当該テーブルスキーマ情報は無い旨のメッセージを受信したクライアント側送受信部306は、これらをKVS型コマンド処理部303に渡す(S412)。
Upon receiving the table schema information relating to the request or a message indicating that there is no table schema information, the client side transmitting / receiving
テーブルスキーマ情報を受け取った場合、KVS型コマンド処理部303は当該テーブルスキーマ情報をスキーマ情報キャッシュ305に渡す(S413)。当該テーブルスキーマ情報は無い旨のメッセージを受信した場合は、そのままテーブルスキーマ情報取得処理は終了する。
When the table schema information is received, the KVS
テーブルスキーマ情報を受け取ったスキーマ情報キャッシュ305は、当該テーブルスキーマ情報を記憶し、記憶した結果をKVS型コマンド処理部303に返す(S414)。
以上で、図15に示す、テーブルスキーマ情報取得処理のシーケンス図の説明を終了する。
The
Above, description of the sequence diagram of a table schema information acquisition process shown in FIG. 15 is complete | finished.
[2.6.SQLデータ登録処理]
SQLデータ登録処理について述べる。SQLデータ登録処理は、アプリケーション部400がデータ登録を要求するSQLコマンドを、データベースクライアント300へ渡した場合に、これに応じてデータベース装置10がデータ登録を行う処理である。
[2.6. SQL data registration process]
Describes the SQL data registration process. The SQL data registration process is a process in which the
図16は、SQLデータ登録処理の一例を示すフローチャートであり、図17は図16に続くデータ登録処理のフローチャートである。以下、図16及び図17のフローチャートを参照しながらSQLデータ登録処理の一例を説明する。 FIG. 16 is a flowchart showing an example of the SQL data registration process, and FIG. 17 is a flowchart of the data registration process following FIG. Hereinafter, an example of the SQL data registration process will be described with reference to the flowcharts of FIGS. 16 and 17.
SQLデータ登録処理において、まず最初にアプリケーション部400はデータベースクライアント300のインタフェース部301にデータ登録を要求するSQLコマンドを送信する(S90)。インタフェース部301は、このSQLコマンドを処理一次判断部302に渡す。
このSQLコマンドを受け取った処理一次判断部302は、当該SQLコマンドが高速処理可能か否かを判定する(S91)。
In the SQL data registration process, first, the
The processing
ステップS91において当該SQLコマンドが高速処理可能であると判定した場合(S91、可能)、処理一次判断部302は当該SQLコマンドに対応するKVS型コマンドを生成し、このKVS型コマンドをKVS型コマンド処理部303に渡す(S92)。その後前述したKVS用APIデータ登録処理と同様の処理が実行され、SQLデータ登録処理は終了する。
If it is determined in step S91 that the SQL command can be processed at high speed (S91, possible), the process
一方、ステップS91において当該SQLコマンドが高速処理可能でないと判定した場合(S91、不可)、処理一次判断部302は当該SQLコマンドをクライアント側送受信部306に渡し、クライアント側送受信部306はこのSQLコマンドをサーバ側送受信部201に送信する(S93)。
データベースサーバ200のサーバ側送受信部201はSQLコマンドを受信する(S94)と、このSQLコマンドをSQL字句解釈部202に渡す。
SQL字句解釈部202はこのSQLコマンドを解釈し、解釈結果をSQLコマンド実行部203に渡す(S95)。
On the other hand, when it is determined in step S91 that the SQL command cannot be processed at high speed (S91, impossible), the processing
When the server side transmitting / receiving
The SQL
SQLコマンド実行部203はスキーマ情報管理部205からSQLコマンドで指定されたテーブルのテーブルスキーマ情報をスキーマ情報管理部205に要求し、これを取得する。SQLコマンド実行部203はテーブルスキーマ情報とSQLコマンドに含まれるデータをサーバ側シリアライズ処理部204に渡す(S96)。サーバ側シリアライズ処理部204はテーブルスキーマ情報とSQLコマンドに含まれるデータからシリアライズされたデータを生成し、これをSQLコマンド実行部203に返す(S97)。
The SQL
SQLコマンド実行部203はシリアライズされたデータをKVSデータ処理部206に渡す。KVSデータ処理部206はキャッシュメモリ207又はストレージ208にアクセスし、シリアライズされたデータをキャッシュメモリ207又はストレージ208に書き込む(S98)。
The SQL
キャッシュメモリ207又はストレージ208は、キャッシュメモリ207又はストレージ208に書き込んだ結果である実行結果をSQLコマンド実行部203に渡す(S99)。
The
SQLコマンド実行部203はサーバ側送受信部201にこの実行結果を渡す(S100_1)。サーバ側送受信部201は、クライアント側送受信部306この実行結果を送信する(S100_2)。
The SQL
クライアント側送受信部306は、処理一次判断部302、インタフェース部301を経由してこの実行結果をアプリケーション部400に渡す(S100_3)。アプリケーション部400は要求したデータ登録の実行結果を取得する。
以上で、SQLデータ登録処理は終了する。
The client-side transmitting / receiving
This is the end of the SQL data registration process.
図18に、上記図16及び図17に示したフローチャートに対応する、SQLデータ登録処理のシーケンス図を示す。なお、本シーケンス図では、処理一次判断部302で高速処理が不可であると判定された場合の流れを説明する。
FIG. 18 shows a sequence diagram of the SQL data registration process corresponding to the flowcharts shown in FIGS. In this sequence diagram, the flow when the processing
SQLデータ登録処理において、アプリケーション部400は、データ登録を要求するSQLコマンド「INSERT」をインタフェース部301に渡す(S501)。このSQLコマンド「INSERT」を受け取ったインタフェース部301は、SQLコマンド「INSERT」を処理一次判断部302に渡す(S502)。このSQLコマンド「INSERT」を受け取った処理一次判断部302は、高速処理が不可であると判定し、このSQLコマンド「INSERT」をクライアント側送受信部306に渡す(S503)。
In the SQL data registration process, the
クライアント側送受信部306は、このSQLコマンド「INSERT」をデータベースサーバ200のサーバ側送受信部201に送信する(S504)。SQLコマンドを受信したサーバ側送受信部201はこのSQLコマンドをSQL字句解釈部202に渡す(S505)。このSQLコマンドを受け取ったSQL字句解釈部202は、SQL文の字句解釈を実行する(S506)。
SQL文の字句解釈を実行したSQL字句解釈部202は、SQLコマンド実行部203へ解釈結果を渡す(S507)。
The client side transmitting / receiving
The SQL
SQLコマンド実行部203はSQLコマンドで指定されたテーブルのテーブルスキーマ情報をスキーマ情報管理部205に要求する(S508)。スキーマ情報管理部205は、当該テーブルスキーマ情報がデータベースサーバ200内に記憶されている場合は、当該テーブルスキーマ情報をSQLコマンド実行部203に返す(S509)。
The SQL
テーブルスキーマ情報を取得したSQLコマンド実行部203は、SQLコマンドに含まれるデータ(Key, value)とテーブルスキーマ情報をサーバ側シリアライズ処理部204に渡す(S510)。
The SQL
データ(Key, value)とテーブルスキーマ情報を受け取ったサーバ側シリアライズ処理部204は、これらをシリアライズし、シリアライズされたデータをSQLコマンド実行部203に返す(S511)。
シリアライズされたデータを受け取ったSQLコマンド実行部203は、シリアライズされたデータをKVSデータ処理部206に渡す(S512)。
Upon receiving the data (Key, value) and the table schema information, the server-side
The SQL
シリアライズされたデータを受け取ったKVSデータ処理部206はキャッシュメモリ207又はストレージ208にアクセスし、シリアライズされたデータをキャッシュメモリ207又はストレージ208に書き込ませる(S513)。
Receiving the serialized data, the KVS
キャッシュメモリ207又はストレージ208は、書き込んだ結果を示す実行結果をKVSデータ処理部206に渡す(S514)。実行結果を受け取ったKVSデータ処理部206は、この実行結果をSQLコマンド実行部203に渡す(S515)。SQLコマンド実行部203は、この実行結果をSQL字句解釈部202に渡す(S516)。実行結果を受け取ったSQL字句解釈部202は、サーバ側送受信部201にこの実行結果を渡す(S517)。サーバ側送受信部201は、データベースクライアント300のクライアント側送受信部306この実行結果を送信する(S518)。
The
実行結果を受信したクライアント側送受信部306は、処理一次判断部302、インタフェース部301を順に経由してこの実行結果をアプリケーション部400に渡す(S519、S520、S521)。
以上で、図18に示すSQLデータ登録処理のシーケンス図の説明を終了する。
The client side transmission /
This is the end of the description of the sequence diagram of the SQL data registration process shown in FIG.
[2.7.KVS用APIデータ取得処理]
KVS用APIデータ取得処理について述べる。KVS用APIデータ取得処理は、アプリケーション部400がデータ取得(読出し)を要求するKVSコマンドを、データベースクライアント300へ渡した場合に、これに応じてデータベース装置10がデータ取得を行う処理である。
[2.7. API data acquisition process for KVS]
This section describes the API data acquisition process for KVS. The KVS API data acquisition process is a process in which the
図19は、KVS用APIデータ取得処理の一例を示すフローチャートである。図19のフローチャートを参照しながらKVS用APIデータ取得処理の一例を説明する。 FIG. 19 is a flowchart illustrating an example of the KVS API data acquisition process. An example of KVS API data acquisition processing will be described with reference to the flowchart of FIG.
KVS用APIデータ取得処理において、まず最初にデータベースクライアント300のアプリケーション部400はデータ取得を要求するKVSコマンドをインタフェース部301に渡す(S110_1)。
In the KVS API data acquisition process, first, the
インタフェース部301はデータベースクライアントのクライアント側送受信部306にこのKVSコマンドを渡し、クライアント側送受信部306はデータベースサーバ200のサーバ側送受信部201にKVSコマンドを送信する(S110_2)。
The
データベースサーバ200のサーバ側送受信部201は、このKVSコマンドを受信すると、KVSコマンド処理部303にこのKVSコマンドを渡す(S110_3)。
When receiving the KVS command, the server-side transmitting / receiving
KVSデータ処理部206は、キャッシュメモリ207又はストレージ208にアクセスし、キャッシュメモリ207又はストレージ208から、KVSコマンドで要求されているデータを取得する(S110_4)。
The KVS
KVSデータ処理部206は、データ取得処理の実行結果(取得したデータを含む)をサーバ側送受信部201に渡す(S110_5)。サーバ側送受信部201はこの実行結果をクライアント側送受信部306に送信する(S110_6)。
クライアント側送受信部306は、受信した実行結果をKVS型コマンド処理部303に渡す(S110_7)。
The KVS
The client side transmitting / receiving
KVS型コマンド処理部303は、実行結果に含まれるデータに対応するテーブルスキーマ情報をスキーマ情報キャッシュ305から読み出す(S110_8)。
The KVS type
KVS型コマンド処理部303は、実行結果に含まれるデータ及びステップS110_8で取得したテーブルスキーマ情報をクライアント側シリアライズ処理部304に渡す。実行結果に含まれるデータ及びステップS110_8で取得したテーブルスキーマ情報をクライアント側シリアライズ処理部304は、データをデシリアライズしてデータからvalueを生成し、生成したvalueをKVS型コマンド処理部303返す(S110_9)。
The KVS type
KVS型コマンド処理部303は、上記value及び実行結果をインタフェース部301に渡し、インタフェース部301は上記value及び実行結果をアプリケーション部400に渡す(S110_10)。
以上でKVS用APIデータ取得処理が終了する。
図20に、上記図19に示したフローチャートに対応する、KVS用APIデータ取得処理のシーケンス図を示す。
データベースクライアント300のアプリケーション部400はデータ取得を要求するKVSコマンドをインタフェース部301に渡す(S601)。
インタフェース部301はKVS型コマンド処理部303にこのKVSコマンドを渡す(S602)。
The KVS
This is the end of the KVS API data acquisition process.
FIG. 20 shows a sequence diagram of KVS API data acquisition processing corresponding to the flowchart shown in FIG.
The
The
KVS型コマンド処理部303はクライアント側送受信部306にこのKVSコマンドを渡す(S603)。KVSコマンドを受け取ったクライアント側送受信部306はデータベースサーバ200のサーバ側送受信部201にこのKVSコマンドを送信する(S604)。
The KVS type
データベースサーバ200のサーバ側送受信部201は、このKVSコマンドを受信すると、KVSコマンド処理部303にこのKVSコマンドを渡す(S605)。
When receiving the KVS command, the server-side transmitting / receiving
KVSデータ処理部206は、キャッシュメモリ207又はストレージ208にアクセスし、キャッシュメモリ207又はストレージ208から、KVSコマンドで要求されているデータの読出しを要求する(S606)。
キャッシュメモリ207又はストレージ208は、データの読出し要求に応じて、KVSデータ処理部206にデータを返す(S607)。
The KVS
In response to the data read request, the
データを取得したKVSデータ処理部206は、データ取得処理の実行結果(取得したデータを含む)をサーバ側送受信部201に渡す(S608)。サーバ側送受信部201はこの実行結果をクライアント側送受信部306に送信する(S609)。
クライアント側送受信部306は、受信した実行結果をKVS型コマンド処理部303に渡す(S610)。
The KVS
The client side transmitting / receiving
KVS型コマンド処理部303は、実行結果に含まれるデータに対応するテーブルスキーマ情報をスキーマ情報キャッシュ305に要求し(S611)、スキーマ情報キャッシュ305は要求されたテーブルスキーマ情報をKVS型コマンド処理部303に渡す(S612)。
The KVS type
KVS型コマンド処理部303は、実行結果に含まれるデータ及びステップS611,S612で取得したテーブルスキーマ情報をクライアント側シリアライズ処理部304に渡す(S613)。実行結果に含まれるデータ及びステップS611,S612で取得したテーブルスキーマ情報を受け取ったクライアント側シリアライズ処理部304は、データをデシリアライズしてデータからvalueを生成し、生成したvalueをKVS型コマンド処理部303に返す(S614)。
The KVS type
KVS型コマンド処理部303は、上記value及び実行結果をインタフェース部301に渡す(S615)。インタフェース部301は上記value及び実行結果をアプリケーション部400に渡す(S616)。
以上で、図20に示す、KVS用APIデータ取得処理のシーケンス図の説明を終了する。
The KVS type
This is the end of the description of the sequence diagram of the KVS API data acquisition process shown in FIG.
[2.8.SQLデータ取得処理]
SQLデータ取得処理について述べる。SQLデータ取得処理は、アプリケーション部400がデータ取得(読出し)を要求するSQLコマンドを、データベースクライアント300へ渡した場合に、これに応じてデータベース装置10がデータ取得を行う処理である。
[2.8. SQL data acquisition processing]
Describe SQL data acquisition processing. The SQL data acquisition process is a process in which the
図21は、SQLデータ取得処理の一例を示すフローチャートであり、図22は図21のフローチャートに続くフローチャートである。図21及び図22のフローチャートを参照しながらSQLデータ取得処理の一例を説明する。 FIG. 21 is a flowchart showing an example of the SQL data acquisition process, and FIG. 22 is a flowchart following the flowchart of FIG. An example of the SQL data acquisition process will be described with reference to the flowcharts of FIGS.
SQLデータ取得処理において、最初にアプリケーション部400はデータベースクライアント300のインタフェース部301にデータ登録を要求するSQLコマンドを送信する(S120_1)。インタフェース部301は、このSQLコマンドを処理一次判断部302に渡す。
このSQLコマンドを受け取った処理一次判断部302は、当該SQLコマンドが高速処理可能か否かを判定する(S120_2)。
In the SQL data acquisition process, first, the
Upon receiving this SQL command, the processing
ステップS120_2において当該SQLコマンドが高速処理可能であると判定した場合(S120_2、可能)、処理一次判断部302は当該SQLコマンドに対応するKVS型コマンドを生成し、このKVS型コマンドをKVS型コマンド処理部303に渡す(S120_3)。その後前述したKVS用APIデータ取得処理と同様の処理が実行され、SQLデータ取得処理は終了する。
When it is determined in step S120_2 that the SQL command can be processed at high speed (S120_2, possible), the primary
一方、ステップS120_2において当該SQLコマンドが高速処理可能でないと判定した場合(S120_2、不可)、処理一次判断部302は当該SQLコマンドをクライアント側送受信部306に渡し、クライアント側送受信部306はこのSQLコマンドをサーバ側送受信部201に送信する(S120_4)。
データベースサーバ200のサーバ側送受信部201はSQLコマンドを受信すると、SQLコマンドをSQL字句解釈部202に渡す(S120_5)。
SQL字句解釈部202はこのSQLコマンドを解釈し、解釈結果をSQLコマンド実行部203に渡す(S120_6)。
On the other hand, when it is determined in step S120_2 that the SQL command cannot be processed at high speed (S120_2, impossible), the processing
When the server side transmitting / receiving
The SQL
SQLコマンド実行部203はSQLコマンドで指定されたテーブルのテーブルスキーマ情報をスキーマ情報管理部205に要求し、これを取得する。SQLコマンド実行部203はテーブルスキーマ情報とSQLコマンドに含まれるデータをKVSデータ処理部206に渡す(S120_7)。
The SQL
KVSデータ処理部206はキャッシュメモリ207又はストレージ208にアクセスし、シリアライズされたデータをキャッシュメモリ207又はストレージ208から読み出す(S120_8)。キャッシュメモリ207又はストレージ208は、シリアライズされたデータをKVSデータ処理部206に渡す。KVSデータ処理部206はシリアライズされたデータを含む実行結果をSQLコマンド実行部203に返す(S120_9)。
The KVS
SQLコマンド実行部203は、受け取ったシリアライズされているデータをサーバ側シリアライズ処理部204に渡す。サーバ側シリアライズ処理部204は、シリアライズされているデータをデシリアライズしてデシリアライズされたデータを生成する(S120_10)、
The SQL
サーバ側シリアライズ処理部204は、デシリアライズされたデータをSQLコマンド実行部203に返す。デシリアライズされたデータを受け取ったSQLコマンド実行部203は、サーバ側送受信部201にデータ取得の実行結果(デシリアライズされたデータを含む)を渡す(S120_11)。
The server side
実行結果(デシリアライズされたデータを含む)を受け取ったサーバ側送受信部201は、クライアント側送受信部306この実行結果を送信する(S120_12)。
Receiving the execution result (including deserialized data), the server-side transmission /
実行結果を受信したクライアント側送受信部306は、処理一次判断部302、インタフェース部301を経由してこの実行結果をアプリケーション部400に渡す(S120_13)。
以上で、SQLデータ取得処理は終了する。
The client side transmitting / receiving
This is the end of the SQL data acquisition process.
図23に、上記図21及び図22のフローチャートに対応する、SQLデータ取得処理のシーケンス図を示す。なお、本シーケンス図では、処理一次判断部302で高速処理が不可であると判定された場合の流れを示すこととする。
FIG. 23 shows a sequence diagram of the SQL data acquisition process corresponding to the flowcharts of FIGS. 21 and 22 described above. This sequence diagram shows the flow when the primary
SQLデータ取得処理において、アプリケーション部400は、データ取得(読出し)を要求するSQLコマンドをインタフェース部301に渡す(S701)。このSQLコマンドを受け取ったインタフェース部301は、このSQLコマンドを処理一次判断部302に渡す(S702)。このSQLコマンドを受け取った処理一次判断部302は、高速処理が不可であると判定し、このSQLコマンドをクライアント側送受信部306に渡す(S703)。
In the SQL data acquisition process, the
クライアント側送受信部306は、このSQLコマンドをデータベースサーバ200のサーバ側送受信部201に送信する(S704)。SQLコマンドを受信したサーバ側送受信部201はこのSQLコマンドをSQL字句解釈部202に渡す(S705)。このSQLコマンドを受け取ったSQL字句解釈部202は、SQL文の字句解釈を実行する(S706)。
SQLコマンドの字句解釈を実行したSQL字句解釈部202は、SQLコマンド実行部203へ解釈結果を渡す(S707)。
The client side transmitting / receiving
The SQL
SQLコマンド実行部203はSQLコマンドで指定されたテーブルのテーブルスキーマ情報をスキーマ情報管理部205に要求する(S708)。スキーマ情報管理部205は、当該テーブルスキーマ情報がデータベースサーバ200内に記憶されている場合は、当該テーブルスキーマ情報をSQLコマンド実行部203に返す(S709)。
The SQL
テーブルスキーマ情報を取得したSQLコマンド実行部203は、SQLコマンドに含まれるデータ(Key, value)をKVSデータ処理部206に渡す(S710)。
The SQL
データを受け取ったKVSデータ処理部206はキャッシュメモリ207又はストレージ208にアクセスし、シリアライズされたデータをキャッシュメモリ207又はストレージ208にデータ読み出しを要求する(S711)。キャッシュメモリ207又はストレージ208は、要求されたデータの読出しの実行結果(読み出したデータを含む)をKVSデータ処理部206に渡す(S712)。
KVSデータ処理部206は、キャッシュメモリ207又はストレージ208から取得したデータをSQLコマンド実行部203に渡す(S713)。
The KVS
The KVS
データを受け取ったSQLコマンド実行部203は、ステップS708,709にて取得したテーブルスキーマ情報とともにこのデータをサーバ側シリアライズ処理部204に渡す(S714)。
The SQL
データ(Key, value)とテーブルスキーマを受け取ったサーバ側シリアライズ処理部204は、データをデシリアライズし、デシリアライズされたデータをSQLコマンド実行部203に返す(S715)。
The server-side
デシリアライズされたデータを受け取ったSQLコマンド実行部203は、デシリアライズされたデータを含む実行結果をSQL字句解釈部202に渡す(S716)。実行結果を受け取ったSQL字句解釈部202は、サーバ側送受信部201にこの実行結果を渡す(S717)。サーバ側送受信部201は、データベースクライアント300のクライアント側送受信部306この実行結果を送信する(S718)。
The SQL
実行結果を受信したクライアント側送受信部306は、処理一次判断部302、インタフェース部301を順に経由してこの実行結果をアプリケーション部400に渡す(S719、S720、S721)。
以上で、図23に示す、SQLデータ取得処理のシーケンス図の説明を終了する。
The client side transmitting / receiving
This is the end of the description of the sequence diagram of the SQL data acquisition processing shown in FIG.
[3.命令文の例]
アプリケーション部400からデータベースクライアント300に渡される命令文の例を示す。
(1)テーブルスキーマ情報作成(登録)を行わせる命令文の例は以下のとおりである。
SQL: CREATE TABLE テーブル名 ( key, value1, …);
(2)データ登録を行わせる命令文の例は以下のとおりである。
なお、データ登録は、SQL と KVS用APIのどちらを用いても実行可能である。
SQL: INSERT INTO テーブル名 VALUES( aa, bb, …);
KVS用API: set ( テーブル名, key, value1, value2, … );
put ( テーブル名, key, value1, value2, … );
(3)データ取得を行わせる命令文の例は以下のとおりである。
なお、データ取得はSQL と KVS用APIのどちらを用いても実行可能である。
SQL: SELECT カラム名 FROM テーブル名 WHERE 条件;
KVS用API: get ( テーブル名, key, *value1, *value2, … );
(4)データ削除を行わせる命令文の例は以下のとおりである。
なお、データ削除はSQL と KVSのどちらを用いても実行可能である。:
SQL: DELETE FROM テーブル名 WHERE 条件;
KVS用API: delete ( テーブル名, key );
[3. Example of statement]
The example of the command sentence passed from the
(1) An example of a command statement for creating (registering) table schema information is as follows.
SQL: CREATE TABLE table name (key, value1,…);
(2) An example of a command statement for registering data is as follows.
Data registration can be performed using either SQL or KVS API.
SQL: INSERT INTO table name VALUES (aa, bb,…);
API for KVS: set (table name, key, value1, value2,…);
put (table name, key, value1, value2,…);
(3) An example of a command statement for performing data acquisition is as follows.
Data can be acquired using either SQL or KVS API.
SQL: SELECT column name FROM table name WHERE condition;
KVS API: get (table name, key, * value1, * value2,…);
(4) An example of a command statement for deleting data is as follows.
Data deletion can be performed using either SQL or KVS. :
SQL: DELETE FROM table name WHERE condition;
KVS API: delete (table name, key);
[4.第2の実施の形態]
第2の実施の形態を説明する。本発明の第2の実施の形態は、データベース装置として提案される。このデータベース装置は、SQLと、KVS用APIという複数のデータ操作手段を備え、KVS用APIにより、速度が遅いというSQLの課題を解決し、既存のアプリケーションで使用される場合が多いSQLでも操作できる装置である。
[4. Second Embodiment]
A second embodiment will be described. The second embodiment of the present invention is proposed as a database device. This database device has multiple data manipulation means called SQL and API for KVS, solves the problem of slow SQL by using KVS API, and can operate even SQL that is often used in existing applications Device.
第2の実施の形態にかかるデータベース装置は、コンピュータ、ワークステーション、サーバなどの情報処理装置であって、この情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読み出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。 The database apparatus according to the second embodiment is an information processing apparatus such as a computer, a workstation, or a server. The information processing apparatus includes an arithmetic processing unit (CPU), a main memory (RAM), and a read-only memory ( ROM), an input / output device (I / O), and, if necessary, an external storage device such as a hard disk device.
図24に、第2の実施の形態にかかるデータベース装置10の構成例を示す機能ブロック図を掲げる。なお、第1の実施の形態にかかるデータベース装置と同一の構成要素については、同一の参照符号を付しそれら構成要素の詳細な説明は省略する。
FIG. 24 is a functional block diagram showing a configuration example of the
本発明の実施の形態にかかるデータベース装置は、アプリケーションサーバ100と、アプリケーションサーバ100に接続されたデータベースサーバ200を有している。アプリケーションサーバ100はネットワーク20に接続されており、ネットワーク20を介して端末装置30と通信可能である。
The database apparatus according to the embodiment of the present invention includes an
[4.1.アプリケーションサーバ]
アプリケーションサーバ100は、データベースサーバ200が提供するデータベースを利用して、サービスを端末装置30に提供する機能を有する。
アプリケーションサーバ100は、アプリケーション部400と、アプリケーション部400に接続されたデータベースクライアント300を有する。
[4.1. Application server]
The
The
[4.1.1.データベースクライアント]
図24を参照しながら、データベースクライアント300の構成例を説明する。データベースクライアント300は、インタフェース部301と、インタフェース部301に接続されたクライアント側送受信部306とを有する。なお、インタフェース部301は、アプリケーション部400と接続されており、クライアント側送受信部306はサーバ側送受信部201に接続されている。
[4.1.1. Database client]
A configuration example of the database client 300 will be described with reference to FIG. The database client 300 includes an
[4.2.データベースサーバ]
データベースサーバ200は、サーバ側送受信部201と、サーバ側送受信部201に接続された処理一次判断部302及びKVS型コマンド処理部303と、処理一次判断部302に接続されたSQL字句解釈部202と、SQL字句解釈部202に接続されたSQLコマンド実行部203と、SQLコマンド実行部203に接続されたKVSデータ処理部206、サーバ側シリアライズ処理部204、スキーマ情報管理部205と、KVSデータ処理部206に接続されたキャッシュメモリ207、ストレージ208とを有している。
[4.2. Database server]
The
KVS型コマンド処理部303は処理一次判断部302に接続されていると共に、サーバ側シリアライズ処理部204、スキーマ情報管理部205にも接続されている。KVSデータ処理部206及びSQLコマンド実行部203はサーバ側送受信部201に接続されている。サーバ側送受信部201は、クライアント側送受信部306に接続されている。
The KVS type
第2の実施の形態にかかるデータベース装置は、第1の実施の形態では、データベースクライアント300に設けられていた処理一次判断部302及びKVS型コマンド処理部303をデータベースサーバ200に設けると共に、サーバ側シリアライス処理部204を、第1の実施の形態のクライアント側シリアライズ処理部304及びサーバ側シリアライス処理部204の双方の機能を有するシリアライズ処理部204Aに置き換えている点で異なっている。その他の構成及び各構成要素の機能は第1の実施の形態と同様である。
In the database device according to the second embodiment, in the first embodiment, the processing
第2の実施の形態にかかるデータベース装置は、データベースサーバ200Aでシリアライズやデシリアライズを行うという特徴がある。この特徴によって、データベースサーバ200Aに接続中の各データベースクライアント300Aへのスキーマ情報変更通知が不要となり、処理負荷の低減、処理時間の高速化が可能となる。 The database device according to the second embodiment is characterized in that serialization and deserialization are performed by the database server 200A. This feature eliminates the need for notification of schema information change to each database client 300A connected to the database server 200A, thereby reducing the processing load and increasing the processing time.
[5.利点]
上記第1及び第2の実施の形態によれば、KVS用APIデータベースの操作をすることができるため、高速に処理を行うことが可能であるとともに、SQLでデータベースの操作することもできるため、様々な条件でのデータ取得が可能となり、また、SQL文を使用した既存のアプリケーションを変更すること無く使用ことも可能となる。
[5. advantage]
According to the first and second embodiments, since it is possible to operate the API database for KVS, it is possible to perform processing at high speed and also to operate the database with SQL. Data can be acquired under various conditions, and existing applications that use SQL statements can be used without modification.
また、上記第1及び第2の実施の形態によれば、テーブルスキーマ情報をデータベース側に持たせ、シリアライズやデシリアライズをアプリケーション側でなくデータベース側で行うことで、テーブル構造の変更が容易になる。
また、上記第1及び第2の実施の形態によれば、同じデータについて、KVS用APIとSQLの使い分けをすることが可能となる。
In addition, according to the first and second embodiments described above, it is easy to change the table structure by providing the table schema information on the database side and performing serialization and deserialization on the database side instead of the application side. .
Further, according to the first and second embodiments, it is possible to selectively use the KVS API and SQL for the same data.
[6.まとめ、その他]
以上、本発明の実施の形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において、種々の変更、追加、組み合わせ等が可能である。
[6. Summary, etc.]
As mentioned above, although embodiment of this invention was described, this invention is not limited to these, A various change, addition, a combination, etc. are possible in the range which does not deviate from the meaning of invention.
10・・・データベース装置; 100・・・アプリケーションサーバ; 200,200A・・・データベースサーバ; 201・・・サーバ側送受信部; 202・・・SQL字句解釈部; 203・・・SQLコマンド実行部; 204・・・サーバ側シリアライズ処理部; 205・・・スキーマ情報管理部; 206・・・KVSデータ処理部; 207・・・キャッシュメモリ; 208・・・ストレージ; 300,300A・・・データベースクライアント; 302・・・処理一次判断部; 303・・・KVSコマンド処理部; 304・・・クライアント側シリアライズ処理部; 305・・・スキーマ情報キャッシュ; 306・・・クライアント側送受信部; 400・・・アプリケーション部;
DESCRIPTION OF
Claims (6)
索引データと実データとをペアで保存するデータベース方式のためのデータベース言語である第1のデータベース言語で記述された第1のコマンドを受け取ると、当該第1のコマンドに応じて前記記憶手段に記憶されたデータを操作するデータ処理手段と、
前記第1のデータベース言語とは別のデータベース言語である第2のデータベース言語で記述された第2のコマンドを受け取ると、この第2のコマンドをシリアライズさせて、索引データと実データとからなるデータを生成させ、このデータを前記データ処理手段に渡す第2コマンド実行手段と、
前記第1のデータベース言語で記述された第1のコマンドを受け取ると、前記第1のコマンドをシリアライズさせて、索引データと実データとからなるデータを生成させ、このデータを前記データ処理手段に送信させる第1コマンド処理手段と、
前記第1のデータベース言語で記述された第1のコマンドをアプリケーションから受け取った場合、この第1のコマンドを前記第1コマンド処理手段に渡し、前記第2のデータベース言語で記述された第2のコマンドを受け取ると、当該第2のコマンドを前記第2コマンド実行手段に送信させるインタフェース手段と、
を有するデータベース装置。 Storage means for storing data in a database system that stores index data and actual data in pairs;
When a first command described in a first database language, which is a database language for a database system that stores index data and actual data in pairs, is received in the storage means according to the first command Data processing means for operating the processed data;
When a second command described in a second database language, which is a database language different from the first database language, is received, the second command is serialized, and data consisting of index data and actual data And a second command execution means for passing the data to the data processing means,
When the first command described in the first database language is received, the first command is serialized, data including index data and actual data is generated, and the data is transmitted to the data processing means. First command processing means for causing
When the first command described in the first database language is received from the application, the first command is transferred to the first command processing means, and the second command described in the second database language Interface means for transmitting the second command to the second command execution means,
A database device.
前記第1コマンド処理手段及び前記インタフェース手段は、前記第1サーバに含まれ、
前記記憶手段、前記データ処理手段、及び前記第2コマンド実行手段は、前記第2サーバに含まれる
請求項1に記載のデータベース装置。 A first server configured to be able to communicate with a terminal device via a network, and a second server connected to the first server,
The first command processing means and the interface means are included in the first server,
The database apparatus according to claim 1, wherein the storage unit, the data processing unit, and the second command execution unit are included in the second server .
前記記憶手段が記憶するテーブルのテーブルスキーマ情報をキャッシュするスキーマ情報キャッシュと、A schema information cache that caches table schema information of a table stored in the storage unit;
前記テーブルスキーマ情報を参照して前記第1のコマンドをシリアライズする第1シリアライズ処理手段と、First serialization processing means for serializing the first command with reference to the table schema information;
を更に有し、Further comprising
前記第1コマンド処理手段は、前記第1のコマンドを受け取ると、前記スキーマ情報キャッシュから前記テーブルスキーマ情報を取得し、前記第1シリアライズ処理手段に対して前記第1のコマンド及び前記テーブルスキーマ情報を渡し、前記第1シリアライズ処理手段に前記索引データ及び実データとからなるデータを生成させるWhen the first command processing means receives the first command, the first command processing means acquires the table schema information from the schema information cache, and sends the first command and the table schema information to the first serialization processing means. Passing, and causing the first serialization processing means to generate data composed of the index data and the actual data
請求項2に記載のデータベース装置。The database device according to claim 2.
前記第1サーバは、前記変更内容を通知するメッセージを取得した場合、前記変更内容を前記スキーマ情報キャッシュに保存するWhen the first server acquires a message notifying the change content, the first server stores the change content in the schema information cache.
請求項3に記載のデータベース装置。The database device according to claim 3.
前記記憶手段が記憶するテーブルのテーブルスキーマ情報を記憶するスキーマ情報管理手段と、Schema information management means for storing table schema information of the table stored in the storage means;
前記テーブルスキーマ情報を参照して前記第2のコマンドをシリアライズする第2シリアライズ処理手段と、Second serialization processing means for serializing the second command with reference to the table schema information;
を更に有し、Further comprising
前記第2コマンド実行手段は、前記第2のコマンドを受け取ると、前記スキーマ情報管理手段から前記テーブルスキーマ情報を取得し、前記第2シリアライズ処理手段に対して前記第2のコマンド及び前記テーブルスキーマ情報を渡し、前記第2シリアライズ処理手段に前記索引データ及び実データとからなるデータを生成させるWhen the second command execution means receives the second command, the second command execution means acquires the table schema information from the schema information management means, and sends the second command and the table schema information to the second serialization processing means. And causing the second serialization processing means to generate data composed of the index data and the actual data
請求項2に記載のデータベース装置。The database device according to claim 2.
請求項5に記載のデータベース装置。The database device according to claim 5.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017153915A JP6367441B2 (en) | 2017-08-09 | 2017-08-09 | Database device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017153915A JP6367441B2 (en) | 2017-08-09 | 2017-08-09 | Database device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014024518A Division JP6211949B2 (en) | 2014-02-12 | 2014-02-12 | Database device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017204303A JP2017204303A (en) | 2017-11-16 |
JP6367441B2 true JP6367441B2 (en) | 2018-08-01 |
Family
ID=60322381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017153915A Expired - Fee Related JP6367441B2 (en) | 2017-08-09 | 2017-08-09 | Database device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6367441B2 (en) |
-
2017
- 2017-08-09 JP JP2017153915A patent/JP6367441B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2017204303A (en) | 2017-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6211949B2 (en) | Database device | |
CN107077459A (en) | Device with communication interface and method for controlling database access | |
US8291310B2 (en) | Delta-saving in XML-based documents | |
JP6070936B2 (en) | Information processing apparatus, information processing method, and program | |
CN105843867B (en) | Metadata Model-based Retrieval Method and Metadata Model-Based Retrieval Device | |
KR101899055B1 (en) | A database update method based on spreadsheet interface by making queries optimized for updated records | |
US11726999B1 (en) | Obtaining inferences to perform access requests at a non-relational database system | |
KR101769853B1 (en) | A batch update system based on spreadsheet interface for the database by using query templates | |
US20210089619A1 (en) | Methods to create and use responsive forms with externalized configurations and artifacts | |
JP5555550B2 (en) | Data conversion method, apparatus and program | |
US8073841B2 (en) | Optimizing correlated XML extracts | |
CN119106104A (en) | A content retrieval method, device, equipment, intelligent agent and storage medium | |
JP6367441B2 (en) | Database device | |
KR101908556B1 (en) | A database update system based on spreadsheet interface by finding out updated records automatically | |
WO2020116014A1 (en) | Document creation assistance system | |
US20140304293A1 (en) | Apparatus and Method for Query Based Replication of Database | |
US9946698B2 (en) | Inserting text and graphics using hand markup | |
US11556540B1 (en) | Transmission format cache for database reads | |
JPH117445A (en) | Integrated document management device | |
CN111078726A (en) | Operation method of data access layer, server and storage medium | |
JP2021039579A (en) | Document creation support system | |
CN112948454B (en) | Method, apparatus, middleware and computer readable storage medium for accessing database | |
JP6589317B2 (en) | Rewriting device, processing method and program thereof, and information processing device | |
JP5696280B1 (en) | Term unification system, term unification program, and term unification method | |
US20240394273A1 (en) | Unifying Runtime Catalog and Metastore for a Cloud Storage System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170809 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170809 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180524 |
|
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: 20180605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180704 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6367441 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |