JP2018206206A - Database management device, database management system, and database management method - Google Patents
Database management device, database management system, and database management method Download PDFInfo
- Publication number
- JP2018206206A JP2018206206A JP2017112850A JP2017112850A JP2018206206A JP 2018206206 A JP2018206206 A JP 2018206206A JP 2017112850 A JP2017112850 A JP 2017112850A JP 2017112850 A JP2017112850 A JP 2017112850A JP 2018206206 A JP2018206206 A JP 2018206206A
- Authority
- JP
- Japan
- Prior art keywords
- query
- application
- buffer
- management unit
- query result
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明の実施形態は、データベース管理装置、データベース管理システム、およびデータベース管理方法に関する。 Embodiments described herein relate generally to a database management device, a database management system, and a database management method.
フィールドIoT(Internet of Things)の分野においては、データベース管理装置とアプリケーション端末とが接続されたデータベース管理システムが知られている。データベース管理システムにおいて、アプリケーション端末は、アプリケーションを実行し、データを要求するためのクエリをデータベース管理装置に送信する。一方、データベース管理装置は、アプリケーション端末から受信したクエリに基づく処理を実行してデータ(クエリ結果)を取得し、取得したデータをアプリケーション端末に送信する。 In the field of field IoT (Internet of Things), a database management system in which a database management device and an application terminal are connected is known. In the database management system, the application terminal executes the application and transmits a query for requesting data to the database management apparatus. On the other hand, the database management apparatus executes processing based on the query received from the application terminal to acquire data (query result), and transmits the acquired data to the application terminal.
データベース管理システムのネットワーク接続環境が不安定な場合、データベース管理装置とアプリケーション端末との間の通信が突然切断される場合がある。この場合、データベース管理装置は、アプリケーション端末に送信できなかったクエリ結果を、カーネルのネットワーク層におけるバッファメモリに一時的に蓄積し、データベース管理装置とアプリケーション端末との間の通信が復旧した後で、クエリ結果をアプリケーション端末に再送信していた。 When the network connection environment of the database management system is unstable, communication between the database management apparatus and the application terminal may be suddenly disconnected. In this case, the database management device temporarily stores the query result that could not be sent to the application terminal in the buffer memory in the kernel network layer, and after the communication between the database management device and the application terminal is restored, The query result was resent to the application terminal.
しかしながら、データベース管理装置は、クエリ結果が取得された順にバッファメモリにクエリ結果を蓄積し、バッファメモリに蓄積されたクエリ結果のデータ量が所定量を超えると、データベース管理装置はバッファフルエラーとしてクエリに基づく処理を停止していた。このため、アプリケーションの都合に応じてクエリ結果を再送信できない場合があった。 However, the database management apparatus accumulates the query results in the buffer memory in the order in which the query results are acquired, and if the data amount of the query results stored in the buffer memory exceeds a predetermined amount, the database management apparatus performs a query as a buffer full error. The processing based on was stopped. For this reason, there are cases where the query result cannot be retransmitted depending on the convenience of the application.
本発明が解決しようとする課題は、データベース管理システムのネットワーク接続環境が不安定な場合であっても、アプリケーションの都合に応じてクエリ結果のデータを再送信することができるデータベース管理装置、データベース管理システム、およびデータベース管理方法を提供することである。 A problem to be solved by the present invention is a database management apparatus and database management capable of retransmitting query result data according to the convenience of an application even when the network connection environment of the database management system is unstable A system and a database management method are provided.
実施形態のデータベース管理装置は、送受信管理部と、クエリ実行部と、バッファ管理部とを持つ。前記送受信管理部は、アプリケーションを実行するアプリケーション端末からクエリを受信するとともに、前記クエリの検索対象のデータであるクエリ結果をバッファメモリから読み出して前記アプリケーション端末に送信する。前記クエリ実行部は、前記送受信管理部によって受信された前記クエリに基づく処理を実行することにより、前記クエリ結果を取得する。前記バッファ管理部は、前記アプリケーション端末との通信が切断された場合に、前記クエリ実行部によって取得された前記クエリ結果を前記バッファメモリに記憶させるか否かを、前記アプリケーションとの通信に関する評価値に基づいて判定する。 The database management apparatus according to the embodiment includes a transmission / reception management unit, a query execution unit, and a buffer management unit. The transmission / reception management unit receives a query from an application terminal that executes an application, and reads a query result that is data to be searched for the query from a buffer memory and transmits the query result to the application terminal. The query execution unit acquires the query result by executing a process based on the query received by the transmission / reception management unit. The buffer management unit determines whether or not to store the query result acquired by the query execution unit in the buffer memory when communication with the application terminal is disconnected. Determine based on.
以下、実施形態のデータベース管理装置、データベース管理システム、およびデータベース管理方法を、図面を参照して説明する。 Hereinafter, a database management device, a database management system, and a database management method according to embodiments will be described with reference to the drawings.
(第1実施形態)
図1は、第1実施形態に係るデータベース管理システム10の全体構成を示すブロック図である。データベース管理システム10は、データベース管理装置200と、複数のアプリケーション端末100−1、100−2、および100−3とを備える。図1において、3つのアプリケーション端末100−1、100−2、および100−3が示されているが、アプリケーション端末の数はこれに限られない。例えば、4つ以上のアプリケーション端末100がデータベース管理装置200に接続されてもよい。
(First embodiment)
FIG. 1 is a block diagram showing an overall configuration of a
アプリケーション端末100−1、100−2、および100−3は、アプリケーションを実行し、データを要求するためのクエリをデータベース管理装置200に送信する端末である。アプリケーション端末100−1、100−2、および100−3は、デスクトップ型のコンピュータであるが、これに限られない。例えば、アプリケーション端末100は、ノート型のコンピュータ、タブレット端末、またはPDA(Personal Digital Assistant)であってもよい。
Application terminals 100-1, 100-2, and 100-3 are terminals that execute an application and transmit a query for requesting data to the
データベース管理装置200は、アプリケーション端末100−1、100−2、および100−3からクエリを受信するとともに、クエリの検索対象のデータであるクエリ結果を、アプリケーション端末100−1、100−2、および100−3に送信する装置である。例えば、データベース管理装置200は、日々の消費電力データを蓄積するスマートメータであるが、これに限られない。データベース管理装置200は、ネットワークNWを介して複数のアプリケーション端末100−1、100−2、および100−3に接続されている。ネットワークNWは、例えば、WAN(Wide Area Network)やLAN(Local Area Network)、インターネット、プロバイダ装置、無線基地局、専用回線などのうち一部または全部を含む。
The
図2は、第1実施形態に係るアプリケーション端末100とデータベース管理装置200の動作を説明するためのブロック図である。アプリケーション端末100−1、100−2、および100−3は同様の動作を行うため、図2においては、これらをまとめてアプリケーション端末100として説明する。
FIG. 2 is a block diagram for explaining operations of the
アプリケーション端末100は、アプリケーション実行部110と、パケットサイズ決定部120とを備える。アプリケーション実行部110およびパケットサイズ決定部120は、CPU(Central Processing Unit)等のプロセッサが、プログラムメモリに記憶されたプログラムを実行することで実現される。なお、アプリケーション実行部110およびパケットサイズ決定部120は、プロセッサがプログラムを実行するのと同様の機能を有するLSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、およびFPGA(Field-Programmable Gate Array)等のハードウェアにより実現されてもよい。
The
データベース管理装置200は、送受信管理部210と、接続管理部230と、クエリ実行部240と、バッファ管理部250と、通信品質判定部260と、バッファメモリ270と、記憶部280とを備える。送受信管理部210、接続管理部230、クエリ実行部240、バッファ管理部250、および通信品質判定部260は、CPU等のプロセッサが、プログラムメモリに記憶されたプログラムを実行することで実現される。なお、送受信管理部210、接続管理部230、クエリ実行部240、バッファ管理部250、および通信品質判定部260は、プロセッサがプログラムを実行するのと同様の機能を有するLSI、ASIC、およびFPGA等のハードウェアにより実現されてもよい。
The
バッファメモリ270および記憶部280は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、バッファメモリ270および記憶部280の一部または全部は、NAS(Network Attached Storage)や外部のストレージサーバなど、データベース管理装置200がアクセス可能な外部装置であってもよい。
The
記憶部280には、様々なデータが蓄積される。例えば、スマートメータの場合、日々の消費電力データが記憶部280に蓄積される。記憶部280に記憶されるデータは、消費電力データに限られず、どのようなデータであってもよい。なお、記憶部280には、テーブル形式でデータが記憶されている。
Various data are stored in the
接続管理部230は、アプリケーション端末100とデータベース管理装置200との間の接続を管理する。接続管理部230は、パケットサイズ決定部231を備える。パケットサイズ決定部231は、アプリケーション端末100のパケットサイズ決定部120とネゴシエーションを行って、データベース管理装置200とアプリケーション端末100との間で使用可能な最大パケットサイズを決定する。例えば、最大パケットサイズは、Path MTU Discovery等の技術を利用して求められてもよいし、予め決定されてもよい。
The
アプリケーション端末100のアプリケーション実行部110は、アプリケーションを実行し、データを要求するためのクエリをデータベース管理装置200に送信する。データベース管理装置200の送受信管理部210は、アプリケーション端末100から受信したクエリを、接続管理部230に出力する。接続管理部230は、送受信管理部210から入力されたクエリを、クエリ実行部240に出力する。
The
クエリ実行部240は、接続管理部230から入力されたクエリに基づく処理を実行することにより、記憶部280からクエリ結果を取得する。クエリ実行部240が、取得したクエリ結果をバッファ管理部250に出力する。
The
一方、送受信管理部210は、クエリ結果をアプリケーション端末100に送信するために必要なヘッダ情報を、バッファ管理部250に出力する。例えば、ヘッダ情報は、クエリ結果の送信先のアドレス情報である。バッファ管理部250は、クエリ実行部240から入力されたクエリ結果に対して、送受信管理部210から入力されたヘッダ情報を付加してパケットを生成する。
On the other hand, the transmission /
具体的に、バッファ管理部250は、パケットサイズ決定部231によって決定された最大パケットサイズに収まる範囲内で、クエリ結果の1以上のレコードにヘッダ情報が付加されたパケットを生成する。バッファ管理部250は、生成したパケットをバッファメモリ270に記憶する。また、バッファ管理部250は、パケットの送信要求を送受信管理部210に出力する。
Specifically, the
送受信管理部210は、バッファ管理部250から入力されたパケットの送信要求に基づき、送信要求によって指定されるパケットを、バッファメモリ270から読み出す。その後、送受信管理部210は、バッファメモリ270から読み出したパケットをアプリケーション端末に送信する。
Based on the packet transmission request input from the
なお、アプリケーション端末100とデータベース管理装置200との間の通信が異常切断された場合、クエリ結果のパケットがアプリケーション端末100に送信されず、バッファメモリ270に蓄積されることになる。このため、バッファ管理部250は、テーブルT1を用いてバッファメモリ270に記憶されるデータを管理する。
When communication between the
図3は、第1実施形態に係るテーブルT1の一例を示す図である。テーブルT1は、接続元IDと、通信品質と、接続状態と、蓄積許可割合と、バッファ使用量と、カウント値とが対応付けられたテーブルである。 FIG. 3 is a diagram illustrating an example of the table T1 according to the first embodiment. The table T1 is a table in which the connection source ID, communication quality, connection state, accumulation permission ratio, buffer usage amount, and count value are associated with each other.
接続元IDは、データベース管理装置200に接続されたアプリケーション端末100の識別情報である。例えば、接続元IDは、IPアドレスとポート番号とを含む情報である。通信品質は、データベース管理装置200とアプリケーション端末100との間の通信回線の品質を示す情報である。通信品質は、「0」から「3」のいずれかの値であり、値が小さいほど通信回線の品質が良いことを表す。例えば、「0」は、通信品質が最も良く、異常切断が発生し難いことを示す。一方、「3」は、通信品質が最も悪く、異常切断が発生し易いことを示す。詳細は後述するが、通信品質は、通信品質判定部260によって判定される。
The connection source ID is identification information of the
接続状態は、データベース管理装置200とアプリケーション端末100との間の通信が、「接続中」であるのか、または「異常切断中」であるのかを示す情報である。蓄積許可割合は、バッファメモリ270への蓄積を許可されたデータ量の割合を示す情報である。なお、蓄積許可割合が「0%」であっても、パケットを送信するために、最低1パケット分のデータをバッファメモリ270に蓄積することは許可されている。
The connection state is information indicating whether the communication between the
バッファ使用量は、実際に使用しているバッファメモリ270におけるデータ量を示す情報である。カウント値は、通信品質を算出するために用いられる値であり、詳細は後述する。
The buffer usage amount is information indicating the data amount in the
接続元IDは6バイトであり、通信品質は2ビットであり、接続状態は1ビットであり、蓄積許可割合は6ビット(上限値:100)であり、バッファ使用量は6ビット(上限値:100)であり、カウント値は2バイトである。このため、テーブルT1における1つのエントリは、合計10バイトで構成される。 The connection source ID is 6 bytes, the communication quality is 2 bits, the connection state is 1 bit, the storage permission ratio is 6 bits (upper limit: 100), and the buffer usage is 6 bits (upper limit: 100) and the count value is 2 bytes. For this reason, one entry in the table T1 is composed of a total of 10 bytes.
データベース管理装置200とアプリケーション端末100と間の通信が切断された場合、バッファ管理部250は、クエリ実行部240によって取得されたクエリ結果のパケットをバッファメモリ270に記憶させるか否かを、テーブルT1を用いて判定する。以下、具体的な処理について説明する。
When the communication between the
図4から図8は、第1実施形態に係るパケットの送信処理の一例を示す図である。図4から図8においては、一例として、データベース管理装置200が3つのアプリケーションA1、A2、およびA3にパケットを送信する場合が示されている。
4 to 8 are diagrams illustrating an example of packet transmission processing according to the first embodiment. 4 to 8 show, as an example, a case where the
図4から図8に示される例において、アプリケーションA1の通信品質は「1」であり、蓄積許可割合は「0%」である。アプリケーションA2の通信品質は「0」であり、蓄積許可割合は「0%」である。アプリケーションA3の通信品質は「2」であり、蓄積許可割合は「0%」である。 In the example shown in FIGS. 4 to 8, the communication quality of the application A1 is “1”, and the accumulation permission ratio is “0%”. The communication quality of the application A2 is “0”, and the accumulation permission ratio is “0%”. The communication quality of the application A3 is “2”, and the accumulation permission ratio is “0%”.
まず、図4において、データベース管理装置200とアプリケーションA1、A2、およびA3は、正常に接続されている。このため、バッファ管理部250によってバッファメモリ270に格納されたパケットは、直ちに送受信管理部210によってアプリケーションA1、A2、およびA3の何れかに送信され、送信されたパケットはバッファメモリ270から消去される。前述したように、蓄積許可割合は「0%」となっているが、最低1パケット分はバッファメモリ270の使用が許可されている。したがって、バッファメモリ270にパケットが蓄積され続けることはない。
First, in FIG. 4, the
図5は、データベース管理装置200とアプリケーションA2との間の通信が異常切断された場合を示す。この場合、送受信管理部210は、アプリケーションA2にパケットを送信することができない。
FIG. 5 shows a case where communication between the
このため、バッファ管理部250は、B1に示されるように、テーブルT1におけるアプリケーションA2についての蓄積許可割合を「0%」から「100%」に変更する。これによって、データベース管理装置200とアプリケーションA2との間の通信が復旧するまで、アプリケーションA2についてのパケットがバッファメモリ270に蓄積され続ける。
Therefore, the
図6は、図5に示される状態から更に、データベース管理装置200とアプリケーションA3との間の通信が異常切断された場合を示す。この場合、送受信管理部210は、アプリケーションA2だけでなく、アプリケーションA3にもパケットを送信することができない。
FIG. 6 shows a case where communication between the
このため、バッファ管理部250は、テーブルT1における蓄積許可割合を更新する。具体的には、バッファ管理部250は、各アプリケーションの通信品質を、通信が切断されているアプリケーションの通信品質の合計値で除算することによって、蓄積許可割合を算出する。
Therefore, the
図6に示される例においては、アプリケーションA2の通信品質が「0」であり、アプリケーションA3の通信品質が「2」である。このため、バッファ管理部250は、B2に示されるように、テーブルT1におけるアプリケーションA2についての蓄積許可割合を「100%」から「0%」に変更する。また、バッファ管理部250は、B3に示されるように、テーブルT1におけるアプリケーションA3についての蓄積許可割合を「0%」から「100%」に変更する。
In the example shown in FIG. 6, the communication quality of the application A2 is “0”, and the communication quality of the application A3 is “2”. Therefore, the
アプリケーションA2についての蓄積許可割合が「0%」に変更されたため、バッファ管理部250は、アプリケーションA2についてのパケットをバッファメモリ270に格納しない。また、アプリケーションA3についての蓄積許可割合が「100%」に変更されたため、バッファ管理部250は、アプリケーションA3についてのパケットをバッファメモリ270に蓄積していく。
Since the accumulation permission ratio for the application A2 is changed to “0%”, the
バッファメモリ270がフル状態になると、バッファ管理部250は、バッファメモリ270に格納されたアプリケーションA2についてのパケットを、アプリケーションA3についてのパケットで上書きする。
When the
アプリケーションA2およびA3の何れの通信も復旧しない場合、バッファメモリ270に格納されたアプリケーションA2についてのパケットは、アプリケーションA3についてのパケットで上書きされていく。最終的には、バッファメモリ270に格納されたアプリケーションA2についての全てのパケットは、アプリケーションA3についてのパケットで上書きされることとなる。
When neither communication of the applications A2 and A3 is restored, the packet for the application A2 stored in the
図7は、図6に示される状態から更に、データベース管理装置200とアプリケーションA1との間の通信が異常切断された場合を示す。この場合、送受信管理部210は、全てのアプリケーションA1からA3に対してパケットを送信することができない。
FIG. 7 shows a case where communication between the
このため、バッファ管理部250は、テーブルT1における蓄積許可割合を更新する。ここでも、バッファ管理部250は、各アプリケーションの通信品質を、通信が切断されているアプリケーションの通信品質の合計値で除算することによって、蓄積許可割合を算出する。
Therefore, the
図7に示される例においては、アプリケーションA1の通信品質が「1」であり、アプリケーションA2の通信品質が「0」であり、アプリケーションA3の通信品質が「2」である。このため、バッファ管理部250は、B4に示されるように、テーブルT1におけるアプリケーションA1についての蓄積許可割合を「0%」から「33%」に変更する。また、バッファ管理部250は、B5に示されるように、テーブルT1におけるアプリケーションA3についての蓄積許可割合を「100%」から「66%」に変更する。
In the example illustrated in FIG. 7, the communication quality of the application A1 is “1”, the communication quality of the application A2 is “0”, and the communication quality of the application A3 is “2”. Therefore, the
アプリケーションA1についての蓄積許可割合が「33%」に変更されたため、バッファ管理部250は、アプリケーションA1についてのパケットをバッファメモリ270に蓄積していく。バッファ管理部250は、バッファメモリ270に格納されたアプリケーションA3についてのパケットを、アプリケーションA1についてのパケットで上書きする。最終的には、バッファメモリ270の記憶容量の33%まで、アプリケーションA1についてのパケットがバッファメモリ270に蓄積される。
Since the accumulation permission ratio for the application A1 is changed to “33%”, the
図8は、図7に示される状態から更に、データベース管理装置200とアプリケーションA3との間の通信が復旧した場合を示す。この場合、送受信管理部210は、アプリケーションA1およびA2に対してパケットを送信することができないが、アプリケーションA3に対してパケットを送信することができる。
FIG. 8 shows a case where communication between the
このため、バッファメモリ270に格納されたアプリケーションA3についてのパケットは、送受信管理部210によってアプリケーションA3に送信され、送信されたパケットはバッファメモリ270から消去される。
Therefore, the packet for the application A3 stored in the
また、バッファ管理部250は、テーブルT1における蓄積許可割合を更新する。ここでも、バッファ管理部250は、各アプリケーションの通信品質を、通信が切断されているアプリケーションの通信品質の合計値で除算することによって、蓄積許可割合を算出する。
Further, the
図8に示される例において、バッファ管理部250は、B6に示されるように、テーブルT1におけるアプリケーションA1についての蓄積許可割合を「33%」から「100%」に変更する。また、バッファ管理部250は、B7に示されるように、テーブルT1におけるアプリケーションA3についての蓄積許可割合を「66%」から「0%」に変更する。
In the example illustrated in FIG. 8, the
アプリケーションA3についてのパケットがアプリケーションA3に送信されることで、バッファメモリ270内のメモリ領域が解放される。このため、バッファ管理部250は、アプリケーションA1についてのパケットをバッファメモリ270に蓄積していく。これによって、データベース管理装置200とアプリケーションA1との間の通信が復旧するまで、アプリケーションA1についてのパケットがバッファメモリ270に蓄積され続ける。
By transmitting a packet for the application A3 to the application A3, the memory area in the
以上説明したように、1つのアプリケーションとの通信のみが切断された場合、バッファ管理部250は、通信が切断されたアプリケーションに関するクエリ結果をバッファメモリ270に蓄積する。また、2つ以上のアプリケーションとの通信が切断された場合、バッファ管理部250は、バッファメモリ270におけるアプリケーションごとの蓄積許可割合を調整する。具体的には、バッファ管理部250は、通信品質が悪いほど、蓄積許可割合を大きくする。これによって、送信の再試行が多くなるクエリ結果を多くバッファメモリ270に蓄積できるため、システム全体の可用性を向上することができる。
As described above, when only communication with one application is disconnected, the
図9は、第1実施形態に係る状態監視処理の詳細を示すフローチャートである。図9に示される状態監視処理は、通信品質判定部260およびバッファ管理部250によって定期的に実行される。
FIG. 9 is a flowchart showing details of the state monitoring process according to the first embodiment. The state monitoring process shown in FIG. 9 is periodically executed by the communication
まず、通信品質判定部260は、アプリケーション端末100と通信可能か否かを判定する(S10)。通信品質判定部260は、アプリケーション端末100と通信可能であると判定した場合、テーブルT1(図3)における、このアプリケーション端末100の接続元IDに対応するカウント値から1を減算する(S11)。
First, the communication
次に、通信品質判定部260は、カウント値が0であるか否かを判定する(S12)。通信品質判定部260は、カウント値が0ではないと判定した場合、後述するS15に処理を進める。一方、通信品質判定部260は、カウント値が0であると判定した場合、テーブルT1における通信品質から1を減算し(S13)、テーブルT1におけるカウント値を最大値にする(S14)。
Next, the communication
その後、バッファ管理部250は、テーブルT1に示される通信品質に基づいて、蓄積許可割合を算出する(S15)。前述したように、バッファ管理部250は、アプリケーションとの通信が切断されている場合、このアプリケーションの接続元IDに対応する通信品質を、通信が切断されている全てのアプリケーションの通信品質の合計値で除算することによって、蓄積許可割合を算出する。バッファ管理部250は、算出した蓄積許可割合をテーブルT1に書き込み、本フローチャートによる処理を終了する。
Thereafter, the
一方、S10において、通信品質判定部260は、アプリケーション端末100と通信可能でないと判定した場合、テーブルT1(図3)における、このアプリケーション端末100の接続元IDに対応するカウント値に1を加算する(S16)。
On the other hand, if the communication
次に、通信品質判定部260は、カウント値が最大値であるか否かを判定する(S17)。通信品質判定部260は、カウント値が最大値ではないと判定した場合、前述したS15に処理を進める。一方、通信品質判定部260は、カウント値が最大値であると判定した場合、テーブルT1における通信品質に1を加算し(S18)、テーブルT1におけるカウント値を0にする(S19)。その後、通信品質判定部260は、前述したS15に処理を進める。
Next, the communication
以上の処理によって、通信品質判定部260は、アプリケーションごとの通信品質を判定することができる。なお、通信品質判定部260による通信品質の判定処理は、図9に示されるフローチャートに限定されない。例えば、通信品質判定部260は、アプリケーションとの通信の平均切断間隔または平均再接続間隔に基づいて、通信品質を判定してもよい。平均切断間隔は、アプリケーションとの通信が切断されてから、次にアプリケーションとの通信が切断されるまでの平均時間であるが、これに限られない。例えば、平均切断間隔は、単位時間におけるアプリケーションとの通信が切断される平均頻度であってもよい。また、平均再接続間隔は、アプリケーションとの通信が復旧してから、次にアプリケーションとの通信が復旧するまでの平均時間であるが、これに限られない。例えば、平均再接続間隔は、単位時間におけるアプリケーションとの通信が復旧した平均頻度であってもよい。
Through the above processing, the communication
図10は、第1実施形態に係る正常切断処理の詳細を示すフローチャートである。図10に示される正常切断処理は、アプリケーション端末100がアプリケーションを終了する場合に、バッファ管理部250および送受信管理部210によって実行される。
FIG. 10 is a flowchart illustrating details of the normal cutting process according to the first embodiment. The normal disconnection process shown in FIG. 10 is executed by the
まず、バッファ管理部250は、終了するアプリケーションに対応するエントリを、バッファメモリ270から消去する(S20)。このとき、バッファ管理部250は、テーブルT1からも、終了するアプリケーションに対応するエントリを消去する。次に、送受信管理部210は、アプリケーション端末100との通信を切断し(S21)、本フローチャートによる処理を終了する。
First, the
図11は、第1実施形態に係るクエリ結果エントリ受取処理の詳細を示すフローチャートである。図11に示されるクエリ結果エントリ受取処理は、クエリ結果エントリがクエリ実行部240からバッファ管理部250に入力されたときに実行される。クエリ結果エントリは、(x,e,r)で表される。xは、クエリを識別するためのクエリ識別情報である。eは、レコード番号である。rは、クエリ結果のレコードである。
FIG. 11 is a flowchart showing details of the query result entry receiving process according to the first embodiment. The query result entry receiving process shown in FIG. 11 is executed when a query result entry is input from the
まず、バッファ管理部250は、テーブルT1の「接続状態」を参照し、クエリ実行部240から入力されたクエリ結果エントリに関するアプリケーション端末100が「接続中」であるか否かを判定する(S30)。バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関するアプリケーション端末100が「接続中」であると判定した場合、クエリ結果エントリを用いてパケットを作成し、作成したパケットをバッファメモリ270に記憶する(S31)。なお、パケットの作成処理の詳細については後述する。その後、バッファ管理部250は、本フローチャートによる処理を終了する。
First, the
一方、S30において、バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関するアプリケーション端末100が「接続中」でないと判定した場合、テーブルT1において「異常切断中」となっているエントリが複数あるか否かを判定する(S32)。
On the other hand, in S30, when the
バッファ管理部250は、テーブルT1において「異常切断中」となっているエントリが複数あると判定した場合、テーブルT1の「通信品質」を参照し、クエリ実行部240から入力されたクエリ結果エントリに関する「通信品質」が「2」以上であるか否かを判定する(S33)。バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関する「通信品質」が「2」以上であると判定した場合、クエリ結果エントリを保持できないことを示す結果保持不可エラーをクエリ実行部240に出力し(S34)、本フローチャートによる処理を終了する。
When the
一方、S32において、バッファ管理部250は、テーブルT1において「異常切断中」となっているエントリが複数あると判定しなかった場合、後述するS35に処理を進める。また、S33において、バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関する「通信品質」が「2」未満であると判定した場合も、後述するS35に処理を進める。
On the other hand, in S32, if the
S35において、バッファ管理部250は、テーブルT1を参照し、クエリ実行部240から入力されたクエリ結果エントリに関する「バッファ使用量」が「蓄積許可割合」に到達しているか否かを判定する(S35)。バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関する「バッファ使用量」が「蓄積許可割合」に到達していると判定した場合、バッファメモリ270がフル状態であることを示すバッファフルエラーをクエリ実行部240に出力し(S36)、本フローチャートによる処理を終了する。
In S35, the
一方、S35において、バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関する「バッファ使用量」が「蓄積許可割合」に到達していないと判定した場合、バッファメモリ270に空きがあるか否かを判定する(S37)。バッファ管理部250は、バッファメモリ270に空きがあると判定した場合、クエリ結果エントリを用いてパケットを作成し、作成したパケットをバッファメモリ270に記憶する(S38)。その後、バッファ管理部250は、テーブルT1における「バッファ使用量」を更新し(S39)、本フローチャートによる処理を終了する。
On the other hand, if the
一方、S37において、バッファ管理部250は、バッファメモリ270に空きがないと判定した場合、クエリ結果エントリを用いてパケットを作成し、作成したパケットをバッファメモリ270に記憶された他のエントリに上書きする(S40)。ただし、前述したように、テーブルT1に示される蓄積許可割合が「0%」の場合など、上書きできない場合もある。その後、バッファ管理部250は、テーブルT1における「バッファ使用量」を更新し(S39)、本フローチャートによる処理を終了する。
On the other hand, if the
図12は、第1実施形態に係るパケット作成処理の詳細を示すフローチャートである。図12に示されるパケット作成処理は、例えば、図11のS31、S38、およびS40において、バッファ管理部250によって実行される。
FIG. 12 is a flowchart showing details of the packet creation processing according to the first embodiment. The packet creation process illustrated in FIG. 12 is executed by the
まず、バッファ管理部250は、クエリ実行部240から受け取ったクエリ結果エントリが、クエリの最後のエントリか否かを判定する(S50)。バッファ管理部250は、クエリ実行部240から受け取ったクエリ結果エントリがクエリの最後のエントリであると判定した場合、クエリ実行部240から受け取ったクエリ結果エントリと、クエリ結果エントリ集合とに基づき、パケットを生成する(S51)。クエリ結果エントリ集合は、クエリ実行部240から受け取ったクエリ結果エントリの集合である。なお、前述したように、バッファ管理部250によって生成されたパケットには、送受信管理部210から入力されたヘッダ情報が付加されている。その後、バッファ管理部250は、本フローチャートによる処理を終了する。
First, the
一方、S50において、バッファ管理部250は、クエリ実行部240から受け取ったクエリ結果エントリがクエリの最後のエントリでないと判定した場合、生成するパケットのサイズが、パケットサイズ決定部231によって決定された最大パケットサイズを超えるか否かを判定する(S52)。ここで、生成するパケットのサイズは、クエリ実行部240から受け取ったクエリ結果エントリのサイズと、クエリ結果エントリ集合のサイズと、ヘッダ情報のサイズの合計である。バッファ管理部250は、生成するパケットのサイズが最大パケットサイズを超えると判定した場合、クエリ結果エントリ集合に基づきパケットを生成する(S53)。その後、バッファ管理部250は、本フローチャートによる処理を終了する。
On the other hand, in S50, when the
一方、S52において、バッファ管理部250は、生成するパケットのサイズが最大パケットサイズを超えないと判定した場合、クエリ実行部240から受け取ったクエリ結果エントリを、クエリ結果エントリ集合に追加し(S54)、本フローチャートによる処理を終了する。
On the other hand, if the
図13は、第1実施形態に係るエラー処理の詳細を示すフローチャートである。図13に示されるエラー処理は、バッファ消去要求がクエリ実行部240からバッファ管理部250に入力された場合に、バッファ管理部250および送受信管理部210によって実行される。バッファ消去要求は、クエリ実行部240でエラーが発生した場合に、クエリ実行部240からバッファ管理部250に入力される。バッファ消去要求は、(x,z)で表される。xは、クエリを識別するためのクエリ識別情報である。zは、エラー内容である。
FIG. 13 is a flowchart showing details of error processing according to the first embodiment. The error processing shown in FIG. 13 is executed by the
まず、バッファ管理部250は、バッファ消去要求(x,z)からクエリ識別情報xを取得する(S61)。次に、バッファ管理部250は、取得したクエリ識別情報xに関連する全てのエントリを、バッファメモリ270から消去する(S62)。
First, the
その後、バッファ管理部250は、テーブルT1を参照し、エントリが消去されたクエリの接続元の接続状態が「接続中」であるか否かを判定する(S63)。バッファ管理部250が、エントリが消去されたクエリの接続元の接続状態が「接続中」であると判定した場合、送受信管理部210は、エントリが消去されたクエリに関連するアプリケーション端末100にエラー情報(x,z)を送信し(S64)、本フローチャートによる処理を終了する。
Thereafter, the
一方、S63において、バッファ管理部250は、エントリが消去されたクエリの接続元の接続状態が「接続中」ではないと判定した場合、エラー情報(x,z)をバッファメモリ270に格納し(S65)、本フローチャートによる処理を終了する。
On the other hand, in S63, when the
図14は、第1実施形態に係る送信継続処理の詳細を示すフローチャートである。図14に示される送信継続処理は、データベース管理装置200が送信継続要求をアプリケーション端末100から受信した場合に実行される。アプリケーション端末100は、アプリケーション端末100とデータベース管理装置200との間の通信が復旧した場合に、送信を中断されたクエリ結果の再送信を要求するために、送信継続要求をデータベース管理装置200に送信する。送信継続要求は、(x,E)で表される。xは、クエリを識別するためのクエリ識別情報である。Eは、レコード番号である。
FIG. 14 is a flowchart showing details of the transmission continuation processing according to the first embodiment. The transmission continuation process shown in FIG. 14 is executed when the
まず、バッファ管理部250は、送信継続要求(x,E)に含まれるレコード番号Eより大きいエントリが、バッファメモリ270に格納されているか否かを判定する(S70)。バッファ管理部250が、レコード番号Eより大きいエントリが、バッファメモリ270に格納されていると判定した場合、送受信管理部210は、レコード番号Eより大きいレコード番号の全てのエントリをバッファメモリ270から読み出し、アプリケーション端末100に送信する(S71)。その後、送受信管理部210は、送信されたエントリをバッファメモリ270から消去し、本フローチャートによる処理を終了する。
First, the
一方、S70において、バッファ管理部250は、レコード番号Eより大きいエントリが、バッファメモリ270に格納されていないと判定した場合、クエリ識別情報xについてのエラー情報(x,z)がバッファメモリ270に格納されているか否かを判定する(S72)。バッファ管理部250が、クエリ識別情報xについてのエラー情報(x,z)がバッファメモリ270に格納されていると判定した場合、送受信管理部210は、バッファメモリ270からエラー情報(x,z)を読み出して、アプリケーション端末100に送信する(S73)。その後、送受信管理部210は、送信されたエラー情報(x,z)をバッファメモリ270から消去し、本フローチャートによる処理を終了する。
On the other hand, when the
一方、S72において、バッファ管理部250が、クエリ識別情報xについてのエラー情報(x,z)がバッファメモリ270に格納されていないと判定した場合、送受信管理部210は、送信継続要求が受け付けられた旨をアプリケーション端末100に通知し(S74)、本フローチャートによる処理を終了する。
On the other hand, when the
図15は、第1実施形態に係るクエリ処理の詳細を示すフローチャートである。図15に示されるクエリ処理は、データベース管理装置200がアプリケーション端末100からクエリを受信した場合に、クエリ実行部240によって実行される。クエリは、(x,q)で表される。xは、クエリを識別するためのクエリ識別情報である。qは、クエリ内容である。
FIG. 15 is a flowchart showing details of the query processing according to the first embodiment. The query processing illustrated in FIG. 15 is executed by the
まず、クエリ実行部240は、レコード番号eに0を設定する(S81)。次に、クエリ実行部240は、クエリ内容qに基づき、クエリ結果の内容を示すレコードrを生成し(S82)、レコード番号eに1を加算する(S83)。
First, the
その後、クエリ実行部240は、レコードrが正常に生成されたか否かを判定する(S84)。クエリ実行部240は、レコードrが正常に生成されなかったと判定した場合、内部エラーによるバッファ消去要求を、バッファ管理部250に出力し(S85)、本フローチャートによる処理を終了する。
Thereafter, the
一方、S84において、クエリ実行部240は、レコードrが正常に生成されたと判定した場合、クエリ結果エントリ(x,e,r)をバッファ管理部250に出力する(S86)。その後、クエリ実行部240は、バッファ管理部250からクエリ実行部240にエラーが出力された否かを判定する(S87)。例えば、バッファ管理部250は、前述したように、図11に示されるS34およびS36において、クエリ実行部240にエラーを出力する。
On the other hand, in S84, when the
S87において、クエリ実行部240は、バッファ管理部250からクエリ実行部240にエラーが出力されたと判定しなかった場合、クエリ内容qに基づく処理は完了したか否かを判定する(S88)。クエリ実行部240は、クエリ内容qに基づく処理は完了したと判定した場合、本フローチャートによる処理を終了する。逆に、クエリ実行部240は、クエリ内容qに基づく処理は完了していないと判定した場合、前述のS82に処理を戻す。
In S87, if the
一方、S87において、クエリ実行部240は、バッファ管理部250からクエリ実行部240にエラーが出力されたと判定した場合、エラーが出力されてから所定時間が経過したか否かを判定する(S89)。クエリ実行部240は、エラーが出力されてから所定時間が経過したと判定した場合、タイムアウトエラーによるバッファ消去要求を、バッファ管理部250に出力し(S90)、本フローチャートによる処理を終了する。
On the other hand, if the
一方、S89において、クエリ実行部240は、エラーが出力されてから所定時間が経過していないと判定した場合、バッファメモリ270において、クエリ識別情報xについてのエントリが他のクエリ結果のエントリによって上書きされたか否かを判定する(S91)。クエリ実行部240は、クエリ識別情報xについてのエントリが他のクエリ結果のエントリによって上書きされたと判定した場合、上書きされていない点までレコード番号eを戻し(S92)、前述のS82に処理を戻す。
On the other hand, if the
一方、S91において、クエリ実行部240は、クエリ識別情報xについてのエントリが他のクエリ結果のエントリによって上書きされていないと判定した場合、前述のS86に処理を戻す。
On the other hand, if the
以上説明したように、第1実施形態に係るデータベース管理システム10は、送受信管理部210と、クエリ実行部240と、バッファ管理部250と、通信品質判定部260とを持つ。送受信管理部210は、アプリケーションを実行するアプリケーション端末100からクエリを受信するとともに、クエリの検索対象のデータであるクエリ結果をバッファメモリ270から読み出してアプリケーション端末100に送信する。クエリ実行部240は、送受信管理部210によって受信されたクエリに基づく処理を実行することにより、クエリ結果を取得する。通信品質判定部260は、アプリケーションごとの通信品質(図3参照)を判定する。バッファ管理部250は、アプリケーション端末100との通信が切断された場合に、クエリ実行部240によって取得されたクエリ結果をバッファメモリ270に記憶させるか否かを、通信品質判定部260によって判定された通信品質に基づいて判定する。これによって、データベース管理システム10は、データベース管理システム10のネットワーク接続環境が不安定な場合であっても、アプリケーションの都合に応じてクエリ結果のデータを再送信することができる。
As described above, the
なお、バッファメモリ270は、バッファ管理部250および送受信管理部210が同時にアクセス可能なメモリである。このため、データベース管理装置200のカーネル空間に、送受信管理部210専用の送信バッファを別途設ける必要が無い。これによって、メモリを節約することができるとともに、バッファメモリ270におけるアプリケーションごとの蓄積許可割合を、柔軟に設定することができる。
The
また、バッファ管理部250は、クエリ実行部240によって取得されたクエリ結果に対して通信に必要なヘッダ情報を付加し、ヘッダ情報が付加されたクエリ結果のパケットをバッファメモリ270に記憶する。送受信管理部210は、バッファメモリ270からクエリ結果のパケットを読み出し、読み出したクエリ結果のパケットをアプリケーション端末100に送信する。これによって、送受信管理部210は、クエリ結果のパケットを加工することなく、アプリケーション端末100に送信することができる。
The
(第2実施形態)
次に、第2実施形態について説明する。第1実施形態において、バッファ管理部250は、通信品質が悪いほど蓄積許可割合を大きくすることとした。これに対し、第2実施形態において、バッファ管理部250は、通信品質が悪いほど蓄積許可割合を小さくする。これによって、不安定な通信回線のクエリ結果によって、バッファメモリ270が専有されることを防止することができる。以下、第2実施形態の詳細を説明する。
(Second Embodiment)
Next, a second embodiment will be described. In the first embodiment, the
第2実施形態においては、1つのアプリケーションとの通信のみが切断された場合、バッファ管理部250は、通信が切断されたアプリケーションに関するクエリ結果をバッファメモリ270に蓄積する。一方、2つ以上のアプリケーションとの通信が切断された場合、バッファ管理部250は、バッファメモリ270におけるアプリケーションごとの蓄積許可割合を調整する。具体的には、バッファ管理部250は、通信品質が悪いほど、蓄積許可割合を小さくする。
In the second embodiment, when only communication with one application is disconnected, the
通信品質は、「0」から「3」のいずれかの値であるが、第1実施形態とは異なり、値が大きいほど通信回線の品質が良いことを表す。例えば、「3」は、通信品質が最も良く、異常切断が発生し難いことを示す。一方、「0」は、通信品質が最も悪く、異常切断が発生し易いことを示す。通信品質は、通信品質判定部260によって判定される。
The communication quality is any value from “0” to “3”, but unlike the first embodiment, the larger the value, the better the quality of the communication line. For example, “3” indicates that the communication quality is the best and abnormal disconnection hardly occurs. On the other hand, “0” indicates that the communication quality is the worst and abnormal disconnection is likely to occur. The communication quality is determined by the communication
バッファ管理部250は、通信品質が「1」以上である接続元に対して、バッファメモリ270の蓄積許可割合を設定する。バッファ管理部250は、各アプリケーションの通信品質を、通信が切断されているアプリケーションの通信品質の合計値で除算することによって、蓄積許可割合を算出する。バッファ管理部250は、算出した蓄積許可割合を、テーブルT1に書き込む。
The
以上説明したように、第2実施形態において、バッファ管理部250は、通信品質が悪いほど蓄積許可割合を小さくする。これによって、不安定な通信回線のクエリ結果によって、バッファメモリ270が専有されることを防止することができる。
As described above, in the second embodiment, the
(第3実施形態)
次に、第3実施形態について説明する。第1実施形態および第2実施形態において、バッファ管理部250は、アプリケーションごとの通信品質に基づいて蓄積許可割合を算出することとした。これに対し、第3実施形態において、クエリ実行部240は、クエリ結果を表すデータのデータ量を予測し、予測されたデータ量に基づいて蓄積許可割合を算出する。具体的に、クエリ実行部240は、予測されたデータ量が大きいほど蓄積許可割合を小さくする。これによって、バッファメモリ270の平均消費量を削減することができる。以下、第3実施形態の詳細を説明する。
(Third embodiment)
Next, a third embodiment will be described. In the first embodiment and the second embodiment, the
図16は、第3実施形態に係るテーブルT2の一例を示す図である。第3実施形態において、バッファ管理部250は、図3に示されるテーブルT1に代えて、図16に示されるテーブルT2を用いて蓄積許可割合を判定する。テーブルT2は、接続元IDと、予測データ量と、接続状態と、蓄積許可割合と、バッファ使用量と、カウント値とが対応付けられたテーブルである。
FIG. 16 is a diagram illustrating an example of a table T2 according to the third embodiment. In the third embodiment, the
予測データ量は、クエリ結果を表すデータのデータ量の予測値を示す情報である。予測データ量は、「0」から「3」のいずれかの値であり、値が小さいほど予測データ量が大きいことを表す。例えば、集約関数または分析関数のみのクエリの場合、予測データ量は「3」である。集約関数または分析関数に“GROUP BY”が付いているクエリの場合、予測データ量は「2」である。“WHERE”句が多いクエリの場合、予測データ量は「1」である。その他のクエリ(例えば、スキャン)の場合、予測データ量は「0」である。テーブルT2における予測データ量以外の項目は、テーブルT1と同様であるので、説明を省略する。 The predicted data amount is information indicating a predicted value of the data amount of data representing the query result. The predicted data amount is any value from “0” to “3”, and the smaller the value, the larger the predicted data amount. For example, in the case of a query with only an aggregate function or an analysis function, the predicted data amount is “3”. In the case of a query with “GROUP BY” attached to an aggregate function or analytic function, the predicted data amount is “2”. In the case of a query with many “WHERE” phrases, the predicted data amount is “1”. In the case of other queries (for example, scan), the predicted data amount is “0”. Since the items other than the predicted data amount in the table T2 are the same as those in the table T1, the description thereof is omitted.
接続元IDは6バイトであり、予測データ量は2ビットであり、接続状態は1ビットであり、蓄積許可割合は6ビット(上限値:100)であり、バッファ使用量は6ビット(上限値:100)であり、カウント値は2バイトである。このため、テーブルT2における1つのエントリは、合計10バイトで構成される。 The connection source ID is 6 bytes, the predicted data amount is 2 bits, the connection state is 1 bit, the storage permission ratio is 6 bits (upper limit: 100), and the buffer usage is 6 bits (upper limit) : 100) and the count value is 2 bytes. Therefore, one entry in the table T2 is composed of a total of 10 bytes.
図17は、第3実施形態に係るクエリ結果エントリ受取処理の詳細を示すフローチャートである。図17に示されるクエリ結果エントリ受取処理は、クエリ結果エントリがクエリ実行部240からバッファ管理部250に入力されたときに実行される。クエリ結果エントリは、(x,e,r)で表される。xは、クエリを識別するためのクエリ識別情報である。eは、レコード番号である。rは、クエリ結果のレコードである。
FIG. 17 is a flowchart showing details of query result entry receiving processing according to the third embodiment. The query result entry receiving process shown in FIG. 17 is executed when a query result entry is input from the
まず、バッファ管理部250は、テーブルT2の「接続状態」を参照し、クエリ実行部240から入力されたクエリ結果エントリに関するアプリケーション端末100が「接続中」であるか否かを判定する(S100)。バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関するアプリケーション端末100が「接続中」であると判定した場合、クエリ結果エントリを用いてパケットを作成し、作成したパケットをバッファメモリ270に記憶する(S101)。その後、バッファ管理部250は、本フローチャートによる処理を終了する。
First, the
一方、S100において、バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関するアプリケーション端末100が「接続中」でないと判定した場合、テーブルT2において「異常切断中」となっているエントリが複数あるか否かを判定する(S102)。
On the other hand, in S100, if the
バッファ管理部250は、テーブルT2において「異常切断中」となっているエントリが複数あると判定した場合、テーブルT2の「予測データ量」を参照し、クエリ実行部240から入力されたクエリ結果エントリに関する「予測データ量」が「0」であるか否かを判定する(S103)。バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関する「予測データ量」が「0」であると判定した場合、クエリ結果エントリを保持できないことを示す結果保持不可エラーをクエリ実行部240に出力し(S104)、本フローチャートによる処理を終了する。
When the
一方、S102において、バッファ管理部250は、テーブルT2において「異常切断中」となっているエントリが複数あると判定しなかった場合、後述するS105に処理を進める。また、S103において、バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関する「予測データ量」が「0」でないと判定した場合も、後述するS105に処理を進める。
On the other hand, in S102, if the
S105において、バッファ管理部250は、テーブルT2を参照し、クエリ実行部240から入力されたクエリ結果エントリに関する「バッファ使用量」が「蓄積許可割合」に到達しているか否かを判定する(S105)。バッファ管理部250は、クエリ実行部240から入力されたクエリ結果エントリに関する「バッファ使用量」が「蓄積許可割合」に到達していると判定した場合、バッファメモリ270がフル状態であることを示すバッファフルエラーをクエリ実行部240に出力し(S106)、本フローチャートによる処理を終了する。
In S105, the
一方、S105において、バッファ管理部250は、「バッファ使用量」が「蓄積許可割合」に到達していないと判定した場合、バッファメモリ270に空きがあるか否かを判定する(S107)。バッファ管理部250は、バッファメモリ270に空きがあると判定した場合、クエリ結果エントリを用いてパケットを作成し、作成したパケットをバッファメモリ270に記憶する(S108)。その後、バッファ管理部250は、テーブルT2における「バッファ使用量」を更新し(S109)、本フローチャートによる処理を終了する。
On the other hand, in S105, when the
一方、S107において、バッファ管理部250は、バッファメモリ270に空きがないと判定した場合、クエリ結果エントリを用いてパケットを作成し、作成したパケットをバッファメモリ270に記憶された他のエントリに上書きする(S110)。ただし、前述したように、テーブルT2に示される蓄積許可割合が「0%」の場合など、上書きできない場合もある。その後、バッファ管理部250は、テーブルT2における「バッファ使用量」を更新し(S109)、本フローチャートによる処理を終了する。
On the other hand, if the
図18は、第3実施形態に係るクエリ処理の詳細を示すフローチャートである。図18に示されるクエリ処理は、データベース管理装置200がアプリケーション端末100からクエリを受信した場合に、クエリ実行部240によって実行される。クエリは、(x,q)で表される。xは、クエリを識別するためのクエリ識別情報である。qは、クエリ内容である。
FIG. 18 is a flowchart showing details of query processing according to the third embodiment. The query processing shown in FIG. 18 is executed by the
まず、クエリ実行部240は、クエリの種類およびクエリの検索条件に基づいて、蓄積許可割合を算出する(S120)。具体的に、クエリ実行部240は、クエリ結果の予測データ量が「0」から「3」の何れであるかを判定する。前述したように、集約関数または分析関数のみのクエリの場合、予測データ量は「3」である。集約関数または分析関数に“GROUP BY”が付いているクエリの場合、予測データ量は「2」である。“WHERE”句が多いクエリの場合、予測データ量は「1」である。その他のクエリ(例えば、スキャン)の場合、予測データ量は「0」である。
First, the
また、クエリ実行部240は、予測データ量を、通信が切断されているアプリケーションの予測データ量の合計値で除算することによって、蓄積許可割合を算出する。クエリ実行部240は、算出した蓄積許可割合をテーブルT2に書き込む。
In addition, the
図18におけるS121からS132の処理は、図15におけるS81からS92の処理と同様である。このため、S121からS132の処理の詳細については、説明を省略する。 The processing from S121 to S132 in FIG. 18 is the same as the processing from S81 to S92 in FIG. For this reason, the details of the processing from S121 to S132 are omitted.
以上説明したように、第3実施形態において、クエリ実行部240は、クエリ結果を表すデータのデータ量を予測する。バッファ管理部250は、クエリ実行部240によって予測されたデータ量に基づいて、クエリ実行部240によって取得されたクエリ結果をバッファメモリ270に記憶させるか否かを判定する。これによって、バッファメモリ270の平均消費量を削減することができる。
As described above, in the third embodiment, the
以上説明した少なくともひとつの実施形態によれば、データベース管理システム10は、送受信管理部210と、クエリ実行部240と、バッファ管理部250とを持つ。送受信管理部210は、アプリケーションを実行するアプリケーション端末100からクエリを受信するとともに、クエリの検索対象のデータであるクエリ結果をバッファメモリ270から読み出してアプリケーション端末100に送信する。クエリ実行部240は、送受信管理部210によって受信されたクエリに基づく処理を実行することにより、クエリ結果を取得する。バッファ管理部250は、アプリケーション端末100との通信が切断された場合に、クエリ実行部240によって取得されたクエリ結果をバッファメモリ270に記憶させるか否かを、アプリケーションとの通信に関する評価値に基づいて判定する。これによって、データベース管理システム10は、データベース管理システム10のネットワーク接続環境が不安定な場合であっても、アプリケーションの都合に応じてクエリ結果のデータを再送信することができる。
According to at least one embodiment described above, the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the spirit of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are also included in the invention described in the claims and the equivalents thereof.
10…データベース管理システム、100…アプリケーション端末、110…アプリケーション実行部、120…パケットサイズ決定部、200…データベース管理装置、210…送受信管理部、230…接続管理部、231…パケットサイズ決定部、240…クエリ実行部、250…バッファ管理部、260…通信品質判定部、270…バッファメモリ、280…記憶部
DESCRIPTION OF
Claims (9)
前記送受信管理部によって受信された前記クエリに基づく処理を実行することにより、前記クエリ結果を取得するクエリ実行部と、
前記アプリケーション端末との通信が切断された場合に、前記クエリ実行部によって取得された前記クエリ結果を前記バッファメモリに記憶させるか否かを、前記アプリケーションとの通信に関する評価値に基づいて判定するバッファ管理部と、
を備えるデータベース管理装置。 A transmission / reception management unit that receives a query from an application terminal that executes an application, and reads a query result that is data to be searched for the query from a buffer memory,
A query execution unit that acquires the query result by executing processing based on the query received by the transmission / reception management unit;
A buffer for determining whether to store the query result acquired by the query execution unit in the buffer memory based on an evaluation value related to communication with the application when communication with the application terminal is disconnected The management department,
A database management device comprising:
前記バッファ管理部は、前記通信品質判定部によって判定された前記通信品質に基づいて、前記クエリ実行部によって取得された前記クエリ結果を前記バッファメモリに記憶させるか否かを判定する
請求項1記載のデータベース管理装置。 The evaluation value further includes a communication quality determination unit that determines communication quality for each application,
The buffer management unit determines whether to store the query result acquired by the query execution unit in the buffer memory based on the communication quality determined by the communication quality determination unit. Database management device.
請求項2記載のデータベース管理装置。 The database management device according to claim 2, wherein the communication quality determination unit determines the communication quality based on an average disconnection interval or an average reconnection interval of communication with the application.
前記バッファ管理部は、前記クエリ実行部によって予測された前記データ量に基づいて、前記クエリ実行部によって取得された前記クエリ結果を前記バッファメモリに記憶させるか否かを判定する
請求項1記載のデータベース管理装置。 The query execution unit predicts a data amount of data representing the query result as the evaluation value,
The said buffer management part determines whether the said query result acquired by the said query execution part is memorize | stored in the said buffer memory based on the said data amount estimated by the said query execution part. Database management device.
請求項4記載のデータベース管理装置。 The database management device according to claim 4, wherein the query execution unit predicts the data amount based on a type of the query and a search condition of the query.
前記バッファ管理部は、前記クエリ実行部によって取得された前記クエリ結果に対して通信に必要なヘッダ情報を付加し、前記ヘッダ情報が付加された前記クエリ結果を前記バッファメモリに記憶し、
前記送受信管理部は、前記バッファメモリから前記クエリ結果を読み出し、読み出した前記クエリ結果を前記アプリケーション端末に送信する
請求項1から5のいずれか一項に記載のデータベース管理装置。 The buffer memory is a memory that the buffer management unit and the transmission / reception management unit can access simultaneously,
The buffer management unit adds header information necessary for communication to the query result acquired by the query execution unit, and stores the query result to which the header information is added in the buffer memory,
The database management apparatus according to any one of claims 1 to 5, wherein the transmission / reception management unit reads the query result from the buffer memory and transmits the read query result to the application terminal.
前記バッファ管理部は、前記パケットサイズ決定部によって決定された前記最大パケットサイズに収まる範囲内で、前記クエリ結果の1以上のレコードに前記ヘッダ情報が付加されたパケットを生成し、生成した前記パケットを前記バッファメモリに記憶する
請求項6記載のデータベース管理装置。 A packet size determining unit that performs negotiation with the application terminal and determines a maximum packet size that can be used between the database management device and the application terminal;
The buffer management unit generates a packet in which the header information is added to one or more records of the query result within a range that fits the maximum packet size determined by the packet size determination unit, and the generated packet The database management device according to claim 6, wherein: is stored in the buffer memory.
前記アプリケーション端末に接続されたデータベース管理装置と、を備え、
前記データベース管理装置は、
前記アプリケーション端末からクエリを受信するとともに、前記クエリの検索対象のデータであるクエリ結果をバッファメモリから読み出して前記アプリケーション端末に送信する送受信管理部と、
前記送受信管理部によって受信された前記クエリに基づく処理を実行することにより、前記クエリ結果を取得するクエリ実行部と、
前記アプリケーション端末との通信が切断された場合に、前記クエリ実行部によって取得された前記クエリ結果を前記バッファメモリに記憶させるか否かを、前記アプリケーションとの通信に関する評価値に基づいて判定するバッファ管理部と、
を備えるデータベース管理システム。 An application terminal that executes the application;
A database management device connected to the application terminal,
The database management device includes:
A transmission / reception management unit that receives a query from the application terminal, reads a query result that is data to be searched for the query from a buffer memory, and transmits the query result to the application terminal;
A query execution unit that acquires the query result by executing processing based on the query received by the transmission / reception management unit;
A buffer for determining whether to store the query result acquired by the query execution unit in the buffer memory based on an evaluation value related to communication with the application when communication with the application terminal is disconnected The management department,
A database management system comprising:
クエリ実行部が、前記送受信管理部によって受信された前記クエリに基づく処理を実行することにより、前記クエリ結果を取得し、
バッファ管理部が、前記アプリケーション端末との通信が切断された場合に、前記クエリ実行部によって取得された前記クエリ結果を前記バッファメモリに記憶させるか否かを、前記アプリケーションとの通信に関する評価値に基づいて判定する
データベース管理方法。 The transmission / reception management unit receives a query from an application terminal that executes an application, reads a query result that is data to be searched for the query from a buffer memory, and transmits the query result to the application terminal.
The query execution unit acquires the query result by executing a process based on the query received by the transmission / reception management unit,
Whether or not the buffer management unit stores the query result acquired by the query execution unit in the buffer memory when communication with the application terminal is disconnected, as an evaluation value related to communication with the application Judgment based on database management method.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017112850A JP2018206206A (en) | 2017-06-07 | 2017-06-07 | Database management device, database management system, and database management method |
PCT/JP2018/008548 WO2018225315A1 (en) | 2017-06-07 | 2018-03-06 | Database management device, database management system, and database management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017112850A JP2018206206A (en) | 2017-06-07 | 2017-06-07 | Database management device, database management system, and database management method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018206206A true JP2018206206A (en) | 2018-12-27 |
Family
ID=64565837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017112850A Pending JP2018206206A (en) | 2017-06-07 | 2017-06-07 | Database management device, database management system, and database management method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2018206206A (en) |
WO (1) | WO2018225315A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6615420B1 (en) * | 2018-12-27 | 2019-12-04 | 三菱電機株式会社 | Edge system, information processing method, and information processing program |
-
2017
- 2017-06-07 JP JP2017112850A patent/JP2018206206A/en active Pending
-
2018
- 2018-03-06 WO PCT/JP2018/008548 patent/WO2018225315A1/en active Application Filing
Non-Patent Citations (1)
Title |
---|
松尾孝広、外3名: "スケーラビリティおよび公平性を考慮したTCPバッファ制御", 電子情報通信学会技術研究報告, vol. Vol.99,No.674, JPN6018019593, 9 March 2000 (2000-03-09), pages pp.37〜42(SSE99−167) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6615420B1 (en) * | 2018-12-27 | 2019-12-04 | 三菱電機株式会社 | Edge system, information processing method, and information processing program |
Also Published As
Publication number | Publication date |
---|---|
WO2018225315A1 (en) | 2018-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10083177B2 (en) | Data caching among interconnected devices | |
RU2438162C2 (en) | Enabling network devices to run multiple congestion control algorithms | |
KR20160019361A (en) | Probabilistic Lazy-Forwarding Technique Without Validation In A Content Centric Network | |
US9094483B2 (en) | System and method for collecting and evaluating statistics to establish network connections | |
JP2016517551A (en) | Method, computer system and computer program for performing integrity check and selective deduplication based on network parameters | |
CN110677684B (en) | Video processing method, video access method, distributed storage method and distributed video access system | |
EP3817333B1 (en) | Method and system for processing requests in a consortium blockchain | |
US11394800B2 (en) | Systems and methods for remote network topology discovery | |
CN111753223A (en) | Access control method and device | |
US9781023B2 (en) | Information processing device, information processing method, and recording medium | |
US10154079B2 (en) | Pre-boot file transfer system | |
CN101278274A (en) | Peer name resolution protocol simple application program interface | |
WO2018225315A1 (en) | Database management device, database management system, and database management method | |
US9923794B2 (en) | Method, apparatus, and system for identifying abnormal IP data stream | |
US9372500B2 (en) | Generating a timeout signal based on a clock counter associated with a data request | |
CN110677683B (en) | Video storage and video access method and distributed storage and video access system | |
US10313221B1 (en) | Endpoint monitoring for a messaging framework | |
JP2021039802A (en) | Data processing system and data processing method | |
JP2019009610A (en) | Edge device, data processing system, data transmission method and program | |
US20140025630A1 (en) | Data-store management apparatus, data providing system, and data providing method | |
US20140040479A1 (en) | Method for a self organizing load balance in a cloud file server network | |
US20130268629A1 (en) | Method and device for digital data communication | |
JP4365381B2 (en) | Communication control method and communication control apparatus | |
US20140136647A1 (en) | Router and operating method thereof | |
US20210144217A1 (en) | Service communication proxy apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20181211 |