(57)【要約】  分散型インメモリデータベースを管理するためのインメモリデータベースシステム及び方法であって、サーチコンダクタに関連したパーティショナーにより区画化された集合体のデータベースパーティションを記憶し及び配布するように構成されたモジュールを有する１つ以上のノードを備えている。データベース集合体は、スキーマに従って区画化される。パーティション、集合体及びレコードは、システムインターフェイスにより要求されたとき、スキーマに従って、更新され及び除去される。スーパーバイザーは、各ノードから受け取られるハートビート信号に基づいてノード状態を決定する。ユーザは、システムインターフェイスを通してサーチマネージャーへ質問を送る。サーチマネージャーは、フィールド処理技術を適用し、サーチ質問をサーチコンダクタへ転送し、及び結果レコードのセットを分析エージェントへ返送する。分析エージェントは、サーチマネージャーからの候補結果レコードに対して分析処理を遂行する。集合体に関連したパーティショナーを含むサーチコンダクタは、パーティション内のレコードをサーチし及びスコア付けし、次いで、候補結果レコードを返送する。【選択図】図１
2017505936.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより、１つ以上のデータ形式のデータより成り且つ情報を含むコーパスから１つ以上のファセットを抽出し；
コンピュータにより、コーパスから抽出された１つ以上のファセットの各々を曖昧性除去し；
コンピュータにより、１つ以上のファセットに各々関連した１つ以上のインデックスを生成し；
コンピュータにより、データベースの１つ以上のレコードより成るパーティションのレコードから関連インデックスに基づきファセットの各々を検索し、データベースの集合体は、１つ以上のパーティションを含み、そして各ファセットは、データの１つ以上のレコードに対してデータベースに記憶されたデータのハイアラーキー関係を指示し；及び
コンピュータにより、各ファセットに基づき示唆されたサーチ質問を生成する；
ことを含む、コンピュータで実施される方法。
【請求項２】
インメモリデータベースをホストするコンピューティングシステムにおいて、
データベースの１つ以上のレコードの集合体を受け取るのに応答して、その集合体に関連したマシン読み取り可能なスキーマに基づきその集合体を圧縮すべきかどうか決定し、スキーマファイルに従ってその集合体を１つ以上のパーティションへ論理的にパーティショニングし、そしてスキーマファイルに従って１つ以上のパーティションを１つ以上のストレージノードに配布するように構成されたプロセッサを含むパーティショナーノード；
ストレージノードであって、それに関連したパーティショナーから受け取ったパーティションを記憶する非一時的マシン読み取り可能なメインメモリを含むストレージノード；
システムのクライアント装置からサーチ質問を受け取り、そしてクライアント装置からサーチ質問を受け取るのに応答してそのサーチ質問を１つ以上のサーチコンダクタへサーチコンダクタ質問として送出するプロセッサを含むサーチマネージャーノードであって、そのサーチ質問は、そのサーチ質問を満足する１つ以上のレコードに関連したパラメータを含むマシン読み取り可能なコンピュータファイルであるサーチマネージャーノード；
１つ以上のパーティションに関連したサーチコンダクタノードであって、サーチマネージャーノードからサーチコンダクタ質問を受け取るのに応答して、そのサーチコンダクタ質問により指示される１つ以上のパーティションのセットに質問し、その質問されたパーティションのセットに記憶された１つ以上の候補レコードを識別し、スコアリングアルゴリズムを使用して各々の候補レコードに対する第１スコアを計算し、そしてスレッシュホールド値を満足する１つ以上の候補レコードを含む１つ以上の質問結果のセットをサーチマネージャーへ送出するよう構成されたプロセッサを含むサーチコンダクタノード；及び
サーチマネージャーノードから受け取られる質問結果のセットにおいて識別を行うのに応答して質問結果のセットから導出された１つ以上の結果のセットを含むマシン読み取り可能なコンピュータファイルを自動的に生成するように構成されたプロセッサを含む分析エージェントノード；
を備えたコンピュータシステム。
【請求項３】
前記分析エージェントノードのプロセッサは、１つ以上のデータリンケージのセットをサーチマネージャーへ送出するように更に構成された、請求項２に記載のシステム。
【請求項４】
前記サーチマネージャーノードのプロセッサは、サーチ質問に従って１つ以上のフィールド処理アルゴリズムを実行するように更に構成された、請求項２に記載のシステム。
【請求項５】
前記システムの１つ以上のノードから１つ以上のハートビート信号を受信しそして各ノードから受信されたハートビート信号に基づき１つ以上のノードごとに状態を決定するプロセッサを含むスーパーバイザーノードを更に備え、各ハートビート信号は、各ノードの状態を指示する、請求項２に記載のシステム。
【請求項６】
各ノードは、そのノードの状態を監視するように構成されたプロセッサを備えた、請求項５に記載のシステム。
【請求項７】
前記スーパーバイザーノードに関連した依存性マネージャーノードであって、非一時的なマシン読み取り可能なストレージ媒体に記憶されたマシン読み取り可能な依存性ツリーファイルを使用して前記スーパーバイザーにより監視されるノードのノード構成状態を監視するプロセッサを含む依存性マネージャーノードを更に備えた、請求項５に記載のシステム。
【請求項８】
前記ハートビート信号の状態は、ノードの構成状態を指示し、そして前記スーパーバイザーノードは、ノード構成状態を決定する前記依存性マネージャーが、ノードが誤って構成されたと指示するのに応答して、マシン読み取り可能な構成パッケージファイルを送信する、請求項７に記載のシステム。
【請求項９】
前記サーチコンダクタは、１つ以上の更新された結果レコードのセットの各候補レコードに対するフィールドスコアを計算し、前記更新された結果レコードのセットにおける各候補の第１スコアは、サーチ質問により指示されたスレッシュホールド値を満足し、そしてその更新された結果レコードを前記サーチマネージャーノードへ送信する、請求項２に記載のシステム。
【請求項１０】
前記サーチコンダクタは、候補結果レコードのデータがデータ圧縮アルゴリズムに従って圧縮されたと決定するのに応答して、データ圧縮アルゴリズムを使用して前記更新された結果レコードのセットにおける候補レコードに記憶されたデータを解凍する、請求項９に記載のシステム。
【請求項１１】
１つ以上の集合体に関連した新たな集合体スキーマファイルを受け取る質問インターフェイスモジュールを実行するプロセッサを含むノードを更に備え、少なくともサーチコンダクタノードは、新たなスキーマファイルに従ってサーチコンダクタに関連した１つ以上の集合体を自動的に再構成するように構成される、請求項２に記載のシステム。
【請求項１２】
前記パーティショナーは、スキーマファイルに従って集合体に記憶された各レコードへ独特のレコード識別子を指定し、そして集合体の各レコードに指定された独特のレコード識別子を使用して集合体の各パーティションに関連したマシン読み取り可能なインデックスファイルを生成する、請求項２に記載のシステム。
【請求項１３】
前記サーチマネージャーノードは、前記サーチコンダクタノードに１つ以上の新たなレコードのセットを配布し、そして前記サーチコンダクタは、その１つ以上の新たなレコードのセットを受け取るのに応答して、サーチファイルに従って集合体のパーティションに新たなレコードの各々を自動的に追加する、請求項１２に記載のシステム。
【請求項１４】
前記１つ以上のサーチマネージャーは、独特のレコード識別子のセットに対応する１つ以上のレコードを削除する要求を受け取って、その要求を少なくとも１つのサーチコンダクタへ配布するように更に構成され、そしてサーチコンダクタは、独特のレコード識別子に関連した各レコードを削除についてマークするように更に構成される、請求項１２に記載のシステム。
【請求項１５】
レコードを削除についてマークすることは、将来のサーチ結果レコードからそのレコードを除外する、請求項１４に記載のシステム。
【請求項１６】
各レコードに関連した独特のレコード識別子は、独特の識別子番号、集合体バージョン番号、集合体の名前及びパーティションバージョン番号の１つ以上を含む、請求項１２に記載のシステム。
【請求項１７】
前記サーチマネージャーノードは、１つ以上の新たなレコードを含む１つ以上の新たな集合体のセットを受け取り、そしてスキーマファイルに従って１つ以上のサーチコンダクタノードへ新たな集合体のセットを送出し、そして各サーチコンダクタノードは、１つ以上の新たな集合体を受け取るのに応答して、各サーチコンダクタノードに関連した１つ以上の集合体をスキーマファイルに従って新たな１つ以上のレコードのセットで自動的にポピュレートする、請求項１２に記載のシステム。
【請求項１８】
サーチマネージャーは、集合体を除去する要求を受け取り、サーチマネージャーのプロセッサは、集合体削除要求をサーチコンダクタへ転送するように構成され、そしてサーチコンダクタは、データベースから集合体を除去するように更に構成される、請求項２に記載のシステム。
【請求項１９】
前記サーチマネージャーは、前記サーチコンダクタの各々から前記サーチ結果レコードの各々を非同期で受け取る、請求項２に記載のシステム。
【請求項２０】
前記スキーマは、フィールドの名前、フィールドがインデックスされたかどうか、使用する圧縮、及びフィールドに対するデフォールトスコアリングアルゴリズムの１つ以上に従って集合体を記述する、請求項２に記載のシステム。
【請求項２１】
前記分析エージェントは、多数のレコードをより完全なレコードへと連結し、そしてサーチ結果レコードに対する隣接レコードに関する情報を決定するように更に構成される、請求項２に記載のシステム。
【請求項２２】
前記サーチコンダクタは、前記サーチマネージャーから受け取ったサーチ質問に基づいてサーチ結果レコードのサイズを限定する、請求項２に記載のシステム。
【請求項２３】
前記スーパーバイザーは、集合体における１つ以上のレコードを圧縮するようにパーティショナーに命令する、請求項２に記載のシステム。
【請求項２４】
前記スーパーバイザーは、ロードされるべき１つ以上の新たなパーティションを決定し、依存性マネージャーからノードに対するノード構成を要求するよう更に構成され、前記スーパーバイザーは、前記依存性マネージャーからノード構成を検索するようにノードのノードマネージャーに命令し、
前記ノードマネージャーは、ノードのメモリリソースを割り当てそして新たなパーティションをロードするように構成され、そして
新たなパーティションに関連したサーチコンダクタは、スキーマに従って、パーティションがロードされたことをスーパーバイザーに通知する、
請求項２に記載のシステム。
【請求項２５】
前記分析エージェントノードは、前記サーチマネージャーノードから受け取った質問結果のセットにおいて２つ以上のレコードを相関させるデータリンケージを識別し、そしてそのデータリンケージは、第２レコードに含まれたデータに関連して第１レコードに含まれたデータを相関させる、請求項２に記載のシステム。
【請求項２６】
インメモリデータベースをホストするシステムのサーチマネージャーコンピュータにより、データベースに質問するパラメータを含むサーチ質問を表わすバイナリデータを受け取り、そのシステムは、データベースの１つ以上の集合体を記憶するメインメモリを含む１つ以上のストレージノードを備え、各集合体は、１つ以上のレコードを含み；
コンピュータにより、サーチ質問を、そのサーチ質問に従って１つ以上のサーチコンダクタノードへ送出し、そのサーチ質問は、質問されるべき１つ以上の集合体のセットを指示し；
コンピュータにより、１つ以上の分析エージェントノードへ、１つ以上のサーチコンダクタからの受け取りに応答してサーチ質問に基づいてサーチ結果のセットを送出し、そのサーチ結果のセットは、サーチ質問を満足する１つ以上のレコードを含み、サーチ結果のセットの各レコードは、サーチ質問におけるスコアリングアルゴリズムに基づきあるスコアに関連付けされ；及び
１つ以上の分析エージェントノードから１つ以上のデータリンケージのセットを含むコンピュータファイルをコンピュータが受け取るのに応答して、コンピュータにより、分析エージェントノードから受け取った１つ以上のデータリンケージのセットに従ってサーチ結果のセットの１つ以上のレコードを更新する；
ことを含む、コンピュータで実施される方法。
【請求項２７】
前記コンピュータは、各々のサーチコンダクタからサーチ結果のサブセットを非同期で受け取る、請求項２６に記載の方法。
【請求項２８】
各々のサーチコンダクタノードから受け取ったサーチレコードの各サブセットは、各レコードに対して計算されたスコアに従ってランク付けされる、請求項２７に記載の方法。
【請求項２９】
質問されるべき集合体のセットに関連した各々のサーチコンダクタは、サーチ質問のパラメータに従ってサーチ結果の１つ以上のレコードを含む１つ以上のサーチ結果のセットを決定する、請求項２６に記載の方法。
【請求項３０】
コンピュータにより、マシン読み取り可能なスキーマファイルに従ってサーチコンダクタから１つ以上の集合体を受け取り、その集合体の各々は、１つ以上のフィールドを有する１つ以上のレコードのセットを含むものであり；
コンピュータにより、前記スキーマに従って各集合体をパーティショニングし；
コンピュータにより、前記スキーマに従ってパーティションのレコードを圧縮し；及び
コンピュータにより、サーチコンダクタに関連したパーティショナーに対応する各集合体に各パーティションを含ませるように１つ以上の関連サーチコンダクタに各パーティションを配布する；
ことを含む、コンピュータで実施される方法。
【請求項３１】
コンピュータにより、前記スキーマに従って各レコードセットにおけるレコードを断片化することを更に含む、請求項３０に記載の方法。
【請求項３２】
コンピュータにより、フィールドレベル、レコードレベル、パーティションレベル、集合体レベル及びデータベースレベルより成るグループから選択されたレベルにおいてレコードを解凍することを更に含む、請求項３０に記載の方法。
【請求項３３】
インメモリデータベースをホストする１つ以上のノードを備えたシステムにおいて、
集合体の１つ以上のパーティションを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む複数のストレージノードを備え、各ストレージノードにより記憶される集合体は、データベースの１つ以上のレコードを含み、そして各ストレージノードのストレージ媒体は、メインメモリを含み；
ユーザノードから受け取ったサーチ質問を使用して１つ以上のサーチコンダクタ質問を生成し、そのサーチ質問に従って１つ以上のサーチコンダクタノードへ１つ以上のサーチコンダクタ質問を送出し、そしてサーチ結果の１つ以上のセットを受け取るのに応答してサーチ質問に従って１つ以上の分析エージェントノードへサーチ結果の１つ以上のセットを転送するプロセッサを含むサーチマネージャーノードを更に備え；
サーチマネージャーノードからサーチ結果のセットを受け取るのに応答して１つ以上の分析アルゴリズムを実行するプロセッサを含む分析エージェントノードを更に備え；
サーチマネージャーからサーチコンダクタ質問を受け取るのに応答してサーチコンダクタ質問に従ってストレージノードのデータベースレコードの集合体に質問し、そしてサーチ結果セットの１つ以上のサーチ結果を識別するのに応答してサーチマネージャーノードへ１つ以上のサーチ結果のセットを送出するプロセッサを含むサーチコンダクタノードを更に備え、各々のサーチ結果は、サーチコンダクタ質問を満足するデータを含むデータベースレコードに対応し；及び
各ネットワークセグメントを経て通信する１つ以上のノード間の１つ以上の接続を含む複数のネットワークセグメントを更に備え、第１のネットワークセグメントは、サーチマネージャー、サーチコンダクタ及び分析エージェントを含む；
ようにされたシステム。
【請求項３４】
各々のネットワークセグメントは、通信形式に関連したリソース需要に基づき１つ以上の接続を含み、及び
前記通信形式は、サーチ質問データ、データベースレコードの１つ以上の集合体、状態データ、及び構成パッケージファイルよりなるグループから選択される、
請求項３３に記載のシステム。
【請求項３５】
各々の通信形式の前記リソース需要は、レイテンシー需要及び帯域巾需要に従って決定され、そのレイテンシー需要は、通信のための許容時間量に基づくものであり、そしてその帯域巾需要は、通信のためのデータ量に基づくものである、請求項３４に記載のシステム。
【請求項３６】
前記第１のネットワークセグメントは、サーチ質問データを通信する１つ以上の接続を含む、請求項３４に記載のシステム。
【請求項３７】
前記第１のネットワークセグメントは、ＩｎｆｉｎｉＢａｎｄを使用する物理的接続を含む、請求項３６に記載のシステム。
【請求項３８】
データベースレコードの１つ以上の集合体をパーティショニングしそしてその１つ以上の集合体を受け取るのに応答してスキーマファイルに従って１つ以上のストレージノードへその１つ以上の集合体を配布することを更に含み、
第２のネットワークセグメントは、各パーティショナーから１つ以上のストレージノードへ１つ以上の集合体を通信する１つ以上の接続を含む、
請求項３６に記載のシステム。
【請求項３９】
前記第２のネットワークセグメントは、ＩｎｆｉｎｉＢａｎｄを使用する第２の物理的接続を含む、請求項３８に記載のシステム。
【請求項４０】
前記第２のネットワークセグメントは、イーサネットを使用する第２の物理的接続を含む、請求項３９に記載のシステム。
【請求項４１】
システムの１つ以上のノードに関連した１つ以上の状態を連続的に監視し、そしてフェイルしたノードのフェイルしたリソースを指示する状態を受け取るのに応答して構成パッケージファイルを１つ以上のノードのフェイルしたノードへ送出するように構成されたプロセッサを含む１つ以上のスーパーバイザーノードを更に備え、
第３のネットワークセグメントは、各ノードの各状態を１つ以上のスーパーバイザーノードへ通信する１つ以上の接続を含み、そして構成パッケージは、スーパーバイザーノードからフェイルしたノードへ送出される、
請求項３８に記載のシステム。
【請求項４２】
前記第３のネットワークセグメントは、イーサネットを使用する第３の物理的接続を含む、請求項４１に記載のシステム。
【請求項４３】
１つ以上の構成パッケージファイル及び依存性ツリーを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む依存性マネージャー；及びフェイルしたノードに対する構成パッケージファイルを決定しそしてその構成パッケージファイルを、スーパーバイザーノードからの構成パッケージファイルの要求に応答して依存性ツリーに基づきスーパーバイザーノードへ送出するように構成されたプロセッサ；を更に備え、
前記第３のネットワークセグメントは、構成パッケージファイルの要求を通信する１つ以上の接続を更に含む、
請求項４１に記載のシステム。
【請求項４４】
スーパーバイザーモジュールを実行するプロセッサを含むコンピュータにより、ノードに記憶された１つ以上のソフトウェアモジュールを監視するノードマネージャーによって生成されるハートビート信号を監視し、そのハートビート信号は、ノードマネージャーにより監視される各ソフトウェアモジュールの状態を指示するバイナリデータを含み；
コンピュータにより、ノードのノードマネージャーから受け取られたハートビート信号に基づきノードの１つ以上のソフトウェアモジュールにおけるフェイルしたソフトウェアモジュールを検出し；
コンピュータにより、そのフェイルしたソフトウェアモジュールの検出に応答して、そのフェイルしたソフトウェアモジュールを回復するようにノードに命令するコマンドをノードのノードマネージャーへ自動的に送出し；及び
コンピュータにより、ノードマネージャーから受け取ったハートビート信号に基づいてノードマネージャーがそのモジュールを首尾良く回復したかどうか決定する；
ことを含む、コンピュータで実施される方法。
【請求項４５】
前記方法は、更に、
コンピュータにより、ノードマネージャーがスレッシュホールド試み回数内でモジュールを回復しないときにモジュールを実行するためのフェイルオーバーノードを決定し；
コンピュータにより、依存性マネージャーノードから前記モジュールに関連した構成パッケージを検索し；
コンピュータにより、フェイルオーバーノードに関連したフェイルオーバーノードマネージャーへ構成パッケージを送出し、フェイルオーバーノードマネージャーは、フェイルオーバーノードにモジュールをインストールするよう試み、そしてフェイルオーバーノードマネージャーは、モジュールを回復するよう試み、
コンピュータにより、フェイルオーバーノードマネージャーがフェイルオーバーノードにモジュールを首尾良くインストールしたかどうか決定し；及び
コンピュータにより、フェイルオーバーノードマネージャーがモジュールを首尾良く回復したかどうか決定する；
ことを含む、請求項４４に記載の方法。
【請求項４６】
コンピュータにより、フェイルオーバーノードマネージャーがフェイルオーバーノードにモジュールをインストールし損なったとき、又はフェイルオーバーノードマネージャーがスレッシュホールド試み回数内にモジュールを回復し損なったとき、モジュールを実行するための次のフェイルオーバーノードを決定し；
コンピュータにより、前記次のフェイルオーバーノードに関連した次のフェイルオーバーノードマネージャーへ構成パッケージを送出し；
コンピュータにより、前記次のフェイルオーバーノードマネージャーが前記次のフェイルオーバーノードにモジュールを首尾良くインストールしたかどうか決定し、及び
コンピュータにより、前記次のフェイルオーバーノードマネージャーがモジュールを首尾良く回復したかどうか決定する；
ことを更に含む、請求項４５に記載の方法。
【請求項４７】
コンピュータにより、１つ以上の次のフェイルオーバーノードマネージャーがモジュールを回復するための全体的スレッシュホールド試み回数を越えた後にモジュール欠陥警報を生成し、コンピュータは、モジュールを回復するための全体的試みスレッシュホールドに到達するまで次のフェイルオーバーノードを順次決定する、請求項４６に記載の方法。
【請求項４８】
コンピュータにより、モジュールを監視するノードマネージャーの欠陥を検出し；
コンピュータにより、モジュールを実行するフェイルオーバーノードを決定し、該フェイルオーバーノードは、フェイルオーバーノードマネージャーに関連したものであり；
コンピュータにより、依存性マネージャーノードからモジュールに関連した構成パッケージを検索し；
コンピュータにより、フェイルオーバーノードマネージャーへ構成パッケージを送出し、フェイルオーバーノードマネージャーは、フェイルオーバーノードにモジュールをインストールするように試み、そしてフェイルオーバーノードマネージャーは、モジュールを回復するように試み；
コンピュータにより、フェイルオーバーノードマネージャーがフェイルオーバーノードにモジュールを首尾良くインストールしたかどうか決定し；及び
コンピュータにより、フェイルオーバーノードマネージャーがモジュールを首尾良く回復したかどうか決定する；
ことを更に含む、請求項４４に記載の方法。
【請求項４９】
コンピュータにより、ノードが状態ｑｕｏに従って機能しないときノードがフェイルしたノードであることを決定し；
コンピュータにより、フェイルしたノードにより実行される１つ以上のモジュールを、フェイルしたノードから移行させそして１つ以上の新たなノードにおいて回復させることを決定し；
コンピュータにより、依存性マネージャーノードから１つ以上のモジュールの各々に対して構成パッケージを検索し；及び
コンピュータにより、各構成パッケージを１つ以上の新たなノードへ送出する；
ことを更に含む、請求項４８に記載の方法。
【請求項５０】
コンピュータにより、フェイルしたノードから移行された１つ以上のモジュールにおいてモジュールをインストールし且つ実行することのできる利用可能なリソースのセットを有する次の新たなノードを決定し；
コンピュータにより、モジュールを記憶する新たなノードの新たなノードマネージャーに、モジュールをアンロードするように命令し；及び
コンピュータにより、構成パッケージを次の新たなノードへ送出する；
ことを更に含む、請求項４９に記載の方法。
【請求項５１】
コンピュータにより、ハートビート信号をスーパーバイザーノードへ連続的に送信し；
回復コマンドを受け取ったとき、コンピュータにより、フェイルしたモジュールを回復し；及び
モジュールが回復したことをコンピュータが検出したとき、コンピュータにより、回復状態信号をスーパーバイザーノードへ送信する；
ことを含む、コンピュータで実施される方法。
【請求項５２】
スレッシュホールド回復試み回数に到達したとき、コンピュータにより、回復欠陥状態信号をスーパーバイザーノードへ送信することを更に含む、請求項５１に記載の方法。
【請求項５３】
ハートビート信号をスーパーバイザーノードへ送信しそしてノードにインストールされた１つ以上のソフトウェアモジュールの実行を監視するプロセッサを含む１つ以上のノード；及び
１つ以上のノードから受信した１つ以上のハートビート信号を監視しそして各ハートビート信号に基づいて各ノードの状態を決定するプロセッサを含む１つ以上のスーパーバイザーノード；
を備えた欠陥許容の分散型コンピューティングシステム。
【請求項５４】
前記ノードのプロセッサは、スーパーバイザーノードからソフトウェアモジュールを回復するコマンドを受け取るのに応答して、ノードにより実行されるソフトウェアモジュールを状態ｑｕｏ構成に回復させる試みをするよう構成された、請求項５３に記載のシステム。
【請求項５５】
ハートビート信号をスーパーバイザーノードへ送信し、１つ以上のノードのうちのノードにインストールされたソフトウェアモジュールを実行するよう構成されたプロセッサを含むフェイルオーバーノードを更に備えた、請求項５４に記載のシステム。
【請求項５６】
１つ以上のマシン読み取り可能な構成パッケージファイルを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む依存性マネージャーノードを更に備えた、請求項５５に記載のシステム。
【請求項５７】
前記スーパーバイザーノードのプロセッサは、ノードによりソフトウェアモジュールを回復するための試み回数を決定し、そして前記スーパーバイザーノードのプロセッサは、その試み回数がソフトウェアモジュールを回復するスレッシュホールド試み回数を越えるとの決定に応答して、ソフトウェアモジュールに関連した構成パッケージファイルを依存性マネージャーから自動的に検索する、請求項５６に記載のシステム。
【請求項５８】
前記スーパーバイザーノードのプロセッサは、依存性マネージャーから構成パッケージファイルを受け取るのに応答してその構成パッケージファイルをフェイルオーバーノードへ送出し、そしてソフトウェイモジュールの回復を試みるようにフェイルオーバーノードのプロセッサに命令する、請求項５７に記載のシステム。
【請求項５９】
前記依存性マネージャーノードのプロセッサは、構成パッケージファイルを識別する要求をスーパーバイザーノードから受け取るのに応答して、構成パッケージファイルをスーパーバイザーノードへ送出する、請求項５６に記載のシステム。
【請求項６０】
前記構成パッケージファイルは、ソフトウェアモジュールを実行するノードのハートビート信号のノード状態に従って欠陥として検出されたソフトウェアモジュールに関連付けされる、請求項５９に記載のシステム。
【請求項６１】
前記スーパーバイザーノードは、フェイルオーバーノードがソフトウェアモジュールを回復するにはリソースが不充分であることを指示するフェイルオーバーノードのノード状態を決定するのに応答して、フェイルオーバーノードへリソースシフトコマンドを送信する、請求項６０に記載のシステム。
【請求項６２】
前記フェイルオーバーノードのプロセッサは、前記リソースシフトコマンドに応答してフェイルオーバーノードからインストールされたソフトウェアモジュールを自動的にアンインストールし、そして前記フェイルオーバーノードは、スーパーバイザーノードから受け取ったソフトウェアモジュールのインストール及び回復を試みる、請求項６１に記載のシステム。
【請求項６３】
１つ以上のソフトウェアモジュールのうちのソフトウェアモジュールの冗長なコピーを記憶する非一時的マシン読み取り可能なストレージ媒体を含む冗長なノード；及びソフトウェアモジュールの冗長なコピーの実行を試みるように冗長なノードに命令するスーパーバイザーノードからのモジュールを回復するコマンドを受け取るのに応答して、ソフトウェアモジュールの冗長なコピーの実行を自動的に試みるように構成されたプロセッサ；を更に備えた、請求項５３に記載のシステム。
【請求項６４】
分散型コンピューティングシステムのコンピュータにより、ターゲットノードに関連したマシン読み取り可能で展開可能なパッケージファイルに対する要求を依存性マネージャーノードへ送出し、依存性マネージャーノードは、依存性ツリーに従ってシステムの１つ以上のノードに関連した１つ以上の展開可能なパッケージファイルを記憶する非一時的なマシン読み取り可能なストレージ媒体を含み；
コンピュータにより、依存性ノードから展開可能なパッケージファイルを受け取るのに応答してターゲットノードへ展開可能なパッケージファイルを送信し、ターゲットノードに関連した展開可能なパッケージファイルは、依存性ツリーに基づく１つ以上の依存性ファイルのセットを含み；及び
コンピュータにより、展開可能なパッケージにおける依存性のセットをターゲットノードにインストールするようにターゲットノードに命令する；
ことを含む、コンピュータで実施される方法。
【請求項６５】
パーティション、モジュール、ファイル及びデータより成るグループから依存性が選択される、請求項６４に記載の方法。
【請求項６６】
前記依存性マネージャーノードは、１つ以上のデータフレームから依存性をフェッチし、そして展開可能なパッケージをコンパイルする、請求項６４に記載の方法。
【請求項６７】
前記展開可能なパッケージファイルにおける各依存性ファイルは、ターゲットノードに関連した少なくとも１つの依存性ツリーを使用して依存性マネージャーノードにより決定される、請求項６４に記載の方法。
【請求項６８】
前記展開可能なパッケージファイルにおける各依存性ファイルは、依存性ファイルと、システムの１つ以上のノードのサブセットにインストールされた対応する依存性ファイルとの比較関係に基づく、請求項６７に記載の方法。
【請求項６９】
コンピュータにより、分散型コンピューティングシステムの１つ以上のノードの各々から、各ノードの状態を指示するハートビート信号を所定の間隔で受け取り；及び
コンピュータにより、各ハートビート信号に基づいて各ノードの状態を決定する；
ことを更に含む、請求項６４に記載の方法。
【請求項７０】
コンピュータにより、ターゲットノードから受信したハートビート信号に従ってターゲットノードにインストールされた１つ以上の依存性の欠陥を検出することを更に含み、コンピュータは、欠陥の検出に応答して展開パッケージを自動的に要求する、請求項６９に記載の方法。
【請求項７１】
コンピュータにより、システムのノードにインストールされた依存性ファイルに関連した売主サーバーから、その売主サーバーに関連した依存性ファイルを有するノードを更新するためのプロンプトを受け取ることを更に含み、展開パッケージファイルの１つ以上の依存性ファイルは、売主サーバーに関連した依存性ファイルを含む、請求項６９に記載の方法。
【請求項７２】
コンピュータにより、スーパーバイザーノードからターゲットノードを構成するための要求を受け取るのに応答してターゲットノードに関連した依存性ツリーを使用してターゲットノードにインストールされるべき１つ以上の依存性ファイルのセットを決定し；
コンピュータにより、１つ以上の依存性ファイルのセットの各依存性ファイルを、１つ以上の依存性ファイルを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む少なくとも１つのデータフレームからフェッチし；
コンピュータにより、１つ以上の依存性ファイルのセットを含む展開可能なパッケージファイルを生成し；及び
コンピュータにより、展開可能なパッケージファイルをスーパーバイザーノードへ送出する；
ことを含む、コンピュータで実施される方法。
【請求項７３】
コンピュータにより、第三者依存性ソースから依存性を更新する要求を受け取る際にターゲットノードに関連した依存性ツリーを更新することを更に含む、請求項７２に記載の方法。
【請求項７４】
コンピュータにより、更新された依存性ツリーに関連した依存性の更新を検出し；及び
コンピュータにより、更新された依存性を含む更新展開パッケージを、更新された依存性を有する各ノードへ自動的に送出し、各ノードの更新展開パッケージは、更新された依存性ツリーに基づく、
請求項７３に記載の方法。
【請求項７５】
１つ以上の依存性ファイルを記憶する非一時的なマシン読み取り可能なストレージメモリと、１つ以上の依存性ファイルの状態を監視するプロセッサとを含む１つ以上のノードを備え、各依存性ファイルは、第２のノードにインストールされる対応コンポーネントと比較関係を有するノードのコンポーネントであり；
１つ以上の各ノードの状態を監視しそして各ノードの状態に基づいて各ノードへ依存性ファイルのセットを含む展開可能なパッケージを送出するように構成されたプロセッサを含む１つ以上のスーパーバイザーノードを備え；及び
１つ以上のノードに関連した１つ以上の依存性ツリーファイルを記憶する非一時的なマシン読み取り可能なストレージ媒体と、ノードに関連した依存性ツリーに従い展開可能なパッケージファイルをコンパイルするように構成されたプロセッサとを含む１つ以上の依存性マネージャーノードを備え、その展開可能なパッケージファイルは、少なくとも１つのデータフレームに記憶される１つ以上の依存性ファイルのセットを含み、そして依存性マネージャーノードは、展開可能なパッケージを受け取るターゲットであるノードに関連した依存性ツリーに基づいて展開可能なパッケージに含ませる依存性を決定する；
ようにされたデータベース管理システム。
【請求項７６】
第三者により生成される依存性に対する１つ以上の依存性ファイルインストール更新に対応する１つ以上のマシン読み取り可能な更新ファイルを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む外部データフレーム；及び
第三者依存性ソースの依存性を有する１つ以上のノードのセットを更新するためにスーパーバイザーノードへ要求を送出するように構成されたプロセッサ；
を更に備え、依存性マネージャーノードは、第三者依存性ソースのデータフレームから受け取られる１つ以上の依存性更新を含む更新展開パッケージをコンパイルする、請求項７５に記載のシステム。
【請求項７７】
新たなノード状態をスーパーバイザーノードへ送出しそして新たなノードに関連した依存性ツリーに従って１つ以上の展開パッケージを受け取るノードマネージャーモジュールを実行するプロセッサを含む新たなノードを更に備えた、請求項７５に記載のシステム。
【請求項７８】
前記依存性マネージャーノードは、依存性ツリーを更新する要求がスーパーバイザーノードから受け取られたときにノードに関連した依存性ツリーを更新する、請求項７５に記載のシステム。
【請求項７９】
パーティション、モジュール、ファイル及びデータより成るグループから依存性が選択される、請求項７５に記載のシステム。
【請求項８０】
データベースの１つ以上のレコードを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む１つ以上のストレージノードを備え、各ストレージノードのストレージ媒体は、各ストレージノードのメインメモリであり；
分析モジュールを指示する分析の要求を受け取るのに応答して質問結果のセットを入力パラメータとして使用して分析モジュールを実行するプロセッサを含む分析エージェントノードを更に備え、質問結果のセットは、１つ以上のレコードを記憶する１つ以上のストレージノードから検索された１つ以上のレコードを表わすバイナリデータを含み；及び
１つ以上の分析モジュールを記憶する非一時的マシン読み取り可能なストレージ媒体と、新たな分析モジュールを１つ以上の分析エージェントノードへ送出するように構成されたプロセッサとを含む分析モジュールデータストアを更に備えた、インメモリデータベースシステム。
【請求項８１】
サーチ質問が分析の要求を含むことを決定するのに応答して質問結果のセットを分析エージェントノードへ送出するプロセッサを含むサーチマネージャーノードを更に備えた、請求項８０に記載のシステム。
【請求項８２】
前記サーチマネージャーノードは、サーチ質問をサーチコンダクタノードに送出する前に分析エージェントノードを識別する、請求項８１に記載のシステム。
【請求項８３】
前記サーチマネージャーノードは、サーチコンダクタノードにサーチ質問を送出する前に適用されるべき１つ以上の分析パラメータを決定する、請求項８２に記載のシステム。
【請求項８４】
サーチ質問が分析の要求を含むことサーチマネージャーが決定するのに応答して、その分析の要求で指示された分析モジュールを実行する１つ以上の分析エージェントノードを識別する、請求項８１に記載のシステム。
【請求項８５】
前記サーチマネージャーノードからサーチコンダクタ質問を受け取るのに応答して、サーチコンダクタ質問を実行しそしてサーチコンダクタ質問を満足するストレージノードの１つ以上のレコードを含む質問結果のサブセットを送出するプロセッサを含むサーチコンダクタノードを更に備え、
前記サーチマネージャーノードは、サーチ質問に従って１つ以上のサーチコンダクタ質問を生成し、そしてサーチマネージャーは、各々のサーチコンダクタ質問を各々のサーチコンダクタノードへ送出する、
請求項８４に記載のシステム。
【請求項８６】
前記サーチマネージャーノードは、各サーチコンダクタから受け取った質問結果の各サブセットの各々を総計し、それにより、質問結果のセットを生成する、請求項８５に記載のシステム。
【請求項８７】
前記サーチマネージャーノードは、バイナリデータ圧縮アルゴリズムに従って圧縮された質問結果のセットにおける少なくとも１つのレコードを分析エージェントへ送出する、請求項８０に記載のシステム。
【請求項８８】
前記分析モジュールは、曖昧性除去モジュール、リンクモジュール、スコア付けモジュール、及びリンクオンザフライモジュールより成るグループから選択される、請求項８０に記載のシステム。
【請求項８９】
クライアントコンピュータから新たな分析モジュールを受け取るのに応答して分析モジュールストアへ新たな分析モジュールを送出するプロセッサを含むシステムインターフェイスノードを更に備えた、請求項８０に記載のシステム。
【請求項９０】
１つ以上のアプリケーションプログラミングインターフェイスに従ってサーチ質問のデータを確認するプロセッサを含むシステムインターフェイスノードを更に備えた、請求項８０に記載のシステム。
【請求項９１】
１つ以上の分析エージェントに新たな分析モジュールを記憶し、そしてアプリケーションプログラミングインターフェイスに基づき１つ以上の新たな分析モジュールを生成するように構成されたシステムインターフェイスノードを更に備えた、請求項８０に記載のシステム。
【請求項９２】
前記サーチマネージャーに１つ以上のサーチ質問を送出するプロセッサを含むクライアントコンピュータを更に備えた、請求項８０に記載のシステム。
【請求項９３】
前記分析エージェントノードは、クライアントコンピュータから新たな分析モジュールを受け取るのに応答して分析エージェントノードが新たな分析モジュールを受け取ったことを指示するハートビート信号をスーパーバイザーノードに自動的に送信する、請求項８０に記載のシステム。
【請求項９４】
依存性マネージャーノードに記憶された新たな分析エージェントに関連した依存性ツリーに従って分析モジュールストアから新たな分析エージェントへ新たな分析モジュール送出するプロセッサを含む１つ以上のスーパーバイザーノードを更に備えた、請求項９３に記載のシステム。
【請求項９５】
データベースレコードの１つ以上の集合体を記憶する非一時的なマシン読み取り可能なストレージ媒体を含む１つ以上のストレージノードを備え、各集合体は、スキーマに従って１つ以上のレコードを記憶し、そしてそのスキーマは、各レコードにある形式のデータを記憶する１つ以上のフィールドを定義し；
更に、１つ以上のデータ形式のデータに関連したサーチパラメータを含むサーチ質問を受け取り、サーチ質問にフィールド処理が要求されるかどうか決定し、サーチ質問に基づいて１つ以上のサーチコンダクタ質問を生成し、そしてその１つ以上のサーチコンダクタ質問を１つ以上のサーチコンダクタノードへ送出するプロセッサを含むサーチマネージャー；及び
サーチコンダクタに関連した集合体に質問し、そしてサーチマネージャーノードからサーチコンダクタ質問を受け取るのに応答してサーチコンダクタ質問の１つ以上のパラメータを満足するデータを含む１つ以上の結果レコードのセットをサーチマネージャーへ送出するプロセッサを含むサーチコンダクタノード；
を備えたシステム。
【請求項９６】
前記サーチマネージャーは、サーチ質問の少なくとも１つのパラメータに一致するデータを含むサーチ結果レコードの第１セットを受け取り、そのレコードのフィールドは、第１のスキーマに基づくものであり、及び
前記サーチマネージャーは、サーチ質問の少なくとも１つのパラメータに一致するデータを含むサーチ結果レコードの第２セットを受け取り、そのレコードのフィールドは、第２のスキーマに基づくものである、
請求項９５に記載のシステム。
【請求項９７】
前記サーチコンダクタは、１つ以上のレコードの各フィールドにおけるデータの形式とサーチ質問のデータの形式との一致に基づいて、サーチパラメータを満足する１つ以上のレコードの各フィールドをマッチングさせる、請求項９５に記載のシステム。
【請求項９８】
前記サーチコンダクタは、各レコードのフィールドにおけるデータと１つ以上のサーチパラメータとの間の一致の数に基づき各レコードに対するスコアを指定する、請求項９７に記載のシステム。
【請求項９９】
前記サーチコンダクタは、一致の数に基づいて集合体のレコードの各フィールドをスコア付けし、そして各レコードに指定されるスコアは、サーチコンダクタ質問により特定されるサーチアルゴリズムに基づくものである、請求項９８に記載のシステム。
【請求項１００】
前記サーチコンダクタ質問は、スレッシュホールドスコア値を示し、そして結果レコードのセットの各レコードに指定されるスコアは、スレッシュホールドスコアを満足する、請求項９８に記載のシステム。
【請求項１０１】
前記サーチコンダクタは、前記サーチコンダクタに関連した集合体の各レコードに指定されたスコアに基づき結果レコードのセットを分類する、請求項９８に記載のシステム。
【請求項１０２】
前記サーチマネージャーのプロセッサは、サーチ質問においてフィールド処理が要求されたとの決定に応答して、サーチ質問に従って１つ以上のフィールドに対してフィールド処理を実行する、請求項９５に記載のシステム。
【請求項１０３】
コンピュータにより、データエレメントのセットで受信された１つ以上のデータエレメントに適用すべき圧縮技術を決定し、コンピュータは、データエレメントのデータ形式に基づき各データエレメントに適用すべき圧縮技術を決定するためのスキーマを使用し；
コンピュータにより、そのスキーマで定義される圧縮技術を使用してデータエレメントを圧縮し、その圧縮技術は、データエレメントがサーチ質問に応答して返送されるときに個々に解凍されるようにデータエレメントを圧縮し；
コンピュータにより、データエレメントのデータ形式のデータを記憶するレコードのフィールドに各圧縮されたデータエレメントを記憶し；
コンピュータにより、フィールドごとに基準テーブルにおけるフィールドノーテーションをスキーマに従って関連付け、その代表的ノーテーションは、フィールドのデータ形式を識別し；
コンピュータにより、サーチコンダクタから受け取ったサーチ質問を満足する１つ以上のデータエレメントのセットに対してデータベースに質問し；及び
コンピュータにより、サーチ質問を満足する１つ以上のデータエレメントのセットを識別するのに応答して適用すべき圧縮技術を使用してサーチ質問を満足する１つ以上のデータエレメントのうちの１つ以上の各データエレメントを解凍し、サーチ質問を満足しない各データエレメントは圧縮されたままである；
ようにされる、コンピュータで実施される方法。
【請求項１０４】
前記コンピュータは、トークンテーブル、Ｎグラム圧縮、シリアルデイナンバー圧縮、及びバイナリナンバー圧縮より成るグループから選択された圧縮技術を使用してデータを圧縮する、請求項１０３に記載の方法。
【請求項１０５】
コンピュータにより、レコードの１つ以上のフィールドにおけるデータエレメントを、断片データへと断片化し、その断片データは、親データエレメントより粒度の大きなレコードのフィールドにおけるデータエレメントであり、そして各断片データは、粒度の大きなデータベースフィールドに関連付けられ；及び
コンピュータにより、前記断片データを同じパーティションに連続的に記憶する、
請求項１０３に記載の方法。
【請求項１０６】
コンピュータにより、断片レコード識別子を各断片データに関連付け、その断片レコード識別子は、断片データに対する親データエレメントを識別する、請求項１０５に記載の方法。
【請求項１０７】
コンピュータにより、第１レコードの１つ以上のフィールドにおけるデータエレメントを含む第１のデータエレメントオブジェクトを、その第１のデータエレメントオブジェクトに等しい第２のデータエレメントオブジェクトを参照するデータエレメントノーテーションオブジェクトに置き換え、その第２のデータエレメントオブジェクトは、第２レコードの１つ以上のフィールドにデータエレメントを含む、請求項１０３に記載の方法。
【請求項１０８】
コンピュータにより、ソフトウェアモジュールから受け取った質問に応答して第１オブジェクトについてデータベースに質問し；及び
コンピュータにより、第１オブジェクトに置き換わった参照オブジェクトにより参照される第２オブジェクトをソフトウェアモジュールへ出力する；
ことを更に含む、請求項１０７に記載の方法。
【請求項１０９】
前記コンピュータは、トークンテーブル技術を使用して１つ以上のフィールドを圧縮し、更に、
コンピュータにより、新たなデータを記憶する１つ以上の新たなフィールドをレコードに追加し、各フィールドは、トークンテーブルに関連付けられ；
コンピュータにより、新たなデータが関連トークンテーブルの既存データに一致しないときに新たなフィールドを圧縮し；及び
コンピュータにより、新たなフィールドの新たなデータを使用してトークンテーブルを更新する；
ことを含む、請求項１０３に記載の方法。
【請求項１１０】
コンピュータにより、旧式技術に従って圧縮されたデータを解凍し；及び
コンピュータにより、改良型圧縮技術に従ってデータを圧縮する；
ことを更に含む、請求項１０９に記載の方法。
【請求項１１１】
コンピュータにより、トークンテーブルの低い番号のインデックスに頻度×長さを含む高い重み付けのデータを記憶する、請求項１０９に記載の方法。
【請求項１１２】
前記コンピュータは、Ｎグラムテーブル技術を使用して１つ以上のフィールドを圧縮し、更に、
コンピュータにより、新たなデータを記憶する１つ以上の新たなフィールドをレコードに追加し、各フィールドは、Ｎグラムテーブルに関連付けられ；
コンピュータにより、新たなデータが関連Ｎグラムテーブルの既存データに一致しないときに新たなフィールドを圧縮し；及び
コンピュータにより、新たなフィールドの新たなデータを使用してＮグラムテーブルを更新する；
ことを含む、請求項１０４に記載の方法。
【請求項１１３】
コンピュータにより、旧式技術に従って圧縮されたデータを解凍し；及び
コンピュータにより、改良型圧縮技術に従ってデータを圧縮する；
ことを更に含む、請求項１１２に記載の方法。
【請求項１１４】
コンピュータにより、Ｎグラムテーブルの低い番号のインデックスに頻度×長さを含む高い重み付けのデータを記憶する、請求項１１２に記載の方法。
【請求項１１５】
コンピュータにより、レコード記述子バイトのオフセットを使用してフィールドのセットをサーチし；
コンピュータにより、アクセスしたデータをフィールドレベルで解凍し；及び
コンピュータにより、アクセスしたデータを返送する；
ことを更に含む、請求項１０４に記載の方法。
【請求項１１６】
コンピュータにより、質問を満足するフィールドのセットが見つかったとき解凍を停止することを更に含む、請求項１１５に記載の方法。
【請求項１１７】
１つ以上の集合体を記憶する１つ以上のノードを備え、各集合体は、１つ以上のレコードのセットを含み、各レコードは、データを記憶するフィールドのセットを含み、及び
集合体に関連したスキーマに従って１つ以上のフィールドを圧縮する圧縮プロセッサを更に備えた、コンピューティングシステム。
【請求項１１８】
前記圧縮プロセッサは、フィールドに記憶されたデータのデータ形式に基づき１つ以上のフィールドを圧縮する、請求項１１７に記載のシステム。
【請求項１１９】
前記圧縮プロセッサは、トークンテーブル、Ｎグラム圧縮、シリアルデイナンバー圧縮及びバイナリナンバー圧縮より成るグループから選択された圧縮技術を使用してフィールドを圧縮する、請求項１１７に記載のシステム。
【請求項１２０】
関連集合体をスキーマに従って１つ以上のパーティションへと区画化する１つ以上のパーティショナーを更に備えた、請求項１１９に記載のシステム。
【請求項１２１】
前記圧縮プロセッサは、レコードの１つ以上のフィールドに断片データを記憶し、及び
前記圧縮プロセッサは、集合体のパーティションに断片データを連続的に記憶する、
請求項１２０に記載のシステム。
【請求項１２２】
前記断片データの各々は、その断片データの起点レコードを識別する１つ以上の断片レコード識別子に関連付けられる、請求項１２１に記載のシステム。
【請求項１２３】
複数のフィールドは、意味的に同様のデータを記憶する、請求項１２２に記載のシステム。
【請求項１２４】
１つ以上のフィールドは、ゼロ以上の値のセットを含むデータ値のアレイを記憶する、請求項１１７に記載のシステム。
【請求項１２５】
レコードは、スキーマに従って一緒にグループ化される複数のフィールドを含むオブジェクトである、請求項１２４に記載のシステム。
【請求項１２６】
パーティションは、オブジェクトに関連した参照値を有する値参照テーブルを記憶し、
オブジェクトは、第１のレコードに記憶され、そして複数のグループ化されたフィールドを含み、及び
第２のレコードは、参照テーブルに従ってオブジェクトに関連した参照値を記憶する、
請求項１２５に記載のシステム。
【請求項１２７】
オブジェクトの１つ以上のオブジェクト値を１つ以上のモジュールプロセッサへ出力する１つ以上の出力プロセッサを更に備えた、請求項１１７に記載のシステム。
【請求項１２８】
圧縮プロセスは、第１のレコードに記憶された更新オブジェクトに従って第２のレコードに記憶された参照値を更新するように構成される、請求項１１７に記載のシステム。
【請求項１２９】
圧縮の前にレコードのフィールドに記憶されたデータを正規化する正規化プロセッサを更に備えた、請求項１１７に記載のシステム。
【請求項１３０】
フィールドに各々関連した１つ以上のトークンテーブルを記憶するトークンテーブルストアを更に備え、圧縮プロセッサは、各々の新たなフィールドに関連した各々のトークンテーブルに従って新たなデータを有する１つ以上の新たなフィールドをレコードに追加する、請求項１１７に記載のシステム。
【請求項１３１】
圧縮プロセッサは、新たなデータがトークンテーブルの既存データに一致しないときに第２の圧縮技術を適用する、請求項１１７に記載のシステム。
【請求項１３２】
圧縮プロセッサは、新たなデータがトークンテーブルの既存データに一致しないときに新たなデータに従ってトークンテーブルを更新する、請求項１１７に記載のシステム。
【請求項１３３】
圧縮プロセッサはトークンテーブルを周期的に更新する、請求項１１７に記載のシステム。
【請求項１３４】
オフセットデータを含む１つ以上の記述子バイトは、検索のためにフィールドのデータをアドレスする、請求項１１７に記載のシステム。
【請求項１３５】
１つ以上のフィールドのデータは、サーチコンダクタプロセッサにより集合体のスキーマに従ってインデックス及び／又は圧縮される、請求項１１７に記載のシステム。
【請求項１３６】
１つ以上のフィールドのデータは、パーティショナーにより集合体のスキーマに従ってインデックス及び／又は圧縮される、請求項１１７に記載のシステム。
【請求項１３７】
サーチコンダクタプロセッサは、フィールドレベルでサーチ質問を満足するデータをフェッチ及び解凍する、請求項１１７に記載のシステム。
【請求項１３８】
サーチコンダクタプロセッサは、サーチ質問を満足するデータのセットが返送されるときにレコードの解凍を停止するように構成される、請求項１３７に記載のシステム。
【請求項１３９】
フィールドに各々関連した１つ以上のＮグラムテーブルを記憶するＮグラムテーブルストアを更に備え、圧縮プロセッサは、各々の新たなフィールドに関連した各々のＮグラムテーブルに従って新たなデータを有する１つ以上の新たなフィールドをレコードに追加する、請求項１１７に記載のシステム。
【請求項１４０】
圧縮プロセッサは、新たなデータがＮグラムテーブルの既存データに一致しないときに新たなデータに従ってＮグラムテーブルを更新する、請求項１１７に記載のシステム。
【請求項１４１】
圧縮プロセッサはＮグラムテーブルを周期的に更新する、請求項１１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、インメモリ(in-memory)データベースに関するもので、より詳細には、インメモリデータベース内でのファセットサーチ及びサーチ示唆に関する。本発明は、一般的に、データベースに関するもので、より詳細には、インメモリデータベースに関する。本発明は、一般的に、インメモリデータベースに関するもので、より詳細には、インメモリデータベースに使用するハードウェア構成に関する。本発明は、一般的に、データベースアーキテクチャーに関するもので、より詳細には、欠陥許容(fault tolerant)システムアーキテクチャーに関する。又、本発明は、一般的に、データベースに関するもので、より詳細には、インメモリデータベースに使用される依存性マネージャーに関する。本発明は、一般的に、インメモリデータベースに関するもので、より詳細には、プラグ型インメモリ分析モジュールに関する。本発明は、一般的に、インメモリデータベースに関するもので、より詳細には、インメモリデータベース内での非排他的サーチに関する。本発明は、一般的に、データ圧縮及びデータベースに関するもので、より詳細には、インメモリデータベース及びドキュメントデータベースに使用するための圧縮方法に関する。
【背景技術】
【０００２】
ファセットサーチは、キーワードサーチで始めて編成された簡単な仕方でサーチ結果を通して進む増分的サーチ及びブラウズ経験をユーザに与えるものである。ファセットサーチは、多くの場合に、サーチ結果のマップにサービスしてサーチ結果の編成及びコンテンツへ有用なインサイトを与えるのに使用される。又、ファセットナビゲーションは、ユーザが非常に簡単な仕方でサーチ結果を系統的に絞り込みするのを許す。ファセットサーチ及びナビゲーションは、多数の効果があるために、種々様々なコンテキスト及びプラットホームにわたって迅速に展開される。不都合なことに、ファセットエンジンが機能する仕方は、非常に低速で且つ非常にメモリ集中的であり、これら形式のサーチエンジンが良好に且つ拡張的に機能するのを妨げる。
【０００３】
それ故、高精度で、高速で且つ拡張可能なファセットサーチエンジンが依然要望されている。
【０００４】
コンピュータは、膨大な量の情報を記憶しそしてそれら情報にアクセスするのに使用されるパワフルなツールであり、一方、データベースは、ユーザに容易なアクセスを与えながらコンピュータシステムに情報を記憶する共通のメカニズムである。典型的に、データベースは、情報の「フィールド」を有する「レコード」として記憶される情報の編成された集合体である（例えば、レストランのデータベースは、その地域の各レストランのレコードを有し、各レコードは、レストランの特徴、例えば、名前、住所、料理の種類、等を記述するフィールドを含む）。
【０００５】
動作中に、データベース管理システムは、ディスクのようなストレージ装置からデータを検索するか又はそこにデータを存続させることをしばしば要求する。不都合なことに、そのようなストレージ装置へのアクセスは、若干低速である。データへのアクセスを加速するため、データベースは、典型的に、最近使用されたデータオブジェクトを記憶するのに割り当てられた比較的高速なメモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））の一部分である「キャッシュ」又は「バッファキャッシュ」を使用する。メモリは、典型的に、半導体又は他の電気的ストレージ媒体に設けられ、そしてメモリに維持されたデータをディスクに記憶されたデータより迅速にアクセスできるようにする高速データバスを経てＣＰＵ（中央処理ユニット）に結合される。
【０００６】
この問題の解消を試みるときに取られる１つの解決策は、メモリのデータベースに全ての情報を記憶することであるが、コンピュータシステムに設けられるメモリは、サイズが限定されているために、大規模なデータベースの取り扱いを試みるときに直面する多数の障害がある。
【０００７】
従って、大規模において高い速度でデータを記憶及び検索する改善された方法が要望され続けている。
【０００８】
コンピュータは、膨大な量の情報を記憶しそしてそれら情報にアクセスするのに使用されるパワフルなツールであり、一方、データベースは、ユーザに容易なアクセスを与えながらコンピュータシステムに情報を記憶する共通のメカニズムである。典型的に、データベースは、情報の「フィールド」を有する「レコード」として記憶される情報の編成された集合体である（例えば、レストランのデータベースは、その地域の各レストランのレコードを有し、各レコードは、レストランの特徴、例えば、名前、住所、料理の種類、等を記述するフィールドを含む）。
【０００９】
動作中に、データベース管理システムは、ディスクのようなストレージ装置からデータを検索するか又はそこにデータを存続させることをしばしば要求する。不都合なことに、そのようなストレージ装置へのアクセスは、若干低速である。データへのアクセスを加速するため、データベースは、典型的に、最近使用されたデータオブジェクトを記憶するのに割り当てられた比較的高速なメモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））の一部分である「キャッシュ」又は「バッファキャッシュ」を使用する。メモリは、典型的に、半導体又は他の電気的ストレージ媒体に設けられ、そしてメモリに維持されたデータをディスクに記憶されたデータより迅速にアクセスできるようにする高速データバスを経てＣＰＵ（中央処理ユニット）に結合される。
【００１０】
この問題の解消を試みるときに取られる１つの解決策は、メモリのデータベースに全ての情報を記憶することであるが、コンピュータシステムに設けられるメモリは、サイズが限定されているために、大規模なデータベースの取り扱いを試みるときに直面する多数の障害がある。それらの障害の幾つかは、必要なネットワーク、異なるノードに要求されるハードウェア、等を含めて、データベースを動作するのに要求される技術を決定することを含む。
【００１１】
従って、大規模において高い速度でデータを記憶及び検索する改善された方法が要望され続けている。
【００１２】
コンピュータは、膨大な量の情報を記憶しそしてそれら情報にアクセスするのに使用されるパワフルなツールである。データベースは、ユーザに容易なアクセスを与えながらコンピュータシステムに情報を記憶する共通のメカニズムである。典型的に、データベースは、情報の「フィールド」を有する「レコード」として記憶される情報の編成された集合体である（例えば、レストランのデータベースは、その地域の各レストランのレコードを有し、各レコードは、レストランの特徴、例えば、名前、住所、料理の種類、等を記述するフィールドを含む）。
【００１３】
しばしば、データベースは、大量のデータを記憶しそしてそれにアクセスできるようにするためにコンピュータのクラスターを使用する。これは、コンピュータクラスターの状態を管理することを要求する。この問題の解消を試みるときに取られる１つの解決策は、システムを維持するのに必要なツールに現場で又は離れたところからアクセスできる専門家のチームを利用することである。しかしながら、大規模なデータベースと共にそのような方法を利用するよう試みるときに直面する多数の障害がある。
【００１４】
従って、大規模における欠陥許容及び高い利用性の改善された方法が要望され続けている。
【００１５】
パッケージ管理システムは、ソフトウェア、オペレーティングシステムコンポーネント、アプリケーションプログラム、サポートライブラリー、アプリケーションデータ、一般的ドキュメント及び他のデータのような適当なコンポーネントに対する手動インストール及び更新の必要性をシステム又はプロセスから排除するリモート統治及びソフトウェア配布技術を通して編成時間及び金銭を節約するよう設計されている。パッケージ管理システムに関連した分野における１つの従来の解決策は、レッドハット(Red Hat)パッケージマネージャー（ＲＰＭ）である。パッケージマネージャーは、ソフトウェアプログラム及び関連コンポーネントをインストール及び／又は更新するための均一な仕方を提示する。
【００１６】
ソフトウェア又はデータパッケージのセットをインストールするため、パッケージマネージャーは、パッケージ及びその依存パッケージをグラフにおいてトポロジー順に順序付けする。その後、パッケージマネージャーは、グラフの底部にパッケージを収集し、そしてそれらパッケージを最初にインストールする。最後に、パッケージマネージャーは、グラフを上に移動し、そしてパッケージの次のセットをインストールする。
【００１７】
しかしながら、データベース管理システムに関連した分野の従来の解決策は、あるパッケージマネージャーはシステムのソフトウェア構成しか保持せず、メタデータ又は一次データ収集依存性をサポートしないことに言及している。データベース、特に、インメモリデータベース又は他の分散型ストレージアーキテクチャーでは、展開がソフトウェアと同程度にデータに焦点を当て、それ故、データ展開に要求される依存性ツリーを維持することが本質的となる。
【００１８】
従来の技術は、従来の分散型コンピューティングアーキテクチャーにおいて１つ以上のコンピュータのクラスターにわたりソフトウェアコンポーネント及び関連依存性の展開、インストール及び構成を自動化する。必要とされるのは、インメモリデータベース及び他の分散型データプラットホームのような分散型コンピューティングアーキテクチャーにおいて分散型データベースの一次データストアのデータ、メタデータ及びソフトウェアの展開、インストール及び構成を自動化する解決策である。更に、従来の解決策は、サービス及びデータのスタティックなセットを展開することに焦点を当てているので、従来のシステムは、サービス又はデータ欠陥を検出し、次いで、データ、メタデータ及びソフトウェアのパッケージを分散型システム内の他の利用可能なノードへ移動することによりそれらの欠陥から自動的に回復する能力に欠ける。
【００１９】
上述した理由で、データ管理システムに対してシステム構成及び依存性の首尾良い実行を保証し／維持するために改善されたパッケージ管理アプリケーションが要望される。
【００２０】
慣習的なデータベースは、ユーザがエンティティに関連した情報の断片を見つけることを許し、そして数百万又は数十億のレコードがそのエンティティについて記述するが、それらのレコードは、一般的に、公式な外部キー関係なしに一緒にリンクされない。大きなレコード集合体は、非公式で、信頼性のない又は不存在の外部キー関係で存在している。これは、１つのエンティティに関連した全てのレコードを一緒に寄せ集めることを非常に困難にする。
【００２１】
慣習的な解決策は、そのような集合体内の全てのデータを事前にリンクし、一度レコードを見つけると、直接的にレコードの集合体に導くようにすることである。この慣習的な解決策は、２つの異なる問題を有する。
【００２２】
第１に、大きなレコード集合体を事前にリンクすることは、著しい時間を要する集中プロセスである。これは、新たなレコードをリンクされた集合体へと一体化するのに要する時間に顕著な遅れを課し、その集合体におけるデータのタイムラインに悪影響を及ぼす。
【００２３】
第２に、データを事前にリンクすることは、定義によれば、その事前リンクを遂行するのに使用されるモデルに限定され、どれほど強く又は弱くレコードをリンクするかのパラメータを変更するためのシステムのユーザの能力を甚だしく低下させる。又、事前リンクは、事前リンクステップの時間に利用できるデータに限定される。
【００２４】
別の解決策は、データの事前リンクを回避するが、むしろ、ユーザの質問に応答して、リアルタイムでリンクし又は「オンザフライでリンクする」ことである。この解決策は、タイムラインの問題を回避しつつ新たなレコードを集合体に即座に関与させるのを許す。又、リンクプロセスに色々なアルゴリズム及びパラメータを使用してリンクを行うために種々様々なモデルを適用することを許す。この解決策の慣習的な欠点は、データ集中質問を実行しそして受け容れられる双方向応答時間を達成する能力にある。これは、埋め込み型分析を伴うインメモリデータベースに集合体を入れることで克服される。
【００２５】
それ故、この分野では、データをどのように管理し、準備しそしてシステム内に記憶するかについて変更を行う必要なくデータをリアルタイムで処理するように設計された複数のカスタマイズされた分析モデルをサポートできる柔軟なデータベースアーキテクチャーが要望される。
【００２６】
データのアクセスは、構造化及び半構造化データの方が非構造化データより、簡単で、より正確で且つ著しく速い。キーデータフィールドを指示することにより構造化及び半構造化データを使用してサーチを遂行するときは、非常に短い時間フレームにおいて非常に正確な結果を得ることができるが、質問に関連した多数のレコードが結果リストから除外されることも考えられる。これが起きるのは、レコードが異なる構成で集合体に記憶されるか、又はレコードが質問で特定される幾つかのフィールドに対応する幾つかの欠落又はナルフィールドを有するからである。
【００２７】
それ故、異なる構成のレコードを混合及びマッチングするのを許す改善された想起能力を伴うサーチ方法が要望される。
【００２８】
コンピュータは、膨大な量の情報を記憶しそしてそれら情報にアクセスするのに使用されるパワフルなツールであり、一方、データベースは、ユーザに容易なアクセスを与えながらコンピュータシステムに情報を記憶する共通のメカニズムである。典型的に、データベースは、情報の「フィールド」を有する「レコード」として記憶される情報の編成された集合体である（例えば、レストランのデータベースは、その地域の各レストランのレコードを有し、各レコードは、レストランの特徴、例えば、名前、住所、料理の種類、等を記述するフィールドを含む）。
【００２９】
しばしば、データベースは、大量のデータを記憶しそしてそれにアクセスできるようにするためにコンピュータのクラスターを使用する。これは、大量の情報ストレージスペースを要求する。情報をホストするのに必要なストレージスペースの量を減少するために、しばしば、圧縮が使用されるが、多くの通常の圧縮方法では、レコード全体又は多数のレコードを、それがアクセスされるたびに解凍する必要があるので、計算負荷が著しく増加する。
【００３０】
従って、大規模において高い速度でデータを記憶及び検索する改善された方法が要望され続けている。
【発明の概要】
【００３１】
ここに開示されるのは、インメモリデータベースをホストするシステムアーキテクチャーであって、システムの分散型コンピューティングアーキテクチャー内でホストされるインメモリデータベースのデータレコードを記憶、操作及び検索するためのコンピューティング装置及びソフトウェアモジュールの適当な組み合わせを含むものである。システムのコンピューティングハードウェアにより実行されるソフトウェアモジュールは、システムインターフェイス、サーチマネージャー、分析エージェント、サーチコンダクタ、パーティショナー、データ集合体、スーパーバイザー、依存性マネージャーを含み、それらソフトウェアモジュールの適当な組み合わせは、インメモリデータベースをホストするシステムアーキテクチャーに見られるものである。
【００３２】
ソフトウェアモジュールを実行するノードは、レコードに記憶されたデータを圧縮し、インメモリ記憶、質問及び検索を大量データセットに対して実現可能にする。圧縮及び解凍は、データベースのほぼどのレベルでも（例えば、データベースレベル、集合レベル、レコードレベル、フィールドレベルでも）行うことができる。ソフトウェアモジュールを実行するノードは、分散型インメモリデータベースにＪａｖａＳｃｒｉｐｔオブジェクトノーテーション（ＪＳＯＮ）のような複素数データ構造体を記憶するためのサポートを与える。インメモリデータベースシステムの実施形態は、システムの分散型アーキテクチャーであると共に、欠陥サービスを監視しそして回復できるシステムの種々のハードウェア及びソフトウェアモジュールであるために、欠陥許容である。欠陥許容は、とりわけ、システムコンポーネント冗長性、及びシステムコンポーネントの自動回復手順を含む。インメモリデータベースは、スコアリング方法を使用してデータにスコア付けすることによりデータに効果的に且つ効率的に質問する。サーチ結果は、データにスコア付けするのに使用されるスコアリング方法に従ってランク付けされ、それにより、質問を実行するユーザ及び／又はノードは、ある質問から次の質問へ更に調整され且つ状況的に関連した仕方でデータを利用できるようにする。分析エージェントを実行するノードは、データのインメモリデータベース画像に記憶されたレコードに対して種々の進歩型分析を遂行する。あるケースでは、サーチコンダクタによるサーチ質問結果のセットで検索されたレコードに対して分析が行われる。
【００３３】
ある実施形態において、インメモリデータベースをホストするコンピューティングシステムは、データベースの１つ以上のレコードの集合体を受け取るのに応答して、その集合体に関連したマシン読み取り可能なスキーマに基づいてその集合体を圧縮すべきかどうか決定し、スキーマファイルに基づいてその集合体を１つ以上のパーティションへ論理的にパーティショニングし、そしてスキーマファイルに基づき１つ以上のパーティションを１つ以上のストレージノードに配布するように構成されたプロセッサを含むパーティショナーノード；ストレージノードであって、それに関連したパーティショナーから受け取ったパーティションを記憶する非一時的なマシン読み取り可能なメインメモリを含むストレージノード；システムのクライアント装置からサーチ質問を受け取り、そしてクライアント装置からサーチ質問を受け取るのに応答してそのサーチ質問を１つ以上のサーチコンダクタへサーチコンダクタ質問として送出するプロセッサを含むサーチマネージャーノードであって、そのサーチ質問は、そのサーチ質問を満足する１つ以上のレコードに関連したパラメータを含むマシン読み取り可能なコンピュータファイルであるサーチマネージャーノード；１つ以上のパーティションに関連したサーチコンダクタノードであって、サーチマネージャーノードからサーチコンダクタ質問を受け取るのに応答して、そのサーチコンダクタ質問により指示される１つ以上のパーティションのセットに質問し、その質問されたパーティションのセットに記憶された１つ以上の候補レコードを識別し、スコアリングアルゴリズムを使用して各々の候補レコードに対する第１スコアを計算し、そしてスレッシュホールド値を満足する１つ以上の候補レコードを含む１つ以上の質問結果のセットをサーチマネージャーへ送出するように構成されたプロセッサを含むサーチコンダクタノード；及びサーチマネージャーノードから受け取られる質問結果のセットにおいて２つ以上のレコードを相関するデータリンケージを識別するのに応答して質問結果のセットに対して１つ以上のデータリンケージのセットを含むマシン読み取り可能なコンピュータファイルを自動的に生成するように構成されたプロセッサを含む分析エージェントノードであって、そのデータリンケージは、第２レコードに含まれたデータに関連して第１レコードに含まれたデータを相関させるものである分析エージェントノード；を備えている。
【００３４】
別の実施形態において、コンピュータ実施方法は、インメモリデータベースをホストするシステムのサーチマネージャーコンピュータにより、データベースに質問するパラメータを含むサーチ質問を表わすバイナリデータを受け取ることを含み、そのシステムは、データベースの１つ以上の集合体を記憶するメインメモリを含む１つ以上のストレージノードを備え、各集合体は、１つ以上のレコードを含むものであり；コンピュータにより、サーチ質問を、そのサーチ質問に従って１つ以上のサーチコンダクタノードへ送出することを更に含み、そのサーチ質問は、質問されるべき１つ以上の集合体のセットを指示するものであり；コンピュータにより、１つ以上の分析エージェントノードへ、１つ以上のサーチコンダクタからの受け取りに応答してサーチ質問に基づいてサーチ結果のセットを送出することを更に含み、そのサーチ結果のセットは、サーチ質問を満足する１つ以上のレコードを含むものであり、サーチ結果のセットの各レコードは、サーチ質問におけるスコアリングアルゴリズムに基づきあるスコアに関連付けされ；及び１つ以上の分析エージェントノードからの１つ以上のデータリンケージのセットを含むコンピュータファイルをコンピュータが受け取るのに応答して、コンピュータにより、分析エージェントノードから受け取った１つ以上のデータリンケージのセットに従ってサーチ結果のセットの１つ以上のレコードを更新することを更に含む。
【００３５】
別の実施形態において、コンピュータ実施方法は、コンピュータにより、スキーマファイルに従ってサーチコンダクタから１つ以上の集合体を受け取ることを含み、その集合体各々は、１つ以上のフィールドを有する１つ以上のレコードのセットを含むものであり；コンピュータにより、スキーマに従って各集合体をパーティショニングし；コンピュータにより、スキーマに従ってパーティション内のレコードを圧縮し；及びコンピュータにより、サーチコンダクタに関連したパーティショナーに対応する各集合体に各パーティションを含ませるように１つ以上の関連サーチコンダクタに各パーティションを配布する；ことを更に含む。
【００３６】
又、クラスター化されたインメモリデータベース内でファセットサーチする方法が開示される。ある実施形態では、ここに開示するファセットサーチ方法及びサーチエンジンは、サーチ示唆を生成するのに使用される。ファセットサーチエンジンは、部分プレフィックス曖昧マッチングのためにリテラル又は非リテラルキー構造アルゴリズムを使用することができる。ここに開示するサーチエンジンは、大量の非構造化データをリアルタイムで処理してサーチ示唆を生成することができる。ここに開示するファセットサーチエンジンをサポートするインメモリデータベースのシステムアーキテクチャーは、モジュール及びクラスターの適当な組み合わせを含み、これらは、システムインターフェイス、サーチマネージャー、分析エージェント、サーチコンダクタ、パーティショナー、集合体、スーパーバイザー、依存性マネージャー、又は適当な組み合わせ、の１つ以上を含む。ある実施形態において、ユーザが適当なサーチウインドウにおいてタイプを開始するときに、システムは、サーチボックスにユーザであるとタイプされるワードの曖昧一致から導出される１つ以上の示唆を自動的に生成する。システムは、１つ以上のレコードに対する質問をスコア付けし、システムは、レコードの１つ以上のフィールドの一致をスコア付けし、次いで、質問に対するレコードの完全な一致に対してスコアを決定する。システムは、スコアが既定の受け容れスレッシュホールドより高いかどうか決定し、スレッシュホールドは、サーチ質問において定義されるか又はデフォールト値である。
【００３７】
処理中に、異なる特異性レベルのファセットがドキュメントから抽出され、曖昧性除去され、正規化され、トピックによりグループ化され、インデックス付けされ、そして知識ベースに一時的に追加される。ある実施形態では、抽出されたファセットは、サーチ結果をマップするのに使用される。更に別の実施形態では、曖昧マッチングアルゴリズムは、集合体に一時的に記憶されているファセットを、システムより生成された１つ以上の質問と比較し、そして最も関連性の高いレベル１ファセットを含むドロップダウンウインドウは、ユーザへのサーチ示唆に応対し、ユーザは、異なるレベルのファセットを選択してサーチ質問を絞り込むことが許される。
【００３８】
ある実施形態において、コンピュータ実施方法は、コンピュータにより、テキストベースの情報を表わすデータより成るコーパスから１つ以上のファセットを抽出し；コンピュータにより、コーパスから抽出された１つ以上のファセットの各々を曖昧性除去し；コンピュータにより、１つ以上のファセットに各々関連した１つ以上のインデックスを生成し；コンピュータにより、データベースの１つ以上のレコードより成るパーティションのレコードから関連インデックスに基づきファセットの各々を検索し、データベースの集合体は、１つ以上のパーティションを含み、そして各ファセットは、データの１つ以上のレコードに対してデータベースに記憶されたデータのハイアラーキー関係を指示し；及びコンピュータにより、各ファセットに基づき示唆されたサーチ質問を生成する；ことを含む。
【００３９】
ここに開示されるのは、インメモリデータベースをホストするシステムのノードに対する接続構成であり、それらノードは、複数の接続帯域巾及びレイテンシー層を有し、第１の帯域巾層は、第２の帯域巾層より高い帯域巾に関連し、第２の帯域巾層は、第３の帯域巾層より高い帯域巾に関連し、第３の帯域巾層は、第４の帯域巾層より高い帯域巾に関連し、そして第１のレイテンシー層は、第２のレイテンシー層より低いレイテンシーに関連している。
【００４０】
ここに開示されるのは、分散型インメモリデータプラットホームに適用される帯域巾及びレイテンシーを各々伴う複数のネットワークセグメントを有する分散型コンピューティングシステムである。このシステムは、適当な数のネットワークセグメントを有する接続構成を含み、ネットワークセグメントは、システムの内部及び外部の多数のサーバーに、並びにシステムにおけるサーバーのクラスターに接続される。システムのサーバーは、とりわけ、サーチマネージャー、分析エージェント、サーチコンダクタ、依存性マネージャー、スーパーバイザー、及びパーティショナーのようなソフトウェアモジュールを含む。サーバー及びモジュールは、望ましい帯域巾及びレイテンシーのニーズを満足するために望ましいネットワークセグメントに接続される。サーバー及びモジュールは、異なるクラスのネットワークトラフィックを分離してあるクラスのトラフィックが別のクラスと干渉するのを防止するために望ましいネットワークセグメントに接続される。
【００４１】
ある実施形態において、インメモリデータベースをホストする１つ以上のノードを備えたシステムは、集合体の１つ以上のパーティションを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む複数のストレージノードを備え、各ストレージノードにより記憶される集合体は、データベースの１つ以上のレコードを含み、そして各ストレージノードのストレージ媒体は、メインメモリを含み；ユーザノードから受け取ったサーチ質問を使用して１つ以上のサーチコンダクタ質問を生成し、そのサーチ質問に従って１つ以上のサーチコンダクタノードへ１つ以上のサーチコンダクタ質問を送出し、そしてサーチ結果の１つ以上のセットを受け取るのに応答してサーチ質問に従って１つ以上の分析エージェントノードへサーチ結果の１つ以上のセットを転送するプロセッサを含むサーチマネージャーノードを更に備え；サーチマネージャーノードからサーチ結果のセットを受け取るのに応答して１つ以上の分析アルゴリズムを実行するプロセッサを含む分析エージェントノードを更に備え；サーチマネージャーからサーチコンダクタ質問を受け取るのに応答してサーチコンダクタ質問に従ってストレージノードのデータベースレコードの集合体に質問し、そしてサーチ結果セットの１つ以上のサーチ結果を識別するのに応答してサーチマネージャーノードへ１つ以上のサーチ結果のセットを送出するプロセッサを含むサーチコンダクタノードを更に備え、各々のサーチ結果は、サーチコンダクタ質問を満足するデータを含むデータベースレコードに対応し；及び各ネットワークセグメントを経て通信する１つ以上のノード間の１つ以上の接続を含む複数のネットワークセグメントを更に備え、第１のネットワークセグメントは、サーチマネージャー、サーチコンダクタ及び分析エージェントを含む。
【００４２】
ここに開示されるのは、分散型コンピューティングシステムに使用するのに適した欠陥許容アーキテクチャーである。欠陥許容アーキテクチャーは、システムのサブコンポーネントが欠陥を経験する間に望ましいシステム機能、冗長性及びシステム信頼性を維持するために、適当な数のノードにわたって分散された適当な数のスーパーバイザー、依存性マネージャー、ノードマネージャー及びその他のモジュールを含む。ここでの開示は、分散型コンピューティングシステムに使用するのに適した欠陥許容アーキテクチャーについて述べる。分散型コンピューティングシステムの一例は、インメモリデータベースであるが、他の分散型コンピューティングシステムは、ここに述べる特徴を具現化する。ここに述べるシステム及び方法は、欠陥を自動的に検出し、そして処理モジュール及び各々のモジュール関連依存性（ソフトウェア、データ、メタデータ、等）を、それらモジュール及び／又は依存性をホストできる分散型コンピューティングシステムの他のコンピュータノードへ移動することでその検出欠陥から回復することにより、分散型コンピューティングシステムの欠陥許容特徴を提供する。
【００４３】
ある実施形態において、コンピュータ実施方法は、スーパーバイザーモジュールを実行するプロセッサを含むコンピュータにより、ノードに記憶された１つ以上のソフトウェアモジュールを監視するノードマネージャーによって生成されるハートビート(heartbeat)信号を監視することを含み、ハートビート信号は、ノードマネージャーにより監視される各ソフトウェアモジュールの状態を指示するバイナリデータを含み；コンピュータにより、ノードのノードマネージャーから受け取られたハートビート信号に基づきノードの１つ以上のソフトウェアモジュールにおける欠陥ソフトウェアモジュールを検出することを更に含み；コンピュータにより、その欠陥ソフトウェアモジュールの検出に応答して、その欠陥ソフトウェアモジュールを回復するようにノードに命令するコマンドをノードのノードマネージャーへ自動的に送出することを更に含み；及びコンピュータにより、ノードマネージャーから受け取ったハートビート信号に基づいてノードマネージャーがそのモジュールを首尾良く回復したかどうか決定することを更に含む。
【００４４】
別の実施形態において、コンピュータ実施方法は、コンピュータにより、ハートビート信号をスーパーバイザーノードへ連続的に送信し；回復コマンドを受け取ったとき、コンピュータにより、欠陥モジュールを回復し；及びモジュールが回復したことをコンピュータが検出したとき、コンピュータにより、回復状態信号をスーパーバイザーノードへ送信する；ことを含む。
【００４５】
別の実施形態において、欠陥許容の分散型コンピューティングシステムは、ハートビート信号をスーパーバイザーノードへ送信しそしてノードにインストールされた１つ以上のソフトウェアモジュールの実行を監視するプロセッサを含む１つ以上のノード；及び１つ以上のノードから受信した１つ以上のハートビート信号を監視しそして各ハートビート信号に基づいて各ノードの状態を決定するプロセッサを含む１つ以上のスーパーバイザーノード；を備えている。
【００４６】
ここに開示されるのは、適当なデータベース又はサーチエンジンのための異なるソフトウェア、データ又はメタデータパッケージをインストールし、アップグレードし及び構成するプロセスの間に依存性を取り扱うためのシステム及び方法である。このシステム及び方法は、インメモリデータベース又は他の形式の分散型データプラットホームをホストする分散型システムのような分散型コンピューティングシステムの一次データストアに記憶された種々のデータ、メタデータ及びソフトウェアを展開し、インストールし及び構成するためのプロセスを自動化することができる。規範的実施形態は、依存性マネージャー（構成管理）がスーパーバイザー（システム管理）に直接的にリンクされ、スーパーバイザーがシステムを完全機能状態に維持しそしてシステムの変更を行う構成要求を受け容れるシステム及び方法について記述する。
【００４７】
ある実施形態において、コンピュータ実施方法は、分散型コンピューティングシステムのコンピュータにより、システムのターゲットノードに関連したマシン読み取り可能で展開可能なパッケージファイルのための要求を、依存性ツリーに従ってシステムの１つ以上のノードに各々関連した１つ以上の展開可能なパッケージファイルを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む依存性マネージャーノードへ送出し；コンピュータにより、依存性ノードから展開可能なパッケージファイルを受け取るのに応答してターゲットノードへ展開可能なパッケージファイルを送信し；及びコンピュータにより、展開可能なパッケージにおける依存性のセットをターゲットノードにインストールするようにターゲットノードに命令する；ことを含む。
【００４８】
別の実施形態において、コンピュータ実施方法は、コンピュータにより、スーパーバイザーノードからターゲットノードを構成するための要求を受け取るのに応答してターゲットノードに関連した依存性ツリーを使用してターゲットノードにインストールされるべき１つ以上の依存性ファイルのセットを決定し；コンピュータにより、１つ以上の依存性ファイルのセットの各依存性ファイルを、１つ以上の依存性ファイルを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む少なくとも１つのデータフレームからフェッチし；コンピュータにより、１つ以上の依存性ファイルのセットを含む展開可能なパッケージファイルを生成し；及びコンピュータにより、展開可能なパッケージファイルをスーパーバイザーノードへ送出する；ことを含む。
【００４９】
別の実施形態において、データベース管理システムは、１つ以上の依存性ファイルを記憶する非一時的なマシン読み取り可能なストレージメモリと、１つ以上の依存性ファイルの状態を監視するプロセッサとを含む１つ以上のノードを備え、各依存性ファイルは、第２のノードにインストールされる対応コンポーネントと比較関係を有するノードのコンポーネントであり；更に、１つ以上の各ノードの状態を監視しそして各ノードの状態に基づき各ノードへ依存性ファイルのセットを含む展開可能なパッケージを送出するように構成されたプロセッサを含む１つ以上のスーパーバイザーノードを備え；及び１つ以上のノードに関連した１つ以上の依存性ツリーファイルを記憶する非一時的なマシン読み取り可能なストレージ媒体と、ノードに関連した依存性ツリーに従い展開可能なパッケージファイルをコンパイルするように構成されたプロセッサとを含む１つ以上の依存性マネージャーノードを備え；その展開可能なパッケージファイルは、少なくとも１つのデータフレームに記憶される１つ以上の依存性ファイルのセットを含み、そして依存性マネージャーノードは、展開可能なパッケージを受け取るターゲットであるノードに関連した依存性ツリーに基づいて展開可能なパッケージに含ませる依存性を決定する。
【００５０】
ここに開示されるのは、システムインターフェイス、サーチマネージャー、分析エージェント、サーチコンダクタ、パーティショナー、集合体、スーパーバイザー、依存性マネージャー、又は適当な組み合わせの１つ以上を含めて、モジュール及びクラスターの適当な組み合わせを含むインメモリデータベースをホストする分散型コンピューティングシステムである。このシステムの実施形態は、ノード及びソフトウェアモジュールのプラグ型アーキテクチャーを有し、これは、付加的なコンポーネント（例えば、ノード、モジュール、データベースインスタンス）をオンザフライでインストールし、埋め込み、又は他の仕方で含ませることを促進する（即ち、システムの状態ｑｕｏオペレーションを中断したり、その他、妨げたりすることなく）。このシステムの実施形態は、インメモリデータベースに含ませるための後で展開される又は外部の第三者カスタム分析モジュールを受け容れる。データベース質問は、データベースからデータを最初に検索する必要なく、どの分析モジュール及びパラメータを中間質問結果にオンザフライで適用するか特定する。ここに述べるシステム及び方法は、カスタム調整分析モジュールをインメモリデータベースとは独立して開発することができ、且つデータベースをホストするシステム内で展開して、インメモリデータベースを使用して分析を実行する性能利益を受けることもできる。露出されるアクセス可能なＡＰＩは、独立して生成される分析モジュールとデータを通信するのに使用され、これは、ＡＰＩであるために、インメモリデータベースにシームレスにプラグインされるか、さもなければ、それに一体化される。データの有効性を利用して、新たなモジュールがＡＰＩの予想と合致するかどうか決定される。
【００５１】
ある実施形態において、インメモリデータベースシステムは、データベースの１つ以上のレコードを記憶する非一時的なマシン読み取り可能なストレージ媒体を含む１つ以上のストレージノードを備え、各ストレージノードのストレージ媒体は、各ストレージノードのメインメモリであり；更に、分析モジュールを指示する分析の要求を受け取るのに応答して質問結果のセットを入力パラメータとして使用して分析モジュールを実行するプロセッサを含む分析エージェントノードを備え、質問結果のセットは、１つ以上のレコードを記憶する１つ以上のストレージノードから検索された１つ以上のレコードを表わすバイナリデータを含み；及び１つ以上の分析モジュールを記憶する非一時的マシン読み取り可能なストレージ媒体と、新たな分析モジュールを１つ以上の分析エージェントノードへ送出するように構成されたプロセッサとを含む分析モジュールデータストアを備えている。
【００５２】
ここに開示されるのは、サーチ質問の各個別の観点に従って異なるアルゴリズムが決定されるように、質問アルゴリズム並びに詳細なスコアリング及びランキングアルゴリズムを特定する能力をユーザに与えるため、インメモリデータベースシステムのようなデータストレージシステムに対して具現化されるサーチパラダインを提供するシステム及び方法である。サーチ質問を実行するノードは、次いで、（幾つかのフィールドが空であるか又は特定のスキーマで定義されていなくても）特定の各質問アルゴリズムを使用して、考えられる各候補レコードを見出し、次いで、特定のスコアリング及びランキングアルゴリズムを使用して候補アルゴリズムをスコア付け及びランク付けする。従来のシステムは、１つのサーチ質問内に個別の質問及びスコアリングアルゴリズムを与える能力を提供せず、各スコアリングアルゴリズムは、完全に個別のフィールドセットに対して動作するものである。ここに述べるシステム及び方法は、データを準備する負担を軽減しそしてデータがロードされたとき最初に意図されていなかった目的のためにデータを再使用できるようにする解決策を提供する。
【００５３】
ここに述べるシステム及び方法は、クラスター化されたインメモリデータベース内で非排他的サーチを実行する。非排他的サーチ方法は、質問で特定されたフィールドがポピュレート又は定義されていないレコードを結果が含む場合にサーチの実行を許す。ここに開示する方法は、曖昧なインデックス動作、曖昧なマッチング及びスコアリングアルゴリズムの適用を含み、これは、システムが異なるスキーマを伴うレコードをサーチ、スコア付け及び比較できるようにする。これは、当該レコードの想起を著しく改善する。
【００５４】
ここに開示する非排他的サーチ方法をサポートするインメモリデータベースのシステムアーキテクチャーは、システムインターフェイス、サーチマネージャー、分析エージェント、サーチコンダクタ、パーティショナー、集合体、スーパーバイザー、依存性マネージャー、又はその適当な組み合わせの１つ以上を含めて、モジュール及びクラスターの適当な組み合わせを含む。
【００５５】
このシステムは、１つ以上の質問に対してレコードをスコア付けし、ここで、システムは、レコードの１つ以上の使用可能なフィールドの一致をスコア付けし、次いで、レコードの完全一致に対してスコアを決定する。幾つかのフィールドが欠落した場合には、それらを除外することなくレコードにペナルティ又は低いスコアが指定される。このシステムは、スコアが既定の受け容れスレッシュホールドより高いかどうか決定し、そのスレッシュホールドは、サーチ質問で定義されるか、又はデフォールト値である。更に別の実施形態では、曖昧マッチングアルゴリズムが、集合体に一時的に記憶されたレコードを、システムにより生成される１つ以上の質問と比較する。
【００５６】
ここに開示されるのは、構造化又は半構造化データを圧縮する方法であるが、種々の適当な圧縮アルゴリズムを使用できる（即ち、特定の圧縮アルゴリズムが要求されない）ことが明らかである。ここに述べるシステム及び方法の実施形態は、データベースの各フィールドに対する適当なデータ圧縮プロセスの組み合わせを具現化し、圧縮されたデータベースレコードが商業的に受け入れられる比と同等の圧縮比を達成する一方、当該レコード及びフィールドのみについて解凍が生じるのを許す（即ち、データベースサーチ質問を満足するデータレコード又はフィールドの解凍のみ）ようにする。レコード又はフィールドの選択的解凍を容易にする圧縮技術を具現化することで、圧縮されたデータの水平方向のレコードベースのストレージを許すだけでなく、解凍時にデータのフィールドに対する列方向又は垂直方向のアクセスも許す。これは、圧縮ストレージの利益を低減するが、特定のフィールドのみを解凍すべきとき解凍に関連した計算パワー及びレイテンシーを大幅に回避する。
【００５７】
又、ここに述べるシステム及び方法は、Ｎグラム(N-gram)圧縮技術も具現化する。従来、Ｎグラムは、文字（ストリングの次々のキャラクタ）のチェーンの１つだけを圧縮すること、又はワード（テキストにおける次々にストリング）のチェーンに限定される。従来のＮグラム圧縮は、そのような圧縮技術の単一の具現化の中で文字のチェーン、個々のワード及び／又はワードのチェーンを圧縮することができない。ここに述べるのは、レコードの記憶中に列方向圧縮に対してＮグラム関連圧縮を使用して、良好な全体的圧縮を許す一方、サーチ質問に応答して単一レコード又はレコード内の単一フィールドへの低レイテンシーアクセスを依然提供できることである。
【００５８】
ここに述べるシステム及び方法は、圧縮技術の実施形態をインメモリデータベース及びドキュメントデータベースへ適用するものとして記述する。しかしながら、システム及び方法のそのような技術及び他の観点は、より一般的なデータ圧縮にも適用できることが明らかであろう。
【００５９】
ある実施形態において、コンピュータ実施方法は、コンピュータにより、データエレメントのセットで受信された１つ以上のデータエレメントに適用すべき圧縮技術を決定することを含み、コンピュータは、データエレメントのデータ形式に基づき各データエレメントに適用すべき圧縮技術を決定するためのスキーマを使用し；コンピュータにより、そのスキーマで定義される圧縮技術を使用してデータエレメントを圧縮することを更に含み、その圧縮技術は、データエレメントがサーチ質問に応答して返送されるときに個々に解凍されるようにデータエレメントを圧縮し；コンピュータにより、データエレメントのデータ形式のデータを記憶するレコードのフィールドに各圧縮されたデータエレメントを記憶することを更に含み；コンピュータにより、フィールドごとに基準テーブルにおけるフィールドノーテーションをスキーマに従って関連付けることを更に含み、その代表的ノーテーションは、フィールドのデータ形式を識別し；コンピュータにより、サーチコンダクタから受け取ったサーチ質問を満足する１つ以上のデータエレメントのセットに対してデータベースに質問することを更に含み；及びコンピュータにより、サーチ質問を満足する１つ以上のデータエレメントのセットを識別するのに応答して適用すべき圧縮技術を使用してサーチ質問を満足する１つ以上のデータエレメントの１つ以上の各データエレメントを解凍することを更に含み、サーチ質問を満足しない各データエレメントは圧縮されたままである。
【００６０】
別の実施形態において、コンピューティングシステムは、１つ以上の集合体を記憶する１つ以上のノードを備え、各集合体は、１つ以上のレコードのセットを含み、各レコードは、データを記憶するフィールドのセットを含み；及び集合体に関連したスキーマに従って１つ以上のフィールドを圧縮する圧縮プロセッサを更に備えている。
【００６１】
本開示の多数の他の観点、特徴は、以下の詳細な説明から明らかとなろう。実施形態の付加的な特徴及び効果は、以下の説明で述べられ、そしてその説明から一部分は明らかであろう。本発明の目的及び他の効果は、以下の説明の規範的実施形態及び特許請求の範囲並びに添付図面に特に指摘された構造により実現され且つ達成される。
【００６２】
本開示は、添付図面を参照することにより良く理解することができる。図面中のコンポーネントは、必ずしも、正しい縮尺ではなく、むしろ、本開示の原理の例示を強調している。図中、参照番号は、異なる図面全体を通して対応部分を示している。
【図面の簡単な説明】
【００６３】
【図１】一実施形態によるインメモリデータベースアーキテクチャーを示す。
【図２】一実施形態によるファセットサーチ方法を説明するフローチャートである。
【図３】一実施形態によりファセットサーチを使用してサーチ示唆を生成する方法のフローチャートである。
【図４】規範的実施形態によるインメモリデータベースアーキテクチャーを示す。
【図５】規範的実施形態によるノード構成を示す。
【図６】規範的実施形態によるノードを設定するためのフローチャートである。
【図７】規範的実施形態によるノードにおけるモジュール設定を示すフローチャートである。
【図８】規範的実施形態によるサーチマネージャーの機能を説明するフローチャートである。
【図９】規範的実施形態によるサーチコンダクタの機能を説明するフローチャートである。
【図１０】規範的実施形態によるパーティショナーの機能を説明するフローチャートである。
【図１１】規範的実施形態によるサーチコンダクタにおいてパーティションを設定するプロセスを説明するフローチャートである。
【図１２Ａ】規範的実施形態による集合体、その更新された形態、及びそれに関連するパーティションを示す。
【図１２Ｂ】規範的実施形態によりサーチマネージャーに接続された第１の集合体を含む第１及び第２のサーチノードを示す。
【図１２Ｃ】規範的実施形態により、サーチマネージャーから切断された第１の集合体を含む第１のサーチノード、及びサーチマネージャーに接続された第１の集合体を含む第２のサーチノードを示す。
【図１２Ｄ】規範的実施形態により、更新された集合体をロードする第１のサーチノード、及びサーチマネージャーに接続された第２のサーチノードを示す。
【図１２Ｅ】規範的実施形態により、サーチマネージャーに接続された更新された集合体を含む第１のサーチノード、及びサーチマネージャーから切断された第１の集合体を含む第２のサーチノードを示す。
【図１２Ｆ】規範的実施形態により、更新された集合体をロードする第２のサーチノード、及びサーチマネージャーに接続された第１のサーチノードを示す。
【図１２Ｇ】規範的実施形態により、サーチマネージャーに接続された更新された集合体を含む第１及び第２のサーチノードを示す。
【図１３】規範的実施形態により２つの集合体に対するパーティションを含むサーチノードのクラスターを示す。
【図１４】ノードが論理的にクラスター化されたインメモリデータベースシステムをホストするコンピューティングシステムのための接続図である。
【図１５】規範的システム実施形態による分散型システム管理アーキテクチャーのコンポーネントを示す。
【図１６】規範的システム実施形態におけるノードのための規範的ノード構成を示す。
【図１７】規範的方法実施形態による分散型コンピューティングシステムでの欠陥取り扱いを示すフローチャートである。
【図１８】一実施形態によるスーパーバイザー及び依存性マネージャーのブロック図接続を示す。
【図１９】一実施形態による構成プロセスのフローチャートである。
【図２０】一実施形態によりシステムの構成に使用される依存性のブロック図である。
【図２１】一実施形態によるインメモリデータベースアーキテクチャーを示す。
【図２２】一実施形態によりインメモリデータベースに新たなモジュールを追加する方法のフローチャートである。
【図２３】一実施形態によるインメモリデータベースアーキテクチャーを示す。
【図２４】一実施形態による非排他的サーチ方法を説明するフローチャートである。
【図２５】規範的実施形態によるデータ圧縮装置を示す。
【図２６】規範的実施形態による構造化データテーブルを示す。
【図２７】規範的実施形態によるトークンテーブルを示す。
【図２８】規範的実施形態によるＮグラムテーブルを示す。
【図２９】規範的実施形態による圧縮されたレコードを示すテーブルである。
【発明を実施するための形態】
【００６４】
定義
ここで使用する次の用語は、次のような定義を有する。
【００６５】
「エンティティ抽出」は、名前、場所及び組織のような情報を抽出するための情報処理方法を指す。
【００６６】
「コーパス」は、１つ以上のドキュメントの集合体をさす。
【００６７】
「特徴(Features)」は、ドキュメントから少なくとも一部分導出される情報である。
【００６８】
「イベントコンセプトストア」は、イベントテンプレートモデルのデータベースを指す。
【００６９】
「イベント」は、少なくともリアルタイムでの特徴生成により特徴付けられる１つ以上の特徴を指す。
【００７０】
「イベントモデル」は、特定形式のイベントに対して比較しそしてそれを識別するのに使用されるデータの集合体を指す。
【００７１】
「モジュール」は、少なくとも１つ以上のタスクを実行するのに適したコンピュータ又はソフトウェアコンポーネントを指す。
【００７２】
「データベース」は、１つ以上の集合体を記憶するのに適し且つ１つ以上の質問を処理するのに適したクラスター及びモジュールの組み合わせを含むシステムを指す。
【００７３】
「質問」は、１つ以上の適当なデータベースから情報を検索するための要求を指す。
【００７４】
「メモリ」は、充分に高い速度で情報を記憶し且つその情報を検索するのに適したハードウェアコンポーネントを指す。
【００７５】
「ノード」は、１つ以上のモジュールを実行するのに適したコンピュータハードウェア構成を指す。
【００７６】
「クラスター」は、１つ以上のノードのセットを指す。
【００７７】
「集合体」は、レコードの個別セットを指す。
【００７８】
「レコード」は、１単位として取り扱われる１つ以上の情報断片を指す。
【００７９】
「パーティション」は、集合体のレコードの任意に限定された部分を指す。
【００８０】
「サーチマネージャー」又は「Ｓ．Ｍ．」は、少なくとも、１つ以上の質問を受け取りそして１つ以上のサーチ結果を返送するように構成されたモジュールを指す。
【００８１】
「分析エージェント」、「分析モジュール」、「Ａ．Ａ．」又は「Ａ．Ｍ．」は、少なくとも、１つ以上のレコードを受け取り、その１つ以上のレコードを処理し、そしてそれにより得られる１つ以上の処理されたレコードを返送するように構成されたモジュールを指す。
【００８２】
「サーチコンダクタ」又は「Ｓ．Ｃ．」は、少なくとも、パーティションにおいて１つ以上のサーチ質問を実行し、そしてサーチ結果を１つ以上のサーチマネージャーへ返送するように構成されたモジュールを指す。
【００８３】
「ノードマネージャー」又は「Ｎ．Ｍ．」は、少なくとも、ノードにおいて１つ以上のコマンドを遂行しそして１つ以上のスーパーバイザーと通信するように構成されたモジュールを指す。
【００８４】
「スーパーバイザー」は、少なくとも、システムの１つ以上のコンポーネントと通信しそして１つ以上の状態を決定するように構成されたモジュールを指す。
【００８５】
「ハートビート」又は「ＨＢ」は、少なくとも、１つ以上の状態を１つ以上のスーパーバイザーへ通信する信号を指す。
【００８６】
「パーティショナー」は、少なくとも、１つ以上の集合体を１つ以上のパーティションへと分割するように構成されるモジュールを指す。
【００８７】
「依存性マネージャー」又は「Ｄ．Ｍ．」は、少なくとも、１つ以上のモジュール、パーティション又は適当な組み合わせに関連した１つ以上の依存性ツリーをシステムに含ませ；少なくとも、その１つ以上の依存性ツリーの１つ以上の適当な部分に関連した情報の要求を受け取り；及び少なくとも、それらの部分から導出される１つ以上の構成を返送するように構成されたモジュールを指す。
【００８８】
「ドキュメント」は、出発点及び終了点を有する情報の個別の電子的表現を指す。
【００８９】
「生のコーパス」は、新たなドキュメントがネットワークにアップロードされるときに恒常的に供給されるコーパスを指す。
【００９０】
「特徴(Features)」は、ドキュメントから少なくとも一部分導出される情報である。
【００９１】
「特徴属性」は、特徴に関連したメタデータ、例えば、とりわけ、ドキュメントにおける特徴の位置、信頼スコアを指す。
【００９２】
「ファクト」は、特徴と特徴との間の客観的な関係を指す。
【００９３】
「知識ベース」は、曖昧性除去された特徴又はファセットを含むベースを指す。
【００９４】
「リンクオンザフライモジュール」は、データがシステムに追加されるときではなくデータがシステムから要求されるときにデータリンケージを遂行するリンクモジュールを指す。
【００９５】
「センチメント(Sentiment)」は、ドキュメント、ドキュメントの一部分、又は特徴に関連した客観的評価を指す。
【００９６】
「トピック」は、コーパスから少なくとも一部分導出されるセマティック情報のセットを指す。
【００９７】
「プレフィックス」は、ノードの全サブツリーにより共有されるキーキャラクタの最長ストリングと、データレコードへの参照を記憶するデータレコードフィールドとで構成される長さｐのストリングを指す。
【００９８】
「ファセット」は、クラス、特定主題、トピック又は特徴の、明確に定義され、相互に排他的で且つ総体的に余すところのない観点、プロパティ又は特性を指す。
【００９９】
「フィールド」は、レコード内の１つのデータエレメントを指す。
【０１００】
「スキーマ」は、１つ以上のレコードの１つ以上の特性を示すデータを指す。
【０１０１】
「フラグメント」は、望ましい粒度レベルが達成されるまでレコードをより小さなレコードに分離することを指す。
【０１０２】
「リソース」は、データを記憶又は処理するように構成されたノードのハードウェアを指す。１つ以上の実施形態において、これは、とりわけ、ＲＡＭ、ハードディスクストレージ、及び計算容量を含む。
【０１０３】
「依存性ツリー」は、とりわけ、パーティション、モジュール、ファイル又はデータの関係を示すデータ構造体の形式を指す。
【０１０４】
「展開可能なパッケージ」は、とりわけ、モジュール、パーティション、ファイル又はデータの構成に使用される情報のセットを指す。
【０１０５】
「分析方法」は、サーチ結果の総計に適用されるオペレーションを指す。
【０１０６】
「分析パラメータ」は、分析モジュールが特定の結果を得るために遂行しなければならないオペレーションを示すパラメータを指す。
【０１０７】
「アプリケーションプログラミングインターフェイス」又は「ＡＰＩ」は、異なるユーザ開発ソフトウェアモジュールを、分散型コンピューティングシステムのコンポーネント（例えば、ソフトウェアモジュール、ノード）に適合できるようにする。
【０１０８】
「ディクショナリー」は、意味、他のデータとの関係、起点、使用及びフォーマットのようなＭＥＭＤＢのフィールドに関する細部を含む情報の集中レポジトリーを指す。
【０１０９】
「否定義(Not defined)」は、特定のスキーマの一部分ではないフィールドを指す。
【０１１０】
「否ポピュレート(Not populated)」は、スキーマの一部分であるが、指定された値をもたないフィールドを指す。
【０１１１】
「オブジェクト」は、データレコード内のフィールドの論理的集合体を指す。
【０１１２】
「アレイ」は、レコード内のデータ値の順序付けされたリストを指す。
【０１１３】
「圧縮」は、値を表わすのに必要な電子データの量を減少することを指す。
【０１１４】
「トークンテーブル」は、１つ以上の他のより複雑な値に対して１つ以上のより簡単な値を定義するテーブルを指す。
【０１１５】
「Ｎグラム」は、Ｎを１以上とすれば、キャラクタ、ワード又はワードグループであるデータのＮ個の連続する一体的単位を指す。即ち、文章“The quick brown fox jumped over the lazy dog”において、”the”、”e”、”he”及び”brown fox”は、全て、有効なＮグラムである。
【０１１６】
「Ｎグラムテーブル」は、１つ以上の他のより複雑な値に対して１つ以上のより簡単な値を定義するテーブルを指す。
【０１１７】
「ＪＳＯＮ」は、ＪａｖａＳｃｒｉｐｔオブジェクトノーテーション、データ交換フォーマットを指す。
【０１１８】
「ＢＳＯＮ」は、バイナリＪＳＯＮ、データ交換フォーマットを指す。
【０１１９】
「ＹＡＭＬ」は、コード言語「ＹＡＭＬ  Ａｉｎ’ｔマークアップ言語」、データ交換フォーマットを指す。
【０１２０】
「ドキュメントデータベース」は、ドキュメント指向の情報を記憶し、記憶し、検索し及び管理するように設計されたドキュメント指向のデータベースを指す。
【０１２１】
詳細な説明
添付図面に各々示された好ましい実施形態を以下に詳細に説明する。上述した実施形態は、例示に過ぎない。当業者であれば、ここに述べる特定の実施例について、本発明の範囲内で、多数の別のコンポーネント及び実施形態に置き換えできることが認識されよう。本開示の精神又は範囲から逸脱せずに、他の実施形態が使用されてもよく及び／又は他の変更がなされてもよい。詳細な説明に述べる例示的実施形態は、ここに提示される要旨の限界を意味するものではない。
【０１２２】
それでも、本発明の範囲の制限が意図されないことを理解されたい。ここに示す本発明の特徴の代替的及び更に別の実施形態、並びにここに示す本発明の原理の付加的な適用であって、当業者に対して生じ且つ本開示を所有するものは、本発明の範囲内であると考えるべきである。
【０１２３】
本開示は、複数のソースからイベントを検出し、抽出し及び有効化するためのシステム及び方法について述べる。ソースは、ニュースソース、ソーシャルメディアウェブサイト、及び／又はイベントに関するデータを含むソースを包含する。
【０１２４】
ここに開示するシステム及び方法の種々の実施形態は、独立したイベントを識別するために異なるソースからデータを収集する。
【０１２５】
図１は、一実施形態によるインメモリデータベース１００システムアーキテクチャーを示す。ＭＥＭＤＢ１００システムアーキテクチャーは、システムインターフェイス１０２、第１のサーチマネージャー１０４、第ｎのサーチマネージャー１０６、第１の分析エージェント１０８、第ｎの分析エージェント１１０、第１のサーチコンダクタ１１２、第ｎのサーチコンダクタ１１４、パーティショナー１１６、第１の集合体１１８、第ｎの集合体１２０、スーパーバイザー１２２、及び依存性マネージャー１２４を含む。
【０１２６】
１つ以上の実施形態において、システムインターフェイス１０２は、ＭＥＭＤＢ１００のシステムアーキテクチャーの外部で生成された１つ以上の質問を、少なくとも第１のサーチマネージャー１０４及び第ｎのサーチマネージャー１０６までを含む第１クラスターにおける１つ以上のサーチマネージャーへ供給するように構成される。前記第１クラスターにおける前記１つ以上のサーチマネージャーは、少なくとも第１の分析エージェント１０８及び第ｎの分析エージェント１１０までを含む第２クラスターにおける１つ以上の分析エージェントにリンクされる。
【０１２７】
前記第１クラスターにおけるサーチマネージャーは、少なくとも第１のサーチコンダクタ１１２及び第ｎのサーチコンダクタ１１４までを含む第３クラスターにおける１つ以上のサーチコンダクタにリンクされる。前記第３クラスターにおけるサーチコンダクタは、１つ以上のパーティショナー１２６にリンクされ、少なくとも第１の集合体１１８及び第ｎの集合体１２０までに対応するパーティショナーは、１つ以上の時点で記憶される。
【０１２８】
ＭＥＭＤＢ１００に含まれたクラスターに含まれた１つ以上のノード、モジュール又はその適当な組み合わせは、１つ以上のスーパーバイザー１２２にリンクされ、前記クラスターにおける前記１つ以上のノード、モジュール又は、適当な組み合わせは、少なくとも１つのハードビートを１つ以上のスーパーバイザー１２２へ送出するように構成される。スーパーバイザー１２２は、１つ以上の依存性マネージャー１２４にリンクされ、該１つ以上の依存性マネージャー１２４は、１つ以上のモジュール、パーティション又はその適当な組み合わせに対して１つ以上の依存性ツリーを含む。スーパーバイザー１２２は、更に、１つ以上の他のスーパーバイザー１２２にリンクされ、ここで、付加的なスーパーバイザー１２２は、ＭＥＭＤＢ１００のシステムアーキテクチャーに含まれた前記クラスターにリンクされる。
【０１２９】
図２は、一実施形態によるファセットサーチ方法２００を説明するフローチャートである。ファセットを使用してドキュメントを分離又はグループ化することは、サーチ結果を効果的に絞り込む。ファセットサーチを実行するとき、各ファセットは、多次元スペースにおけるドキュメントの次元と考えられ、特定のドキュメントファセットを選択することにより、関連サーチ結果を見出す可能性が著しく改善される一方、サーチを遂行するに要する時間が実質的に短縮される。
【０１３０】
プロセスは、サーチマネージャー２０２により受け取られる質問でスタートし、外部ソースにより生成される１つ以上の質問は、１つ以上のサーチマネージャーにより受け取られる。ある実施形態では、それらの質問は、ユーザとの相互作用に応答してシステムインターフェイス１０２により自動的に生成される。１つ以上の実施形態において、質問は、ＸＭＬ及びＨＴＭＬを含むマークアップ言語で表わされる。１つ以上の他の実施形態において、質問は、質問がＪＳＯＮで表わされる実施形態を含めて構造体で表わされる。ある実施形態では、質問は、コンパクトなフォーマット又はバイナリフォーマットで表わされる。
【０１３１】
その後、受け取った質問は、サーチマネージャー２０４によりパースされる。このプロセスは、フィールド処理が望まれるかどうかシステムが決定できるようにする（２０６）。１つ以上の実施形態では、システムは、質問に含まれた情報を使用してプロセスが要求されるかどうか決定することができる。１つ以上の他の実施形態では、１つ以上のサーチマネージャーは、１つ以上のどのフィールドが望ましい処理を受けるか自動的に決定する。
【０１３２】
１つ以上のフィールドに対するフィールド処理が望まれるとシステムが決定した場合には、１つ以上のサーチマネージャーは、サーチマネージャーがフィールドを処理する間に１つ以上の適当な処理技術を１つ以上の望ましいフィールドに適用する（２０８）。１つ以上の実施形態において、適当な処理技術は、とりわけ、アドレス標準化、接近境界及びニックネーム解釈を含む。ある実施形態では、適当な処理技術は、ストリングからのプレフィックスの抽出、及び曖昧マッチング技術を遂行するために後で使用される非リテラルキーの生成を含む。
【０１３３】
次いで、Ｓ．Ｍ．がサーチ質問２１０を構成するとき、１つ以上のサーチマネージャーは、１つ以上の質問に関連した１つ以上のサーチ質問を構成する。１つ以上の実施形態において、サーチ質問は、スタックベースサーチとして処理されるように構成される。
【０１３４】
その後に、Ｓ．Ｍ．は、Ｓ．Ｃ．２１２にサーチ質問を送信する。ある実施形態では、１つ以上のサーチマネージャーは、１つ以上のサーチ質問を１つ以上のサーチコンダクタに送信し、そこで、前記１つ以上のサーチコンダクタは、１つ以上のサーチ質問で特定される集合体に関連付けされる。
【０１３５】
１つ以上のサーチコンダクタは、１つ以上の質問に対してレコードをスコア付けし、ここで、サーチコンダクタは、レコードの１つ以上のフィールドの一致をスコア付けし、次いで、レコードの全一致に対するスコアを決定する。システムは、スコアが既定の受け容れスレッシュホールドより上であるかどうか決定し、ここで、スレッシュホールドは、サーチ質問で定義されるか又はデフォールト値である。１つ以上の実施形態において、デフォールトスコアスレッシュホールドは、スコア付けされる１つ以上のフィールドに従って変化する。スコアが望ましいスレッシュホールドより上であるとサーチコンダクタが決定した場合には、レコードが結果リストに追加される。サーチコンダクタは、レコードがパーティションの最後であると決定するまで、レコードをスコア付けし続ける。パーティションの最後のレコードが処理されたとサーチコンダクタが決定した場合に、サーチコンダクタは、次いで、それにより得られる結果リストを分類する。サーチコンダクタは、次いで、その結果リストをサーチマネージャーへ返送する。
【０１３６】
Ｓ．Ｍ．がＳ．Ｃ．から結果を受け取りそしてまとめるときに（２１４）、１つ以上のサーチコンダクタは、１つ以上のサーチ結果を１つ以上のサーチマネージャーへ返送し、１つ以上の実施形態において、前記１つ以上のサーチ結果は、非同期で返送される。次いで、１つ以上のサーチマネージャーは、１つ以上のサーチコンダクタからの結果を１つ以上の結果リストへとコンパイルする。
【０１３７】
システムは、１つ以上のサーチマネージャーによりコンパイルされたサーチ結果の分析処理が望ましいものであるかどうか決定する（２１６）。１つ以上の実施形態において、システムは、質問に含まれた情報を使用して処理が望ましいものであるかどうか決定する。１つ以上の他の実施形態では、１つ以上のサーチマネージャーは、１つ以上のどのフィールドが望ましい処理を受けるか自動的に決定する。
【０１３８】
総計分析処理が望ましいものであるとシステムが決定した場合に、１つ以上の分析エージェントは、１つ以上の適当な処理技術を１つ以上の結果リストに適用することにより、結果を処理する（２１８）。１つ以上の実施形態において、適当な技術は、とりわけ、多数のレコードをより完全なレコードへとロールアップし、結果に対して１つ以上の分析を遂行し、そして隣接レコードに関する情報を決定することを含む。ある実施形態では、分析エージェントは、曖昧性除去モジュール、リンクモジュール、リンクオンザフライモジュール、又は他の適当なモジュール及びアルゴリズムを含む。処理中に、異なる特異性レベルをもつファセットがドキュメントから抽出され、曖昧性除去され、正規化され、トピックでグループ化され、そしてインデックスされる。ファセットは、ハイアラーキーに従ってインデックスされ、ハイアラーキーは、予め定められるか、又はシステムによりオンザフライで定められる。１つ以上の実施形態において、レベル１のファセットは、最も広いファセットであり、そしてその後のレベルは、低下する関連性又はより高度な特異性で導出される。
【０１３９】
結果リストからのファセットが集合体に記憶される。ある実施形態では、各ファセット形式が異なる集合体又は集合体グループに記憶される。
【０１４０】
処理の後に、ある実施形態によれば、１つ以上の分析エージェントは、１つ以上の処理結果リストを１つ以上のサーチマネージャーへ返送する。
【０１４１】
サーチマネージャーは、サーチ結果を返送する（２２０）。ある実施形態では、１つ以上のサーチマネージャーは、１つ以上の結果リストを解凍し、そしてそれを、質問を開始したシステムへ返送する。
【０１４２】
任意であるが、ある実施形態によれば、サーチ結果は、知識ベースに一時的に記憶され（２２２）、そしてユーザインターフェイスへ返送される（２２４）。知識ベースは、当該曖昧性除去ファセット及びその関連特徴のクラスターを一時的に記憶するのに使用される。新たなドキュメントがＭＥＭＤＢにロードされると、ファセットの新たな曖昧性除去セットが既存の知識ベースと比較されてファセット間の関係を決定し、そして新たなファセットと以前に抽出されたファセットとの間に一致があるかどうか決定する。比較されたファセットが一致する場合には、知識ベースが更新され、そして一致するファセットのＩＤが返送される。比較されたファセットが、既に抽出されているいずれのファセットとも一致しない場合には、曖昧性除去されたエンティティ又はファセットに独特のＩＤが指定され、そしてそのＩＤは、特徴を定めるクラスターに関連付けられてＭＥＭＤＢの知識ベース内に記憶される。
【０１４３】
図３は、一実施形態により、ファセットサーチを使用してサーチ示唆を生成する方法３００のフローチャートである。サーチ示唆を生成する方法３００は、質問生成３０２で始まる。ある実施形態では、ユーザが適当なサーチウインドウにおいてタイプし始めると、システムは、ユーザによりサーチボックスにタイプされているワードのプレフィックスから導出される質問を自動的に生成する。これらの質問は、ユーザがサーチウインドウにストリングをタイプし終える前に及び最小数（３又は４）のキャラクタがサーチウインドウにタイプされた状態でも生成される。
【０１４４】
適当な質問が生成されると、ファセットサーチ方法２００が適用される。この方法の適用は、部分プレフィックスのマッチングを許すリテラル又は非リテラルキーアルゴリズムの使用を含む。
【０１４５】
サーチ示唆を生成するために（３０４）、曖昧マッチングアルゴリズムは、集合体に一時的に記憶されたファセットを、システムにより生成される１つ以上の質問と比較する。このように、現在の１つ以上の質問に対するヒットのカウントが、集合体の異なるパーティションにある異なるハイアラーキーレベルのファセットに指定される。次いで、レベル１のファセットは、ヒットの累積カウントが指定されて、ヒットの合計数に従って分類される。
【０１４６】
その後に、サーチ示唆がユーザに提示される（３０６）。ある実施形態では、これは、ドロップダウンウインドウの形態で行われ、これは、最も関連性のあるレベル１ファセットを含み、その各々は、それに関連したヒット数を伴い、そしてユーザは、サーチ質問を絞り込むか又は新たな質問を開始するために異なるレベルのファセットを選択することが許される。ある実施形態によれば、このプロセスが何回も行われてサーチウインドウのキャラクタがワードを形成し始めるときに、このプロセスは、ユーザがサーチウインドウにおいてストリングをタイプし終える前にファセットサーチ示唆を生成しそして応対することができるようにする。
【０１４７】
図４は、システムインターフェイス４０２、第１のサーチマネージャー４１０、第ｎのサーチマネージャー４１２、第１の分析エージェント４２０、第ｎの分析エージェント４２２、第１のサーチコンダクタ４３０、第ｎのサーチコンダクタ４３２、パーティションデータ４４０、パーティショナー４５０、第１の集合体４６０、第ｎの集合体４６２、スーパーバイザー４７０、及び依存性マネージャー４８０を有するシステムアーキテクチャー４００を示す。
【０１４８】
１つ以上の実施形態において、システムインターフェイス４０２は、システムアーキテクチャー４００の外部で生成された１つ以上の質問を、第１のサーチマネージャー４１０を含む少なくとも１つのノード及び第ｎのサーチマネージャー４１２を含む第ｎのノードまでを含む第１クラスターにおける１つ以上のサーチマネージャー４１０、４１２へ供給する。前記第１クラスターにおける１つ以上のサーチマネージャー４１０、４１２は、少なくとも第１の分析エージェント４２０及び第ｎの分析エージェント４２２までを含む第２クラスターにおける１つ以上の分析エージェント４２０、４２２にリンクされる。
【０１４９】
第１クラスターにおけるサーチマネージャー４１０、４１２は、第３クラスターにおける１つ以上のサーチコンダクタ４３０、４３２にリンクされる。第３クラスターは、少なくとも、第１のサーチコンダクタ４３０及び第ｎのサーチコンダクタ４３２までを含む。各サーチノード（即ち、サーチマネージャー４１０、４１２を実行するノード）は、適当な数のサーチコンダクタ４３０、４３２を含む。
【０１５０】
第３クラスターにおけるサーチコンダクタ４３０、４３２は、パーティションデータ４４０を記憶する１つ以上のデータベースノードにリンクされる。パーティションデータ４４０は、少なくとも、１つ以上の集合体を１つ以上のパーティションへと分割するように構成されたモジュールである１つ以上のパーティショナー４５０を実行するノードにより生成される１つ以上のパーティション（即ち、レコードの個別セットからパーティションされたレコードの任意に限定された部分）を含む。各パーティションは、少なくとも第１の集合体４６０及び第ｎの集合体までに対応する。集合体４６０、４６２は、それら集合体４６０、４６２のデータを定義する１つ以上のスキーマファイルにより更に説明する。１つ以上のスキーマは、とりわけ、パーティションのレコードにおけるフィールドの名前、前記フィールドがインデックスされたかどうか、どんな圧縮方法が使用されたか、及びどんなスコア付けアルゴリズムがフィールドにとってデフォールトであるかに関する情報を含む。スキーマは、第１の集合体４６０及び第ｎの集合体４６２までをパーティションするときにパーティショナー４５０により使用され、そして集合体において１つ以上の質問を実行するときに第１のサーチマネージャー４１０及び第ｎのサーチマネージャー４１２までによって更に使用される。
【０１５１】
１つ以上のノードは、システム４００の他のノードから送信されたハートビート信号を受信するスーパーバイザー４７０ソフトウェアモジュールを実行する。スーパーバイザー４７０は、１つ以上の依存性マネージャー４８０ソフトウェアモジュールを実行するシステム４００のノードからデータを受信するように構成される。依存性マネージャー４８０ノードは、１つ以上のモジュール、パーティション、又はその適当な組み合わせに関連した依存性ツリーを記憶し、更新し、及び参照し、これは、相対的関係に基づき、ノード、モジュール及びパーティションに対する構成依存性を指示する。スーパーバイザー４７０は、１つ以上の他のスーパーバイザー４７０を実行するシステム４００の他のノードへ更にリンクされる。あるケースでは、付加的なスーパーバイザー４７０へのリンクは、システムアーキテクチャー４００のクラスター間を交差する。
【０１５２】
分析エージェント４２０、４２２を実行するノードは、システムのコンポーネント（例えば、ソフトウェアモジュール、ノード）間の相互運用性及びデータ転送を容易にする特定のアプリケーションプログラミングインターフェイス（ＡＰＩ）に合致する１つ以上の適当な分析モジュールを実行する。分析エージェント４２０、４２２は、サーチコンダクタ４３０、４３２から返送された総計質問結果を処理するように構成される。例えば、サーチマネージャー４１０は、サーチ質問を受け取り、次いで、そのサーチマネージャー４１０が１つ以上のサーチコンダクタ４３０、４３２に与えるサーチコンダクタ質問を生成する。サーチコンダクタ４３０、４３２がそれらの各々指定されたサーチコンダクタ質問を実行した後に、サーチマネージャー４１０は、１つ以上のサーチコンダクタ４３０、４３２から総計質問結果のセットを受け取る。サーチマネージャー４１０は、サーチ質問のパラメータにより更なる処理が要求される場合は、それらのサーチ質問結果を更なる処理のために分析エージェント４２０へ転送する。
【０１５３】
ある具現化において、サーチコンダクタ４３０、４３２から受け取った総計結果の１つ以上のセットを処理するために分析エージェント４２０に対してサーチ質問が要求されたとサーチマネージャー４１０が決定した後に、サーチマネージャー４１０は、データベーススキーマファイル及び／又は１つ以上の分析パラメータを分析エージェント４２０、４２２へ送信する。あるケースでは、サーチ質問は、どの分析エージェント４２０が総計サーチ結果を受け取るべきか識別するためサーチマネージャー４１０が使用する特定の分析アルゴリズムの遂行を要求する。あるケースでは、総計結果のセットの１つ以上が、圧縮アルゴリズムに従って圧縮されたデータを含む圧縮レコードの形態で分析エージェント４２０、４２２へ送信される。あるケースでは、レコードのデータは、レコードのフィールドにおいて圧縮され、そしてあるケースでは、全レコードが圧縮される。
【０１５４】
分析エージェント４２０、４２２を実行するノードは、種々の分析モジュールを有する。非限定例として、他の適当なモジュール及びアルゴリズムの中で、曖昧性除去モジュール、リンクモジュール、及びリンクオンザフライモジュールが含まれる。後で述べるように、リンクモジュール及びリンクオンザフライモジュールは、データベースのレコードに以前に記憶されたデータをリンクするメタデータを識別し、生成し及び／又は記憶する。適当なモジュールは、任意の種類のデータを処理するための分析方法のソフトウェア実施を含む。ある実施形態では、特定の分析モジュール又は分析エージェント４２０、４２２は、インメモリデータベースの所定のインスタンス、クラスター、パーティション及び／又はインスタンス生成オブジェクトにしかアクセスできない。
【０１５５】
図５は、規範的な実施形態によるノード５００の構成を示す図である。図５のノード５００は、ノードマネージャー５０２ソフトウェアモジュール、並びに第１のソフトウェアモジュール５１０及び第ｎのモジュール５１２までを含む多数の付加的なソフトウェアモジュール５１０、５１２を実行するプロセッサを備えている。
【０１５６】
図５の規範的構成によれば、ノード５００は、スーパーバイザーモジュール又はスーパーバイザーノードを実行する第２ノードにデータネットワークを経て通信結合される。又、ノード５００によりインストールされ且つ実行されるノードマネージャー５０２は、スーパーバイザーノードと通信するように構成され、そして第１モジュール５１０及び第ｎモジュール５１２までを含めて、ノードにインストールされるソフトウェアモジュール５１０、５１２を監視するようにも構成される。ノードマネージャー５０２は、スーパーバイザーから受け取られる適当なコマンドを実行し、そして更に、ノード５００、ノードマネージャー５０２、及び第１モジュール５１０から第ｎモジュール５１２まで、の１つ以上の状態に関してレポートする。第１モジュール５００は、１つ以上のスーパーバイザーにリンクされ、そしてノードの１つ以上の他のモジュールにリンクされ、ここで、ノードの他のモジュールは、第１モジュール５１０とは異なる形式であるか、又は第１モジュール５１０とで形式を共有する。更に、第１モジュール５１０は、システム内で１つ以上の他のモジュール、ノード又はクラスターとリンクされる。
【０１５７】
図６は、ステップ６０２、６０４及び６０６を有するノード設定６００を示すフローチャートである。
【０１５８】
ステップ６０２において、ノードに使用するのに適したオペレーティングシステム（ＯＳ）がノードにロードされる。１つ以上の実施形態において、ＯＳは、ノードの製造者により自動的にロードされる。１つ以上の他の実施形態では、ＯＳは、１つ以上のオペレータによりノードにロードされる。
【０１５９】
ステップ６０４において、ノードにロードされるＯＳと共に使用するのに適したノードマネージャーは、１つ以上のオペレータにより手動でインストールされ、ここで、インストールは、ノードマネージャーに加えて１つ以上ののどの望ましいモジュールがノードにインストールされるか決定する。
【０１６０】
ステップ６０６において、ノードマネージャーは、ハートビートをスーパーバイザーに送り、前記ハートビートは、１つ以上のモジュールをインストールするインストラクションをノードが受け取る準備ができたとスーパーバイザーが決定するに充分な情報を含む。
【０１６１】
図７は、ステップ７０２、７０４、７０６、７０８、７１０、７１２及び７１４を有するモジュール設定７００を示すフローチャートである。
【０１６２】
ステップ７０２において、スーパーバイザーは、システムに対して定義されたデータ集合体のニーズに基づいて１つ以上のモジュールを１つ以上のノードにインストールすべきことを決定する。スーパーバイザーは、次いで、前記１つ以上のノードにおける１つ以上のノードマネージャーにインストール準備インストラクションを送出する。ある実施形態において、スーパーバイザーは、データ集合体（データ断片又はデータの部分を含む）、及び各集合体に関連した構成設定を追跡する。又、スーパーバイザーは、利用可能な全てのノード及びそれらのソース（ノードマネージャーによりレポートされた）について知っている。スーパーバイザーは、システムのニーズを利用可能なノードリソースへマップし（即ち、相関させ）、各ノードにおいてどのデータ断片又は部分及びどのシステムサービス又はリソースを実行すべきか決定する。次いで、スーパーバイザーは、クライアント側でインストールを実行するようにノードマネージャーに命令するために、定義された依存性を含む展開／インストール要求を適当なノードマネージャーへ送出する。
【０１６３】
ステップ７０４において、ノードマネージャーは、１つ以上の望ましいモジュールを実行するために、コンピュータメモリ、ディスクストレージ及び／又はＣＰＵ容量の一部分のようなノードのリソースを割り当てる。１つ以上の実施形態において、リソースの割り当ては、スーパーバイザーがプロセスを中断すると、ある期間の後に終了となる。リソースの非限定例は、コンピュータメモリ、ディスクストレージ、及び／又はＣＰＵ容量の一部分を含む。必要なリソースは、スーパーバイザーが所与のノードに指定するデータ及び／又はサービスを使用して決定される。必要なリソースの詳細は、依存性マネージャーに記憶されるソフトウェア及びデータ依存性を定義するパッケージにおいて特定される。
【０１６４】
ステップ７０６において、スーパーバイザーは、ノードにインストールされるべき１つ以上のモジュールに関連した１つ以上の構成パッケージに対して依存性マネージャーへ要求を送出する。
【０１６５】
ステップ７０８において、スーパーバイザーは、次いで、展開、インストール及びスタートされるべきノードマネージャーへ構成パッケージを送出する。全てのデータ、ソフトウェア及びメタデータ依存性を含む構成パッケージは、システムアドミニストレータにより定義され、そして依存性マネージャーに記憶される。
【０１６６】
ステップ７１０において、ノードマネージャーは、適当なサーバーから１つ以上のモジュールを実行するために要求されるソフトウェア及びデータを読み取る。適当なソフトウェア及びデータは、１つ以上のレコードをインデックスし、圧縮し、解凍し、スコア付けし、スライスし、接合し、又はその他、処理するのに適したソフトウェア、データ及びメタデータ、並びにシステムの１つ以上の他のコンポーネントと通信し、整合し、監視し、又はその他、相互作用するのに適したソフトウェア及びデータを含む。
【０１６７】
ステップ７１２において、ノードマネージャーは、ステップ７１０でフェッチされた要求されたソフトウェアをインストールする。
【０１６８】
ステップ７１４において、ノードマネージャーは、ステップ７１２でインストールされたソフトウェアを実行する。
【０１６９】
図８は、ステップ８０２、８０４、８０８、８１０、８１２、８１４、８１８及び８２０を有し且つチェック８０６及び８１６を有する質問処理８００を示すフローチャートである。
【０１７０】
ステップ８０２において、システムによりホストされるブラウザベースのグラフィックユーザインターフェイス（ＧＵＩ）又はクライアントコンピュータのネーティブＧＵＩのような外部ソースにより生成されるデータベース質問が１つ以上のサーチマネージャーにより受け取られる。その質問は、ユーザが提出した又はプログラムで自動的に生成されたサーチパラメータを含む適当なソフトウェアソースコードを表わすバイナリデータを含む。サーチ質問に使用されるソースコード言語は、オブジェクト又はクラスのような複雑なデータ構造体を取り扱うことのできるデータシリアル化言語である。このデータシリアル化言語は、複雑なデータオブジェクト又は構造体をデジタルビットのシーケンスへと変換するのに使用され、そしてほとんどの装置管理できるフォーマットで複雑なオブジェクトのデータを与える。ある実施形態では、質問は、スキーマファイル（例えば、ＸＳＤ）に従って有効とされるか、又はその他、理解されるＸＭＬ及びＨＴＭＬのようなマークアップ言語で表わされる。ある実施形態において、質問は、スキーマファイルに従って有効とされるか、又はその他、理解されるＪＳＯＮのような複雑なデータ構造体として表わされるか、又はその他、それを通信する。質問は、質問のパラメータを満足する望ましいレコードに対してデータベースをサーチするのに適したインストラクションを含み、そしてある実施形態では、適当なインストラクションは、サーチすべき１つ以上の集合体のリストを含む。
【０１７１】
ステップ８０４において、外部ソースから受け取られた質問は、１つ以上のサーチマネージャーにより関連質問言語（例えば、ＳＱＬ）に従ってパースされ、これにより、適当なノード（例えば、サーチコンダクタ、分析エージェント）で実行されるべきマシン読み取り可能な質問を生成する。あるケースでは、質問のソフトウェア言語に関連したスキーマファイルには、質問を生成するコードや受け容れられた規格により又はサーチマネージャーに対してネーティブに生成された質問が与えられる。スキーマファイルは、サーチ質問を適切にパースすることについてサーチマネージャーに命令する。例えば、サーチ質問が１つ以上のマークアップ言語（例えば、ＸＭＬ）を使用して準備されるか、又はデータ構造体（例えば、ＪＳＯＮ）を含む場合には、ＸＭＬコード又はＪＳＯＮコードの各マークアップタグ内のデータを識別し及び／又は有効とするために、ＸＳＤベースのスキーマファイルのようなスキーマファイルがサーチ質問コード又はデータ構造体に関連付けられる。
【０１７２】
チェック８０６において、サーチマネージャーは、ユーザが与えた質問又はアプリケーションで生成された質問に基づき、データベース及び／又は質問の１つ以上のフィールドの処理を遂行すべきかどうか決定する。フィールド処理の非限定例は、とりわけ、アドレス標準化、接近境界の決定、及び同意語の解釈を含む。ある実施形態において、システムの自動処理又は手動処理は、サーチプロセス８００に関連した他のプロセスが質問のフィールドに含まれた情報の使用を要求するかどうか決定しそして識別する。ある実施形態において、１つ以上のサーチマネージャーは、質問の１つ以上のフィールドのどれが望ましい処理を受けるか自動的に決定しそして識別する。
【０１７３】
ステップ８０８において、１つ以上のフィールドのフィールド処理がチェック８０６で望ましいとシステムが決定した後に、サーチマネージャーは、１つ以上の適当なフィールド処理技術をその望ましいフィールドに適宜に適用する。
【０１７４】
ステップ８１０において、サーチマネージャーは、サーチ質問に関連したサーチコンダクタ質問を構成する。ある実施形態では、サーチコンダクタ質問は、スタックベースサーチのような適当なサーチ質問実行プランに従って、システムの種々のノード（例えば、サーチマネージャー、サーチコンダクタ、ストレージノード）により処理されるように構成される。サーチ質問は、適当なバイナリフォーマット又は他のマシン読み取り可能なコンパクトなフォーマットを使用してエンコードされることが明らかである。
【０１７５】
ステップ８１２において、１つ以上のサーチマネージャーは、１つ以上のサーチコンダクタ質問を１つ以上のサーチコンダクタへ送出する。ある実施形態において、サーチマネージャーは、どのサーチコンダクタがサーチコンダクタ質問を受け取るべきか自動的に決定し、次いで、そのサーチコンダクタ質問を、サーチコンダクタの識別されたサブセットへ送出する。そのような実施形態では、サーチコンダクタは、データのある集合体に予め関連付けられ、そしてシステムインターフェイスから受け取られるサーチ質問は、質問されるべき集合体を特定する。従って、サーチマネージャーは、１つ以上のサーチ質問において特定された集合体に関連したサーチコンダクタへサーチコンダクタ質問を送出する。
【０１７６】
ステップ８１４において、サーチコンダクタは、サーチ結果を、それに対応するサーチマネージャーへ返送する。ある実施形態では、サーチ結果は、同期して返送され、そしてある実施形態では、サーチ結果は、非同期で返送される。同期とは、サーチマネージャーが結果を阻止するか又はオペレーションを停止する一方、特定のサーチコンダクタからサーチコンダクタ結果を待機する実施形態を指す。非同期とは、他の結果を阻止したり又は他のオペレーションを停止したりせずに、サーチマネージャーが多数のサーチコンダクタから同時に即ち並列に結果を受け取ることができる実施形態を指す。サーチコンダクタからサーチ結果を受け取った後、サーチマネージャーは、各サーチコンダクタから受け取った結果を、サーチコンダクタから返送されるレコードスコアに基づいて、１つ以上の結果リストへまとめる。
【０１７７】
チェック８１６において、サーチマネージャーは、サーチマネージャーによりコンパイルされたサーチ結果の付加的な分析処理を、サーチ質問における指示に基づいて遂行すべきかどうか決定する。あるケースでは、その指示は、ユーザによりサーチ質問に含まれる。ある実施形態では、システムは、サーチ質問に含まれた情報を使用して分析処理が望ましいかどうか決定する。ある実施形態では、１つ以上のサーチマネージャーは、フィールドが望ましい分析処理を受けるべきであることを自動的に決定する。サーチ質問は、サーチ質問に関連した他のデータ（例えば、ストリング、オブジェクト）と共にインストラクションを搬送できるソフトウェアプログラミング言語で構成される。マークアップ言語のようなあるプログラミング言語は、コードに埋め込まれたメタデータタグを使用して、分析を行うべきかどうかのブール値を指示するフィールド、又は実行されるべき特定の分析モジュール及び／又はその特定の分析モジュールをホストする分析エージェントノードを指示するより複雑なユーザ定義フィールド、のような種々の形式のデータを識別する。ＪａｖａＳｃｒｉｐｔ又はＰＨＰのようなあるプログラミング言語は、分析を行うべきかどうか識別するコードを含む記憶されたコンピュータファイルを参照し、これは、実行されるべき特定の分析モジュール及び／又はその特定の分析モジュールをホストする分析エージェントノードを指示するより複雑なユーザ定義フィールドである。
【０１７８】
処理が望まれることをシステムがチェック８１６で決定した場合には、ステップ８１８において、１つ以上の分析エージェントが１つ以上の適当な処理技術を１つ以上の結果リストに適用する。１つ以上の実施形態において、適当な技術は、とりわけ、多数のレコードをより完全なレコードへとロールアップし、結果に対して１つ以上の分析を遂行し、及び／又はレコード間の関係に関する情報を決定することを含む。次いで、分析エージェントは、１つ以上の処理済結果リストを１つ以上のサーチマネージャーへ返送する。
【０１７９】
ステップ８２０において、１つ以上のサーチマネージャーは、１つ以上の結果リストを解凍し、そして質問を開始したシステムへそれを返送する。
【０１８０】
図９は、ステップ９０２、９０４、９０８、９１０及び９１２を有し且つチェック９０６を有するサーチコンダクタ機能９００を示すフローチャートである。
【０１８１】
ステップ９０２において、サーチマネージャーは、１つ以上のサーチコンダクタに質問を送出する。
【０１８２】
ステップ９０４において、サーチコンダクタは、そのロードされたパーティションに対して質問を実行し、候補結果セットを生成する。１つ以上の実施形態において、ステップ９０４は、１つ以上のインデックスサーチを含む。１つ以上の実施形態において、サーチコンダクタは、１つ以上のスキーマの情報を使用して、質問を実行する。
【０１８３】
チェック９０６において、サーチコンダクタは、特定の質問に基づき、サーチコンダクタ質問においてスコア付けが要求されたかどうか決定する。スコア付けは、サーチマネージャーにより受け取られたサーチ質問に指示される。
【０１８４】
スコア付けが要求された場合に、サーチコンダクタは、ステップ９０８において、候補結果セットをスコア付けする。デフォールトスコアスレッシュホールドは、スキーマにおいて定義されるか、又はステップ９０２でサーチマネージャーにより送られたサーチコンダクタ質問に含まれる。１つ以上の実施形態において、初期のスコア付けは、フィールド特有のスコア付けアルゴリズムでフィールドレベルにおいてサーチコンダクタによって行われ、そこには、１つ以上の他のスコア付けアルゴリズムで無効化されるデフォールトがある。スコア付けアルゴリズムは、サーチ質問及び／又はサーチコンダクタ質問において定義されるか、又はその他、識別され、そしてサーチコンダクタにより適宜に遂行される。サーチコンダクタは、それらの個々のフィールドスコアに基づいて複合スコアをレコードに与える。ある実施形態では、１つ以上のフィールドスコア又は他の総計スコアを総計することによりスコアを計算できる１つ以上の総計スコア付け方法がサーチコンダクタにより適用される。
【０１８５】
ステップ９１０において、サーチコンダクタは、次いで、スコアを使用して、候補結果セットにおける残りのレコードを分類する。
【０１８６】
チェック９１２において、サーチコンダクタは、候補結果セットをサーチマネージャーへ返送し、ここで、返送される結果の数は、ステップ９０２でサーチマネージャーにより送られた質問において要求されたサイズに限定される。
【０１８７】
図１０は、ステップ１００２、１００４、１００６、１０１０及び１０１２を有し且つチェック１００８を遂行する集合体パーティショニング１０００を示すフローチャートである。
【０１８８】
ステップ１００２において、１つ以上の集合体が１つ以上のパーティショナーへ供給される。それら集合体は、１つ以上のスキーマに関連して供給され、１つ以上のパーティショナーが、１つ以上の集合体のレコードをどのように操作するか理解できるようにする。
【０１８９】
ステップ１００４において、１つ以上の集合体のレコードが断片化される。
【０１９０】
チェック１００８において、システムは、所与のデータ集合体についてスキーマをチェックし、そしてパーティション内のフィールドをパーティショナーによりインデックスすべきかどうか決定する。インデックスは、日付インデックス又は曖昧インデックス（例えば、表音）のように、既知のデータベースに使用されるフィールドインデックスの適当な例である。
【０１９１】
パーティショナーがパーティション内のフィールドをインデックスすべきであるとシステムがチェック１００８において決定した場合には、ステップ１０１０において、パーティショナーは、スキーマにおけるインデックス定義に基づいてパーティションをインデックスする。
【０１９２】
チェック１０１２において、システムは、所与のデータ集合体に対してスキーマをチェックし、そしてパーティショナーによりパーティションを圧縮すべきかどうか決定する。
【０１９３】
パーティショナーがパーティションを圧縮すべきであるとシステムがチェック１０１２において決定した場合には、ステップ１０１４において、パーティショナーは、スキーマで特定された圧縮方法を使用してフィールド及びレコードを圧縮し、これは、パーティションを充分に圧縮しながら、更に、フィールドレベルでの解凍を許すのに適した技術である。
【０１９４】
ステップ１０１６において、システムは、パーティションを配布するのに適したパーティションを１つ以上のサーチコンダクタに記憶する。
【０１９５】
集合体パーティショニング１０００は、大きなデータ集合体の最初のロード、再ロード又は置き換えを生成する。パーティショナーは、集合体内の各レコードに独特のレコードＩＤを指定し、パーティションされた集合体にバージョン番号を指定し、及び更に、要求された集合体スキーマを、１つ以上のＳＭ及び１つ以上のＳＣにより使用するためのパーティションセットバージョンに関連付ける。
【０１９６】
第２の実施形態では、適当な質問インターフェイスを含む１つ以上の適当なインターフェイスを通して新たなレコードが集合体に追加される。質問インターフェイスは、質問を経ての結果セットの返送をサポートするが、集合体バージョンに関連した集合体スキーマの返送もサポートする。更に、サーチインターフェイスは、１人以上のユーザがその集合体スキーマを使用して、新たなレコードを、サーチインターフェイスを通してサーチマネージャーへ提出することにより集合体に追加できるようにする。次いで、サーチマネージャーは、集合体に加えて適当なサーチコンダクタへ新たなレコードを配布する。ある実施形態では、サーチマネージャーは、所与のパーティションの複数のコピーにわたって最終的な一貫性を保証し、そして不揮発性ストレージに対するデータ耐久性を保証して、システム欠陥の後にデータが利用できることを確保する。
【０１９７】
１つ以上の実施形態において、レコードは、同様の仕方で削除される。質問からの結果セットは、レコードごとに不透明な独特のＩＤを含む。この独特のＩＤは、必要な情報をエンコードして、集合体の所与のバージョンにおける特定のレコードを独特に識別し、そしてとりわけ、集合体の名前、パーティションセットのバージョン、及び独特のレコードＩＤ、の１つ以上を含む。適当な許可で、質問インターフェイスは、独特のレコードＩＤに対応するレコードを削除する要求を受け容れる。このレコードは、即座に物理的に削除できず、削除についてマークされ、そして将来の返答セットにはもはや含まれない。
【０１９８】
１つ以上の他の実施形態において、新たな集合体スキーマ又は削除要求が質問インターフェイスへ提出されて、各々、新たな集合体を生成するか又は既存の集合体を除去する。このように生成される新たな集合体は、空で出発し、上述したメカニズムを含む適当なメカニズムを使用してレコードを追加することができる。
【０１９９】
図１１は、ステップ１１０２、１１０４、１１０６、１１０８、１１１２、１１１４、１１１６、１１１８及び１１２０を有し、及びチェック１１１０を遂行するパーティションローディング１１００を示すフローチャートである。
【０２００】
ステップ１１０２において、スーパーバイザーは、１つ以上のパーティションを１つ以上のサーチコンダクタへロードすべきであることを決定する。
【０２０１】
ステップ１１０４において、スーパーバイザーは、依存性マネージャーへ構成要求を送出し、そして依存性マネージャーは、１つ以上のサーチコンダクタにロードされるべき１つ以上のパーティションに関連した１つ以上の構成パッケージを返送する。
【０２０２】
ステップ１１０６において、スーパーバイザーは、どのサーチコンダクタにパーティションをロードすべきか決定する。１つ以上の実施形態において、スーパーバイザーは、望ましいフェイルオーバー能力を与えるために１つ以上のどのサーチコンダクタを使用するか決定する。１つ以上の他の実施形態では、スーパーバイザーは、１つ以上のクラスターが知覚するワークロードを良好に均すために１つ以上のどのサーチコンダクタを使用するか決定する。
【０２０３】
ステップ１１０８において、スーパーバイザーは、１つ以上のサーチコンダクタを含むノードに関連した１つ以上のノードマネージャーへコマンドを送信する。１つ以上の実施形態では、コマンドは、１つ以上のサーチコンダクタにパーティションをロードするためにスーパーバイザーから更に別のインストラクションを待機するように１つ以上のノードマネージャーに通知する。別の実施形態では、コマンドは、１つ以上のサーチコンダクタへロードされるべき１つ以上のパーティションに関連した１つ以上の構成パッケージを含む。１つ以上の他の実施形態では、コマンドは、新たなパーティションをメモリにロードするために前記１つ以上のサーチコンダクタを準備するインストラクションを含む。
【０２０４】
ステップ１１１０において、１つ以上のノードマネージャーは、パーティションをロードするのに要求されるノードリソースを割り当てる。
【０２０５】
チェック１１１２において、１つ以上のノードマネージャーは、１つ以上のパーティションをロードするために１つ以上のソフトウェア又はデータ更新が要求されるかどうか決定する。
【０２０６】
１つ以上のソフトウェア又はデータ更新が要求されることを１つ以上のノードマネージャーが決定した場合に、ステップ１１１４において、１つ以上のノードマネージャーは、次いで、前記１つ以上のソフトウェア更新を記憶し及び配布するのに適した１つ以上のノードから前記１つ以上のソフトウェア又はデータ更新を検索する。１つ以上のノードマネージャーは、次いで、１つ以上の検索されたソフトウェア又はデータ更新をインストールするように進む。
【０２０７】
ステップ１１１６において、１つ以上のノードマネージャーは、１つ以上のパーティションを記憶し及び配布するのに適した１つ以上のノードから前記１つ以上のパーティションを検索する。１つ以上の実施形態において、検索されたパーティションは、以前にインデックス及び記憶されており、そして検索されると、１つ以上のサーチコンダクタに関連したメモリにロードされる。別の実施形態では、検索されたパーティションは、検索される前にインデックス又は圧縮されておらず、そして１つ以上のサーチコンダクタに関連したメモリへロードされる前に１つ以上のサーチコンダクタによりインデックス又は圧縮される。
【０２０８】
ステップ１１１８において、１つ以上のサーチコンダクタは、ハートビートをスーパーバイザーへ送出し、そしてスーパーバイザーは、１つ以上のサーチコンダクタがシステムに使用する準備ができたことを決定する。
【０２０９】
ステップ１１２０において、スーパーバイザーは、１つ以上のサーチコンダクタがサーチ質問を受け取る準備ができたことを１つ以上のサーチマネージャーに通知する。
【０２１０】
図１２Ａは、集合体１２０２と、集合体１２１０で示された集合体１２０２の更新とを示す。集合体１２０２は、少なくとも、第１のパーティション１２０４、及び第ｎのパーティション１２０６まで、に分割され、そして集合体１２１０は、少なくとも、第１のパーティション１２１２、及び第ｎのパーティション１２１４まで、に分割される。
【０２１１】
図１２Ｂは、第１のパーティション１２０４及び第ｎのパーティション１２０６までの第１セットを有する第１のサーチノード１２２０と、第１のパーティション１２０４及び第ｎのパーティション１２０６までの第２セットを有する第２のサーチノード１２３０を示し、第１のサーチノード１２２０及び第２のサーチノード１２３０は、両方とも、少なくとも１つのサーチマネージャー１２４０に接続される。更に、第１のサーチノード１２２０、第２のサーチノード１２３０及びサーチマネージャー１２４０は、１つ以上のスーパーバイザー１２５０に接続される。
【０２１２】
図１２Ｃは、スーパーバイザー１２５０からのコマンドの結果としてサーチマネージャー１２４０から切断された第１のサーチノード１２２０を示し、一方、第２のサーチノード１２３０は、依然、接続を維持している。１つ以上の実施形態において、これは、第１のサーチノード１２２０がアップグレードされたときサーチマネージャー１２４０が集合体１２０２内のレコードのサーチを実行できるようにする。
【０２１３】
図１２Ｄは、第１のサーチノード１２２０が集合体１２１０を含むようにアップグレードされたところを示す。
【０２１４】
図１２Ｅは、スーパーバイザー１２５０からのコマンドの結果として第１のパーティション１２１２及び第ｎのパーティション１２１４までがサーチマネージャー１２４０に接続された第１のサーチノード１２２０を示す。スーパーバイザー１２５０は、次いで、サーチマネージャー１２４０から第２のサーチノード１２３０を切断するコマンドを送出する。１つ以上の実施形態において、これは、サーチマネージャー１２４０が集合体１２１０のレコードに対してサーチを実行するのを許す。
【０２１５】
図１２Ｆは、集合体１２１０を含むように更新される第２のサーチノード１２３０を示す。
【０２１６】
図１２Ｇは、第１のパーティション１２１２及び第ｎのパーティション１２１４までの第１セットを有する第１のサーチノード１２２０と、サーチマネージャー１２４０に接続された第１のパーティション１２１２及び第ｎのパーティション１２１４までの第２セットを有する第２のサーチノード１２３０を示し、第２のサーチノード１２３０とサーチマネージャー１２４０との間の接続は、スーパーバイザー１２５０からのコマンドの結果として確立されている。これは、サーチマネージャー１２４０が第１のサーチノード１２２０又は第２のサーチノード１２３０のいずれかにおける集合体１２１０のレコードのサーチを実行できるようにする。
【０２１７】
図１３は、第１のサーチノード１３０２、第２のサーチノード１３０４、第３のサーチノード１３０６、第４のサーチノード１３０８、第１の集合体に対する第１のパーティション１３１０、第２のパーティション１３１２、第３のパーティション１３１４、及び第４のパーティション１３１６、並びに第２の集合体に対する第１のパーティション１３２０、第２のパーティション１３２２、第３のパーティション１３２４、及び第４のパーティション１３２６を有するサーチノードクラスターを示す。
【０２１８】
サーチノードクラスター１３００は、望ましいパーティション冗長性レベルを与えるように構成され、１つ以上のサーチノードを適宜にシステムに追加したり又はシステムから除去したりすることができる。更に、１つ以上のサーチノードに含まれるパーティションは、時間と共に変化し、そしてパーティションローディング１１００と同様のプロセスに従ってサーチノードのノードマネージャーによりロード又はアンロードされる。サーチノードクラスター１３００におけるパーティションを更新、又はその他、変更するとき、図１２Ａ、１２Ｂ、１２Ｄ、１２Ｅ、１２Ｆ及び１２Ｇに示すものと同様の方法が使用される。
【０２１９】
図１４は、ラインタイプＡ１４０２、ラインタイプＢ１４０４、ラインタイプＣ１４０６、ラインタイプＤ１４０８、第１のネットワークセグメント１４１０、第２のネットワークセグメント１４１２、第３のネットワークセグメント１４１４、第１のサーチマネージャー１４２０、第ｎのサーチマネージャー１４２２、第１の分析エージェント１４３０、第ｎの分析エージェント１４３２、第１のサーチコンダクタ１４４０、第ｎのサーチコンダクタ１４４２、パーティショナー１４５０、第１の依存性マネージャー１４６０、第ｎの依存性マネージャー１４６２、第１のスーパーバイザー１４７０、及び第ｎのスーパーバイザー１４７２を有する接続図１４００を示す。
【０２２０】
１つ以上の実施形態において、ラインタイプＡ１４０２は、第１の帯域巾層及び第１のレイテンシー層を有する接続を表わし、ラインタイプＢ１４０４は、第２の帯域巾層及び第１のレイテンシー層を有する接続を表わし、ラインタイプＣ１４０６は、第３の帯域巾層及び第２のレイテンシー層を有する接続を表わし、そしてラインタイプＤ１４０８は、第４の帯域巾層及び第２のレイテンシー層を有する接続を表わす。１つ以上の実施形態において、第１の帯域巾層は、第２の帯域巾層より高い帯域巾に関連付けられ、第２の帯域巾層は、第４の帯域巾層より高い帯域巾に関連付けられ、そして第１のレイテンシー層は、第２のレイテンシー層より低いレイテンシーに関連付けられる。
【０２２１】
１つ以上の実施形態において、第１のネットワークセグメント１４１０は、ラインタイプＡ１４０２、ラインタイプＢ１４０４及びラインタイプＣ１４０６を含む適当な接続を使用して外部サーバーに接続される。又、第１のネットワークセグメント１４１０は、ラインタイプＡ１４０２接続を使用して第１のサーチマネージャー１４２０及び第ｎのサーチマネージャー１４２２までを含む第１クラスターにも接続される。
【０２２２】
１つ以上の実施形態において、第２のネットワークセグメント１４１２は、ラインタイプＡ１４０２接続を使用して第１のサーチマネージャー１４２０及び第ｎのサーチマネージャー１４２２までを含む第１クラスターに接続される。第２のネットワークセグメント１４１２は、ラインタイプＡ１４０２接続を使用して第１の分析エージェント１４３０及び第ｎの分析エージェント１４３２までを含む第２クラスター、ラインタイプＢ１４０４接続を使用して第１のサーチコンダクタ１４４０から第ｎのサーチコンダクタ１４４２までを含む第３クラスター、ラインタイプＤ１４０８接続を使用して第１の依存性マネージャー１４６０から第ｎの依存性マネージャー１４６２までを含む第４クラスター、及びラインタイプＤ１４０８接続を使用して第１のスーパーバイザー１４７０から第ｎのスーパーバイザー１４７２までを含む第５クラスターにも接続される。
【０２２３】
１つ以上の実施形態において、ラインタイプＡ１４０２の帯域巾層は、第１のサーチマネージャー１４２０から第ｎのサーチマネージャー１４２２までを含む第１クラスターが、少なくとも、第１のサーチコンダクタ１４４０から第ｎのサーチコンダクタ１４４２までを含む第３クラスターにおける適当な数のサーチコンダクタから適当な量の情報を受け取れるように保証するのに充分なものである。ラインタイプＡ１４０２のレイテンシー層は、少なくとも、システムが望ましい数の質問を実行するに充分な応答を行えるように充分に低い。
【０２２４】
１つ以上の実施形態において、ラインタイプＢ１４０４の帯域巾層は、第１のサーチコンダクタ１４４０から第ｎのサーチコンダクタ１４４２までを含む第３クラスターにおけるサーチコンダクタが、少なくとも、望ましいサイズの結果を返送できることを保証するに充分なものである。ラインタイプＢ１４０４のレイテンシー層は、少なくとも、システムが望ましい数の質問を実行するに充分な応答を行えるように充分に低い。
【０２２５】
１つ以上の実施形態において、ラインタイプＤ１４０８の帯域巾層は、第１の依存性マネージャー１４６０から第ｎの依存性マネージャー１４６２までを含む第４クラスターにおける依存性マネージャーが、少なくとも、望ましい数のパッケージ要求を受け取りそして望ましい数のパッケージを返送できることを保証するに充分なものである。更に、ラインタイプＤ１４０８の帯域巾層は、第１のスーパーバイザー１４７０から第ｎのスーパーバイザー１４７２までを含む第５クラスターにおけるスーパーバイザーが、少なくとも、望ましい数のノード及びモジュールを監視及び管理できることを保証するに充分なものである。ラインタイプＤ１４０８のレイテンシー層は、少なくともシステムを望ましい期間中管理しそして望ましい監視頻度を与えることができるように充分低いものである。
【０２２６】
１つ以上の実施形態において、第３のネットワークセグメント１４１４は、ラインタイプＣ１４０６接続を使用して第１のサーチコンダクタ１４４０から第ｎのサーチコンダクタ１４４２までを含む第３クラスターに、ラインタイプＤ１４０８接続を使用して第１の依存性マネージャー１４６０から第ｎの依存性マネージャー１４６２までを含む第４クラスターに、ラインタイプＤ１４０８接続を使用して第１のスーパーバイザー１４７０から第ｎのスーパーバイザー１４７２を含む第５クラスターに、及びラインタイプＣ１４０６接続を使用して１つ以上のパーティショナー１４５０を含む第６クラスターに、接続される。
【０２２７】
１つ以上の実施形態において、ラインタイプＢ１４０４の帯域巾層は、１つ以上のパーティショナー１４５０が少なくとも望ましい集合体にアクセスしそして望ましい期間内に望ましい数のパーティションを出力できることを保証するのに充分なものである。更に、ラインタイプＢ１４０４の帯域巾層は、第１のサーチマネージャー１４２０及び第ｎのサーチマネージャー１４２２までを含む第１クラスターが、少なくとも、望ましい期間内に望ましい数のパーティションをロードできることを保証するのに充分なものである。ラインタイプＢ１４０４のレイテンシー層は、少なくとも、接続を使用するノードが望ましい期間内にシステムのコマンドに反応し、そしてシステムが望ましい監視頻度を与えることができるようにするに充分なほど低い。
【０２２８】
１つ以上の実施形態において、ラインタイプＤ１４０８の帯域巾層は、第１の依存性マネージャー１４６０から第ｎの依存性マネージャー１４６２までを含む第４クラスターにおける依存性マネージャーが、少なくとも、望ましい数のパッケージ要求を受け取りそして望ましい数のパッケージを返送できることを保証するに充分なものである。更に、ラインタイプＤ１４０８の帯域巾層は、第１のスーパーバイザー１４７０から第ｎのスーパーバイザー１４７２までを含む第５クラスターにおけるスーパーバイザーが、少なくとも、望ましい数のノード及びモジュールを監視及び管理できることを保証するに充分なものである。ラインタイプＤ１４０８のレイテンシー層は、システムを望ましい期間中管理しそして望ましい監視頻度を与えることができるように充分低いものである。
【０２２９】
１つ以上の実施形態において、第１のスーパーバイザー１４７０から第ｎのスーパーバイザー１４７２までを含む第５クラスターは、適当な数のノードにおける１つ以上のノードマネージャーへのラインタイプＤ１４０８接続を有する。
【０２３０】
１つ以上の他の実施形態において、１つ以上の他の形式のモジュールを含む付加的なクラスターは、第１のネットワークセグメント１４１０、第２のネットワークセグメント１４１２、及び／又は第３のネットワークセグメント１４１４に接続され、ここで、接続は、ラインタイプＡ１４０２、ラインタイプＢ１４０４、ラインタイプＣ１４０６、及び／又はラインタイプＤ１４０８接続を含む。
【０２３１】
図１５は、スーパーバイザー１５２０、第ｎのスーパーバイザー１５０４、第１の依存性ノード１４１０、依存性ノードマネージャー１５１２、依存性マネージャー１５１４、第ｎの依存性マネージャー１５２０、第ｎの依存性ノードマネージャー１５２２、第ｎの依存性マネージャー１５２４、第１ノード１５３０、ノードマネージャー１５３２、モジュール１５３４、第ｎノード１５４０、第ｎのノードマネージャー１５４２、及び第ｎのモジュール１５４４を含む欠陥許容アーキテクチャー１５００を示す。図１５の規範的システム１５００のようなある実施形態は、ノードを複数のクラスターへと論理的に編成する。しかしながら、ある実施形態は、もしあれば、１つの論理的クラスターを有してもよい。
【０２３２】
１つ以上の実施形態において、第１のクラスターは、スーパーバイザー１５０２、及び第ｎのスーパーバイザー１５０４までを含む。各スーパーバイザー１５０２は、スーパーバイザー１５０２と第２クラスターの１つ以上のノードとの間の通信を容易にするのに適したネットワークインターフェイスカード（ＮＩＣ）のようなネットワークインターフェイスコンポーネントを備えている。第２のクラスターは、第１の依存性ノード１５１０、及び第ｎの依存性ノード１５２０までを含み、第１の依存性ノード１５１０は、ノードマネージャー１５１２及び依存性マネージャー１５１４を含み、そして第ｎの依存性ノード１５２０は、第ｎのノードマネージャー１５２２及び第ｎの依存性マネージャー１５２４を含む。前記第１クラスターのスーパーバイザーは、更に、第１のノード１５３０及び第ｎのノード１５４０までを含む第３クラスターにおける１つ以上のノードと通信するのに適した適当な数の接続を含み、ここで、第１のノード１５３０は、ノードマネージャー１５３２及び適当な数のモジュール１５３４を含み、そして第ｎのノード１５４０は、第ｎのノードマネージャー１５４２及び適当な数の第ｎのモジュール１５４４を含む。
【０２３３】
１つ以上のスーパーバイザー１５０２は、１つ以上のノードマネージャー１５１２、１つ以上の依存性マネージャー１５１４、及び適当な数のノードマネージャー１５３２及びモジュール１５３４からハートビートを受け取る。１つ以上の実施形態において、これは、１つ以上のスーパーバイザー１５０２が分散型コンピューティングシステムにおける１つ以上のノード及び／又はモジュールの状態を監視できるようにする。更に、スーパーバイザー１５２０は、１つ以上の適当なコマンドを適当な数のノードマネージャー１５１２及び適当な数のノードマネージャー１５３２へ送信する。
【０２３４】
１つ以上の実施形態において、スーパーバイザー１５０２は、１つ以上のモジュール１５３４を１つ以上のノード１５３０にインストールするとき１つ以上の依存性ノード１５１０から構成パッケージを要求する。
【０２３５】
図１６は、規範的実施形態によるノード１６００の構成を示す図である。図１６のノード１６００は、ノードマネージャー１６０２ソフトウェアモジュール、並びに第１のソフトウェアモジュール１６１０及び第ｎのモジュール１６１２までを含む任意の数の付加的なソフトウェアモジュール１６１０、１６１２を実行するプロセッサを備えている。それらソフトウェアモジュールは、サーチマネージャー、サーチコンダクタ、分析エージェント、スーパーバイザー、及び依存性マネージャーを含むシステムモジュールのいずれかを含む。
【０２３６】
図１６の規範的な構成によれば、ノード１６００は、データネットワークを経て、スーパーバイザーモジュール又はスーパーバイザーノードを実行する第２ノードに通信結合される。又、ノード１６００によりインストールされそして実行されるノードマネージャー１６０２は、スーパーバイザーノードと通信するようにも構成され、そして第１モジュール１６１０から第ｎモジュール１６１２までを含めて、ノードにインストールされるソフトウェアモジュール１６１０、１６１２を監視するようにも構成される。ノードマネージャー１６０２は、スーパーバイザーから受け取った適当なコマンドを実行し、そして更に、ノード１６００、ノードマネージャー１６０２、及び第１モジュール１６１０ないし第ｎモジュール１６１２の１つ以上の状態についてレポートする。第１モジュール１６１０は、１つ以上のスーパーバイザーにリンクされ、そしてノード内の１つ以上の他のモジュールにリンクされ、ここで、ノード内の他のモジュールは、第１モジュール１６１０とは異なるタイプであるか、又は第１モジュール１６１０とタイプを共有するものである。更に、第１モジュール１６１０は、システム内の１つ以上の他のモジュール、ノード又はクラスターにリンクされる。
【０２３７】
図１７は、欠陥取り扱い１７００のフローチャートである。
【０２３８】
スーパーバイザーは、システムの全データ集合体の定義及び構成を維持し、これは、各パーティションの冗長コピーがどれほど多く望まれるか、欠陥コンポーネントを別のノードへ移動する前に欠陥コンポーネントの再スタートを何回試みるか、等を指示する集合体ごとの設定を含む。又、スーパーバイザーは、ノードマネージャーにより与えられる利用可能なノード及びそれらのリソースのリストも維持する。その情報から、スーパーバイザーは、構成設定に合致しながら必要なシステムモジュールを利用可能なノードへマッピングすることにより望ましいシステム状態を計算する。欠陥取り扱い１７００は、スーパーバイザーがモジュール欠陥を検出することで始まり（１７０２）、ここで、１つ以上のスーパーバイザーは、実際のシステム状態を望ましいシステム状態と比較することにより、１つ以上のモジュールの欠陥を検出する。１つ以上の実施形態において、スーパーバイザーは、ノードマネージャー又はシステムモジュールからの１つ以上のハートビートがもはや検出されないときに欠陥を検出する。１つ以上の他の実施形態では、１つ以上のモジュールからのハートビートは、１つ以上のスーパーバイザーにより解釈される１つ以上の他のモジュールに関する状態情報を含む。
【０２３９】
スーパーバイザーは、データ集合体及びデータ集合体に関連した構成設定の定義を記憶する。又、スーパーバイザーは、ノードマネージャーによってレポートされる利用可能なシステムリソースに関する情報も記憶する。構成情報は、とりわけ、各パーティションの冗長コピーがどれほど多く望まれるか、欠陥コンポーネントを別のノードへ移動する前に欠陥コンポーネントの再スタートを何回試みるかを指示する集合体ごとの設定を含む。全てのこの情報から、スーパーバイザーは、構成設定に依然合致しながら必要なシステムモジュールを利用可能なノードへマップする「望ましい」システム状態を導出する。全てのこの情報は、ディスクに又はＩＭＤＢ内に予め定められたデータ集合体にＪＳＯＮファイルとして記憶されるＪＳＯＮオブジェクトとして表わされる。
【０２４０】
スーパーバイザーは、次いで、関連ノードマネージャーが機能するかどうか検出する（１７０４）。
【０２４１】
１つ以上の欠陥モジュールに関連したノードマネージャーが、望ましく機能するか又は状態ｑｕｏ構成に従って機能する場合には、ステップ１７０６において、スーパーバイザーが１つ以上のコマンドをノードマネージャーへ送って、１つ以上の欠陥モジュールを再スタートする試みをするようノードマネージャーに命令する。
【０２４２】
スーパーバイザーは、次いで、モジュールが回復したかどうかチェックし（１７０８）、もしそうであれば、プロセスは、終了となる（１７１０）。ある具現化において、モジュールの第１のアクションは、ハートビートを経て状態を１つ以上の利用可能なスーパーバイザーにレポートすることである。モジュール機能が回復していないと決定されると、スーパーバイザーは、再スタートスレッシュホールドに到達したかどうか決定する（１７１２）。試みのスレッシュホールド回数は、集合体ごとの構成設定であり、これは、システムアドミニストレータによりセットされそしてスーパーバイザーに記憶される。スーパーバイザーは、モジュールが欠陥となり、別のノードへ再スタート又は移動すべきであると決定する。スーパーバイザーは、コマンドを送信し、試みの回数に到達しない場合に、ノードマネージャーは、モジュールの再スタートを試みる（１７０６）。
【０２４３】
スレッシュホールドに到達した場合には、スーパーバイザーは、モジュールを配置するために次の適当なノードを決定し（１７１４）、そしてスーパーバイザーは、全てのモジュール依存性をステージして現在モジュールをスタートするように新たなノードのノードマネージャーに要求する（１７１６）。
【０２４４】
スーパーバイザーは、モジュールが回復したかどうかチェックし（１７１８）、もしそうであれば、プロセスは終了へと進む（１７１０）。モジュールが回復しない場合には、システムは、新たなノードの再スタートスレッシュホールドに到達したかどうかチェックする（１７２０）。スレッシュホールドに到達しない場合に、スーパーバイザーは、現在モジュールをステージ及びスタートするように新たなノードのノードマネージャーに要求する（１７１６）。
【０２４５】
さもなければ、スーパーバイザーは、全体的ノード再トライスレッシュホールドに到達したかどうかチェックする（１７２２）。この値は、システムアドミニストレータによっても定義され、そしてスーパーバイザーでスクリプトに或いはＪＳＯＮ又は同様のデータ構造体オブジェクトとして記憶される。スレッシュホールドに到達しない場合には、スーパーバイザーは、モジュールを配置するための次の適当なノードを決定し（１７１４）、そして新たなノードにおいてノードを再スタートするように試みる。全体的スレッシュホールドに到達した場合には、システムは、次いで、モジュール欠陥を指示するアラームを発する（１７２４）。
【０２４６】
ハートビートの欠落、又は欠陥状態を指示するノードマネージャーからのハートビートにより示されるように、対応するハートビートに基づき、関連ノードマネージャーが機能しないことをスーパーバイザーが検出した場合には、スーパーバイザーは、欠陥ノードマネージャーを伴うノードに関連したモジュールを選択する（１７２６）。次いで、スーパーバイザーは、モジュールを配置するための次の適当なノードを決定する（１７２８）。その後、スーパーバイザーは、現在モジュールをステージ及びスタートするように新たなノードのノードマネージャーに要求する（１７３０）。
【０２４７】
スーパーバイザーは、次いで、モジュールが回復したかどうかチェックする（１７３２）。モジュールが回復しない場合には、スーパーバイザーは、新たなノードの再スタートスレッシュホールドに到達したかどうかチェックする（１７３４）。スレッシュホールドに到達していない場合には、スーパーバイザーは、現在モジュールをステージ及びスタートするように新たなノードのノードマネージャーに要求する（１７３０）。
【０２４８】
スレッシュホールドに到達した場合には、スーパーバイザーは、次いで、全体的ノード再トライスレッシュホールドに到達したかどうかチェックする（１７３６）。スレッシュホールドに到達していない場合には、スーパーバイザーは、モジュールを配置するための次の適当なノードを決定し（１７２８）、そして新たなノードにおいてノードを再スタートするよう試みる。全体的なスレッシュホールドに到達した場合には、システムは、次いで、モジュール欠陥を指示するアラームを発する（１７３８）。
【０２４９】
さもなければ、モジュールが回復した場合には、スーパーバイザーは、次いで、欠陥ノードから移行すべきモジュールが更にあるかどうかチェックする（１７４０）。ノードに欠陥がある場合には、スーパーバイザーは、望ましい状態で定義されたように、欠陥ノードで実行されていた全てのサービスを移行するように構成される（１７４０）。スーパーバイザーは、欠陥ノードを伴わない新たな望ましい状態を計算し（１７４０）、そしてそれに応じてサービスを移行させる必要がある。ある具現化において、スーパーバイザーは、欠陥ノードマネージャーを有するノードに関連したモジュールを選択し（１７２６）、そしてノードマネージャーは、モジュールをステージ及びスタートする試みをする。
【０２５０】
移行すべきモジュールがそれ以上ないとスーパーバイザーが決定した場合には、プロセスが終了となる（１７１０）。
【０２５１】
図１８は、スーパーバイザー１８０２及び依存性マネージャー１８０４のブロック図接続１８００を示す。一般的に、スーパーバイザー１８０２は、システムを監視し、及び／又はシステムの動作状態を維持するプロセス及びタスクを実行する。スーパーバイザー１８０２は、システムの変更を行うための適当な構成要求を受け容れる。ソフトウェア又はデータ構成は、依存性マネージャー１８０４ソフトウェアモジュール又はスーパーバイザー１８０２ソフトウェアモジュールを実行するノードによって取り扱われるが、個別のデータフレームから展開可能なパッケージが与えられてもよい。個別のデータフレームは、構成に従って展開可能なパッケージを準備するのに使用される１つ以上のリリース可能なファイルを記憶する非一時的マシン読み取り可能なストレージ媒体である。
【０２５２】
ある実施形態によれば、依存性マネージャー１８０４は、システム内の適当なソフトウェア又はデータコンポーネントの維持又は構成を含む非一時的マシン読み取り可能なストレージ媒体として使用される。それら構成は、リリースプロセスにおいて新たなデータ、メタデータ又はソフトウェア更新により駆動される。
【０２５３】
依存性マネージャー１８０４は、システムの幾つかのプロセスにより要求される構成において役割を演じることができる。即ち、依存性マネージャー１８０４は、適当な集合体を更新するのに使用されるパーティションに対して「パッケージ」、「構成」、「コンポーネント」及び／又は「ファイル」とも称される適当な依存性を与えるためにスーパーバイザー１８０２に直接接続される。更に、スーパーバイザー１８０２は、１つ以上の依存性マネージャー１８０４にリンクされ、そして１つ以上の他のスーパーバイザー１８０２にリンクされ、ここで、付加的なスーパーバイザー１８０２は、システムの他のコンポーネントにリンクされる。
【０２５４】
図１９は、システムの構成プロセスのフローチャート図１９００である。
【０２５５】
別の実施形態によれば、構成プロセス又は保守プロセスは、どんな依存性をモジュールが有しそしてモジュールと共に展開する必要があるかに関する情報を含む。要求されるファイルは、個別の非一時的マシン読み取り可能なストレージ又は「データフレーム」からフェッチされる。ある実施形態では、このデータフレームは、システムアーキテクチャーの外部であり、例えば、ソフトウェア更新を提供する第三者売主のケースがそうである。適当な展開可能なパッケージにおける依存性は、構成されているモジュール又はパターンに直接リンクされるか又はその周りにラップされる異なるタイプのファイル、データ又はソフトウェアを含む。構成プロセスは、異なるステップ１９０２、１９０４、１９０６、１９０８、１９１０及び１９１２を含む。構成プロセス１９００は、データ又はソフトウェアコンポーネントをインストール又は更新するようにシステムに求める要求に応答して開始する。
【０２５６】
第１ステップ１９０２において、システムのプロセッサは、構成プロセス１９００のシーケンス／ステップをトリガーする状態を自動的に検出する。
【０２５７】
ある実施形態では、ステップ１９０２において、スーパーバイザーモジュールを実行するシステムのノードは、ヘルス更新又は「状態」をスーパーバイザーへレポートする役割を果たすノードマネージャーソフトウェアモジュールのようなシステムのコンポーネントをポーリングする。そのような実施形態では、スーパーバイザーは、システム構成で定義されたように、スーパーバイザーがシステムモジュールから受け取ることを期待するハートビート（ＨＢ）信号の欠落に基づいてシステム全体にわたり欠陥を自動的に検出する。次いで、スーパーバイザーは、ＨＢ信号の欠落の検出に応答して、他の矯正プロセスの中でも、構成プロセス１９００をトリガーする。
【０２５８】
ある実施形態では、ステップ１９０２において、スーパーバイザーモジュールを実行するシステムのノードは、コンポーネントに対する更新又は新たなノードハードウェアへの移行のようなシステム構成における１つ以上の変更についての外部要求をスーパーバイザーが受け取るときに構成プロセス１９００をトリガーする。
【０２５９】
ステップ１９０４において、スーパーバイザーは、ノードにインストールされるべき１つ以上のモジュールに関連した１つ以上の展開パッケージを検索する要求を依存性マネージャーへ送出する。展開パッケージは、依存性マネージャーに従ってノード構成を満足するために要求されるファイル及び／又は他の材料の各々を定義する。展開可能なパッケージは、適切な展開に必要なソース及び行先情報を含む全ての必要な依存性を含み、そしてモジュールを構成又はスタートするのに必要なモジュールプロパティを含む。特定の依存性は、依存性マネージャーにも定義されたそれ自身の依存性を有し、それ故、依存性ツリーとも称される。
【０２６０】
ステップ１９０６において、スーパーバイザーは、展開パッケージを記憶するデータフレームから要求された展開パッケージをフェッチするためのインストラクションを依存性マネージャーへ送信する。データフレームは、依存性マネージャーを実行するノードに通信結合された適当なコンピューティング装置に配置される非一時的なマシン読み取り可能なストレージ媒体である。あるケースでは、展開パッケージが生成されるときに、展開パッケージは、送出されるモジュールに対する全ての依存性、並びに展開パッケージを適切に展開するに必要なソース及び行先情報を含む。又、展開パッケージは、展開パッケージを構成又はスタートするに必要な１つ以上のモジュールも含む。展開パッケージは、自動プロセス又は手動プロセスを通して生成される。手動の例では、システムアドミニストレータは、必要なファイル及びデータを伴う展開パッケージを識別し及び／又は生成する。自動の例では、スーパーバイザー又は依存性マネージャーは、自動的に識別されるファイルを使用して展開パッケージを自動的に識別し及び／又は生成し、これは、通常、依存性マネージャーにより生成されるテストスクリプトを通して達成されて、人間が実行できる以上のインストール速度及び配布率を生み出す。
【０２６１】
ステップ１９０８において、依存性マネージャーがデータフレームから展開パッケージを受け取った後に、依存性マネージャーは、展開パッケージを要求したスーパーバイザーを実行するノードに展開可能なパッケージを送出する。
【０２６２】
ステップ１９１０において、スーパーバイザーは、構成を要求するノードのノードマネージャーに展開可能なパッケージを送出する。
【０２６３】
ステップ１９１２において、ノードマネージャーは、ファイルをコピーし、インストールを行い、及び／又はスーパーバイザーから受け取った展開可能なパッケージを実行し、それにより、システムに必要な保守、更新又は構成を具現化する。
【０２６４】
図２０は、システムの構成に使用される依存性２０００のブロック図である。更に別の実施形態によれば、システムの保守又は構成のためのプロセスは、とりわけ、依存性マネージャー２００２、スーパーバイザー２００４、サーチノード２００６、ノードマネージャー２００８及び依存性ツリー２０１０のような異なるコンポーネントを含む。
【０２６５】
依存性ツリー２０１０は、モジュール又はパーティションに直接リンクされるか又はその周りにラップされるファイルの異なるタイプを含み、依存性とは、パーティションの各メンバーがパーティションの他のメンバーの各々に依存する程度である。例えば、依存性ツリー２０１０は、フォネティック１．０及び圧縮１．０に依存するパーティション１を含み、その後、フォネティック１．０は、ソフトウェアライブラリー（例えば、処理ＤＬＬ１．０及び入力ＤＬＬ１．０）に依存し、そして圧縮１．０は、データテーブル１．０に依存し、等々である。
【０２６６】
依存性マネージャー２００２は、システムのリリース可能なファイルに関連した依存性ツリー２０１０を記憶する。更に別の実施形態では、適当なソフトウェア又はデータコンポーネントが依存性ツリー２０１０内に指示されるコンポーネントへリリースされる場合には、依存性マネージャー２００２は、データフレームに記憶された１つ以上のファイルから展開可能なパッケージを生成する。
【０２６７】
スーパーバイザー２００４は、１つ以上のモジュール、パーティション又はその適当な組み合わせに対して１つ以上の依存性ツリー２０１０を含む１つ以上の依存性マネージャー２００２にリンクされる。スーパーバイザー２００４は、更に、１つ以上のスーパーバイザー２００４にリンクされ、ここで、付加的なスーパーバイザー２００４は、システムの他のコンポーネントにリンクされる。
【０２６８】
図２１は、システムインターフェイス２１０２、第１のサーチマネージャー２１１０、第ｎのサーチマネージャー２１１２、第１の分析エージェント２１２０、第ｎの分析エージェント２１２２、第１のサーチコンダクタ２１３０、第ｎのサーチコンダクタ２１３２、パーティションデータ２１４０、パーティショナー２１５０、第１の集合体２１６０、第ｎの集合体２１６２、スーパーバイザー２１７０、及び依存性マネージャー２１８０を有するシステムアーキテクチャー２１００を示す。
【０２６９】
１つ以上の実施形態において、システムインターフェイス２１０２は、システムアーキテクチャー２１００の外部で生成された１つ以上の質問を、第１のサーチマネージャー２１１０を含む少なくとも１つのノード及び第ｎのサーチマネージャー２１１２を含むｎ個までのノードを備えた第１クラスターにおける１つ以上のサーチマネージャー２１１０、２１１２へ供給する。前記第１クラスターにおける１つ以上のサーチマネージャー２１１０、２１１２は、少なくとも第１の分析エージェント２１２０及び第ｎの分析エージェント２１２２までを含む第２クラスターにおける１つ以上の分析エージェント２１２０、２１２２にリンクされる。
【０２７０】
第１クラスターにおけるサーチマネージャー２１１０、２１１２は、第３クラスターにおける１つ以上のサーチコンダクタ２１３０、２１３２にリンクされる。第３クラスターは、少なくとも第１のサーチコンダクタ２１３０、及び第ｎのサーチコンダクタ２１３２までを含む。各サーチノード（即ち、サーチマネージャー２１１０、２１１２を実行するノード）は、適当な数のサーチコンダクタ２１３０、２１３２を含む。
【０２７１】
第３クラスターにおけるサーチコンダクタ２１３０、２１３２は、パーティションデータ２１４０を記憶する１つ以上のデータベースノードにリンクされる。パーティションデータ２１４０は、１つ以上の集合体を１つ以上のパーティションへと少なくとも分割するように構成されたモジュールである１つ以上のパーティショナー２１５０を実行するノードにより生成される１つ以上のパーティション（即ち、レコードの個別セットから区画化されたレコードの任意に限定された部分）を含む。パーティションの各々は、少なくとも第１の集合体２１６０及び第ｎの集合体２１６０までに対応する。集合体２１６０、２１６２は、更に、集合体２１６０、２１６２におけるデータを定義する１つ以上のスキーマにより記述される。１つ以上のスキーマは、とりわけ、パーティションのレコードにおけるフィールドの名前、前記フィールドがインデックスされるかどうか、どんな圧縮方法が使用されたか、及びフィールドに対してどんなスコア付けアルゴリズムがデフォールトであるかの情報を含む。スキーマは、第１の集合体２１６０及び第ｎの集合体２１６２までをパーティショニングするときにパーティショナー２１５０により使用され、そして集合体において１つ以上の質問を実行するときに第１のサーチマネージャー２１１０及び第ｎのサーチマネージャー２１１２までによって更に使用される。
【０２７２】
１つ以上のノードは、システム２１００の他のノードから送信されたハートビート信号を受信するスーパーバイザー２１７０ソフトウェアモジュールを実行する。スーパーバイザー２１７０は、１つ以上の依存性マネージャー２１８０ソフトウェアモジュールを実行するシステム２１００のノードからデータを受け取るように構成される。依存性マネージャー２１８０ノードは、１つ以上のモジュール、パーティション、又はその適当な組み合わせに関連した依存性ツリーを記憶、更新及び参照し、これは、ノード、モジュール及びパーティションに対する構成依存性を相対的な関係に基づいて指示する。スーパーバイザー２１７０は、更に、１つ以上の他のスーパーバイザー２１７０を実行するシステム２１００の他のノードにリンクされる。あるケースでは、付加的なスーパーバイザー２１７０へのリンクは、システムアーキテクチャー２１００のクラスター間を交差する。
【０２７３】
分析エージェント２１２０、２１２２を実行するノードは、システムのコンポーネント（例えば、ソフトウェアモジュール、ノード）間の相互運用性及びデータ転送を容易にする特定アプリケーションプログラミングインターフェイス（ＡＰＩ）に合致する１つ以上の適当な分析モジュールを実行する。分析エージェント２１２０、２１２２は、サーチコンダクタ２１３０、２１３２から返送される総計質問結果を処理するように構成される。例えば、サーチマネージャー２１１０は、サーチ質問を受け取り、次いで、サーチマネージャー２１１０が１つ以上のサーチコンダクタ２１３０、２１３２へ発行するサーチコンダクタ質問を生成する。サーチコンダクタ２１３０、２１３２がそれらの各々指定されたサーチコンダクタ質問を実行した後に、サーチマネージャー２１１０は、１つ以上のサーチコンダクタ２１３０、２１３２から総計質問結果のセットを受け取る。サーチマネージャー２１１０は、これらのサーチ質問結果を、サーチ質問のパラメータにより更なる処理が要求される場合は、更なる処理のために分析エージェント２１２０へ転送する。
【０２７４】
ある具現化において、サーチコンダクタ２１３０、２１３２から受け取った総計結果の１つ以上のセットを処理するために分析エージェント２１２０に対してサーチ質問が要求されたことをサーチマネージャー２１１０が決定した後に、サーチマネージャー２１１０は、データベーススキーマファイル及び／又は１つ以上の分析パラメータを分析エージェント２１２０、２１２２へ送出する。あるケースでは、サーチ質問は、どの分析エージェント２１２０が総計サーチ結果を受け取るべきか識別するためにサーチマネージャー２１１０が使用する特定の分析アルゴリズムの遂行を要求する。あるケースでは、総計結果の１つ以上のセットが、圧縮されたレコードの形態で分析エージェント２１２０、２１２２へ送出され、これは、圧縮アルゴリズムに従って圧縮されたデータを含む。あるケースでは、レコードのデータは、レコードのフィールドにおいて圧縮され、そしてあるケースでは、全レコードが圧縮される。
【０２７５】
分析エージェント２１２０、２１２２を実行するノードは、種々の分析モジュールを有する。その非限定例は、他の適当なモジュール及びアルゴリズムの中でも、曖昧性除去モジュール、リンクモジュール、及びリンクオンザフライモジュールを含む。適当なモジュールは、任意の種類のデータを処理する分析方法のソフトウェア実施を含む。ある実施形態では、特定の分析モジュール又は分析エージェント２１２０、２１２２は、インメモリデータベースの所定インスタンス、クラスター、パーティション及び／又はインスタンス生成オブジェクトにしかアクセスできない。
【０２７６】
図２２は、一実施形態により、ステップ２２０２、２２０４、２２０６、２２０８、２２１０、２２１２、２２１４、２２１６及び２２１８を有し、インメモリデータベースをホストするシステムに分析モジュールを追加する方法２２００のフローチャートである。
【０２７７】
ステップ２２０２において、インメモリデータベースでのプラグ型分析に適したＡＰＩに合致する１つ以上の適当な分析モジュールが生成される。ＡＰＩには、システムの相互運用性を与えるために分析モジュールが実施しなければならない要求された方法がある。分析モジュールは、ユーザ特有のニーズを満足するために生成される。
【０２７８】
１つ以上の分析モジュールが適当なモジュールストアに記憶される。モジュールストアは、スーパーバイザーにより管理される非一時的なマシン読み取り可能なストレージ媒体である。実施形態にもよるが、分析モジュールを構築し及び／又は管理する役割を果たすエンティティ、デベロッパー、ユーザ、コンポーネント、モジュール、外部ソース、及び／又は他のソースは、１つ以上の適当なプログラミング言語を使用して分析モジュールを開発する。
【０２７９】
ある実施形態によれば、ＡＰＩは、例えば、ルーチン、データ構造、オブジェクトクラス及び変数に対するパラメータ又は引数をコンピュータがコンパイルし及び／又は具現化するためのソースコードプログラミングインストラクション及び規格のセットを含むソフトウェア対ソフトウェアインターフェイスとして働く。ＡＰＩは、システムが後で開発されるソフトウェアモジュールからのデータ入力を受け容れそしてそこに結果を出力するのを許す一方、データ入力がデータフォーマット（即ち、予想される引数）に合致する限り、後で開発されるモジュールの所有権、能力又は他の特性に対して不可知論を維持する。データ入力及び出力に対して役立つシステムＡＰＩは、そのような新たに開発され又は後で開発され且つしばしば外部のソフトウェアモジュールに「露出」される。露出されたＡＰＩは、その露出されたＡＰＩがソフトウェアモジュールからデータを受け取り、フェッチし、又はその他、「消費」するときに、データ受容性を有効とする。システムＡＰＩの予想される引数を満足するオーサリングソフトウェアソースは、デベロッパー及び他のユーザが、分析エージェントのようなシステムのノード及びモジュールとデータを通信（即ち、送信、受信）するために、分析モジュールのような種々のソフトウェアモジュールを開発できるようにする。
【０２８０】
分析エージェントは、インメモリデータベースをホストするシステム内に１つ以上のノードを備え、各分析エージェントのノードは、１つ以上の分析モジュールを記憶及び実行することができる。ＡＰＩは、異なるユーザ開発分析モジュールをシステムの種々のノード及びモジュール並びにインメモリデータベースに適合できるようにする。
【０２８１】
ある実施形態では、１つ以上のモジュールは、利用可能なＡＰＩに適合する適当なプログラミング言語を使用して第三者により開発された外部モジュールである。そのような実施形態では、それらの新たに開発されるモジュールは、分析モジュールストアに記憶される。
【０２８２】
ステップ２２０４において、生成されたモジュールは、それに対応する定義及び依存性を依存性マネージャーに追加することによってインメモリデータベースにロードされ、これは、適当なファイル及びインストラクションを開発し、アップロードし、又はその他、依存性マネージャーに記憶することのできる適当な自動又は手動プロセスを使用して達成される。
【０２８３】
ステップ２２０６において、スーパーバイザーは、依存性マネージャーのモジュール設定に基づいて、１つ以上のモジュールを１つ以上のノードにインストールすべきかどうか決定する。ある環境において、依存性マネージャーに記憶されたモジュール設定は、ロードされた分析モジュールが「イネーブル」されるか「ディスエイブル」されるかを含む。例えば、分析モジュールがイネーブルされることを設定が指示する場合に、分析モジュールは、その分析モジュールを遂行する分析エージェントを実行する各ノードに対して開発される。スーパーバイザーは、次いで、インストール準備インストラクションを前記１つ以上のノードにおける１つ以上のノードマネージャーへ送出する。
【０２８４】
ステップ２２０８において、ノードマネージャーは、ノードのリソースを、１つ以上の望ましいモジュールを実行するために、依存性マネージャーにおけるモジュール設定に基づいて割り当てる。１つ以上の実施形態において、リソースの割り当ては、スーパーバイザーがプロセスを中断すると、ある期間の後に終了となる。依存性マネージャーのモジュール設定は、どれほど多くのメモリ、ＣＰＵ及び／又はディスクがモジュールにより要求されるか指示する。
【０２８５】
ステップ２２１０において、スーパーバイザーは、ノードにインストールされるべき１つ以上のモジュールに関連した１つ以上の構成パッケージについて依存性マネージャーへ要求を送出する。一例として、自動又は手動プロセス（例えば、システムアドミニストレータ）は、他のソフトウェア又はメタデータのような構成パッケージに対応する依存性も定義する依存性マネージャーに新たなモジュールを追加する。
【０２８６】
ステップ２２１２において、スーパーバイザーは、構成パッケージをノードマネージャーへ送出する。
【０２８７】
ステップ２２１４において、ノードマネージャーは、依存性マネージャーに定義されたように、１つ以上のモジュールを実行するために要求されるソフトウェア及びデータを読み取る。
【０２８８】
ステップ２２１６において、ノードマネージャーは、ステップ２２１４でフェッチされた要求されたソフトウェア及びデータをインストールする。分析エージェントは、モジュールがインストールされると、それらを動的にロード及びアンロードし、従って、装置又はソフトウェアを再スタートする必要がなく、インストールされた１つ以上のモジュールは、使用の準備ができる。
【０２８９】
ステップ２２１８において、ノードマネージャーは、ステップ２２１６でインストールされたソフトウェアを実行する。分析エージェントが分析モジュールをスタートした後、新たなモジュールを実行する各分析エージェントは、ハートビート信号をスーパーバイザーに送信する。ハートビート信号は、新たなモジュールが適切にスタートされそして使用の準備ができたことを指示する。
【０２９０】
図２３は、一実施形態によるインメモリデータベース２３００システムアーキテクチャーを示す。ＭＥＭＤＢ２３００システムアーキテクチャーは、システムインターフェイス２３０２、第１のサーチマネージャー２３０４、第ｎのサーチマネージャー２３０６、第１の分析エージェント２３０８、第ｎの分析エージェント２３１０、第１のサーチコンダクタ２３１２、第ｎのサーチコンダクタ２３１４、パーティショナー２３１６、第１の集合体２３１８、第ｎの集合体２３２０、スーパーバイザー２３２２、及び依存性マネージャー２３２４を備えている。
【０２９１】
１つ以上の実施形態において、システムインターフェイス２３０２は、ＭＥＭＤＢ２３００のシステムアーキテクチャーの外部で生成された１つ以上の質問を、少なくとも第１のサーチマネージャー２３０４及び第ｎのサーチマネージャー２３０６までを含む第１クラスターにおける１つ以上のサーチマネージャーへ供給するように構成される。前記第１クラスターにおける前記１つ以上のサーチマネージャーは、少なくとも第１の分析エージェント２３０８及び第ｎの分析エージェント２３１０までを含む第２クラスターにおける１つ以上の分析エージェントにリンクされる。
【０２９２】
前記第１クラスターにおけるサーチマネージャーは、少なくとも第１のサーチコンダクタ２３１２及び第ｎのサーチコンダクタ２３１４までを含む第３クラスターにおける１つ以上のサーチコンダクタにリンクされる。前記第３クラスターのサーチコンダクタは、１つ以上のパーティショナー２３１６にリンクされ、少なくとも第１の集合体２３１８及び第ｎの集合体２３２０までに対応するパーティションは、１つ以上の瞬間に記憶される。
【０２９３】
ＭＥＭＤＢ２３００に含まれたクラスターに含まれる１つ以上のノード、モジュール又はその適当な組み合わせは、１つ以上のスーパーバイザー２３２２にリンクされ、前記クラスターにおける前記１つ以上のノード、モジュール又は適当な組み合わせは、少なくとも１つのハートビートを１つ以上のスーパーバイザー２３２２へ送出するように構成される。スーパーバイザー２３２２は、１つ以上の依存性マネージャー２３２４にリンクされ、ここで、前記１つ以上の依存性マネージャー２３２４は、１つ以上のモジュール、パーティション又はその適当な組み合わせに対して１つ以上の依存性ツリーを含む。スーパーバイザー２３２２は、更に、１つ以上の他のスーパーバイザー２３２２にリンクされ、ここで、付加的なスーパーバイザー２３２２は、ＭＥＭＤＢ２３００のシステムアーキテクチャーに含まれる前記クラスターにリンクされる。
【０２９４】
図２４は、一実施形態による非排他的サーチ方法２４００のフローチャートである。この非排他的サーチ方法２４００は、システムがサーチを実行し、そして質問に特定されたフィールドが、サーチされているレコードにポピュレートも定義もされていないレコードから結果を持ち帰ることができるようにする。
【０２９５】
プロセスは、質問がサーチマネージャーにより受け取られることでスタートし（２４０２）、ここで、外部ソースにより生成される１つ以上の質問は、１つ以上のサーチマネージャーにより受け取られる。ある実施形態では、これらの質問は、ユーザとの相互作用に応答してシステムインターフェイス２３０２により自動的に生成される。１つ以上の実施形態において、質問は、サーチ質問のパラメータを表わすＸＭＬ、ＪａｖａＳｃｒｉｐｔ、ＨＴＭＬ、又は他の適当な言語を含めて、マークアップ言語又は他の適当な言語で表わされる。１つ以上の他の実施形態において、質問は、質問がＹＡＭＬ又はＪＳＯＮで表わされる実施形態を含めて、ある構造で表わされる。ある実施形態では、質問は、コンパクト又はバイナリフォーマットで表わされる。
【０２９６】
その後、受け取った質問は、サーチマネージャーによりパースされる（２４０４）。このプロセスは、フィールド処理が望まれるかどうかシステムが決定できるようにする（２４０６）。１つ以上の実施形態において、システムは、質問に含まれた情報を使用してプロセスが要求されるかどうか決定することができる。１つ以上の他の実施形態では、１つ以上のサーチメモリは、１つ以上のフィールドが望ましい処理を受けるかどうか自動的に決定する。
【０２９７】
１つ以上のフィールドに対するフィールド処理が望まれるとシステムが決定した場合には、サーチマネージャーがフィールドを処理する間に（２４０８）、１つ以上のサーチマネージャーが１つ以上の望ましいフィールドに１つ以上の適当な処理技術を適用する。１つ以上の実施形態において、適当な処理技術は、とりわけ、アドレス標準化、地理的接近又は境界、及びニックネーム解釈を含む。ある実施形態では、適当な処理技術は、ストリングからのプレフィックスの抽出、及び曖昧マッチング技術を適用するために後で使用される非リテラルキーの生成を含む。
【０２９８】
次いで、Ｓ．Ｍ．がサーチ質問を構成するとき（２４１０）、１つ以上のサーチマネージャーは、１つ以上の質問に関連した１つ以上のサーチコンダクタ質問を構成する。１つ以上の実施形態において、サーチコンダクタ質問は、スタックベースサーチとして処理されるように構成される。
【０２９９】
その後、Ｓ．Ｍ．は、サーチコンダクタ質問をＳ．Ｃ．に送出する（２４１２）。ある実施形態では、１つ以上のサーチマネージャーは、１つ以上のサーチ質問を１つ以上のサーチコンダクタへ送出し、ここで、前記１つ以上のサーチコンダクタは、１つ以上のサーチ質問に特定された集合体に関連したものである。
【０３００】
次いで、１つ以上のサーチコンダクタは、特定のフィールドが存在しないことに基づきレコードを除外せずに適当なブールサーチ演算２４１４（例えば、ＡＮＤ、ＯＲ、ＸＯＲ）及びインデックスルップアップを適用する。サーチコンダクタは、ユーザが与えた又はアプリケーションが与えたブール演算及びインデックスルックアップを実行する。従って、実施形態では、ユーザ質問を実行して、曖昧インデックスを実施し且つ“ＡＮＤ”演算ではなく“ＯＲ”演算を実施し、潜在的に良好な結果を「除外」しないレコードの候補セットを得る。スコア付け特徴は、最良の結果（即ち、最も関連性の高い）が最も高いスコアとなり、且つあまり関連性のないレコードがスコアを低くする。あるケースでは、サーチ質問を実行する２つのステージがある。サーチステージでは、ブール演算、曖昧インデックス及びフィルタが、サーチ質問を満足する潜在的な結果の候補セットを返送する。次のスコア付けステージは、ユーザが特定するか又はアプリケーションが特定する１つ以上のスコア付け方法を適用して、最良の結果のスコアが高くなるように候補セットのレコードをスコア付けし、所与のスレッシュホールドより下の、悪い又は低い関連性の結果を除外して、合理的な結果サイズだけを返送することができる。これは、スコア付けを必要とするレコードの非常に大きな候補セットを有することになるが、インメモリデータベースシステムは、従来のシステムに対してあるケースでは非常に大きなサイズを有するサーチ結果のセットを取り扱うに充分なほど高速である。その結果、あるフィールドが空であるか又はある程度ノイズ性又はエラー性のデータがあるだけで良好な結果が失われることはない。
【０３０１】
上述したように、サーチコンダクタは、適当なサーチフィルタを適用する（２４１６）一方、欠落フィールドに基づいてレコードを除外することはない。１つ以上のサーチコンダクタは、それにより得られる返答セットレコードを１つ以上の質問に対してスコア付けし（２４１８）、ここで、サーチコンダクタは、レコードの１つ以上のフィールドの一致をスコア付けし、次いで、レコードの全一致に対するスコアを決定する。サーチコンダクタは、レコードを１つ以上の質問に対してスコア付けすることができ、ここで、質問は、レコードにおいて省略された又はレコードに含まれないフィールドを含む。ある実施形態では、サーチマネージャーは、質問において定義されたものより少ない又はそれとは異なるフィールドを含むスキーマを伴う集合体において遂行されるべき質問をサーチコンダクタへ送出する。このケースでは、質問は、サーチされている集合体のスキーマに合致するフィールドを変更してスコア付けためにのみそれらが存在することを指示するように改正される。あるケースでは、サーチマネージャーは、サーチ質問を生成及び／又は変更することができる。即ち、サーチマネージャーは、欠落フィールド、又は１つ以上の集合体において定義されたインデックスを持たないフィールドを考慮するよう仕立てられ又は調整される質問プランを構築する。
【０３０２】
ある実施形態によれば、質問とは異なるスキーマを伴う集合体は除外されず、利用可能なフィールドは質問に対してスコア付けされ、そして欠落フィールドを伴うレコードにはペナルティ又は低いスコアが指定される。ＭＥＭＤＢ２３００にわたる集合体のフィールドが正規化され、そして各サーチコンダクタは、スコア指定プロセスを容易にするために正規化されたフィールドのディクショナリーにアクセスする。正規化は、適当な手動又は自動プロセスを通して遂行される。サーチ質問を与えるユーザ又はアプリケーションが、複数の集合体にわたって正規化されたフィールドを定義する場合には、システムは、各々の集合体が厳密に同じスキーマ又はストレージルールに合致しなくても、複数の集合体にわたって適用できる質問を構築する。
【０３０３】
ある実施形態では、考えられる関連結果のリストを更に広げるために、曖昧マッチング技術が適用される。
【０３０４】
システムは、指定のスコアが特定の受け容れスレッシュホールドより上であるかどうか決定し、ここで、スレッシュホールドは、サーチ質問において定義されるか、又はデフォールト値である。１つ以上の実施形態において、デフォールトスコアスレッシュホールドは、スコア付けされる１つ以上のフィールドに従って変化する。スコアが望ましいスレッシュホールドより上であるとサーチコンダクタが決定した場合には、レコードが結果リストに追加される。サーチコンダクタは、レコードが現在結果セットの最後であると決定するまでレコードをスコア付けし続ける。パーティションの最後のレコードが処理されたとサーチコンダクタが決定した場合に、サーチコンダクタは、次いで、それにより得られた結果リストを分類する。サーチコンダクタは、次いで、結果リストをサーチマネージャーへ返送する。
【０３０５】
Ｓ．Ｍ．がＳ．Ｃ．から結果を受け取ってまとめるとき（２４２０）、１つ以上のサーチコンダクタは、１つ以上のサーチ結果を１つ以上のサーチマネージャーへ返送し、ここで、１つ以上の実施形態において、前記１つ以上のサーチ結果が非同期で返送される。次いで、１つ以上のサーチマネージャーは、１つ以上のサーチコンダクタからの結果を１つ以上の結果リストにコンパイルする。
【０３０６】
システムは、１つ以上のサーチマネージャーによりコンパイルされたサーチ結果の分析処理２４２２が望まれるかどうか決定する。１つ以上の実施形態において、システムは、質問に含まれた情報を使用して処理が望まれるかどうか決定する。１つ以上の他の実施形態において、１つ以上のサーチマネージャーは、１つ以上のどのフィールドが望ましい処理を受けるか自動的に決定する。
【０３０７】
分析処理２４２２が望まれるとシステムが決定した場合には、１つ以上の分析エージェントは、１つ以上の適当な処理技術を１つ以上の結果リストに適用することを通して結果を処理する（２４２４）。１つ以上の実施形態において、適当な技術は、とりわけ、多数のレコードをより完全なレコードへロールアップし、結果に対して１つ以上の分析を遂行し、そして隣接レコードに関する情報を決定することを含む。ある実施形態では、分析エージェントは、曖昧性除去モジュール、リンクモジュール、リンクオンザフライモジュール、又は他の適当なモジュール及びアルゴリズムを含む。
【０３０８】
処理後に、ある実施形態によれば、１つ以上の分析エージェントは、１つ以上の処理済結果リストを１つ以上のサーチマネージャーへ返送する。
【０３０９】
サーチマネージャーは、サーチ結果を返送する（２４２６）。ある実施形態において、１つ以上のサーチ結果は、１つ以上の結果リストを解凍し、そしてそれを、質問を開始したシステムへ返送する。返送された結果は、ＸＭＬ、ＪＳＯＮ、ＲＦＤ又は他のフォーマットを含む多数のフォーマットの１つでフォーマットされる。
【０３１０】
図２５は、ストレージユニット２５０２、ＲＡＭ２５０４、及びＣＰＵ２５０６を含む圧縮装置２５００を示す。
【０３１１】
１つ以上の実施形態において、データレコードの１つ以上の集合体、１つ以上のスキーマ、１つ以上のディクショナリー、１つ以上のＮグラムテーブル及び１つ以上のトークンテーブルが圧縮装置２５００のハードウェアストレージユニット２５０２に記憶される。圧縮装置２５００のＲＡＭ２５０４は、ストレージユニット２５０２、並びにとりわけ、断片化モジュール、圧縮モジュール及びインデックスモジュールを含む適当なモジュールに記憶されたデータをそれにロードする。１つ以上の実施形態において、圧縮装置２５００は、１つ以上の適当なＣＰＵ２５０６を含む。
【０３１２】
図２６は、集合体データテーブル２６００を示す。
【０３１３】
１つ以上の実施形態において、１つ以上の集合体は、集合体データテーブル２６００に示すように構造化又は半構造化データを含む。１つ以上の実施形態において、構造化データは、任意の数のフィールドを含み、そしてＪＳＯＮ、ＢＳＯＮ、ＹＡＭＬ又は他の適当なフォーマットを使用して表わされるデータのような半構造化データは、適当な数のフィールド、アレイ、又はオブジェクトを含む。集合体は、適当なスキーマを使用して記述され、適当なスキーマは、スキーマにおける１つ以上のフィールドに使用されるデータ構造及び圧縮方法を定義する。
【０３１４】
１つ以上の実施形態において、１つ以上のフィールドは、セマンティック類似性を有するデータ値を含む。１つ以上の実施形態において、セマンティック類似データは、とりわけ、氏名、生年月日、及び市民権を含む。１つ以上の実施形態において、圧縮装置は、フィールドに記憶された形式のデータを圧縮するのに適した１つ以上の方法を使用して１つ以上のフィールドを圧縮し、ここで、圧縮装置は、カスタムトークンテーブルを使用する。１つ以上の実施形態において、圧縮装置は、望ましい圧縮方法に関連していないデータと共に任意の数のフィールドに対するデフォールト圧縮方法としてＮグラム圧縮を使用する。
【０３１５】
１つ以上の実施形態において、集合体の１つ以上のフィールドにおける１つ以上のデータは、断片化の後に良好に圧縮されるデータを含む。この形式のデータは、典型的に、フィールドがレコード当たり複数の値を有するというものであり、そして圧縮装置は、それらのレコードを複数のレコード断片へ正規化解除することでマッチング及びスコア付けを良好に達成する。断片化に適したデータは、例えば、とりわけ、氏名、住所、電話番号及びｅ−メールを含む。１つ以上の実施形態において、圧縮装置は、圧縮の前に１つ以上のデータを断片化する。圧縮装置は、断片化されたデータを同じパーティションに連続的に記憶する。１つ以上の実施形態において、圧縮装置は、断片化されたレコード識別子を使用して、どのレコードからそれらが断片化されたか識別し、レコードが集合体の同じオリジナルレコードから生じたことをシステムが分かったままにするよう保証する。
【０３１６】
１つ以上の実施形態において、レコードは、データ値のアレイを含む。このアレイは、ゼロ以上の値を含み、そしてアレイの値は、値の適切な順序を保存しつつ、欠落値を表わすナル値を有する。
【０３１７】
１つ以上の実施形態において、圧縮装置は、１つ以上のデータフィールドをオブジェクトとしてグループ化する。オブジェクトは、他のオブジェクトを含み、アレイのエレメントである。圧縮装置は、更に、同じ値をもつパーティションの別のオブジェクトをシステムに参照させる値を含ませることによりレコード内のオブジェクトを圧縮する。モジュールがシステムの他のモジュールへデータを出力するとき、モジュールは、参照オブジェクトを実際のオブジェクト値に置き換える。
【０３１８】
１つ以上の実施形態において、圧縮装置は、既知のバイナリ圧縮方法を使用して数字を表わすフィールドにおける１つ以上のデータを圧縮する。
【０３１９】
１つ以上の実施形態において、圧縮装置は、既知のシリアルデイナンバー(Serial Day Number)圧縮アルゴリズムを使用してデータを表わすフィールドにおいて１つ以上のデータを圧縮する。
【０３２０】
１つ以上の実施形態において、圧縮装置は、圧縮の前に１つ以上のデータを正規化する。圧縮の前に正規化するのに適したデータは、とりわけ、街路のサフィックス及びプレフィックス、名前のサフィックス及びプレフィックス、及び後／前方向情報（即ち、東、北、西、等）を含む。
【０３２１】
図２７は、トークンテーブル２７００を示す。
【０３２２】
１つ以上の実施形態において、圧縮装置は、適当なトークンテーブルを使用して適当なセマンティック類似性を伴うデータを含むフィールドを圧縮し、ここで、適当なトークンテーブルは、トークンテーブル２７００と同様である。
【０３２３】
１つ以上の実施形態において、１つ以上のレコードが関連トークンテーブルと共にフィールドに追加されるときに、システムは、データがトークンテーブル内の以前に遭遇したデータに一致するかどうか決定する。１つ以上の実施形態において、データが一致しない場合には、システムは、トークンテーブルに代って、別の圧縮方法を使用する。１つ以上の他の実施形態では、データが一致しない場合に、システムは、データを含むようにそのトークンテーブルを更新する。
【０３２４】
１つ以上の実施形態において、トークンテーブルは、周期的に更新され、そして記憶されたデータを再評価して、圧縮性が改善されたかどうか決定する。１つ以上のデータの圧縮性が改善された場合には、システムは、適当なデータを解凍し、そして再圧縮する。
【０３２５】
１つ以上の実施形態において、最も頻繁に生成する値が小さい番号のインデックスに記憶され、これは、最も頻繁に使用される値をより少ないバイトで表わせるようにする。
【０３２６】
１つ以上の実施形態において、トークンテーブルに含ませるために短い値より長い値が好ましく、これは、小さな値と同じインデックスサイズの長い値を排除することにより大きな圧縮を許す。
【０３２７】
１つ以上の実施形態において、データ値に対しトークンデータが存在しないことを指示するために特殊なインデックス値が予約される。
【０３２８】
図２８は、Ｎグラムテーブル２８００を示す。
【０３２９】
１つ以上の実施形態において、圧縮装置は、適当なＮグラムテーブルを使用して適当なセマンティック類似性を伴うデータを含むフィールドを圧縮し、ここで、適当なＮグラムテーブルは、Ｎグラムテーブル２８００と同様である。
【０３３０】
１つ以上の実施形態において、１つ以上のレコードが関連Ｎグラムテーブルと共にフィールドに追加されるときに、システムは、データがＮグラムテーブル内の以前に遭遇したデータに一致するかどうか決定する。１つ以上の実施形態において、データが一致しない場合には、システムは、Ｎグラムテーブルに代って、別の圧縮方法を使用する。１つ以上の他の実施形態では、データが一致しない場合に、システムは、データを含むようにそのＮグラムテーブルを更新する。
【０３３１】
１つ以上の実施形態において、Ｎグラムテーブルは、周期的に更新され、そして記憶されたデータを再評価して、圧縮性が改善されたかどうか決定する。１つ以上のデータの圧縮性が改善された場合には、システムは、適当なデータを解凍し、そして再圧縮する。
【０３３２】
１つ以上の実施形態において、最も頻繁に生成する値が小さい番号のインデックスに記憶され、これは、最も頻繁に使用される値をより少ないバイトで表わせるようにする。
【０３３３】
１つ以上の実施形態において、データ値に対しＮグラムデータが存在しないことを指示するために特殊なインデックス値が予約される。
【０３３４】
図２９は、１つ以上の実施形態において圧縮されたデータを表わすレコード表現２９００を示す。
【０３３５】
レコード表現２９００において、レコードインデックス列の各行値は、とりわけ、メモリにおける長さ、オフセット又はレコード位置を含めて、レコードに関する情報と共に、ゼロ以上のレコード記述子バイトを含む。１つ以上の実施形態において、レコードに存在する各データノード（アレイ、フィールド又はオブジェクト）は、ゼロ以上の記述子バイトを含み、ここで、もし適用できれば、ノード識別子、記憶データの長さ、及びアレイのエレメントの数を含めて、ノードに関する適当な情報が含まれる。ゼロ以上のノード記述子バイトに続いて、適当な数のバイトがレコードに関連したデータを表わす。１つ以上の実施形態において、データは、アレイ分離マーカービットを含むデータのコンテンツを記述する１つ以上のビットを含む。
【０３３６】
１つ以上の実施形態において、トークンテーブルに関連したフィールドのデータは、レコードに記憶された情報が適当なトークンテーブルに表わされるかどうか、又はＮグラム圧縮のような別の適当な圧縮方法が使用されたかどうか明示するために１つ以上のビットを使用する。
【０３３７】
１つ以上の実施形態において、システムは、１つ以上のレコード記述子バイト及び／又は１つ以上のノード（アレイ、オブジェクト又はフィールド）に含まれた長さ又はオフセットデータを使用して、レコード又はノード（アレイ、オブジェクト又はフィールド）を解凍せずに圧縮データを通してナビゲートする。
【０３３８】
１つ以上の実施形態において、システムの適当なモジュールは、ＭＥＭＤＢシステムの１つ以上のサーチコンダクタ又は１つ以上のパーティショナーを含めて、データをインデックス又は圧縮する。
【０３３９】
１つ以上の実施形態において、ここに開示する１つ以上の圧縮方法を使用する圧縮装置は、他の有名な圧縮方法と同様のレートでデータを圧縮できるようにする一方、ノード（アレイ、オブジェクト又はフィールド）レベルでデータを解凍及び／又はそれにアクセスできるようにする。
【０３４０】
１つ以上の実施形態において、ここに開示する１つ以上の圧縮方法を使用する圧縮装置は、レコードの情報にアクセスするときにシステムが個々のレコード及びノード（アレイ、オブジェクト又はフィールド）をスキップできるようにする。
【０３４１】
１つ以上の実施形態において、ここに開示する１つ以上の圧縮方法を使用する圧縮装置は、ターゲットフィールドが見つかったときシステムがレコードの解凍から早目に退出できるようにする。
【０３４２】
例＃１において、ここに開示するファセットサーチ方法が適用される。ＭＥＭＤＢは、大きなコーパスからドキュメントを分析し、ファセットを抽出し、抽出されたファセットを曖昧性除去及びインデックスし、そしてファセットタイプ及びハイアラーキーに従って３つ以上の集合体の異なるパーティションでそれらを記憶する。例＃１では、ユーザがサーチボックスにワード“united”をタイプし、そしてシステムは、ファセットによるサーチ結果を返送する。レベル１のファセットは、とりわけ、「クラス(Class)」、「位置(Location)」、「製品(Product)」、「技術(Technology)」及び「会社(Company)」を含む。各レベル２のファセットに対するヒットの数が示され、ユーザは、サーチを少なくとも３つ多いレベルで絞り込むことができる。
【０３４３】
例＃２において、ここに開示するファセットサーチ方法が適用される。ＭＥＭＤＢは、大きなコーパスからドキュメントを分析し、ファセットを抽出し、抽出されたファセットを曖昧性除去及びインデックスし、そしてファセットタイプ及びハイアラーキーに従って３つ以上の集合体の異なるパーティションでそれらを記憶する。例＃２では、ユーザがサーチボックスにキャラクタ“ply”をタイプし、そしてシステムは、ファセットによるサーチ示唆を自動的に生成する。レベル１のファセットは、とりわけ、「クラス」、「位置」、「製品」、「技術」及び「会社」を含む。各レベル２のファセットに対するヒットの数が示され、ユーザは、サーチを少なくとも３つ多いレベルで絞り込むことができる。
【０３４４】
例＃１は、サーチマネージャー、分析エージェント、各ノードのノードマネージャー、２つのサーチコンダクタを各々有する８つのサーチノード、スーパーバイザー、バックアップスーパーバイザー、依存性マネージャー、バックアップ依存性マネージャー、並びにパーティションを記憶及び配布することのできるノードのパーティショナーを含むインメモリデータベースである（ここで、ノードは、各々４つのパーティションに分割される２つの集合体、即ち集合体１及び集合体２のための情報を含む）。集合体１のレコードに対するサーチ質問がデータベースにより受け取られると、サーチマネージャーは、集合体１に関連したパーティショナーを有する全てのサーチコンダクタに質問を送出する。サーチコンダクタは、非同期で働いて、各圧縮されたレコードをサーチ及びスコア付けし、質問で定義されたスレッシュホールドより上のスコアを有する圧縮された結果のリストを作成し、結果のリストを分類し、そして圧縮されたレコードのリストをサーチマネージャーへ返送する。この例では、サーチコンダクタは、スコア付けされるべきフィールドのみを解凍する。サーチマネージャーは、各サーチコンダクタから結果のリストを受け取って総計し、質問結果をコンパイルし、そしてそれを更なる処理のために分析エージェントへ送出する。分析エージェントは、充分に関連していると決定したレコードを結合し、そしてその処理された結果リストをサーチマネージャーへ返送する。次いで、サーチマネージャーは、システムインターフェイスを通して最終結果を返送する。
【０３４５】
例＃２は、セマンティック質問を遂行し、そしてデータベースにおいて明確にリンクされていないデータに対するリンクされたデータ結果を返送することのできるインメモリデータベースである。データ又はレコードのリンク動作は、分析エージェントで実施される総計分析機能の一例に過ぎない。この例は、非リンクデータにおいてデータリンケージを発見しそしてセマンティック質問を遂行してセマンティック結果を返送することのできる分析エージェントを伴うインメモリデータベースである。非リンクデータとは、他のデータソースからのデータに対して明確なキー又は他の明確なリンクをもたない異種データソースからのデータである。この例では、プラグ型分析モジュールが開発されて分析エージェントにおいて展開され、データコンテンツそれ自体に基づいて異種データソースにわたりデータリンケージを発見し／見出すことができる。セマンティックサーチ質問が実行されるとき、非排他的サーチを使用してサーチコンダクタを経て全ての当該レコードが検索され、そして分析エージェントへ送られ、そこで、分析エージェントモジュールの特定の実施に基づいてレコードリンケージが発見され、そして信頼性スコアが指定される。それらの動的にリンクされたレコードは、ＲＤＦ／ＸＭＬ又は他のセマンティックデータ表現のようなセマンティックマークアップを使用して表わされ、そしてユーザに返送される。セマンティックサーチに対するこの解決策は、同じ非リンクデータを使用して異なる質問に対して異なる仕方で非リンクデータをリンクできるようにする。
【０３４６】
例＃３は、グラフ質問を遂行し、そしてデータベースにおいて明確にリンクされず又はグラフ形態で表されないデータに対してリンクされたデータ結果を返送することのできるインメモリデータベースである。この例は、非リンクデータにおいてデータリンケージを発見しそしてグラフ質問を遂行してグラフ質問結果を返送することのできる分析エージェントを伴うインメモリデータベースである。グラフサーチ質問が実行されるときに、全ての当該レコードは、非排他的サーチを使用してサーチコンダクタを経て検索され、そして分析エージェントへ送られ、そこで、レコードリンケージが発見され、そして信頼性スコアが指定される。それらの動的にリンクされたレコードは、ＲＤＦグラフ、プロパティグラフ、又は他のグラフデータ表現のようなグラフ形態で表わされ、そしてユーザに返送される。グラフサーチに対するこの解決策は、同じ非リンクデータを使用して異なる質問に対して異なる仕方で非リンクデータをリンクできるようにする。
【０３４７】
例＃４は、図１４に示したものと同様に仕方で接続設定したインメモリデータベースをホストするシステムである。サーチマネージャー、サーチコンダクタ及び分析エージェントは、全て、双方向ユーザ質問の流れに直接関与するものである。ユーザ質問のレイテンシーを最小にするために、これらのモジュールは、これらのモジュールは、最低レイテンシー接続で接続される。サーチマネージャー及び分析エージェントは、大きな総計返答セットで働き、そして最大帯域巾から利益を得、ここで、サーチコンダクタは、あまり帯域巾を要求しない数百のパーティションベースの返答セットコンポーネントを取り扱う。パーティションは、大きなデータボリュームを非双方向速度で取り扱い、従って、それらは、両方とも、中程度のレイテンシー及び中程度の帯域巾接続を有する。スーパーバイザー及び依存性マネージャーは、非双方向で且つ低いデータボリュームであり、従って、最低帯域巾及び最高レイテンシーの接続を要求するだけである。この構成は、実際のニーズに基づいてコストを最小にするよう試みるものである。
【０３４８】
それ故、この例では、ラインタイプＡは、帯域巾が４０Ｇｂで且つレイテンシーが１マイクロ秒以下のＩｎｆｉｎｉＢａｎｄ接続であり；ラインタイプＢは、帯域巾が２０Ｇｂで且つレイテンシーが１マイクロ秒以下のＩｎｆｉｎｉＢａｎｄ接続であり；ラインタイプＣは、１０Ｇｂのイーサネット接続であり；そしてラインタイプＤは、１００Ｍｂのイーサネット接続である。この例において、サーチマネージャーを含むノードは、２テラフロップで動作できるＣＰＵを備え；サーチコンダクタを含むノードは、４テラフロップで動作できるＣＰＵを備え；分析エージェントを含むノードは、４テラフロップで動作できるＣＰＵを備え；そしてパーティショナーを含むノードは、６テラフロップで動作できるＣＰＵを備えている。この例では、サーチコンダクタを含むノードは、３２から６４ＧＢのＲＡＭを備え、分析エージェントを含むノードは、３２から６４ＧＢのＲＡＭを備え、そしてパーティショナーを含む６つのノードは、各々、６４ＧＢのＲＡＭ及び１００００ＲＰＭのハードディスを備えている。
【０３４９】
例＃５は、図１４に示したものと同様に仕方で接続設定したインメモリデータベースをホストするシステムである。サーチマネージャー、サーチコンダクタ及び分析エージェントは、全て、双方向ユーザ質問及びデータインサートの流れに直接関与するものである。大ボリュームの後端データインサートネットワークトラフィックを双方向低レイテンシーのユーザ質問から分離するために、モジュールは、異なるネットワーク層を使用して接続される。この構成は、ＩｎｆｉｎｉＢａｎｄのような低レイテンシーのネットワーク層を使用することにより応答性双方向ユーザ質問を許す一方、個別の高帯域巾ネットワーク層を使用して大ボリュームのデータインサートも許す。両形式の動作は、互いに干渉せずに最適に実行される。
【０３５０】
例＃６は、あるリソースがノードにもはや利用できないために単一のモジュールがフェイルしたが、ノードそれ自体に悪影響がない場合に何が起きるかを示している。
【０３５１】
このケースでは、モジュールがフェイルしたとき、スーパーバイザーへのハートビート接続がドロップし、モジュール欠陥に対してスーパーバイザーに警告する。スーパーバイザーは、欠陥が単に接続問題かモジュール欠陥かチェックするためモジュールへの再接続を試みる。ある実施形態では、再接続の欠陥は、モジュール欠陥であると仮定する。
【０３５２】
スーパーバイザーは、先ず、モジュールをその場所で再スタートするように関連ノードマネージャーに要求する。モジュールをその場所でスタートすることは、モジュール及びそれに対応するソフトウェア又はデータを再計画するコストを被ることがなく、従って、別のノードにおいて計画及びスタートするより迅速に達成することができる。しかしながら、この例では、特定のノードにおいてあるリソースが利用できないことが問題であり、従って、再スタートもフェイルとなる。
【０３５３】
モジュールをその場所で再スタートする所定回数の試みをした後に、スーパーバイザーは、モジュールをスタートするため別の適当なノードを探す。スーパーバイザーは、欠陥モジュールを展開するのに必要な正しいパッケージを取得するために依存性マネージャーに連絡する。次いで、スーパーバイザーは、そのパッケージを、新たに選択されたノードのためのノードマネージャーへ送り、モジュールを計画及び実行する。モジュールは、新たなノードにおいて要求されたリソースを見出し、そしてスーパーバイザーへのハートビート接続を生成して、それが適切に動作することを指示する。スーパーバイザーは、機能を回復としてマークし、そしてイベントが終了となる。
【０３５４】
例＃７は、電源の停電のような全ノードフェイルを示す。このケースでは、サーバー上のノードマネージャー及び全てのモジュールは、スーパーバイザーへのハートビート接続をドロップする。スーパーバイザーは、これを、完全なノード欠陥として確認し、そしてそのノードをフェイル及び利用不可としてマークする。次いで、スーパーバイザーは、そのノードに割り当てられたモジュールのリストを通して歩進する。そのリストのモジュールごとに、スーパーバイザーは、別の適当なノードを探して、モジュールをスターとさせる。スーパーバイザーは、依存性マネージャーに連絡して、現在モジュールを展開するのに必要な正しいパッケージを取得する。次いで、スーパーバイザーは、そのパッケージを新たに選択されたノードのノードマネージャーへ送り、モジュールを計画及び実行する。モジュールは、スーパーバイザーへのハートビート接続を実行及び生成し、それが適切に機能することを指示する。スーパーバイザーは、機能を、そのモジュールに対して回復したとしてマークする。これは、全てのモジュールが新たなノードに再割り当てされそしてイベントが終了するまで続く。
【０３５５】
例＃８において、システムは、図２１に示されたものと同様のインメモリデータベースをホストする。この例では、インメモリデータベース及びシステムは、複数の分析モジュールを備えている。ある分析モジュールは、重み付けされたモデルを使用してレコードのリンクを実施する一方、別の分析モジュールは、判断ツリーを使用する。あるモジュールは、利用可能なデータに対して動作するように最適化される一方、他のモジュールは、フィールド又はデータ集合体の限定セットから望ましい結果を生じるように同調される。あるモジュールは、異なるユーザグループにより開発され、アップロードされる。各ユーザ質問は、適用されるべき異なる分析モジュールを特定し、そして前記モジュールに対して異なるパラメータを使用することができる。異なるユーザが、インメモリデータベースを使用して、同時に情報を抽出し、そして同時に多数の異なる仕方で同じデータを処理することが考えられる。又、あるユーザが、インメモリデータベースの性能又は他のユーザの経験に影響することなく、新たな分析モジュールをいつでもプラグインすることも考えられる。
【０３５６】
例＃９において、ここに開示する非排他的サーチ方法が適用される。ユーザは、次のフィールド、即ちＦＮ（氏）：ジョン、ＬＮ（名）：スミス、ＤＯＢ（生年月日）：０５／１５／１９６５、及びＰＨ（電話番号）：５５５−１２３４−７８９０を伴う質問を定義する。システムは、サーチを遂行し、そして当該結果の中で、異なるスキーマを伴う２つの異なる集合体から、欠落フィールドを伴う２つのレコードが存在する。第１のものは、集合体１００１からのもので、この集合体では、次のフィールド、ＦＮ：ジョン、ＬＮ：スミス、ＰＨ：- - - 及びＤＯＢ：０５／１５／１９６５が定義される。第２のものは、集合体「８０２１」からのもので、この集合体では、次のフィールド、ＦＮ：ジョン、ＬＮ：スミス、ＰＨ：５５５−１２３４−７８９０、及びＤＯＢ：- - - が定義される。ほとんどのフィールドに良好な一致があるため、レコードは、両方とも除外されず、それらは、同様の最終スコアを得て、質問に対する上位１０の結果に位置される。
【０３５７】
例＃１０において、ここに開示する非排他的サーチ方法が適用される。ユーザは、次のフィールド、即ちＦＮ（氏）：ジョン、ＬＮ（名）：スミス、ＤＯＢ（生年月日）：０５／１５／１９６５、及びＰＨ（電話番号）：５５５−１２３４−７８９０を伴う質問を定義する。システムは、サーチを遂行し、そして当該結果の中で、異なるスキーマを伴う２つの異なる集合体から、同様であるが厳密に一致しないフィールドを伴う２つのレコードが存在する。第１のものは、集合体１００１からのもので、この集合体では、次のフィールド、ＦＮ：ジョナサン、ＬＮ：スミス、ＰＨ：１２３４−７８９０が定義される。第２のものは、集合体「８０２１」からのもので、この集合体では、次のフィールド、ＦＮ：ジョン、ＬＮ：スミス、ＰＨ：５５５−１２３４−７８９０、及びＤＯＢ：１９６５が定義される。ほとんどのフィールドに良好な一致があるため、レコードは、両方とも、スコアスレッシュホールドを越える最終スコアを得て、質問に対する上位１０の結果に位置される。
【０３５８】
例＃１１は、圧縮装置を使用して名前を圧縮する方法を示す。この例では、データセットは、表現される３５０個の独特な氏及び３００個の独特な名を伴う１００万個の氏名レコードを含む集合体を備えている。レコードは、氏フィールド及び名フィールドに断片化される。
【０３５９】
次いで、最高から最低への頻度及び長さの積を経て個々のトークンが重み付けされる。重みがあるスレッシュホールドより低いトークンは、トークンテーブルのサイズを縮小するために破棄される。
【０３６０】
次いで、インデックスを指定する際に総計スペース節約を最大にすることでフィールドごとにトークンテーブルが生成され、それにより、個々のトークンのスペース節約は、頻度と、その長さの和から記憶されたインデックス長さを差し引いたものとの積となる。
【０３６１】
単一バイトインデックスに関連したエントリの数は、最大化手順の間に含むべき１から２５５まで変化する。
【０３６２】
アルゴリズムは、作成されるトークンテーブルが最適であることを保証し、そして最大の節約は、単一バイト記憶インデックスエントリへ至る一方、その後の値は、２つ以上のバイトへ圧縮される。短い又は頻繁でないエントリは、節約なしを実現し、トークンテーブルに含まれない。これらの値は、Ｎグラム圧縮のような別の圧縮方法へ戻る。
【０３６３】
例＃１２は、圧縮装置を使用してテキストを圧縮する方法を示す。
【０３６４】
この例では、テキストの大きさ本体がＮグラムの頻度について分析され、Ｎグラムは、キャラクタ、ワード又はワードグループの連続シーケンスを表わす。テキストは、通常、フィールドごとの水平圧縮において列圧縮結果を達成するためにフィールドデータの大きな列を分析することで取得される。
【０３６５】
個々のＮグラムは、次いで、最大から最低までの頻度と長さの積により重み付けされる。重みがあるスレッシュホールドより低いＮグラムは、Ｎグラムテーブルのサイズを縮小するために破棄される。
【０３６６】
次いで、インデックスを指定する際に総計スペース節約を最大にすることでフィールドに対するＮグラムテーブルが生成され、それにより、個々のＮグラムのスペース節約は、頻度と、その長さの和から記憶されたインデックス長さを差し引いたものとの積となる。
【０３６７】
単一バイトインデックスに関連したエントリの数は、最大化手順の間に含むべき１から２５５まで変化する。
【０３６８】
アルゴリズムは、作成されるＮグラムテーブルが最適であることを保証し、そして最大の節約は、単一バイト記憶インデックスエントリへ至る一方、その後の値は、２つ以上のバイトへ圧縮される。頻繁でないエントリは、節約なしを実現し、Ｎグラムテーブルに含まれない。これらの値は、他の基本的ストレージ方法へ戻る。
【０３６９】
この方法によりテーブルに生成される幾つかのＮグラムの例は、次の通りである。
2017505936.tif 000003
【０３７０】
圧縮中、フィールドデータは、全データが消費されるまで、できるだけ最大量のデータをインデックス値に置き換えるため貪欲アルゴリズムを使用して始めから終わりまで圧縮される。
【０３７１】
例＃１３は、圧縮装置を使用してＪＳＯＮドキュメントにおける半構造化データを圧縮するための方法である。
【０３７２】
この例では、ＪＳＯＮ入力ドキュメントは、Ｔｉｔｌｅ、ＦｉｒｓｔＮａｍｅ、ＬａｓｔＮａｍｅ、ＮａｍｅＳｕｆｆｉｘ及びＰｈｏｎｅＴｙｐｅフィールドのためのトークンテーブル圧縮、ＤａｔｅＯｆＢｉｒｔｈフィールドのためのシリアルデイナンバー圧縮、及びＰｈｏｎｅＮｕｍｂｅｒフィールドのためのナンバーＮグラム圧縮で、次のスキーマを使用して圧縮される。
【０３７３】
{ "collection": "Example2",
"record": [
{"id": "1", "type": "FIELD", "name": "Title", "compressionMethod": 
"TitleNameTokenTable"},
{"id": "2", "type": "FIELD", "name": "FirstName", "compressionMethod":
"FirstNameTokenTable"},
{"id": "3", "type": "FIELD", "name": "LastName", "compressionMethod":
"LastNameTokenTable"},
{"id": "4", "type": "FIELD", "name": "NameSuffix", "compressionMethod":
"NameSuffixNameTokenTable"},
{"id": "5", "type": "FIELD", "name": "DateOfBirth", "compressionMethod":
"SerialDayNumber"},
{"id": "6", "type": "ARRAY", "name": "Phones", "array": [
{"id": "7", "type": "STRUCT", "struct": [
{"id": "8", "type": "FIELD", "name": "PhoneType", "compressionMethod":
"PhoneTypeTokenTable"},
{"id": "9", "type": "FIELD", "name": "PhoneNumber", "compressionMethod":
"NumberNgramTable"},
]}
]}
]}
【０３７４】
以下の入力レコードは、２６６バイトをＪＳＯＮで表わすことを要求する（不要なホワイトスペースを除去した後に）。前記スキーマで述べた圧縮方法を使用して圧縮した後に得られる圧縮済レコードは、４４バイトしか要求しない。
【０３７５】
{ "Title": "Dr.",
"FirstName": "Johnathan",
"LastName": "Patterson",
"NameSuffix": "M.D.",
"DateOfBirth": "19600101",
"Phones": [
{"PhoneType": "Office", "PhoneNumber": "1234567890"},
{"PhoneType": "Mobile", "PhoneNumber": "2345678901"},
{"PhoneType": "Home", "PhoneNumber": "3456789012"}
]}
【０３７６】
以下の入力レコードは、１０８バイトをＪＳＯＮで表わすことを要求する（不要なホワイトスペースを除去した後に）。前記スキーマで述べた圧縮方法を使用して圧縮した後に得られる圧縮済レコードは、１３バイトしか要求しない。
【０３７７】
{ "Title": "Dr.",
"FirstName": "Johnathan",
"LastName": "Patterson",
"NameSuffix": "M.D.",
"DateOfBirth": "19600101"
}
【０３７８】
例＃１４は、レコードを断片化する例である。この例では、集合体の５３番目のレコードは、第１及び第２の住所を有するボブ及びキャロル・ウイルソン夫妻のデータを含む。この例では、レコードは、以下のテーブルに示すように断片化される。
2017505936.tif 000004
【０３７９】
レコードインデックスは、レコードが集合体の同じオリジナルレコードから生じることをシステムが知っていることを保証するために維持される。この例では、断片化されたレコードは、更に、パーティション内の以前のレコードをシステムに参照させる値を含ませることによるデータを含み、即ちシステムがレコード５３．２の名前にアクセスするときに、その値は、レコード５３．１の名前に対する値に戻ってシステムに参照させる。例＃１４のシステムがシステムの他のモジュールにデータを出力するとき、圧縮フォーマットであっても、モジュールは、参照値を実際の値に置き換える。
【０３８０】
例＃１５は、半構造化データをアーカイブするための圧縮の一例である。この例では、ＭｏｎｇｏＤＢ、Ｃａｓｓａｎｄｒａ、又はＣｏｕｃｈＤＢのようなドキュメント指向のデータベースからのＪＳＯＮドキュメントが、各ＪＳＯＮドキュメントの独特な識別子を含めて、全ての望ましいフィールドを定義するスキーマを使用して圧縮される。次いで、独特の識別子を圧縮されたレコードへとマップするインデックスが生成される。それにより生じる圧縮されたレコード及びインデックスは、オリジナルのドキュメント指向のデータベースに要求されるストレージの１５％未満しか消費せず、そして望ましからぬデータを解凍せずにドキュメントの各ＪＳＯＮドキュメント又はセレクトフィールドに直ちにアクセスすることができる。
【０３８１】
ここに開示する実施形態に関連して記述した種々の例示的論理ブロック、モジュール、回路及びアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア又はその両方の組み合わせとして具現化される。ハードウェア及びソフトウェアのこの互換性を明確に示すために、種々の例示的コンポーネント、ブロック、モジュール、回路、及びステップは、それらの機能に関して一般的に説明された。そのような機能がハードウェアとして具現化されるかソフトウェアとして具現化されるかは、システム全体に課せられる特定アプリケーション及び設計上の制約に依存する。当業者であれば、ここに述べた機能を特定アプリケーションごとに色々な仕方で具現化できるが、そのような具現化の判断は、本発明の範囲から逸脱すると解釈されてはならない。
【０３８２】
コンピュータソフトウェアで具現化される実施形態は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ＧＰＵ、ハードウェア記述言語、又はその組み合わせで具現化される。コードセグメント又はマシン実行可能なインストラクションは、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、或いはインストラクション、データ構造体又はプログラムステートメントの組合せを表わす。コードセグメントは、情報、データ、アーギュメント、パラメータ又はメモリコンテンツを通し及び／又は受け取ることにより別のコードセグメント又はハードウェア回路に結合される。情報、アーギュメント、パラメータ、データ、等は、メモリ共有、メッセージ通過、トークン通過、ネットワーク送信、等を含む適当な手段を経て通され、転送され又は送信される。
【０３８３】
これらシステム及び方法を実施するのに使用される実際のソフトウェアコード又は特殊な制御ハードウェアは、本発明を限定するものではない。従って、システム及び方法のオペレーション及び振舞いは、ここでの記載に基づいてシステム及び方法を実施するようにソフトウェア及び制御ハードウェアを設計できることを理解して、特定のソフトウェアコードを参照せずに説明した。
【０３８４】
ソフトウェアで実施されるときに、機能は、非一時的コンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体に１つ以上のインストラクション又はコードとして記憶される。ここに開示する方法又はアルゴリズムのステップは、コンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体に存在するプロセッサ実行可能なソフトウェアモジュールにおいて実施される。非一時的なコンピュータ読み取り可能な又はプロセッサ読み取り可能な媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にするコンピュータストレージ媒体及び有形のストレージ媒体の両方を含む。非一時的なプロセッサ読み取り可能なストレージ媒体は、コンピュータによりアクセスされる利用可能な媒体である。これに限定されないが、一例として、そのような非一時的なプロセッサ読み取り可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光学ディスクストレージ、磁気ディスクストレージ又は他の磁気ストレージ装置、或いはインストラクション又はデータ構造体の形態で望ましいプログラムコードを記憶するのに使用され且つコンピュータ又はプロセッサによりアクセスされる他の有形のストレージ媒体を含む。ここで使用するディスク(disk & disc)とは、コンパクトディスク（ＣＤ）、レーザーディスク、光学ディスク、デジタル多様性ディスク（ＤＶＤ）、フロッピーディスク、及びブルーレイディスクを含み、ここで、ディスク(disk)は、通常、データを磁気的に再生するものであり、一方、ディスク(disc)は、データをレーザで光学的に再生するものである。前記の組み合わせも、コンピュータ読み取り可能な媒体の範囲内に包含される。加えて、方法又はアルゴリズムのオペレーションは、コンピュータプログラム製品に合体される非一時的プロセッサ読み取り可能な媒体及び／又はコンピュータ読み取り可能な媒体にコード及び／又はインストラクションの１つ又は組み合わせ或いはセットとして存在する。
【０３８５】
ここに開示する実施形態の前記説明は、当業者が本発明を実施又は利用できるようにするためになされたものである。これら実施形態に対する種々の変更は、当業者に容易に明らかであり、そしてここに定義する一般的な原理は、本発明の精神又は範囲から逸脱せずに他の実施形態に適用される。従って、本発明は、ここに示す実施形態に限定されるものではなく、特許請求の範囲並びにここに開示した原理及び新規な特徴に一致する最も広い範囲と調和されるべきである。
【０３８６】
種々の態様及び実施形態が開示されたが、他の態様及び実施形態も意図される。ここに開示した種々の態様及び実施形態は、例示のためのもので、それに限定されるものではなく、真の範囲及び精神は、特許請求の範囲により示される。
【０３８７】
以上の方法の説明及びプロセスフロー図は、単なる例示として示されたもので、種々の実施形態のステップを、提示した順序で遂行しなければならないことを要求し又は意味することは意図されない。当業者に明らかなように、前記実施形態におけるステップは、任意の順序で遂行されてもよい。「次いで(then)」、「次に(next)」、等のワードは、ステップの順序を限定するものではなく、これらのワードは、単に、方法の説明を通して読者を誘導するのに使用されるだけである。プロセスフロー図は、オペレーションを一連のプロセスとして示すが、多数のオペレーションを並列に又は同時に遂行することもできる。加えて、オペレーションの順序は、再構成してもよい。プロセスは、方法、機能、手順、サブルーチン、サブプログラム、等に対応する。プロセスが機能に対応するとき、その終了は、コーリング機能又はメイン機能への機能の復帰に対応する。
【０３８８】
ここに開示する実施形態に関連して述べた種々の例示的論理ブロック、モジュール、回路及びアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア又はその両方の組み合わせとして具現化されてもよい。ハードウェア及びソフトウェアのこの互換性を明確に示すために、種々の例示的コンポーネント、ブロック、モジュール、回路、及びステップは、それらの機能に関して一般的に説明された。そのような機能がハードウェアとして具現化されるかソフトウェアとして具現化されるかは、システム全体に課せられる特定アプリケーション及び設計上の制約に依存する。当業者であれば、ここに述べた機能を特定アプリケーションごとに色々な仕方で具現化できるが、そのような具現化の判断は、本発明の範囲から逸脱すると解釈されてはならない。
【０３８９】
コンピュータソフトウェアで具現化される実施形態は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はその組み合わせで具現化される。コードセグメント又はマシン実行可能なインストラクションは、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、或いはインストラクション、データ構造体又はプログラムステートメントの組合せを表わす。コードセグメントは、情報、データ、アーギュメント、パラメータ又はメモリコンテンツを通し及び／又は受け取ることにより別のコードセグメント又はハードウェア回路に結合される。情報、アーギュメント、パラメータ、データ、等は、メモリ共有、メッセージ通過、トークン通過、ネットワーク送信、等を含む適当な手段を経て通され、転送され又は送信される。
【０３９０】
これらのシステム及び方法を実施するのに使用される実際のソフトウェアコード又は特殊な制御ハードウェアは、本発明を限定するものではない。従って、システム及び方法のオペレーション及び振舞いは、ここでの記載に基づいてシステム及び方法を実施するようにソフトウェア及び制御ハードウェアを設計できることを理解して、特定のソフトウェアコードを参照せずに説明した。
【０３９１】
ソフトウェアで実施されるときに、機能は、非一時的コンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体に１つ以上のインストラクション又はコードとして記憶される。ここに開示する方法又はアルゴリズムのステップは、コンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体に存在するプロセッサ実行可能なソフトウェアモジュールにおいて実施される。非一時的なコンピュータ読み取り可能な又はプロセッサ読み取り可能な媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にするコンピュータストレージ媒体及び有形のストレージ媒体の両方を含む。非一時的なプロセッサ読み取り可能なストレージ媒体は、コンピュータによりアクセスされる利用可能な媒体である。これに限定されないが、一例として、そのような非一時的なプロセッサ読み取り可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光学ディスクストレージ、磁気ディスクストレージ又は他の磁気ストレージ装置、或いはインストラクション又はデータ構造体の形態で望ましいプログラムコードを記憶するのに使用され且つコンピュータ又はプロセッサによりアクセスされる他の有形のストレージ媒体を含む。ここで使用するディスク(disk & disc)とは、コンパクトディスク（ＣＤ）、レーザーディスク、光学ディスク、デジタル多様性ディスク（ＤＶＤ）、フロッピーディスク、及びブルーレイディスクを含み、ここで、ディスク(disk)は、通常、データを磁気的に再生するものであり、一方、ディスク(disc)は、データをレーザで光学的に再生するものである。前記の組み合わせも、コンピュータ読み取り可能な媒体の範囲内に包含される。加えて、方法又はアルゴリズムのオペレーションは、コンピュータプログラム製品に合体される非一時的プロセッサ読み取り可能な媒体及び／又はコンピュータ読み取り可能な媒体にコード及び／又はインストラクションの１つ又は組み合わせ或いはセットとして存在する。
【０３９２】
技術の種々のコンポーネントは、分散型ネットワーク及び／又はインターネットの遠隔部分に、或いは専用のセキュア、アンセキュア及び／又は暗号化システム内に配置できることが明らかである。従って、システムのコンポーネントは、１つ以上の装置に結合するか、又はテレコミュニケーションネットワークのような分散型ネットワークの特定ノードに共通配置できることが明らかである。以上の説明から明らかなように、計算効率の理由で、システムのコンポーネントは、システムのオペレーションに影響することなく、分散型ネットワーク内の任意の位置に配置することができる。更に、それらのコンポーネントは、専用マシンに埋め込むこともできる。
【０３９３】
更に、エレメントを接続する種々のリンクは、ワイヤード又はワイヤレスリンク又はその組み合わせ、或いは接続されたエレメントへ及びそこからデータを供給及び／又は通信することのできる他の既知の又は今後開発されるエレメントであることが明らかである。ここで使用するモジュールという語は、エレメントに関連した機能を遂行できる既知の又は今後開発されるハードウェア、ソフトウェア、ファームウェア、又はその組み合わせを指す。又、ここで使用する決定、計算及びコンピューティング、並びにその変形の語は、交換可能に使用され、そして任意のタイプの方法、プロセス、数学演算又は技術を包含する。
【０３９４】
ここに開示する実施形態の前記説明は、当業者が本発明を実施又は利用できるようにするためになされたものである。これら実施形態に対する種々の変更は、当業者に容易に明らかであり、そしてここに定義する一般的な原理は、本発明の精神又は範囲から逸脱せずに他の実施形態に適用される。従って、本発明は、ここに示す実施形態に限定されるものではなく、特許請求の範囲並びにここに開示した原理及び新規な特徴に一致する最も広い範囲と調和されるべきである。
【０３９５】
以上に述べた実施形態は、例示に過ぎない。当業者であれば、ここに述べた特定例に対して置き換えられ且つ依然として本発明の範囲内に入る多数の代替的コンポーネント及び実施形態が認識されよう。
【符号の説明】
【０３９６】
１００：インメモリデータベース（ＭＥＭＤＢ）
１０２：システムインターフェイス
１０４：第１のサーチマネージャー
１０６：第ｎのサーチマネージャー
１０８：第１の分析エージェント
１１０：第ｎの分析エージェント
１１２：第１のサーチコンダクタ
１１４：第ｎのサーチコンダクタ
１１６：パーティショナー
１１８：第１の集合体
１２０：第ｎの集合体
１２２：スーパーバイザー
１２４：依存性マネージャー
２００：ファセットサーチ方法
３００：サーチ示唆生成方法
４００：システムアーキテクチャー
４０２：システムインターフェイス
４１０：第１のサーチマネージャー
４１２：第ｎのサーチマネージャー
４２０：第１の分析エージェント
４２２：第ｎの分析エージェント
４３０：第１のサーチコンダクタ
４３２：第ｎのサーチコンダクタ
４４０：パーティションデータ
４５０：パーティショナー
４６０：第１の集合体
４６２：第ｎの集合体
４７０：スーパーバイザー
４８０：依存性マネージャー
５００：ノード
５０２：ノードマネージャー
５１０：モジュール
５１２：第ｎモジュール
６００：ノード設定
７００：モジュール設定
８００：質問処理
９００：サーチコンダクタ機能
１０００：集合体パーティショニング
１１００：集合体ローディング
１３００：サーチノードクラスター
１４００：接続図
１５００：欠陥許容アーキテクチャー
１６００：ノード
１７００：欠陥取り扱い
１８００：ブロック図接続
１９００：構成プロセス
２０００：依存性
２１００：システムアーキテクチャー
２２００：分析モジュール追加方法
２３００：インメモリデータベース
２４００：非排他的サーチ方法
２５００：圧縮装置
２６００：集合体データテーブル
【図１】
2017505936.tif 000005
【図２】
2017505936.tif 000006
【図３】
2017505936.tif 000007
【図４】
2017505936.tif 000008
【図５】
2017505936.tif 000009
【図６】
2017505936.tif 000010
【図７】
2017505936.tif 000011
【図８】
2017505936.tif 000012
【図９】
2017505936.tif 000013
【図１０】
2017505936.tif 000014
【図１１】
2017505936.tif 000015
【図１２Ａ】
2017505936.tif 000016
【図１２Ｂ】
2017505936.tif 000017
【図１２Ｃ】
2017505936.tif 000018
【図１２Ｄ】
2017505936.tif 000019
【図１２Ｅ】
2017505936.tif 000020
【図１２Ｆ】
2017505936.tif 000021
【図１２Ｇ】
2017505936.tif 000022
【図１３】
2017505936.tif 000023
【図１４】
2017505936.tif 000024
【図１５】
2017505936.tif 000025
【図１６】
2017505936.tif 000026
【図１７】
2017505936.tif 000027
【図１８】
2017505936.tif 000028
【図１９】
2017505936.tif 000029
【図２０】
2017505936.tif 000030
【図２１】
2017505936.tif 000031
【図２２】
2017505936.tif 000032
【図２３】
2017505936.tif 000033
【図２４】
2017505936.tif 000034
【図２５】
2017505936.tif 000035
【図２６】
2017505936.tif 000036
【図２７】
2017505936.tif 000037
【図２８】
2017505936.tif 000038
【図２９】
2017505936.tif 000039
【国際調査報告】
2017505936.tif 000040
2017505936.tif 000041
2017505936.tif 000042