(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2017-504874(P2017-504874A)
(43)【公表日】2017年2月9日
(54)【発明の名称】クラスター化されたインメモリデータベースの設計及び実施
(51)【国際特許分類】
G06F 12/00 20060101AFI20170120BHJP
G06F 17/30 20060101ALI20170120BHJP
【FI】
G06F12/00 545B
G06F12/00 513J
G06F12/00 514M
G06F17/30 160F
G06F17/30 110C
【審査請求】未請求
【予備審査請求】未請求
【全頁数】30
(21)【出願番号】特願2016-536818(P2016-536818)
(86)(22)【出願日】2014年12月2日
(85)【翻訳文提出日】2016年7月27日
(86)【国際出願番号】US2014067999
(87)【国際公開番号】WO2015084760
(87)【国際公開日】20150611
(31)【優先権主張番号】61/910,841
(32)【優先日】2013年12月2日
(33)【優先権主張国】US
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US
(71)【出願人】
【識別番号】516164586
【氏名又は名称】キューベース リミテッド ライアビリティ カンパニー
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100088694
【弁理士】
【氏名又は名称】弟子丸 健
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】ライトナー スコット
(72)【発明者】
【氏名】ウェックザー フランツ
(72)【発明者】
【氏名】バーキー テルフォード
(72)【発明者】
【氏名】ベックネル ジョーゼフ
(72)【発明者】
【氏名】ジマーマン ブライアン
(72)【発明者】
【氏名】ペルソン マッツ
(57)【要約】
分散型インメモリデータベースを管理するためのインメモリデータベースシステム及び方法であって、サーチコンダクタに関連したパーティショナーにより区画化された集合体のデータベースパーティションを記憶し及び配布するように構成されたモジュールを有する1つ以上のノードを備えている。データベース集合体は、スキーマに従って区画化される。パーティション、集合体及びレコードは、システムインターフェイスにより要求されたとき、スキーマに従って、更新され及び除去される。スーパーバイザーは、各ノードから受け取られるハートビート信号に基づいてノード状態を決定する。ユーザは、システムインターフェイスを通してサーチマネージャーへ質問を送る。サーチマネージャーは、フィールド処理技術を適用し、サーチ質問をサーチコンダクタへ転送し、及び結果レコードのセットを分析エージェントへ返送する。分析エージェントは、サーチマネージャーからの候補結果レコードに対して分析処理を遂行する。集合体に関連したパーティショナーを含むサーチコンダクタは、パーティション内のレコードをサーチし及びスコア付けし、次いで、候補結果レコードのセットを、サーチマネージャーからサーチ質問を受け取った後に、返送する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
インメモリデータベースをホストするコンピューティングシステムにおいて、
データベースの1つ以上のレコードの集合体を受け取るのに応答して、その集合体に関連したマシン読み取り可能なスキーマに基づきその集合体を圧縮すべきかどうか決定し、スキーマファイルに基づきその集合体を1つ以上のパーティションへ論理的にパーティショニングし、そしてスキーマファイルに従って1つ以上のパーティションを1つ以上のストレージノードに配布するよう構成されたプロセッサを含むパーティショナーノード、
ストレージノードであって、それに関連したパーティショナーから受け取ったパーティションを記憶する非一時的マシン読み取り可能なメインメモリを含むストレージノード、
システムのクライアント装置からサーチ質問を受け取り、そしてクライアント装置からサーチ質問を受け取るのに応答してそのサーチ質問を1つ以上のサーチコンダクタへサーチコンダクタ質問として送出するプロセッサを含むサーチマネージャーノードであって、そのサーチ質問は、そのサーチ質問を満足する1つ以上のレコードに関連したパラメータを含むマシン読み取り可能なコンピュータファイルであるサーチマネージャーノード、
1つ以上のパーティションに関連したサーチコンダクタノードであって、サーチマネージャーノードからサーチコンダクタ質問を受け取るのに応答して、そのサーチコンダクタ質問により指示される1つ以上のパーティションのセットに質問し、その質問されたパーティションのセットに記憶された1つ以上の候補レコードを識別し、スコアリングアルゴリズムを使用して各々の候補レコードに対する第1スコアを計算し、そしてスレッシュホールド値を満足する1つ以上の候補レコードを含む1つ以上の質問結果のセットをサーチマネージャーへ送出するよう構成されたプロセッサを含むサーチコンダクタノード、及び
サーチマネージャーノードから受け取られる質問結果のセットにおいて識別を行うのに応答して質問結果のセットから導出される1つ以上の結果のセットを含むマシン読み取り可能なコンピュータファイルを自動的に発生するように構成されたプロセッサを含む分析エージェントノード、
を備えたシステム。
【請求項2】
前記分析エージェントノードのプロセッサは、更に、1つ以上のデータリンケージのセットをサーチマネージャーに送出するように構成される、請求項1に記載のシステム。
【請求項3】
前記サーチマネージャーノードのプロセッサは、更に、サーチ質問に従って1つ以上のフィールド処理アルゴリズムを実行するように構成される、請求項1に記載のシステム。
【請求項4】
システムの1つ以上のノードから1つ以上のハートビート信号を受信しそして各ノードから受信したハートビート信号に基づいて1つ以上のノードの各々に対する状態を決定するプロセッサを含むスーパーバイザーノードを更に備え、各々のハートビート信号は、各ノードの状態を指示する、請求項1に記載のシステム。
【請求項5】
各ノードは、そのノードの状態を監視するように構成されたプロセッサを備えた、請求項4に記載のシステム。
【請求項6】
前記スーパーバイザーノードに関連した依存性マネージャーノードであって、非一時的なマシン読み取り可能なストレージ媒体に記憶されたマシン読み取り可能な依存性ツリーファイルを使用して前記スーパーバイザーにより監視されるノードのノード構成状態を監視するプロセッサを含む依存性マネージャーノードを更に備えた、請求項4に記載のシステム。
【請求項7】
前記ハートビート信号の状態は、ノード構成状態を指示し、そして前記スーパーバイザーノードは、ノード構成状態を決定する前記依存性マネージャーが、ノードが誤って構成されたと指示するのに応答して、マシン読み取り可能な構成パッケージファイルを送信する、請求項6に記載のシステム。
【請求項8】
前記サーチコンダクタは、1つ以上の更新された結果レコードのセットの各候補レコードに対するフィールドスコアを計算し、前記更新された結果レコードのセットにおける各候補の第1スコアは、サーチ質問により指示されたスレッシュホールド値を満足し、そしてその更新された結果レコードを前記サーチマネージャーノードへ送信する、請求項1に記載のシステム。
【請求項9】
前記サーチコンダクタは、候補結果レコードのデータがデータ圧縮アルゴリズムに従って圧縮されたと決定するのに応答して、データ圧縮アルゴリズムを使用して前記更新された結果レコードのセットにおける候補レコードに記憶されたデータを解凍する、請求項7に記載のシステム。
【請求項10】
1つ以上の集合体に関連した新たな集合体スキーマファイルを受け取る質問インターフェイスモジュールを実行するプロセッサを含むノードを更に備え、少なくともサーチコンダクタノードは、新たなスキーマファイルに従ってサーチコンダクタに関連した1つ以上の集合体を自動的に再構成するように構成される、請求項1に記載のシステム。
【請求項11】
前記パーティショナーは、スキーマファイルに従って集合体に記憶された各レコードへ独特のレコード識別子を指定し、そして集合体の各レコードに指定された独特のレコード識別子を使用して集合体の各パーティションに関連したマシン読み取り可能なインデックスファイルを発生する、請求項1に記載のシステム。
【請求項12】
前記サーチマネージャーノードは、前記サーチコンダクタノードに1つ以上の新たなレコードのセットを配布し、そして前記サーチコンダクタは、その1つ以上の新たなレコードのセットを受け取るのに応答して、サーチファイルに従って集合体のパーティションに新たなレコードの各々を自動的に追加する、請求項11に記載のシステム。
【請求項13】
前記1つ以上のサーチマネージャーは、独特のレコード識別子のセットに対応する1つ以上のレコードを削除する要求を受け取って、その要求を少なくとも1つのサーチコンダクタへ配布するように更に構成され、そしてサーチコンダクタは、独特のレコード識別子に関連した各レコードを削除についてマークするように更に構成される、請求項11に記載のシステム。
【請求項14】
レコードを削除についてマークすることは、将来のサーチ結果レコードからそのレコードを除外する、請求項13に記載のシステム。
【請求項15】
各レコードに関連した独特のレコード識別子は、独特の識別子番号、集合体バージョン番号、集合体の名前及びパーティションバージョン番号の1つ以上を含む、請求項11に記載のシステム。
【請求項16】
前記サーチマネージャーノードは、1つ以上の新たなレコードを含む1つ以上の新たな集合体のセットを受け取り、そしてスキーマファイルに従って1つ以上のサーチコンダクタノードへ新たな集合体のセットを送出し、及び各サーチコンダクタノードは、1つ以上の新たな集合体を受け取るのに応答して、各サーチコンダクタノードに関連した1つ以上の集合体をスキーマファイルに従って新たな1つ以上のレコードのセットで自動的にポピュレートする、請求項11に記載のシステム。
【請求項17】
サーチマネージャーは、集合体を除去する要求を受け取り、サーチマネージャーのプロセッサは、集合体削除要求をサーチコンダクタへ転送するように構成され、そしてサーチコンダクタは、データベースから集合体を除去するように更に構成される、請求項1に記載のシステム。
【請求項18】
前記サーチマネージャーは、前記サーチコンダクタの各々から前記サーチ結果レコードの各々を非同期で受け取る、請求項1に記載のシステム。
【請求項19】
前記スキーマは、フィールドの名前、フィールドがインデックスされたかどうか、使用する圧縮、及びフィールドに対するデフォールトスコアリングアルゴリズムの1つ以上に従って集合体を記述する、請求項1に記載のシステム。
【請求項20】
前記分析エージェントは、多数のレコードをより完全なレコードへと連結し、そしてサーチ結果レコードに対する隣接レコードに関する情報を決定するように更に構成される、請求項1に記載のシステム。
【請求項21】
前記サーチコンダクタは、前記サーチマネージャーから受け取ったサーチ質問に基づいてサーチ結果レコードのサイズを限定する、請求項1に記載のシステム。
【請求項22】
前記スーパーバイザーは、集合体における1つ以上のレコードを圧縮するようにパーティショナーに命令する、請求項1に記載のシステム。
【請求項23】
前記スーパーバイザーは、ロードされるべき1つ以上の新たなパーティションを決定し、依存性マネージャーからノードに対するノード構成を要求するよう更に構成され、前記スーパーバイザーは、前記依存性マネージャーからノード構成を検索するようにノードのノードマネージャーに命令し、
前記ノードマネージャーは、ノードのメモリリソースを割り当てそして新たなパーティションをロードするように構成され、そして
新たなパーティションに関連したサーチコンダクタは、スキーマに従って、パーティションがロードされたことをスーパーバイザーに通知する、
請求項1に記載のシステム。
【請求項24】
前記分析エージェントノードは、前記サーチマネージャーノードから受け取った質問結果のセットにおいて2つ以上のレコードを相関させるデータリンケージを識別し、そしてそのデータリンケージは、第2レコードに含まれたデータに関連して第1レコードに含まれたデータを相関させる、請求項1に記載のシステム。
【請求項25】
インメモリデータベースをホストするシステムのサーチマネージャーコンピュータにより、データベースに質問するパラメータを含むサーチ質問を表わすバイナリデータを受け取り、そのシステムは、データベースの1つ以上の集合体を記憶するメインメモリを含む1つ以上のストレージノードを備え、各集合体は、1つ以上のレコードを含み、
コンピュータにより、サーチ質問を、そのサーチ質問に従って1つ以上のサーチコンダクタノードへ送出し、そのサーチ質問は、質問されるべき1つ以上の集合体のセットを指示するものであり、
コンピュータにより、1つ以上の分析エージェントノードへ、1つ以上のサーチコンダクタからの受け取りに応答してサーチ質問に基づいてサーチ結果のセットを送出し、そのサーチ結果のセットは、サーチ質問を満足する1つ以上のレコードを含むものであり、サーチ結果のセットの各レコードは、サーチ質問におけるスコアリングアルゴリズムに基づきあるスコアに関連付けされ、及び
1つ以上の分析エージェントノードからの1つ以上のデータリンケージのセットを含むコンピュータファイルをコンピュータが受け取るのに応答して、コンピュータにより、分析エージェントノードから受け取った1つ以上のデータリンケージのセットに従ってサーチ結果のセットの1つ以上のレコードを更新する、
ことを含む、コンピュータで実行される方法。
【請求項26】
前記コンピュータは、各々のサーチコンダクタからサーチ結果のサブセットを非同期で受け取る、請求項25に記載の方法。
【請求項27】
各々のサーチコンダクタノードから受け取ったサーチレコードの各サブセットは、各レコードに対して計算されたスコアに従ってランク付けされる、請求項26に記載の方法。
【請求項28】
質問されるべき集合体のセットに関連した各々のサーチコンダクタは、サーチ質問のパラメータに従ってサーチ結果の1つ以上のレコードを含む1つ以上のサーチ結果のセットを決定する、請求項25に記載の方法。
【請求項29】
コンピュータにより、マシン読み取り可能なスキーマファイルに従ってサーチコンダクタから1つ以上の集合体を受け取り、その集合体の各々は、1つ以上のフィールドを有する1つ以上のレコードのセットを含むものであり、
コンピュータにより、スキーマに従って各集合体をパーティショニングし、
コンピュータにより、スキーマに従ってパーティション内のレコードを圧縮し、及び
コンピュータにより、サーチコンダクタに関連したパーティショナーに対応する各集合体に各パーティションを含ませるように1つ以上の関連サーチコンダクタに各パーティションを配布する、
ことを含む、コンピュータで実行される方法。
【請求項30】
コンピュータにより、前記スキーマに従って各レコードセットにおけるレコードを断片化することを更に含む、請求項29に記載の方法。
【請求項31】
コンピュータにより、フィールドレベル、レコードレベル、パーティションレベル、集合体レベル及びデータベースレベルより成るグループから選択されたレベルにおいてレコードを解凍することを更に含む、請求項29に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、データベースに関するもので、より詳細には、インメモリデータベースに関する。
【背景技術】
【0002】
コンピュータは、膨大な量の情報を記憶しそしてそれら情報にアクセスするのに使用されるパワフルなツールであり、一方、データベースは、ユーザに容易なアクセスを与えながらコンピュータシステムの情報を記憶する共通のメカニズムである。典型的に、データベースは、情報の「フィールド」を有する「レコード」として記憶される情報の編成された集合体である(例えば、レストランのデータベースは、その地域の各レストランのレコードを有し、各レコードは、レストランの特徴、例えば、名前、住所、料理の種類、等を記述するフィールドを含む)。
【0003】
動作中に、データベース管理システムは、ディスクのようなストレージ装置からデータを検索するか又はそこにデータを存続させることをしばしば要求する。不都合なことに、そのようなストレージ装置へのアクセスは、若干低速である。データへのアクセスを加速するため、データベースは、典型的に、最近使用されたデータオブジェクトを記憶するのに割り当てられた比較的高速なメモリ(例えば、ランダムアクセスメモリ(RAM))の一部分である「キャッシュ」又は「バッファキャッシュ」を使用する。メモリは、典型的に、半導体又は他の電気的ストレージ媒体に設けられ、そしてメモリに維持されたデータをディスクに記憶されたデータより迅速にアクセスできるようにする高速データバスを経てCPU(中央処理ユニット)に結合される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
この問題の解消を試みるときに取られる1つの解決策は、メモリのデータベースに全ての情報を記憶することであるが、コンピュータシステムに設けられるメモリは、サイズが限定されているために、大規模なデータベースの取り扱いを試みるときに直面する多数の障害がある。
【0005】
従って、大規模において高い速度でデータを記憶及び検索する改善された方法が要望され続けている。
【課題を解決するための手段】
【0006】
ここに開示されるのは、インメモリデータベースをホストするシステムアーキテクチャーであって、システムの分散型コンピューティングアーキテクチャー内でホストされるインメモリデータベースのデータレコードを記憶、操作及び検索するためのコンピューティング装置及びソフトウェアモジュールの適当な組み合わせを含むものである。システムのコンピューティングハードウェアにより実行されるソフトウェアモジュールは、システムインターフェイス、サーチマネージャー、分析エージェント、サーチコンダクタ、パーティショナー、データ集合体、スーパーバイザー、依存性マネージャーを含み、それらソフトウェアモジュールの適当な組み合わせは、インメモリデータベースをホストするシステムアーキテクチャーに見られるものである。
【0007】
ソフトウェアモジュールを実行するノードは、レコードに記憶されたデータを圧縮し、インメモリ記憶、質問及び検索を大量データセットに対して実現可能にする。圧縮及び解凍は、データベースのほぼどのレベルでも(例えば、データベースレベル、集合レベル、レコードレベル、フィールドレベルでも)行うことができる。ソフトウェアモジュールを実行するノードは、分散型インメモリデータベースにJavaScript(登録商標)オブジェクトノーテーション(JSON)のような複雑なデータ構造体を記憶するためのサポートを与える。インメモリデータベースシステムの実施形態は、システムコンポーネントの分散型アーキテクチャーであると共に、欠陥サービスを監視し且つ回復できるシステムの種々のハードウェア及びソフトウェアモジュールであるために、欠陥許容である。欠陥許容は、とりわけ、システムコンポーネント冗長性、及びシステムコンポーネントの自動回復手順を含む。インメモリデータベースは、スコアリング方法を使用してデータにスコア付けすることによりデータに効果的に且つ効率的に質問する。サーチ結果は、データにスコア付けするのに使用されるスコアリング方法に従ってランク付けされ、それにより、質問を実行するユーザ及び/又はノードは、ある質問から次の質問へ更に調整され且つ状況的に関連した仕方でデータを利用できるようにする。分析エージェントを実行するノードは、データのインメモリデータベース画像に記憶されたレコードに対して種々の進歩型分析を遂行する。あるケースでは、サーチコンダクタによるサーチ質問結果のセットで検索されたレコードに対して分析が行われる。
【0008】
ある実施形態において、インメモリデータベースをホストするコンピューティングシステムは、データベースの1つ以上のレコードの集合体を受け取るのに応答して、その集合体に関連したマシン読み取り可能なスキーマに基づいてその集合体を圧縮すべきかどうか決定し、スキーマファイルに基づいてその集合体を1つ以上のパーティションへ論理的にパーティショニングし、そしてスキーマファイルに従って1つ以上のパーティションを1つ以上のストレージノードに配布するように構成されたプロセッサを含むパーティショナーノード;ストレージノードであって、それに関連したパーティショナーから受け取ったパーティションを記憶する非一時的なマシン読み取り可能なメインメモリを含むストレージノード;システムのクライアント装置からサーチ質問を受け取り、そしてクライアント装置からサーチ質問を受け取るのに応答してそのサーチ質問を1つ以上のサーチコンダクタへサーチコンダクタ質問として送出するプロセッサを含むサーチマネージャーノードであって、そのサーチ質問は、そのサーチ質問を満足する1つ以上のレコードに関連したパラメータを含むマシン読み取り可能なコンピュータファイルであるサーチマネージャーノード;1つ以上のパーティションに関連したサーチコンダクタノードであって、サーチマネージャーノードからサーチコンダクタ質問を受け取るのに応答して、そのサーチコンダクタ質問により指示される1つ以上のパーティションのセットに質問し、その質問されたパーティションのセットに記憶された1つ以上の候補レコードを識別し、スコアリングアルゴリズムを使用して各々の候補レコードに対する第1スコアを計算し、そしてスレッシュホールド値を満足する1つ以上の候補レコードを含む1つ以上の質問結果のセットをサーチマネージャーへ送出するように構成されたプロセッサを含むサーチコンダクタノード;及びサーチマネージャーノードから受け取られる質問結果のセットにおいて2つ以上のレコードを相関するデータリンケージを識別するのに応答して質問結果のセットに対して1つ以上のデータリンケージのセットを含むマシン読み取り可能なコンピュータファイルを自動的に発生するように構成されたプロセッサを含む分析エージェントノードであって、そのデータリンケージは、第2レコードに含まれたデータに関連して第1レコードに含まれたデータを相関させるものである分析エージェントノード;を備えている。
【0009】
別の実施形態において、コンピュータ実施方法は、インメモリデータベースをホストするシステムのサーチマネージャーコンピュータにより、データベースに質問するパラメータを含むサーチ質問を表わすバイナリデータを受け取ることを含み、そのシステムは、データベースの1つ以上の集合体を記憶するメインメモリを含む1つ以上のストレージノードを備え、各集合体は、1つ以上のレコードを含むものであり;コンピュータにより、サーチ質問を、そのサーチ質問に従って1つ以上のサーチコンダクタノードへ送出することを更に含み、そのサーチ質問は、質問されるべき1つ以上の集合体のセットを指示するものであり;コンピュータにより、1つ以上の分析エージェントノードへ、1つ以上のサーチコンダクタからの受け取りに応答してサーチ質問に基づいてサーチ結果のセットを送出することを更に含み、そのサーチ結果のセットは、サーチ質問を満足する1つ以上のレコードを含むものであり、サーチ結果のセットの各レコードは、サーチ質問におけるスコアリングアルゴリズムに基づきあるスコアに関連付けされ;及び1つ以上の分析エージェントノードからの1つ以上のデータリンケージのセットを含むコンピュータファイルをコンピュータが受け取るのに応答して、コンピュータにより、分析エージェントノードから受け取った1つ以上のデータリンケージのセットに従ってサーチ結果のセットの1つ以上のレコードを更新することを更に含む。
【0010】
別の実施形態において、コンピュータ実施方法は、コンピュータにより、スキーマファイルに従ってサーチコンダクタから1つ以上の集合体を受け取ることを含み、その集合体各々は、1つ以上のフィールドを有する1つ以上のレコードのセットを含むものであり;コンピュータにより、スキーマに従って各集合体をパーティショニングし;コンピュータにより、スキーマに従ってパーティション内のレコードを圧縮し;及びコンピュータにより、サーチコンダクタに関連したパーティショナーに対応する各集合体に各パーティションを含ませるように1つ以上の関連サーチコンダクタに各パーティションを配布する;ことを更に含む。
【0011】
本開示の多数の他の観点、特徴は、以下の詳細な説明から明らかとなろう。実施形態の付加的な特徴及び効果は、以下の説明で述べられ、そしてその説明から一部分は明らかであろう。本発明の目的及び他の効果は、以下の説明の規範的実施形態及び特許請求の範囲並びに添付図面に特に指摘された構造により実現され且つ達成される。
【0012】
本開示は、添付図面を参照することにより良く理解することができる。図面中のコンポーネントは、必ずしも、正しい縮尺ではなく、むしろ、本開示の原理を例示する際に強調されている。図中、参照番号は、異なる図面全体を通して対応部分を示している。
【図面の簡単な説明】
【0013】
【
図1】規範的な実施形態によるインメモリデータベースアーキテクチャーを示す。
【
図3】規範的な実施形態によりノードを設定するためのフローチャートである。
【
図4】規範的な実施形態によりノードを設定するモジュールを示すフローチャートである。
【
図5】規範的な実施形態によるサーチマネージャーの機能を記述するフローチャートである。
【
図6】規範的な実施形態によるサーチコンダクタの機能を記述するフローチャートである。
【
図7】規範的な実施形態によるパーティショナーの機能を記述するフローチャートである。
【
図8】規範的な実施形態によりサーチコンダクタにおけるパーティションを設定するプロセスを記述するフローチャートである。
【
図9A】規範的な実施形態による集合体、その更新バージョン及びそれに関連したパーティションを示す。
【
図9B】規範的な実施形態によりサーチマネージャーに接続された第1集合体を含む第1及び第2のサーチノードを示す。
【
図9C】規範的な実施形態により、サーチマネージャーから切断された第1集合体を含む第1のサーチノード及びサーチマネージャーに接続された第1集合体を含む第2のサーチノードを示す。
【
図9D】規範的な実施形態により、更新された集合体をロードする第1のサーチノード、及びサーチマネージャーに接続された第2のサーチノードを示す。
【
図9E】規範的な実施形態により、サーチマネージャーに接続された更新された集合体を含む第1のサーチノード、及びサーチマネージャーから切断された第1集合体を含む第2のサーチノードを示す。
【
図9F】規範的な実施形態により、更新された集合体をロードする第2のサーチノード、及びサーチマネージャーに接続された第1のサーチノードを示す。
【
図9G】規範的な実施形態によりサーチマネージャーに接続された更新された集合体を含む第1及び第2のサーチノードを示す。
【
図10】規範的な実施形態により2つの集合体に対するパーティションを含むサーチノードのクラスターを示す。
【発明を実施するための形態】
【0014】
定義
ここで使用する次の用語は、次のような定義を有する。
【0015】
「ノード」は、1つ以上のモジュールを実行するのに適したコンピュータハードウェア構成を指す。
【0016】
「クラスター」は、1つ以上のノードのセットを指す。
【0017】
「モジュール」は、1つ以上の定義されたタスクを実行するのに適したコンピュータソフトウェアコンポーネントを指す。
【0018】
「集合体」は、レコードの個別セットを指す。
【0019】
「レコード」は、1単位として取り扱われる1つ以上の情報断片を指す。
【0020】
「フィールド」は、レコード内の1つのデータエレメントを指す。
【0021】
「パーティション」は、集合体のレコードの任意に限定された部分を指す。
【0022】
「スキーマ」は、1つ以上のレコードの1つ以上の特性を示すデータを指す。
【0023】
「サーチマネージャー」又は「S.M.」は、少なくとも、1つ以上の質問を受け取りそして1つ以上のサーチ結果を返送するように構成されたモジュールを指す。
【0024】
「分析エージェント」、「分析モジュール」、「A.A.」又は「A.M.」は、少なくとも、1つ以上のレコードを受け取り、その1つ以上のレコードを処理し、そしてそれにより得られる1つ以上の処理されたレコードを返送するように構成されたモジュールを指す。
【0025】
「サーチコンダクタ」又は「S.C.」は、少なくとも、パーティションにおいて1つ以上のサーチ質問を実行し、そしてサーチ結果を1つ以上のサーチマネージャーへ返送するように構成されたモジュールを指す。
【0026】
「ノードマネージャー」又は「N.M.」は、少なくとも、ノードにおいて1つ以上のコマンドを遂行しそして1つ以上のスーパーバイザーと通信するように構成されたモジュールを指す。
【0027】
「スーパーバイザー」は、少なくとも、システムの1つ以上のコンポーネントと通信しそして1つ以上の状態を決定するように構成されたモジュールを指す。
【0028】
「ハートビート」又は「HB」は、少なくとも、1つ以上の状態を1つ以上のスーパーバイザーへ通信する信号を指す。
【0029】
「パーティショナー」は、少なくとも、1つ以上の集合体を1つ以上のパーティションへと分割するように構成されるモジュールを指す。
【0030】
「依存性マネージャー」又は「D.M.」は、少なくとも、1つ以上のモジュール、パーティション又は適当な組み合わせに関連した1つ以上の依存性ツリーをシステムに含ませ;少なくとも、その1つ以上の依存性ツリーの1つ以上の適当な部分に関連した情報の要求を受け取り;及び少なくとも、それらの部分から導出される1つ以上の構成を返送するように構成されたモジュールを指す。
【0031】
「データベース」は、1つ以上の集合体を記憶するのに適し且つ1つ以上の質問を処理するのに適したクラスター及びモジュールの組み合わせを含むシステムを指す。
【0032】
「質問」は、1つ以上の適当なパーティション又はデータベースから情報を検索するための要求を指す
【0033】
「メモリ」は、充分に高い速度で情報を記憶し且つその情報を検索するのに適したハードウェアコンポーネントを指す。
【0034】
「断片化」は、望ましい粒度レベルが達成されるまでレコードをより小さなレコードへと分離することを指す。
【0035】
詳細な説明
添付図面に各々示された好ましい実施形態を以下に詳細に説明する。ここに述べる実施形態は、例示に過ぎない。当業者であれば、ここに述べる特定の実施例について、本発明の範囲内で、多数の別のコンポーネント及び実施形態に置き換えできることが認識されよう。
【0036】
規範的な実施形態は、1つ以上のクラスター及び1つ以上のモジュールを含むインメモリデータベースについて記述するもので、適当なモジュールは、サーチマネージャー、分析エージェント、ノードマネージャー、サーチコンダクタ、スーパーバイザー、依存性マネージャー、及び/又はパーティショナーを含む。
【0037】
システム構成
インメモリデータベースアーキテクチャー
インメモリデータベースとは、データレコードを装置のメインメモリに記憶するように構成されたデータベースマネージメントシステム(DBMS)により制御されるレコードにデータを記憶するデータベースで、データを「ディスク」メモリに記憶する従来のデータベース及びDBMSモジュールとは対照的である。従来のディスクストレージは、装置のハードディスクへの読み取り及び書き込みコマンドをプロセッサ(CPU)が実行することを必要とし、従って、CPUがインストラクションを実行してそのデータに対するメモリ位置を位置付け(即ち、シークし)そして検索した後に、そのメモリ位置のデータである形式のオペレーションを遂行することを必要とする。インメモリデータベースシステムは、メインメモリに配置されそしてそれに応じてアドレスされるデータにアクセスし、それにより、CPUで実行されるインストラクションの数を軽減し、そしてハードディスク上のデータをシークするCPUに関連したシーク時間を排除する。
【0038】
インメモリデータベースは、ノードの各リソース(例えば、メモリ、ディスク、プロセッサ)をアグリゲートするように構成された1つ以上のノードを含むコンピューティングシステムである分散型コンピューティングアーキテクチャーで実施される。ここに述べるように、インメモリデータベースをホストするコンピュータリングシステムの実施形態では、1つ以上のノード間にデータベースのデータレコードが配布されそして記憶される。ある実施形態では、それらのノードは、ノードの「クラスター」へと形成される。又、ある実施形態では、ノードのそれらクラスターは、データベース情報の部分又は「集合体」を記憶する。
【0039】
1つ以上の実施形態において、システムインターフェイスは、1つ以上のサーチ質問を1つ以上のサーチマネージャーに供給する。サーチマネージャーは、実施形態に基づいてある分析技術を遂行しそして結果をサーチマネージャーへ返送する1つ以上の分析エージェントにリンクされる。サーチマネージャーは、1つ以上のサーチコンダクタにリンクされる。サーチコンダクタは、1つ以上のデータパーティションに対してサーチ質問及びデータベース更新にサービスする。1つ以上の実施形態では、パーティショナーを含む1つ以上のノードが1つ以上のデータベース集合体の1つ以上のパーティションを記憶する。集合体のパーティションは、特定のパーティションにパーティショニングされた集合体の1つ以上のレコードを記憶する。従って、集合体の各パーティションを記憶する1つ以上のノードは、インメモリデータベースのレコードを記憶する。
【0040】
パーティショナー圧縮
インメモリデータベースは、情報の「フィールド」を有する「レコード」として記憶される情報の編成された集合体である。例えば、レストランのデータベースは、その地域の各レストランのレコードを有し、各レコードは、レストランの各特徴、例えば、名前、住所、料理の種類、等を記述する異なるフィールドを含む。
【0041】
インメモリデータベースの実施形態は、データを記憶し及びそれにアクセスするために1つ以上のノードのクラスターを使用し、大量のデータは、大量の非一時的マシン読み取り可能なストレージスペースを要求する。圧縮は、情報をホストするのに必要なストレージスペースの量を減少する。
【0042】
ある実施形態では、1つ以上の集合体の1つ以上のレコードの1つ以上のフィールドに使用される圧縮技術を定義する適当なスキーマを使用して1つ以上の集合体が記述される。これら実施形態では、フィールドに記憶される形式のデータを圧縮するのに適した1つ以上の技術を使用してパーティショナーにより1つ以上のフィールドが圧縮される。
【0043】
ある実施形態では、フィールドに記憶される形式のデータは、望ましいデータ粒度が得られるまで集合体がより小さなレコードへと分離される断片化の後に、圧縮される。そのような実施形態では、断片化されたレコードのインデックスは、レコードが集合体の同じオリジナルレコードから生じることをシステムが知り続けるよう保証するためどのレコードからフィールドが断片化されたか識別するのに使用される。断片化されたレコードは、1つ以上の断片化アルゴリズムに従って更に圧縮される。
【0044】
ある実施形態では、1つ以上の集合体は、インメモリデータベースシステムの1つ以上のサーチコンダクタモジュールに関連した1つ以上のパーティショナーモジュールによりインデックスされ及び/又は圧縮される。ある実施形態では、1つ以上の圧縮技術でデータ圧縮が促進される一方、フィールドレベル、レコードレベル又は集合体レベルを含むインメモリデータベースの任意のレベルでデータを解凍及び/又はアクセスできるようにする。
【0045】
システムアーキテクチャー
図1は、システムインターフェイス102、第1のサーチマネージャー110、第nのサーチマネージャー112、第1の分析エージェント120、第nの分析エージェント122、第1のサーチコンダクタ130、第nのサーチコンダクタ132、パーティションデータ140、パーティショナー150、第1の集合体160、第nの集合体162、スーパーバイザー170、及び依存性マネージャー180を有するシステムアーキテクチャー100を示している。
【0046】
1つ以上の実施形態において、システムインターフェイス102は、システムアーキテクチャー100の外部で発生された1つ以上の質問を、第1のサーチマネージャー110を含む少なくとも1つのノード、及び第nのサーチマネージャーを含む第nノードまでを含めた第1のクラスターにおける1つ以上のサーチマネージャー110、112へ供給する。前記第1のクラスターにおける1つ以上のサーチマネージャー110、112は、少なくとも第1の分析エージェント120及び第nの分析エージェント122までを含めた第2のクラスターにおける1つ以上の分析エージェント120、122にリンクされる。
【0047】
第1のクラスターにおけるサーチマネージャー110、120は、第3のクラスターにおける1つ以上のサーチコンダクタ130、132にリンクされる。第3のクラスターは、少なくとも第1のサーチコンダクタ130及び第nのサーチコンダクタ132までを含む。各サーチノード(即ち、サーチマネージャー110、112を実行するノード)は、適当な数のサーチコンダクタ130、132を含む。
【0048】
第3のクラスターにおけるサーチコンダクタ130、132は、パーティションデータ140を記憶する1つ以上のデータベースノードにリンクされる。パーティションデータ140は、少なくとも、1つ以上の集合体を1つ以上のパーティションへと分割するように構成されたモジュールである1つ以上のパーティショナー150を実行するノードにより発生される1つ以上のパーティション(即ち、レコードの個別セットからパーティショニングされたレコードの任意に限定された部分)を含む。各パーティションは、少なくとも第1の集合体160及び第nの集合体162までに対応する。集合体160、162は、それらの集合体160、162のデータを定義する1つ以上のスキーマファイルにより更に説明する。1つ以上のスキーマは、とりわけ、パーティションのレコードにおけるフィールドの名前、前記フィールドがインデックスされたかどうか、どんな圧縮方法が使用されたか、及びどんなスコア付けアルゴリズムがフィールドにとってデフォールトであるかに関する情報を含む。スキーマは、第1の集合体160及び第nの集合体162までをパーティショニングするときにパーティショナー150により使用され、そして集合体において1つ以上の質問を実行するときに第1のサーチマネージャー110及び第nのサーチマネージャー112までによって更に使用される。
【0049】
1つ以上のノードは、システム100の他のノードから送信されたハートビート信号を受信するスーパーバイザー170ソフトウェアモジュールを実行する。スーパーバイザー170は、1つ以上の依存性マネージャー180ソフトウェアモジュールを実行するシステム100のノードからデータを受信するように構成される。依存性マネージャー180ノードは、1つ以上のモジュール、パーティション、又はその適当な組み合わせに関連した依存性ツリーを記憶し、更新し、及び参照し、これは、相対的関係に基づき、ノード、モジュール及びパーティションに対する構成依存性を指示する。スーパーバイザー170は、1つ以上の他のスーパーバイザー170を実行するシステム100の他のノードへ更にリンクされる。あるケースでは、付加的なスーパーバイザー170へのリンクは、システムアーキテクチャー100のクラスター間を交差する。
【0050】
分析エージェント120、122を実行するノードは、システムのコンポーネント(例えば、ソフトウェアモジュール、ノード)間の相互運用性及びデータ転送を容易にする特定のアプリケーションプログラミングインターフェイス(API)に合致する1つ以上の適当な分析モジュールを実行する。分析エージェント120、122は、サーチコンダクタ130、132から返送される総計質問結果を処理するように構成される。例えば、サーチマネージャー110は、サーチ質問を受け取り、次いで、そのサーチマネージャー110が1つ以上のサーチコンダクタ130、132に与えるサーチコンダクタ質問を発生する。サーチコンダクタ130、132がそれらの各々指定されたサーチコンダクタ質問を実行した後に、サーチマネージャー110は、1つ以上のサーチコンダクタ130、132から総計質問結果のセットを受け取る。サーチマネージャー110は、サーチ質問のパラメータにより更なる処理が要求される場合は、それらのサーチ質問結果を更なる処理のために分析エージェント120へ転送する。
【0051】
ある具現化において、サーチコンダクタ130、132から受け取った総計結果の1つ以上のセットを処理するために分析エージェント120に対してサーチ質問が要求されたとサーチマネージャー110が決定した後に、サーチマネージャー110は、データベーススキーマファイル及び/又は1つ以上の分析パラメータを分析エージェント120、122へ送信する。あるケースでは、サーチ質問は、どの分析エージェント120が総計サーチ結果を受け取るべきか識別するためサーチマネージャー110が使用する特定の分析アルゴリズムの遂行を要求する。あるケースでは、総計結果のセットの1つ以上が、圧縮アルゴリズムに従って圧縮されたデータを含む圧縮レコードの形態で分析エージェント120、122へ送信される。あるケースでは、レコードのデータは、レコードのフィールドにおいて圧縮され、そしてあるケースでは、全レコードが圧縮される。
【0052】
分析エージェント120、122を実行するノードは、種々の分析モジュールを有する。非限定例として、他の適当なモジュール及びアルゴリズムの中で、曖昧性除去モジュール、リンクモジュール、及びリンクオンザフライモジュールが含まれる。後で述べるように、リンクモジュール及びリンクオンザフライモジュールは、データベースのレコードに以前に記憶されたデータをリンクするメタデータを識別し、発生し及び/又は記憶する。適当なモジュールは、任意の種類のデータを処理するための分析方法のソフトウェア実施を含む。ある実施形態では、特定の分析モジュール又は分析エージェント120、122は、インメモリデータベースの所定のインスタンス、クラスター、パーティション及び/又はインスタンス生成オブジェクトにしかアクセスできない。
【0053】
分析モジュール
一実施形態によれば、アプリケーションプログラミングインターフェイス(API)は、複数の分析モジュールを生成するのに使用され、そしてここに開示するシステムアーキテクチャーは、システムの分析エージェントによって実行される複数のカスタム化された分析モジュールの追加を許し、これは、オペレーション又はサービスを中断せずにシステムアーキテクチャーに追加され、データの定常ストリームの動的な処理をサポートする。
【0054】
新たに生成される分析モジュールは、簡単なモジュール設定プロセスを使用してデータベースに容易にプラグインされ、そしてデータをどのように管理し、準備しそして記憶するかについて変更を必要とせずに1つ以上の分析方法を総計結果リストに適用するようにリアルタイムでの適用を可能にする。質問に対してレコードをスコア付けするモデル、典型的にサーチコンダクタ機能をサポートするか、或いはレコードセットに対して閉鎖又は他の総計分析機能、典型的に分析エージェントタスクを遂行するために、個別のAPIが構成される。
【0055】
図2は、規範的な実施形態によるノード200の構成を示す図である。
図2のノード200は、ノードマネージャー202ソフトウェアモジュールと、第1のソフトウェアモジュール210及び第nのモジュール212までを含む多数の付加的なソフトウェアモジュール210、212と、を実行するプロセッサを備えている。
【0056】
図2の規範的構成によれば、ノード200は、データネットワークを経て、スーパーバイザーモジュール又はスーパーバイザーノードを実行する第2ノードに通信結合される。又、ノード200によりインストール及び実行されるノードマネージャー202は、スーパーバイザーノードと通信するように構成され、そして第1のモジュール210、第nのモジュール212までを含めて、ノードにインストールされたソフトウェアモジュール210、212を監視するようにも構成される。ノードマネージャー202は、スーパーバイザーから受け取られる適当なコマンドを実行し、そして更に、ノード200、ノードマネージャー202、及び第1のモジュール210から第nのモジュール212までのうちの1つ以上の状態についてレポートする。第1のモジュール210は、1つ以上のスーパーバイザーにリンクされ、そしてノード内の1つ以上の他のモジュールにリンクされ、ここで、ノード内の他のモジュールは、第1のモジュール210とは異なるタイプのものでもよいし、又は第1のモジュール210とであるタイプを共有してもよい。更に、第1のモジュール210は、システム内の1つ以上の他のモジュール、ノード又はクラスターとリンクされてもよい。
【0057】
システムオペレーション
システム設定
図3は、ステップ302、304及び306を有するノード設定300を示すフローチャートである。
【0058】
ステップ302において、ノードに使用するのに適したオペレーティングシステム(OS)がノードにロードされる。1つ以上の実施形態において、OSは、ノードの製造者により自動的にロードされる。1つ以上の他の実施形態では、OSは、1人以上のオペレータによりノードにロードされる。
【0059】
ステップ304において、ノードにロードされたOSと共に使用するのに適したノードマネージャーが1人以上のオペレータにより手動でインストールされ、ここで、インストールは、ノードマネージャーに加えて1つ以上のどの望ましいモジュールをノードにインストールするか決定する。
【0060】
ステップ306において、ノードマネージャーは、スーパーバイザーにハートビートを送出し、ここで、ハートビートは、1つ以上のモジュールをインストールするためのインストラクションをノードが受け取る準備ができたとスーパーバイザーが決定するに充分な情報を含む。
【0061】
図4は、ステップ402、404、406、408、410、412及び414を有するモジュール設定400を示すフローチャートである。
【0062】
ステップ402において、スーパーバイザーは、システムについて定義されたデータ集合体のニーズに基づいて1つ以上のモジュールを1つ以上のノードにインストールすべきことを決定する。次いで、スーパーバイザーは、前記1つ以上のノードにおける1つ以上のノードマネージャーへインストール準備インストラクションを送出する。ある実施形態では、スーパーバイザーは、データ集合体(データシャード又はデータの部分を含む)、及び各集合体に関連した構成設定を追跡する。又、スーパーバイザーは、全ての利用可能なノード及びそれらのリソース(ノードマネージャーにより報告された)も知っている。スーパーバイザーは、システムのニーズを利用可能なノードリソースへマップし(即ち、相関させ)、どのデータシャード又は部分、及びどのシステムサービス又はリソースを各ノードにおいて実行すべきか決定する。次いで、スーパーバイザーは、定義された依存性を含む展開/インストール要求を適当なノードマネージャーへ送出して、クライアント側でインストールを実行することをノードマネージャーに命令する。
【0063】
ステップ404において、ノードマネージャーは、1つ以上の望ましいモジュールを実行するため、コンピュータメモリ、ディスクストレージ及び/又はCPU容量の一部分のようなノードのリソースを割り当てる。1つ以上の実施形態において、リソースの割り当ては、スーパーバイザーがプロセスを中断すると、ある期間の後に終了となる。リソースの非限定例は、コンピュータメモリ、ディスクストレージ及び/又はCPU容量の一部分を含む。要求されるリソースは、スーパーバイザーが所与のノードに指定するデータ及び/又はサービスを使用して決定される。要求されるリソースの詳細は、依存性マネージャーに記憶されるソフトウェア及びデータ依存性を定義するパッケージで特定される。
【0064】
ステップ406において、スーパーバイザーは、ノードにインストールされるべき1つ以上のモジュールに関連した1つ以上の構成パッケージのための要求を依存性マネージャーに送る。
【0065】
ステップ408において、スーパーバイザーは、次いで、構成パッケージを、展開、インストール及びスタートすべく、ノードマネージャーに送る。全てのデータ、ソフトウェア及びメタデータ依存性を含む構成パッケージは、システムアドミニストレータによって定義されそして依存性マネージャーに記憶される。
【0066】
ステップ410において、ノードマネージャーは、適当なサーバーから1つ以上のモジュールを実行するに必要なソフトウェア及びデータを読み取る。適当なソフトウェア及びデータは、1つ以上のレコードをインデックスし、圧縮し、解凍し、スコア付けし、スライスし、接合し、又はその他、処理するのに適したソフトウェア、データ及びメタデータと、システム内の1つ以上の他のコンポーネントと通信し、整合し、監視し、又はその他、相互作用するのに適したソフトウェア及びデータと、を含む。
【0067】
ステップ412において、ノードマネージャーは、ステップ410でフェッチした必要なソフトウェアをインストールする。
【0068】
ステップ414において、ノードマネージャーは、ステップ412でインストールされたソフトウェアを実行する。
【0069】
質問実行
図5は、ステップ502、504、508、510、512、514、518及び520を有し且つチェック506及び516を有する質問処理500を示すフローチャートである。
【0070】
ステップ502において、システムによりホストされるブラウザベースのグラフィックユーザインターフェイス(GUI)又はクライアントコンピュータのネーティブGUIのような外部ソースにより発生されるデータベース質問は、1つ以上のサーチマネージャーにより受け取られる。質問は、ユーザが送信した又はプログラムが自動的に発生したサーチパラメータを含む適当なソフトウェアソースコードを表わすバイナリデータを含む。サーチ質問に使用されるソースコード言語は、オブジェクト又はクラスのような複雑なデータ構造体を取り扱うことのできるデータシリアル化言語である。このデータシリアル化言語は、複雑なデータオブジェクト又は構造体をデジタルビットのシーケンスへと変換するのに使用され、そしてほとんどの装置により管理できるフォーマットで複雑なオブジェクトのデータを与える。ある実施形態では、質問は、スキーマファイル(例えば、XSD)に従って有効とされるか、又はその他、理解されるXML及びHTMLのようなマークアップ言語で表わされる。ある実施形態において、質問は、スキーマファイルに従って有効とされるか、又はその他、理解されるJSONのような複雑なデータ構造体として表わされるか、又はその他、それを通信する。質問は、質問のパラメータを満足する望ましいレコードに対してデータベースをサーチするのに適したインストラクションを含み、そしてある実施形態では、適当なインストラクションは、サーチすべき1つ以上の集合体のリストを含む。
【0071】
ステップ504において、外部ソースから受け取られた質問は、1つ以上のサーチマネージャーにより関連質問言語(例えば、SQL)に従ってパースされ、これにより、適当なノード(例えば、サーチコンダクタ、分析エージェント)で実行されるべきマシン読み取り可能な質問を発生する。あるケースでは、質問のソフトウェア言語に関連したスキーマファイルには、質問発生コードや受け容れられた規格により又はサーチマネージャーに対してネーティブに発生された質問が与えられる。スキーマファイルは、サーチ質問を適切にパースすることについてサーチマネージャーに命令する。例えば、サーチ質問が1つ以上のマークアップ言語(例えば、XML)を使用して準備されるか、又はデータ構造体(例えば、JSON)を含む場合には、XMLコード又はJSONコードの各マークアップタグ内のデータを識別し及び/又は有効とするために、XSDベースのスキーマファイルのようなスキーマファイルがサーチ質問コード又はデータ構造体に関連付けられる。
【0072】
チェック506において、サーチマネージャーは、ユーザが与えた質問又はアプリケーションで発生された質問に基づき、データベース及び/又は質問の1つ以上のフィールドの処理を遂行すべきかどうか決定する。フィールド処理の非限定例は、とりわけ、アドレス標準化、接近境界の決定、及び同意語の解釈を含む。ある実施形態において、システムの自動処理又は手動処理は、サーチプロセス500に関連した他のプロセスが質問のフィールドに含まれた情報の使用を要求するかどうか決定しそして識別する。ある実施形態において、1つ以上のサーチマネージャーは、質問の1つ以上のフィールドのどれが望ましい処理を受けるか自動的に決定しそして識別する。
【0073】
ステップ508において、1つ以上のフィールドのフィールド処理がチェック506で望ましいとシステムが決定した後に、サーチマネージャーは、1つ以上の適当なフィールド処理技術をその望ましいフィールドに適宜に適用する。
【0074】
ステップ510において、サーチマネージャーは、サーチ質問に関連したサーチコンダクタ質問を構成する。ある実施形態では、サーチコンダクタ質問は、スタックベースサーチのような適当なサーチ質問実行プランに従って、システムの種々のノード(例えば、サーチマネージャー、サーチコンダクタ、ストレージノード)により処理されるように構成される。サーチ質問は、適当なバイナリフォーマット又は他のマシン読み取り可能なコンパクトなフォーマットを使用してエンコードされることが明らかである。
【0075】
ステップ512において、1つ以上のサーチマネージャーは、1つ以上のサーチコンダクタ質問を1つ以上のサーチコンダクタへ送出する。ある実施形態において、サーチマネージャーは、どのサーチコンダクタがサーチコンダクタ質問を受け取るべきか自動的に決定し、次いで、そのサーチコンダクタ質問を、サーチコンダクタの識別されたサブセットへ送出する。そのような実施形態では、サーチコンダクタは、データのある集合体に予め関連付けられ、そしてシステムインターフェイスから受け取られるサーチ質問は、質問されるべき集合体を特定する。従って、サーチマネージャーは、1つ以上のサーチ質問において特定された集合体に関連したサーチコンダクタへサーチコンダクタ質問を送出する。
【0076】
ステップ514において、サーチコンダクタは、サーチ結果を、それに対応するサーチマネージャーへ返送する。ある実施形態では、サーチ結果は、同期して返送され、そしてある実施形態では、サーチ結果は、非同期で返送される。同期とは、サーチマネージャーが結果を阻止するか又はオペレーションを停止する一方、特定のサーチコンダクタからサーチコンダクタ結果を待機する実施形態を指す。非同期とは、他の結果を阻止したり又は他のオペレーションを停止したりせずに、サーチマネージャーが多数のサーチコンダクタから同時に即ち並列に結果を受け取ることができる実施形態を指す。サーチコンダクタからサーチ結果を受け取った後、サーチマネージャーは、各サーチコンダクタから受け取った結果を、サーチコンダクタから返送されるレコードスコアに基づいて、1つ以上の結果リストへまとめる。
【0077】
チェック516において、サーチマネージャーは、サーチマネージャーによりコンパイルされたサーチ結果の付加的な分析処理を、サーチ質問における指示に基づいて遂行すべきかどうか決定する。あるケースでは、その指示は、ユーザによりサーチ質問に含まれる。ある実施形態では、システムは、サーチ質問に含まれた情報を使用して分析処理が望ましいかどうか決定する。ある実施形態では、1つ以上のサーチマネージャーは、フィールドが望ましい分析処理を受けるべきであることを自動的に決定する。サーチ質問は、サーチ質問に関連した他のデータ(例えば、ストリング、オブジェクト)と共にインストラクションを搬送できるソフトウェアプログラミング言語で構成される。マークアップ言語のようなあるプログラミング言語は、コードに埋め込まれたメタデータタグを使用して、分析を行うべきかどうかのブール値を指示するフィールド、又は実行されるべき特定の分析モジュール及び/又はその特定の分析モジュールをホストする分析エージェントノードを指示するより複雑なユーザ定義フィールド、のような種々の形式のデータを識別する。JavaScript(登録商標)又はPHPのようなあるプログラミング言語は、分析を行うべきかどうか識別するコードを含む記憶されたコンピュータファイルを参照し、これは、実行されるべき特定の分析モジュール及び/又はその特定の分析モジュールをホストする分析エージェントノードを指示するより複雑なユーザ定義フィールドである。
【0078】
処理が望まれることをシステムがチェック516で決定した場合には、ステップ518において、1つ以上の分析エージェントが1つ以上の適当な処理技術を1つ以上の結果リストに適用する。1つ以上の実施形態において、適当な技術は、とりわけ、多数のレコードをより完全なレコードへとロールアップし、結果に対して1つ以上の分析を遂行し、及び/又はレコード間の関係に関する情報を決定することを含む。次いで、分析エージェントは、1つ以上の処理済結果リストを1つ以上のサーチマネージャーへ返送する。
【0079】
ステップ520において、1つ以上のサーチマネージャーは、1つ以上の結果リストを解凍し、そして質問を開始したシステムへそれを返送する。
【0080】
図6は、ステップ602、604、608、610及び612を有し且つチェック606を有するサーチコンダクタ機能600を示すフローチャートである。
【0081】
ステップ602において、サーチマネージャーは、1つ以上のサーチコンダクタに質問を送出する。
【0082】
ステップ604において、サーチコンダクタは、そのロードされたパーティションに対して質問を実行し、候補結果セットを発生する。1つ以上の実施形態において、ステップ604は、1つ以上のインデックスサーチを含む。1つ以上の実施形態において、サーチコンダクタは、1つ以上のスキーマの情報を使用して、質問を実行する。
【0083】
チェック606において、サーチコンダクタは、特定の質問に基づき、サーチコンダクタ質問においてスコア付けが要求されたかどうか決定する。スコア付けは、サーチマネージャーにより受け取られたサーチ質問に指示される。
【0084】
スコア付けが要求された場合に、サーチコンダクタは、ステップ608において、候補結果セットをスコア付けする。デフォールトスコアスレッシュホールドは、スキーマにおいて定義されるか、又はステップ602でサーチマネージャーにより送られたサーチコンダクタ質問に含まれる。1つ以上の実施形態において、初期のスコア付けは、フィールド特有のスコア付けアルゴリズムでフィールドレベルにおいてサーチコンダクタによって行われ、そこには、1つ以上の他のスコア付けアルゴリズムで無効化されるデフォールトがある。スコア付けアルゴリズムは、サーチ質問及び/又はサーチコンダクタ質問において定義されるか、又はその他、識別され、そしてサーチコンダクタにより適宜遂行される。サーチコンダクタは、それらの個々のフィールドスコアに基づいて複合スコアをレコードに与える。ある実施形態では、1つ以上のフィールドスコア又は他の総計スコアを総計することによりスコアを計算できる1つ以上の総計スコア付け方法がサーチコンダクタにより適用される。
【0085】
ステップ610において、サーチコンダクタは、次いで、スコアを使用して、候補結果セットにおける残りのレコードを分類する。
【0086】
チェック612において、サーチコンダクタは、候補結果セットをサーチマネージャーへ返送し、ここで、返送される結果の数は、ステップ602でサーチマネージャーにより送られた質問において要求されたサイズに限定される。
【0087】
集合体パーティショニング及びパーティションローディング
1つ以上の実施形態において、1つ以上の適当なインメモリデータベースにデータが追加される。
【0088】
第1の実施形態において、1つ以上のパーティショナーを使用してデータが大量にロードされる。
【0089】
図7は、ステップ702、704、706、710及び712を有し且つチェック708を遂行する集合体パーティショニング700を示すフローチャートである。
【0090】
ステップ702において、1つ以上の集合体が1つ以上のパーティショナーへ供給される。それら集合体は、1つ以上のスキーマに関連して供給され、1つ以上のパーティショナーが、1つ以上の集合体のレコードをどのように操作するか理解できるようにする。
【0091】
ステップ704において、1つ以上の集合体のレコードが断片化される。
【0092】
チェック708において、システムは、所与のデータ集合体についてスキーマをチェックし、そしてパーティション内のフィールドをパーティショナーによりインデックスすべきかどうか決定する。インデックスは、日付インデックス又は曖昧インデックス(例えば、表音)のように、既知のデータベースに使用されるフィールドインデックスの適当な例である。
【0093】
パーティショナーがパーティション内のフィールドをインデックスすべきであるとシステムがチェック708において決定した場合には、ステップ710において、パーティショナーは、スキーマにおけるインデックス定義に基づいてパーティションをインデックスする。
【0094】
チェック712において、システムは、所与のデータ集合体に対してスキーマをチェックし、そしてパーティショナーによりパーティションを圧縮すべきかどうか決定する。
【0095】
パーティショナーがパーティションを圧縮すべきであるとシステムがチェック712において決定した場合には、ステップ714において、パーティショナーは、スキーマで特定された圧縮方法を使用してフィールド及びレコードを圧縮し、これは、パーティションを充分に圧縮しながら、更に、フィールドレベルでの解凍を許すのに適した技術である。
【0096】
ステップ716において、システムは、1つ以上のサーチコンダクタにパーティションを配布するのに適したパーティションを記憶する。
【0097】
集合体パーティショニング700は、大きなデータ集合体の最初のロード、再ロード又は置き換えを生成する。パーティショナーは、集合体内の各レコードに独特のレコードIDを指定し、パーティショニングされた集合体にバージョン番号を指定し、そして更に、要求された集合体スキーマを、1つ以上のSM及び1つ以上のSCにより使用するためのパーティションセットバージョンに関連付ける。
【0098】
第2の実施形態では、適当な質問インターフェイスを含む1つ以上の適当なインターフェイスを通して新たなレコードが集合体に追加される。質問インターフェイスは、質問を経ての結果セットの返送をサポートするが、集合体バージョンに関連した集合体スキーマの返送もサポートする。更に、サーチインターフェイスは、1人以上のユーザがその集合体スキーマを使用して、新たなレコードを、サーチインターフェイスを通してサーチマネージャーへ提出することにより集合体に追加できるようにする。次いで、サーチマネージャーは、集合体に追加するために適当なサーチコンダクタへ新たなレコードを配布する。ある実施形態では、サーチマネージャーは、所与のパーティションの複数のコピーにわたって最終的な一貫性を保証し、そして不揮発性ストレージに対するデータ耐久性を保証して、システム欠陥の後にデータが利用できることを確保する。
【0099】
1つ以上の実施形態において、レコードは、同様の仕方で削除される。質問からの結果セットは、レコードごとに不透明な独特のIDを含む。この独特のIDは、必要な情報をエンコードして、集合体の所与のバージョンにおける特定のレコードを独特に識別し、そしてとりわけ、集合体の名前、パーティションセットのバージョン、及び独特のレコードID、の1つ以上を含む。適当な許可で、質問インターフェイスは、独特のレコードIDに対応するレコードを削除する要求を受け容れる。このレコードは、即座に物理的に削除できず、削除についてマークされ、そして将来の返答セットにはもはや含まれない。
【0100】
1つ以上の他の実施形態において、新たな集合体スキーマ又は削除要求が質問インターフェイスへ提出されて、各々、新たな集合体を生成するか又は既存の集合体を除去する。このように生成される新たな集合体は、空でスタートし、上述したメカニズムを含む適当なメカニズムを使用してレコードを追加することができる。
【0101】
図8は、ステップ802、804、806、808、812、814、816、818及び820を有し、及びチェック810を遂行するパーティションローディング800を示すフローチャートである。
【0102】
ステップ802において、スーパーバイザーは、1つ以上のパーティションを1つ以上のサーチコンダクタへロードすべきであることを決定する。
【0103】
ステップ804において、スーパーバイザーは、依存性マネージャーへ構成要求を送出し、そして依存性マネージャーは、1つ以上のサーチコンダクタにロードされるべき1つ以上のパーティションに関連した1つ以上の構成パッケージを返送する。
【0104】
ステップ806において、スーパーバイザーは、どのサーチコンダクタにパーティションをロードすべきか決定する。1つ以上の実施形態において、スーパーバイザーは、望ましいフェイルオーバー能力を与えるために1つ以上のどのサーチコンダクタを使用するか決定する。1つ以上の他の実施形態では、スーパーバイザーは、1つ以上のクラスターが知覚するワークロードを良好に均すために1つ以上のどのサーチコンダクタを使用するか決定する。
【0105】
ステップ808において、スーパーバイザーは、1つ以上のサーチコンダクタを含むノードに関連した1つ以上のノードマネージャーへコマンドを送信する。1つ以上の実施形態では、コマンドは、1つ以上のサーチコンダクタにパーティションをロードするためにスーパーバイザーからの更に別のインストラクションを待機するように1つ以上のノードマネージャーに通知する。別の実施形態では、コマンドは、1つ以上のサーチコンダクタへロードされるべき1つ以上のパーティションに関連した1つ以上の構成パッケージを含む。1つ以上の他の実施形態では、コマンドは、新たなパーティションをメモリにロードするために前記1つ以上のサーチコンダクタを準備するインストラクションを含む。
【0106】
ステップ810において、1つ以上のノードマネージャーは、パーティションをロードするのに要求されるノードリソースを割り当てる。
【0107】
チェック812において、1つ以上のノードマネージャーは、1つ以上のパーティションをロードするために1つ以上のソフトウェア又はデータ更新が要求されるかどうか決定する。
【0108】
1つ以上のソフトウェア又はデータ更新が要求されることを1つ以上のノードマネージャーが決定した場合に、ステップ814において、1つ以上のノードマネージャーは、次いで、前記1つ以上のソフトウェア更新を記憶し及び配布するのに適した1つ以上のノードから前記1つ以上のソフトウェア又はデータ更新を検索する。1つ以上のノードマネージャーは、次いで、1つ以上の検索されたソフトウェア又はデータ更新をインストールするように進む。
【0109】
ステップ816において、1つ以上のノードマネージャーは、1つ以上のパーティションを記憶し及び配布するのに適した1つ以上のノードから前記1つ以上のパーティションを検索する。1つ以上の実施形態において、検索されたパーティションは、以前にインデックス及び記憶されており、そして検索されると、1つ以上のサーチコンダクタに関連したメモリにロードされる。別の実施形態では、検索されたパーティションは、検索される前にインデックス又は圧縮されておらず、そして1つ以上のサーチコンダクタに関連したメモリへロードされる前に1つ以上のサーチコンダクタによりインデックス又は圧縮される。
【0110】
ステップ818において、1つ以上のサーチコンダクタは、ハートビートをスーパーバイザーへ送出し、そしてスーパーバイザーは、1つ以上のサーチコンダクタをシステムに使用する準備ができたことを決定する。
【0111】
ステップ820において、スーパーバイザーは、1つ以上のサーチコンダクタがサーチ質問を受け取る準備ができたことを1つ以上のサーチマネージャーに通知する。
【0112】
図9Aは、集合体902と、集合体910で示された集合体902の更新とを示す。集合体902は、少なくとも、第1のパーティション904、及び第nのパーティション906まで、に分割され、そして集合体910は、少なくとも、第1のパーティション912、及び第nのパーティション914まで、に分割される。
【0113】
図9Bは、第1のパーティション904及び第nのパーティション906までの第1セットを有する第1のサーチノード920と、第1のパーティション904及び第nのパーティション906までの第2セットを有する第2のサーチノード930を示し、第1のサーチノード920及び第2のサーチノード930は、両方とも、少なくとも1つのサーチマネージャー940に接続される。更に、第1のサーチノード920、第2のサーチノード930及びサーチマネージャー940は、1つ以上のスーパーバイザー950に接続される。
【0114】
図9Cは、スーパーバイザー950からのコマンドの結果としてサーチマネージャー940から切断された第1のサーチノード920を示し、一方、第2のサーチノード930は、依然、接続を維持している。1つ以上の実施形態において、これは、第1のサーチノード920がアップグレードされたときサーチマネージャー940が集合体902内のレコードのサーチを実行できるようにする。
【0115】
図9Dは、第1のサーチノード920が集合体910を含むようにアップグレードされたところを示す。
【0116】
図9Eは、スーパーバイザー950からのコマンドの結果として第1のパーティション912及び第nのパーティション914までがサーチマネージャー940に接続された第1のサーチノード920を示す。スーパーバイザー950は、次いで、サーチマネージャー940から第2のサーチノード930を切断するコマンドを送出する。1つ以上の実施形態において、これは、サーチマネージャー940が集合体910のレコードに対してサーチを実行するのを許す。
【0117】
図9Fは、集合体910を含むように更新される第2のサーチノード930を示す。
【0118】
図9Gは、第1のパーティション912及び第nのパーティション914までの第1セットを有する第1のサーチノード920と、サーチマネージャー940に接続された第1のパーティション912及び第nのパーティション914までの第2セットを有する第2のサーチノード930を示し、第2のサーチノード930とサーチマネージャー940との間の接続は、スーパーバイザー950からのコマンドの結果として確立されている。これは、サーチマネージャー940が第1のサーチノード920又は第2のサーチノード930のいずれかにおける集合体910のレコードのサーチを実行できるようにする。
【0119】
図10は、第1のサーチノード1002、第2のサーチノード1004、第3のサーチノード1006、第4のサーチノード1008、第1の集合体に対する第1のパーティション1010、第2のパーティション1012、第3のパーティション1014、及び第4のパーティション1016、並びに第2の集合体に対する第1のパーティション1020、第2のパーティション1022、第3のパーティション1024、及び第4のパーティション1026を有するサーチノードクラスターを示す。
【0120】
サーチノードクラスター1000は、望ましいパーティション冗長性レベルを与えるように構成され、1つ以上のサーチノードを適宜にシステムに追加したり又はシステムから除去したりすることができる。更に、1つ以上のサーチノードに含まれるパーティションは、時間と共に変化し、そしてパーティションローディング800と同様のプロセスに従ってサーチノードのノードマネージャーによりロード又はアンロードされる。サーチノードクラスター1000におけるパーティションを更新、又はその他、変更するとき、
図9A、9B、9C、9D、9E、9F及び9Gに示すものと同様の方法が使用される。
【0121】
例#1は、サーチマネージャー、分析エージェント、各ノードのノードマネージャー、2つのサーチコンダクタを各々有する8つのサーチノード、スーパーバイザー、バックアップスーパーバイザー、依存性マネージャー、バックアップ依存性マネージャー、並びにパーティションを記憶及び配布することのできるノードのパーティショナーを含むインメモリデータベースシステムである(ここで、ノードは、各々4つのパーティションに分割される2つの集合体、即ち集合体1及び集合体2のための情報を含む)。集合体1のレコードに対するサーチ質問がデータベースにより受け取られると、サーチマネージャーは、集合体1に関連したパーティショナーを有する全てのサーチコンダクタに質問を送出する。サーチコンダクタは、非同期で働いて、各圧縮されたレコードをサーチ及びスコア付けし、質問で定義されたスレッシュホールドより上のスコアを有する圧縮された結果のリストを作成し、結果のリストを分類し、そして圧縮されたレコードのリストをサーチマネージャーへ返送する。この例では、サーチコンダクタは、スコア付けされるべきフィールドのみを解凍する。サーチマネージャーは、各サーチコンダクタから結果のリストを受け取って総計し、質問結果をコンパイルし、そしてそれを更なる処理のために分析エージェントへ送出する。分析エージェントは、充分に関連していると決定したレコードを結合し、そしてその処理された結果リストをサーチマネージャーへ返送する。次いで、サーチマネージャーは、システムインターフェイスを通して最終結果を返送する。
【0122】
例#2は、セマンティック質問を遂行し、そしてデータベースにおいて明確にリンクされていないデータに対するリンクされたデータ結果を返送することのできるインメモリデータベースである。データ又はレコードのリンク動作は、分析エージェントで実施される総計分析機能の一例に過ぎない。この例は、非リンクデータにおいてデータリンケージを発見しそしてセマンティック質問を遂行してセマンティック結果を返送することのできる分析エージェントを伴うインメモリデータベースである。非リンクデータとは、他のデータソースからのデータに対して明確なキー又は他の明確なリンクをもたない異種データソースからのデータである。この例では、プラグ型分析モジュールが開発されて分析エージェントにおいて展開され、データコンテンツそれ自体に基づいて異種データソースにわたりデータリンケージを発見し/見出すことができる。セマンティックサーチ質問が実行されるとき、非排他的サーチを使用してサーチコンダクタを経て全ての当該レコードが検索され、そして分析エージェントへ送られ、そこで、分析エージェントモジュールの特定の実施及び指定の信頼性スコアに基づいてレコードリンケージが発見される。それらの動的にリンクされたレコードは、RDF/XML又は他のセマンティックデータ表現のようなセマンティックマークアップを使用して表わされ、そしてユーザに返送される。セマンティックサーチに対するこの解決策は、同じ非リンクデータを使用して異なる質問に対して異なる仕方で非リンクデータをリンクできるようにする。
【0123】
例#3は、グラフ質問を遂行し、そしてデータベースにおいて明確にリンクされず又はグラフ形態で表されないデータに対してリンクされたデータ結果を返送することのできるインメモリデータベースである。この例は、非リンクデータにおいてデータリンケージを発見しそしてグラフ質問を遂行してグラフ質問結果を返送することのできる分析エージェントを伴うインメモリデータベースである。グラフサーチ質問が実行されるときに、全ての関連レコードは、非排他的サーチを使用してサーチコンダクタを経て検索され、そして分析エージェントへ送られ、そこで、レコードリンケージが発見され、そして信頼性スコアが指定される。それらの動的にリンクされたレコードは、RDFグラフ、プロパティグラフ、又は他のグラフデータ表現のようなグラフ形態で表わされ、そしてユーザに返送される。グラフサーチに対するこの解決策は、同じ非リンクデータを使用して異なる質問に対して異なる仕方で非リンクデータをリンクできるようにする。
【0124】
ここに開示する実施形態に関連して述べた種々の例示的論理ブロック、モジュール、回路及びアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア又はその両方の組み合わせとして具現化されてもよい。ハードウェア及びソフトウェアのこの互換性を明確に示すために、種々の例示的コンポーネント、ブロック、モジュール、回路、及びステップは、それらの機能に関して一般的に説明された。そのような機能がハードウェアとして具現化されるかソフトウェアとして具現化されるかは、システム全体に課せられる特定アプリケーション及び設計上の制約に依存する。当業者であれば、ここに述べた機能を特定アプリケーションごとに色々な仕方で具現化できるが、そのような具現化の判断は、本発明の範囲から逸脱すると解釈されてはならない。
【0125】
コンピュータソフトウェアで具現化される実施形態は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はその組み合わせで具現化される。コードセグメント又はマシン実行可能なインストラクションは、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラスを表わすか、或いはインストラクション、データ構造体又はプログラムステートメントの組合せを表わす。コードセグメントは、情報、データ、アーギュメント、パラメータ又はメモリコンテンツを通し及び/又は受け取ることにより別のコードセグメント又はハードウェア回路に結合される。情報、アーギュメント、パラメータ、データ、等は、メモリ共有、メッセージ通過、トークン通過、ネットワーク送信、等を含む適当な手段を経て通され、転送され又は送信される。
【0126】
これらのシステム及び方法を実施するのに使用される実際のソフトウェアコード又は特殊な制御ハードウェアは、本発明を限定するものではない。従って、システム及び方法のオペレーション及び振舞いは、ここでの記載に基づいてシステム及び方法を実施するようにソフトウェア及び制御ハードウェアを設計できることを理解して、特定のソフトウェアコードを参照せずに説明した。
【0127】
ソフトウェアで実施されるときに、機能は、非一時的コンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体に1つ以上のインストラクション又はコードとして記憶される。ここに開示する方法又はアルゴリズムのステップは、コンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体に存在するプロセッサ実行可能なソフトウェアモジュールにおいて実施される。非一時的なコンピュータ読み取り可能な又はプロセッサ読み取り可能な媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にするコンピュータストレージ媒体及び有形のストレージ媒体の両方を含む。非一時的なプロセッサ読み取り可能なストレージ媒体は、コンピュータによりアクセスされる利用可能な媒体である。これに限定されないが、一例として、そのような非一時的なプロセッサ読み取り可能な媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光学ディスクストレージ、磁気ディスクストレージ又は他の磁気ストレージ装置、或いはインストラクション又はデータ構造体の形態で望ましいプログラムコードを記憶するのに使用され且つコンピュータ又はプロセッサによりアクセスされる他の有形のストレージ媒体を含む。ここで使用するディスク(disk & disc)とは、コンパクトディスク(CD)、レーザーディスク(登録商標)、光学ディスク、デジタル多様性ディスク(DVD)、フロッピーディスク、及びブルーレイディスクを含み、ここで、ディスク(disk)は、通常、データを磁気的に再生するものであり、一方、ディスク(disc)は、データをレーザで光学的に再生するものである。前記の組み合わせも、コンピュータ読み取り可能な媒体の範囲内に包含される。加えて、方法又はアルゴリズムのオペレーションは、コンピュータプログラム製品に合体される非一時的プロセッサ読み取り可能な媒体及び/又はコンピュータ読み取り可能な媒体にコード及び/又はインストラクションの1つ又は組み合わせ或いはセットとして存在する。
【0128】
ここに開示する実施形態の前記説明は、当業者が本発明を実施又は利用できるようにするためになされたものである。これら実施形態に対する種々の変更は、当業者に容易に明らかであり、そしてここに定義する一般的な原理は、本発明の精神又は範囲から逸脱せずに他の実施形態に適用される。従って、本発明は、ここに示す実施形態に限定されるものではなく、特許請求の範囲並びにここに開示した原理及び新規な特徴に一致する最も広い範囲と調和されるべきである。
【符号の説明】
【0129】
100:システムアーキテクチャー
102:システムインターフェイス
110:第1のサーチマネージャー
112:第nのサーチマネージャー
120:第1の分析エージェント
122:第nの分析エージェント
130:第1のサーチコンダクタ
132:第nのサーチコンダクタ
140:パーティションデータ
150:パーティショナー
160:第1の集合体
162:第nの集合体
170:スーパーバイザー
180:依存性マネージャー
200:ノード
202:ノードマネージャー
210:第1のソフトウェアモジュール
212:第nのソフトウェアモジュール
902、910:集合体
904、912:第1のパーティション
906、914:第nのパーティション
940:サーチマネージャー
950:スーパーバイザー
【国際調査報告】