JPWO2013175611A1 - データの分散検索システム、データの分散検索方法及び管理計算機 - Google Patents

データの分散検索システム、データの分散検索方法及び管理計算機 Download PDF

Info

Publication number
JPWO2013175611A1
JPWO2013175611A1 JP2014516589A JP2014516589A JPWO2013175611A1 JP WO2013175611 A1 JPWO2013175611 A1 JP WO2013175611A1 JP 2014516589 A JP2014516589 A JP 2014516589A JP 2014516589 A JP2014516589 A JP 2014516589A JP WO2013175611 A1 JPWO2013175611 A1 JP WO2013175611A1
Authority
JP
Japan
Prior art keywords
data
search
graph structure
relationship
structure data
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
Application number
JP2014516589A
Other languages
English (en)
Other versions
JP5844895B2 (ja
Inventor
康志 宮田
康志 宮田
博泰 西山
博泰 西山
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2013175611A1 publication Critical patent/JPWO2013175611A1/ja
Application granted granted Critical
Publication of JP5844895B2 publication Critical patent/JP5844895B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • 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
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

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)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

プロセッサとメモリを備えて複数の検索実行計算機に接続された管理計算機で、データ内容とデータ内容を接続する関係性を保持し、当該関係性により接続されるデータ群で構成されるグラフ構造データを受け付けて、複数の検索実行計算機に分配する分散管理部と、検索条件を受け付けたときには、前記複数の検索実行計算機に前記検索条件を送信し、複数の検索実行計算機からの検索結果を受信する分散検索部と、を備え、前記分散管理部は、前記関係性が一致するグラフ構造データをグループ化して、当該グループに属するグラフ構造データを分割して前記複数の検索実行計算機に配置し、前記分散検索部は、前記データ間の関係性の検索条件と、前記データ内容の検索条件とを含む検索条件を前記複数の検索実行計算機にそれぞれ送信して、並列して検索を実行させる。

Description

本発明は、グラフ構造データを複数の計算機に分散して格納し、並列して検索を行う計算機システムおよび方法の改良に関する。
複数のデータ間の任意の関係性を表現するためにグラフ構造データが用いられる。グラフ構造データとは、グラフ構造データに含まれるデータが、そのデータの内容と他のデータとの関係性を保持し、関係性によって接続される一連のデータ群である。
このグラフ構造データを蓄積して管理するグラフデータベース装置と、グラフデータベースに蓄積されたグラフ構造データから任意のグラフ構造データを抽出するグラフ構造データ検索装置と、が存在する。グラフ構造データ検索装置は、データ内容とデータ間の関係性を条件とし、その条件に一致するグラフ構造データをグラフデータベース装置から抽出する。
大量のグラフ構造データに対する検索処理を高速化するためにグラフ構造データを複数のサーバノードに分散して共有し、各サーバノードで検索処理を並列実行する技術が知られている。
これら複数のサーバノードで並列実行した検索処理の結果を、管理サーバで受信してマージすることで、全てのグラフ構造データを対象にした検索処理を実行した場合と同じグラフ構造データを含む結果を得ることができる。ただし、グラフ構造データの検索では、データ内容とデータ間の関係性を条件とするため、関係性のあるデータが複数のサーバノードに分散すると、複数のサーバノードで条件の確認が必要になる。複数のサーバノードにおいて条件を確認するために、サーバノード間で通信が発生し処理が遅延する可能性がある。この遅延を防ぐため、非特許文献1には関係性で接続されるデータを同一サーバノードに保持させる技術が開示されている。
非特許文献1に記載される技術を用いると、検索時のサーバノード間の通信が不要となり、各サーバノードで必要な検索時間は、各サーバノードに保持されるグラフ構造データからデータ内容とデータ間の関係性で指定された条件に一致するグラフ構造データを抽出する検索処理にかかる時間となる。この場合、各サーバノードで検索処理を並列実行しているため、全ての検索結果を得る時間は、最も検索処理の遅いサーバノードに依存する。また、各サーバノードで処理する検索内容は同一のため、全ての検索結果を得る時間は、各サーバノードで検索処理に関わるグラフ構造データ数に依存することとなる。
ここで、検索処理に関わるグラフ構造データについて説明する。一般にデータを検索する場合には、インデックスと呼ばれる索引を用いて一部または全ての検索条件に一致するデータを抽出する。グラフ構造データにおけるインデックスは、データの内容やデータ間の関係性を特定の順番に並べた辞書データである。この辞書データから一部または全部の検索条件に一致するデータ範囲を抽出することで、全てのグラフ構造データを検査することなく目的のグラフ構造データを取得することができる。このとき、一部の検索条件に一致するデータ範囲を抽出した場合は、抽出したデータの範囲を解候補とし、これらの解候補の全てに対して残りの検索条件に一致するか否かを判定する処理が必要となる。この解候補数が検索処理に関わるグラフ構造データ数である。なお、インデックスが存在しない場合には、全てのグラフ構造データが解候補となる。
この検索処理に関わるグラフ構造データ数は、検索内容と各サーバノードへのグラフ構造データの配置状態により異なる。そのため、特定のサーバノードにおいて検索処理に関わるグラフ構造データ数が他のサーバノードより多くなると、特定のサーバノードで負荷が高くなり、検索処理が遅延する。このような問題を解決するため特許文献1では、過去の検索内容とその検索処理に関わるデータ数を記憶しておき、検索処理に関わるデータ数が多いサーバノードから少ないサーバノードにデータを再配置し、負荷を分散する方法が記載されている。
特開平06−259478号公報
Huang, J., Abadi, D. and Ren, K.、「Scalable SPARQL Querying of Large RDF Graph」、VLDB Endowment Inc.、Vol. 4 (VLDB 2011)
グラフ構造データの検索が稼働しつづけるシステムに特許文献1の技術を適用する場合、サーバノード間でグラフ構造データを移動して再配置する際の負荷が増大すると、検索処理が遅延する可能性がある。また、上記特許文献1の技術では、過去の検索内容を用いて判断するようになっている。そのため、グラフ構造データを新たに追加する場合には、追加されたグラフ構造データが頻繁に検索されるデータを含むか否かを判定できず、負荷分散のための配置先サーバノードを決定できない、という問題があった。
本発明は、グラフ構造データを複数のサーバノードに分散配置して管理するシステムにおいて、検索処理の性能を向上させることを目的とする。
本発明の一態様は、プロセッサとメモリを備えた管理計算機と、プロセッサとメモリを備えた検索実行計算機と、前記管理計算機と複数の前記検索実行計算機を接続するネットワークとを備えたデータの分散検索システムであって、前記管理計算機は、データ間のデータ内容を接続する関係性を保持し、当該関係性により接続されるデータ群で構成されるグラフ構造データを受け付けて、前記複数の検索実行計算機に分配する分散管理部と、検索条件を受け付けたときには、前記複数の検索実行計算機に前記検索条件を送信し、前記複数の検索実行計算機からの検索結果をそれぞれ受信する分散検索部と、を備え、前記検索実行計算機は、前記管理計算機から受信したグラフ構造データを格納するグラフ構造データ格納部と、前記管理計算機から受信した検索条件で前記グラフ構造データの検索を実行し、検索結果を前記管理計算機へ返信する検索実行部と、を備え、前記管理計算機の分散管理部は、前記関係性が一致するグラフ構造データをグループ化して、当該グループに属するグラフ構造データを分割して前記複数の検索実行計算機に配置し、前記管理計算機の分散検索部は、前記データ間の関係性の検索条件と、前記データ内容の検索条件とを含む検索条件を前記複数の検索実行計算機にそれぞれ送信して、並列して検索を実行させ、前記検索実行計算機の検索実行部は、前記データ間の関係性の検索条件が一致するグラフ構造データを解候補として抽出し、前記解候補として抽出されたグラフ構造データに含まれるデータ内容について、前記データ内容の検索条件で条件判定を行って、前記データ内容が前記データ内容の検索条件に一致するデータを検索結果として取得する。
本発明の一態様によれば、グラフ構造データを複数のサーバノードに分散配置して管理するシステムの検索処理性能を向上させることができる。上記した以外の課題、構成および効果は、以下の実施例の説明により明らかにされる。
本発明の第1の実施例を示し、グラフ構造データの分散管理及び検索を行う計算機システムの一例を示すブロック図である。 本発明の第1の実施例を示し、グラフ構造データ分散管理部の機能部位の一例を示すブロック図である。 本発明の第1の実施例を示し、グラフ構造データ分散検索部の機能部位の一例を示すブロック図である。 本発明の第1の実施例を示し、グラフ構造データ分散管理部で行われるグループ化処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、グラフ構造データ分散管理部で行われる分散配置処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、グループ管理表の一例を示す図である。 本発明の第1の実施例を示し、所属グループ管理表の一例を示す図である。 本発明の第1の実施例を示し、配置管理表の一例を示す図である。 本発明の第2の実施例を示し、グラフ構造データ分散管理部で行われるグループ化処理の一例を示すフローチャートである。 本発明の第3の実施例を示し、検索実行計算機で行われる条件判定対象のデータ内容に接続される関係性を記憶する処理の一例を示すフローチャートである。 本発明の第3の実施例を示し、関係性検索数管理表の一例を示す図である。 本発明の第3の実施例を示し、グラフ構造データ分散管理部が、グループ化に利用する関係性を統計情報から抽出する処理の一例を示すフローチャートである。 本発明の第3の実施例を示し、関係性検索数管理表の一例を示す図である。 本発明の第4の実施例を示し、グラフ構造データ分散管理部が、関係性の出現数を計測する処理の一例を示すフローチャートである。 本発明の第4の実施例を示し、関係性出現数管理表の一例を示す図である。 本発明の第4の実施例を示し、グラフ構造データ分散管理部が、出現頻度の低い関係性を省いてグラフ構造データをグループ化する処理の一例を示すフローチャートである。 本発明の第4の実施例を示し、管理計算機のグラフ構造データ分散管理部の構成を示すブロック図である。 本発明の第5の実施例を示し、グラフ構造データ分散管理部が、検索実行計算機にグラフ構造データを分散配置する処理の一例を示すフローチャートである。 本発明の第6の実施例を示し、管理計算機の構成の一例を示すブロック図である。 本発明の第6の実施例を示し、管理計算機で行われるグラフ構造データのキャパシティ管理処理の一例を示すフローチャートである。 本発明の第8の実施例を示し、グラフ構造データの分散管理及び検索を行う計算機システムの一例を示すブロック図である。 本発明を適用するグラフ構造データの一例を示す図である。 本発明を適用する検索クエリの一例を示す図である。
以下、本発明の一実施形態について図面を用いて詳細に説明する。
本実施例1では、グラフ構造データを対象として、データの内容とデータ間の関係性を条件とする検索処理を実行する場合に、その条件(データの内容とデータ間の関係性の条件)に該当するグラフ構造データを、検索処理を行うグラフ構造データとしてグループ化する。そして、グラフ構造データのグループを複数の検索実行ノードである検索実行計算機に分散して配置し、検索対象とするグラフ構造データ分散管理及び検索システムの例を説明する。本実施例1におけるグラフ構造データの分散配置と分散検索を実現する計算機システムの構成例を図1に示す。図1は、グラフ構造データの分散管理及び検索を行う計算機システムの一例を示すブロック図である。
図1に示すグラフ構造データ分散管理及び検索を行う計算機システムは、グラフ構造データの管理と検索の実行を管理する管理計算機101と、グラフ構造データを保持して検索処理を実行する複数の検索実行計算機102−1〜102−n(nは任意の自然数)と、管理計算機101と検索実行計算機102と、検索要求を発行するクライアント80と、これらの計算機を接続するネットワーク140から構成される。
管理計算機101は、メモリ111と、CPU112と、通信装置113と、ハードディスクなどの補助記憶装置を含む記憶装置114と、入力装置115と、表示装置116とを備えるコンピュータを用いて実現することができる。
複数の検索実行計算機102−1〜102−nもそれぞれ管理計算機101と同様なコンピュータを用いて実現することができる。なお、検索実行計算機102−1〜102−nの総称を符号102で表す。
管理計算機101の入力装置115は、キーボード、マウス、タッチパネルなどで構成されてユーザの指示を入力するための装置であり、プログラム起動などの指示を入力する。表示装置116は、ディスプレイなどであり、管理計算機101による処理の実行状況や実行結果などを表示する。CPU112は、メモリ111に格納される各種プログラムを実行する。通信装置113は、LANなどの通信線を介して、他の装置と各種データやコマンドを交換する。記憶装置114は、管理計算機101が処理を実行するための各種プログラム121やデータ122を保存する。メモリ111は、管理計算機101が処理を実行する各種プログラム121および一時的なデータ122を保持する。
なお、本実施形態では、管理計算機101や検索実行計算機102を物理的に独立させた構成例を用いて説明するが、本発明は、このような構成に限定されるものではなく、各機計算機の全部又は一部を論理的な構成とすることもできる
複数の検索実行計算機102でグラフ構造データを分散して配置する場合、管理計算機101は、蓄積するグラフ構造データを受信すると、データ間の関係性が一致するグラフ構造データをグループ化する。そして、管理計算機101は、当該グループに所属するグラフ構造データが保持される数が最も少ない検索実行計算機102を選択して通信装置113を介してグラフ構造データ70を配信する。検索実行計算機102は、通信装置53を介して受信したグラフ構造データを記憶装置54にグラフ構造データ70として格納する。
グラフ構造データの分散管理と検索を実現するために、管理計算機101で実行するプログラムについて説明する。管理計算機101が持つCPU112は、記憶装置114に格納されたプログラム121とデータ122をメモリ111に読み出して実行する。プログラム121は、グラフ構造データ分散管理部131、グラフ構造データ分散検索部132を構成する。これらのプログラムを用いて、複数の検索実行計算機と通信装置を介してデータを送受信することで、グラフ構造データの分散検索と分散管理を実現する。
CPU112は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、CPU112は、グラフ構造データ分散管理プログラムに従って動作することでグラフ構造データ分散管理部131として機能する。他のプログラムについても同様である。さらに、CPU112は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
グラフ構造データ分散管理部131やグラフ構造データ分散検索部132の各機能を実現するプログラム、テーブル等の情報は、記憶領域114や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
グラフ構造データの分散配置と検索を提供する検索実行計算機102で実行するプログラムについて説明する。検索実行計算機102のCPU52は、記憶装置54に格納されたプログラム71とデータ72をメモリ51に読み出して実行する。プログラム71は、クエリ実行部60を有する。クエリ実行部60は、管理計算機101から受信した検索条件でグラフ構造データ70の検索処理を実行し、検索結果を管理計算機101に返信する。記憶装置54は、プログラム71を格納するのに加え、グラフ構造データを格納する格納部として機能し、さらにグラフ構造データ70のインデックスなどをデータ72として格納する。
なお、クライアント80は、図示しないCPUとメモリ、通信装置、入力装置及び出力装置を備えた計算機であり、検索要求として検索条件(または検索クエリ)を管理計算機101へ送信する。
図2は、グラフ構造データの分散管理を実現する場合に、管理計算機101のメモリ111に読み出して実行するプログラムであるグラフ構造データ分散管理部131に含まれる各機能部を示したブロック図である。
管理計算機101がグラフ構造データ分散管理部として機能するために実行するプログラムには、グラフ構造データ受信部201、関係性抽出部202、グループ生成部203、グループ情報保持部204、データ分類部205、データ配置決定部206、分散ノード情報保持部207、グラフ構造データ配信部208及び後述するテーブルが含まれる。
グラフ構造データ受信部201では、入力装置115や通信装置113を介して管理対象のグラフ構造データを受信する。関係性抽出部202は、前記受信したグラフ構造データに含まれるデータ間の関係性を抽出する。ここで、グラフ構造データとは、例えば、図22で示すように、ある都市名のデータに、位置情報(緯度や経度等)及び所属(国)という関係性を保持し、この関係性によって接続される一連のデータ及びデータ群を示す。図22は、本実施例を適用するグラフ構造データの一例を示す図である。例えば、図22のグラフ構造データは、都市名「YOKOHAMA」のデータ内容が、国名「JAPAN」というデータ内容に「所属」という関係性で接続されることを示す。また、都市名「YOKOHAMA」のデータ内容は「35.47, 139.63」というデータ内容に「緯度、経度」という関係性で接続されることを示す。関係性抽出部202では、データが接続されている関係性を抽出することになる。
グループ生成部203では、前記抽出したデータ間の関係性を構成要素とするグラフ構造データのグループを生成し、前記生成したグループのIDと、各グループの構成要素の関連性をグループ管理表600で管理する。つまり、グループ生成部203は、構成要素が異なる関係性毎にグループとして扱い、新たなグループが生成されると、グループ管理表600に新たなエントリを追加する。グループ管理表600は、グループ情報保持部204によってメモリ111に保持される。図6は、グループ管理表600の一例を示す図である。グループ管理表600は、グラフ構造データのグループの識別子を格納するグループID601と、データ間の関係性を示す構成要素を格納する関係性一覧602から一つのエントリ(またはレコード)が構成される。
データ分類部205は、グループ情報保持部204に保持されるグループ情報(グループ管理表600)を用いて、受信したグラフ構造データに含まれるデータ間の関係性と同じ構成要素を持つグループ(グループID601)を所属グループとして特定し、所属グループ管理表700で管理する。
図7は、所属グループ管理表700の一例を示す図である。所属グループ管理表700は、グラフ構造データの識別子を格納するグラフ構造データID701と、グループ管理表600のグループID61と、を格納するグループID702から一つのエントリ(またはレコード)が構成される。
データ配置決定部206は、所属するグループが特定されたグラフ構造データのグループIDと同一のグループID801に所属するグラフ構造データの数が最も少ない検索実行計算機102を選択する。
つまり、データ配置決定部206は、図8に示す配置管理表800において、図6で特定したグループID601と一致するグループID801の検索実行計算機102−1〜102−nで、グラフ構造データの配置数が最小(若しくは、より小さい)となる値の検索実行計算機を配置数802−1〜802−nから選択する。
そして、データ配置決定部206は、グラフ構造データID701が特定された検索実行計算機102をグラフ構造データの配置先として決定する。
分散ノード情報保持部207は、データ配置決定部206でグラフ構造データの配置先を決定するために用いる所属グループ情報を保持する。図8は、所属グループ情報を保持する配置管理表800の一例を示す図である。配置管理表800は、各検索実行計算機102が保持するグラフ構造データのグループ毎の配置数を所属グループ情報として保持する。
配置管理表800は、各グラフ構造データグループの識別子を格納するグループID801と、図7で対応づけられたグラフ構造データID毎の数を、検索実行計算機102−1〜102−nに対応する配置数802−1〜802−nとして保持する。
グラフ構造データ配信部208は、前記決定した配置先の検索実行計算機102に対して、通信装置53を介し、グラフ構造データ70を配信する。検索実行計算機102は、受信したグラフ構造データ70を記憶装置54へ格納する。
図4は、グラフ構造データ分散管理部131で行われるグループ化処理の一例を示すフローチャートである。グラフ構造データ分散管理部131を構成する機能部のうち、受信したグラフ構造データをグループ化する処理を図4に示すフローチャートに従って説明する。なお、図4の処理では、グラフ構造データ分散管理部131のうち、グラフ構造データ受信部201、関係性抽出部202、グループ生成部203、グループ情報保持部204、データ分類部205を利用する。
まず、管理計算機101内の通信装置113を介して、グラフ構造データ受信部201がグラフ構造データを受信し(ステップ401)、関係性抽出部202に送信する。関係性抽出部202は、受信したグラフ構造データに含まれるデータ間の関係性を全て抽出し、グループ生成部203に送信する(ステップ402)。
グループ生成部203は、グループ情報保持部204からグループ管理表600を取得し、取得した関係性一覧602に含まれる関係性の構成要素の全てと、関係性抽出部202が抽出した関係性の構成要素の全てが完全に一致するグループID601が存在するか否かを判定する。
グループ生成部203は一致するグループID601が存在すれば、受信したグラフ構造データを一意に特定するグラフ構造データID701を生成し、グループID702と1対1で対応するように、所属グループ管理表700に新たなエントリを追加する(ステップ406)。
一方、グループ生成部203は、上記ステップ404の判定で、一致するグループID601が存在しなければステップ405に進む。関係性抽出部202が抽出した関係性の全てを関係性一覧602とするグループと、当該グループを一意に特定するグループID601を生成し、グループ管理表600に新たなエントリ追加する(ステップ405)。
その後、一致するグループID601が存在した場合と同様に、グループ生成部203は、受信したグラフ構造データを一意に特定するグラフ構造データID701を生成し、グラフ構造データのグループID702と1対1で対応するように所属グループ管理表700に新たなエントリを追加する。
以上の処理により、管理計算機101が受信したグラフ構造データは、関係性一覧602が同一であれば、同じグラフ構造データのグループID702が割り当てられて、グループ管理表600と所属グループ管理表700で管理される。
図5は、グラフ構造データ分散管理部131で行われるグラフ構造データの分散配置処理の一例を示すフローチャートである。この処理は、グラフ構造データ分散管理部131を構成する機能部のうち、グラフ構造データ受信部201、グループ情報保持部204、データ分類部205、データ配置決定部206、分散ノード情報保持部207、グラフ構造データ配信部208を用いる。また、この処理は、受信したグラフ構造データについて、所属するグループに含まれるグラフ構造データが均等に分散配置されるように検索実行計算機102に配信する処理である。
まず、グラフ構造データ受信部201がグラフ構造データを受信し、データ分類部205に送信する(ステップ501)。なお、ここで送信するグラフ構造データは、上記図4に示すフローチャートに従ってグラフ構造データグループを生成した後に、グループ生成部203が、同じグラフ構造データをデータ分類部205へ送信してもよい。上記図4の処理で、グラフ構造データグループを生成する場合には、受信したグラフ構造データをメモリや記憶装置、外部の記憶装置などに一時的に保持した後に再利用してもよい。
データ分類部205は、グループ情報保持部204から所属グループ管理表700を参照して、受信したグラフ構造データが所属するグループのグループID702を取得し、当該グループID702とともにグラフ構造データをデータ配置決定部206に送信する(ステップ502)。
データ配置決定部206は、分散ノード情報保持部207より配置管理表800を取得し、受信したグループID702と一致するグループID801が存在するか否かを判定する。グループID702と一致するグループID801が存在する場合、データ配置決定部206は、検索実行計算機102−1、検索実行計算機102−2、・・・検索実行計算機nでの配置数802−1〜802−nのうち最も配置数が少ない検索実行計算機を抽出する。データ配置決定部206は、抽出した検索実行計算機の位置情報とともに、受信したグラフ構造データをグラフ構造データ配信部に送信し、送信先に該当する検索実行計算機102の配置数に1を加算する(ステップ503)。
ここで、最も配置数が少ない検索実行計算機102が複数存在する場合は、それら検索実行計算機102からランダムに1つの検索実行計算機102を抽出してもよいし、最初または最後に見つかった最も配置数が少ない検索実行計算機102を抽出してもよい。なお、検索実行計算機102の位置情報にはネットワーク上での位置情報を示すIPアドレスを用いてもよいし、検索実行計算機を一意に示すIDを位置情報として用いてもよい。
最後に、グラフ構造データ配信部208は通信装置113を介し、データ配置決定部206が決定した位置情報で示される検索実行計算機102へ、受信したグラフ構造データを配信する(ステップ504)。
上記の処理によって、管理計算機101は、受信したグラフ構造データからグループID801を抽出し、配置管理表800上の同一のグループID801で最もデータの配置数が少ない検索実行計算機102が選択され、この検索実行計算機102にグラフ構造データ70が配信される。
管理計算機101は、前述のグラフ構造データ分散管理部として機能することにより各検索実行計算機102にグラフ構造データを分散して蓄積する。そして、管理計算機101は、検索実行計算機102に蓄積したグラフ構造データから任意のグラフ構造データを検索する場合、管理計算機101のメモリで実行するグラフ構造データ分散検索部132によりグラフ構造データ分散検索部として機能する。
図3は、グラフ構造データ分散検索部132の機能部位の一例を示すブロック図である。
グラフ構造データ分散検索部として機能する管理計算機101は、検索クエリ受信及び配信部301が、検索を要求するクライアント80から通信装置113を介して受信した検索条件を各検索実行計算機102へ通信装置113を介して転送する。このとき、管理計算機101は、検索条件の配信先の検索実行計算機102を検索ノード情報保持部302に保存しておく。なお、クライアント80は、検索要求として検索クエリ(以下、検索条件)を発行する。
検索条件を受信した各検索実行計算機102は、クエリ実行部60で検索条件を解析し、各記憶装置54のデータの1つとして保持するインデックスデータを用いて解候補を抽出し、解候補保持部61に抽出した解候補を保持する。その後、検索実行計算機102のクエリ実行部60は解候補から検索条件に一致するグラフ構造データ70を抽出し、抽出したグラフ構造データを管理計算機101に送信する。なお、検索実行計算機102は、検索条件に一致するグラフ構造データが存在しなければ、該当するデータが存在しないことを示す情報を管理計算機101に送信する。
ここで、検索条件は、図23で示すように、データ条件と関係性条件で構成される。図23は、本発明を適用する検索クエリの一例を示す図である。図示の例では、データ条件として関係性条件が「所属」、データ条件が「JAPAN」と、関係性条件が「緯度、経度」、データ条件が「北緯30度以上」という検索条件を示す。この例では、「所属」が「JAPAN」のデータ条件はインデックス検索によって求められるが、「北緯40度以上」というデータ条件については、インデックス検索によって求められた解候補から条件判定を行うことで解を抽出することになる。
管理計算機101の検索結果受信部303は、各検索実行計算機102から返信された検索結果を受信し、検索結果マージ部304に転送する。検索結果マージ部304は、検索ノード情報保持部302に保存された検索条件の配信先の検索実行計算機102の全てから検索結果が返信されるのを待つ。そして、検索結果マージ部304は、全ての検索実行計算機102から返信されたグラフ構造データをひとつのデータにまとめてから、検索条件を発行したクライアント80に検索結果返信部305を介して送信する。
以上のグラフ構造データの分散管理及び検索処理により、データがデータ内容とデータ間の関係性を保持し、関係性で接続される一連のデータ群であるグラフ構造データを対象として、データ間の関係性が同一のグラフ構造データでグループを作り、複数の検索実行計算機102に均等に配置するグラフ構造データの分散管理方法を提供することができる。このように、グラフ構造データを複数の検索実行計算機102で分散して管理することで、同じデータ間の関係性を含むグラフ構造データを検索する場合、複数の検索実行計算機102で検索処理に関わるグラフ構造データ数を均等にすることが可能となって、検索実行計算機102の負荷を均一にすることができる。
なお、上記実施例1では、グラフ構造データの分散配置と分散検索を提供する計算機システムが、管理計算機101と複数の検索実行計算機102で構成された例を示したが、これに限定されるものではない。例えば、多数のプロセッサを備えた物理計算機では、ハイパーバイザやVMM(Virtual Machine Monitor)で複数の仮想マシンを生成し、仮想マシンの一つを管理計算機101とし、他の計算機を検索実行計算機102として稼働させても良い。
検索実行計算機102に分散配置したグラフ構造データ70を検索する場合、各検索実行計算機102のクエリ実行部60は、記憶装置54に保持したインデックスに含まれる辞書データを用いて解候補を抽出する。そして、各クエリ実行部60は、全ての解候補となるグラフ構造データに含まれるデータの内容や、データ間の関係性が検索条件と一致するか否かを判定する。なお、第2の実施例では前記第1の実施例と同様の構成のグラフ構造データの分散管理及び検索を行う計算機システムを用いる。また、記憶装置54のインデックスや後述の辞書データは、例えば、データ72に含まれるものとする。
検索実行計算機102の検索で用いる辞書データの1レコードには、グラフ構造データ70に含まれるデータのデータ内容やデータ間の関係性が、文字列や、数列、または記号列として含まれている。これら複数のレコードを、内容に応じて辞書式に並べることで、クエリ実行部60は検索条件に一致するグラフ構造データのデータ内容の範囲を絞り込み、解候補として抽出できる。
データのレコードに含まれる情報は次の2種類に分類できる。1つは、データの型や分類を示すクラス情報である。例えばURI(Uniform Resource Identifier)や単語で表現される。もう1つは、データ自身の意味を示す情報(以下、インスタンス情報)であり、例えば文章、何らかのスキーマに従った記号の列、数列、数値及びこれらの組合せで表現される。
前者のクラス情報は、検索を実施する場合に対象となるデータを、型や分類により絞り込むために多く利用される。後者のインスタンス情報は、解候補として抽出された後に、抽出されたデータに部分的に含まれる情報や、特定の範囲内にデータが存在するか否かを判定するような条件判定を実施される(あるいは、実施される可能性が高い)。ここで、条件判定とは具体的に、データ内容に含まれる部分文字列や、データ内容に含まれる数字の列が特定の値(データ条件)より大きいか小さいか、あるいは、データに含まれる日時が特定の日時(データ条件)より前か後ろかなどである。
グラフ構造データに含まれるデータ間の関係性は、データの型や分類の一種であるため、前者のクラス情報に属する。データの内容に関しては、型や分類情報が含まれるなら前者のクラス情報に属し、それ以外は後者のインスタンス情報に属する。
例えば、図22で示すグラフ構造データの場合、都市名「YOKOHAMA」のデータ内容と、国名「JAPAN」のデータ内容が、「所属」という分類で接続され、関係性を構築する。「所属」という関係性は、検索を実施する場合に対象となるデータ内容をインデックスによって分類することができる。つまり、「所属」という分類で接続されるデータ内容は、クラス情報となる。
一方、数字列「35.47, 139.63」というデータ内容は、都市名「YOKOHAMA」の座標を示すインスタンス情報である。そして、数字列「35.47, 139.63」というデータ内容は、緯度の範囲あるいは経度の範囲のデータ条件で検索される可能性が高い。本実施例2では、都市名「YOKOHAMA」と接続された数字列「35.47, 139.63」の関係性「緯度、経度」でグラフ構造データをグループ化し、複数の検索実行計算機102に均等に配置することで、条件判定の検索処理の負荷を均等にすることとなる。一方、本実施例2では、関係性が「所属」で都市名と接続された国名はクラス情報であるため、「所属」という関係性ではグループ化しない。これは、関係性が「所属」で接続されるデータ内容はクラス情報のためインデックス検索によって解を抽出でき、その結果、検索実行計算機102に与える負荷の影響が低いためである。
グラフ構造データを検索する場合、検索実行計算機102のクエリ実行部60は予め生成したインデックスを用いて、上記クラス情報のデータ条件に該当するデータ内容を解候補として抽出する。次に、インスタンス情報のデータ条件(及び関係性条件)で関係条件を満たすデータ内容を検索条件で判定することになる。
例えば、図23で示すように、検索条件(データ条件、関係性条件)のうちデータ条件が「JAPAN」という分類を示すデータ内容で、クエリ実行部60はインデックスによって都市名の解候補を抽出する。次に、クエリ実行部60は、関係性条件が「北緯」でデータ条件が「30度以上」の数字列を条件判定で抽出し、検索結果を得る。
分散検索を行う計算機システムにおいては、条件判定を実行する回数を複数の検索実行計算機102で均等に分散することで、各検索実行計算機102での検索処理の負荷を均等に近づけることができる。
条件判定を実行する回数を複数の検索実行計算機102で均等に分散させることを実現するため、本第2の実施例では検索実行時に解候補として抽出されるグラフ構造データを同一グループとする際に、上述した条件判定の対象となるインスタンス情報の内容を接続先とするデータ間の関係性が一致するグラフ構造データを同一グループとする。そして、当該グループに含まれるグラフ構造データを各検索実行計算機102に均等に分散して配置するグラフ構造データ分散管理方法を提供する。つまり、図22のグラフ構造データの例では、数字列「35.47, 139.63」のデータ内容の接続先が都市名となる関係性「緯度、経度」でグラフ構造データをグループ化する。
第2の実施例では、前記第1の実施例の図2に示したグラフ構造データ分散管理部131に含まれるグラフ構造データ受信部201と、関係性抽出部202、グループ生成部203、グループ情報保持部204、データ分類部205を用いて、上記処理を行う。
図9は、管理計算機101が、グラフ構造データを解候補として抽出した後に、条件判定を実施することが多いデータの内容と接続する関係性が一致するグラフ構造データをグループ化する処理の一例を示すフローチャートである。
まず、管理計算機101の通信装置113を介して、グラフ構造データ受信部201がグラフ構造データを受信し、関係性抽出部202に送信する。関係性抽出部は受信したグラフ構造データに複数含まれるデータ間の関係性を抽出し、グループ生成部に送信する。
グループ生成部203は、受信した関係性の接続先となるデータの内容がデータの型や分類を示すクラス情報、例えばURIで示される情報であるか否かを判定する(ステップ903)。グループ生成部203は、クラス情報であればステップ905に進み、クラス情報が存在しなければステップ905に進む。
ステップ904では、グループ生成部203が、ステップ902で抽出されたクラス情報を示すデータ内容に接続される関係性を、前記抽出した関係性から取り除く。すなわち、接続先がインスタンス情報となる関係性のデータ内容を再抽出する。
ステップ905では、グループ生成部203がグループ情報保持部204からグループ管理表600を取得し、その関係性一覧602に含まれる関係性の全てと、抽出した関係性の全てが完全に一致するグラフ構造データグループIDが存在するか否かを判定する。
グループ生成部203は、両者が完全に一致するグラフ構造データグループIDが存在すれば、ステップ907へ進んで、受信したグラフ構造データを一意に特定するグラフ構造データID701を生成し、グループID702と1対1で対応するように所属グループ管理表700に新たなエントリを追加する。
一方、両者が完全に一致するグラフ構造データグループIDが存在しなければ、グループ生成部203は、ステップ906へ進んで、抽出した関係性の全てを関係性一覧602とするグループとそのグループを一意に特定するグループID601を生成し、グループ管理表600に新たなエントリを追加する。
ステップ906でグループ管理表600に新たなエントリを追加した後は、上述したステップ907へ進んで、グループ生成部203は、受信したグラフ構造データを一意に特定するグラフ構造データID701を生成し、グループID702と1対1に対応するように所属グループ管理表700に新たなエントリを追加する。
以上の処理により、管理計算機101は同一の検索条件で解候補を抽出した後に、データ内容の検索条件であるデータ条件による条件判定の対象となるグラフ構造データでグループを生成し、前記グループに含まれるグラフ構造データを複数の検索実行計算機102で均等になるように配置するグラフ構造データ分散管理方法を提供することができる。
このようにグラフ構造データを複数の検索実行計算機102で分散して管理することで、条件判定を実行する回数を複数の検索実行計算機102で均等に分散させることが可能となる。
前記実施例2では、条件判定の対象となるグラフ構造データでグループを作り、前記グループに含まれるグラフ構造データを複数の検索実行計算機102で均等になるように配置した。
実際の検索を実施する場合には、データの型や分類を示すクラス情報ではなく、データ自身の意味を示すインスタンス情報であっても条件判定の対象になりやすいデータ内容となりにくいデータ内容が存在する。そのため、検索実行計算機102で実行する検索の条件(検索クエリ)を記憶しておき、過去の検索条件からより多く条件判定されるデータ内容を接続先とする関係性が同一のグラフ構造データをグループ化する。そして、グループ化したグラフ構造データを複数の検索実行計算機102へ均等に配置することで、分散検索の実行時に抽出する解候補を複数の検索実行計算機102に分散し、検索処理の負荷を分散できる可能性を増大する。
検索処理の負荷分散を実現するため、検索の実行時に解候補として抽出されるグラフ構造データを同一グループとする場合に、過去の検索実行時に条件判定の対象となる頻度が高いデータ内容を接続先とするデータ間の関係性が同一のグラフ構造データを同一グループとする。そして、同一グループに含まれるグラフ構造データを各検索実行計算機102で均等に分散して配置することで、検索処理の負荷分散を実現する。
なお、第3の実施例では前記第1の実施例の図1に示した検索実行計算機102のデータ72に、関係性検索数管理表721を加えたものであり、その他の構成は前記実施例1と同様であり、同一のものに同一の符号を付して説明を省略する。
図13は、検索実行計算機102の記憶装置51に格納されるデータ72の一例を示すブロック図である。データ72には、インデックス722と、関係性の種類毎に検索回数を記録する関係性検索数表721が格納される。
図11は、関係性検索数管理表721の一例を示す図である。関係性検索数表721は、検索対象となった関係性を格納する検索関係性7211と、当該関係性が検索された回数を格納する関係性検索数7212とから一つのエントリが構成される。
図10は、前記実施例1の図1に示した各検索実行計算機102のクエリ実行部60が、条件判定対象となったデータ内容を接続先とする関係性を記憶する処理の一例を示すフローチャートである。
まず、クエリ実行部60は検索クエリを管理計算機101から受信した後に、インデックスを用いて解候補となるグラフ構造データ70を抽出する(ステップ1801)。なお、インデックスは前記実施例2と同様であり、記憶装置54のデータ72に含まれるものとする。
その後、クエリ実行部60は抽出した解候補に対して条件判定が必要か否かを判定する(ステップ1802)。クエリ実行部60は、条件判定の必要があれば、条件判定の対象となるデータ内容を接続先とする関係性を管理計算機101から取得する(ステップ1803)。
続いて、クエリ実行部60は記憶装置54のデータ72に保持された図11で示す関係性検索数管理表721の検索関係性7211に、ステップ1803で取得した関係性が含まれるか否かを判定する(ステップ1804)。クエリ実行部60は、取得した関係性と検索関係性7211に同一の関係性が存在する場合、ステップ806に進む。一方、取得した関係性が、検索関係性7211に存在しなければ、クエリ実行部60は取得した関係性を関係性検索数管理表720の検索関係性7211に追記し、新たな関係性検索数7012を「0」に初期化した後に、ステップ1806に進む(ステップ1805)。
ステップ1806では、クエリ実行部60が、前記取得した関係性に対応する関係性検索数7212に1を加える。その後、条件判定処理を継続する。
なお、この図11に示す関係性検索数管理表721は、各検索実行計算機102の記憶装置54のデータとして保持する例を示したが、所定のタイミングで管理計算機101に送信し、管理計算機101が記憶装置114に保持してもよい。
図12は、グラフ構造データ分散管理部が、グループ化に利用する関係性を統計情報から抽出する処理の一例を示すフローチャートである。図10のフローチャートに従ってクエリ実行部60が生成した関係性検索数管理表721と、図2に示すグラフ構造データ管理部131に含まれるグラフ構造データ受信部201、関係性抽出部202、グループ生成部203、グループ情報保持部204、データ分類部205と、図1に示すグラフ構造データ分散検索部132を用いて、図12のフローチャートの処理が管理計算機101で行われる。
まず、管理計算機101は通信装置113を介して、グラフ構造データ受信部201がグラフ構造データを受信し、関係性抽出部202へ送信する(ステップ1001)。関係性抽出部202は受信したグラフ構造データに複数含まれるデータ間の関係性を抽出し、グループ生成部203に送信する(ステップ1002)。グループ生成部203は、図11に示す関係性検索数管理表721を検索実行計算機102の記憶装置54(または管理計算機101の記憶装置114)から取得する。
その後、グループ生成部203は、グラフ構造データから抽出された関係性について、取得した関係性検索数管理表721に存在し、かつ、所定の閾値以上の関係性出現数を有する関係性を再抽出してからステップ1004に進む。所定の閾値は、例えば1などの一定値、管理計算機101の入力装置115を介して入力された値、関係性検索数管理表721に含まれる関係性出現数の順番で並び替えた場合に、任意の順位の関係性出現数などである。
ステップ1004では、グループ生成部203がグループ情報保持部204からグループ管理表600を取得し、関係性一覧602に含まれる関係性の全てと、抽出した関係の性全てが完全に一致するグラフ構造データグループIDが存在するか否かを判定する。
関係性一覧602と抽出した関係性の全てが一致するグラフ構造データグループIDが存在すれば、ステップ1006へ進む。
一方、関係性一覧602と抽出した関係性の全てが一致しなければ、ステップ1005へ進み、グループ生成部203は、抽出した関係性の全てを関係性一覧602とするグループとそのグループを一意に特定するグループID601を生成しグループ管理表600に新たなエントリを追加する(ステップ1005)。
次に、グループ生成部203は、受信したグラフ構造データを一意に特定するグラフ構造データID701を生成し、グループID702と1対1で対応するように、所属グループ管理表700に新たなエントリを追加する(ステップ1006)。
以上の処理により、過去の検索実行時に解候補として抽出された回数が閾値を超えるデータ内容に接続する関係性が一致するグラフ構造データでグループを作り、複数の検索実行計算機102へ均等に配置するグラフ構造データ分散管理方法を提供することができる。
このようにグラフ構造データを分散して管理することで、過去の検索実行と同様の頻度で前記の関係性が検索条件となった場合に接続先となるデータ内容が複数の検索実行計算機102で均等に解候補として抽出され、各検索実行計算機で検索処理に関わるグラフ構造データを均等にするグラフ構造データ分散検索方法を提供できる。
出現頻度の低いデータ間の関係性が検索条件に指定された場合、解候補は少なくなる。一方、出現頻度の高い関係性が検索条件に指定されると解候補が多い。従って、複数の検索実行計算機102に出現頻度の高い関係性を含むグラフ構造データを均等に分散すると、検索処理負荷の多くが分散し、短縮できる検索時間が大きくなる。実施例4では、検索処理の高速化のために、検索実行時に解候補として抽出されるグラフ構造データを同一グループとする場合に、出現頻度の高い関係性が同一のグラフ構造データを同一グループとし、当該グループに含まれるグラフ構造データを各検索実行計算機102に均等に分散して配置するグラフ構造データ分散管理方法を提供する。
なお、第3の実施例では前記第1の実施例の図2に示した管理計算機101のグラフ構造データ分散管理部131に図15で示す関係性出現数管理表900を加えたものであり、その他の構成は前記実施例1と同様であり、同一のものに同一の符号を付して説明を省略する。
図17は、実施例4における管理計算機101のグラフ構造データ分散管理部131の構成を示すブロック図である。本実施例4のグラフ構造データ分散管理部131には、関係性抽出部202が管理する関係性出現数管理表900が加えられる。その他の構成は前記実施例1の構成と同様である。
図15は、本発明の第4の実施例を示し、関係性出現数管理表900の一例を示す図である。関係性出現数管理表900は、検索対象となった関係性を格納する関係性901と、当該関係性が出現した回数を格納する出現数902から一つのエントリが構成される。
図14は、グラフ構造データ分散管理部131が、関係性の出現数を計測する処理の一例を示すフローチャートである。この処理は、グラフ構造データ分散管理部131に含まれるグラフ構造データ受信部201、関係性抽出部202、を用いて、出現頻度の高い関係性を抽出する。
まず、管理計算機101は通信装置113を介して、グラフ構造データ受信部201がグラフ構造データを受信し、関係性抽出部202へ送信する(ステップ1101)。関係性抽出部202は、受信したグラフ構造データに複数含まれるデータ間の関係性を抽出した後に図15で示した関係性出現数管理表900を記憶装置114から取得する(ステップ1102)。その後、関係性抽出部202は抽出した関係性が全て関係性出現数管理表900に含まれているか否かを判定する(ステップ1103)。
抽出した関係性の全てが関係性出現数管理表900に含まれていれば、ステップ1105に進み、含まれていない関係性が存在すればステップ1104に進む。
ステップ1104では、関係性抽出部202が関係性出現数管理表900に含まれていない関係性を関係性出現数管理表900に追加し、その出現数を「0」で初期化した後に、ステップ1105に進む。ステップ1105では、関係性抽出部202が抽出した関係性と対応する関係性出現数管理表900内の出現数の全てに1を加算する。
以上の処理により生成した図15で示す関係性出現数管理表900と、図17に示すグラフ構造データ分散管理部131に含まれるグラフ構造データ受信部201、関係性抽出部202、グループ生成部203、グループ情報保持部204、データ分類部205を用いて、管理計算機101では出現頻度の低い関係性を省いてグラフ構造データをグループ化する。
図16は、グラフ構造データ分散管理部131が、出現頻度の低い関係性を省いてグラフ構造データをグループ化する処理の一例を示すフローチャートである。
まず、管理計算機101の通信装置113を介して、グラフ構造データ受信部201がグラフ構造データを受信し、関係性抽出部202に送信する(ステップ1301)。関係性抽出部202は受信したグラフ構造データに複数含まれるデータ間の関係性を抽出し、グループ生成部203に送信する(ステップ1302)。
グループ生成部203は、図15に示す関係性出現数管理表900を記憶装置114から読み出し、関係性抽出部202から受信した関係性のうち関係性出現数管理表900において閾値回数以上の出現数を持つ関係性を再抽出してから、ステップ1304に進む(ステップ1303)。この閾値は例えば、管理計算機101の入力装置115を介して入力された値や、関係性出現数管理表900に含まれる出現数の順番で並び替えた場合に、任意の順番までの出現数などである。
ステップ1304では、グループ生成部203が、グループ情報保持部204からグループ管理表600を取得し、その関係性一覧602に含まれる関係性の全てと、関係性抽出部202が再抽出した関係性の全てが完全に一致するグラフ構造データグループIDが存在するか否かを判定する。
関係性抽出部202が再抽出した関係性の全てと、関係性一覧602に含まれる関係性の全てが一致する場合にはステップ1304へ進み、一致しない場合にはステップ1305へ進む。
関係性の全てが一致しなければ、ステップ1305に進んで、グループ生成部203は、関係性抽出部202が再抽出した関係性の全てを、関係性一覧602とするグループと、当該グループを一意に特定するグループID601を生成して、グループ管理表600に新たなエントリを追加する。
その後、グループ生成部203はステップ1306で、受信したグラフ構造データを一意に特定するグラフ構造データID701を生成し、グループID601(701)と1対1に対応するように、所属グループ管理表700に新たなエントリを追加する(ステップ1306)。
以上の処理により、出現頻度の高い関係性でグラフ構造データのグループを生成し、複数の検索実行計算機102へ均等にグラフ構造データを配置することができる。このようにグラフ構造データを分散して管理することで、出現頻度の高い関係性を含む検索条件で多くの解候補を抽出した場合には、各検索実行計算102機に解候補が均等に分散されて、検索処理の高速化を図ることが可能になる。
グラフ構造データに含まれるデータ間の関係性によりグループを生成した場合、複数のグループ間で関係性が部分的に一致する可能性がある。この部分的に一致する関係性により解候補を取得した場合でも複数の検索実行計算機102に解候補が均等に分散し、条件判定処理の負荷を分散できるように、各グループに属するグラフ構造データを配置する必要がある。
なお、第5の実施例の構成は前記実施例1と同様であり、同一のものに同一の符号を付して説明を省略する。
本実施例5では、関係性が部分的に一致する場合でも、条件判定処理の負荷を分散させるため、各検索実行計算機102に保持されるグラフ構造データ70に含まれる関係性の数を図2に示すグラフ構造データ分散管理部131に含まれるグラフ構造データ受信部201、データ分類部205、グループ情報保持部204、データ配置決定部206、分散ノード情報保持部207、グラフ構造データ配信部208を用い、グループ間で部分一致する関係性を考慮して検索実行計算機102にグラフ構造データを分散配置する。
図18は、グラフ構造データ分散管理部131が、検索実行計算機102にグラフ構造データを分散配置する処理の一例を示すフローチャートである。
まず、管理計算機101の通信装置113を介して、グラフ構造データ受信部201がグラフ構造データを受信し、データ分類部205に受信したグラフ構造データを送信する(ステップ1401)。
データ分類部205は、所属グループ管理表700をグループ情報保持部204から取得し、受信したグラフ構造データが所属するグループのグループID702を取得する。その後、データ分類部205は、グループ管理表600から取得したグループID702に対応するグループID601を検索する。データ分類部205は、検索したグループID601に対応する関係性一覧602を抽出する(ステップ1402)。さらに、データ分類部205は、グループ管理表600を用いて、前記抽出した関係性一覧602に含まれる関係性を含むグループのグループIDを関連グループIDとして取得する。
その後、データ分類部205は、グラフ構造データと、そのグラフ構造データが所属するグループのグループID601、関連グループID、をデータ配置決定部206に送信する(ステップ1403)。
データ配置決定部206は、ステップ1404で、配置管理表800を分散ノード情報保持部207から取得する。続いて、データ配置決定部206は、各検索実行計算機102に含まれるグループIDと関連グループIDに所属するグラフ構造データの数を加算し、各検索実行計算機102の関連グラフ構造データ数とする。データ配置決定部206は、この関連グラフ構造データ数が最も少ない検索実行計算機102を抽出し、当該検索実行計算機102の位置情報とともに、前記受信したグラフ構造データをグラフ構造データ配信部208に送信し、ステップ1405に進む。
ここで、最も配置数が少ない検索実行計算機102が複数存在する場合は、それら検索実行計算機102からランダムに1つの検索実行計算機を抽出してもよいし、最初または最後に見つかった最も配置数が少ない検索実行計算機を抽出してもよい。なお、検索実行計算機102の位置情報には上述のようにネットワーク上での位置情報を示すIPアドレスを用いてもよいし、検索実行計算機102を一意に示すIDを位置情報として用いてもよい。
次に、ステップ処理1405では、グラフ構造データ配信部208は通信装置113を介して、受信したグラフ構造データ70を、ステップ1404で選択した位置情報で示される検索実行計算機102へ配信する。
以上の処理により、複数の検索実行計算機102に対して様々な関係性が均等に配置されるグラフ構造データ分散管理方法を提供することができる。このようにグラフ構造データを分散管理することで、同じデータ間の関係性を含むグラフ構造データを検索する場合に、複数のグループに含まれるグラフ構造データが対象となっても複数の検索実行計算機で検索処理に関わるグラフ構造データを均等にするグラフ構造データ分散検索方法を提供することができる。
各検索実行計算機102に分散配置されたグラフ構造データ70を対象に検索を実行する場合、各検索実行計算機102に保持されるグラフ構造データ70に含まれるデータ間の関係性のうち、最も多い関係性が検索条件に指定された場合には解候補が最も多く抽出される。条件判定処理は解候補の全てに対して実施するため、解候補が多くなれば検索処理が完了するまでの時間が増大する。つまり、各検索実行計算機102に含まれるデータ間の関係性の数を取得して、解候補1つを条件判定する時間を乗算することで、分散検索の実行に必要な時間を概算することができ、概算の結果を用いて検索が規定時間内に収まるか否かを判定することができる。
そこで、本実施例6では、管理計算機101が、分散検索の実行に必要な時間を概算し、検索処理が、規定時間内に終わらないと判定すれば、検索実行計算機102を追加して、各検索実行計算機102で抽出される解候補が少なくなるようにグラフ構造データを再配置するものである。
なお、第6の実施例の構成は図19で示すように、前記実施例1の管理計算機101に、関係性数計算部1501とキャパシティプランニング提示部1502を加えたものであり、その他の構成は前記実施例1と同様であり、同一のものに同一の符号を付して説明を省略する。
図19は、管理計算機の構成の一例を示すブロック図である。検索実行計算機102の処理能力の判定に必要なグラフ構造データの配置状況を提示するため、管理計算機101では、図19に示すグラフ構造データキャパシティ管理機能を提供する。管理計算機101は、グラフ構造データ分散管理部131を構成する機能部位である分散ノード情報保持部204及びグループ情報保持部207と関係性数計算部1501を接続し、キャパシティプランニング提示部1502を備える。キャパシティプランニング提示部1502は、各検索実行計算機102に分散配置されたグラフ構造データの検索にかかる時間を概算するための情報を表示し、検索実行計算機102の過不足を提示することができる。
図20は、管理計算機101で行われるグラフ構造データのキャパシティ管理処理の一例を示すフローチャートである。
まず、関係性数計算部1501がグループ情報保持部207からグループ管理表600を取得し、分散ノード情報保持部204から配置管理表800を取得する(ステップ1601)。
次に、関係性数計算部1501は、グループ管理表600の関係性一覧602に含まれる関係性を一つ(例えば名称)抽出し、抽出した関係性を関係性一覧に含むグループのグループID601を取得する。続いて、関係性数計算部1501は、配置管理表800において、対象とする任意の検索実行計算機102の列で、前記取得した複数のグループID601に対応する数を全て足し合わせる(ステップ1602)。これにより、対象とした任意の検索実行計算機102に含まれる関係性の数(一例としては、名称の数)を計算することができる。関係性数計算部1501は、この処理を全ての検索実行計算機102と全ての関係性に対して実行する。
次に、ステップ1603では、関係性数計算部1501が、関係性の数が閾値以上の検索実行計算機102が存在するか否かを判定する。関係性の数が閾値以上の検索実行計算機102が存在する場合はステップ1604に進み、存在しない場合には処理を終了する。上記閾値は、予め定めた定数値としてもよいし、管理計算機101の入力装置115を介して受信した値であってもよい。または、過去の検索実行時間を記憶しておき任意の時間以上の検索実行時間がかかった時の解候補数を閾値としてもよいし、各検索実行計算機において最も出現数の多い関係性の数を閾値としてもよい。
ステップ1604では、キャパシティプランニング提示部1502が、閾値以上である関係性と、各検索実行計算機102に含まれている関係性の数と、当該関係性を含むグループ情報を表示装置116に出力する。
以上の処理により、複数の検索実行計算機102に分散配置されたグラフ構造データを検索する際に、最も解候補が多くなる関係性を条件として含んだ場合の条件判定対象となる解候補の数を取得することができる。この解候補数から条件判定にかかる時間を含む検索時間を概算し、検索時間を短縮するために検索実行計算機102を追加し、各検索実行計算機102に含まれるグラフ構造データを再配置するような判断を促す情報を提示することができる。
W3C(World Wide Web Consortium)により規格化が進んでいるRDF(Resource Description Framework)と呼ばれるデータを表現する枠組みが知られている。RDFは、リソースの関係を示すデータを主語、述語、目的語の3つの要素で表現することを規定する。そして、3つの要素はトリプルと呼ばれる。このトリプルにおいて主語と目的語がデータの内容となり、述語が主語と目的語の関係性を示す。このトリプルに含まれる主語が他のトリプルの目的語となることもでき、複数のトリプルが一連のデータを表現することもできる。このように接続された複数のトリプルから構成されるデータは、本発明の処理対象であるグラフ構造データと同じ構造を持つ。
上記RDFにより表現されるグラフ構造データを検索するクエリ言語としてSPARQL(SPARQL Query Language)がW3Cにより勧告されている。SPARQLによりグラフ構造データを検索する場合にも、RDFの枠組みで規定される主語や目的語で示されるデータ内容や、述語で示される関係性が一致する解候補を抽出した後に、解候補に対して条件判定を実施することができる。
このRDFの枠組みで表現されるグラフ構造データにおいても、上記実施例1から実施例6までの内容と同様に関係性を示す述語が一致するグラフ構造データをグループ化して、複数の検索実行計算機102に分散配置し、検索処理を並列実行することで検索処理の負荷を分散して、検索処理の高速化を図ることができる。
テキストや、音声、画像、動画などの様々なデータを横断的に管理し、検索するには、それぞれに含まれる情報を同一の形式で管理し、同一の枠組みで検索対象とする必要がある。例えば、複数拠点のストレージに保管されたデータをネットワーク経由で、データセンターに自動的に集約するコンテンツクラウドアーキテクチャでは、情報の形式と、検索の枠組みは同一であることが求められる。
情報を同一の形式で管理し、かつ、同一の枠組みで検索することを実現するため、テキストや、音声、画像などの様々な電子化されたコンテンツのデータから、様々な認識処理により抽出したデータに関するデータであるメタデータを用いることができる。なお、認識処理としては、公知または周知の技術を適用することができ、例えば、音声や、画像、動画などの特徴量を求め、特徴量からメタデータを生成する技術などを適宜採用すれば良い。
メタデータには、様々なデータに関する情報が含まれるため、データ内容と関係性で表現できるグラフ構造データを適用することが望ましい。例えば、青い車が描かれた画像データであれば、そのメタデータを示すグラフ構造データは、車というデータ内容を持つデータが、青色というデータ内容を持つデータに対して、色という関係性で接続されることとなる。
このようにして抽出したメタデータを用いてテキストや、音声、画像、動画などの様々なデータを検索するためには、それぞれのデータをメタデータとなるグラフ構造データと関連付けて一元的に管理するためのストレージ装置が必要となる。なお、メタデータに対してテキストや、音声、画像、動画などのデータは、データ容量が大きくストレージ装置にも大容量が求められ、複数のディスク装置を含むストレージ装置が必要となる。
テキストや、音声、画像、動画などの様々なデータを横断的に管理する環境においても、グラフ構造データ形式のメタデータを複数の検索実行計算機102を用いて分散検索することで、より高速なデータの検索を実現することができる。
上記テキストや、音声、画像、動画などの様々なデータのメタデータを本発明の対象にした場合、図21に示すような計算機システムでメタデータの分散配置と、検索の並列実行を実現できる。
図21は、グラフ構造データの分散管理及び検索を行う計算機システムの一例を示すブロック図である。第8の実施例の構成は前記実施例1の図1に示した構成に、ストレージ装置150を加え、さらに、管理計算機101の機能部位としてグラフ構造クエリ変換部1701と、データ分散配置部1702を加えたものである。なお、その他の構成は前記実施例1と同様であり、同一のものに同一の符号を付して説明を省略する。
ストレージ装置150は、CPU151とメモリ152及び通信装置153を備えてネットワーク140を介して管理計算機101、検索実行計算機102及びクライアント80に接続される。ストレージ装置150は複数のディスク装置160−1〜160−nを備えて、メタデータ1610と当該メタデータに対応するテキストや、音声、画像、動画などのデータ1620を格納する。CPU151はメモリ152にロードした制御プログラムを実行して、通信装置153及びディスク装置160−1〜160−nの制御を行う。なお、以下では、ディスク装置160−1〜160−nの総称を符号160で示す。
グラフ構造クエリ変換部1701は、検索を要求するクライアント80から受信した検索要求をグラフ構造データに対応する検索クエリに変換する。データ分散配置部1702は、ストレージ装置150を構成する複数のディスク装置160のI/O負荷を分散するデータの配置を制御する。
グラフ構造クエリ変換部1701では、メタデータ1610を表現するグラフ構造データに含まれる関係性を保持し、クライアント80から受信した検索条件のうちデータ1620の型や分類を示す条件を関係性とする。そして、グラフ構造クエリ変換部1701は、その他の条件をデータ内容としてグラフ構造のクエリを生成して、グラフ構造データの分散検索を実行するグラフ構造データ分散検索部132へ送信する。例えば、関係性に分類される検索条件は「車」、「果物」、「名前」、「年齢」などのカテゴリを示すクラス情報であり、データ内容に分類される検索条件は、頭文字が「あ」の果物、「太郎」を含む名前、「20歳以上」の年齢などのクラス情報の実体を示すインスタンス情報である。グラフ構造クエリ変換部1701は、クラス情報と接続するインスタンス情報をクエリとして生成することができる。
データ分散配置部1702は、複数の検索実行計算機102が同一ディスク装置160にアクセスして、I/O負荷が集中することがないように複数のディスク装置160へのデータ配置を決定する。
具体的には、各検索実行計算機102に占有のディスク装置160を割り当てて、グラフ構造データ分散管理部131が各検索実行計算機102へ配信したグラフ構造データ形式のメタデータ1610とそのメタデータに対応するテキスト、音声、画像、動画などのデータ1620を、各検索実行計算機102が占有するディスク装置160に割り当てる。例えば、各検索実行計算機102とディスク装置160の割り当て関係を1対1とする。
以上の処理により、テキストや、音声、画像、動画などの様々なデータを、認識処理により抽出したグラフ構造データ形式のメタデータを用いて管理する場合に、所望のデータを検索する処理の負荷を複数の検索実行計算機102で分散することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (19)

  1. プロセッサとメモリを備えた管理計算機と、
    プロセッサとメモリを備えた検索実行計算機と、
    前記管理計算機と複数の前記検索実行計算機を接続するネットワークとを備えたデータの分散検索システムであって、
    前記管理計算機は、
    データ内容とデータ内容を接続する関係性を保持し、当該関係性により接続されるデータ群で構成されるグラフ構造データを受け付けて、前記複数の検索実行計算機に分配する分散管理部と、
    検索条件を受け付けたときには、前記複数の検索実行計算機に前記検索条件を送信し、前記複数の検索実行計算機からの検索結果をそれぞれ受信する分散検索部と、を有し、
    前記検索実行計算機は、
    前記管理計算機から受信したグラフ構造データを格納するグラフ構造データ格納部と、
    前記管理計算機から受信した検索条件で前記グラフ構造データの検索を実行し、検索結果を前記管理計算機へ返信する検索実行部と、を有し、
    前記管理計算機の分散管理部は、
    前記関係性が一致するグラフ構造データをグループ化して、当該グループに属するグラフ構造データを分割して前記複数の検索実行計算機に配置し、
    前記管理計算機の分散検索部は、
    前記データ間の関係性の検索条件と、前記データ内容の検索条件とを含む検索条件を前記複数の検索実行計算機にそれぞれ送信して、並列して検索を実行させ、
    前記検索実行計算機の検索実行部は、
    前記データ間の関係性の検索条件が一致するグラフ構造データを解候補として抽出し、前記解候補として抽出されたグラフ構造データに含まれるデータ内容について、前記データ内容の検索条件で条件判定を行って、前記データ内容が前記データ内容の検索条件に一致するデータを検索結果として取得することを特徴とするデータの分散検索システム。
  2. 請求項1に記載のデータの分散検索システムであって、
    前記管理計算機の分散管理部は、
    前記関係性が一致するグラフ構造データをグループ化する際に、前記関係性の接続先となるデータのデータ内容が、前記データ内容の検索条件で条件判定を行うデータ内容であることを特徴とするデータの分散検索システム。
  3. 請求項1に記載のデータの分散検索システムであって、
    前記管理計算機の分散管理部は、
    前記関係性が一致するグラフ構造データをグループ化する際に、前記関係性は、前記関係性の接続先となるデータのデータ内容について過去に実施された検索回数を取得し、前記検索回数が第1の閾値以上のデータ内容のデータに接続された関係性であることを特徴とするデータの分散検索システム。
  4. 請求項1に記載のデータの分散検索システムであって、
    前記管理計算機の分散管理部は、
    前記関係性が一致するグラフ構造データをグループ化する際に、前記複数の検索実行計算機に格納された全てのグラフ構造データに含まれる関係性の数を取得し、前記関係性の数が第2の閾値以上の関係性が一致するグラフ構造データをグループ化することを特徴とするデータの分散検索システム。
  5. 請求項1に記載のデータの分散検索システムであって、
    前記管理計算機の分散管理部は、
    前記グループ化したグラフ構造データを、前記複数の検索実行計算機に分割して配置する際に、配置対象のグラフ構造データに含まれる関係性と1以上一致する関係性を構成要素とするグループに含まれる全てのグラフ構造データ数が配置されている数が最も少ない検索実行計算機を選択し、当該選択した検索実行計算機に前記配置対象のグラフ構造データを格納することを特徴とするデータの分散検索システム。
  6. 請求項1に記載のデータの分散検索システムであって、
    前記管理計算機は、
    前記複数の検索実行計算機毎にグラフ構造データに含まれる関係性の数を取得し、前記関係性の数が第3の閾値以上の検索実行計算機が存在する場合には、検索実行計算機の追加とグラフ構造データの再配置を示す情報出力するプランニング部を、さらに備えたことを特徴とするデータの分散検索システム。
  7. 請求項1に記載のデータの分散検索システムであって、
    前記グラフ構造データをRDF形式で表現されるデータとし、
    前記検索条件が、SPARQLであることを特徴とするデータの分散検索システム。
  8. 請求項1に記載のデータの分散検索システムであって、
    前記グラフ構造データは、
    前記データ内容が、電子化されたコンテンツデータを含み、
    前記関係性と前記関係性により電子化されたコンテンツデータと接続されるデータ内容に、前記電子化されたコンテンツデータから生成されたメタデータを含むことを特徴とするデータの分散検索システム。
  9. 請求項1に記載のデータの分散検索システムであって、
    前記検索実行計算機は、
    前記グラフ構造データ格納部を有するストレージ装置に接続され、前記複数の検索実行計算機には前記ストレージ装置がそれぞれ占有して割り当てられたことを特徴とするデータの分散検索システム。
  10. プロセッサとメモリを備えた管理計算機と、プロセッサとメモリを備えた検索実行計算機と、を備えてグラフ構造データを複数の前記検索実行計算機で検索するデータの分散検索方法であって、
    前記管理計算機が、データ内容とデータ内容とを接続する関係性を保持し、当該関係性により接続されるデータ群で構成されるグラフ構造データを受け付ける第1のステップと、
    前記管理計算機が、前記グラフ構造データを分割して前記複数の検索実行計算機に分配する第2のステップと、
    前記検索実行計算機が、前記管理計算機から受信したグラフ構造データを格納する第3のステップと、
    前記管理計算機が、検索条件を受け付けたときには、前記複数の検索実行計算機に前記検索条件を送信する第4のステップと、
    前記検索実行計算機が、前記管理計算機から受信した検索条件で前記グラフ構造データの検索を実行し、検索結果を前記管理計算機へ返信する第5のステップと、
    前記管理計算機が、前記複数の検索実行計算機からの検索結果をそれぞれ受信する第6のステップと、を含み、
    前記第2のステップは、
    前記関係性が一致するグラフ構造データをグループ化して、当該グループに属するグラフ構造データを分割して前記複数の検索実行計算機に配置し、
    前記第4のステップは、
    前記データ間の関係性の検索条件と、前記データ内容の検索条件とを含む検索条件を前記複数の検索実行計算機にそれぞれ送信して、並列して検索を実行させ、
    前記第5のステップは、
    前記データ間の関係性の検索条件が一致するグラフ構造データを解候補として抽出し、前記解候補として抽出されたグラフ構造データに含まれるデータ内容について、前記データ内容の検索条件で条件判定を行って、前記データ内容が前記データ内容の検索条件に一致するデータを検索結果として取得することを特徴とするデータの分散検索方法。
  11. 請求項10に記載のデータの分散検索方法であって、
    前記第2のステップは、
    前記関係性が一致するグラフ構造データをグループ化する際に、前記関係性の接続先となるデータのデータ内容が、前記データ内容の検索条件で条件判定を行うデータ内容であることを特徴とするデータの分散検索方法。
  12. 請求項10に記載のデータの分散検索方法であって、
    前記第2のステップは、
    前記関係性が一致するグラフ構造データをグループ化する際に、前記関係性は、前記関係性の接続先となるデータのデータ内容について過去に実施された検索回数を取得し、前記検索回数が第1の閾値以上のデータ内容のデータに接続された関係性であることを特徴とするデータの分散検索方法。
  13. 請求項10に記載のデータの分散検索方法であって、
    前記第2のステップは、
    前記関係性が一致するグラフ構造データをグループ化する際に、前記複数の検索実行計算機に格納された全てのグラフ構造データに含まれる関係性の数を取得し、前記関係性の数が第2の閾値以上の関係性が一致するグラフ構造データをグループ化することを特徴とするデータの分散検索方法。
  14. 請求項10に記載のデータの分散検索方法であって、
    前記第2のステップは、
    前記グループ化したグラフ構造データを、前記複数の検索実行計算機に分割して配置する際に、配置対象のグラフ構造データに含まれる関係性と1以上一致する関係性を構成要素とするグループに含まれる全てのグラフ構造データ数が配置されている数が最も少ない検索実行計算機を選択し、当該選択した検索実行計算機に前記配置対象のグラフ構造データを格納することを特徴とするデータの分散検索方法。
  15. 請求項10に記載のデータの分散検索方法であって、
    前記管理計算機が、前記複数の検索実行計算機毎にグラフ構造データに含まれる関係性の数を取得し、前記関係性の数が第3の閾値以上の検索実行計算機が存在する場合には、検索実行計算機の追加とグラフ構造データの再配置を示す情報出力する第6のステップを、さらに含むことを特徴とするデータの分散検索方法。
  16. 請求項10に記載のデータの分散検索方法であって、
    前記グラフ構造データをRDF形式で表現されるデータとし、
    前記検索条件が、SPARQLであることを特徴とするデータの分散検索方法。
  17. 請求項10に記載のデータの分散検索方法であって、
    前記グラフ構造データは、
    前記データ内容が、電子化されたコンテンツデータを含み、
    前記関係性と前記関係性により電子化されたコンテンツデータと接続されるデータ内容に、前記電子化されたコンテンツデータから生成されたメタデータを含むことを特徴とするデータの分散検索方法。
  18. 請求項10に記載のデータの分散検索方法であって、
    前記検索実行計算機は、前記グラフ構造データを格納するストレージ装置に接続され、前記複数の検索実行計算機には前記ストレージ装置がそれぞれ占有して割り当てられたことを特徴とするデータの分散検索方法。
  19. プロセッサとメモリを備えて複数の検索実行計算機に接続された管理計算機であって、
    前記管理計算機は、
    データ内容とデータ内容を接続する関係性を保持し、当該関係性により接続されるデータ群で構成されるグラフ構造データを受け付けて、前記複数の検索実行計算機に分配する分散管理部と、
    検索条件を受け付けたときには、前記複数の検索実行計算機に前記検索条件を送信し、前記複数の検索実行計算機からの検索結果をそれぞれ受信する分散検索部と、を備え、
    前記分散管理部は、
    前記関係性が一致するグラフ構造データをグループ化して、当該グループに属するグラフ構造データを分割して前記複数の検索実行計算機に配置し、
    前記分散検索部は、
    前記データ間の関係性の検索条件と、前記データ内容の検索条件とを含む検索条件を前記複数の検索実行計算機にそれぞれ送信して、並列して検索を実行させることを特徴とする管理計算機。
JP2014516589A 2012-05-24 2012-05-24 データの分散検索システム、データの分散検索方法及び管理計算機 Expired - Fee Related JP5844895B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063335 WO2013175611A1 (ja) 2012-05-24 2012-05-24 データの分散検索システム、データの分散検索方法及び管理計算機

Publications (2)

Publication Number Publication Date
JPWO2013175611A1 true JPWO2013175611A1 (ja) 2016-01-12
JP5844895B2 JP5844895B2 (ja) 2016-01-20

Family

ID=49623342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014516589A Expired - Fee Related JP5844895B2 (ja) 2012-05-24 2012-05-24 データの分散検索システム、データの分散検索方法及び管理計算機

Country Status (4)

Country Link
US (1) US9773061B2 (ja)
JP (1) JP5844895B2 (ja)
DE (1) DE112012006412T5 (ja)
WO (1) WO2013175611A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5873935B2 (ja) * 2013-01-09 2016-03-01 株式会社日立製作所 データベースの管理方法、管理計算機及び記憶媒体
EP2784697A1 (en) * 2013-03-28 2014-10-01 Fujitsu Limited Graph database query handling method and apparatus
US9218438B2 (en) * 2013-08-28 2015-12-22 Bank Of America Corporation Computing architecture for storing a graph database based on temporal aspects of its edges
WO2017052539A1 (en) * 2015-09-23 2017-03-30 Hewlett Packard Enterprise Development Lp Graph database query classification
KR102048648B1 (ko) * 2015-10-30 2019-11-25 콘비다 와이어리스, 엘엘씨 시맨틱 IoT에 대한 Restful 오퍼레이션들
JP7420745B2 (ja) * 2018-06-13 2024-01-23 スタードック ユニオン マルチソース型の相互運用性および/または情報検索の最適化
US10303688B1 (en) 2018-06-13 2019-05-28 Stardog Union System and method for reducing data retrieval delays via prediction-based generation of data subgraphs

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214843A (ja) * 1993-01-20 1994-08-05 Hitachi Ltd データベース管理システムおよび問合せの処理方法
US20050216517A1 (en) * 2004-03-24 2005-09-29 Calpont Corporation Graph processor for a hardware database management system
JP2006195533A (ja) * 2005-01-11 2006-07-27 Kddi Corp インデックスサーバ及びp2pネットワーシステム
JP2007519069A (ja) * 2003-10-09 2007-07-12 ヤフー! インコーポレイテッド スーパーユニットを用いた検索処理のためのシステム及び方法
WO2007079303A2 (en) * 2005-12-29 2007-07-12 Amazon Technologies, Inc. Method and apparatus for a distributed file storage and indexing service
JP2008146412A (ja) * 2006-12-11 2008-06-26 Fujitsu Ltd ネットワーク管理システム、ネットワーク管理プログラムおよびネットワーク管理方法
WO2011067932A1 (ja) * 2009-12-04 2011-06-09 Yanase Takatoshi 表検索装置、表検索方法、及び、表検索システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556988B2 (en) 1993-01-20 2003-04-29 Hitachi, Ltd. Database management apparatus and query operation therefor, including processing plural database operation requests based on key range of hash code
JPH06259478A (ja) 1993-03-02 1994-09-16 Toshiba Corp 分散データベースのデータ再配置方式
AUPR796701A0 (en) * 2001-09-27 2001-10-25 Plugged In Communications Pty Ltd Database query system and method
US7386616B1 (en) * 2003-05-09 2008-06-10 Google Inc. System and method for providing load balanced processing
US8392400B1 (en) 2005-12-29 2013-03-05 Amazon Technologies, Inc. Method and apparatus for stress management in a searchable data service
US8250048B2 (en) * 2009-04-20 2012-08-21 Oracle International Corporation Access control for graph data
US9495477B1 (en) * 2011-04-20 2016-11-15 Google Inc. Data storage in a graph processing system
US9384116B2 (en) * 2011-05-16 2016-07-05 Vmware, Inc. Graphically representing load balance in a computing cluster
US9177069B1 (en) * 2011-05-19 2015-11-03 Google Inc. Determining labels from similar geographic features
US20130066814A1 (en) * 2011-09-12 2013-03-14 Volker Bosch System and Method for Automated Classification of Web pages and Domains

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214843A (ja) * 1993-01-20 1994-08-05 Hitachi Ltd データベース管理システムおよび問合せの処理方法
JP2007519069A (ja) * 2003-10-09 2007-07-12 ヤフー! インコーポレイテッド スーパーユニットを用いた検索処理のためのシステム及び方法
US20050216517A1 (en) * 2004-03-24 2005-09-29 Calpont Corporation Graph processor for a hardware database management system
JP2006195533A (ja) * 2005-01-11 2006-07-27 Kddi Corp インデックスサーバ及びp2pネットワーシステム
WO2007079303A2 (en) * 2005-12-29 2007-07-12 Amazon Technologies, Inc. Method and apparatus for a distributed file storage and indexing service
JP2008146412A (ja) * 2006-12-11 2008-06-26 Fujitsu Ltd ネットワーク管理システム、ネットワーク管理プログラムおよびネットワーク管理方法
WO2011067932A1 (ja) * 2009-12-04 2011-06-09 Yanase Takatoshi 表検索装置、表検索方法、及び、表検索システム

Also Published As

Publication number Publication date
JP5844895B2 (ja) 2016-01-20
US20150120736A1 (en) 2015-04-30
DE112012006412T5 (de) 2015-02-12
WO2013175611A1 (ja) 2013-11-28
US9773061B2 (en) 2017-09-26

Similar Documents

Publication Publication Date Title
JP5844895B2 (ja) データの分散検索システム、データの分散検索方法及び管理計算機
US10169437B2 (en) Triplestore replicator
US8392465B2 (en) Dependency graphs for multiple domains
US10635668B2 (en) Intelligently utilizing non-matching weighted indexes
US10885031B2 (en) Parallelizing SQL user defined transformation functions
US9684671B1 (en) Parallel streaming of external data
US20120296866A1 (en) System and method for implementing on demand cloud database
JP5466210B2 (ja) 表検索装置、表検索方法、及び、表検索システム
WO2021218144A1 (zh) 数据处理方法、装置、计算机设备及存储介质
CN107515879B (zh) 用于文档检索的方法和电子设备
US10134067B2 (en) Autocomplete of searches for data stored in multi-tenant architecture
US9141677B2 (en) Apparatus and method for arranging query
US9734176B2 (en) Index merge ordering
US9514184B2 (en) Systems and methods for a high speed query infrastructure
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
US20150248447A1 (en) Searching entity-key associations using in-memory objects
US9679012B1 (en) Parallel streaming of external data
KR101638048B1 (ko) 맵리듀스를 이용한 sql 질의처리방법
JP7451697B2 (ja) データ記憶方法、装置、クエリ方法、電子機器および可読媒体
US20230267121A1 (en) Query efficiency using merged columns
KR102216886B1 (ko) 동적 스키마를 이용한 질의처리 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
JP6167015B2 (ja) 情報処理システム、管理プログラム、及びインデックス管理方法
JP6064881B2 (ja) 設定支援プログラム、設定支援装置および設定支援方法
US20160309006A1 (en) Non-transitory computer-readable recording medium and distributed processing method
CN113641697A (zh) 人群生成方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
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: 20151104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151119

R150 Certificate of patent or registration of utility model

Ref document number: 5844895

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees