JP6672190B2 - データベースシステムおよびデータ処理方法 - Google Patents
データベースシステムおよびデータ処理方法 Download PDFInfo
- Publication number
- JP6672190B2 JP6672190B2 JP2017005121A JP2017005121A JP6672190B2 JP 6672190 B2 JP6672190 B2 JP 6672190B2 JP 2017005121 A JP2017005121 A JP 2017005121A JP 2017005121 A JP2017005121 A JP 2017005121A JP 6672190 B2 JP6672190 B2 JP 6672190B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- node device
- storage unit
- node
- parent
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Description
図1は、本実施形態によるデータベースシステムの概略構成を示す構成図である。図示するように、データベースシステム100は、階層構造に配置した複数のノード装置10を含んで構成される。つまり、データベースシステム100は、複数のノード装置間を階層構成の親子関係で接続してなるものである。これらのノード装置10は、ツリー構造(木構造)状に配置されている。つまり、各ノード装置10は、0個または1個の親ノードに接続されており、また0個以上の子ノードに接続されている。同図において、上の方に配置されたノード装置10が親の方向であり、下の方に配置されたノード装置10が子の方向である。これらのノード装置10の階層構造において、特に最上位の、親を持たないノード装置は、ルートノード装置である。ルートノード装置には、符号10Rを付している。また、同階層構造において、特に最下位の、子を持たないノード装置はリーフノード装置である。リーフノード装置には、符号10Lを付している。また、ルートノード装置10Rでもリーフノード装置10Lでもないノード装置10は、中間層に属するノード装置である。
なお、ルートノード装置10Rからリーフノード装置10Lまでの深さ(接続の段数)は、すべての枝において同一であってもよいし、枝に依って異なっていてもよい。
なお、ノード装置10の具体例として、中央サーバー装置や、その他のコンピューターや、ルーターや、IoT機器といったものを例示したが、本実施形態におけるノード装置10として機能し得るものはこれらには限られない。
図2は、ノード装置10(ノード装置10Rやノード装置10Lを含む)の概略機能構成を示すブロック図である。図示するように、ノード装置10は、データ記憶部20と、接続リスト記憶部21と、格納情報記憶部22と、退避ルール記憶部23と、データ収集部31と、格納処理部32と、問合せ処理部35とを含んで構成される。ノード装置10を構成する各部は、電子回路を用いて実現される。また、各部は、必要に応じて、情報を記憶するための記憶手段を含む。また、ノード装置10を、コンピューターとプログラムを用いて実現するようにしてもよい。
なお、親および子は、相対的な概念であり、あるノード装置10は、他のあるノード装置11の子であると同時に、さらに他のあるノード装置12の親でもあり得る。
なお、データ収集部31や格納処理部32や問合せ処理部35が、親または子のノード装置に接続して通信する際に、この接続リスト記憶部21を参照する。
また、格納情報記憶部22は、子ノード装置12またはさらにその子孫(リーフ側の方向)のノード装置に含まれるデータの範囲の情報(これを便宜的に子孫ノード格納情報と呼ぶ)を記憶する。なお、格納情報記憶部22のうちの子孫ノード格納情報を記憶する部分を、子孫ノード格納情報記憶部と呼ぶ。子ノード装置12が格納するデータの範囲を表す情報は、少なくとも、子ノード装置12またはさらにその子孫のノード装置に含まれる最古のデータの時刻情報(その範囲における時刻値の下限)である。
格納情報記憶部22が記憶するデータの具体例については、後で、図面を参照しながら説明する。
ここで、データベースシステム100のツリー構造における退避ルールの例について説明する。退避ルールとして、(A)定期退避、(B)追加データ量に基づく逐次退避、(C)不足容量に基づく逐次退避、(D)空き容量に基づく逐次退避の4種類を少なくとも挙げることができる。退避ルール記憶部23は、用いるべきルールの種類を識別するデータを記憶する。
つまり、退避ルール記憶部23は、自ノード装置が最上位の親でない場合にはデータ記憶部20に記憶されているデータを親のノード装置に退避させるための退避ルールを記憶する。また、退避ルール記憶部23が記憶する上記の退避ルールは、自ノード装置が最上位の親である場合にはデータ記憶部20に記憶されているデータを削除するためのルールとして適用される。
(A)定期退避では、予め定めた所定の時間間隔が経過するごとに、予め定めた所定量のデータを、自ノード装置10から親ノード装置11に退避させる。なお定期退避の変形例として、時間帯や曜日や日付等に応じて、上記所定の時間間隔を可変としてもよい。また、時間帯や曜日や日付等に応じて、退避すべきデータの量を可変としてもよい。
つまり、この場合、退避ルール記憶部23は、自ノード装置が最上位の親でない場合にはデータ記憶部20に記憶されているデータの所定量を所定の時間間隔で親のノード装置に退避させ、自ノード装置が最上位の親である場合にはそのデータの所定量を所定の時間間隔で削除するための退避ルール(定期退避のルール)を記憶する。
つまり、この場合、退避ルール記憶部23は、自ノード装置のデータ記憶部20にデータを書き込む際に書き込むデータのデータ量を計算しデータ記憶部20の空き容量が不十分である場合に、自ノード装置が最上位の親でない場合にはデータ記憶部20に記憶されているデータのうちの空き容量確保に必要な分を親のノード装置に退避させ、自ノード装置が最上位の親である場合にはデータのうちの空き容量確保に必要な分を削除するための退避ルール(追加データ量に基づく逐次退避のルール)を記憶する。
つまり、この場合、退避ルール記憶部23は、自ノード装置のデータ記憶部20にデータの書き込みを試みた結果として容量不足エラーが発生したときに、自ノード装置が最上位の親でない場合にはデータ記憶部20に記憶されているデータを親のノード装置に退避させ、自ノード装置が最上位の親である場合にはデータを削除するための退避ルール(不足容量に基づく逐次退避のルール)を記憶する。
つまり、この場合、退避ルール記憶部23は、自ノード装置のデータ記憶部20の空き容量を監視し空き容量が所定の閾値を下回ったときに、自ノード装置が最上位の親でない場合にはデータ記憶部20に記憶されているデータを親のノード装置に退避させ、自ノード装置が最上位の親である場合にはデータを削除するための退避ルール(空き容量に基づく逐次退避のルール)を記憶する。
また、いずれのルールを用いる場合にも、ルートノード装置10Rにおいては、データを退避させる代わりに、必要量のデータを単にデータ記憶部20から削除する。つまり、古いデータから順に、データベースシステム100から削除するようにする。
上記の「特殊な条件下」とは、例えば、(A)定期退避が用いられ、その定期退避を行うための時間間隔がすべてのノードにおいて同一であって、ルートノード装置10Rからリーフノード装置10Lまでの深さ(接続の段数)がツリーの枝に依らずにすべて一定であって、すべてのリーフノード装置10Lにおけるデータの発生頻度(単位時間当たりのデータ量)が同一であって、且つある階層における各ノード装置での1回あたりの退避データ量が同一である場合である。そのような特殊な条件を満たす場合に限り、階層ごとにその時点におけるデータ格納範囲(上限時刻と下限時刻)が決まる。
いずれの場合も、データ収集部31は、収集したデータを格納処理部32に渡す。
ただし、自ノード装置10がルート層に位置するノードである場合には、親ノード装置11が存在しないため、退避すべきデータの親ノード装置11への送信は行わない。
具体的には、問合せ処理部35は、(1)自ノード装置10のデータベースの検索と、(2)子ノード装置12への検索要求の分配と、(3)検索範囲に応じて検索要求を自ノード装置10において打ち切るか否かの判断と、を行う。
(2)子ノード装置への検索要求の分配は、次の通りに行われる。即ち、問合せ処理部35は、格納情報記憶部22を参照し、目的とするデータを子ノード装置12が保持している可能性がある場合には、それらの子ノード装置12に検索要求を分配(転送)する。このとき、問合せ処理部35は、必要に応じて接続リスト記憶部21を参照することによって、分配先とすべき子ノード装置12の情報を得る。
(3)検索要求の打ち切りの判断は、次の通りに行われる。即ち、問合せ処理部35は、格納情報記憶部22を参照し、目的とするデータを子ノード装置12が保持している可能性が全くない場合には、子ノード装置12への検索要求の分配を行わず、自ノード装置10において打ち切る。子ノード装置12に検索要求の分配を行わないのは、例えば、子ノード装置12およびさらにその下(孫等)のノード装置には所定の時刻よりも新しいデータしか格納されておらず、且つ検索要求の対象がその所定時刻よりも古いデータのみである場合である。
また、問合せ処理部35は、受け付けた検索要求に含まれる順序情報に関する検索条件を抽出し、子のノード装置またはより下位のノード装置(つまり、子孫のノード装置群)のデータ記憶部20には検索条件に合致するデータが記憶されていない場合には、検索要求をその系列の子のノード装置に送信せず、当該子のノード装置に関しては第2検索結果として空集合のデータを取得したものとする。
以上説明したように、問合せ処理部35は、データの検索要求を受け付けて、自ノード装置のデータ記憶部20に記憶されているデータを検索し検索結果(これを便宜的に第1検索結果と呼ぶ)を取得するとともに、検索要求を子のノード装置に送信し当該子のノード装置から検索結果(これを便宜的に第2検索結果と呼ぶ)を取得し、第1検索結果と第2検索結果を統合して要求元に送信する。なお、自ノード装置のデータ記憶部20のデータを検索しない場合には、空集合のデータを、第1検索結果として取り扱う。また、子ノード装置に検索要求を送信しない場合には、空集合のデータを第2検索結果として取り扱う。
図3は、データベースシステム100が保持するデータの基本構造を示す概略図である。各ノード装置10におけるデータ記憶部20が、同図に示す構造のデータを記憶している。一例として、同図では、表形式でデータを示している。図示するように、データベースシステム100は、時刻(順序情報)とデータ内容とを関連付けて保持し、管理する。時刻は、データ内容に関連付けられた時刻である。一例として、時刻は、そのデータが生成された時刻である。時刻は、「YYYY/MM/DD hh:mm:ss.nnn」(年月日、時分秒、千分の一秒)の形式で表される。データベースシステム100において、データは、関連付けられている時刻によって一意に順序付けられている。また、データ内容は、任意のデータである。一例として、データ内容は、リーフ層のノード装置10Lにおいて生成されたものである。
図4は、接続リスト記憶部21が記憶する接続リストのデータ構成例を示す概略図である。図示するように、接続リストのデータは、一例として、表形式で表される。この接続リストのデータは、ノード種別、ノード論理名、アドレス、その他のノード属性の各項目を有する。
ノード属性は、接続先のノードが、自ノードから見て、親ノードであるか子ノードであるかを表すデータである。ノードがツリー状に接続されているため、自ノードに直接接続されているノードは、親ノードまたは子ノードのいずれかである。
ノード論理名は、接続先のノードを識別するために付与された論理的な名称である。ノード論理名は、ノードごとにユニークな名称である。
アドレスは、接続先のノードと通信するために用いられるアドレスの情報である。アドレスとしては、例えば、IPアドレスを用いる。
その他のノード属性は、ノード種別やノード論理名やアドレス以外の、接続先のノードの属性を表す情報である。
図4(B)は、ルート層に位置するノード装置10が保持する接続リストの例を示す。ルート層に位置するノード装置の接続リストは、親ノードの情報を含まず、1個または複数の子ノードの情報を含む。
図4(C)は、リーフ層に位置するノード装置10が保持する接続リストの例を示す。リーフ層に位置するノード装置の接続リストは、1個の親ノードの情報を含み、子ノードの情報を含まない。
自ノード格納範囲は、その日時データの上限値および下限値で表される。ここでは、日時の過去側(日時の数値の小さい方)を下とし、未来側(日時の数値の大きい方)を上とする。自ノード格納範囲の上限値は、自ノード装置10が格納するデータのうちの最新のデータに関連付けられている時刻(日時)の値である。また、自ノード格納範囲の下限値は、自ノード装置10が格納するデータのうちの最古のデータに関連付けられている時刻(日時)の値である。
このとき、自ノード装置から接続されているすべての子ノード装置およびさらにその子孫のノード装置は、自ノード装置格納範囲の上限値よりも大きい(新しい)時刻に関連付けられたデータを保持する。
格納情報記憶部22が図5(A)に示すタイプの格納情報を保持することにより、ノード装置10において格納されているデータの範囲がわかる。
自ノード格納範囲のデータについては、既に上で述べたとおりである。
子ノード格納範囲のデータは、自ノードの直接の子ノードごとに、その子を含む枝(子ノードや孫ノード等を含む枝)が有する最古のデータに関連付けられた日時の情報を持つ。即ち、直接の子ノードごとに、その枝が有するデータに関連付けられた日時の下限値を持つ。また、これらの日時の下限値は、対応する子ノードの論理名と関連付けて保持されている。
格納情報記憶部22が図5(B)に示すタイプの格納情報を保持することにより、自ノード装置および子ノード装置以下において格納されているデータの範囲がわかる。
まずステップS11において、格納処理部32は、データの登録要求を受け付ける。なお、ルート層または中間層に位置するノード装置10においては、データの登録要求は、子ノード装置12から送られ、データ収集部31が受け付けたものである。また、リーフ層に位置するノード装置10においては、データの登録要求は、データ収集部31におけるデータ生成に基づくものである。
なお、ルート層に位置するノード装置10においては、本ステップの処理で、データを親ノードに退避させる代わりに、単にそのデータの削除を行う。
以上で、このフローチャート全体の処理を終了する。なお、データの退避と格納の詳細な処理については、後で別のフローチャートを参照しながらさらに詳細に説明する。
まずステップS21において、問合せ処理部35は、外部からの検索要求を受け付ける。なお、ルート層に位置するノード装置10においては、この検索要求はクライアント装置9から送られてくるものである。また、中間層またはリーフ層に位置するノード装置においては、この検索要求は親ノード装置11から送られてくるものである。
次にステップS23において、問合せ処理部35は、ステップS21で受け付けた検索要求に基づき、子ノード装置12に対して検索要求を転送する。そして、その子ノード装置12からの応答として、検索結果を取得する。なお、子ノード装置12が複数接続されている場合には、問合せ処理部35は、それらの子ノード装置12の各々に対して検索要求を転送し、検索結果を取得する。また、後述するように検索要求に含まれる条件(時刻の条件)によっては、子ノード装置12への検索要求を省略する場合がある。
次にステップS25において、問合せ処理部35は、ステップS24で得られた検索結果を要求元に返す。
以上で、このフローチャート全体の処理を終了する。なお、データの検索の詳細な処理については、後で別のフローチャートを参照しながらさらに詳細に説明する。
図8(A)のステップS101において、格納処理部32は、データ収集部31から渡されるデータを、自ノードのデータベース(データ記憶部20)に登録する。本ステップの処理が終了すると、このフローチャート全体の処理を終了する。
図8(B)のステップS111において、格納処理部32は、一定量のデータを親ノード装置11に移動させる。つまり、格納処理部32は、そのデータの登録を親ノード装置11に要求する。なお、データ記憶部20に存在するデータが上記の一定量に満たない場合には、存在するすべてのデータを親ノード装置11に移動させる。ただし、自ノード装置10がルート層に位置する場合には、格納処理部32は、一定量のデータを親ノードに移動させる代わりに、単にそのデータを削除する。本ステップの処理が終了すると、このフローチャート全体の処理を終了する。
まずステップS121において、格納処理部32は、登録するデータのデータ量を計算する。
次にステップS122において、格納処理部32は、ステップS121で算出された登録データ量に基づいて、データベース(データ記憶部20)に充分な空き容量が存在しているか否かを判断する。空き容量が充分である場合(ステップS122:YES)には、ステップS124に飛ぶ。空き容量が不充分である場合(ステップS122:NO)には、次のステップS123に進む。
次にステップS123に進んだ場合、同ステップおいて、格納処理部32は、容量が不足する分のデータを、親ノード装置11に移動させる。なお、自ノード装置10がルート層に位置するノードである場合には、そのデータを親ノードに移動させる代わりに、単にデータベース(データ記憶部20)から削除する。
次にステップS124において、格納処理部32は、データ収集部31から渡されるデータを、自ノードのデータベース(データ記憶部20)に登録する。本ステップの処理が終了すると、このフローチャート全体の処理を終了する。
まずステップS131において、格納処理部32は、データ収集部31から渡されたデータの、自ノードのデータベース(データ記憶部20)への登録を試みる。
次にステップS132において、格納処理部32は、ステップS131におけるデータの登録(書き込み)において、容量不足のエラーが起こったか否かを判断する。容量不足エラーが起こった場合(ステップS132:YES)には、ステップS133に進む。容量不足エラーが起こらず正常にデータ登録が完了した場合(ステップS132:NO)には、このフローチャート全体の処理を終了する。
次にステップS133に進んだ場合、同ステップおいて、格納処理部32は、一定量のデータを親ノード装置11に移動させる。ただし、自ノード装置10がルート層に位置するノードである場合には、本ステップにおいて、一定量のデータを親ノード装置11に移動させる代わりに、そのデータを単にデータベース(データ記憶部20)から削除する。本ステップの処理が終了すると、再度、ステップS131に戻る。
次にステップS152において、格納処理部32は、ステップS151で確認した空き容量等が予め定めた閾値以上であるかどうかを判定する。そして、閾値以上の空き容量が存在する場合(ステップS152:YES)には、このフローチャート全体の処理を終了する。空き容量が閾値未満である場合(ステップS152:NO)には、次のステップS153に進む。
次にステップS153に進んだ場合、同ステップにおいて、格納処理部32は、一定量のデータを親ノード装置11に移動させる。ただし、自ノード装置10がルート層に位置するノードである場合には、本ステップにおいて、一定量のデータを親ノード装置11に移動させる代わりに、そのデータを単にデータベース(データ記憶部20)から削除する。本ステップの処理が終了すると、このフローチャート全体の処理を終了する。
つまり、図8(B)のステップS111や、図9のステップS123や、図10のステップS133や、図11のステップS153におけるデータの移動(退避)の処理の、詳細な手順を示すものが図12である。以下、このフローチャートに沿って説明する。
次にステップS163において、格納処理部32は、親ノード装置11に、その範囲のデータの登録要求を送信する。本ステップの処理が終了すると、次にステップS165に進む。
以上でこのフローチャート全体の処理を終了する。
まずステップS41において、問合せ処理部35は、受け取った検索要求から、時刻に関する検索条件を抽出する。
次にステップS43に進んだ場合、同ステップにおいて、問合せ処理部35は、自ノードのデータベースを検索し、検索結果を取得する。
次にステップS45に進んだ場合、同ステップにおいて、問合せ処理部35は、子ノードに対して検索要求を送り、その子ノードから検索結果を取得する。なお、自ノードが複数の子ノードに接続されているとき、子ノードの枝ごとにデータの格納範囲が異なる場合には、検索条件に合致するデータを含む可能性のある枝の子ノードのみに検索要求を送るようにしてもよい。そして、本ステップの処理が終了すると、このフローチャートの処理全体を終了する。
即ち、上記のステップS42においては、問合せ処理部35は、格納情報記憶部22の自ノード格納範囲の情報を参照する。これにより、問合せ処理部35は、検索要求に含まれる時刻の条件と、自ノード格納範囲の上限と下限とで表される範囲とが重なるか否かを判定する。
また、上記のステップS44において、問合せ処理部35は、次のような判定を行う。即ち、格納情報記憶部22が図5(A)に示したタイプの格納情報を保持している場合、問合せ処理部35は、検索要求に含まれる時刻の条件と、自ノード格納範囲の上限よりも大きい(新しい)範囲とが重なるか否かを判定する。一方、格納情報記憶部22が図5(B)に示したタイプの格納情報を保持している場合、問合せ処理部35は、検索要求に含まれる時刻の条件と、子ノード格納範囲の下限よりも大きい(新しい)範囲が重なるか否かを、子ノードごとに判定する。
一方、従来技術を用いた構成で、1,000,000台(百万台)のデータ管理装置が、データを保持する。これらの百万台のデータ管理装置は、ツリー構造あるいは層構造を成しておらず、すべてがフラットにネットワークに接続されている。また、各々のデータ管理装置のデータベース容量は4GBである。つまり、百万台のデータ管理装置全体でのデータベース容量は4PGである。つまり、全体のデータベース容量は、上記の本実施形態を用いる場合と同等である。
本実施形態の例では、検索は、各層(第1層から第4層まで)のノード装置で行われる。第1層(ルート層)のノード装置では、1PBの容量のデータベースに100MB/秒のアクセス速度でシーケンシャルにアクセスするため、1[PB]/100[MB/秒]で、10,000,000秒(1千万秒)を要する。なお、第2層から第4層までにおける各ノード装置でのデータベースへのアクセスと、取得されたデータの上位層への転送は、上で想定した速度によれば充分に速いため、第1層(ルート層)でのデータアクセス時間の1千万秒に隠蔽される。
一方、従来技術の例では、4PBのデータに100MB/秒の速度でアクセスするため、4[PB]/100[MB/秒]で、合計で40,000,000秒(4千万秒)を要する。
つまり、本実施形態の例で検索した場合の性能は、従来技術の例の場合の性能を上回る。
また、本実施形態の各層におけるデータ格納状況は次の通りである。即ち、第4層(リーフ層)は現時点から24時間前まで(これを「当日」と呼ぶ)のデータを格納している。また、第3層は、24時間前から48時間前まで(これを「1日前」と呼ぶ)のデータを格納している。また、第2層は、48時間前から72時間前(これを「2日前」と呼ぶ)のデータを格納している。また、第1層は、72時間前から96時間前(これを「3日前」と呼ぶ)のデータを格納している。ここで、検索要求内に、時刻の条件として、1日前のデータ(つまり、第3層のノード装置に格納されているデータ)のみを検索する条件を含む場合を想定する。つまり、第3層の10,000台のノード装置の各々において、100GBのデータを探索する。つまり、10,000並列にデータアクセスが行われる。このデータアクセスに要する時間は、100[GB]/100[MB/秒]で、1,000秒である(時間A)。アクセスの結果得られたデータを第3層から第2層に転送する処理は、100並列で行われる(第2層のノード装置が100台)。第3層から第2層へのデータ転送に要する時間は、10[TB]/1[GB/秒]で、10,000秒である(時間B)。このデータを第2層から第1層に転送する処理は、1並列で(シーケンシャルに)行われる(第1層のノード装置が1台)。第2層から第1層へのデータ転送に要する時間は、1[PB]/1[GB/秒]で、1,000,000秒である(時間C)。つまり、これらの時間A、時間B、時間Cをたし合わせると、検索処理に要する総時間は、1,011,000秒である。
一方、従来技術の例では、1PBのデータにシーケンシャルにアクセスする。つまり、このデータアクセスに要する時間は、1[PB]/100[MB/秒]で、合計で10,000,000秒(1千万秒)である。
つまり、この場合も、本実施形態の例で検索した場合の性能は、従来技術の例の場合の性能を上回る。
次に、第2の実施形態について説明する。なお、前述の実施形態と共通の事項については以下における説明を省略し、本実施形態に特有の事項を中心に説明する。
第1の実施形態におけるデータベースシステムに格納されるデータの構成は図3に示した通りであった。一方、本実施形態におけるデータベースシステム101は、複数の系列(時系列)のデータを格納する。
例えば、系列識別情報「P」および「Q」は、リーフノード装置10Lにおいてデータを生成する2種類のセンサー(センサーPとセンサーQ)に対応する。
つまり、本実施形態におけるデータ記憶部20は、順序情報(時刻)によって順序付けられる複数の系列のデータを記憶する。
なお、ここでは、データベースシステム101が管理するデータの系列数が2の場合について例示しているが、データの系列数は3以上であってもよい。
具体的には、第1層のノードでは、系列P,Qに依らずに、自ノード格納範囲の上限が「2017/01/03 04:00:00.000」であり、下限が「2017/01/02 21:00:00.000」である。また、第2層のノードでは、同じく系列P,Qに依らずに、自ノード格納範囲の上限が「2017/01/03 10:00:00.000」であり、下限が「2017/01/03 04:00:00.000」である。また、第3層のノードでは、同じく系列P,Qに依らずに、自ノード格納範囲の上限が「2017/01/03 04:00:00.000」であり、下限が「2017/01/02 21:00:00.000」である。
つまり、この場合、格納処理部32は、複数の系列のデータに共通の順序情報が示す順序で、データ記憶部20から退避させるべきデータを親のノード装置に退避させまたはルートノードにおいてはデータ記憶部20から削除すべきデータを削除する、
このように、自ノード格納範囲はデータ系列に依存しない。したがって、本方式において、各ノード装置10の格納情報記憶部22は、データ系列に依存せず共通の格納範囲の情報(自ノード格納範囲等)を保持する。
具体的には、第1層のノードにおいて系列Pに関して、自ノード格納範囲の上限が「2017/01/03 01:00:00.000」であり、下限が「2017/01/02 21:00:00.000」である。また、第1層のノードの系列Qに関して、自ノード格納範囲の上限が「2017/01/03 08:00:00.000」であり、下限が「2017/01/03 00:00:00.000」である。
また、第2層のノードにおいて系列Pに関して、自ノード格納範囲の上限が「2017/01/03 06:00:00.000」であり、下限が「2017/01/03 02:00:00.000」である。また、第2層のノードの系列Qに関して、自ノード格納範囲の上限が「2017/01/03 12:00:00.000」であり、下限が「2017/01/03 10:00:00.000」である。
また、第3層のノードにおいて系列Pに関して、自ノード格納範囲の上限が「2017/01/03 11:00:00.000」であり、下限が「2017/01/03 07:00:00.000」である。また、第2層のノードには系列Qのデータが存在しない。
つまり、この場合、格納処理部32は、複数の系列のデータごとの順序情報が示す順序で、データ記憶部20から退避させるべきデータを親のノード装置に退避させまたはデータ記憶部20から削除すべきデータを削除する。
このように、自ノード格納範囲はデータ系列ごとに異なる。したがって、本方式において、各ノード装置10の格納情報記憶部22は、データ系列ごとに、格納範囲の情報(自ノード格納範囲等)を保持する。
次に、第3の実施形態について説明する。なお、前述の各実施形態と共通の事項については以下における説明を省略し、本実施形態に特有の事項を中心に説明する。本実施形態におけるデータベースシステムの特徴として、ノード装置10は必ずしもツリー構造状に接続される必要はない。
次に、第4の実施形態について説明する。なお、前述の各実施形態と共通の事項については以下における説明を省略し、本実施形態に特有の事項を中心に説明する。本実施形態におけるデータベースシステムの特徴として、ノード装置10は必ずしもツリー構造状に接続される必要はなく、また必ずしも単一のルートノード装置を有さない構成としてもよい。
Claims (9)
- 複数のノード装置間を親子関係で接続してなるデータベースシステムであって、
前記ノード装置は、
データを記憶するデータ記憶部と、
自ノード装置が最上位の親でない場合には前記データ記憶部に記憶されている前記データを親のノード装置に退避させ、自ノード装置が最上位の親である場合には前記データ記憶部に記憶されているデータを削除するための退避ルールを記憶する退避ルール記憶部と、
データの登録要求を受け付けて前記データ記憶部に書き込むとともに、前記退避ルール記憶部の前記退避ルールを参照することによって、前記データに関連付けられた順序情報が示す順序で前記データ記憶部から退避させるべきデータを親のノード装置に退避させまたは前記データ記憶部から削除すべきデータを削除する格納処理部と、
データの検索要求を受け付けて、自ノード装置の前記データ記憶部に記憶されている前記データを検索し第1検索結果を取得するとともに、前記検索要求を子のノード装置に送信し当該子のノード装置から第2検索結果を取得し、前記第1検索結果と前記第2検索結果とを要求元に送信する問合せ処理部と、
を備え
前記データ記憶部は、前記順序情報によって順序付けられる複数の系列の前記データを記憶するものであり、
前記格納処理部は、前記複数の系列のデータごとの前記順序情報が示す順序で、前記データ記憶部から退避させるべきデータを親のノード装置に退避させまたは前記データ記憶部から削除すべきデータを削除する、
データベースシステム。 - 前記退避ルール記憶部は、自ノード装置が最上位の親でない場合には前記データ記憶部に記憶されている前記データの所定量を所定の時間間隔で親のノード装置に退避させ、自ノード装置が最上位の親である場合には前記データの所定量を所定の時間間隔で削除するための前記退避ルールを記憶する、
請求項1に記載のデータベースシステム。 - 前記退避ルール記憶部は、自ノード装置の前記データ記憶部に前記データを書き込む際に書き込む前記データのデータ量を計算し前記データ記憶部の空き容量が不十分である場合に、自ノード装置が最上位の親でない場合には前記データ記憶部に記憶されている前記データのうちの空き容量確保に必要な分を親のノード装置に退避させ、自ノード装置が最上位の親である場合には前記データのうちの空き容量確保に必要な分を削除するための前記退避ルールを記憶する、
請求項1に記載のデータベースシステム。 - 前記退避ルール記憶部は、自ノード装置の前記データ記憶部に前記データの書き込みを試みた結果として容量不足エラーが発生したときに、自ノード装置が最上位の親でない場合には前記データ記憶部に記憶されている前記データを親のノード装置に退避させ、自ノード装置が最上位の親である場合には前記データを削除するための前記退避ルールを記憶する、
請求項1に記載のデータベースシステム。 - 前記退避ルール記憶部は、自ノード装置の前記データ記憶部の空き容量を監視し前記空き容量が所定の閾値を下回ったときに、自ノード装置が最上位の親でない場合には前記データ記憶部に記憶されている前記データを親のノード装置に退避させ、自ノード装置が最上位の親である場合には前記データを削除するための前記退避ルールを記憶する、
請求項1に記載のデータベースシステム。 - 自ノード装置の前記データ記憶部に記憶されているデータに関連付けられた順序情報の範囲の情報を記憶する格納情報記憶部、
をさらに備え、
前記問合せ処理部は、受け付けた検索要求に含まれる前記順序情報に関する検索条件を抽出し、自ノード装置の前記データ記憶部には前記検索条件に合致するデータが記憶されていない場合には、自ノード装置の前記データ記憶部に記憶されている前記データの検索を行わず、前記第1検索結果として空集合のデータを取得したものとする、
請求項1から5までのいずれか一項に記載のデータベースシステム。 - 子のまたはより下位のノード装置の前記データ記憶部に記憶されているデータに関連付けられた順序情報の範囲の情報を記憶する子孫ノード格納情報記憶部、
をさらに備え、
前記問合せ処理部は、受け付けた検索要求に含まれる前記順序情報に関する検索条件を抽出し、前記子のまたはより下位のノード装置の前記データ記憶部には前記検索条件に合致するデータが記憶されていない場合には、前記検索要求を前記子のノード装置に送信せず、当該子のノード装置に関しては前記第2検索結果として空集合のデータを取得したものとする、
請求項1から6までのいずれか一項に記載のデータベースシステム。 - 前記順序情報は、時刻の情報である、
請求項1から7までのいずれか一項に記載のデータベースシステム。 - 複数のノード装置間を親子関係で接続してなるデータベースシステムによるデータ処理方法であって、
前記ノード装置において、
データ記憶部は、データを記憶し、
退避ルール記憶部は、自ノード装置が最上位の親でない場合には前記データ記憶部に記憶されている前記データを親のノード装置に退避させ、自ノード装置が最上位の親である場合には前記データ記憶部に記憶されているデータを削除するための退避ルールを記憶し、
格納処理部は、データの登録要求を受け付けて前記データ記憶部に書き込むとともに、前記退避ルール記憶部の前記退避ルールを参照することによって、前記データに関連付けられた順序情報が示す順序で前記データ記憶部から退避させるべきデータを親のノード装置に退避させまたは前記データ記憶部から削除すべきデータを削除し、
問合せ処理部は、データの検索要求を受け付けて、自ノード装置の前記データ記憶部に記憶されている前記データを検索し第1検索結果を取得するとともに、前記検索要求を子のノード装置に送信し当該子のノード装置から第2検索結果を取得し、前記第1検索結果と前記第2検索結果とを要求元に送信する、
ものであって、
前記データ記憶部は、前記順序情報によって順序付けられる複数の系列の前記データを記憶するものであり、
前記格納処理部は、前記複数の系列のデータごとの前記順序情報が示す順序で、前記データ記憶部から退避させるべきデータを親のノード装置に退避させまたは前記データ記憶部から削除すべきデータを削除する、
データ処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017005121A JP6672190B2 (ja) | 2017-01-16 | 2017-01-16 | データベースシステムおよびデータ処理方法 |
US15/864,141 US20180203908A1 (en) | 2017-01-16 | 2018-01-08 | Distributed database system and distributed data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017005121A JP6672190B2 (ja) | 2017-01-16 | 2017-01-16 | データベースシステムおよびデータ処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018116348A JP2018116348A (ja) | 2018-07-26 |
JP6672190B2 true JP6672190B2 (ja) | 2020-03-25 |
Family
ID=62838308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017005121A Active JP6672190B2 (ja) | 2017-01-16 | 2017-01-16 | データベースシステムおよびデータ処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20180203908A1 (ja) |
JP (1) | JP6672190B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7082373B2 (ja) * | 2019-03-27 | 2022-06-08 | 日本電信電話株式会社 | データ管理装置およびデータ管理方法 |
CN111427695A (zh) * | 2020-04-01 | 2020-07-17 | 山东汇贸电子口岸有限公司 | 一种分布式数据库中存储过程的并发调度装置 |
EP3916581A1 (de) * | 2020-05-29 | 2021-12-01 | Siemens Aktiengesellschaft | Computerimplementiertes verfahren zur speicherung von daten mittels einer verteilten transaktionsdatenbank, computerprogrammprodukt und netzwerk |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19807872A1 (de) * | 1998-02-25 | 1999-08-26 | Pact Inf Tech Gmbh | Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl. |
US9361332B2 (en) * | 2013-03-15 | 2016-06-07 | International Business Machines Corporation | Index record-level locking for file systems using a B+ tree structure |
US9015111B2 (en) * | 2013-04-05 | 2015-04-21 | Hitachi, Ltd. | Storage system and storage system control method |
US10261960B2 (en) * | 2014-09-12 | 2019-04-16 | Scality, S.A. | Snapshots and forks of storage systems using distributed consistent databases implemented within an object store |
CN107077481B (zh) * | 2014-09-19 | 2021-01-22 | 日本电气方案创新株式会社 | 信息处理装置、信息处理方法和计算机可读存储介质 |
-
2017
- 2017-01-16 JP JP2017005121A patent/JP6672190B2/ja active Active
-
2018
- 2018-01-08 US US15/864,141 patent/US20180203908A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2018116348A (ja) | 2018-07-26 |
US20180203908A1 (en) | 2018-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10209893B2 (en) | Massively scalable object storage for storing object replicas | |
US10649827B2 (en) | Two level addressing in storage clusters | |
US9898521B2 (en) | Massively scalable object storage system | |
US8676951B2 (en) | Traffic reduction method for distributed key-value store | |
US8762353B2 (en) | Elimination of duplicate objects in storage clusters | |
JP5043937B2 (ja) | 分散システム内の連合リソース発見のための方法およびコンピュータ・プログラム | |
US8996611B2 (en) | Parallel serialization of request processing | |
KR100974149B1 (ko) | 네임스페이스에 대한 정보 유지 방법, 시스템 및 컴퓨터 판독가능 저장 매체 | |
US20080126404A1 (en) | Scalable distributed object management in a distributed fixed content storage system | |
JP6672190B2 (ja) | データベースシステムおよびデータ処理方法 | |
CN102708165A (zh) | 分布式文件系统中的文件处理方法及装置 | |
JP4713257B2 (ja) | データ記憶装置及びバージョン管理プログラム | |
US20110040788A1 (en) | Coherent File State System Distributed Among Workspace Clients | |
US10936590B2 (en) | Bloom filter series | |
JP5371656B2 (ja) | ファイル検索システム | |
JP7434088B2 (ja) | 分散処理システム、分散処理装置、データベース管理装置及び方法 | |
US11853298B2 (en) | Data storage and data retrieval methods and devices | |
JP2000250918A (ja) | 分散データベースシステムと検索方法およびその処理プログラムを記録した記録媒体 | |
Malensek | On the evaluation of exact-match and range queries over multidimensional data in distributed hash tables | |
CN101300552A (zh) | 信息检索系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181114 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191025 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191210 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200107 |
|
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: 20200204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200304 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6672190 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |