JP2019179555A - データベース管理システムおよびデータベース管理方法 - Google Patents
データベース管理システムおよびデータベース管理方法 Download PDFInfo
- Publication number
- JP2019179555A JP2019179555A JP2019089167A JP2019089167A JP2019179555A JP 2019179555 A JP2019179555 A JP 2019179555A JP 2019089167 A JP2019089167 A JP 2019089167A JP 2019089167 A JP2019089167 A JP 2019089167A JP 2019179555 A JP2019179555 A JP 2019179555A
- Authority
- JP
- Japan
- Prior art keywords
- node
- query
- maximum value
- temporary
- minimum value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims description 74
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims description 58
- 238000012546 transfer Methods 0.000 claims description 6
- 230000006866 deterioration Effects 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 9
- 230000007423 decrease Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】パフォーマンスが低下するのを抑制すること。【解決手段】実施形態のデータベース管理システムは、第1ノードと、複数の第2ノードとを持つ。前記第1ノードは、データを要求するクエリをクライアント端末から受信し、受信した前記クエリを条件に応じて複数の第2ノードのいずれかに送信する。前記第2ノードは、前記第2ノードが保持するデータの範囲を包含する範囲情報を前記第1ノードに送信する。前記第2ノードは、前記第1ノードから受信した前記クエリに基づく処理を実行してデータを取得し、取得したデータを前記第1ノードに送信する。前記第1ノードは、前記第2ノードに保持されるデータの範囲を示す範囲情報を前記第2ノードから取得して保持し、前記クエリの検索対象のデータの範囲が前記範囲情報によって示される範囲にない場合、前記第2ノードに前記クエリを転送しない。【選択図】図2
Description
本発明の実施形態は、データベース管理システムおよびデータベース管理方法に関する。
従来、クライアント端末からクエリを受信する上位ノードと、上位ノードによって受信されたクエリに基づく処理を実行してデータを取得する複数の下位ノードとを備える分散型のデータベース管理システムが知られている。下位ノードは、クエリに基づく処理を実行して取得したデータを上位ノードに送信し、上位ノードは、下位ノードから受信したデータを、クエリの送信元であるクライアント端末に送信する。
しかしながら、データベース管理システムにおいては、下位ノードにおける処理の負荷が高くなり、データベース管理システムのパフォーマンスが低下する場合があった。
本発明が解決しようとする課題は、パフォーマンスが低下するのを抑制することができるデータベース管理システムおよびデータベース管理方法を提供することである。
実施形態のデータベース管理システムは、第1ノードと、複数の第2ノードとを持つ。前記第1ノードは、データを要求するクエリをクライアント端末から受信し、受信した前記クエリを条件に応じて複数の第2ノードのいずれかに送信する。前記第2ノードは、前記第2ノードが保持するデータの範囲を包含する範囲情報を前記第1ノードに送信する。前記第2ノードは、前記第1ノードから受信した前記クエリに基づく処理を実行してデータを取得し、取得したデータを前記第1ノードに送信する。前記第1ノードは、前記第2ノードに保持されるデータの範囲を示す範囲情報を前記第2ノードから取得して保持し、前記クエリの検索対象のデータの範囲が前記範囲情報によって示される範囲にない場合、前記第2ノードに前記クエリを転送しない。
以下、実施形態のデータベース管理システムおよびデータベース管理方法を、図面を参照して説明する。
(第1実施形態)
図1は、第1実施形態に係るデータベース管理システム10の全体構成を示すブロック図である。データベース管理システム10は、データベース管理装置200(以降、上位ノードと称す)と、複数のデータベース管理装置300(以降、下位ノードと称す)とを備える。図1において、3つの下位ノード300−1、300−2、および300−3が示されているが、下位ノードの数はこれに限られない。例えば、データベース管理システム10は、4つ以上の下位ノード300を備えてもよい。
図1は、第1実施形態に係るデータベース管理システム10の全体構成を示すブロック図である。データベース管理システム10は、データベース管理装置200(以降、上位ノードと称す)と、複数のデータベース管理装置300(以降、下位ノードと称す)とを備える。図1において、3つの下位ノード300−1、300−2、および300−3が示されているが、下位ノードの数はこれに限られない。例えば、データベース管理システム10は、4つ以上の下位ノード300を備えてもよい。
上位ノード200は、ネットワークNW1を介して複数の下位ノード300−1から300−3に接続されている。ネットワークNW1は、例えば、WAN(Wide Area Network)やLAN(Local Area Network)、インターネット、プロバイダ装置、無線基地局、専用回線などのうち一部または全部を含む。
クライアント端末100は、ネットワークNW2を介して上位ノード200に接続されている。ネットワークNW2は、例えば、WANやLAN、インターネット、プロバイダ装置、無線基地局、専用回線などのうち一部または全部を含む。
クライアント端末100は、ユーザによって用いられ、データを要求するクエリを上位ノード200に送信するコンピュータである。クライアント端末100は、デスクトップ型のコンピュータであるが、これに限られない。例えば、クライアント端末100は、ノート型のコンピュータ、タブレット端末、またはPDA(Personal Digital Assistant)であってもよい。
上位ノード200は、クライアント端末100からクエリを受信するコンピュータである。上位ノード200は、デスクトップ型のコンピュータであるが、これに限られない。例えば、上位ノード200は、ノート型のコンピュータ、タブレット端末、またはPDAであってもよい。
下位ノード300−1、300−2、および300−3は、上位ノード200によって受信されたクエリに基づく処理を実行して、データを取得するコンピュータである。下位ノード300−1、300−2、および300−3は、デスクトップ型のコンピュータであるが、これに限られない。例えば、下位ノード300−1、300−2、および300−3は、ノート型のコンピュータ、タブレット端末、またはPDAであってもよい。
図2は、第1実施形態に係る上位ノード200と下位ノード300の動作を説明するためのブロック図である。下位ノード300−1、300−2、および300−3は同様の動作を行うため、図2においては、これらをまとめて下位ノード300として説明する。
上位ノード200は、クエリ実行部210と、インデックス管理部220と、記憶部230と、通信部240とを備える。クエリ実行部210およびインデックス管理部220は、CPU(Central Processing Unit)等のプロセッサが、記憶部230に記憶されたプログラムを実行することで実現される。なお、クエリ実行部210およびインデックス管理部220は、プロセッサがプログラムを実行するのと同様の機能を有するLSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、およびFPGA(Field-Programmable Gate Array)等のハードウェアにより実現されてもよい。
記憶部230は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、記憶部230の一部または全部は、NAS(Network Attached Storage)や外部のストレージサーバなど、上位ノード200がアクセス可能な外部装置であってもよい。通信部240は、例えば、NIC(Network Interface Card)によって実現される。
下位ノード300は、通信部310と、クエリ実行部320と、テーブル管理部330と、インデックス管理部340と、記憶部350と、インデックス通知判定部360とを備える。クエリ実行部320、テーブル管理部330、インデックス管理部340、およびインデックス通知判定部360は、CPU等のプロセッサが、記憶部350に記憶されたプログラムを実行することで実現される。なお、クエリ実行部320、テーブル管理部330、インデックス管理部340、およびインデックス通知判定部360は、プロセッサがプログラムを実行するのと同様の機能を有するLSI、ASIC、およびFPGA等のハードウェアにより実現されてもよい。
通信部310は、例えば、NICによって実現される。記憶部350は、例えば、RAM、ROM、HDD、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。また、記憶部350の一部または全部は、NASや外部のストレージサーバなど、下位ノード300がアクセス可能な外部装置であってもよい。
記憶部350には、例えば、不図示のセンサから出力されたデータ(センサ値)が蓄積される。記憶部350に記憶されるデータは、センサ値に限られず、どのようなデータであってもよい。なお、記憶部350には、テーブル形式でデータが記憶されている。
図3は、第1実施形態に係る記憶部350に記憶されたテーブルT1の一例を示す図である。テーブルT1は、記録時刻とセンサ値とが対応付けられたテーブルである。記録時刻とは、センサ値が記憶部350に記録された時刻である。
記憶部350は、センサ値が入力される度に、記録時刻とセンサ値とが対応付けられたレコードを、テーブルT1に追加する。なお、テーブルT1に含まれるレコード数が予め定められた上限値に到達すると、記録時刻が最も古いレコードが、テーブルT1から削除される。
一方、上位ノード200の記憶部230には、複数の下位ノード300それぞれについてのインデックスがテーブル形式で記憶されている。インデックスとは、下位ノード300に保持されるデータの範囲を示す範囲情報である。
図4は、第1実施形態に係る記憶部230に記憶されたテーブルT2(インデックス)の一例を示す図である。テーブルT2は、ノードIDと、仮最大値と、仮最小値と、精度無視ビット数nとが対応付けられたテーブルである。
ノードIDとは、下位ノード300を識別するための識別情報である。仮最大値は、下位ノード300に記憶されているデータの仮の最大値を示す情報である。仮最小値は、下位ノード300に記憶されているデータの仮の最小値を示す情報である。精度無視ビット数nは、仮最大値および仮最小値を算出する際に実行される丸め処理で用いられる値である。詳細は後述するが、丸め処理においては、最大値の下位nビットの値を(n+1)ビット目に繰り上げることにより仮最大値が求められ、最小値の下位nビットの値を切り捨てることにより仮最小値が求められる。
まず、クエリ処理について説明する。上位ノード200がクライアント端末100からクエリを受信すると、クエリ実行部210は、下位ノード300のインデックスを要求するためのインデックス要求をインデックス管理部220に出力する。インデックス管理部220は、クエリ実行部210から入力されたインデックス要求に基づき、記憶部230からテーブルT2(インデックス)を読み出す。その後、インデックス管理部220は、記憶部230から読み出したインデックスを、クエリ実行部210に出力する。
クエリ実行部210は、インデックス管理部220から入力されたインデックスに基づき、複数の下位ノード300のそれぞれに対して、クエリの検索対象であるデータの範囲の少なくとも一部が、下位ノード300に保持されるデータの範囲に含まれるか否かを判定する。具体的に、クエリ実行部210は、クエリの検索対象であるデータの範囲の少なくとも一部が、インデックスに含まれる仮最小値以上かつ仮最大値以下の範囲に含まれるか否かを判定する。
クエリ実行部210は、クエリの検索対象であるデータの範囲の少なくとも一部が、下位ノード300に保持されるデータの範囲に含まれないと判定した場合、クエリを通信部240に出力しない。このため、通信部240は、クエリを下位ノード300に送信しない。これによって、クエリの検索対象のデータを保持しない下位ノード300がクエリを実行するのを防止できるため、下位ノード300における処理の負荷を軽減することができる。
一方、クエリ実行部210は、クエリの検索対象であるデータの範囲の少なくとも一部が、下位ノード300に保持されるデータの範囲に含まれると判定した場合、クエリを通信部240に出力する。通信部240は、クエリ実行部210から入力されたクエリを、下位ノード300に送信する。
下位ノード300の通信部310は、上位ノード200からクエリを受信すると、受信したクエリをクエリ実行部320に出力する。クエリ実行部320は、通信部310から入力されたクエリを、テーブル管理部330およびインデックス管理部340に出力する。
テーブル管理部330は、クエリ実行部320から入力されたクエリに基づき、クエリ結果を記憶部350から取得する。具体的に、テーブル管理部330は、センサ値がクエリの検索対象の範囲に含まれるレコードを、記憶部350に記憶されたテーブルT1(図3)から取得する。テーブル管理部330は、テーブルT1から取得したレコードを、クエリ結果としてクエリ実行部320に出力する。
クエリ実行部320は、テーブル管理部330から入力されたクエリ結果を、通信部310に出力する。通信部310は、クエリ実行部320から入力されたクエリ結果を、上位ノード200に送信する。
上位ノード200の通信部240は、下位ノード300から受信したクエリ結果を、クエリ実行部210に出力する。クエリ実行部210は、クエリの送信先の全ての下位ノード300からクエリ結果を受信すると、受信した複数のクエリ結果に対してマージ処理を行う。これによって、複数のクエリ結果が統合される。
クエリ実行部210は、統合したクエリ結果を通信部240に出力する。通信部240は、クエリ実行部210から入力されたクエリ結果を、クライアント端末100に送信する。以上が、クエリ処理の一連の流れである。
次に、インデックス更新処理について説明する。記憶部350には、不図示のセンサからセンサ値が入力される度に、センサ値を含むレコードがテーブルT1に追加される。テーブルT1にレコードが追加されることにより、テーブルT1におけるセンサ値の最大値または最小値が更新される場合、インデックス管理部340は、下位ノード300のインデックスを更新する。下位ノード300の記憶部350には、下位ノード300のインデックスの更新履歴がテーブル形式で記憶されている。
図5は、第1実施形態に係る記憶部350に記憶されたテーブルT3(インデックスの更新履歴)の一例を示す図である。テーブルT3は、更新時刻と、仮最大値と、仮最小値と、精度無視ビット数nとが対応付けられたテーブルである。更新時刻は、インデックス(仮最大値、仮最小値、および精度無視ビット数n)が更新された時刻を示す情報である。
インデックス管理部340は、丸め処理として、記憶部350に記憶されるセンサ値の最大値の下位nビットを繰り上げて仮最大値を算出するとともに、記憶部350に記憶されるセンサ値の最小値の下位nビットを切り捨てて仮最小値を算出する。
例えば、センサ値の最大値が11010101であり、精度無視ビット数nが5ビットである場合、インデックス管理部340は、下位5ビットを6ビット目に繰り上げた値(11100000)を仮最大値として算出する。また、例えば、センサ値の最小値が00110100であり、精度無視ビット数nが5ビットである場合、インデックス管理部340は、下位5ビットを切り捨てた値(00100000)を仮最小値として算出する。
その後、インデックス管理部340は、算出した仮最大値および仮最小値を、精度無視ビット数nとともに、インデックス通知判定部360に出力する。インデックス通知判定部360は、テーブルT3を参照し、インデックス管理部340から入力された仮最大値および仮最小値が、前回算出された仮最大値および仮最小値とは異なるか否かを判定する。
インデックス通知判定部360は、インデックス管理部340から入力された仮最大値および仮最小値が、前回算出された仮最大値および仮最小値とは異なると判定した場合、下位ノード300のノードIDと、今回算出された仮最大値および仮最小値と、精度無視ビット数nとを含む更新要求を、通信部310に出力する。通信部310は、インデックス通知判定部360から入力された更新要求を、上位ノード200に送信する。
上位ノード200の通信部240は、下位ノード300から更新要求を受信すると、受信した更新要求をインデックス管理部220に出力する。インデックス管理部220は、通信部240から入力された更新要求に含まれるノードIDに対応するテーブルT1のレコードを、更新要求に含まれる仮最大値、仮最小値、および精度無視ビット数nを用いて更新する。これによって、テーブルT1が更新される。
テーブルT1の更新が完了すると、インデックス管理部220は、更新完了通知を通信部240に出力する。通信部240は、インデックス管理部220から入力された更新完了通知を下位ノード300に送信する。
下位ノード300の通信部310は、上位ノード200から更新完了通知を受信すると、受信した更新完了通知をインデックス通知判定部360に出力する。インデックス通知判定部360は、通信部310から更新完了通知が入力されると、テーブルT3を更新するための更新要求をインデックス管理部340に出力する。
インデックス管理部340は、インデックス通知判定部360から更新要求が入力されると、更新時刻と、今回算出された仮最大値および仮最小値と、精度無視ビット数nとを含むレコードを、テーブルT3に追加する。これによって、テーブルT3が更新される。なお、テーブルT3に含まれるレコード数が予め定められた上限値に到達すると、更新時刻が最も古いレコードが、テーブルT3から削除される。
図6は、第1実施形態に係るクエリ処理を示すシーケンス図である。図6においては、上位ノード200が、下位ノード300−1および300−2にクエリを送信する例が示されている。
まず、クライアント端末100は、ユーザの操作に応じて、クエリを上位ノードに送信する(S1)。上位ノード200は、クライアント端末100から受信したクエリの送信先を判定する(S2)。前述したように、上位ノード200は、各下位ノード300のインデックスを、記憶部230に記憶されたテーブルT2から取得する。その後、上位ノード200は、クエリの検索対象であるデータの範囲および各下位ノード300のインデックスに基づいて、クエリの送信先を判定する。図6においては、上位ノード200が、クエリの送信先が下位ノード300−1および300−2であると判定した例が示されている。
上位ノード200は、クエリを下位ノード300−1に送信する(S3)。下位ノード300−1は、上位ノード200からクエリを受信すると、クエリ処理を行う(S4)。前述したように、下位ノード300−1は、クエリ処理を行うことによって、記憶部350に記憶されたテーブルT1からクエリ結果(クエリの検索対象のデータ)を取得する。その後、下位ノード300−1は、クエリ結果を上位ノード200に送信する(S5)。
また、上位ノード200は、クエリを下位ノード300−2に送信する(S6)。下位ノード300−2は、上位ノード200からクエリを受信すると、クエリ処理を行う(S7)。前述したように、下位ノード300−2は、クエリ処理を行うことによって、クエリ結果(クエリの検索対象のデータ)を取得する。その後、下位ノード300−2は、クエリ結果を上位ノード200に送信する(S8)。
上位ノード200は、下位ノード300−1から受信したクエリ結果と、下位ノード300−2から受信したクエリ結果に対してマージ処理を行う(S9)。これによって、下位ノード300−1から受信したクエリ結果と、下位ノード300−2から受信したクエリ結果とが統合される。その後、上位ノード200は、統合されたクエリ結果を、クライアント端末100に送信する(S10)。
一方、下位ノード300−1は、仮最大値および仮最小値を更新する必要があるか否かを判定する。下位ノード300−1は、仮最大値および仮最小値を更新する必要があると判定した場合、下位ノード300−1のノードIDと、仮最大値と、仮最小値と、精度無視ビット数nとを含む更新要求を、上位ノードに送信する(S11)。
また、下位ノード300−2は、仮最大値および仮最小値を更新する必要があるか否かを判定する。下位ノード300−2は、仮最大値および仮最小値を更新する必要があると判定した場合、下位ノード300−2のノードIDと、仮最大値と、仮最小値と、精度無視ビット数nとを含む更新要求を、上位ノードに送信する(S12)。
上位ノード200は、下位ノード300−1から受信した更新要求と、下位ノード300−2から受信した更新要求とに基づき、記憶部230に格納されたテーブルT2(インデックス)を更新する(S13)。
上位ノード200は、テーブルT2(インデックス)の更新が完了すると、更新完了通知を下位ノード300−1および300−2に送信する。下位ノード300−1は、上位ノード200から受信した更新完了通知に応じて、記憶部350内に記憶されたテーブルT3(インデックス更新履歴)を更新する。下位ノード300−1も同様に、上位ノード200から受信した更新完了通知に応じて、テーブルT3(インデックス更新履歴)を更新する。
なお、T3(インデックス更新履歴)の更新タイミングは、これに限られない。例えば、下位ノード300−1および300−2は、テーブルT3(インデックス更新履歴)の更新が完了した後に、更新要求をクライアント端末100に送信してもよい。
また、インデックス通知判定部360は、インデックスの更新頻度を判定する更新頻度判定部361を備える。インデックス通知判定部360は、更新頻度判定部361によって判定されたインデックスの更新頻度に基づいて、精度無視ビット数nを増加させるか、減少させるかを判定する。この点についての詳細は後述する。
図7は、第1実施形態に係るクエリ受付処理の詳細を示すフローチャートである。図7に示されるクエリ受付処理は、上位ノード200がクライアント端末100からクエリを受信したときに、上位ノード200によって実行される。
まず、上位ノード200は、上位ノード200に接続された複数の下位ノード300のうち、1つの下位ノード300の仮最大値と仮最小値を、記憶部230に記憶されたテーブルT2から取得する(S21)。次に、上位ノード200は、クライアント端末100から受信したクエリの検索対象のデータの範囲の少なくとも一部が、S21において取得された仮最大値から仮最小値の範囲に含まれるか否かを判定する(S22)。
上位ノード200は、クエリの検索対象の範囲の少なくとも一部が、S21において取得された仮最大値から仮最小値の範囲に含まれないと判定した場合、後述するS25に処理を進める。一方、上位ノード200は、クエリの検索対象の範囲の少なくとも一部が、S21において取得された仮最大値から仮最小値の範囲に含まれると判定した場合、判定に使用された仮最大値および仮最小値を有する下位ノード300にクエリを送信する(S23)。
上位ノード200からクエリを受信した下位ノード300は、クエリ処理を実行することによりクエリ結果を取得する。下位ノード300は、クエリ結果を上位ノード200に送信する。その後、上位ノード200は、下位ノード300からクエリ結果を受信する(S24)。
次に、上位ノード200は、クエリの対象である全ての下位ノード300からクエリ結果を受信したか否かを判定する(S25)。上位ノード200は、クエリの対象である全ての下位ノード300からクエリ結果を受信したと判定しなかった場合、前述のS21に処理を戻す。
一方、上位ノード200は、クエリの対象である全ての下位ノード300からクエリ結果を受信したと判定した場合、受信した複数のクエリ結果に対してマージ処理を行う(S26)。これによって、複数のクエリ結果が統合される。その後、上位ノード200は、統合されたクエリ結果を、クライアント端末100に送信し(S27)、本フローチャートによる処理を終了する。
このように、上位ノード200は、インデックス(仮最大値および仮最小値)を用いて、クエリの検索対象であるデータを保持する下位ノード300の候補を絞り込むことができる。このため、クエリの検索対象であるデータを保持しない下位ノード300がクエリ処理を実行してしまうこと(擬陽性)を抑制でき、下位ノード300のクエリ処理の負荷を軽減することができる。
図8は、第1実施形態に係るインデックス更新処理の詳細を示すフローチャートである。図8に示されるインデックス更新処理は、上位ノード200によって実行される。
まず、上位ノード200は、下位ノード300からインデックスを更新するための更新要求を受信すると(S31)、更新要求に含まれるノードID、仮最大値、仮最小値、および精度無視ビット数nを取得する(S32)。
次に、上位ノード200は、更新要求に含まれるノードIDに対応するテーブルT1のレコードを、更新要求に含まれる仮最大値、仮最小値、および精度無視ビット数nを用いて更新する(S33)。これによって、テーブルT1(インデックス)が更新される。その後、更新完了通知を下位ノード300に送信し(S34)、本フローチャートによる処理を終了する。
図9は、第1実施形態に係る仮最大値/仮最小値の更新処理の詳細を示すフローチャートである。図9に示される仮最大値/仮最小値の更新処理は、記憶部350に記憶されたテーブルT1にレコードが追加されたときに、下位ノード300によって実行される。
まず、下位ノード300は、テーブルT1にレコードが追加されたことによって、テーブルT1におけるセンサ値の最大値および最小値の少なくとも一方が更新されるか否かを判定する(S41)。下位ノード300は、テーブルT1におけるセンサ値の最大値および最小値のいずれも更新されないと判定した場合、本フローチャートによる処理を終了する。
一方、下位ノード300は、テーブルT1におけるセンサ値の最大値および最小値の少なくとも一方が更新されると判定した場合、精度無視ビット数nを用いて、仮最大値および仮最小値を算出する(S42)。前述したように、下位ノード300は、テーブルT1におけるセンサ値の最大値および最小値に対して丸め処理を行うことにより、仮最大値および仮最小値を算出する。
次に、下位ノード300は、仮最大値および仮最小値の少なくとも一方が、前回上位ノードに送信した値と異なるか否かを判定する(S43)。下位ノード300は、仮最大値および仮最小値のいずれも、前回上位ノードに送信した値と同じであると判定した場合、本フローチャートによる処理を終了する。
一方、下位ノード300は、仮最大値および仮最小値の少なくとも一方が、前回上位ノードに送信した値と異なると判定した場合、上位ノード200の記憶部230に記憶されたインデックス(テーブルT2)を更新するための更新要求を、上位ノード200に送信する(S44)。
前述したように、上位ノード200は、下位ノード300から受信した更新要求に基づき、記憶部230に記憶されたインデックス(テーブルT2)を更新する。インデックスの更新が完了すると、上位ノード200は、下位ノード300に更新完了通知を送信する。
下位ノード300は、上位ノード200から更新完了通知を受信すると、S42において算出した仮最大値および仮最小値を、記憶部350に記憶されたテーブルT3(インデックス更新履歴)に更新時刻とともに記録し(S45)、本フローチャートによる処理を終了する。
このように、下位ノード300は、下位ノード300に保持されるセンサ値の最大値および最小値が更新された場合、仮最大値および仮最小値を算出する。下位ノード300は、算出した仮最大値および仮最小値の少なくとも一方が前回算出した値(前回上位ノード200に送信した値)と同じである場合、更新要求を上位ノード200に送信しない。これによって、上位ノード200における処理の負荷を軽減することができる。
図10は、第1実施形態に係る精度無視ビット数nの更新処理の詳細を示すフローチャートである。図10に示される精度無視ビット数nの更新処理は、下位ノード300によって定期的に実行される。
まず、下位ノード300は、最新の仮最大値または仮最小値の更新時刻を、記憶部350に記憶されたテーブルT3から取得する(S51)。次に、下位ノード300は、現在時刻とS51において取得した更新時刻との差が所定時間t1を超えるか否かを判定する(S52)。
所定時間t1は固定値であるが、これに限られない。例えば、所定時間t1は、精度無視ビット数nを入力とし、精度無視ビット数nが小さいほど大きな値を出力する関数f(n)によって定められてもよい。例えば、センサ値が32ビットの場合、f(n)=(32−n)×30[sec]としてよい。これによって、下位ノード300は、精度無視ビット数nに基づいて適切な所定時間t1を設定することができる。
下位ノード300は、現在時刻とS51において取得した更新時刻との差が所定時間t1を超えると判定した場合、精度無視ビット数nから1を減算し(S53)、本フローチャートによる処理を終了する。
このように、下位ノード300は、仮最大値または仮最小値が所定時間t1の間更新されない場合、丸め処理に用いられる精度無視ビット数nを減少させる。つまり、下位ノード300は、インデックスの更新頻度が低い場合には、精度無視ビット数nを減少させる。精度無視ビット数nを減少させると、仮最大値が真の最大値に近づき、仮最小値が真の最小値に近づくことになる。これによって、クエリの検索対象であるデータを保持しない下位ノード300がクエリ処理を実行してしまうこと(擬陽性)を抑制でき、下位ノード300のクエリ処理の負荷を軽減することができる。
一方、S52において、下位ノード300は、現在時刻とS51において取得した更新時刻との差が所定時間t1を超えないと判定した場合、k回前の仮最大値または仮最小値の更新時刻を、記憶部350に記憶されたテーブルT3から取得する(S54)。次に、下位ノード300は、現在時刻とS54において取得した更新時刻との差が所定時間t2を超えるか否かを判定する(S55)。所定時間t2は、固定値であってよい。
下位ノード300は、現在時刻とS54において取得した更新時刻との差が所定時間t2を超えると判定した場合、精度無視ビット数nに1を加算し(S56)、本フローチャートによる処理を終了する。
このように、下位ノード300は、仮最大値または仮最小値が所定時間t2の間に所定回数kを超えて更新された場合、丸め処理に用いられる精度無視ビット数nを増加させる。つまり、下位ノード300は、インデックスの更新頻度が高い場合には、精度無視ビット数nを増加させる。これによって、上位ノード200によるインデックス更新処理の負荷を軽減することができる。
一方、S55において、下位ノード300は、現在時刻とS54において取得した更新時刻との差が所定時間t2を超えないと判定した場合、本フローチャートによる処理を終了する。
図10に示されるフローチャートにおいて、下位ノード300は、仮最大値または仮最小値が所定時間t2の間に所定回数kを超えて更新された場合、丸め処理に用いられる精度無視ビット数nを増加させることとしたが、これに限られない。例えば、下位ノード300は、仮最大値または仮最小値が所定時間t3の間に更新された事象が連続で、所定回数mを超えて続いた場合、丸め処理に用いられる精度無視ビット数nを増加させてもよい。これによって、下位ノード300は、インデックスの更新による処理負荷を軽減することができ、データベース管理システム10のパフォーマンスが低下するのを抑制することができる。
以上説明したように、第1実施形態に係るデータベース管理システム10は、上位ノード200と、複数の下位ノード300とを持つ。上位ノード200は、データを要求するクエリをクライアント端末100から受信し、受信したクエリを条件に応じて複数の下位ノード300のいずれかに送信する。複数の下位ノード300は、上位ノード200から受信したクエリに基づく処理を実行してデータを取得し、取得したデータを上位ノード200に送信する。上位ノード200は、下位ノード300に保持されるデータの範囲を示すインデックスを保持し、クエリの検索対象のデータの範囲がインデックスによって示される範囲にない場合、下位ノード300にクエリを転送しない。これによって、データベース管理システム10は、下位ノードに保持されるデータの更新頻度が高い場合であっても、データベース管理システムのパフォーマンスが低下するのを抑制することができる。
(第2実施形態)
次に、第2実施形態について説明する。第1実施形態において、上位ノード200は、検索対象のデータの範囲を指定するクエリを受け付ける処理を行うこととした。これに対し、第2実施形態において、上位ノード200は、検索対象のデータの範囲を指定するクエリに加えて、最大値または最小値を求めるクエリを受け付けることとする。以下、第2実施形態の詳細を説明する。
次に、第2実施形態について説明する。第1実施形態において、上位ノード200は、検索対象のデータの範囲を指定するクエリを受け付ける処理を行うこととした。これに対し、第2実施形態において、上位ノード200は、検索対象のデータの範囲を指定するクエリに加えて、最大値または最小値を求めるクエリを受け付けることとする。以下、第2実施形態の詳細を説明する。
図11は、第2実施形態に係るクエリ受付処理(拡張版)の詳細を示すフローチャートである。図11に示されるクエリ受付処理は、上位ノード200がクライアント端末100からクエリを受信したときに、上位ノード200によって実行される。
まず、上位ノード200は、クライアント端末100から受信したクエリは、センサ値の最大値を求めるクエリか否かを判定する(S61)。上位ノード200は、クライアント端末100から受信したクエリは、センサ値の最大値を求めるクエリであると判定した場合、後述する最大値取得処理を実行する(S62)。
一方、S61において、上位ノード200は、クライアント端末100から受信したクエリは、センサ値の最大値を求めるクエリでないと判定した場合、クライアント端末100から受信したクエリは、センサ値の最小値を求めるクエリか否かを判定する(S63)。上位ノード200は、クライアント端末100から受信したクエリは、センサ値の最小値を求めるクエリであると判定した場合、後述する最小値取得処理を実行する(S64)。
一方、S63において、上位ノード200は、クライアント端末100から受信したクエリは、センサ値の最小値を求めるクエリでないと判定した場合、通常のクエリ受付処理を実行する(S65)。ここで、通常のクエリ受付処理とは、図7に示される第1実施形態に係るクエリ受付処理である。
図12は、第2実施形態に係る最大値取得処理の詳細を示すフローチャートである。図12に示される最大値取得処理は、図11におけるS62に対応し、上位ノード200によって実行される。
まず、上位ノード200は、上位ノード200に接続される全ての下位ノード300の仮最大値を、記憶部230に記憶されたテーブルT2から取得する(S71)。次に、上位ノード200は、全ての下位ノード300の真の最大値の下限値を算出する(S72)。
S72において、精度無視ビット数がnの場合、上位ノード200は、仮最大値から1を減算して、2ビット目からnビット目を0にすることで、真の最大値の下限値を算出する。例えば、仮最大値が11100000であり、精度無視ビット数nが5である場合、上位ノード200は、11000001を真の最大値の下限値として算出する。
次に、上位ノード200は、複数の下位ノード300のそれぞれについて算出した複数の真の最大値の下限値のうちの最大値を、最大値Aとして取得する(S73)。上位ノード200は、上位ノード200に接続される複数の下位ノード300のうち、仮最大値が最大値A以上である下位ノード300に、クエリを送信する(S74)。上位ノード200からクエリを受信した下位ノード300は、クエリ処理を実行することによりクエリ結果を取得する。下位ノード300は、クエリ結果を上位ノード200に送信する。
その後、上位ノード200は、下位ノード300からクエリ結果を受信する(S75)。上位ノード200は、下位ノード300から受信したクエリ結果のうちの最大値を、クライアント端末100に送信し(S76)、本フローチャートによる処理を終了する。
このように、上位ノード200は、仮最大値と最大値Aとを比較することで、クエリの検索対象であるセンサ値の最大値を保持する下位ノード300の候補を絞り込むことができる。このため、センサ値の最大値を保持しない下位ノード300がクエリ処理を実行してしまうことを防止でき、下位ノード300のクエリ処理の負荷を軽減することができる。
図13は、第2実施形態に係る最小値取得処理の詳細を示すフローチャートである。図13に示される最小値取得処理は、図11におけるS64に対応し、上位ノード200によって実行される。
まず、上位ノード200は、上位ノード200に接続される全ての下位ノード300の仮最小値を、記憶部230に記憶されたテーブルT2から取得する(S81)。次に、上位ノード200は、全ての下位ノード300の真の最小値の上限値を算出する(S82)。
S82において、精度無視ビット数がnの場合、上位ノード200は、仮最小値の1ビット目からnビット目を1にすることで、真の最小値の上限値を算出する。例えば、仮最小値が00100000であり、精度無視ビット数nが5である場合、上位ノード200は、00111111を真の最小値の上限値として算出する。
次に、上位ノード200は、複数の下位ノード300のそれぞれについて算出した複数の真の最小値の上限値のうちの最小値を、最小値Bとして取得する(S83)。上位ノード200は、上位ノード200に接続される複数の下位ノード300のうち、仮最小値が最小値B以下である下位ノード300に、クエリを送信する(S84)。上位ノード200からクエリを受信した下位ノード300は、クエリ処理を実行することによりクエリ結果を取得する。下位ノード300は、クエリ結果を上位ノード200に送信する。
その後、上位ノード200は、下位ノード300からクエリ結果を受信する(S85)。上位ノード200は、下位ノード300から受信したクエリ結果のうちの最小値を、クライアント端末100に送信し(S86)、本フローチャートによる処理を終了する。
このように、上位ノード200は、仮最小値と最小値Bとを比較することで、クエリの検索対象であるセンサ値の最小値を保持する下位ノード300の候補を絞り込むことができる。このため、センサ値の最小値を保持しない下位ノード300がクエリ処理を実行してしまうことを防止でき、下位ノード300のクエリ処理の負荷を軽減することができる。
以上説明したように、第2実施形態において、下位ノード300は、仮最大値および仮最小値に加えて、丸め処理に用いられた精度無視ビット数nを含む更新要求を上位ノード200に送信する。これによって、上位ノード200は、更新要求に含まれる精度無視ビット数nを用いて、センサ値の真の最大値および真の最小値を算出することができる。
また、第2実施形態において、上位ノード200は、複数の下位ノード300に保持されるデータのうちの最大値を要求するクエリを受信した場合、複数の下位ノード300ごとに、仮最大値に基づいて真の最大値の下限値を算出する。上位ノード200は、算出した複数の下位ノード300ごとの真の最大値の下限値のうちの最大値Aと、複数の下位ノード300のそれぞれについての仮最大値とを比較する。上位ノード200は、仮最大値が最大値A以上である下位ノード300にのみ、クエリを転送する。これによって、下位ノード300における処理の負荷を軽減することができる。
更に、第2実施形態において、上位ノード200は、複数の下位ノード300に保持されるデータのうちの最小値を要求するクエリを受信した場合、複数の下位ノード300ごとに、仮最小値に基づいて真の最小値の上限値を算出する。上位ノード200は、算出した複数の下位ノード300ごとの真の最小値の上限値のうちの最小値Bと、複数の下位ノード300のそれぞれについての仮最小値とを比較する。上位ノード200は、仮最小値が最小値B以下である下位ノード300にのみ、クエリを転送する。これによって、下位ノード300における処理の負荷を軽減することができる。
以下、実施形態に関する実験結果について述べる。出願人は、下記の条件で実験を行った。
・100万件の32ビットのデータ(乱数)を、記憶部350に順次入力する。
・記憶部350に記憶されるデータ数の上限は100件であり、古いデータから順に削除される。
・100万件の32ビットのデータ(乱数)を、記憶部350に順次入力する。
・記憶部350に記憶されるデータ数の上限は100件であり、古いデータから順に削除される。
この場合、センサ値の最大値および最小値の更新回数は39656回であった。これに対し、仮最小値の更新回数は2727回であり、仮最大値の更新回数は2663回であり、これらの合計値は5390回であった。このため、本実施形態によれば、最大値または最小値の少なくとも一方が更新される度にインデックスを更新する場合と比較して、インデックスの更新回数を86.4%削減することができた。また、擬陽性の発生確率は、1.7%であった。このように、本発明によれば、インデックスの更新回数を削減できるとともに、擬陽性の発生を抑制することができる。
以上説明した少なくともひとつの実施形態によれば、データベース管理システム10は、上位ノード200と、複数の下位ノード300とを持つ。上位ノード200は、データを要求するクエリをクライアント端末100から受信し、受信したクエリを条件に応じて複数の下位ノード300のいずれかに送信する。複数の下位ノード300は、上位ノード200から受信したクエリに基づく処理を実行してデータを取得し、取得したデータを上位ノード200に送信する。上位ノード200は、下位ノード300に保持されるデータの範囲を示すインデックスを保持し、クエリの検索対象のデータの範囲がインデックスによって示される範囲にない場合、下位ノード300にクエリを転送しない。これによって、データベース管理システム10は、下位ノードに保持されるデータの更新頻度が高い場合であっても、データベース管理システムのパフォーマンスが低下するのを抑制することができる。
なお、第1実施形態および第2実施形態において、クエリの検索対象のデータはセンサ値であることとしたが、これに限られない。例えば、クエリの検索対象のデータは、大小関係を規定できるデータであれば、文字データであってもよい。また、第1実施形態および第2実施形態において、精度無視ビット数nを用いて丸め処理を行うこととしたが、これに限られない。例えば、クエリの検索対象のデータが2次元データである場合、2次元の平面上における領域(例えば、矩形領域)を、インデックスとして用いてもよい。このため、上位ノード200は、下位ノード300に保持されるデータの範囲より広い範囲を、下位ノード300に保持されるデータの範囲情報(インデックス)として保持してよい。
また、第1実施形態および第2実施形態において、クライアント端末100、上位ノード200、および複数の下位ノード300は、ツリー型のネットワークによって互いに接続されていることとしたが、これに限られない。例えば、クライアント端末100、上位ノード200、および複数の下位ノード300は、メッシュ型のネットワークによって互いに接続されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
10…データベース管理システム、100…クライアント端末、200…上位ノード、210…クエリ実行部、220…インデックス管理部、230…記憶部、240…通信部、300…下位ノード、310…通信部、320…クエリ実行部、330…テーブル管理部、340…インデックス管理部、350…記憶部、360…インデックス通知判定部、361…更新頻度判定部
Claims (13)
- データを要求するクエリをクライアント端末から受信し、受信した前記クエリを条件に応じて複数の第2ノードのいずれかに送信する第1ノードと、
前記第1ノードから受信した前記クエリに基づく処理を実行してデータを取得し、取得したデータを前記第1ノードに送信する前記複数の第2ノードと、を備え、
前記第2ノードは、前記第2ノードが保持するデータの範囲を包含する範囲情報を前記第1ノードに送信し、
前記第1ノードは、前記範囲情報を前記第2ノードから取得して保持し、前記クエリの検索対象のデータの範囲が前記範囲情報によって示される範囲にない場合、前記第2ノードに前記クエリを転送しない
データベース管理システム。 - 前記範囲情報は、前記第2ノードが保持するデータの最大値以上である仮最大値と、自身が保持するデータの最小値以下である仮最小値とを含む、
請求項1記載のデータベース管理システム。 - 前記第2ノードは、予め設定されたビット数nを用いて、丸め処理として、前記第2ノードに保持されるデータの最大値の下位nビットを繰り上げて前記仮最大値を算出するとともに、前記第2ノードに保持されるデータの最小値の下位nビットを切り捨てて前記仮最小値を算出し、前記仮最大値および前記仮最小値を含む更新要求を前記第1ノードに送信し、
前記第1ノードは、前記第2ノードから前記更新要求を受信した場合、前記更新要求に含まれる前記仮最大値および前記仮最小値を前記範囲情報に設定する
請求項2記載のデータベース管理システム。 - 前記第2ノードは、前記第2ノードに保持されるデータの前記最大値および前記最小値が更新された場合、前記仮最大値および前記仮最小値を算出し、算出した前記仮最大値および前記仮最小値の双方が前回算出した値と同じである場合、前記更新要求を前記第1ノードに送信しない
請求項3記載のデータベース管理システム。 - 前記第2ノードは、前記仮最大値および前記仮最小値に加えて、前記丸め処理に用いられた前記ビット数nを含む前記更新要求を前記第1ノードに送信する
請求項3または4記載のデータベース管理システム。 - 前記第2ノードは、前記仮最大値または前記仮最小値が所定時間t1の間更新されない場合、前記丸め処理に用いられる前記ビット数nを減少させる
請求項3から5の何れか一項に記載のデータベース管理システム。 - 前記第2ノードは、前記仮最大値または前記仮最小値が所定時間t2の間に所定回数kを超えて更新された場合、前記丸め処理に用いられる前記ビット数nを増加させる
請求項3から6の何れか一項に記載のデータベース管理システム。 - 前記所定時間t1は、前記ビット数nを入力とし、前記ビット数nが小さいほど大きな値を出力する関数f(n)によって定められる
請求項6記載のデータベース管理システム。 - 前記第2ノードは、前記仮最大値または前記仮最小値が所定時間t3の間に更新された事象が連続で、所定回数mを超えて続いた場合、前記丸め処理に用いられる前記ビット数nを増加させる
請求項3から6の何れか一項に記載のデータベース管理システム。 - 前記第1ノードは、
前記複数の第2ノードに保持されるデータのうちの最大値を要求するクエリを受信した場合、前記複数の第2ノードごとに、前記仮最大値に基づいて真の最大値の下限値を算出し、
算出した前記複数の第2ノードごとの前記真の最大値の下限値のうちの最大値と、前記複数の第2ノードのそれぞれについての前記仮最大値とを比較し、
前記仮最大値が前記真の最大値の下限値のうちの最大値以上である前記第2ノードにのみ、前記クエリを転送する
請求項3から9の何れか一項に記載のデータベース管理システム。 - 前記第1ノードは、
前記複数の第2ノードに保持されるデータのうちの最小値を要求するクエリを受信した場合、前記複数の第2ノードごとに、前記仮最小値に基づいて真の最小値の上限値を算出し、
算出した前記複数の第2ノードごとの前記真の最小値の上限値のうちの最小値と、前記複数の第2ノードのそれぞれについての前記仮最小値とを比較し、
前記仮最小値が前記真の最小値の上限値のうちの最小値以下である前記第2ノードにのみ、前記クエリを転送する
請求項3から9の何れか一項に記載のデータベース管理システム。 - 前記第1ノードは、前記第2ノードに保持されるデータの範囲より広い範囲を、第2ノードに保持されるデータの前記範囲情報として保持する
請求項1から11の何れか一項に記載のデータベース管理システム。 - 第1ノードが、データを要求するクエリをクライアント端末から受信し、受信した前記クエリを条件に応じて複数の第2ノードのいずれかに送信し、
前記第2ノードが、前記第1ノードから受信した前記クエリに基づく処理を実行してデータを取得し、取得したデータを前記第1ノードに送信し、
前記第2ノードが、前記第2ノードが保持するデータの範囲を包含する範囲情報を前記第1ノードに送信し、
前記第1ノードが、前記第2ノードに保持されるデータの範囲を示す範囲情報を前記第2ノードから取得して保持し、前記クエリの検索対象のデータの範囲が前記範囲情報によって示される範囲にない場合、前記第2ノードに前記クエリを転送しない
データベース管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019089167A JP6702582B2 (ja) | 2019-05-09 | 2019-05-09 | データベース管理システムおよびデータベース管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019089167A JP6702582B2 (ja) | 2019-05-09 | 2019-05-09 | データベース管理システムおよびデータベース管理方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017111076A Division JP2018206084A (ja) | 2017-06-05 | 2017-06-05 | データベース管理システムおよびデータベース管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019179555A true JP2019179555A (ja) | 2019-10-17 |
JP6702582B2 JP6702582B2 (ja) | 2020-06-03 |
Family
ID=68278689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019089167A Active JP6702582B2 (ja) | 2019-05-09 | 2019-05-09 | データベース管理システムおよびデータベース管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6702582B2 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05242049A (ja) * | 1991-07-10 | 1993-09-21 | Hitachi Ltd | 分散データベースのソート方法およびアクセス方法 |
JP2000347912A (ja) * | 1993-04-28 | 2000-12-15 | Hitachi Ltd | データベース管理方法およびシステム |
US20050010564A1 (en) * | 2003-05-19 | 2005-01-13 | Netezza Corporation | Limiting scans of loosely ordered and/or grouped relations using nearly ordered maps |
WO2011142026A1 (ja) * | 2010-05-14 | 2011-11-17 | 株式会社日立製作所 | 時系列データ管理装置、システム、方法、およびプログラム |
WO2012137347A1 (ja) * | 2011-04-08 | 2012-10-11 | 株式会社日立製作所 | 計算機システム及び並列分散処理方法 |
WO2015017361A1 (en) * | 2013-07-29 | 2015-02-05 | Amazon Technologies, Inc. | Generating a multi-column index for relational databases by interleaving data bits for selectivity |
-
2019
- 2019-05-09 JP JP2019089167A patent/JP6702582B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05242049A (ja) * | 1991-07-10 | 1993-09-21 | Hitachi Ltd | 分散データベースのソート方法およびアクセス方法 |
JP2000347912A (ja) * | 1993-04-28 | 2000-12-15 | Hitachi Ltd | データベース管理方法およびシステム |
US20050010564A1 (en) * | 2003-05-19 | 2005-01-13 | Netezza Corporation | Limiting scans of loosely ordered and/or grouped relations using nearly ordered maps |
WO2011142026A1 (ja) * | 2010-05-14 | 2011-11-17 | 株式会社日立製作所 | 時系列データ管理装置、システム、方法、およびプログラム |
WO2012137347A1 (ja) * | 2011-04-08 | 2012-10-11 | 株式会社日立製作所 | 計算機システム及び並列分散処理方法 |
WO2015017361A1 (en) * | 2013-07-29 | 2015-02-05 | Amazon Technologies, Inc. | Generating a multi-column index for relational databases by interleaving data bits for selectivity |
Also Published As
Publication number | Publication date |
---|---|
JP6702582B2 (ja) | 2020-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204114B2 (en) | Replicating data across data centers | |
WO2019200714A1 (zh) | 服务器连接方法、计算机可读存储介质、终端设备及装置 | |
WO2018225314A1 (ja) | データベース管理システムおよびデータベース管理方法 | |
US11238046B2 (en) | Information management device, information management method, and information management program | |
CN109948122B (zh) | 输入文本的纠错方法、装置及电子设备 | |
US20210158353A1 (en) | Methods, systems, apparatuses, and devices for processing request in consortium blockchain | |
EP3739466A1 (en) | Information management device, information management method, and information management program | |
CN110601978A (zh) | 流量分发控制方法和装置 | |
US9300712B2 (en) | Stream processing with context data affinity | |
JP2019144780A (ja) | 生成装置、生成方法、及び生成プログラム | |
CN110120918B (zh) | 一种标识解析方法及装置 | |
US9529855B2 (en) | Systems and methods for point of interest data ingestion | |
CN115964984B (zh) | 用于数字芯片版图平衡绕线的方法和装置 | |
JP6702582B2 (ja) | データベース管理システムおよびデータベース管理方法 | |
US12026141B2 (en) | Data storage system conflict management | |
JP2018156458A (ja) | 生成装置、生成方法、及び生成プログラム | |
CN110322039B (zh) | 一种点击率预估方法、服务器及计算机可读存储介质 | |
US9075670B1 (en) | Stream processing with context data affinity | |
JP5507620B2 (ja) | 同義語推定装置、同義語推定方法および同義語推定プログラム | |
JP5949561B2 (ja) | 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム | |
CN112905871B (zh) | 热点关键词推荐方法、装置、终端及存储介质 | |
JP2019032666A (ja) | 情報処理プログラム、情報処理方法及び情報処理装置 | |
JP6333306B2 (ja) | 検索データ管理装置、検索データ管理方法、および検索データ管理プログラム | |
US11449549B2 (en) | Storing entries as ordered linked lists | |
US20230195761A1 (en) | Spatial lsm tree apparatus and method for indexing blockchain based geospatial point data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190509 |
|
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: 20200407 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200424 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6702582 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |