JP2014225260A - 分散型データ記憶を管理するデータベース制御部、方法及びプログラム - Google Patents

分散型データ記憶を管理するデータベース制御部、方法及びプログラム Download PDF

Info

Publication number
JP2014225260A
JP2014225260A JP2014097550A JP2014097550A JP2014225260A JP 2014225260 A JP2014225260 A JP 2014225260A JP 2014097550 A JP2014097550 A JP 2014097550A JP 2014097550 A JP2014097550 A JP 2014097550A JP 2014225260 A JP2014225260 A JP 2014225260A
Authority
JP
Japan
Prior art keywords
segment
data
database
segments
data items
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
Application number
JP2014097550A
Other languages
English (en)
Inventor
ヒュー・ボ
Bo Hu
カルヴァーリョ・ヌノ
Carvalho Nuno
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2014225260A publication Critical patent/JP2014225260A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24524Access plan code generation and invalidation; Reuse of access plans
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】分散型データ記憶を管理するデータベース制御部、方法及びプログラムを提供する。
【解決手段】データベース制御部は、データアイテムのセットをセグメントのシリーズに分割するよう構成されるセグメント制御モジュールであって、各セグメントは前記データアイテムを順に配置するために用いられる順序付けメトリックの所定の下限値及び上限値の範囲内に包含される各データアイテムを有する、セグメント制御モジュールと、複数の記憶ユニットの間で前記セグメントのシリーズの分布を管理するよう構成される適応型セグメントロケータモジュールであって、前記分布の管理は、前記データベースに対して実行されるリード動作を表す履歴データに基づく、前記セグメントのシリーズの中からの同じ記憶ユニットに同一場所に配置すべきセグメントの選択を含む、適応型セグメントロケータモジュールと、を有するデータベース制御部を含む。
【選択図】図1

Description

本発明は、データ記憶及び検索の分野に関する。特に、本発明は、データアイテムのセットとして符号化された情報のデータベースに提出される広範なクエリの処理に関する。
分散型データ記憶、例えばグラフデータベースは、過去数年間集中的に研究されている。有力な技術的ソリューションは、特定の提示に対して調整される種々のデータ区分アプローチ及び/又はデータキャッシュソリューションを含む。これら2つのソリューションは理想的ではない。データ区分及び/又はクラスタリングは、本質的に複雑であり、一般的にNP完全であり得る。オントロジのためのグラフ表現を用いるとき、複数の記憶ユニットに渡りデータバランスを維持しデータの重複を最小限に抑え、同時に分散処理中にいかなる知識も失われないことを保証することは困難である。したがって、サブグラフ間参照が頻繁に生じ、グラフ区分及びクラスタリングアプローチの大部分はデータノード間通信を有意に低減することができない。同様に、広く用いられるキャッシュアルゴリズムは、グラフ表現のために設計されていない。このような問題は、グラフデータに限られず、他の種類の分散型データ記憶の場合にも生じ得る。
キー値記憶のような分散型データ記憶にデータをどのように格納し及びデータを読み出すかという幾つかのアプローチがある。1つのアプローチは、実行範囲クエリをキーに渡り可能にする順序付きキー/値記憶を用いることである。このアプローチは、システムがサーバセット全体からデータを読み出しフィルタリングする必要がないので、スキャン動作の性能を向上する。別のアプローチは、通常の(つまり、順序付きでない)キー/値記憶にデータを格納することである。キーの順序が保持される必要がないので、リード動作は、一緒にリードされる同一場所にあるデータにより最適化できる。このアプローチは、分散型データ記憶のトラバース時間を最適化する。しかしながら、将来のリード動作を最適化するために周りの(同一場所にある)データを移動しながら順序付きデータセットを維持することは困難であるため、一般的に、キーの順序を順守せず、スキャン動作に対しては高価である。
開示の実施形態は、分散型データ記憶を管理するデータベース制御部、方法及びプログラムを提供する。
本発明の実施形態は、データアイテムのセットとして符号化された情報のデータベースのためのデータベース制御部であって、前記データベース制御部は、前記データアイテムのセットをセグメントのシリーズに分割するよう構成されるセグメント制御モジュールであって、各セグメントは前記データアイテムを順に配置するために用いられる順序付けメトリックの所定の下限値及び上限値の範囲内に包含される各データアイテムを有する、セグメント制御モジュールと、複数の記憶ユニットの間で前記セグメントのシリーズの分布を管理するよう構成される適応型セグメントロケータモジュールであって、前記分布の管理は、前記データベースに対して実行されるリード動作を表す履歴データに基づく、前記セグメントのシリーズの中からの同じ記憶ユニットに同一場所に配置すべきセグメントの選択を含む、適応型セグメントロケータモジュールと、を有するデータベース制御部を含む。
実施形態は、プレフィックスツリーのようなデータフォーマットを用い得るセグメント制御モジュールを用いて、データアイテムのセットをインデックス付けされたセグメントに分割する。セグメントは順序付けられるので、セグメント構造は範囲クエリをサポートする。どの記憶ユニットに各セグメントが格納されるかという観点でのデータセグメントの物理的位置は、適応型ロケータモジュールにより管理される。したがって、記憶ユニット間でのセグメントの分布に際して、データ使用履歴が考慮され得る。
本発明の実施形態は、順序付きキー値記憶(セグメントは論理的に順序付けられる)をデータ位置の柔軟性と結合する。セグメントの論理的順序付けのレコードを、論理的位置又はセグメントIDと(記憶ユニットの観点からの)セグメントの物理的位置と一緒に管理するので、セグメントをどこに格納するかに関して制約がない。例えば、論理的に隣接するセグメントが、同じ記憶ユニットに格納される必要がない。セグメントがそれらが各々順序付けメトリック値の特定の範囲をカバーするように分割されるという事実は、データリード/ライト動作、例えば範囲クエリの効率的な処理を可能にする。効率的なことに、順序付けメトリックの特定の値又は値の範囲をカバーする1又は複数のセグメントが決定できる。したがって、(データ自体の中で固有の)順序付けメトリックの既知の値又は値の範囲に対するデータリード/ライト動作は、適切なセグメントIDを識別可能にする。セグメントは、データベースに対して実行されたリード動作を表す履歴データに基づき分散され得る。したがって、記憶ユニットの境界に跨るトラバース動作を低減するために、分散を調整することにより、性能を向上できる。適応型セグメントロケータは、セグメントIDを物理的記憶ユニットアドレスにマッピング可能にする。
記憶ユニットは、物理的アドレス又は物理的アドレスのハッシュのようなIDにより識別可能である。記憶ユニットは、記憶サーバ又は記憶ノードであっても良く、又はコンピュータ若しくはサーバ内のHDDのような特定の構成要素であっても良い。記憶ユニットは、クエリ処理及び特定の他のリード/ライト動作を実現するためにキャッシュメモリを有しても良い。記憶ユニットは、データベース制御部に、及び場合によっては互いに、有線若しくは無線ネットワークにより又は特定の他の方法により、接続可能である。
適応型ロケータモジュールにより実行される記憶ユニットにセグメントを分散する処理は、データベースに対して実行されるリード動作を表す履歴データに基づき、同じ記憶ユニットに同一場所に配置すべきセグメントをセグメントのシリーズの中から選択することを含む。データセグメント及び記憶ユニットの相対的サイズに依存して、少なくとも1つのセグメント対が同じ記憶ユニットに配置される。実際には、記憶ユニットは2つより多いセグメントを格納し、同じ原理が適用され、つまり特定の記憶ユニットの同一場所に配置すべきセグメントの選択は、データベースに対して実行されたリード動作を表す履歴データに依存する。リード動作は、例えば、範囲クエリであっても良く、グラフトラバース動作を有しても良い。
単一のリード動作でアクセスされる記憶ユニットの数を最小化することが望ましい。したがって、本発明の実施形態は、(例えば順序付き又はランダム分布に比べて)記憶ユニットの境界に跨るリード動作を減少させるセグメントの分布を実現する。履歴情報は、システムログ又はシステムログから引き出されたデータであっても良く、任意で、各リード動作でどのデータアイテムがアクセスされたかを詳述する。次に、情報は、データアイテムの対がどれだけ強く関連付けられているかを定めるために用いることができる(2つのデータアイテムが同じリード動作で読み出される回数が多いほど、2つのデータアイテムはより強く関連付けられる)。適応型セグメントロケータモジュールは、データアイテム間(又はセグメント間)の関連付けを用いて、記憶ユニットに格納すべきセグメントを決定し、強く関連付けられたデータアイテムを有するセグメントを同じ記憶ユニットに割り当てる。
実施形態は、前記データアイテムのセットに対する範囲クエリを受信するよう構成される範囲クエリ処理モジュールであって、前記範囲クエリは順序付けメトリック値の上側境界及び下側境界を定め、前記範囲クエリ処理モジュールは、前記データアイテムが前記順序付けメトリックの順に配置されるとき、前記定められた上側境界及び下側境界の間に包含されるデータアイテムのセットの中から各データアイテムの重複で応答するよう構成される、範囲クエリ処理モジュール、を更に有しても良い。
データの実際の記憶場所は、適応型セグメントロケータモジュールにより管理される。適応型セグメントロケータモジュールは、例えば、履歴データを用いて、どのセグメントが同じリード動作で頻繁にアクセスされたデータアイテムを含むかを決定し、そのようなセグメントを同じ記憶ユニットに同一場所に配置しても良い。データアイテムのセットのセグメントへの分割は、順序付きデータアイテムにより確立された論理順序の一部を各セグメントに割り当てることにより実行される。したがって、範囲クエリが実行されるとき、順序付けメトリック値の観点でのセグメント境界に関連する範囲クエリの境界の位置は、どのセグメントが範囲クエリの範囲の少なくとも一部をカバーするかを決定可能にする。これらのセグメントの物理的位置は、適応型セグメントロケータモジュールから引き出すことができる。したがって、範囲クエリと重なり合う順序付けメトリック値の観点で範囲をカバーする記憶ユニット及びセグメントのみが、問い合わせられる。したがって、本発明の実施形態は、特定の順序で格納されているセグメントに依らずに、格納されたデータアイテムの効率的な範囲クエリを可能にする。
有利なことに、本発明の実施形態は、どの記憶ユニットが範囲クエリにより定められる順序付けメトリック値の範囲と重なり合う順序付けメトリック値の範囲をカバーするセグメントを格納するかを定めることにより、効率的な方法で範囲クエリを処理できる。したがって、検索結果を返す可能性を有しない無差別な範囲クエリの送信及び記憶ユニットに対するスキャンの実行に関連する性能コストは、回避される。しかしながら、範囲クエリを処理するために最適化される知られているデータベース記憶システムと異なり、本発明の実施形態は、セグメントID及び各セグメントが格納される記憶ユニットのレコード、例えばプレフィックスツリーのような論理trieを格納し維持するよう構成されるセグメント制御モジュールを有する。したがって、実施形態は、データアイテム又はそれらを包含するセグメントが特定の順序で格納されることを必要としない。したがって、記憶ユニットの間のセグメントの分布の柔軟性が可能になる。
有利なことに、例えばアルファベット順のような順序付けメトリック又はセグメントを順序付けるために用いられる順序付けメトリックにより定められるような論理順序は、各セグメント内のデータアイテムの間で維持される。これは、範囲クエリに対する効率的な応答を支援する。代替で、記憶ユニットは、範囲クエリに応答して特定の範囲内に包含されるデータアイテムを提供するために呼び出されるとき、セグメント内のデータアイテムに論理順序を施行するよう構成されても良い。例えば、クエリの上側境界又は下側境界がセグメント内の論理的に最高又は最低のデータアイテム内に含まれる場合、セグメントが格納されている記憶ユニットは、特定の範囲内に包含されるアイテムを識別しそれらをクエリ結果として返すために処理を実行するよう構成される。必要な場合には、このような処理は、セグメント内のデータアイテムに論理順序を施行することを含む。しかしながら、データアイテムが論理順序で格納される場合、処理負荷は低減される。
範囲クエリは、データアイテムのセット全体をスキャンしない。実際に、最初の、最後の、及び順序付けメトリック値の点で範囲クエリと重なり合う中間セグメントは、それらが格納されている記憶ユニットと共に識別できる。したがって、クエリ結果を返さない、記憶ユニットへの不必要なデータ要求は回避される。
例えば、データベース制御部は、範囲クエリ処理モジュールを有しても良い。前記範囲クエリ処理モジュールは、前記セグメント制御モジュールを用いて、前記上側境界及び前記下側境界により定められる範囲と少なくとも部分的に重なり合う範囲を定める所定の上限値及び下限値を有するセグメントを識別し、前記適応型セグメントロケータを用いて、前記複数の記憶ユニットの中から前記識別されたセグメントを格納する記憶ユニットを識別し、前記識別された記憶ユニットに、前記順序付けメトリックによる順序に配置されたとき前記上側境界及び前記下側境界の範囲内に包含されるデータアイテムに対するリード要求を発行することにより、前記重複を得るよう構成される。
セグメント制御モジュールは、各セグメントによりカバーされる範囲のレコード、つまり、セグメントIDと各セグメントの上限及び下限とのレコードを維持(格納)するよう構成されても良い。適応型セグメントロケータモジュールは、各セグメントが格納される記憶ユニットの記憶ユニットIDのレコードを維持(格納)するよう構成されても良い。
前記セグメントのシリーズの中から同じ記憶ユニットの同一場所に配置すべきセグメントを選択する処理は、セグメント対の複数の順列について関連付けメトリックのスコアを計算すること、及び前記セグメント対の複数の順列についての前記関連付けメトリックの前記スコアに依存して同一場所に配置すべきセグメントを選択すること、を含む。
関連付けメトリックは、データベースに対して実行されるリード動作を表す履歴データを用いるメカニズムを提供する。履歴データは、特にどのデータアイテムが各リード動作で読み出されたかを指定し得る。2つのセグメント間の関連付けメトリックのスコアは、2つのセグメントが前のリード動作でどれだけ密接に関連付けられたかを表す。代替で又は追加で、関連付けメトリックのスコアは、2つのセグメントの両方からのデータアイテムが同じ(単一の)リード動作でどれだけ共通して読み出されたかを表す。2つのセグメント間の関連付けのスコアは、データアイテム対がどれだけ密接に関連するかを表す関連付けメトリックのスコアの総スコアに基づいても良い。つまり、総スコアは、各セグメントからの1つのデータアイテムを有する各データアイテム対について関連付けメトリックのスコアの合計であっても良い。代替で又は追加で、2つのセグメント間の関連付けメトリックのスコアは、各セグメントから1つのデータアイテムを有する任意のデータアイテム対のなかで、データアイテム対がどれだけ密接に関連付けられているかを測る関連付けメトリックの最高スコアに基づいても良い。
適応型セグメントロケータモジュールは、セグメントの現在の記憶ユニットに該セグメントを保持するか否か、又はセグメントを別の記憶ユニットに移動するか否かを決定するために同じ検討材料を用いるよう構成されても良い。あるセグメントが、該セグメントの現在の記憶ユニットに存在する任意のセグメントとよりも、別の記憶ユニットに存在するセグメントと、より高いスコアの関連付けメトリックを有する場合、適応型セグメントロケータモジュールは、そのセグメントをより高いスコアの関連付けメトリックを有するセグメントと同一場所に配置することを決定しても良い。
任意で、前記セグメントのシリーズの中から同じ記憶ユニットの同一場所に配置すべきセグメントを選択する処理は、同じ記憶ユニットの同一場所に配置されるセグメント対の間の前記関連付けメトリックの総スコアを最適化するアルゴリズムの実行を更に含む。
このようなアルゴリズムは、データベース内の同一場所に配置されたセグメントの各対の間の関連付けメトリックの最適合計スコアを決定するために用いられても良い。或いは、アルゴリズムは、他のポリシを続行するよう構成可能であっても良い。例えば、他のポリシは、新しい記憶ユニットがシステムに追加され、適応型セグメントロケータモジュールが、新しい記憶ユニットに格納すべき所定数の又は所定合計記憶領域のデータセグメントを決定するためにアルゴリズムを実行するよう構成されても良い。例えば、アルゴリズムは、記憶ユニットに存在する対の間の関連付けメトリックのスコアを最大化するセグメントを単に移動しても良く、又はセグメントを該セグメントの現在の場所から移動することの影響を考慮して、最終的な利益をもたらす移動のみが実行されるようにしても良い。適応型セグメントロケータモジュールでアルゴリズムを実行することにより関連付けメトリックを利用する可能性は限りなく存在することが理解される。
さらに、関連付けメトリックの設計は、設定可能であり、特定の実装に合うように設計できることが理解される。例えば、前記データベースに対して実行されるリード動作を表す前記履歴データは、同じリード動作で読み出されるデータアイテムのレコードを含み、前記セグメント対の関連付けメトリックのスコアは、前記セグメント対の中の両者からのデータアイテムが同じリード動作で読み出された回数に比例する構成要素を含み、及び/又は 前記セグメント対の関連付けメトリックのスコアは、大部分「同じリード動作で読み出された前記セグメント対の各々から1つのデータアイテム対が、同じリード動作で読み出された回数に比例する構成要素を含んでも良い。
セグメント対の関連付けメトリックのスコアは、データアイテムレベルで前記関連付けメトリックを適用することにより計算され、関連付けメトリックの最高スコアを有するセグメント対のうちの各々から1つのデータアイテム対を発見し、及び前記最高スコアを前記セグメント対の間の関連付けメトリックのスコアとして設定することを含んでも良い。
どのようにセグメントが形成され識別されるかの詳細な特性は、実施形態の特定の実装に依存する。しかしながら、各セグメントは、セグメントIDにより前記セグメントのシリーズの中から識別可能であり、前記セグメント制御モジュールは、各セグメントについて、前記セグメントID及び前記セグメントの前記所定の上限及び下限のレコードを維持するよう構成されても良い。
セグメントIDは、特定形式のメタデータとしてセグメントに付加されるラベルであっても良く、セグメントのシリーズの中でセグメントにユニークである。代替で、セグメントは、該セグメントの範囲(順序付けメトリック値の上限及び下限)により、及び/又は該セグメントが有するデータアイテムにより識別されても良い。例えば、各セグメントのセグメントIDは、セグメント内の各データアイテムに共通のデータのプレフィックス部分であっても良く、該プレフィックス部分は、セグメントの上限及び下限を定める。
プレフィックス部分は、セグメント制御モジュール内に論理順序で格納され、セグメントを格納する記憶ユニットのIDを適応型セグメントロケータから読み出せるインデックスを形成する。
任意で、セグメント制御モジュールにより維持されるレコードは、論理trie、例えばプレフィックスツリーである。プレフィックスツリーは、プレフィックス検索trieとして参照されても良く、1番目のキャラクタから開始して進み、プレフィックス部分の任意の対が、プレフィックス部分の対が互いに異なるようになるまで、ルートからtrie内の共通経路を共有するように構成される。trieは、記憶空間の観点で効率的な方法で、情報、この場合異なる値のプレフィックス部分を格納するメカニズムを提供する。共通ルートからのtrie内の経路の終端には、セグメントIDに対応するリーフがある。trieはプレフィックスを格納するので、各リーフはデータアイテムの一部を表し、リーフにより表される部分で始まる任意のデータアイテムは、リーフにより識別されるセグメントに含まれる。この意味で、各リーフ又はセグメントIDは、上限及び下限を有する範囲を定める。例えば、下限はプレフィックス部分のみであり、非包括的な上限は、プレフィックス部分で指定された最後の値の次の増分である。例えば、英数字ストリングとして格納されたデータアイテム、及び順序付けメトリックがアルファベット順又は英数字順である場合を考える。プレフィックス部分「pine」は、下限「pine」及び非包括的な上限「pinf」を有する範囲を定める。したがって、データアイテムがアルファベット順に配置されるとき、これら2つの英文字値の間に包含される任意のストリングは、ID「pine」を有するセグメントに割り当てられる。
特に、データアイテムのプレフィックス部分は、データアイテムを形成するデータの開始部分であり、順序付けメトリックによりデータアイテムの順序を決定するために用いられるデータの一部又は全部を形成しても良い。
有利なことに、プレフィックス部分をセグメントIDとして用い、プレフィックス部分が順序付けメトリックによりデータアイテムを評価するために用いられるデータの部分を形成する実施形態は、セグメントID自体によりセグメントの論理順序を決定することを可能にする。
前記情報のデータベースは、データアイテムの1又は複数の追加セットとしても符号化され、前記セグメント制御モジュール及び前記適応型セグメントロケータモジュール(及び範囲クエリ処理モジュール)は、前記データアイテムのセットの各々及び前記データアイテムの1又は複数の追加セットをデータアイテムの別個のセットとして扱うよう構成され、前記データアイテムのセット内の各データアイテムは、各追加データセット内の同じ情報を符号化する対応するデータアイテムを有し、前記データアイテムを形成するデータ要素は、前記データアイテム及び各対応するデータアイテム内で異なる方法で順序付けされても良い。
有利なことに、異なるデータアイテムセットは、効率的な方法で検索されるべき指定範囲として、データアイテムの異なる要素の値で範囲クエリを行う。セグメントは、データアイテムの第1の位置に現れるデータに従って順序付けされ、後続のデータは次第に減少する重要性を有しても良い。したがって、範囲がデータアイテムセットの始めに現れるデータ要素について定められる場合、範囲クエリはより効率的に処理できる。
例えば、データアイテムはトリプルであり、1又は2つの重複トリプルセットが存在し、トリプルセット及び1又は2つの重複セットは、トリプル要素の個々の固定された順序の各位置で互いに異なるトリプル要素を有しても良い。
上述のトリプルセットの特定の構成は、範囲クエリの効率的な処理から得られる性能の利益と、記憶空間使用のオーバヘッドとの間のバランスを最適化する。
例示的な実装では、前記情報のデータベースはグラフデータベースであり、前記グラフデータベースを符号化するデータアイテムのセットは、それぞれ3つのトリプル要素:主語、述語及び目的語の各々の値を有するトリプルのセットであっても良い。
関係型データベースは、データを行と列で格納する。行及び列は、データを格納する前に定める必要のあるテーブルを構成する。テーブルの定義及びこれらのテーブルに含まれるデータ間の関係は、スキーマと称される。関係型データベースは、固定スキーマを用いる。或いは、データグラフは、グラフデータベース又はグラフデータセットとして参照され、関係型データベースの代替データ表現であり、意味的知識モデルの表現を提供する。グラフデータベースは、データをノード及びアークの形式で格納することにより、関係型データベースの重要な拡張を表す。ここで、ノードはエンティティ又はインスタンスを表し、アークは任意の2個のノード間の特定種類の関係を表す。無向グラフでは、ノードAからノードBへのアークは、ノードBからノードAへのアークと同じであると考えられる。有向グラフでは、2つの方向は別のアークとして扱われる。本発明の実施形態は、有向グラフ又は無向グラフを符号化するデータアイテムを有する。
グラフデータベースは、概して2つの主な種類に分類できる広範な種類の異なるアプリケーションで用いられる。第1の種類は、知的意思決定支援及び自己学習のようなクラス記述子の大規模な集合体(「知識ベースアプリケーション」と称される)を有する複雑な知識ベースシステムを有する。第2の種類は、社会的データ及びビジネスインテリジェンスのようなトランザクションデータに対するグラフ検索の実行を含むアプリケーション(「トランザクションデータアプリケーション」と称される)を有する。多くのアプリケーションは、両方の種類を表し得る。しかしながら、大部分のアプリケーションは、主に知識ベース又はトランザクションデータアプリケーションのいずれかで特徴付けられ得る。グラフデータベースは、種々の分野の膨大な構造化又は非構造化データを格納できる大規模な「意味ネットワーク」を維持するために用いることができる。意味ネットワークは、知識表現の形式として用いられ、コンセプトを表すノード及びコンセプト間の意味関係を表すアークを有する有向グラフである。
本発明の実施形態は、記憶のためにグラフデータベースを符号化するために、複数の異なるアプローチのうちの1又は複数を有しても良い。グラフデータは、多次元アレイとして又は他のシンボルにリンク付けされたシンボルとしてメモリに格納されても良い。別の形式のエンコーディングは、各々指定された種類のオブジェクトの有限シーケンス又は順序付きリストである「タプル」の使用である。n個のオブジェクトを含むタプルは、「nタプル」として知られる。ここで、nは零より大きい任意の非負整数である。長さ2のタプル(2タプル)は、通常、ペアと呼ばれる。3タプルはトリプルと呼ばれ、4タプルはクワドラプルと呼ばれ、以降同様である。
トリプルは、それぞれ指定された種類の3つのトリプル要素(タプル)を有する。種類は、トリプル自体の中のデータにより(つまり、「種類(type)=値(value)」と等価な形式でデータを格納することにより)指定されても良く、トリプルに又はトリプルが属するトリプルセットに適用するためにシステム内で知られているメタデータであっても良い。例えば、各トリプルは、グラフデータベースを完全に符号化するトリプルセットに属しても良い。また、各セットは、それぞれ3つのトリプル要素の値を同じ(つまり固定された)順に格納するトリプルを有することが分かっている。したがって、最初の値は、トリプル要素の最初の種類であることが分かっており、以下同様である。
用語「トリプル要素」は、一般的に、トリプル要素の種類、例えば主語、目的語又は述語を表す。トリプル要素の特定のインスタンスは、トリプル要素の値として参照される。例えば、3つのトリプル要素は、主語、目的語及び述語であっても良い。したがって、特定のトリプルは、主語、目的語及び述語の各々の値を有する。記載されるエンティティは、トリプルの主語として表されても良い。識別されたプロパティの範囲は、目的語として表されても良い。また、範囲とエンティティとの間の関係は、述語として表されても良い。トリプルは、グラフデータを複数の主語−述語−目的語の表現として特徴付けることにより、グラフデータのエンコードを提供する。例えば、主語は、(例えば、URIを介して)ウェブリソースを示しても良く、述語はリソースの個々の特性、特徴又は状況を示し、目的語は、該特性、特徴又は状況のインスタンス、範囲、又は例を示す。言い換えると、トリプルステートメントの集合は、元来、方向性グラフデータを表す。RDF標準は、このようなトリプルの形式的構造を定める。本発明の実施形態におけるトリプルは、RDFトリプルであっても良い。
さらに、3つのトリプル要素のうち固定された順序で最初の1つ又は最初の2つのトリプル要素は、セグメントIDを有するプレフィックス部分として指定され、本願明細書に記載される本発明の実施形態においてインデックス付けの目的で用いられる。したがって、プレフィックス部分は、トリプルセットの中の各トリプル内の特定の値に適用されるラベルであっても良い。
本発明の別の態様の実施形態は、本発明を具現化するデータベース制御部と、複数の記憶ユニットと、を有するデータ記憶システムを有する。
記憶ユニットは、それぞれ、コンピューティングリソースであっても良い。例えば、それらは、それぞれ、プロセッサ、メモリ及び/又はネットワークインタフェースカード、マザーボード、入力/出力装置のような追加構成要素に加えて、記憶ユニットを有しても良い。
このようなコンピューティング装置は、例えばサーバであっても良い。記憶機能に加えて、コンピューティング装置は、処理動作を実行し、記憶ユニットの分散型ネットワーク内の他の記憶ユニットと及び/又は中央制御部と通信するよう構成される。
実施形態は、本発明を具現化するデータベース制御部と、本発明を具現化する複数のコンピューティング装置と、を有し、記憶ユニットの分散型ネットワークとして動作するよう構成されるシステムの形式で提供されても良い。
このような実施形態では、複数のコンピューティング装置は、データベース制御部を形成するよう協調して動作するよう構成されても良い。
本発明の別の態様の実施形態は、データアイテムのセットとして符号化された情報のデータベースのデータベース制御部により実行される方法であって、前記方法は、前記データアイテムのセットをセグメントのシリーズに分割するステップであって、各セグメントは前記データアイテムを順に配置するために用いられる順序付けメトリックの所定の下限値及び上限値の範囲内に包含される各データアイテムを有する、ステップと、複数の記憶ユニットの間で前記セグメントのシリーズの分布を管理するステップであって、前記データベースに対して実行されるリード動作を表す履歴データに基づき、前記セグメントのシリーズの中からの同じ記憶ユニットの同一場所に配置すべきセグメントを選択するステップを含む、ステップと、を有する方法を有する。
例えば、方法は、コンピュータにより実施されても良い。
本発明の別の態様の実施形態は、コンピューティング装置又は複数の相互接続されたコンピューティング装置により実行されると、前記コンピューティング装置又は前記複数の相互接続されたコンピューティング装置に、本発明を具現化するデータベース制御部、又は本発明を具現化するデータ記憶システムとして機能させ、又は本発明を具現化する方法を実行させる、ソフトウェアを有する。
このようなソフトウェアは、プログラム又はプログラムスーツであっても良く、非一時的記憶媒体に格納されても良い。
さらに、本発明の実施形態は、コンピューティング装置の分散型ネットワークにより実行されると、コンピューティング装置の分散型ネットワークに、本発明を具現化するシステムとして機能させる、コンピュータプログラムスーツを有しても良い。
さらに、本発明の実施形態は、記憶ユニットの分散型ネットワークを有するコンピューティング装置のシステムにより実行されると、前記システムに、本発明を具現化する方法を実行させるコンピュータプログラム又はコンピュータプログラムスーツを有する。
態様(ソフトウェア/方法/装置)が別個に議論されたが、1つの態様に関連して議論されたその特徴及び影響は、他の態様にも等しく適用できる。したがって、方法の特徴が議論される場合、装置の実施形態はその特徴を実行する又は適切な機能を提供するよう構成されるユニット又は装置を有すること、及びプログラムは該プログラムが実行されるコンピューティング装置に前記方法の特徴を実行させるものと解釈される。
上述の態様のいずれにおいても、種々の特徴は、ハードウェアで、又は1又は複数のプロセッサで動作するソフトウェアモジュールとして実装されても良い。一態様の特徴は、他の態様のいずれにも適用できる。
本発明は、上述の任意の方法を実行するコンピュータプログラム又はコンピュータプログラムプロダクト、及び上述の任意の方法を実行するプログラムを格納しているコンピュータ可読媒体も提供する。本発明を実施するコンピュータ・プログラムは、コンピュータ可読媒体に格納されてもよい。或いは、例えば、インターネット・ウェブサイトから提供されるダウンロード可能なデータ信号のような信号形式又は任意の他の形式であってもよい。
本発明の特徴は、単なる例として添付の図面を参照して以下に説明される。
本発明を具現化するデータベース制御部を有するデータ記憶システムを示す。 例示的なシステムアーキテクチャを示す。 セグメント制御モジュール及び適応セグメントロケータモジュールの機能の図式表現である。
図1は、データ記憶システムを示す。データ記憶システムは、データベース制御部10及び複数の記憶ユニット30を有する。
複数の記憶ユニット30は、互いに及びデータベース制御部と、典型的な目的のために図1にバスとして示される有線若しくは無線ネットワークを介してデータ通信を行う。必要に応じて及び個々のモジュールはそれらがそれらの機能を実行する際に必要なとき、データを交換するよう構成されると仮定されるので、データベース制御部10内のデータ接続は示されない。アプリケーション20は、データ記憶システムの外部又は内部にあると考えられても良く、範囲クエリのソースであるので重要である。アプリケーション20は、データ記憶システム、例えばSPARQLクエリインタフェース内で動作する機能層であり、外部アプリケーションからクエリを受信し、それらを範囲クエリ処理モジュール16に転送するのに適した形式に処理する。
データベース制御部10は、符号化されたデータベース情報を格納する記憶ユニットに接続可能な機能エンティティである。図1のデータベース制御部10は、専用の範囲クエリ処理モジュール16を介して範囲クエリを処理するよう構成される。範囲クエリ処理モジュール16は、任意モジュールであることを示す破線の境界で示される。他のエンティティが、他のデータベース制御機能、例えば新しいデータの挿入及びデータ更新、アプリケーションへのアクセス処理を担っても良い。したがって、本発明を具現化するデータベース制御部10は、必ずしもデータベースに対して排他的処理を有する必要はなく、単に特定の機能に対する制御を有する。データベース制御部10は、専用ハードウェア装置として、又はトリプルを格納する記憶ユニットを有するサーバを含む1又は複数のコンピュータで実行するソフトウェアにより実現されても良い。データベース制御部は、マスタサーバ、又は記憶ユニット30の制御を担う特定の他の中央装置で動作する機能モジュールであっても良い。例えば、セグメント制御モジュール12により保持されるデータ量は非常に多いので、複数のサーバに渡り分散される。
データベース制御部10は、セグメント制御モジュール12、適応セグメントロケータモジュール14、範囲クエリ処理モジュール16を有する。
セグメント制御モジュール12は、データアイテムのセットを一連のセグメントに分割するよう構成される。各セグメントは、データアイテムが順序付けメトリックにより定められる順序に配置されるとき、データアイテムのセットのうち所定の下限及び上限の範囲内に包含される各データアイテムを有する。言い換えると、セグメント制御モジュール12は、データアイテムのセットを一連の順序付きセグメントに分割するよう構成され、各セグメントは、データアイテムを順に配置するために用いられる順序付けメトリックの所定の下限値及び上限値の範囲内に包含される各データアイテムを有する。
データアイテムのセットの一連のデータセグメントへの分割は、各データセグメントによりカバーされる順序付けメトリック値の範囲を指定することにより実行されても良い。したがって、データセグメントによりカバーされる範囲に包含される順序付けメトリック値を有する各データアイテムは、データセグメントのメンバである。実際に、データセグメント間の分割は、順序付けメトリックにより順序付けられたとき、データアイテムにより定められる論理的順序に重ね合わされる。セグメントは、セグメントにより定められる範囲に順序付けメトリックを適用することにより論理的に順序付けられるので、シリーズを形成する。セグメントID自体は、データセグメントの範囲を定めても良い。セグメントは、重なり合わないシリーズを形成しても良い。セグメントは、順序付けメトリック値の全範囲を必ずしもカバーせず、隣接セグメント間にギャップが存在しても良い。セグメント及びセグメントIDは、(データアイテムが格納される物理記憶装置の観点からの)データアイテムの位置が識別できるメカニズムを提供する。データアイテムがどのセグメントに属するかを決定することができ、各セグメントは単一の記憶ユニットに割り当てられる。事実上、セグメントは、全てのデータアイテムが単一の識別可能な記憶ユニットに一緒に格納される所定の範囲の順序付けメトリック値である。記憶ユニットは、適応型セグメントロケータモジュールのマッピングを参照することにより識別可能である。
順序付けメトリックは、どれが他者より高い又は低い値を有するかを定めるためにデータアイテム間の比較を可能にするルールセットである。したがって、データアイテムは、順序付けメトリックに関して値を有する。順序付けメトリック値は、データアイテム自体の固有の特性であっても良い。例えば、データアイテムが英数字シンボルストリングである場合、順序付けメトリックは、英数字順であっても良い。したがって、各ストリングは、又は1つのストリングの各部分は、英数字の値又は英数字順の順序付けメトリックの値である/を表す。更なる任意構成要素として、順序付けメトリック値は、部分的にデータアイテム自体の固有の特性であっても良く、(データベース自体のような)他の場所から得られたデータアイテムの知識に部分的に基づいても良い。例えば、データアイテムはストリングオブジェクトであり、順序付けメトリックは英数字順であっても良いが、データアイテムはデータアイテムの得られた特性に基づき追加プレフィックスを与えられても良い。したがって、データアイテムの粗ソートが可能である。例えば、階層的データ構造では、各データアイテムは、親リソースの名称を指定する追加プレフィックスを(事実上、データアイテムのペイロードに先行するヘッダデータとして)与えられても良い。このような実施形態は、データアイテムをそれらの親リソースに基づき粗くソートし、次にそれらグループをデータアイテムペイロードの英数字順にソートすることを可能にする。順序付けメトリックは、一貫性があり反復可能なように選択され、つながりを切断する1又は複数のルールを更に有しても良い。例示的な順序付けメトリックは、アルファベット順又は英数字順である。任意のキャラクタ又はキャラクタのストリングは、英数字メトリック及び/又は英字メトリックに関する値を有する。
セグメント制御モジュール12は、各セグメントの識別子を表すプレフィックスツリーを、該セグメントに貢献した範囲のデータアイテムの順序付けメトリック値と共に格納しても良い(又は該セグメント自体が該範囲を表す)。或いは、プレフィックスツリーは、例えば、Trie又はプレフィックス検索ツリーとして表されても良く、セグメントの別個のインデックスを構成するために用いられる。データアイテムがストリングオブジェクトとして表される例示的な実施形態を考える。最初のストリングキャラクタから始めて進むと(場合によっては人為的に導入した共通ルート(根)を有する)、任意のストリングオブジェクト対は、2者が分岐するキャラクタに達するまで、プレフィックスツリー内の共通経路を辿り、該キャラクタで経路が分岐する。したがって、ストリングオブジェクトへの共通の始点は、1回だけソートされ、重複しないので、記憶空間が節約される。プレフィックスツリーは、ストリングオブジェクトの始点から進むことにより構築されるので、Trieのリーフは、1又は複数のデータアイテムのプレフィックス部分に対応する。したがって、ツリーの各リーフは、データアイテムセットの中のデータアイテムの異なるプレフィックス部分である。ストリングオブジェクトのプレフィックス部分は、英字値の範囲を定めることが理解できる。始めにプレフィックス部分を有するストリングは、所定の範囲に含まれる。したがって、ツリーのリーフにより表されるプレフィックス部分は、それ自体が順序付けメトリック値の範囲の指標である。プレフィックスツリー構造は大きく、単一のサーバに維持するには大きすぎる。このような場合には、プレフィックスツリーは、仮想同期のようなネットワークプロトコルを通じて互いに通信するサーバのセットにより格納され維持される。例えば、サーバセットは、プレフィックスツリーを管理するタスクに専用であり、ネットワークプロトコルは、任意の強力な一貫性のあるネットワークプロトコルであっても良い。セグメントが格納される記憶ユニットは、(同一ネットワークに属しても良いが)1又は複数のプレフィックスツリーサーバとは別であっても良く、リード/ライト動作に専用であっても良い。
特定の実装例では、データアイテムは、3つの要素、つまり主語(S)、述語(P)、目的語(O)の各々の値を指定するトリプルであっても良い。情報は、3回、つまりフォーマットSPOに、フォーマットOSPに、及びフォーマットPOSに、符号化されても良い。したがって、3つのデータセットがあり、先ず任意の要素対の値を指定する範囲クエリが効率的に処理できる。セグメントへの分割は、純粋に各セグメントに包含されるデータアイテムの数に基づく方法で実行されても良い。例えば、各セグメントの順序付けメトリック値の範囲、従ってセグメントIDは、所定数のデータアイテムがセグメントに含まれるように選択されても良い。或いは、データ要素自体が、どのようにデータアイテムがセグメントに順序付けられるかを示すために用いられる。例えば、SPOストリングフォーマットでは、同じ主語を有するトリプルは同じセグメントに属すので、セグメントIDは異なるSの値であり、プレフィックスツリーはSストリングのツリーである。他の経験則は、実装の詳細に依存して定められ得る。例えば、同じ概念を用いて、例えばOSP変形を用い、同じオブジェクトを有するセグメントを生成する。
適応セグメントロケータモジュール14は、複数の記憶ユニット30の中でセグメントの記憶場所を管理するよう構成される。適応型セグメントロケータモジュール14は、取得した又は観察した性能統計に基づき、同じグラフトラバース動作で頻繁にアクセスされたデータアイテムを含むデータセグメントと同一場所に配置するよう構成されても良い。
適応型セグメントロケータモジュール14は、複数の記憶ユニットの間でセグメントのシリーズの分布を管理するよう構成される。このような管理は、データベースに対して実行されたリード動作を表す履歴データに基づき同じ記憶ユニットに同一場所に配置するために、セグメントのシリーズの間からのセグメントを選択することを含む。分布の管理は、少なくとも最初に、記憶ユニットにセグメントを割り当てることを含み、記憶ユニットの間でセグメントを再分布することを更に含んでも良い。分布の管理は、各セグメントが格納される記憶ユニットのレコードを維持することも含む。再分布は、特定のイベントによりトリガされても良く、及び/又は周期的であっても良い。特定のイベントは、システムアイドル時間であっても良く、最後の分布から所定数のリード動作が生じたときであっても良い。代替で、適応型セグメントロケータモジュール14は、リード動作統計を用いて連続的に記憶ユニットIDへのセグメントの最適分布を計算する監視機能を有しても良い。そして、再分布は、実際の分布と最適な分布との間の差の閾レベルより多くが存在するときトリガされる。最適は、後述する関連付けメトリックのようなメトリックを用いることにより決定されても良い。
分布の処理は、セグメントの記憶ユニットへの割り当て/指定なので、データアイテムを記憶ユニットに書き込む処理であっても良く、又はある記憶ユニットから別の記憶ユニットへのデータアイテムの転送の指示を含んでも良い。記憶ユニットに分布され/指定され/割り当てられたセグメントは、該セグメントに属する各データアイテムが記憶ユニットに格納されていること(及び特定の記憶領域に一緒にグループ化されている可能性があること)を示す。データアイテムは、それらのセグメント内の論理的順序で格納されても良く、そうでなくても良い。データアイテムが論理的順序で格納されていない場合、記憶ユニットにおける追加処理が必要であっても良い。範囲クエリに対する応答は、例えばアルファベット順のような順序付けメトリック又はセグメントを順序付けるために用いられる順序付けメトリックにより確立されるような論理的順序は、各セグメント内のデータアイテムの間で維持される。
記憶ユニットの間のセグメントの再分布は、データの特定の移動を生じても良い。関連するネットワークトラフィック及びリード/ライト動作は、性能ボトルネックになり得る。より小さいセグメントサイズは、ボトルネックを有る程度軽減し得る。したがって、幾つかの実装では、記憶ユニット間でセグメントを移動することにより生じるネットワークトラフィックが所定の閾値(値の段階的システムの1つであっても良い)に達したとき、セグメント制御モジュールは、より小さいセグメントサイズで(現在の平均サイズより小さい平均サイズ、現在の最大サイズより小さい最大サイズ、現在の固定サイズより小さい固定サイズが望ましい)、データアイテムのセットをセグメントに再び分割する処理を実行するよう指示される。もちろん、セグメント制御モジュール12が維持するよう要求されるデータの量は、セグメントサイズが減少するにつれて増大する。したがって、超えてはならない最大セグメント数が存在しても良く、或いは、所定の閾セグメント数に達すると、ネットワークトラフィックが対応する閾(通常の再分割要求に対する閾セットより高くても良い)に達した場合のみセグメント数が更に増加するよう、オーバーライドが存在しても良い。
別の実行を検討すると、セグメント制御モジュール12により格納されたデータ、例えばプレフィックスツリーを通じた検索のコストは、プレフィックス長により影響を受ける。小さなデータセグメントは、個々のセグメントを識別するためにより長いプレフィックスを必要とする。したがって、プレフィックスツリーを検索する実行コストは、大きくなる。したがって、セグメント制御モジュール12からデータを検索するために要する時間が妥当な実行対価である場合、プレフィックス(つまり、セグメントID)長は制限される。したがって、セグメントは、該セグメントに含まれるデータアイテムの数の点で、小さくなり過ぎることを防止される。データセグメントのサイズ及びセグメントID若しくはプレフィックスの長さは、性能要件に従って設定可能である。データセグメントのサイズ及びセグメントIDの長さのような設定可能な変数は、システム管理者又は閾の体系により調整可能であり、結果として生じる再構成は、セグメント制御モジュール12及び適応型セグメントロケータモジュール14の機能に実装されても良い。経験的ルール及び式は、データセグメントのサイズ又はセグメントIDの長さの選択を支援する又は指示するために用いられても良い。
セグメントサイズ及び/又はセグメントIDは、データベース内の符号化された情報のドメインに基づき経験的ルールにより決定される。例えば、データアイテムがトリプルである例を考える。トリプルは、SPOフォーマットのストリングとして格納されても良く、セグメントは、「S」の値により識別されても良く、したがって、同じ主語を共有する全てのトリプルは、同じセグメントに格納されても良い。セマンティックRDFデータモデルに適用可能な一例として、セグメント制御モジュール12は、子リソースのトリプルを該子リソースの直接の親のトリプルと一緒にグループ化するよう構成されても良い。子及び親リソースは、次の例のように、rdf:typeを用いてリンク付けされる。ここで、LecturerはFaculty_Memberの子である。<ns:Lecturer rdf:type ns:Faculty_Member>

可変セグメントサイズが許されるとき、RDFグラフのトポロジは経験的ルールを提供できる。例えば、グラフの高い階級の頂点を含むデータセグメントは、低い階級の頂点を含むデータセグメントよりも大きい。事実上、データアイテムセットがSPOフォーマットのトリプルである場合、セグメントは主語の値により定めることができる。他の経験則は、同じ概念を用いて、例えばOSP変形を用いて定めることができ、同じオブジェクトを有するセグメントを生成できる。
セグメントがリード動作で所定回数アクセスされると、データセグメントセットをセグメントに分割するための使用に基づくルールは、経験的ドメインに基づくルールを置き換え又はそれと結合される。このような場合、時々、データセグメント制御モジュール12は、データを再セグメント化し、データセグメントを再インデックス付けする必要があっても良い。これが生じると、クエリ履歴に基づき、データセグメント制御モジュール12は、同様の値の順序付けメトリック(つまり、データアイテムが順に配置されるとき、絶対的には互いに所定の閾距離範囲内にあり、又は相対的には所定の閾数の場所の中にある)を有するデータアイテムが同じグラフ動作の一部としてアクセスされたときを識別し、該データアイテムが同じセグメントに含まれるようにデータアイテムをセグメントに分割するよう構成される。履歴情報は、システムログ又は適応型セグメントロケータモジュール14からのログ情報から得られる。
適応型セグメントロケータモジュールは、セグメントレベルにあるデータアイテム間の関連付けの強度を測定するメトリックを適用し、あるセグメントが別のセグメントと同一場所に存在すべきか否かを決定するよう構成される。例えば、適応型セグメントロケータモジュール14は、2つのセグメントの各々から1つのデータアイテムを有する各対の間の関連付け強度を計算することにより、データアイテムの2つのセグメント間の関連付け強度を計算し、計算した関連付け強度のうち最高のものを2つのセグメント間の関連付け強度として指定するよう構成される。代替で、中央値又は平均値のような、データアイテムの対の間の計算した関連付け強度の平均は、2つのセグメント間の関連付け強度として指定され得る。
データセグメントg、サーバSが与えられると、2つのデータアイテム間の関連付けは、δ(t,s)で表されるメトリック/関数により計算されても良い。データセグメントの局所性は次式により表される。
Figure 2014225260
適応型セグメントロケータモジュール14により計算された関連付け強度δ(t,s)に基づき、δ(t,s)が異なるセグメントからの任意のローカルデータアイテムとgからのデータアイテムのうちの1つとの間の関連付け強度よりも強い場合、セグメントgは、データアイテムsの場所へ移動される。セグメントからのデータアイテムのうちの1つと強く関連付けられたデータアイテムが存在する場合、gは同じサーバ内に留まる。実際に、最大関連付けは、データアイテムの各対間の関連付け強度を計算することを回避するために、セグメント間で記録され得る。2つのデータアイテム間の関連付け強度を測定する関数δ(t,s)は、1又は複数の構成要素を有しても良い。構成要素は、2つのデータアイテムが同じリード動作で読み出された回数(絶対数又は考慮される全ての過去のリード動作の割合として)に比例しても良い。リード動作は、クエリ(1又は複数の範囲クエリを含む)及び/又はグラフトラバース動作であっても良い。
範囲クエリ処理モジュール16は、アプリケーション20から範囲クエリを受信するよう構成される。範囲クエリ処理モジュール16は、受信した範囲クエリに対してパース及び他の処理動作を実行し、範囲クエリ結果に含まれるべきデータアイテムの順序付けメトリック値の範囲、したがって該範囲の下側境界と上側境界を抽出するよう更に構成される。範囲クエリは、1又は複数のデータ要素の各々の境界(bound)及び非境界(unbound)値を有しても良い。例えば、範囲クエリは、1つのデータ要素又はデータ要素対を指定しても良い。したがって該要素又は要素対は境界であり、データアイテムは、クエリ結果に含まれるために範囲クエリの境界部分について指定された値と一致しなければならない。他の1又は複数のデータ要素は非境界又は変数であり、データアイテムの非境界部分の任意の1又は複数の値はクエリを満たす。もちろん、範囲クエリを効率的に処理するために、データアイテムの範囲内の要素の配置は、範囲クエリで指定された境界及び非境界データ要素のパターンにつながる。最も効率的に処理される範囲クエリは、少なくとも順序付けメトリックにより順序付けられた/評価される限り、境界部分がデータアイテムの最初に現れるデータ要素である範囲クエリである。したがって、順序付けメトリック値の単一の範囲は、範囲クエリの中で指定される境界及び非境界データ要素により定められる。
範囲クエリにより指定された順序付けメトリック値の範囲が抽出され又は確立されると、範囲クエリ処理モジュール16は、セグメント制御モジュールを参照し、セグメントが順序付けメトリックに従って順序付けられているとき、どのセグメントが範囲の上限及び下限を含むか、及び範囲の上限及び下限を含むセグメントの間にあるセグメントを識別するよう構成される。次に、範囲クエリ処理モジュールは、適応型セグメントロケータモジュールを参照し、複数の記憶ユニット30のうちどの記憶ユニット30に識別されたセグメントが格納されるかを定めるよう構成される。次に、範囲クエリ処理モジュール16又は適応型セグメントロケータモジュール14は、定められた記憶ユニットから、範囲クエリを満たすデータアイテムを要求し、及び場合によっては結果を集約してアプリケーション20に応答するよう構成される。
図2は、本発明を実施するデータ記憶システムの例示的なハードウェア構成を示す。システムは、アプリケーションティア20と、データベース制御部の例でありデータベース制御部の機能を実現するために協調して動作する多数のサーバを含むプレフィックスツリーサーバティア101と、複数の記憶ユニット30を有する記憶ティア30、例えばデータ記憶サーバと、を有する。もちろん、アプリケーション20は、システムの外部にあっても良く、システムの可能な実装を説明するために示される。
プレフィックスツリーサーバティア101は、記憶ティア30に渡り格納されたデータのインデックスを格納する1又は複数のプレフィックスツリーサーバを有する。インデックスは、セグメントIDのレコードにより提供され、セグメント内のデータの共通のプレフィックスであっても良い。該又は各プレフィックスツリーサーバは、データのグラフ表現と記憶ティア30に格納された符号化形式のデータとの間のリンク付けを含む機能を提供するソフトウェアスタックを実行する。プレフィックスツリーサーバティア101で、セグメント数及びセグメントID(プレフィックス)のサイズに依存して、(図示の)複数のサーバは、プレフィックスツリーを維持する必要があり得る。さらに、情報は、1より多いデータアイテムセットとして符号化され、プレフィックスツリーの総サイズは、1より多いサーバを必要としても良い。各プレフィックスツリーサーバは、データベース制御部機能を提供するソフトウェアスタックを含む。
グラフレイヤ102は、任意であり、範囲クエリ処理モジュール16の機能の一部を提供し、アプリケーション20と通信してクエリをRDFグラフトランザクションに変換する。
KVSレイヤ103は、範囲クエリに対応するストリングオブジェクトを順序付けメトリック値の範囲に変換するよう構成される機能ユニットの例であり、どの記憶ユニットが範囲クエリの範囲と重なり合う順序付けメトリック値の範囲を有するかを特定するためにデータセグメント制御モジュール12に問い合わせるために用いることができる。したがって、グラフレイヤ102とKVSレイヤ103は、ともに、範囲クエリ処理モジュール16の例である。さらに、KVSレイヤは、セグメントIDのレコードを格納する。したがって、順序付けメトリック値の範囲は、クエリの範囲と重なり合う順序付けメトリック値を有するデータアイテムを格納する1又は複数のセグメントIDのリストを生成するために用いることができる。
プレフィックスツリーサーバは、通信ネットワークを通じて互いに通信する。異なるプレフィックスツリーサーバ101間の通信は、Virtual Synchronous Total Order Broadcast or Paxosのような強力な合意プリミティブを用いて実行されても良い。このようなプリミティブが拡張可能でなくても、実装は、サーバ数が記憶ユニットの数と比較して小さくなると予想される。プレフィックスツリーサーバ101と記憶ユニット30との間の通信は、TCPソケットのような信頼できる通信リンク及びデータが存在することを保証するための肯定応答を用いて実行されても良い。データの一貫性は、他のプレフィックスツリーサーバ間で合意を達成するプレフィックスツリーサーバにより、及びリード/ライト動作を記憶ユニットに発行することにより、保証されても良い。
記憶ティア30は、ローカルデータを維持し及び例えば適応型ロケータレイヤ104を介して互いの間で通信ネットワークを通じてインデックスレイヤ10と通信可能な多数のデータ記憶サーバを有する。記憶は、分散型キー値記憶を用いて実現されても良い。記憶ティア30は、ローカルデータセットを管理し及び他のデータノードと通信ネットワークを通じて通信する計算能力を備えた記憶ノードとして動作するデータ記憶サーバセットを有しても良い。
適応型ロケータレイヤ104は、セグメントをデータ記憶サーバ(データノード)のプールに分散し、マッピングし及び管理する。プレフィックスツリーサーバ101により提供される別の機能は、どのようにデータセグメントが分散型プレフィックスツリー内で管理されるかである。多くの異なる実装が適用できる。例えば、直接的な実装は、プレフィックスツリーの階層的構造を順守するスーパーピアアーキテクチャであり得る。適応型ロケータレイヤ104は、セグメントIDと物理的記憶ノード(又はサーバ)との間のマッピングを担う。このレイヤは、上述のインデックス付け及びセグメント化機能を実装する。すなわち、適応型ロケータレイヤ104は、セグメント制御モジュール12及び適応型セグメントロケータモジュール14の機能を提供するために用いられ得るソフトウェアレイヤの例である。
例示的な方法及び処理を、情報のデータベースがグラフデータでありデータアイテムがトリプル、具体的にはRDFトリプルである例示的なシステムを参照して以下に説明する。例示的なシステムでは、データベース制御部10として動作する複数のPTSサーバ101が存在する。
アプリケーション20は、グラフレイヤ102のようなグラフインタフェースを用いてPTSサーバ101のうちの1つに接続する。グラフインタフェースは、専用ライブラリ、HTTPに基づくRESTレイヤ、又は他の等価な技術により達成されても良い。グラフインタフェースは、アプリケーションが記憶レイヤ30にデータを書き込み、単一のデータアイテムを読み出し、グラフトラバースを実行し、データアイテムセット全体に渡り範囲クエリを実行することを可能にする。以下の記載は、どのようにこれらの動作の各々がデータ記憶システム内で実行されるかを説明する。
アプリケーションは、データアイテム(つまりトリプル)を書き込むとき、グラフレイヤ102にライト動作を発行する。グラフレイヤは、発行されたライト動作の中に表されたトリプルを記憶するのに適したフォーマットに変換するよう構成される。
図2は、KVSレイヤ103及び適応型ロケータレイヤ104で実行される処理を説明する。KVSレイヤで、データアイテムの始めにあるキャラクタストリングは、リーフに到達するまで、プレフィックスツリーを辿る。このリーフは、データアイテムが位置すべきセグメントのセグメントIDを表す。この目的で、KVSレイヤ103は、同じデータセットについてプレフィックスツリーの部分を格納する他のPTSと通信する必要があっても良い。データアイテムのセグメントへの追加は、データセグメントが大きくなりすぎる(所定の最大セグメントサイズを超える)場合、データセグメントの分割をトリガしても良い。この目的のために、システムは、セグメントの、したがってデータアイテムの論理的順序を維持できるプレフィックスツリーを用いる。
セグメントIDを発見した後、ライト動作は、適応型ロケータレイヤ104に発行される。適応型ロケータレイヤ104は、セグメントIDと記憶ユニットとの間のマッピングを格納し、したがって、データアイテムが位置すべきセグメントを担当する記憶ユニットを発見し、ライト動作を該サーバに直接発行するよう構成される。セグメントIDと記憶ユニットの識別情報との間のマッピングは、適応型ロケータレイヤ104により維持され、時間に渡り変化し得る。マッピングの例は、図2の破線矢印として示される。説明を目的として、データアイテムのSPOセットは、シーケンシャルに順序付けられたセグメントが同じサーバに格納されるシナリオで説明される。これは、適応型ロケータレイヤ104が、未だ、どのセグメントが同じ記憶ユニットに同一場所に存在すべきかを検討するために最適化を実行していない状況の代表である。データアイテムのPOS及びOSPセットの場合には、適応型ロケータレイヤ104は過去のリード動作データに基づき記憶ユニット間のセグメントの分布を最適化するので、セグメントのシーケンシャルな順序(順序付けメトリック値の降順で三角形の底辺で左から右へ行く)は、記憶ユニット30内で保持されない。
システムが1より多いデータアイテムセット内に符号化された同じ情報を格納する場合、プレフィックスツリーサーバ101は、1より多いプレフィックスツリーを維持しても良い。このようなシステムは、範囲クエリの処理が非常に重要であり、データアイテムの異なる要素が範囲クエリにより境界を示される状況で実施されても良い。例えば、格納されたデータアイテムがRDFフォーマットである実施形態では、3つのデータアイテムセットが格納されても良い(SPO、POS、OSP)。グラフデータのトラバース及びスキャンでは、また非構造化データアイテムでも、単一のプレフィックスツリーで十分である。
記憶ユニット30は、それらのローカルディスクにデータを格納するよう構成されても良く、I/Oを最適化するためにメモリ内キャッシュメカニズムを有しても良い。単一のデータセグメントのローカルディスク記憶は、順序付きハッシュテーブルを用いて達成されても良い。順序付きハッシュテーブルは、それらのセグメント内のデータアイテムの順序を保存するメカニズムである。順序付きハッシュテーブルは、各データアイテムが同じセグメント内で順序付けられ、各セグメントが他のセグメントに関して順序付けられるよう、セグメント及びそれらの構成要素であるデータアイテムを格納する手段を各記憶ユニットに提供する。
単一のデータアイテム(又はトリプル主語)のリードは、ライト動作と同様の方法で発行される。アプリケーション20は、グラフインタフェースを用いてデータアイテムを読み出すことにより開始する。アプリケーション20は、該データアイテムをKVSレイヤ103に発行できる動作に変換する。KVSレイヤ103は、データアイテムにより指示されたプレフィックスツリーを通る経路を辿ることにより、対応するセグメントIDを計算し、セグメントIDを適応型ロケータレイヤ104に渡す。適応型ロケータレイヤ104は、対応する記憶ユニットアドレス、又は記憶ユニット/サーバ/ノードに識別されたセグメントを有するセグメントを格納させる特定の他の情報を計算し、リード動作を該記憶ユニットに発行する。グラフトラバースは、リード動作を繰り返し実行することにより実施できる。
データアイテムセット全体に渡る範囲クエリ(スキャンとも称する)は、以下のように実行される。アプリケーションは、グラフレイヤ102にスキャン動作を発行し、トリプルパターンをパラメータとして与える。トリプルパターンは、トリプルと同じフォーマットを有するが、1又は複数の部分はNULLであり、インスタンス化されるべきであることを示す。例えば、<Subject,NULL,NULL>は、トリプルの主語として「Subject」を有する全てのデータに渡るスキャンを意味する。次に、これは、KVSレイヤ103の2つのキー(順序付きメトリック値)、つまりトリプルパターンに対応する順序付きデータセット内の下限キー及び上限キーに変換される。次に、KVSレイヤ103は、この情報を用いて、対応する下限及び上限セグメントID、並びにその間に位置するセグメントIDのセット全体を計算する。
次に、セグメントIDのリストは、適応型ロケータレイヤ104に渡され、セグメントIDを記憶ユニット(データ記憶サーバ)アドレス又は該IDを有するセグメントが格納される記憶ユニットを識別するための他の情報に変換する。次に、範囲クエリは、各記憶ユニットにローカルに実行され、部分的結果がKVSレイヤ103に読み出される。最後にKVSレイヤ103は、セグメントIDの初期リストの順序を用いて部分的結果の各々を順序付ける。最後に、データに渡る反復子(iterator)は、アプリケーションに返される。
結果セットは、プレフィックスツリーサーバ101のKVSレイヤ103による単一の検索動作で扱うには大きすぎるかも知れない。このような場合、アプリケーション20が初期部分を処理している間、プレフィックスツリーサーバ101は、記憶ユニット30からのデータの一部を読み出し、続いてより多くのデータを要求しても良い。このシステムはディスクから記憶ユニットのメモリへデータを予めフェッチするキャッシング先行メカニズムでも最適化できる。同じ記憶ユニット内の関連するデータセグメントを同一場所に配置することにより、ネットワークトラフィックは最小化され、範囲クエリを満たすデータがより少数のサーバと連絡することによりアプリケーションに利用可能にされる。
纏めると、本発明の実施形態は、前に異なるサーバに置かれていたデータを読み出す将来のスキャン動作を改善するために、履歴データに基づき同じスキャン動作で頻繁に一緒に読み出されたデータアイテムを同一場所に配置するシステムを提供する。システムは、全てのサーバに問い合わせる必要性を回避することにより、範囲クエリのスキャン動作を改善するために、データアイテムが格納されるセグメントの識別表示の順序を維持する。本発明の実施形態は、スキャン動作を最適化するために、使用に基づきデータを同一場所に配置する手順をセグメント識別表示の順序付き記憶と結合する方法で、データベース内のデータアイテムの分散型記憶を実施するために用いられる、データベース制御部、システム、データ記憶システム、方法、ソフトウェア及びプログラムを含む。
10 データベース制御部
12 セグメント制御モジュール
14 適応型セグメントロケータモジュール
16 範囲クエリ処理モジュール
20 アプリケーション
30 記憶ユニット
101 プレフィックスツリーサーバ(PTS)
102 グラフレイヤ
103 KVSレイヤ
104 適応型ロケータレイヤ

Claims (15)

  1. データアイテムのセットとして符号化された情報のデータベースのためのデータベース制御部であって、前記データベース制御部は、
    前記データアイテムのセットをセグメントのシリーズに分割するよう構成されるセグメント制御モジュールであって、各セグメントは前記データアイテムを順に配置するために用いられる順序付けメトリックの所定の下限値及び上限値の範囲内に包含される各データアイテムを有する、セグメント制御モジュールと、
    複数の記憶ユニットの間で前記セグメントのシリーズの分布を管理するよう構成される適応型セグメントロケータモジュールであって、前記データベースに対して実行されるリード動作を表す履歴データに基づき、前記セグメントのシリーズの中から同じ記憶ユニットに同一場所に配置すべきセグメントを選択することを含む、適応型セグメントロケータモジュールと、
    を有するデータベース制御部。
  2. 前記データアイテムのセットに対する範囲クエリを受信するよう構成される範囲クエリ処理モジュールであって、前記範囲クエリは順序付けメトリック値の上側境界及び下側境界を定め、前記範囲クエリ処理モジュールは、前記データアイテムが前記順序付けメトリックの順に配置されるとき、前記定められた上側境界及び下側境界の間に包含されるデータアイテムのセットの中から各データアイテムの重複で応答するよう構成される、範囲クエリ処理モジュール、
    を更に有する請求項1に記載のデータベース制御部。
  3. 前記範囲クエリ処理モジュールは、
    前記セグメント制御モジュールを用いて、前記上側境界及び前記下側境界により定められる範囲と少なくとも部分的に重なり合う範囲を定める所定の上限値及び下限値を有するセグメントを識別し、
    前記適応型セグメントロケータを用いて、前記複数の記憶ユニットの中から前記識別されたセグメントを格納する記憶ユニットを識別し、
    前記識別された記憶ユニットに、前記順序付けメトリックによる順序に配置されたとき前記上側境界及び前記下側境界の範囲内に包含されるデータアイテムに対するリード要求を発行することにより、
    前記重複を得るよう構成される、請求項2に記載のデータベース制御部。
  4. 前記セグメントのシリーズの中から同じ記憶ユニットに同一場所に配置すべきセグメントを選択することは、セグメント対の複数の順列について関連付けメトリックのスコアを計算すること、及び前記セグメント対の複数の順列についての前記関連付けメトリックの前記スコアに依存して同一場所に配置すべきセグメントを選択すること、を含む、請求項1乃至3のいずれか一項に記載のデータベース制御部。
  5. 前記セグメントのシリーズの中から同じ記憶ユニットに同一場所に配置すべきセグメントを選択することは、同じ記憶ユニットに同一場所に配置されるセグメント対の間の前記関連付けメトリックの総スコアを最適化するアルゴリズムを実行することを更に含む、請求項4に記載のデータベース制御部。
  6. 前記データベースに対して実行されるリード動作を表す前記履歴データは、同じリード動作で読み出されるデータアイテムのレコードを含み、
    前記セグメント対の関連付けメトリックのスコアは、前記セグメント対の中の両者からのデータアイテムが同じリード動作で読み出された回数に比例する構成要素を含み、及び/又は
    前記セグメント対の関連付けメトリックのスコアは、最多回数同じリード動作で読み出された前記セグメント対の各々から1つのデータアイテム対が、同じリード動作で読み出された回数に比例する構成要素を含む、
    請求項4又は5に記載のデータベース制御部。
  7. セグメント対の関連付けメトリックのスコアは、データアイテムレベルで前記関連付けメトリックを適用することにより計算され、関連付けメトリックの最高スコアを有するセグメント対のうちの各々から1つのデータアイテム対を発見し、及び前記最高スコアを前記セグメント対の間の関連付けメトリックのスコアとして設定することを含む、請求項1乃至6のいずれか一項に記載のデータベース制御部。
  8. 各セグメントは、セグメントIDにより前記セグメントのシリーズの中から識別可能であり、
    前記セグメント制御モジュールは、各セグメントについて、前記セグメントID及び前記セグメントの前記所定の上限及び下限のレコードを維持するよう構成される、
    請求項1乃至7のいずれか一項に記載のデータベース制御部。
  9. 各セグメントの前記セグメントIDは、前記セグメント内のデータアイテムの各々に共通するデータのプレフィックス部分であり、前記プレフィックス部分は、前記セグメントの上限及び下限を定め、及び/又は
    データアイテムの前記プレフィックス部分は、前記データアイテムを形成するデータの開始部分であり、前記順序付けメトリックによりデータアイテムの順序を決定するために用いられるデータの一部又は全部を形成する、
    請求項8に記載のデータベース制御部。
  10. 前記セグメント制御モジュールにより維持される前記レコードは、プレフィックスツリーである、請求項9に記載のデータベース制御部。
  11. 前記情報のデータベースは、データアイテムの1又は複数の追加セットとしても符号化され、前記セグメント制御モジュール及び前記適応型セグメントロケータモジュールは、前記データアイテムのセットの各々及び前記データアイテムの1又は複数の追加セットをデータアイテムの別個のセットとして扱うよう構成され、
    前記データアイテムのセット内の各データアイテムは、各追加データセット内の同じ情報を符号化する対応するデータアイテムを有し、前記データアイテムを形成するデータ要素は、前記データアイテム及び各対応するデータアイテム内で異なる方法で順序付けされる、
    請求項1乃至10のいずれか一項に記載のデータベース制御部。
  12. 前記情報のデータベースはグラフデータベースであり、前記グラフデータベースを符号化するデータアイテムのセットは、それぞれ3つのトリプル要素の各々の値を有するトリプルのセットである、請求項1乃至11のいずれか一項に記載のデータベース制御部。
  13. 請求項1乃至12のいずれか一項に記載のデータベース制御部と、前記複数の記憶ユニットと、を有するデータ記憶システム。
  14. データアイテムのセットとして符号化された情報のデータベースのデータベース制御部により実行される方法であって、前記方法は、
    前記データアイテムのセットをセグメントのシリーズに分割するステップであって、各セグメントは前記データアイテムを順に配置するために用いられる順序付けメトリックの所定の下限値及び上限値の範囲内に包含される各データアイテムを有する、ステップと、
    複数の記憶ユニットの間で前記セグメントのシリーズの分布を管理するステップであって、前記データベースに対して実行されるリード動作を表す履歴データに基づき、前記セグメントのシリーズの中からの同じ記憶ユニットに同一場所に配置すべきセグメントを選択するステップを含む、ステップと、
    を有する方法。
  15. コンピューティング装置又は複数の相互接続されるコンピューティング装置により実行されると、前記コンピューティング装置又は複数の相互接続されるコンピューティング装置に、請求項1乃至12のいずれか一項に記載のデータベース制御部又は請求項13に記載のデータ記憶システムとして動作させ、或いは請求項14に記載の方法を実行させる、ソフトウェア。
JP2014097550A 2013-05-16 2014-05-09 分散型データ記憶を管理するデータベース制御部、方法及びプログラム Pending JP2014225260A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13168088.6 2013-05-16
EP13168088.6A EP2804114A1 (en) 2013-05-16 2013-05-16 Database controller, method, and program for managing a distributed data store

Publications (1)

Publication Number Publication Date
JP2014225260A true JP2014225260A (ja) 2014-12-04

Family

ID=48463786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014097550A Pending JP2014225260A (ja) 2013-05-16 2014-05-09 分散型データ記憶を管理するデータベース制御部、方法及びプログラム

Country Status (4)

Country Link
US (1) US20140344287A1 (ja)
EP (1) EP2804114A1 (ja)
JP (1) JP2014225260A (ja)
GB (1) GB2517540A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019530068A (ja) * 2016-09-02 2019-10-17 スノーフレーク インク. テーブルのインクリメンタルクラスタリング保守
JP2020514894A (ja) * 2017-03-15 2020-05-21 センシェア アーゲー データベースにおけるトライデータ構造の有効使用

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496277B1 (en) * 2015-12-30 2019-12-03 EMC IP Holding Company LLC Method, apparatus and computer program product for storing data storage metrics
US20170316327A1 (en) * 2016-04-29 2017-11-02 Foundation Of Soongsil University Industry Cooperation Ontology reasoning method and apparatus
US10853376B2 (en) 2016-06-19 2020-12-01 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US10802796B1 (en) * 2017-01-30 2020-10-13 Pivotal Software, Inc. Distributed sorted set
US10706106B2 (en) * 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree modifications for maintenance operations
US10706105B2 (en) * 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree garbage metrics
US10725988B2 (en) * 2017-02-09 2020-07-28 Micron Technology, Inc. KVS tree
US10719495B2 (en) * 2017-02-09 2020-07-21 Micron Technology, Inc. Stream selection for multi-stream storage devices
US11068453B2 (en) * 2017-03-09 2021-07-20 data.world, Inc Determining a degree of similarity of a subset of tabular data arrangements to subsets of graph data arrangements at ingestion into a data-driven collaborative dataset platform
US11321402B2 (en) * 2017-05-05 2022-05-03 Microsoft Technology Licensing, Llc. Index storage across heterogenous storage devices
US10915546B2 (en) 2018-10-10 2021-02-09 Micron Technology, Inc. Counter-based compaction of key-value store tree data block
US11100071B2 (en) 2018-10-10 2021-08-24 Micron Technology, Inc. Key-value store tree data block spill with compaction
US10852978B2 (en) 2018-12-14 2020-12-01 Micron Technology, Inc. Key-value store using journaling with selective data storage format
US11048755B2 (en) 2018-12-14 2021-06-29 Micron Technology, Inc. Key-value store tree with selective use of key portion
US10936661B2 (en) 2018-12-26 2021-03-02 Micron Technology, Inc. Data tree with order-based node traversal
US11334626B1 (en) * 2020-11-02 2022-05-17 Bank Of America Corporation Hybrid graph and relational database architecture

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539661B2 (en) * 2005-06-02 2009-05-26 Delphi Technologies, Inc. Table look-up method with adaptive hashing
US8489649B2 (en) * 2010-12-13 2013-07-16 Oracle International Corporation Extensible RDF databases
EP2631817A1 (en) * 2012-02-23 2013-08-28 Fujitsu Limited Database, apparatus, and method for storing encoded triples

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019530068A (ja) * 2016-09-02 2019-10-17 スノーフレーク インク. テーブルのインクリメンタルクラスタリング保守
US10997215B2 (en) 2016-09-02 2021-05-04 Snowflake Inc. Maintaining states of partitions of a table for reclustering
US11100142B2 (en) 2016-09-02 2021-08-24 Snowflake Inc. Increasing clustering of partitions of a table
US11106704B2 (en) 2016-09-02 2021-08-31 Snowflake Inc. Maintaining states of partitions of a table for adjusting clustering ratios
JP2020514894A (ja) * 2017-03-15 2020-05-21 センシェア アーゲー データベースにおけるトライデータ構造の有効使用
US11275740B2 (en) 2017-03-15 2022-03-15 Censhare Gmbh Efficient use of trie data structure in databases
US11347741B2 (en) 2017-03-15 2022-05-31 Censhare Gmbh Efficient use of TRIE data structure in databases
JP7171592B2 (ja) 2017-03-15 2022-11-15 センシェア ゲーエムベーハー データベースにおけるトライデータ構造の有効使用
US11899667B2 (en) 2017-03-15 2024-02-13 Censhare Gmbh Efficient use of trie data structure in databases

Also Published As

Publication number Publication date
US20140344287A1 (en) 2014-11-20
GB201408679D0 (en) 2014-07-02
EP2804114A1 (en) 2014-11-19
GB2517540A (en) 2015-02-25

Similar Documents

Publication Publication Date Title
JP2014225260A (ja) 分散型データ記憶を管理するデータベース制御部、方法及びプログラム
US10803088B2 (en) Semantic indexing engine
JP6160277B2 (ja) リコンシリエーション処理を実行する方法、制御部、プログラム及びデータ記憶システム
JP6123339B2 (ja) エンコードされたトリプルを格納するデータベース、装置及び方法
US9852182B2 (en) Database controller, method, and program for handling range queries
US9229961B2 (en) Database management delete efficiency
JP2015133097A (ja) 格納データアクセス制御装置
EP2849089A1 (en) Virtual table indexing mechanism and method capable of realizing multi-attribute compound condition query
Nitta et al. Survey of RDF storage managers
US8756246B2 (en) Method and system for caching lexical mappings for RDF data
US10776368B1 (en) Deriving cardinality values from approximate quantile summaries
Theocharidis et al. SRX: efficient management of spatial RDF data
Saleem Storage, indexing, query processing, and benchmarking in centralized and distributed RDF engines: a survey
US20140258264A1 (en) Management of searches in a database system
US20170322963A1 (en) Apparatus and Method for Creating User Defined Variable Size Tags on Records in RDBMS
Firth et al. TAPER: query-aware, partition-enhancement for large, heterogenous graphs
EP2731022B1 (en) Method and apparatus for storing encoded graph data
Yaşar et al. Distributed block formation and layout for disk-based management of large-scale graphs
JP7211255B2 (ja) 検索処理プログラム、検索処理方法及び情報処理装置
Przyjaciel-Zablocki et al. TriAL-QL: distributed processing of navigational queries
Castillo-García et al. A review of horizontal fragmentation methods considering multimedia data and dynamic access patterns
Abiri et al. An entity based RDF indexing schema using Hadoop and HBase
Kim et al. RP-Filter: A path-based triple filtering method for efficient SPARQL query processing
Marx et al. Towards an efficient RDF dataset slicing
Pirzadeh On the performance evaluation of big data systems