(57)【要約】本発明者らは、情報検索システムの分散ロードのための１つ以上のシステム、方法およびソフトウェアを考案した。１つの例示的なシステムは、２つ以上のロードサーバのセットの個別のロードサーバによって、ロードタスクの完了をモニタし、確実にするだけでなく、別のロードモニタの実行をモニタするための１つのロードモニタを提供もする、２つ以上（少なくとも２つ）のロードモニタサーバを含む。さらに、例示的なシステムは、各ロードサーバに、サービスレベルアグリーメント（ＳＬＡ）データ構造を提供する。ＳＬＡデータ構造は、どのロードタスクのタイプおよび優先レベルが、予め決定された期間において行われるかを決定する。
2008527547.tif 000002
【特許請求の範囲】
【請求項１】
情報検索システムであって、
ロードデータ要求を格納するためのキューと、
キューからデータを検索し、該キューから検索される該データに基づいた検索のためにドキュメントにインデックスを付けるための２つ以上のロードサーバのセットと、
該ロードサーバの動作をモニタリングし、ローダのセットによってアクセス可能な該キュー上に新しいデータを提供するための第１および第２のロードモニタであって、該第１のロードモニタは、該第２のロードモニタに該第１のロードモニタの動作に関する情報を提供するように構成されており、該第２のロードモニタは、該第１のロードモニタの障害を示すステータス情報に応答して、該ロードサーバのモニタリングを引き継ぐように構成されており、該キュー上に新しいデータを提供する、第１および第２のロードモニタと
を備えている、システム。
【請求項２】
前記第２のロードモニタにステータス情報を提供するために、前記第１のロードモニタは、タイムスタンプされた報告を、ネットワークアクセス可能なストレージデバイスの予め決定された部分に定期的に書き込むように構成されており、該第２のロードモニタは、該ネットワークアクセス可能なストレージデバイス上の該タイムスタンプされた報告を予め決定された間隔で読み込むように構成されている、請求項１に記載のシステム。
【請求項３】
前記第１のロードモニタは、新しいデータが前記キューに加えられた場合には、前記ロードサーバの各々に通知するように構成されており、該ロードサーバのうちのビジーではない全てのロードサーバは、該キューから該新しいデータを検索し、該新しいデータに基づいて前記ドキュメントにインデックスを付けることを試みることによって、該通知に応答するように構成されている、請求項１に記載のシステム。
【請求項４】
前記ロードサーバによって生成されたインデックスデータおよび対応するドキュメントを、それぞれ加入者による使用のための一次インデックスおよび一次データベースに分散させるように構成されている２つ以上の分散サーバのセットをさらに備えている、請求項１に記載のシステム。
【請求項５】
各ロードサーバは、前記分散サーバの各々にローダ通知を提供して、前記キューから検索されたデータに基づいてドキュメントのセットにインデックスを付けることが完了していることを示すように構成され、
該分散サーバのうちのビジーでない全ての分散サーバは、マスタインデックスに対して該ローダ通知を提供するロードサーバによって生成されたインデックスデータを分散させ、該ローダ通知に対応するドキュメントを前記データベースに分散させることを試みることにより、該ローダ通知に応答するように構成されている、
請求項４に記載のシステム。
【請求項６】
各分散サーバは、前記ロードモニタの各々に分散通知を提供して、前記キューから検索されたデータに基づいてドキュメントのセットを、前記マスタインデックスおよび前記データベースに分散させることを完了したことを示すように構成されている、請求項５に記載のシステム。
【請求項７】
前記分散通知に応答して、前記分散されたインデックスデータおよびドキュメントを、二次インデックスおよびデータベースに複製するための手段をさらに備えている、請求項６に記載のシステム。
【請求項８】
各ロードサーバは、前記ローダ通知を提供した後に、前記キューを新しいデータに対してチェックするように構成されている、請求項５に記載のシステム。
【請求項９】
前記第１のロードモニタは、前記二次インデックスおよびデータベース内の前記分散されたインデックスデータおよびドキュメントの複製を確認するように構成されており、複製の確認に応答して、タイムスタンプされたロード完了メッセージをネットワークアクセス可能なストレージデバイスに書き込み、前記第２のロードモニタは、該ネットワークアクセス可能なストレージデバイスが、該第１のロードモニタの適切な動作を確認するメッセージを含むかどうかを定期的に決定するように構成されている、請求項７に記載のシステム。
【請求項１０】
各ロードサーバは、サービスレベルアグリーメントデータ構造に関連し、該データ構造は、どちらのデータベースについて、該ロードサーバがドキュメントにインデックスを付けることが認められているかを識別するための第１のフィールドと、該ロードサーバが受容することを認められている要求にインデックスを付けるドキュメントの最低の優先度を示すための第２のフィールドと、時間的な局面を示す第３のフィールドとを含む、請求項１に記載のシステム。
【請求項１１】
情報検索システムであって、
データベースへの追加のためにドキュメントにインデックスを付ける複数のロードサーバの動作をモニタリングするための第１および第２のロードモニタを備えており、
該第１のロードモニタは、該第２のロードモニタに該第１のロードモニタの動作に関するステータス情報を提供するように構成されており、該第２のロードモニタは、該第１のロードモニタの障害を示すステータス情報に応答して、該ロードサーバのモニタリングを引き継ぐように構成されている、情報検索システム。
【請求項１２】
前記第２のロードモニタにステータス情報を提供するために、前記第１のロードモニタは、タイムスタンプされた報告を、ネットワークアクセス可能なストレージデバイスの予め決定された部分に定期的に書き込むための手段を含み、該第２のロードモニタは、該ネットワークアクセス可能なストレージデバイス上の該タイムスタンプされた報告を予め決定された間隔で読み込むための手段を含む、請求項１１に記載のシステム。
【請求項１３】
前記第１のロードモニタは、新しいドキュメントが前記データベースに追加される準備が出来ている場合には、前記ロードサーバの各々に通知するように構成されており、該ロードサーバのうちのビジーではない全てのロードサーバは、キューから新しいデータを検索し該新しいデータに基づいて該ドキュメントにインデックスを付けることを試みることによって、該通知に応答するように構成されている、請求項１２に記載のシステム。
【請求項１４】
方法であって、
オンライン情報検索システムのデータベースへの追加のためにドキュメントを含むファイルを受信することと、
該ファイルを受信することに応答して、２つ以上のロードサーバに通知することと、
該通知されたロードサーバのうちの１つを用いて該ファイル内の該ドキュメントにインデックスを付けることと、
該インデックスを付けられたドキュメントを該データベースにロードすることと、
該ドキュメントが該データベースにロードされていることを、２つ以上のロードモニタに通知することと、
該通知されたロードモニタのうちの第１のロードモニタを用いて、該ドキュメントが該データベースにロードされていることを確認することと、
該通知されたロードモニタのうちの第２のロードモニタを用いて、該通知されたロードモニタのうちの第１のロードモニタの適切な動作を確認することと
を包含する、方法。
【請求項１５】
前記２つ以上のロードサーバに通知することは、
前記ファイルの受信を検出することと、
該ファイルに関するデータをロードキューに追加することと、
新しいデータが該ロードキューに追加されていることを、該２つ以上のロードサーバに通知することと
を包含する、請求項１４に記載の方法。
【請求項１６】
前記インデックスを付けられたドキュメントを前記データベースにロードすることは、
インデックスデータおよび対応するドキュメントがロードに利用可能であることを、複数の分散サーバのうちの２つ以上の分散サーバに通知することと、
該インデックスデータおよび対応するドキュメントを、該データベースにロードするために該２つ以上の分散サーバのうちの１つを使用することと
を包含する、請求項１４に記載の方法。
【請求項１７】
前記ドキュメントが前記データベースにロードされていることを確認することは、「エンドオブファイル」または他の類似のインジケータを、該データベースから読み込むことを含む、請求項１４に記載の方法。
【請求項１８】
前記ロードモニタのうちの第２のロードモニタを用いて、該ロードモニタのうちの第１のロードモニタの適切な動作を確認することは、該ロードモニタのうちの該第１のロードモニタが、１つ以上のメッセージを共有ディレクトリに書き込むかどうかを決定することを包含する、請求項１５に記載の方法。
【請求項１９】
前記通知されたロードサーバのうちの１つを用いて、前記ファイル内の前記ドキュメントにインデックスを付けることは、サービスレベルアグリーメントデータ構造をレビューすることにより、該通知されたロードサーバのうちの１つ以上が、該ドキュメントを処理することを認証されているかどうかを決定することを含む、請求項１５に記載の方法。
【請求項２０】
複数のロードサーバを有する情報検索システムにおける使用のためのサービス関連データ構造であって、該データ構造は、該複数のロードサーバのうちの１つに関連し、該１つのロードサーバが処理することを認められるロード要求の優先レベルを示すための手段を含む、データ構造。
【請求項２１】
データベースのセットのうちのどれについて前記ロードサーバがロード要求を処理し得るかを示すための手段をさらに含む、請求項２０に記載のデータ構造。
【請求項２２】
前記ロードサーバの１つ以上のサービス制限に関連する期間を示すための手段をさらに含む、請求項２０に記載のデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願）
本出願は、２００５年１月７日に出願された米国仮出願第６０／６４２，３５１号の優先権を主張し、該出願は本明細書において参考により援用される。
【０００２】
（技術分野）
本発明の様々な実施形態は、情報検索に関係し、特にデータをデータベースにロードするためのシステム、方法およびソフトウェアに関係している。
【背景技術】
【０００３】
（背景）
本発明者らによって認識される一つの問題は、オンライン情報検索システムに新しいドキュメントをロードすることに関係している。ロードすることは、通常は、ドキュメントにインデックスを付けることにより、ブール（Ｂｏｏｌｅａｎ）言語検索アルゴリズムまたは自然言語検索アルゴリズムを用いる検索を円滑にすることと、次いでドキュメントおよび対応するインデックスデータを、現存のデータベースおよびインデックスファイルに追加することとを伴う。
【０００４】
従来では、大きくかつ高価なサーバ（例えば、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ６５００または６８００）が購入され、データベースまたはデータコレクションの所与のセットのロードのニーズに特に役立つようにプログラムされる。不幸にも、この単一のサーバに頼ることにより、ロード処理の間に、システムがサーバの誤動作またはクラッシュに対して脆弱になる。多くの例において、クラッシュは、データの全体の量を再ロードすることを必要とし、最終的には追加を遅らせ、結果としてユーザまたは加入者が新しいドキュメントにアクセスすることを遅らせる。このような遅れは、時間に敏感なデータ（例えば、米国最高裁判所の決定または速報ニュース）に対して特に重要である。
【０００５】
従って、本発明者らはオンライン情報検索システムにおいてデータベースをロードするより良い方法に対するニーズを認識する。
【発明の開示】
【課題を解決するための手段】
【０００６】
（概略）
このニーズおよび／または他のニーズを扱うために、本発明者らは、情報検索システムのロードを分散させるための１つ以上のシステム、方法およびソフトウェアを考案した。例示的な一システムにおいて、分散ロードドメインは、複数のロードサーバの動作を論理的に組織化および調整することにより、１つ以上のデータベースのセットのロード容量のニーズを満たす。例示的なシステムは、個別のロードサーバによるロードタスクの完了をモニタし確実にするだけでなく、別のロードモニタサーバのパフォーマンスをモニタするために一つのロードモニタを提供もする２つ以上（少なくとも２つ）のロードモニタサーバを含む。さらに、例示的なシステムは、各ロードサーバに対してサービスレベルアグリーメント（ｓｅｒｖｉｃｅ−ｌｅｖｅｌ−ａｇｒｅｅｍｅｎｔ）（ＳＬＡ）データ構造を提供する。ＳＬＡデータ構造は、どのロードタスクのタイプおよび優先レベルが、予め決定された期間で行われるかを決定する。
【発明を実施するための最良の形態】
【０００７】
（例示的な実施形態の詳細な記載）
図面および特許請求の範囲を具体化する本記載は、本発明の１つ以上の特定の実施形態を記載する。本発明を限定するためではなく、例示し、教示するためだけに提供されるこれらの実施形態は、十分に詳細に示され、記載されることにより、当業者が本発明をインプリメントし、または実践することを可能にする。従って、ここで本発明を不明確にすることを避けるために、本記載では、当業者に公知の特定の情報は省略され得る。
【０００８】
（例示的な情報検索システム）
図１は、本発明の教示を具体化する例示的な情報検索システム１００を示す。システム１００は、ランディングスキッドデータベース１１０と、ロードドメイン１２０と、一次データベース１３０と、二次データベース１４０とを含む。
【０００９】
ランディングスキッドデータベース１１０は、システム１００または一次データベース１３０への追加のための、新しいファイルまたはアップデートされたファイルを受信および格納する。例示的な実施形態においては、ランディングスキッドデータベース１１０は、ネットワークアクセス可能なストレージ（ＮＡＳ）デバイスの形態をとり、拡張可能なマーク付け言語（ＸＭＬ）フォーマットでファイルを受信し、格納する。ファイルは、全体的に一意的なドキュメント識別子およびデータベースコマンド（例えば、追加または消去）を含むコマンドスクリプトタイプのヘッダ情報を有するドキュメントを含む。
【００１０】
ロードドメイン１２０は、１つ以上のロードサーバ１２２のセットと、２つ以上のロードモニタサーバ１２４のセットと、１つ以上の分散サーバ１２６のセットと、ロードキュー１２８と、共有ディレクトリ１２９とを含む。例示的な実施形態において、サーバの各々は、ロードドメインと論理的に関連し、ロードドメインはそれ自体が１つ以上のドキュメントコレクションまたはデータベース（例えば、一次データベース１３０）と関連する。（例示的な実施形態において、ロードドメインは、ランディングスキッドおよびロードインデックスファイルへの共有アクセスを有する１つ以上のロードボックスを含む。ロードドメインにおける任意のロードボックスは、そのロードドメインの一部である任意のコレクションを提供し得る）。
【００１１】
サーバ１２２、１２４および１２６は、各々の処理モジュール１２２１、１２４１および１２６１、ならびに各々のメモリモジュール１２２２、１２４２および１２６２を含む。処理モジュールの各々は、１つ以上のプロセッサまたは処理回路（例えば、デュアルプロセッサ）を含む。さらに、メモリモジュールの各々は、各々の処理モジュールに、以下の例示的な方法セクションに記載されるような行動を行わせるためのマシン実行可能な命令（ソフトウェア（ＳＷ））を含む。さらに、例示的な実施形態において、サーバの各々は他のサーバの各々の命令を含み、例えば、ロードサーバ（ＬＳ）が、ロードモニタサーバ（ＬＭ）または分散サーバ（ＤＳ）として容易に動作されることを可能にする。（一部の実施形態において、サーバの各々は、サーバブレード（すなわち、通常は複数の基板上に見出されるプロセッサ、メモリおよびネットワーク接続のようなコンポーネントが存在する単一の回路基板）としてインプリメントされる。サーバブレードは、他の実施形態において使用される伝統的なボックスベースのサーバよりも、費用対効果が良く、小さく、消費電力が少ない）。
【００１２】
さらに、ロードサーバ１２２の各々は、サービスレベルアグリーメント（ＳＬＡ）データ構造を含むか、該データ構造に関連し、該データ構造は、ロードサーバの動作的なコンテキストを決定する。代表的なＳＬＡデータ構造１２２３は、どのデータベースまたはデータベースコレクションに、ロード要求または関連するロードサーバによって受容される他の作業が属する必要があるかを示すためのクライアントフィールド１２２３Ａと；ロード要求または関連するロードサーバによって受容される他の作業の最低の優先度を示すための優先度フィールド１２２３Ｂと；サービスレベルアグリーメントの関連する時間的な側面（例えば、アグリーメントの効果的な期間または持続期間）を示すための時間的なインジケータ１２２３Ｃとを含む。一部の実施形態は、２つのＳＬＡデータ構造、永続的なものと一時的なものとを提供し、一時的なものは、予め決定された期間の後に有効期限切れになり、以前のＳＬＡデータ構造を自動的に復活させる寿命を有する。例えば、結果として、示されていないＧＵＩ（グラフィカルユーザインタフェース）を用いるユーザは、特定のデータベース（例えば、米国最高裁判所）に対してロード要求を扱うこと、または特定の最低の優先度の要求を扱うことに専用のロードサーバのうちの１つ以上を確立し得る。ＳＬＡは、数時間、数日間、数週間または、自動的に有効期限切れになり、以前のＳＬＡの復活を可能にするまでのさらに長い期間において有効である。
【００１３】
一部の実施形態において、各ロードモニタサーバ１２４は、以下のパラメータ、Ｄｉｓｔｒｉｂｕｔｅｄ＿Ｌｏａｄ＿Ｓｈａｒｅｄ＿Ｄｉｒｅｃｔｏｒｙ（ハートビートタイプの情報がロードモニタによって書き込まれる共有ディレクトリへの経路を識別する）；Ｄｉｓｔｒｉｂｕｔｅｄ＿Ｌｏａｄ＿Ｄｉｒｅｃｔｏｒｙ＿Ｍｏｎｉｔｏｒ＿Ｉｎｔｅｒｖａｌ（例えば、３０００００ミリ秒）（アクティブでない、または二次のロードモニタが、ランディングスキッドを新しい要求に対して再チェックする前の時間量をミリ秒で示す）；Ｄｉｓｔｒｉｂｕｔｅｄ＿Ｌｏａｄ＿Ｗｏｒｋｉｎｇ＿Ｆｉｌｅ＿Ｍｏｎｉｔｏｒ＿Ｉｎｔｅｒｖａｌ（例えば、３０００００ミリ秒）（アクティブでないロードモニタが作業ファイルの変更時間を再チェックする前の時間量を示す）；Ｄｉｓｔｒｉｂｕｔｅｄ＿Ｌｏａｄ＿Ｃｏｍｐｌｅｔｅｄ＿Ｒｅｑｕｅｓｔｓ＿Ｍｏｎｉｔｏｒ＿Ｉｎｔｅｒｖａｌ（例えば、３０００００ミリ秒）（アクティブでないロードモニタがロードキュー１２８を完了した要求に対して再チェックする前の時間量をミリ秒で示す）を用いて動作する。
【００１４】
ロードキュー１２８は、ロードドメインの作業フローの管理に使用するキュー機能を提供する。例示的な実施形態において、キューはサーバ１２２、１２４および１２６によってアクセス可能である。
【００１５】
共有ディレクトリ１２９は、通信媒介として機能し、通信媒介はロードドメインの他のコンポーネントまたはサーバ（例えば、ロードドメイン１２０の全ての他のロードモニタ）にアクセス可能である。例示的な実施形態において、共有ディレクトリは、以下に記載されるように、ネットワークアクセス可能なストレージ（ＮＡＳ）デバイスの一部であり、１つのロードモニタから別のロードモニタにハートビート情報を交換するために使用される。一部の実施形態においては、共有ディレクトリはランディングスキットデータベースの一部であり得る。（複数のロードドメインを有する一部の実施形態においては、各ロードドメインは、自身のそれぞれの共有ディレクトリを含む自身のロードモニタのセットを含む）。
【００１６】
一次データベース１３０および二次データベース１４０は、リダンダントデータベースまたはミラーイメージデータベースである。一部の実施形態において、これらは別々のサイトで維持されることにより、破局的な障害（ｃａｔａｓｔｒｏｐｈｉｃ  ｆａｉｌｕｒｅ）のリスクを減少させる。図面には示されていないが、ユーザまたは加入者は、クライアントデバイス（例えば、ローカルエリアネットワークまたはワイドエリアネットワーク上のパーソナルコンピュータ）を用いて一次データベース１３０にアクセスする。
【００１７】
（情報検索システムを動作させる例示的な方法）
図２は、情報検索システム（例えば、図１におけるシステム１００）を動作させる例示的な方法のフローチャート２００を示す。フローチャート２００は、ブロック２１０〜２７０を含み、これらは直列に配置され、記載される。しかしながら、他の実施形態は、複数のプロセッサまたはプロセッサライクなデバイスを用いて、あるいは２つ以上の仮想マシンまたはサブプロセッサとして組織される単一のプロセッサを用いて、２つ以上のブロックを並行して実行する。他の実施形態はまた、処理シーケンスを変え、または異なる機能パーティションもしくはブロックを提供し、類似の結果を達成する。さらに、他の実施形態は、ブロックを相互接続された２つ以上のハードウェアモジュールとしてインプリメントし、関連する制御およびデータ信号は、モジュール間で、およびモジュールを介して通信される。結果として、例示的な処理フローは、ソフトウェア、ハードウェアおよびファームウェアのインプリメンテーションに適用される。
【００１８】
ブロック２１０において、例示的な方法は、オンライン情報検索システムのデータベースへの追加のために、ドキュメントを含むファイルを受信することにより開始する。例示的な実施形態において、このことは、２つ以上の司法のドキュメント、金融のドキュメント、ニュースドキュメントまたは科学ドキュメントに含まれるＸＭＬファイルを受信するランディングスキッド１１０を伴う。実行はブロック２２０において継続する。
【００１９】
ブロック２２０は、新しいドキュメントがデータベースへのロードのために利用可能であることを、２つ以上のロードサーバに通知することを伴う。例示的な実施形態において、このことは、ロードモニタサーバ１２４のうちの１つ、特にロードモニタサーバのうちの指定されたアクティブな、または一次ロードモニタサーバが、１つ以上の特定のコレクションまたはデータベースに対する新しいドキュメントがランディングスキッドに追加されているかを決定する、または検出するために、ランディングスキッド１１０にポーリングすることを伴う。このようなドキュメントがランディングスキッドに追加されている場合には、アクティブなロードモニタサーバは、ファイルに関するデータをロードキュー１２８に追加し、ファイルの受信の検出に応答してロードサーバ１２２のうちの２つ以上に通知する。さらに、アクティブなロードモニタサーバは、共有ディレクトリ１２９にメッセージを書き込み、または記録し、該メッセージは、タイムスタンプおよびアクティブな（一次）ロードモニタサーバに対するロードサーバ識別子を含む。（いくつかの点において、アクティブでない（バックアップまたは二次）ロードモニタサーバのうちの少なくとも１つは、メッセージをレビューし、アクティブなロードモニタが適切に機能するかどうかの決定を行う。）実行は次いでブロック２３０に進む。
【００２０】
ブロック２３０は、通知されたロードサーバのうちの１つを用いて、ファイル内のドキュメントにインデックスを付けることを伴う。例示的な実施形態においては、ロードサーバの各々は、利用可能であり、ロードキューにアクセスし、ファイル内のドキュメントを処理することを試みるために、ロードサーバにファイル内のドキュメントを処理することを許可するＳＬＡデータ構造を有するが、通知に応答して第１のロードサーバのみが、ドキュメントを処理するようになる。一部の実施形態において、ロードドメイン内の全てのビジー状態でないロードサーバは、まず通知に応答し、新しいファイルを処理する権利を取得した後でのみ、それらのＳＬＡデータ構造に対してファイルコンプライアンスをそれぞれ評価する。他の実施形態において、アクティブなロードモニタは、ロードサーバの各々に対してＳＬＡデータ構造に気付いており、対応するドキュメントを処理し得るロードサーバへのロードキューの追加を通信するのみである。ロードサーバのうちの１つがドキュメントにインデックスを付け、対応するインデックスデータを生成した後に、それは分散サーバ１２６の各々に、例えばキューをチェックするためにこれらのサーバに対してメッセージを送信することによって、分散作業が利用可能であることを通知する。さらに例示的な実施形態において、選択されたロードサーバは、ロードキューを、任意の新しいロード作業に対して自動的にチェックする。実行はブロック２４０に進む。
【００２１】
ブロック２４０は、ドキュメントをユーザまたは加入者がアクセス可能なデータベースにロードすることを伴う。例示的な実施形態において、このことは、ブロック２３０において選択されたロードサーバが、インデックスデータおよび対応するファイルが、分散のために利用可能であることを分散サーバの２つ以上に通知することを伴う。それに応答して、全てのビジーでない分散サーバ１２８は、分散を行う権利を得ることを試みる、すなわち、ドキュメントおよびインデックスデータを一次データベースのそれぞれの部分にロードする。しかしながら、通知に応答する第１の分散サーバは、分散作業に割り当てられる。分散作業は、ドキュメントおよびインデックスデータを一次データベース１３０および二次データベース１４０に、またはより詳しくは、データベース１３０および１４０のそれぞれの部分にロードすることを伴う。一部の実施形態において、一次データベース１３０から二次データベース１４０にドキュメントをミラーする作業は、選択された分散サーバ以外の別々のサーバまたはソフトウェアコンポーネントによって行われる。例えば、一部の実施形態は、オラクルデータガード製品を使用する。例示的な実行はブロック２５０において継続する。
【００２２】
ブロック２５０において、分散サーバ１２６の選択された１つは、ドキュメントがデータベースにロードされていることを２つ以上のロードモニタ１２６に通知する。例示的な実施形態において、通知を受信する任意のアクティブでない、または二次ロードモニタは、通知を無視し、一方でアクティブな、または一次ロードモニタは示されるようにブロック２６０に進む。（さらに、例示的な実施形態において、選択された分散サーバは、ロードキューを任意の新しい作業に対して自動的にチェックする）。
【００２３】
ブロック２６０は、ドキュメントがデータベースにロードされているかを確認することを伴う。例示的な実施形態において、この確認は、アクティブまたは一次ロードモニタが、「エンドオブファイル」、「エンドオブロード」、または他の類似のインジケータを、二次データベース１４０から読み込むことを試みることを伴う。インジケータの読み込みが成功することは、ブロック２１０において開始されたロード処理が完了していることの確認とみなされ、一次ロードモニタは、ロードのタスクの完了の成功を示すタイムスタンプされたメッセージを共有ディレクトリに書き込む。（一部の実施形態は、ロード要求が遂行されているかどうかの指示のために、二次データベースというよりむしろ一次データベースを読み込み得る。しかしながら、他の実施形態は、一次データベースと二次データベースの両方を、「エンドオブファイル」インジケータに対して読み込み得る。「エンドオブファイル」インジケータを読むことの障害は、障害を示し、このステータスはまた、通知されたロードモニタのうちの第１のロードモニタを用いて、共有ディレクトリに通信される）。
【００２４】
ブロック２７０は、一次またはアクティブなロードモニタが、二次またはアクティブでないロードモニタのうちの１つを用いて適切に動作するかどうかを決定することを伴う。例示的な実施形態において、二次ロードモニタは、共有ディレクトリ内の１つ以上のメッセージをレビューすることにより、一次ロードモニタが、適切に動作するかどうかを決定する。特に、二次ロードモニタは、一次ロードモニタが稼動し実行することを確実にし（例えば、６０秒ごと）、一次ロードモニタが追加された全ての新しいファイルを見出すことを確実にし（例えば、５秒ごと）、一次ロードモニタはエンドオブロードインジケータまたはステータスに応答する。これらの条件のうちのいずれかが満たされない場合には、二次ロードモニタは、一次ロードモニタのステータスを引き継ぎ、恐らくは障害が発生したモニタをシャットダウンし、ロード要求の処理を開始し、障害イベントの警告を発する。通常の実行は、さらなる要求の処理のためにブロック２１０に戻って継続する。
【００２５】
（結論）
上記および特許請求の範囲で記載される実施形態は、本発明を実践する、またはインプリメントする１つ以上の方法を例示し、教示することのみが意図され、本発明の外延または範囲を制限することは意図されない。本発明の実際の範囲は、本発明の教示を実践する、またはインプリメントする全ての方法を包含し、述べられる特許請求の範囲およびそれらと同等のものによってのみ定義される。
【図面の簡単な説明】
【００２６】
【図１】図１は、本発明の１つ以上の実施形態に対応する例示的な情報検索システム１００のブロック図である。
【図２】図２は、本発明の１つ以上の実施形態に対応する例示的な方法のブロック図である。
【図１】
2008527547.tif 000003
【図２】
2008527547.tif 000004
【手続補正書】
【提出日】平成19年7月6日(2007.7.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
情報検索システムであって、
ロードデータ要求を格納するためのキューと、
キューからデータを検索し、該キューから検索される該データに基づいた検索のためにドキュメントにインデックスを付けるための２つ以上のロードサーバのセットと、
該ロードサーバの動作をモニタリングし、ローダのセットによってアクセス可能な該キュー上に新しいデータを提供するための第１および第２のロードモニタであって、該第１のロードモニタは、該第２のロードモニタに該第１のロードモニタの動作に関する情報を提供するように構成されており、該第２のロードモニタは、該第１のロードモニタの障害を示すステータス情報に応答して、該ロードサーバのモニタリングを引き継ぐように構成されており、該キュー上に新しいデータを提供する、第１および第２のロードモニタと
を備えており、
各ロードサーバは、サービスレベルアグリーメントデータ構造に関連し、該データ構造は、該ロードサーバが受容することを認められている要求にインデックスを付けるドキュメントの最低の優先度を示すための第１のフィールドを含んでいる、システム。
【請求項２】
前記データ構造は、どちらのデータベースについて、前記ロードサーバがドキュメントにインデックスを付けることが認められているかを識別するための第２のフィールドを含んでいる、請求項１に記載のシステム。
【請求項３】
前記データ構造は、時間的な局面を示す第３のフィールドを含んでいる、請求項１に記載のシステム。
【請求項４】
前記第２のロードモニタにステータス情報を提供するために、前記第１のロードモニタは、タイムスタンプされた報告を、ネットワークアクセス可能なストレージデバイスの予め決定された部分に定期的に書き込むように構成されており、該第２のロードモニタは、該ネットワークアクセス可能なストレージデバイス上の該タイムスタンプされた報告を予め決定された間隔で読み込むように構成されている、請求項１に記載のシステム。
【請求項５】
前記第１のロードモニタは、新しいデータが前記キューに加えられた場合には、前記ロードサーバの各々に通知するように構成されており、該ロードサーバのうちのビジーではない全てのロードサーバは、該キューから該新しいデータを検索し、該新しいデータに基づいて前記ドキュメントにインデックスを付けることを試みることによって、該通知に応答するように構成されている、請求項１に記載のシステム。
【請求項６】
前記ロードサーバによって生成されたインデックスデータおよび対応するドキュメントを、それぞれ加入者による使用のための一次インデックスおよび一次データベースに分散させるように構成されている２つ以上の分散サーバのセットをさらに備えている、請求項１に記載のシステム。
【請求項７】
各ロードサーバは、前記分散サーバの各々にローダ通知を提供して、前記キューから検索されたデータに基づいてドキュメントのセットにインデックスを付けることが完了していることを示すように構成され、
該分散サーバのうちのビジーでない全ての分散サーバは、マスタインデックスに対して該ローダ通知を提供するロードサーバによって生成されたインデックスデータを分散させ、該ローダ通知に対応するドキュメントを前記データベースに分散させることを試みることにより、該ローダ通知に応答するように構成されている、
請求項６に記載のシステム。
【請求項８】
各分散サーバは、前記ロードモニタの各々に分散通知を提供して、前記キューから検索されたデータに基づいてドキュメントのセットを、前記マスタインデックスおよび前記データベースに分散させることを完了したことを示すように構成されている、請求項７に記載のシステム。
【請求項９】
前記分散通知に応答して、前記分散されたインデックスデータおよびドキュメントを、二次インデックスおよびデータベースに複製するための手段をさらに備えている、請求項８に記載のシステム。
【請求項１０】
各ロードサーバは、前記ローダ通知を提供した後に、前記キューを新しいデータに対してチェックするように構成されている、請求項７に記載のシステム。
【請求項１１】
前記第１のロードモニタは、前記二次インデックスおよびデータベース内の前記分散されたインデックスデータおよびドキュメントの複製を確認するように構成されており、複製の確認に応答して、タイムスタンプされたロード完了メッセージをネットワークアクセス可能なストレージデバイスに書き込み、前記第２のロードモニタは、該ネットワークアクセス可能なストレージデバイスが、該第１のロードモニタの適切な動作を確認するメッセージを含むかどうかを定期的に決定するように構成されている、請求項９に記載のシステム。
【請求項１２】
情報検索システムであって、
データベースへの追加のためにドキュメントにインデックスを付ける複数のロードサーバの動作をモニタリングするための第１および第２のロードモニタを備えており、
該第１のロードモニタは、該第２のロードモニタに該第１のロードモニタの動作に関するステータス情報を提供するように構成されており、該第２のロードモニタは、該第１のロードモニタの障害を示すステータス情報に応答して、該ロードサーバのモニタリングを引き継ぐように構成されており、
各ロードサーバは、サービスレベルアグリーメントデータ構造に関連し、該データ構造は、該ロードサーバが受容することを認められている要求にインデックスを付けるドキュメントの最低の優先度を示すための第１のフィールドを含んでいる、システム。
【請求項１３】
前記データ構造は、どちらのデータベースについて、前記ロードサーバがドキュメントにインデックスを付けることが認められているかを識別するための第２のフィールドを含んでいる、請求項１２に記載のシステム。
【請求項１４】
前記データ構造は、時間的な局面を示す第３のフィールドを含んでいる、請求項１２に記載のシステム。
【請求項１５】
前記第２のロードモニタにステータス情報を提供するために、前記第１のロードモニタは、タイムスタンプされた報告を、ネットワークアクセス可能なストレージデバイスの予め決定された部分に定期的に書き込むための手段を含み、該第２のロードモニタは、該ネットワークアクセス可能なストレージデバイス上の該タイムスタンプされた報告を予め決定された間隔で読み込むための手段を含む、請求項１２に記載のシステム。
【請求項１６】
前記第１のロードモニタは、新しいドキュメントが前記データベースに追加される準備が出来ている場合には、前記ロードサーバの各々に通知するように構成されており、該ロードサーバのうちのビジーではない全てのロードサーバは、キューから新しいデータを検索し該新しいデータに基づいて該ドキュメントにインデックスを付けることを試みることによって、該通知に応答するように構成されている、請求項１５に記載のシステム。
【請求項１７】
方法であって、
オンライン情報検索システムのデータベースへの追加のためにドキュメントを含むファイルを受信することと、
該ファイルを受信することに応答して、２つ以上のロードサーバに通知することと、
該通知されたロードサーバのうちの１つを用いて該ファイル内の該ドキュメントにインデックスを付けることと、
該インデックスを付けられたドキュメントを該データベースにロードすることと、
該ドキュメントが該データベースにロードされていることを、２つ以上のロードモニタに通知することと、
該通知されたロードモニタのうちの第１のロードモニタを用いて、該ドキュメントが該データベースにロードされていることを確認することと、
該通知されたロードモニタのうちの第２のロードモニタを用いて、該通知されたロードモニタのうちの第１のロードモニタの適切な動作を確認することと
を包含し、
各ロードサーバは、サービスレベルアグリーメントデータ構造に関連し、該データ構造は、該ロードサーバが受容することを認められている要求にインデックスを付けるドキュメントの最低の優先度を示すための第１のフィールドを含んでいる、方法。
【請求項１８】
前記データ構造は、どちらのデータベースについて、前記ロードサーバがドキュメントにインデックスを付けることが認められているかを識別するための第２のフィールドを含んでいる、請求項１７に記載の方法。
【請求項１９】
前記データ構造は、時間的な局面を示す第３のフィールドを含んでいる、請求項１７に記載の方法。
【請求項２０】
前記２つ以上のロードサーバに通知することは、
前記ファイルの受信を検出することと、
該ファイルに関するデータをロードキューに追加することと、
新しいデータが該ロードキューに追加されていることを、該２つ以上のロードサーバに通知することと
を包含する、請求項１７に記載の方法。
【請求項２１】
前記インデックスを付けられたドキュメントを前記データベースにロードすることは、
インデックスデータおよび対応するドキュメントがロードに利用可能であることを、複数の分散サーバのうちの２つ以上の分散サーバに通知することと、
該インデックスデータおよび対応するドキュメントを、該データベースにロードするために該２つ以上の分散サーバのうちの１つを使用することと
を包含する、請求項１７に記載の方法。
【請求項２２】
前記ドキュメントが前記データベースにロードされていることを確認することは、「エンドオブファイル」または他の類似のインジケータを、該データベースから読み込むことを含む、請求項１７に記載の方法。
【請求項２３】
前記ロードモニタのうちの第２のロードモニタを用いて、該ロードモニタのうちの第１のロードモニタの適切な動作を確認することは、該ロードモニタのうちの該第１のロードモニタが、１つ以上のメッセージを共有ディレクトリに書き込むかどうかを決定することを包含する、請求項２０に記載の方法。
【請求項２４】
前記通知されたロードサーバのうちの１つを用いて、前記ファイル内の前記ドキュメントにインデックスを付けることは、サービスレベルアグリーメントデータ構造をレビューすることにより、該通知されたロードサーバのうちの１つ以上が、該ドキュメントを処理することを認証されているかどうかを決定することを含む、請求項２０に記載の方法。
【請求項２５】
複数のロードサーバを有する情報検索システムにおける使用のためのサービス関連データ構造であって、該データ構造は、該複数のロードサーバのうちの１つに関連し、該１つのロードサーバが処理することを認められるロード要求の優先レベルを示すための手段を含む、データ構造。
【請求項２６】
データベースのセットのうちのどれについて前記ロードサーバがロード要求を処理し得るかを示すための手段をさらに含む、請求項２５に記載のデータ構造。
【請求項２７】
前記ロードサーバの１つ以上のサービス制限に関連する期間を示すための手段をさらに含む、請求項２５に記載のデータ構造。
【国際調査報告】
2008527547.tif 000005
2008527547.tif 000006
2008527547.tif 000007