(57)【要約】  分散型インメモリデータベースを管理するためのインメモリデータベースシステム及び方法であって、サーチコンダクタに関連したパーティショナーにより区画化された集合体のデータベースパーティションを記憶し及び配布するように構成されたモジュールを有する１つ以上のノードを備えている。データベース集合体は、スキーマに従って区画化される。パーティション、集合体及びレコードは、システムインターフェイスにより要求されたとき、スキーマに従って、更新され及び除去される。スーパーバイザーは、各ノードから受け取られるハートビート信号に基づいてノード状態を決定する。ユーザは、システムインターフェイスを通してサーチマネージャーへ質問を送る。サーチマネージャーは、フィールド処理技術を適用し、サーチ質問をサーチコンダクタへ転送し、及び結果レコードのセットを分析エージェントへ返送する。分析エージェントは、サーチマネージャーからの候補結果レコードに対して分析処理を遂行する。集合体に関連したパーティショナーを含むサーチコンダクタは、パーティション内のレコードをサーチし及びスコア付けし、次いで、候補結果レコードのセットを、サーチマネージャーからサーチ質問を受け取った後に、返送する。【選択図】図１
2017504874.tif 000002
【特許請求の範囲】
【請求項１】
インメモリデータベースをホストするコンピューティングシステムにおいて、
データベースの１つ以上のレコードの集合体を受け取るのに応答して、その集合体に関連したマシン読み取り可能なスキーマに基づきその集合体を圧縮すべきかどうか決定し、スキーマファイルに基づきその集合体を１つ以上のパーティションへ論理的にパーティショニングし、そしてスキーマファイルに従って１つ以上のパーティションを１つ以上のストレージノードに配布するよう構成されたプロセッサを含むパーティショナーノード、
ストレージノードであって、それに関連したパーティショナーから受け取ったパーティションを記憶する非一時的マシン読み取り可能なメインメモリを含むストレージノード、
システムのクライアント装置からサーチ質問を受け取り、そしてクライアント装置からサーチ質問を受け取るのに応答してそのサーチ質問を１つ以上のサーチコンダクタへサーチコンダクタ質問として送出するプロセッサを含むサーチマネージャーノードであって、そのサーチ質問は、そのサーチ質問を満足する１つ以上のレコードに関連したパラメータを含むマシン読み取り可能なコンピュータファイルであるサーチマネージャーノード、
１つ以上のパーティションに関連したサーチコンダクタノードであって、サーチマネージャーノードからサーチコンダクタ質問を受け取るのに応答して、そのサーチコンダクタ質問により指示される１つ以上のパーティションのセットに質問し、その質問されたパーティションのセットに記憶された１つ以上の候補レコードを識別し、スコアリングアルゴリズムを使用して各々の候補レコードに対する第１スコアを計算し、そしてスレッシュホールド値を満足する１つ以上の候補レコードを含む１つ以上の質問結果のセットをサーチマネージャーへ送出するよう構成されたプロセッサを含むサーチコンダクタノード、及び
サーチマネージャーノードから受け取られる質問結果のセットにおいて識別を行うのに応答して質問結果のセットから導出される１つ以上の結果のセットを含むマシン読み取り可能なコンピュータファイルを自動的に発生するように構成されたプロセッサを含む分析エージェントノード、
を備えたシステム。
【請求項２】
前記分析エージェントノードのプロセッサは、更に、１つ以上のデータリンケージのセットをサーチマネージャーに送出するように構成される、請求項１に記載のシステム。
【請求項３】
前記サーチマネージャーノードのプロセッサは、更に、サーチ質問に従って１つ以上のフィールド処理アルゴリズムを実行するように構成される、請求項１に記載のシステム。
【請求項４】
システムの１つ以上のノードから１つ以上のハートビート信号を受信しそして各ノードから受信したハートビート信号に基づいて１つ以上のノードの各々に対する状態を決定するプロセッサを含むスーパーバイザーノードを更に備え、各々のハートビート信号は、各ノードの状態を指示する、請求項１に記載のシステム。
【請求項５】
各ノードは、そのノードの状態を監視するように構成されたプロセッサを備えた、請求項４に記載のシステム。
【請求項６】
前記スーパーバイザーノードに関連した依存性マネージャーノードであって、非一時的なマシン読み取り可能なストレージ媒体に記憶されたマシン読み取り可能な依存性ツリーファイルを使用して前記スーパーバイザーにより監視されるノードのノード構成状態を監視するプロセッサを含む依存性マネージャーノードを更に備えた、請求項４に記載のシステム。
【請求項７】
前記ハートビート信号の状態は、ノード構成状態を指示し、そして前記スーパーバイザーノードは、ノード構成状態を決定する前記依存性マネージャーが、ノードが誤って構成されたと指示するのに応答して、マシン読み取り可能な構成パッケージファイルを送信する、請求項６に記載のシステム。
【請求項８】
前記サーチコンダクタは、１つ以上の更新された結果レコードのセットの各候補レコードに対するフィールドスコアを計算し、前記更新された結果レコードのセットにおける各候補の第１スコアは、サーチ質問により指示されたスレッシュホールド値を満足し、そしてその更新された結果レコードを前記サーチマネージャーノードへ送信する、請求項１に記載のシステム。
【請求項９】
前記サーチコンダクタは、候補結果レコードのデータがデータ圧縮アルゴリズムに従って圧縮されたと決定するのに応答して、データ圧縮アルゴリズムを使用して前記更新された結果レコードのセットにおける候補レコードに記憶されたデータを解凍する、請求項７に記載のシステム。
【請求項１０】
１つ以上の集合体に関連した新たな集合体スキーマファイルを受け取る質問インターフェイスモジュールを実行するプロセッサを含むノードを更に備え、少なくともサーチコンダクタノードは、新たなスキーマファイルに従ってサーチコンダクタに関連した１つ以上の集合体を自動的に再構成するように構成される、請求項１に記載のシステム。
【請求項１１】
前記パーティショナーは、スキーマファイルに従って集合体に記憶された各レコードへ独特のレコード識別子を指定し、そして集合体の各レコードに指定された独特のレコード識別子を使用して集合体の各パーティションに関連したマシン読み取り可能なインデックスファイルを発生する、請求項１に記載のシステム。
【請求項１２】
前記サーチマネージャーノードは、前記サーチコンダクタノードに１つ以上の新たなレコードのセットを配布し、そして前記サーチコンダクタは、その１つ以上の新たなレコードのセットを受け取るのに応答して、サーチファイルに従って集合体のパーティションに新たなレコードの各々を自動的に追加する、請求項１１に記載のシステム。
【請求項１３】
前記１つ以上のサーチマネージャーは、独特のレコード識別子のセットに対応する１つ以上のレコードを削除する要求を受け取って、その要求を少なくとも１つのサーチコンダクタへ配布するように更に構成され、そしてサーチコンダクタは、独特のレコード識別子に関連した各レコードを削除についてマークするように更に構成される、請求項１１に記載のシステム。
【請求項１４】
レコードを削除についてマークすることは、将来のサーチ結果レコードからそのレコードを除外する、請求項１３に記載のシステム。
【請求項１５】
各レコードに関連した独特のレコード識別子は、独特の識別子番号、集合体バージョン番号、集合体の名前及びパーティションバージョン番号の１つ以上を含む、請求項１１に記載のシステム。
【請求項１６】
前記サーチマネージャーノードは、１つ以上の新たなレコードを含む１つ以上の新たな集合体のセットを受け取り、そしてスキーマファイルに従って１つ以上のサーチコンダクタノードへ新たな集合体のセットを送出し、及び各サーチコンダクタノードは、１つ以上の新たな集合体を受け取るのに応答して、各サーチコンダクタノードに関連した１つ以上の集合体をスキーマファイルに従って新たな１つ以上のレコードのセットで自動的にポピュレートする、請求項１１に記載のシステム。
【請求項１７】
サーチマネージャーは、集合体を除去する要求を受け取り、サーチマネージャーのプロセッサは、集合体削除要求をサーチコンダクタへ転送するように構成され、そしてサーチコンダクタは、データベースから集合体を除去するように更に構成される、請求項１に記載のシステム。
【請求項１８】
前記サーチマネージャーは、前記サーチコンダクタの各々から前記サーチ結果レコードの各々を非同期で受け取る、請求項１に記載のシステム。
【請求項１９】
前記スキーマは、フィールドの名前、フィールドがインデックスされたかどうか、使用する圧縮、及びフィールドに対するデフォールトスコアリングアルゴリズムの１つ以上に従って集合体を記述する、請求項１に記載のシステム。
【請求項２０】
前記分析エージェントは、多数のレコードをより完全なレコードへと連結し、そしてサーチ結果レコードに対する隣接レコードに関する情報を決定するように更に構成される、請求項１に記載のシステム。
【請求項２１】
前記サーチコンダクタは、前記サーチマネージャーから受け取ったサーチ質問に基づいてサーチ結果レコードのサイズを限定する、請求項１に記載のシステム。
【請求項２２】
前記スーパーバイザーは、集合体における１つ以上のレコードを圧縮するようにパーティショナーに命令する、請求項１に記載のシステム。
【請求項２３】
前記スーパーバイザーは、ロードされるべき１つ以上の新たなパーティションを決定し、依存性マネージャーからノードに対するノード構成を要求するよう更に構成され、前記スーパーバイザーは、前記依存性マネージャーからノード構成を検索するようにノードのノードマネージャーに命令し、
前記ノードマネージャーは、ノードのメモリリソースを割り当てそして新たなパーティションをロードするように構成され、そして
新たなパーティションに関連したサーチコンダクタは、スキーマに従って、パーティションがロードされたことをスーパーバイザーに通知する、
請求項１に記載のシステム。
【請求項２４】
前記分析エージェントノードは、前記サーチマネージャーノードから受け取った質問結果のセットにおいて２つ以上のレコードを相関させるデータリンケージを識別し、そしてそのデータリンケージは、第２レコードに含まれたデータに関連して第１レコードに含まれたデータを相関させる、請求項１に記載のシステム。
【請求項２５】
インメモリデータベースをホストするシステムのサーチマネージャーコンピュータにより、データベースに質問するパラメータを含むサーチ質問を表わすバイナリデータを受け取り、そのシステムは、データベースの１つ以上の集合体を記憶するメインメモリを含む１つ以上のストレージノードを備え、各集合体は、１つ以上のレコードを含み、
コンピュータにより、サーチ質問を、そのサーチ質問に従って１つ以上のサーチコンダクタノードへ送出し、そのサーチ質問は、質問されるべき１つ以上の集合体のセットを指示するものであり、
コンピュータにより、１つ以上の分析エージェントノードへ、１つ以上のサーチコンダクタからの受け取りに応答してサーチ質問に基づいてサーチ結果のセットを送出し、そのサーチ結果のセットは、サーチ質問を満足する１つ以上のレコードを含むものであり、サーチ結果のセットの各レコードは、サーチ質問におけるスコアリングアルゴリズムに基づきあるスコアに関連付けされ、及び
１つ以上の分析エージェントノードからの１つ以上のデータリンケージのセットを含むコンピュータファイルをコンピュータが受け取るのに応答して、コンピュータにより、分析エージェントノードから受け取った１つ以上のデータリンケージのセットに従ってサーチ結果のセットの１つ以上のレコードを更新する、
ことを含む、コンピュータで実行される方法。
【請求項２６】
前記コンピュータは、各々のサーチコンダクタからサーチ結果のサブセットを非同期で受け取る、請求項２５に記載の方法。
【請求項２７】
各々のサーチコンダクタノードから受け取ったサーチレコードの各サブセットは、各レコードに対して計算されたスコアに従ってランク付けされる、請求項２６に記載の方法。
【請求項２８】
質問されるべき集合体のセットに関連した各々のサーチコンダクタは、サーチ質問のパラメータに従ってサーチ結果の１つ以上のレコードを含む１つ以上のサーチ結果のセットを決定する、請求項２５に記載の方法。
【請求項２９】
コンピュータにより、マシン読み取り可能なスキーマファイルに従ってサーチコンダクタから１つ以上の集合体を受け取り、その集合体の各々は、１つ以上のフィールドを有する１つ以上のレコードのセットを含むものであり、
コンピュータにより、スキーマに従って各集合体をパーティショニングし、
コンピュータにより、スキーマに従ってパーティション内のレコードを圧縮し、及び
コンピュータにより、サーチコンダクタに関連したパーティショナーに対応する各集合体に各パーティションを含ませるように１つ以上の関連サーチコンダクタに各パーティションを配布する、
ことを含む、コンピュータで実行される方法。
【請求項３０】
コンピュータにより、前記スキーマに従って各レコードセットにおけるレコードを断片化することを更に含む、請求項２９に記載の方法。
【請求項３１】
コンピュータにより、フィールドレベル、レコードレベル、パーティションレベル、集合体レベル及びデータベースレベルより成るグループから選択されたレベルにおいてレコードを解凍することを更に含む、請求項２９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、データベースに関するもので、より詳細には、インメモリデータベースに関する。
【背景技術】
【０００２】
コンピュータは、膨大な量の情報を記憶しそしてそれら情報にアクセスするのに使用されるパワフルなツールであり、一方、データベースは、ユーザに容易なアクセスを与えながらコンピュータシステムの情報を記憶する共通のメカニズムである。典型的に、データベースは、情報の「フィールド」を有する「レコード」として記憶される情報の編成された集合体である（例えば、レストランのデータベースは、その地域の各レストランのレコードを有し、各レコードは、レストランの特徴、例えば、名前、住所、料理の種類、等を記述するフィールドを含む）。
【０００３】
動作中に、データベース管理システムは、ディスクのようなストレージ装置からデータを検索するか又はそこにデータを存続させることをしばしば要求する。不都合なことに、そのようなストレージ装置へのアクセスは、若干低速である。データへのアクセスを加速するため、データベースは、典型的に、最近使用されたデータオブジェクトを記憶するのに割り当てられた比較的高速なメモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））の一部分である「キャッシュ」又は「バッファキャッシュ」を使用する。メモリは、典型的に、半導体又は他の電気的ストレージ媒体に設けられ、そしてメモリに維持されたデータをディスクに記憶されたデータより迅速にアクセスできるようにする高速データバスを経てＣＰＵ（中央処理ユニット）に結合される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この問題の解消を試みるときに取られる１つの解決策は、メモリのデータベースに全ての情報を記憶することであるが、コンピュータシステムに設けられるメモリは、サイズが限定されているために、大規模なデータベースの取り扱いを試みるときに直面する多数の障害がある。
【０００５】
従って、大規模において高い速度でデータを記憶及び検索する改善された方法が要望され続けている。
【課題を解決するための手段】
【０００６】
ここに開示されるのは、インメモリデータベースをホストするシステムアーキテクチャーであって、システムの分散型コンピューティングアーキテクチャー内でホストされるインメモリデータベースのデータレコードを記憶、操作及び検索するためのコンピューティング装置及びソフトウェアモジュールの適当な組み合わせを含むものである。システムのコンピューティングハードウェアにより実行されるソフトウェアモジュールは、システムインターフェイス、サーチマネージャー、分析エージェント、サーチコンダクタ、パーティショナー、データ集合体、スーパーバイザー、依存性マネージャーを含み、それらソフトウェアモジュールの適当な組み合わせは、インメモリデータベースをホストするシステムアーキテクチャーに見られるものである。
【０００７】
ソフトウェアモジュールを実行するノードは、レコードに記憶されたデータを圧縮し、インメモリ記憶、質問及び検索を大量データセットに対して実現可能にする。圧縮及び解凍は、データベースのほぼどのレベルでも（例えば、データベースレベル、集合レベル、レコードレベル、フィールドレベルでも）行うことができる。ソフトウェアモジュールを実行するノードは、分散型インメモリデータベースにＪａｖａＳｃｒｉｐｔ（登録商標）オブジェクトノーテーション（ＪＳＯＮ）のような複雑なデータ構造体を記憶するためのサポートを与える。インメモリデータベースシステムの実施形態は、システムコンポーネントの分散型アーキテクチャーであると共に、欠陥サービスを監視し且つ回復できるシステムの種々のハードウェア及びソフトウェアモジュールであるために、欠陥許容である。欠陥許容は、とりわけ、システムコンポーネント冗長性、及びシステムコンポーネントの自動回復手順を含む。インメモリデータベースは、スコアリング方法を使用してデータにスコア付けすることによりデータに効果的に且つ効率的に質問する。サーチ結果は、データにスコア付けするのに使用されるスコアリング方法に従ってランク付けされ、それにより、質問を実行するユーザ及び／又はノードは、ある質問から次の質問へ更に調整され且つ状況的に関連した仕方でデータを利用できるようにする。分析エージェントを実行するノードは、データのインメモリデータベース画像に記憶されたレコードに対して種々の進歩型分析を遂行する。あるケースでは、サーチコンダクタによるサーチ質問結果のセットで検索されたレコードに対して分析が行われる。
【０００８】
ある実施形態において、インメモリデータベースをホストするコンピューティングシステムは、データベースの１つ以上のレコードの集合体を受け取るのに応答して、その集合体に関連したマシン読み取り可能なスキーマに基づいてその集合体を圧縮すべきかどうか決定し、スキーマファイルに基づいてその集合体を１つ以上のパーティションへ論理的にパーティショニングし、そしてスキーマファイルに従って１つ以上のパーティションを１つ以上のストレージノードに配布するように構成されたプロセッサを含むパーティショナーノード；ストレージノードであって、それに関連したパーティショナーから受け取ったパーティションを記憶する非一時的なマシン読み取り可能なメインメモリを含むストレージノード；システムのクライアント装置からサーチ質問を受け取り、そしてクライアント装置からサーチ質問を受け取るのに応答してそのサーチ質問を１つ以上のサーチコンダクタへサーチコンダクタ質問として送出するプロセッサを含むサーチマネージャーノードであって、そのサーチ質問は、そのサーチ質問を満足する１つ以上のレコードに関連したパラメータを含むマシン読み取り可能なコンピュータファイルであるサーチマネージャーノード；１つ以上のパーティションに関連したサーチコンダクタノードであって、サーチマネージャーノードからサーチコンダクタ質問を受け取るのに応答して、そのサーチコンダクタ質問により指示される１つ以上のパーティションのセットに質問し、その質問されたパーティションのセットに記憶された１つ以上の候補レコードを識別し、スコアリングアルゴリズムを使用して各々の候補レコードに対する第１スコアを計算し、そしてスレッシュホールド値を満足する１つ以上の候補レコードを含む１つ以上の質問結果のセットをサーチマネージャーへ送出するように構成されたプロセッサを含むサーチコンダクタノード；及びサーチマネージャーノードから受け取られる質問結果のセットにおいて２つ以上のレコードを相関するデータリンケージを識別するのに応答して質問結果のセットに対して１つ以上のデータリンケージのセットを含むマシン読み取り可能なコンピュータファイルを自動的に発生するように構成されたプロセッサを含む分析エージェントノードであって、そのデータリンケージは、第２レコードに含まれたデータに関連して第１レコードに含まれたデータを相関させるものである分析エージェントノード；を備えている。
【０００９】
別の実施形態において、コンピュータ実施方法は、インメモリデータベースをホストするシステムのサーチマネージャーコンピュータにより、データベースに質問するパラメータを含むサーチ質問を表わすバイナリデータを受け取ることを含み、そのシステムは、データベースの１つ以上の集合体を記憶するメインメモリを含む１つ以上のストレージノードを備え、各集合体は、１つ以上のレコードを含むものであり；コンピュータにより、サーチ質問を、そのサーチ質問に従って１つ以上のサーチコンダクタノードへ送出することを更に含み、そのサーチ質問は、質問されるべき１つ以上の集合体のセットを指示するものであり；コンピュータにより、１つ以上の分析エージェントノードへ、１つ以上のサーチコンダクタからの受け取りに応答してサーチ質問に基づいてサーチ結果のセットを送出することを更に含み、そのサーチ結果のセットは、サーチ質問を満足する１つ以上のレコードを含むものであり、サーチ結果のセットの各レコードは、サーチ質問におけるスコアリングアルゴリズムに基づきあるスコアに関連付けされ；及び１つ以上の分析エージェントノードからの１つ以上のデータリンケージのセットを含むコンピュータファイルをコンピュータが受け取るのに応答して、コンピュータにより、分析エージェントノードから受け取った１つ以上のデータリンケージのセットに従ってサーチ結果のセットの１つ以上のレコードを更新することを更に含む。
【００１０】
別の実施形態において、コンピュータ実施方法は、コンピュータにより、スキーマファイルに従ってサーチコンダクタから１つ以上の集合体を受け取ることを含み、その集合体各々は、１つ以上のフィールドを有する１つ以上のレコードのセットを含むものであり；コンピュータにより、スキーマに従って各集合体をパーティショニングし；コンピュータにより、スキーマに従ってパーティション内のレコードを圧縮し；及びコンピュータにより、サーチコンダクタに関連したパーティショナーに対応する各集合体に各パーティションを含ませるように１つ以上の関連サーチコンダクタに各パーティションを配布する；ことを更に含む。
【００１１】
本開示の多数の他の観点、特徴は、以下の詳細な説明から明らかとなろう。実施形態の付加的な特徴及び効果は、以下の説明で述べられ、そしてその説明から一部分は明らかであろう。本発明の目的及び他の効果は、以下の説明の規範的実施形態及び特許請求の範囲並びに添付図面に特に指摘された構造により実現され且つ達成される。
【００１２】
本開示は、添付図面を参照することにより良く理解することができる。図面中のコンポーネントは、必ずしも、正しい縮尺ではなく、むしろ、本開示の原理を例示する際に強調されている。図中、参照番号は、異なる図面全体を通して対応部分を示している。
【図面の簡単な説明】
【００１３】
【図１】規範的な実施形態によるインメモリデータベースアーキテクチャーを示す。
【図２】規範的な実施形態によるノード構成を示す。
【図３】規範的な実施形態によりノードを設定するためのフローチャートである。
【図４】規範的な実施形態によりノードを設定するモジュールを示すフローチャートである。
【図５】規範的な実施形態によるサーチマネージャーの機能を記述するフローチャートである。
【図６】規範的な実施形態によるサーチコンダクタの機能を記述するフローチャートである。
【図７】規範的な実施形態によるパーティショナーの機能を記述するフローチャートである。
【図８】規範的な実施形態によりサーチコンダクタにおけるパーティションを設定するプロセスを記述するフローチャートである。
【図９Ａ】規範的な実施形態による集合体、その更新バージョン及びそれに関連したパーティションを示す。
【図９Ｂ】規範的な実施形態によりサーチマネージャーに接続された第１集合体を含む第１及び第２のサーチノードを示す。
【図９Ｃ】規範的な実施形態により、サーチマネージャーから切断された第１集合体を含む第１のサーチノード及びサーチマネージャーに接続された第１集合体を含む第２のサーチノードを示す。
【図９Ｄ】規範的な実施形態により、更新された集合体をロードする第１のサーチノード、及びサーチマネージャーに接続された第２のサーチノードを示す。
【図９Ｅ】規範的な実施形態により、サーチマネージャーに接続された更新された集合体を含む第１のサーチノード、及びサーチマネージャーから切断された第１集合体を含む第２のサーチノードを示す。
【図９Ｆ】規範的な実施形態により、更新された集合体をロードする第２のサーチノード、及びサーチマネージャーに接続された第１のサーチノードを示す。
【図９Ｇ】規範的な実施形態によりサーチマネージャーに接続された更新された集合体を含む第１及び第２のサーチノードを示す。
【図１０】規範的な実施形態により２つの集合体に対するパーティションを含むサーチノードのクラスターを示す。
【発明を実施するための形態】
【００１４】
定義
ここで使用する次の用語は、次のような定義を有する。
【００１５】
「ノード」は、１つ以上のモジュールを実行するのに適したコンピュータハードウェア構成を指す。
【００１６】
「クラスター」は、１つ以上のノードのセットを指す。
【００１７】
「モジュール」は、１つ以上の定義されたタスクを実行するのに適したコンピュータソフトウェアコンポーネントを指す。
【００１８】
「集合体」は、レコードの個別セットを指す。
【００１９】
「レコード」は、１単位として取り扱われる１つ以上の情報断片を指す。
【００２０】
「フィールド」は、レコード内の１つのデータエレメントを指す。
【００２１】
「パーティション」は、集合体のレコードの任意に限定された部分を指す。
【００２２】
「スキーマ」は、１つ以上のレコードの１つ以上の特性を示すデータを指す。
【００２３】
「サーチマネージャー」又は「Ｓ．Ｍ．」は、少なくとも、１つ以上の質問を受け取りそして１つ以上のサーチ結果を返送するように構成されたモジュールを指す。
【００２４】
「分析エージェント」、「分析モジュール」、「Ａ．Ａ．」又は「Ａ．Ｍ．」は、少なくとも、１つ以上のレコードを受け取り、その１つ以上のレコードを処理し、そしてそれにより得られる１つ以上の処理されたレコードを返送するように構成されたモジュールを指す。
【００２５】
「サーチコンダクタ」又は「Ｓ．Ｃ．」は、少なくとも、パーティションにおいて１つ以上のサーチ質問を実行し、そしてサーチ結果を１つ以上のサーチマネージャーへ返送するように構成されたモジュールを指す。
【００２６】
「ノードマネージャー」又は「Ｎ．Ｍ．」は、少なくとも、ノードにおいて１つ以上のコマンドを遂行しそして１つ以上のスーパーバイザーと通信するように構成されたモジュールを指す。
【００２７】
「スーパーバイザー」は、少なくとも、システムの１つ以上のコンポーネントと通信しそして１つ以上の状態を決定するように構成されたモジュールを指す。
【００２８】
「ハートビート」又は「ＨＢ」は、少なくとも、１つ以上の状態を１つ以上のスーパーバイザーへ通信する信号を指す。
【００２９】
「パーティショナー」は、少なくとも、１つ以上の集合体を１つ以上のパーティションへと分割するように構成されるモジュールを指す。
【００３０】
「依存性マネージャー」又は「Ｄ．Ｍ．」は、少なくとも、１つ以上のモジュール、パーティション又は適当な組み合わせに関連した１つ以上の依存性ツリーをシステムに含ませ；少なくとも、その１つ以上の依存性ツリーの１つ以上の適当な部分に関連した情報の要求を受け取り；及び少なくとも、それらの部分から導出される１つ以上の構成を返送するように構成されたモジュールを指す。
【００３１】
「データベース」は、１つ以上の集合体を記憶するのに適し且つ１つ以上の質問を処理するのに適したクラスター及びモジュールの組み合わせを含むシステムを指す。
【００３２】
「質問」は、１つ以上の適当なパーティション又はデータベースから情報を検索するための要求を指す
【００３３】
「メモリ」は、充分に高い速度で情報を記憶し且つその情報を検索するのに適したハードウェアコンポーネントを指す。
【００３４】
「断片化」は、望ましい粒度レベルが達成されるまでレコードをより小さなレコードへと分離することを指す。
【００３５】
詳細な説明
添付図面に各々示された好ましい実施形態を以下に詳細に説明する。ここに述べる実施形態は、例示に過ぎない。当業者であれば、ここに述べる特定の実施例について、本発明の範囲内で、多数の別のコンポーネント及び実施形態に置き換えできることが認識されよう。
【００３６】
規範的な実施形態は、１つ以上のクラスター及び１つ以上のモジュールを含むインメモリデータベースについて記述するもので、適当なモジュールは、サーチマネージャー、分析エージェント、ノードマネージャー、サーチコンダクタ、スーパーバイザー、依存性マネージャー、及び／又はパーティショナーを含む。
【００３７】
システム構成
インメモリデータベースアーキテクチャー
インメモリデータベースとは、データレコードを装置のメインメモリに記憶するように構成されたデータベースマネージメントシステム（ＤＢＭＳ）により制御されるレコードにデータを記憶するデータベースで、データを「ディスク」メモリに記憶する従来のデータベース及びＤＢＭＳモジュールとは対照的である。従来のディスクストレージは、装置のハードディスクへの読み取り及び書き込みコマンドをプロセッサ（ＣＰＵ）が実行することを必要とし、従って、ＣＰＵがインストラクションを実行してそのデータに対するメモリ位置を位置付け（即ち、シークし）そして検索した後に、そのメモリ位置のデータである形式のオペレーションを遂行することを必要とする。インメモリデータベースシステムは、メインメモリに配置されそしてそれに応じてアドレスされるデータにアクセスし、それにより、ＣＰＵで実行されるインストラクションの数を軽減し、そしてハードディスク上のデータをシークするＣＰＵに関連したシーク時間を排除する。
【００３８】
インメモリデータベースは、ノードの各リソース（例えば、メモリ、ディスク、プロセッサ）をアグリゲートするように構成された１つ以上のノードを含むコンピューティングシステムである分散型コンピューティングアーキテクチャーで実施される。ここに述べるように、インメモリデータベースをホストするコンピュータリングシステムの実施形態では、１つ以上のノード間にデータベースのデータレコードが配布されそして記憶される。ある実施形態では、それらのノードは、ノードの「クラスター」へと形成される。又、ある実施形態では、ノードのそれらクラスターは、データベース情報の部分又は「集合体」を記憶する。
【００３９】
１つ以上の実施形態において、システムインターフェイスは、１つ以上のサーチ質問を１つ以上のサーチマネージャーに供給する。サーチマネージャーは、実施形態に基づいてある分析技術を遂行しそして結果をサーチマネージャーへ返送する１つ以上の分析エージェントにリンクされる。サーチマネージャーは、１つ以上のサーチコンダクタにリンクされる。サーチコンダクタは、１つ以上のデータパーティションに対してサーチ質問及びデータベース更新にサービスする。１つ以上の実施形態では、パーティショナーを含む１つ以上のノードが１つ以上のデータベース集合体の１つ以上のパーティションを記憶する。集合体のパーティションは、特定のパーティションにパーティショニングされた集合体の１つ以上のレコードを記憶する。従って、集合体の各パーティションを記憶する１つ以上のノードは、インメモリデータベースのレコードを記憶する。
【００４０】
パーティショナー圧縮
インメモリデータベースは、情報の「フィールド」を有する「レコード」として記憶される情報の編成された集合体である。例えば、レストランのデータベースは、その地域の各レストランのレコードを有し、各レコードは、レストランの各特徴、例えば、名前、住所、料理の種類、等を記述する異なるフィールドを含む。
【００４１】
インメモリデータベースの実施形態は、データを記憶し及びそれにアクセスするために１つ以上のノードのクラスターを使用し、大量のデータは、大量の非一時的マシン読み取り可能なストレージスペースを要求する。圧縮は、情報をホストするのに必要なストレージスペースの量を減少する。
【００４２】
ある実施形態では、１つ以上の集合体の１つ以上のレコードの１つ以上のフィールドに使用される圧縮技術を定義する適当なスキーマを使用して１つ以上の集合体が記述される。これら実施形態では、フィールドに記憶される形式のデータを圧縮するのに適した１つ以上の技術を使用してパーティショナーにより１つ以上のフィールドが圧縮される。
【００４３】
ある実施形態では、フィールドに記憶される形式のデータは、望ましいデータ粒度が得られるまで集合体がより小さなレコードへと分離される断片化の後に、圧縮される。そのような実施形態では、断片化されたレコードのインデックスは、レコードが集合体の同じオリジナルレコードから生じることをシステムが知り続けるよう保証するためどのレコードからフィールドが断片化されたか識別するのに使用される。断片化されたレコードは、１つ以上の断片化アルゴリズムに従って更に圧縮される。
【００４４】
ある実施形態では、１つ以上の集合体は、インメモリデータベースシステムの１つ以上のサーチコンダクタモジュールに関連した１つ以上のパーティショナーモジュールによりインデックスされ及び／又は圧縮される。ある実施形態では、１つ以上の圧縮技術でデータ圧縮が促進される一方、フィールドレベル、レコードレベル又は集合体レベルを含むインメモリデータベースの任意のレベルでデータを解凍及び／又はアクセスできるようにする。
【００４５】
システムアーキテクチャー
図１は、システムインターフェイス１０２、第１のサーチマネージャー１１０、第ｎのサーチマネージャー１１２、第１の分析エージェント１２０、第ｎの分析エージェント１２２、第１のサーチコンダクタ１３０、第ｎのサーチコンダクタ１３２、パーティションデータ１４０、パーティショナー１５０、第１の集合体１６０、第ｎの集合体１６２、スーパーバイザー１７０、及び依存性マネージャー１８０を有するシステムアーキテクチャー１００を示している。
【００４６】
１つ以上の実施形態において、システムインターフェイス１０２は、システムアーキテクチャー１００の外部で発生された１つ以上の質問を、第１のサーチマネージャー１１０を含む少なくとも１つのノード、及び第ｎのサーチマネージャーを含む第ｎノードまでを含めた第１のクラスターにおける１つ以上のサーチマネージャー１１０、１１２へ供給する。前記第１のクラスターにおける１つ以上のサーチマネージャー１１０、１１２は、少なくとも第１の分析エージェント１２０及び第ｎの分析エージェント１２２までを含めた第２のクラスターにおける１つ以上の分析エージェント１２０、１２２にリンクされる。
【００４７】
第１のクラスターにおけるサーチマネージャー１１０、１２０は、第３のクラスターにおける１つ以上のサーチコンダクタ１３０、１３２にリンクされる。第３のクラスターは、少なくとも第１のサーチコンダクタ１３０及び第ｎのサーチコンダクタ１３２までを含む。各サーチノード（即ち、サーチマネージャー１１０、１１２を実行するノード）は、適当な数のサーチコンダクタ１３０、１３２を含む。
【００４８】
第３のクラスターにおけるサーチコンダクタ１３０、１３２は、パーティションデータ１４０を記憶する１つ以上のデータベースノードにリンクされる。パーティションデータ１４０は、少なくとも、１つ以上の集合体を１つ以上のパーティションへと分割するように構成されたモジュールである１つ以上のパーティショナー１５０を実行するノードにより発生される１つ以上のパーティション（即ち、レコードの個別セットからパーティショニングされたレコードの任意に限定された部分）を含む。各パーティションは、少なくとも第１の集合体１６０及び第ｎの集合体１６２までに対応する。集合体１６０、１６２は、それらの集合体１６０、１６２のデータを定義する１つ以上のスキーマファイルにより更に説明する。１つ以上のスキーマは、とりわけ、パーティションのレコードにおけるフィールドの名前、前記フィールドがインデックスされたかどうか、どんな圧縮方法が使用されたか、及びどんなスコア付けアルゴリズムがフィールドにとってデフォールトであるかに関する情報を含む。スキーマは、第１の集合体１６０及び第ｎの集合体１６２までをパーティショニングするときにパーティショナー１５０により使用され、そして集合体において１つ以上の質問を実行するときに第１のサーチマネージャー１１０及び第ｎのサーチマネージャー１１２までによって更に使用される。
【００４９】
１つ以上のノードは、システム１００の他のノードから送信されたハートビート信号を受信するスーパーバイザー１７０ソフトウェアモジュールを実行する。スーパーバイザー１７０は、１つ以上の依存性マネージャー１８０ソフトウェアモジュールを実行するシステム１００のノードからデータを受信するように構成される。依存性マネージャー１８０ノードは、１つ以上のモジュール、パーティション、又はその適当な組み合わせに関連した依存性ツリーを記憶し、更新し、及び参照し、これは、相対的関係に基づき、ノード、モジュール及びパーティションに対する構成依存性を指示する。スーパーバイザー１７０は、１つ以上の他のスーパーバイザー１７０を実行するシステム１００の他のノードへ更にリンクされる。あるケースでは、付加的なスーパーバイザー１７０へのリンクは、システムアーキテクチャー１００のクラスター間を交差する。
【００５０】
分析エージェント１２０、１２２を実行するノードは、システムのコンポーネント（例えば、ソフトウェアモジュール、ノード）間の相互運用性及びデータ転送を容易にする特定のアプリケーションプログラミングインターフェイス（ＡＰＩ）に合致する１つ以上の適当な分析モジュールを実行する。分析エージェント１２０、１２２は、サーチコンダクタ１３０、１３２から返送される総計質問結果を処理するように構成される。例えば、サーチマネージャー１１０は、サーチ質問を受け取り、次いで、そのサーチマネージャー１１０が１つ以上のサーチコンダクタ１３０、１３２に与えるサーチコンダクタ質問を発生する。サーチコンダクタ１３０、１３２がそれらの各々指定されたサーチコンダクタ質問を実行した後に、サーチマネージャー１１０は、１つ以上のサーチコンダクタ１３０、１３２から総計質問結果のセットを受け取る。サーチマネージャー１１０は、サーチ質問のパラメータにより更なる処理が要求される場合は、それらのサーチ質問結果を更なる処理のために分析エージェント１２０へ転送する。
【００５１】
ある具現化において、サーチコンダクタ１３０、１３２から受け取った総計結果の１つ以上のセットを処理するために分析エージェント１２０に対してサーチ質問が要求されたとサーチマネージャー１１０が決定した後に、サーチマネージャー１１０は、データベーススキーマファイル及び／又は１つ以上の分析パラメータを分析エージェント１２０、１２２へ送信する。あるケースでは、サーチ質問は、どの分析エージェント１２０が総計サーチ結果を受け取るべきか識別するためサーチマネージャー１１０が使用する特定の分析アルゴリズムの遂行を要求する。あるケースでは、総計結果のセットの１つ以上が、圧縮アルゴリズムに従って圧縮されたデータを含む圧縮レコードの形態で分析エージェント１２０、１２２へ送信される。あるケースでは、レコードのデータは、レコードのフィールドにおいて圧縮され、そしてあるケースでは、全レコードが圧縮される。
【００５２】
分析エージェント１２０、１２２を実行するノードは、種々の分析モジュールを有する。非限定例として、他の適当なモジュール及びアルゴリズムの中で、曖昧性除去モジュール、リンクモジュール、及びリンクオンザフライモジュールが含まれる。後で述べるように、リンクモジュール及びリンクオンザフライモジュールは、データベースのレコードに以前に記憶されたデータをリンクするメタデータを識別し、発生し及び／又は記憶する。適当なモジュールは、任意の種類のデータを処理するための分析方法のソフトウェア実施を含む。ある実施形態では、特定の分析モジュール又は分析エージェント１２０、１２２は、インメモリデータベースの所定のインスタンス、クラスター、パーティション及び／又はインスタンス生成オブジェクトにしかアクセスできない。
【００５３】
分析モジュール
一実施形態によれば、アプリケーションプログラミングインターフェイス（ＡＰＩ）は、複数の分析モジュールを生成するのに使用され、そしてここに開示するシステムアーキテクチャーは、システムの分析エージェントによって実行される複数のカスタム化された分析モジュールの追加を許し、これは、オペレーション又はサービスを中断せずにシステムアーキテクチャーに追加され、データの定常ストリームの動的な処理をサポートする。
【００５４】
新たに生成される分析モジュールは、簡単なモジュール設定プロセスを使用してデータベースに容易にプラグインされ、そしてデータをどのように管理し、準備しそして記憶するかについて変更を必要とせずに１つ以上の分析方法を総計結果リストに適用するようにリアルタイムでの適用を可能にする。質問に対してレコードをスコア付けするモデル、典型的にサーチコンダクタ機能をサポートするか、或いはレコードセットに対して閉鎖又は他の総計分析機能、典型的に分析エージェントタスクを遂行するために、個別のＡＰＩが構成される。
【００５５】
図２は、規範的な実施形態によるノード２００の構成を示す図である。図２のノード２００は、ノードマネージャー２０２ソフトウェアモジュールと、第１のソフトウェアモジュール２１０及び第ｎのモジュール２１２までを含む多数の付加的なソフトウェアモジュール２１０、２１２と、を実行するプロセッサを備えている。
【００５６】
図２の規範的構成によれば、ノード２００は、データネットワークを経て、スーパーバイザーモジュール又はスーパーバイザーノードを実行する第２ノードに通信結合される。又、ノード２００によりインストール及び実行されるノードマネージャー２０２は、スーパーバイザーノードと通信するように構成され、そして第１のモジュール２１０、第ｎのモジュール２１２までを含めて、ノードにインストールされたソフトウェアモジュール２１０、２１２を監視するようにも構成される。ノードマネージャー２０２は、スーパーバイザーから受け取られる適当なコマンドを実行し、そして更に、ノード２００、ノードマネージャー２０２、及び第１のモジュール２１０から第ｎのモジュール２１２までのうちの１つ以上の状態についてレポートする。第１のモジュール２１０は、１つ以上のスーパーバイザーにリンクされ、そしてノード内の１つ以上の他のモジュールにリンクされ、ここで、ノード内の他のモジュールは、第１のモジュール２１０とは異なるタイプのものでもよいし、又は第１のモジュール２１０とであるタイプを共有してもよい。更に、第１のモジュール２１０は、システム内の１つ以上の他のモジュール、ノード又はクラスターとリンクされてもよい。
【００５７】
システムオペレーション
システム設定
図３は、ステップ３０２、３０４及び３０６を有するノード設定３００を示すフローチャートである。
【００５８】
ステップ３０２において、ノードに使用するのに適したオペレーティングシステム（ＯＳ）がノードにロードされる。１つ以上の実施形態において、ＯＳは、ノードの製造者により自動的にロードされる。１つ以上の他の実施形態では、ＯＳは、１人以上のオペレータによりノードにロードされる。
【００５９】
ステップ３０４において、ノードにロードされたＯＳと共に使用するのに適したノードマネージャーが１人以上のオペレータにより手動でインストールされ、ここで、インストールは、ノードマネージャーに加えて１つ以上のどの望ましいモジュールをノードにインストールするか決定する。
【００６０】
ステップ３０６において、ノードマネージャーは、スーパーバイザーにハートビートを送出し、ここで、ハートビートは、１つ以上のモジュールをインストールするためのインストラクションをノードが受け取る準備ができたとスーパーバイザーが決定するに充分な情報を含む。
【００６１】
図４は、ステップ４０２、４０４、４０６、４０８、４１０、４１２及び４１４を有するモジュール設定４００を示すフローチャートである。
【００６２】
ステップ４０２において、スーパーバイザーは、システムについて定義されたデータ集合体のニーズに基づいて１つ以上のモジュールを１つ以上のノードにインストールすべきことを決定する。次いで、スーパーバイザーは、前記１つ以上のノードにおける１つ以上のノードマネージャーへインストール準備インストラクションを送出する。ある実施形態では、スーパーバイザーは、データ集合体（データシャード又はデータの部分を含む）、及び各集合体に関連した構成設定を追跡する。又、スーパーバイザーは、全ての利用可能なノード及びそれらのリソース（ノードマネージャーにより報告された）も知っている。スーパーバイザーは、システムのニーズを利用可能なノードリソースへマップし（即ち、相関させ）、どのデータシャード又は部分、及びどのシステムサービス又はリソースを各ノードにおいて実行すべきか決定する。次いで、スーパーバイザーは、定義された依存性を含む展開／インストール要求を適当なノードマネージャーへ送出して、クライアント側でインストールを実行することをノードマネージャーに命令する。
【００６３】
ステップ４０４において、ノードマネージャーは、１つ以上の望ましいモジュールを実行するため、コンピュータメモリ、ディスクストレージ及び／又はＣＰＵ容量の一部分のようなノードのリソースを割り当てる。１つ以上の実施形態において、リソースの割り当ては、スーパーバイザーがプロセスを中断すると、ある期間の後に終了となる。リソースの非限定例は、コンピュータメモリ、ディスクストレージ及び／又はＣＰＵ容量の一部分を含む。要求されるリソースは、スーパーバイザーが所与のノードに指定するデータ及び／又はサービスを使用して決定される。要求されるリソースの詳細は、依存性マネージャーに記憶されるソフトウェア及びデータ依存性を定義するパッケージで特定される。
【００６４】
ステップ４０６において、スーパーバイザーは、ノードにインストールされるべき１つ以上のモジュールに関連した１つ以上の構成パッケージのための要求を依存性マネージャーに送る。
【００６５】
ステップ４０８において、スーパーバイザーは、次いで、構成パッケージを、展開、インストール及びスタートすべく、ノードマネージャーに送る。全てのデータ、ソフトウェア及びメタデータ依存性を含む構成パッケージは、システムアドミニストレータによって定義されそして依存性マネージャーに記憶される。
【００６６】
ステップ４１０において、ノードマネージャーは、適当なサーバーから１つ以上のモジュールを実行するに必要なソフトウェア及びデータを読み取る。適当なソフトウェア及びデータは、１つ以上のレコードをインデックスし、圧縮し、解凍し、スコア付けし、スライスし、接合し、又はその他、処理するのに適したソフトウェア、データ及びメタデータと、システム内の１つ以上の他のコンポーネントと通信し、整合し、監視し、又はその他、相互作用するのに適したソフトウェア及びデータと、を含む。
【００６７】
ステップ４１２において、ノードマネージャーは、ステップ４１０でフェッチした必要なソフトウェアをインストールする。
【００６８】
ステップ４１４において、ノードマネージャーは、ステップ４１２でインストールされたソフトウェアを実行する。
【００６９】
質問実行
図５は、ステップ５０２、５０４、５０８、５１０、５１２、５１４、５１８及び５２０を有し且つチェック５０６及び５１６を有する質問処理５００を示すフローチャートである。
【００７０】
ステップ５０２において、システムによりホストされるブラウザベースのグラフィックユーザインターフェイス（ＧＵＩ）又はクライアントコンピュータのネーティブＧＵＩのような外部ソースにより発生されるデータベース質問は、１つ以上のサーチマネージャーにより受け取られる。質問は、ユーザが送信した又はプログラムが自動的に発生したサーチパラメータを含む適当なソフトウェアソースコードを表わすバイナリデータを含む。サーチ質問に使用されるソースコード言語は、オブジェクト又はクラスのような複雑なデータ構造体を取り扱うことのできるデータシリアル化言語である。このデータシリアル化言語は、複雑なデータオブジェクト又は構造体をデジタルビットのシーケンスへと変換するのに使用され、そしてほとんどの装置により管理できるフォーマットで複雑なオブジェクトのデータを与える。ある実施形態では、質問は、スキーマファイル（例えば、ＸＳＤ）に従って有効とされるか、又はその他、理解されるＸＭＬ及びＨＴＭＬのようなマークアップ言語で表わされる。ある実施形態において、質問は、スキーマファイルに従って有効とされるか、又はその他、理解されるＪＳＯＮのような複雑なデータ構造体として表わされるか、又はその他、それを通信する。質問は、質問のパラメータを満足する望ましいレコードに対してデータベースをサーチするのに適したインストラクションを含み、そしてある実施形態では、適当なインストラクションは、サーチすべき１つ以上の集合体のリストを含む。
【００７１】
ステップ５０４において、外部ソースから受け取られた質問は、１つ以上のサーチマネージャーにより関連質問言語（例えば、ＳＱＬ）に従ってパースされ、これにより、適当なノード（例えば、サーチコンダクタ、分析エージェント）で実行されるべきマシン読み取り可能な質問を発生する。あるケースでは、質問のソフトウェア言語に関連したスキーマファイルには、質問発生コードや受け容れられた規格により又はサーチマネージャーに対してネーティブに発生された質問が与えられる。スキーマファイルは、サーチ質問を適切にパースすることについてサーチマネージャーに命令する。例えば、サーチ質問が１つ以上のマークアップ言語（例えば、ＸＭＬ）を使用して準備されるか、又はデータ構造体（例えば、ＪＳＯＮ）を含む場合には、ＸＭＬコード又はＪＳＯＮコードの各マークアップタグ内のデータを識別し及び／又は有効とするために、ＸＳＤベースのスキーマファイルのようなスキーマファイルがサーチ質問コード又はデータ構造体に関連付けられる。
【００７２】
チェック５０６において、サーチマネージャーは、ユーザが与えた質問又はアプリケーションで発生された質問に基づき、データベース及び／又は質問の１つ以上のフィールドの処理を遂行すべきかどうか決定する。フィールド処理の非限定例は、とりわけ、アドレス標準化、接近境界の決定、及び同意語の解釈を含む。ある実施形態において、システムの自動処理又は手動処理は、サーチプロセス５００に関連した他のプロセスが質問のフィールドに含まれた情報の使用を要求するかどうか決定しそして識別する。ある実施形態において、１つ以上のサーチマネージャーは、質問の１つ以上のフィールドのどれが望ましい処理を受けるか自動的に決定しそして識別する。
【００７３】
ステップ５０８において、１つ以上のフィールドのフィールド処理がチェック５０６で望ましいとシステムが決定した後に、サーチマネージャーは、１つ以上の適当なフィールド処理技術をその望ましいフィールドに適宜に適用する。
【００７４】
ステップ５１０において、サーチマネージャーは、サーチ質問に関連したサーチコンダクタ質問を構成する。ある実施形態では、サーチコンダクタ質問は、スタックベースサーチのような適当なサーチ質問実行プランに従って、システムの種々のノード（例えば、サーチマネージャー、サーチコンダクタ、ストレージノード）により処理されるように構成される。サーチ質問は、適当なバイナリフォーマット又は他のマシン読み取り可能なコンパクトなフォーマットを使用してエンコードされることが明らかである。
【００７５】
ステップ５１２において、１つ以上のサーチマネージャーは、１つ以上のサーチコンダクタ質問を１つ以上のサーチコンダクタへ送出する。ある実施形態において、サーチマネージャーは、どのサーチコンダクタがサーチコンダクタ質問を受け取るべきか自動的に決定し、次いで、そのサーチコンダクタ質問を、サーチコンダクタの識別されたサブセットへ送出する。そのような実施形態では、サーチコンダクタは、データのある集合体に予め関連付けられ、そしてシステムインターフェイスから受け取られるサーチ質問は、質問されるべき集合体を特定する。従って、サーチマネージャーは、１つ以上のサーチ質問において特定された集合体に関連したサーチコンダクタへサーチコンダクタ質問を送出する。
【００７６】
ステップ５１４において、サーチコンダクタは、サーチ結果を、それに対応するサーチマネージャーへ返送する。ある実施形態では、サーチ結果は、同期して返送され、そしてある実施形態では、サーチ結果は、非同期で返送される。同期とは、サーチマネージャーが結果を阻止するか又はオペレーションを停止する一方、特定のサーチコンダクタからサーチコンダクタ結果を待機する実施形態を指す。非同期とは、他の結果を阻止したり又は他のオペレーションを停止したりせずに、サーチマネージャーが多数のサーチコンダクタから同時に即ち並列に結果を受け取ることができる実施形態を指す。サーチコンダクタからサーチ結果を受け取った後、サーチマネージャーは、各サーチコンダクタから受け取った結果を、サーチコンダクタから返送されるレコードスコアに基づいて、１つ以上の結果リストへまとめる。
【００７７】
チェック５１６において、サーチマネージャーは、サーチマネージャーによりコンパイルされたサーチ結果の付加的な分析処理を、サーチ質問における指示に基づいて遂行すべきかどうか決定する。あるケースでは、その指示は、ユーザによりサーチ質問に含まれる。ある実施形態では、システムは、サーチ質問に含まれた情報を使用して分析処理が望ましいかどうか決定する。ある実施形態では、１つ以上のサーチマネージャーは、フィールドが望ましい分析処理を受けるべきであることを自動的に決定する。サーチ質問は、サーチ質問に関連した他のデータ（例えば、ストリング、オブジェクト）と共にインストラクションを搬送できるソフトウェアプログラミング言語で構成される。マークアップ言語のようなあるプログラミング言語は、コードに埋め込まれたメタデータタグを使用して、分析を行うべきかどうかのブール値を指示するフィールド、又は実行されるべき特定の分析モジュール及び／又はその特定の分析モジュールをホストする分析エージェントノードを指示するより複雑なユーザ定義フィールド、のような種々の形式のデータを識別する。ＪａｖａＳｃｒｉｐｔ（登録商標）又はＰＨＰのようなあるプログラミング言語は、分析を行うべきかどうか識別するコードを含む記憶されたコンピュータファイルを参照し、これは、実行されるべき特定の分析モジュール及び／又はその特定の分析モジュールをホストする分析エージェントノードを指示するより複雑なユーザ定義フィールドである。
【００７８】
処理が望まれることをシステムがチェック５１６で決定した場合には、ステップ５１８において、１つ以上の分析エージェントが１つ以上の適当な処理技術を１つ以上の結果リストに適用する。１つ以上の実施形態において、適当な技術は、とりわけ、多数のレコードをより完全なレコードへとロールアップし、結果に対して１つ以上の分析を遂行し、及び／又はレコード間の関係に関する情報を決定することを含む。次いで、分析エージェントは、１つ以上の処理済結果リストを１つ以上のサーチマネージャーへ返送する。
【００７９】
ステップ５２０において、１つ以上のサーチマネージャーは、１つ以上の結果リストを解凍し、そして質問を開始したシステムへそれを返送する。
【００８０】
図６は、ステップ６０２、６０４、６０８、６１０及び６１２を有し且つチェック６０６を有するサーチコンダクタ機能６００を示すフローチャートである。
【００８１】
ステップ６０２において、サーチマネージャーは、１つ以上のサーチコンダクタに質問を送出する。
【００８２】
ステップ６０４において、サーチコンダクタは、そのロードされたパーティションに対して質問を実行し、候補結果セットを発生する。１つ以上の実施形態において、ステップ６０４は、１つ以上のインデックスサーチを含む。１つ以上の実施形態において、サーチコンダクタは、１つ以上のスキーマの情報を使用して、質問を実行する。
【００８３】
チェック６０６において、サーチコンダクタは、特定の質問に基づき、サーチコンダクタ質問においてスコア付けが要求されたかどうか決定する。スコア付けは、サーチマネージャーにより受け取られたサーチ質問に指示される。
【００８４】
スコア付けが要求された場合に、サーチコンダクタは、ステップ６０８において、候補結果セットをスコア付けする。デフォールトスコアスレッシュホールドは、スキーマにおいて定義されるか、又はステップ６０２でサーチマネージャーにより送られたサーチコンダクタ質問に含まれる。１つ以上の実施形態において、初期のスコア付けは、フィールド特有のスコア付けアルゴリズムでフィールドレベルにおいてサーチコンダクタによって行われ、そこには、１つ以上の他のスコア付けアルゴリズムで無効化されるデフォールトがある。スコア付けアルゴリズムは、サーチ質問及び／又はサーチコンダクタ質問において定義されるか、又はその他、識別され、そしてサーチコンダクタにより適宜遂行される。サーチコンダクタは、それらの個々のフィールドスコアに基づいて複合スコアをレコードに与える。ある実施形態では、１つ以上のフィールドスコア又は他の総計スコアを総計することによりスコアを計算できる１つ以上の総計スコア付け方法がサーチコンダクタにより適用される。
【００８５】
ステップ６１０において、サーチコンダクタは、次いで、スコアを使用して、候補結果セットにおける残りのレコードを分類する。
【００８６】
チェック６１２において、サーチコンダクタは、候補結果セットをサーチマネージャーへ返送し、ここで、返送される結果の数は、ステップ６０２でサーチマネージャーにより送られた質問において要求されたサイズに限定される。
【００８７】
集合体パーティショニング及びパーティションローディング
１つ以上の実施形態において、１つ以上の適当なインメモリデータベースにデータが追加される。
【００８８】
第１の実施形態において、１つ以上のパーティショナーを使用してデータが大量にロードされる。
【００８９】
図７は、ステップ７０２、７０４、７０６、７１０及び７１２を有し且つチェック７０８を遂行する集合体パーティショニング７００を示すフローチャートである。
【００９０】
ステップ７０２において、１つ以上の集合体が１つ以上のパーティショナーへ供給される。それら集合体は、１つ以上のスキーマに関連して供給され、１つ以上のパーティショナーが、１つ以上の集合体のレコードをどのように操作するか理解できるようにする。
【００９１】
ステップ７０４において、１つ以上の集合体のレコードが断片化される。
【００９２】
チェック７０８において、システムは、所与のデータ集合体についてスキーマをチェックし、そしてパーティション内のフィールドをパーティショナーによりインデックスすべきかどうか決定する。インデックスは、日付インデックス又は曖昧インデックス（例えば、表音）のように、既知のデータベースに使用されるフィールドインデックスの適当な例である。
【００９３】
パーティショナーがパーティション内のフィールドをインデックスすべきであるとシステムがチェック７０８において決定した場合には、ステップ７１０において、パーティショナーは、スキーマにおけるインデックス定義に基づいてパーティションをインデックスする。
【００９４】
チェック７１２において、システムは、所与のデータ集合体に対してスキーマをチェックし、そしてパーティショナーによりパーティションを圧縮すべきかどうか決定する。
【００９５】
パーティショナーがパーティションを圧縮すべきであるとシステムがチェック７１２において決定した場合には、ステップ７１４において、パーティショナーは、スキーマで特定された圧縮方法を使用してフィールド及びレコードを圧縮し、これは、パーティションを充分に圧縮しながら、更に、フィールドレベルでの解凍を許すのに適した技術である。
【００９６】
ステップ７１６において、システムは、１つ以上のサーチコンダクタにパーティションを配布するのに適したパーティションを記憶する。
【００９７】
集合体パーティショニング７００は、大きなデータ集合体の最初のロード、再ロード又は置き換えを生成する。パーティショナーは、集合体内の各レコードに独特のレコードＩＤを指定し、パーティショニングされた集合体にバージョン番号を指定し、そして更に、要求された集合体スキーマを、１つ以上のＳＭ及び１つ以上のＳＣにより使用するためのパーティションセットバージョンに関連付ける。
【００９８】
第２の実施形態では、適当な質問インターフェイスを含む１つ以上の適当なインターフェイスを通して新たなレコードが集合体に追加される。質問インターフェイスは、質問を経ての結果セットの返送をサポートするが、集合体バージョンに関連した集合体スキーマの返送もサポートする。更に、サーチインターフェイスは、１人以上のユーザがその集合体スキーマを使用して、新たなレコードを、サーチインターフェイスを通してサーチマネージャーへ提出することにより集合体に追加できるようにする。次いで、サーチマネージャーは、集合体に追加するために適当なサーチコンダクタへ新たなレコードを配布する。ある実施形態では、サーチマネージャーは、所与のパーティションの複数のコピーにわたって最終的な一貫性を保証し、そして不揮発性ストレージに対するデータ耐久性を保証して、システム欠陥の後にデータが利用できることを確保する。
【００９９】
１つ以上の実施形態において、レコードは、同様の仕方で削除される。質問からの結果セットは、レコードごとに不透明な独特のＩＤを含む。この独特のＩＤは、必要な情報をエンコードして、集合体の所与のバージョンにおける特定のレコードを独特に識別し、そしてとりわけ、集合体の名前、パーティションセットのバージョン、及び独特のレコードＩＤ、の１つ以上を含む。適当な許可で、質問インターフェイスは、独特のレコードＩＤに対応するレコードを削除する要求を受け容れる。このレコードは、即座に物理的に削除できず、削除についてマークされ、そして将来の返答セットにはもはや含まれない。
【０１００】
１つ以上の他の実施形態において、新たな集合体スキーマ又は削除要求が質問インターフェイスへ提出されて、各々、新たな集合体を生成するか又は既存の集合体を除去する。このように生成される新たな集合体は、空でスタートし、上述したメカニズムを含む適当なメカニズムを使用してレコードを追加することができる。
【０１０１】
図８は、ステップ８０２、８０４、８０６、８０８、８１２、８１４、８１６、８１８及び８２０を有し、及びチェック８１０を遂行するパーティションローディング８００を示すフローチャートである。
【０１０２】
ステップ８０２において、スーパーバイザーは、１つ以上のパーティションを１つ以上のサーチコンダクタへロードすべきであることを決定する。
【０１０３】
ステップ８０４において、スーパーバイザーは、依存性マネージャーへ構成要求を送出し、そして依存性マネージャーは、１つ以上のサーチコンダクタにロードされるべき１つ以上のパーティションに関連した１つ以上の構成パッケージを返送する。
【０１０４】
ステップ８０６において、スーパーバイザーは、どのサーチコンダクタにパーティションをロードすべきか決定する。１つ以上の実施形態において、スーパーバイザーは、望ましいフェイルオーバー能力を与えるために１つ以上のどのサーチコンダクタを使用するか決定する。１つ以上の他の実施形態では、スーパーバイザーは、１つ以上のクラスターが知覚するワークロードを良好に均すために１つ以上のどのサーチコンダクタを使用するか決定する。
【０１０５】
ステップ８０８において、スーパーバイザーは、１つ以上のサーチコンダクタを含むノードに関連した１つ以上のノードマネージャーへコマンドを送信する。１つ以上の実施形態では、コマンドは、１つ以上のサーチコンダクタにパーティションをロードするためにスーパーバイザーからの更に別のインストラクションを待機するように１つ以上のノードマネージャーに通知する。別の実施形態では、コマンドは、１つ以上のサーチコンダクタへロードされるべき１つ以上のパーティションに関連した１つ以上の構成パッケージを含む。１つ以上の他の実施形態では、コマンドは、新たなパーティションをメモリにロードするために前記１つ以上のサーチコンダクタを準備するインストラクションを含む。
【０１０６】
ステップ８１０において、１つ以上のノードマネージャーは、パーティションをロードするのに要求されるノードリソースを割り当てる。
【０１０７】
チェック８１２において、１つ以上のノードマネージャーは、１つ以上のパーティションをロードするために１つ以上のソフトウェア又はデータ更新が要求されるかどうか決定する。
【０１０８】
１つ以上のソフトウェア又はデータ更新が要求されることを１つ以上のノードマネージャーが決定した場合に、ステップ８１４において、１つ以上のノードマネージャーは、次いで、前記１つ以上のソフトウェア更新を記憶し及び配布するのに適した１つ以上のノードから前記１つ以上のソフトウェア又はデータ更新を検索する。１つ以上のノードマネージャーは、次いで、１つ以上の検索されたソフトウェア又はデータ更新をインストールするように進む。
【０１０９】
ステップ８１６において、１つ以上のノードマネージャーは、１つ以上のパーティションを記憶し及び配布するのに適した１つ以上のノードから前記１つ以上のパーティションを検索する。１つ以上の実施形態において、検索されたパーティションは、以前にインデックス及び記憶されており、そして検索されると、１つ以上のサーチコンダクタに関連したメモリにロードされる。別の実施形態では、検索されたパーティションは、検索される前にインデックス又は圧縮されておらず、そして１つ以上のサーチコンダクタに関連したメモリへロードされる前に１つ以上のサーチコンダクタによりインデックス又は圧縮される。
【０１１０】
ステップ８１８において、１つ以上のサーチコンダクタは、ハートビートをスーパーバイザーへ送出し、そしてスーパーバイザーは、１つ以上のサーチコンダクタをシステムに使用する準備ができたことを決定する。
【０１１１】
ステップ８２０において、スーパーバイザーは、１つ以上のサーチコンダクタがサーチ質問を受け取る準備ができたことを１つ以上のサーチマネージャーに通知する。
【０１１２】
図９Ａは、集合体９０２と、集合体９１０で示された集合体９０２の更新とを示す。集合体９０２は、少なくとも、第１のパーティション９０４、及び第ｎのパーティション９０６まで、に分割され、そして集合体９１０は、少なくとも、第１のパーティション９１２、及び第ｎのパーティション９１４まで、に分割される。
【０１１３】
図９Ｂは、第１のパーティション９０４及び第ｎのパーティション９０６までの第１セットを有する第１のサーチノード９２０と、第１のパーティション９０４及び第ｎのパーティション９０６までの第２セットを有する第２のサーチノード９３０を示し、第１のサーチノード９２０及び第２のサーチノード９３０は、両方とも、少なくとも１つのサーチマネージャー９４０に接続される。更に、第１のサーチノード９２０、第２のサーチノード９３０及びサーチマネージャー９４０は、１つ以上のスーパーバイザー９５０に接続される。
【０１１４】
図９Ｃは、スーパーバイザー９５０からのコマンドの結果としてサーチマネージャー９４０から切断された第１のサーチノード９２０を示し、一方、第２のサーチノード９３０は、依然、接続を維持している。１つ以上の実施形態において、これは、第１のサーチノード９２０がアップグレードされたときサーチマネージャー９４０が集合体９０２内のレコードのサーチを実行できるようにする。
【０１１５】
図９Ｄは、第１のサーチノード９２０が集合体９１０を含むようにアップグレードされたところを示す。
【０１１６】
図９Ｅは、スーパーバイザー９５０からのコマンドの結果として第１のパーティション９１２及び第ｎのパーティション９１４までがサーチマネージャー９４０に接続された第１のサーチノード９２０を示す。スーパーバイザー９５０は、次いで、サーチマネージャー９４０から第２のサーチノード９３０を切断するコマンドを送出する。１つ以上の実施形態において、これは、サーチマネージャー９４０が集合体９１０のレコードに対してサーチを実行するのを許す。
【０１１７】
図９Ｆは、集合体９１０を含むように更新される第２のサーチノード９３０を示す。
【０１１８】
図９Ｇは、第１のパーティション９１２及び第ｎのパーティション９１４までの第１セットを有する第１のサーチノード９２０と、サーチマネージャー９４０に接続された第１のパーティション９１２及び第ｎのパーティション９１４までの第２セットを有する第２のサーチノード９３０を示し、第２のサーチノード９３０とサーチマネージャー９４０との間の接続は、スーパーバイザー９５０からのコマンドの結果として確立されている。これは、サーチマネージャー９４０が第１のサーチノード９２０又は第２のサーチノード９３０のいずれかにおける集合体９１０のレコードのサーチを実行できるようにする。
【０１１９】
図１０は、第１のサーチノード１００２、第２のサーチノード１００４、第３のサーチノード１００６、第４のサーチノード１００８、第１の集合体に対する第１のパーティション１０１０、第２のパーティション１０１２、第３のパーティション１０１４、及び第４のパーティション１０１６、並びに第２の集合体に対する第１のパーティション１０２０、第２のパーティション１０２２、第３のパーティション１０２４、及び第４のパーティション１０２６を有するサーチノードクラスターを示す。
【０１２０】
サーチノードクラスター１０００は、望ましいパーティション冗長性レベルを与えるように構成され、１つ以上のサーチノードを適宜にシステムに追加したり又はシステムから除去したりすることができる。更に、１つ以上のサーチノードに含まれるパーティションは、時間と共に変化し、そしてパーティションローディング８００と同様のプロセスに従ってサーチノードのノードマネージャーによりロード又はアンロードされる。サーチノードクラスター１０００におけるパーティションを更新、又はその他、変更するとき、図９Ａ、９Ｂ、９Ｃ、９Ｄ、９Ｅ、９Ｆ及び９Ｇに示すものと同様の方法が使用される。
【０１２１】
例＃１は、サーチマネージャー、分析エージェント、各ノードのノードマネージャー、２つのサーチコンダクタを各々有する８つのサーチノード、スーパーバイザー、バックアップスーパーバイザー、依存性マネージャー、バックアップ依存性マネージャー、並びにパーティションを記憶及び配布することのできるノードのパーティショナーを含むインメモリデータベースシステムである（ここで、ノードは、各々４つのパーティションに分割される２つの集合体、即ち集合体１及び集合体２のための情報を含む）。集合体１のレコードに対するサーチ質問がデータベースにより受け取られると、サーチマネージャーは、集合体１に関連したパーティショナーを有する全てのサーチコンダクタに質問を送出する。サーチコンダクタは、非同期で働いて、各圧縮されたレコードをサーチ及びスコア付けし、質問で定義されたスレッシュホールドより上のスコアを有する圧縮された結果のリストを作成し、結果のリストを分類し、そして圧縮されたレコードのリストをサーチマネージャーへ返送する。この例では、サーチコンダクタは、スコア付けされるべきフィールドのみを解凍する。サーチマネージャーは、各サーチコンダクタから結果のリストを受け取って総計し、質問結果をコンパイルし、そしてそれを更なる処理のために分析エージェントへ送出する。分析エージェントは、充分に関連していると決定したレコードを結合し、そしてその処理された結果リストをサーチマネージャーへ返送する。次いで、サーチマネージャーは、システムインターフェイスを通して最終結果を返送する。
【０１２２】
例＃２は、セマンティック質問を遂行し、そしてデータベースにおいて明確にリンクされていないデータに対するリンクされたデータ結果を返送することのできるインメモリデータベースである。データ又はレコードのリンク動作は、分析エージェントで実施される総計分析機能の一例に過ぎない。この例は、非リンクデータにおいてデータリンケージを発見しそしてセマンティック質問を遂行してセマンティック結果を返送することのできる分析エージェントを伴うインメモリデータベースである。非リンクデータとは、他のデータソースからのデータに対して明確なキー又は他の明確なリンクをもたない異種データソースからのデータである。この例では、プラグ型分析モジュールが開発されて分析エージェントにおいて展開され、データコンテンツそれ自体に基づいて異種データソースにわたりデータリンケージを発見し／見出すことができる。セマンティックサーチ質問が実行されるとき、非排他的サーチを使用してサーチコンダクタを経て全ての当該レコードが検索され、そして分析エージェントへ送られ、そこで、分析エージェントモジュールの特定の実施及び指定の信頼性スコアに基づいてレコードリンケージが発見される。それらの動的にリンクされたレコードは、ＲＤＦ／ＸＭＬ又は他のセマンティックデータ表現のようなセマンティックマークアップを使用して表わされ、そしてユーザに返送される。セマンティックサーチに対するこの解決策は、同じ非リンクデータを使用して異なる質問に対して異なる仕方で非リンクデータをリンクできるようにする。
【０１２３】
例＃３は、グラフ質問を遂行し、そしてデータベースにおいて明確にリンクされず又はグラフ形態で表されないデータに対してリンクされたデータ結果を返送することのできるインメモリデータベースである。この例は、非リンクデータにおいてデータリンケージを発見しそしてグラフ質問を遂行してグラフ質問結果を返送することのできる分析エージェントを伴うインメモリデータベースである。グラフサーチ質問が実行されるときに、全ての関連レコードは、非排他的サーチを使用してサーチコンダクタを経て検索され、そして分析エージェントへ送られ、そこで、レコードリンケージが発見され、そして信頼性スコアが指定される。それらの動的にリンクされたレコードは、ＲＤＦグラフ、プロパティグラフ、又は他のグラフデータ表現のようなグラフ形態で表わされ、そしてユーザに返送される。グラフサーチに対するこの解決策は、同じ非リンクデータを使用して異なる質問に対して異なる仕方で非リンクデータをリンクできるようにする。
【０１２４】
ここに開示する実施形態に関連して述べた種々の例示的論理ブロック、モジュール、回路及びアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア又はその両方の組み合わせとして具現化されてもよい。ハードウェア及びソフトウェアのこの互換性を明確に示すために、種々の例示的コンポーネント、ブロック、モジュール、回路、及びステップは、それらの機能に関して一般的に説明された。そのような機能がハードウェアとして具現化されるかソフトウェアとして具現化されるかは、システム全体に課せられる特定アプリケーション及び設計上の制約に依存する。当業者であれば、ここに述べた機能を特定アプリケーションごとに色々な仕方で具現化できるが、そのような具現化の判断は、本発明の範囲から逸脱すると解釈されてはならない。
【０１２５】
コンピュータソフトウェアで具現化される実施形態は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はその組み合わせで具現化される。コードセグメント又はマシン実行可能なインストラクションは、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラスを表わすか、或いはインストラクション、データ構造体又はプログラムステートメントの組合せを表わす。コードセグメントは、情報、データ、アーギュメント、パラメータ又はメモリコンテンツを通し及び／又は受け取ることにより別のコードセグメント又はハードウェア回路に結合される。情報、アーギュメント、パラメータ、データ、等は、メモリ共有、メッセージ通過、トークン通過、ネットワーク送信、等を含む適当な手段を経て通され、転送され又は送信される。
【０１２６】
これらのシステム及び方法を実施するのに使用される実際のソフトウェアコード又は特殊な制御ハードウェアは、本発明を限定するものではない。従って、システム及び方法のオペレーション及び振舞いは、ここでの記載に基づいてシステム及び方法を実施するようにソフトウェア及び制御ハードウェアを設計できることを理解して、特定のソフトウェアコードを参照せずに説明した。
【０１２７】
ソフトウェアで実施されるときに、機能は、非一時的コンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体に１つ以上のインストラクション又はコードとして記憶される。ここに開示する方法又はアルゴリズムのステップは、コンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体に存在するプロセッサ実行可能なソフトウェアモジュールにおいて実施される。非一時的なコンピュータ読み取り可能な又はプロセッサ読み取り可能な媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にするコンピュータストレージ媒体及び有形のストレージ媒体の両方を含む。非一時的なプロセッサ読み取り可能なストレージ媒体は、コンピュータによりアクセスされる利用可能な媒体である。これに限定されないが、一例として、そのような非一時的なプロセッサ読み取り可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光学ディスクストレージ、磁気ディスクストレージ又は他の磁気ストレージ装置、或いはインストラクション又はデータ構造体の形態で望ましいプログラムコードを記憶するのに使用され且つコンピュータ又はプロセッサによりアクセスされる他の有形のストレージ媒体を含む。ここで使用するディスク(disk & disc)とは、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光学ディスク、デジタル多様性ディスク（ＤＶＤ）、フロッピーディスク、及びブルーレイディスクを含み、ここで、ディスク(disk)は、通常、データを磁気的に再生するものであり、一方、ディスク(disc)は、データをレーザで光学的に再生するものである。前記の組み合わせも、コンピュータ読み取り可能な媒体の範囲内に包含される。加えて、方法又はアルゴリズムのオペレーションは、コンピュータプログラム製品に合体される非一時的プロセッサ読み取り可能な媒体及び／又はコンピュータ読み取り可能な媒体にコード及び／又はインストラクションの１つ又は組み合わせ或いはセットとして存在する。
【０１２８】
ここに開示する実施形態の前記説明は、当業者が本発明を実施又は利用できるようにするためになされたものである。これら実施形態に対する種々の変更は、当業者に容易に明らかであり、そしてここに定義する一般的な原理は、本発明の精神又は範囲から逸脱せずに他の実施形態に適用される。従って、本発明は、ここに示す実施形態に限定されるものではなく、特許請求の範囲並びにここに開示した原理及び新規な特徴に一致する最も広い範囲と調和されるべきである。
【符号の説明】
【０１２９】
１００：システムアーキテクチャー
１０２：システムインターフェイス
１１０：第１のサーチマネージャー
１１２：第ｎのサーチマネージャー
１２０：第１の分析エージェント
１２２：第ｎの分析エージェント
１３０：第１のサーチコンダクタ
１３２：第ｎのサーチコンダクタ
１４０：パーティションデータ
１５０：パーティショナー
１６０：第１の集合体
１６２：第ｎの集合体
１７０：スーパーバイザー
１８０：依存性マネージャー
２００：ノード
２０２：ノードマネージャー
２１０：第１のソフトウェアモジュール
２１２：第ｎのソフトウェアモジュール
９０２、９１０：集合体
９０４、９１２：第１のパーティション
９０６、９１４：第ｎのパーティション
９４０：サーチマネージャー
９５０：スーパーバイザー
【図１】
2017504874.tif 000003
【図２】
2017504874.tif 000004
【図３】
2017504874.tif 000005
【図４】
2017504874.tif 000006
【図５】
2017504874.tif 000007
【図６】
2017504874.tif 000008
【図７】
2017504874.tif 000009
【図８】
2017504874.tif 000010
【図９Ａ】
2017504874.tif 000011
【図９Ｂ】
2017504874.tif 000012
【図９Ｃ】
2017504874.tif 000013
【図９Ｄ】
2017504874.tif 000014
【図９Ｅ】
2017504874.tif 000015
【図９Ｆ】
2017504874.tif 000016
【図９Ｇ】
2017504874.tif 000017
【図１０】
2017504874.tif 000018
【国際調査報告】
2017504874.tif 000019