JP5118059B2 - 検索可能なデータサービスのための方法及び装置 - Google Patents
検索可能なデータサービスのための方法及び装置 Download PDFInfo
- Publication number
- JP5118059B2 JP5118059B2 JP2008548794A JP2008548794A JP5118059B2 JP 5118059 B2 JP5118059 B2 JP 5118059B2 JP 2008548794 A JP2008548794 A JP 2008548794A JP 2008548794 A JP2008548794 A JP 2008548794A JP 5118059 B2 JP5118059 B2 JP 5118059B2
- Authority
- JP
- Japan
- Prior art keywords
- query
- searchable
- node
- storage
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Description
種々のアプリケーションによりアクセスするための様々なタイプのデータオブジェクトを保存するデータストレージは、コンピュータシステムとアプリケーション、ネットワーキング、インターネット、及び関連技術分野において、最も関心が高く、優先的に開発される分野である。従来、開発者は、データ保存ソリューションを開発するために、データオブジェクトを保存するための独自のデータストレージソリューションを作製するか、Oracle/MySQLデータベースなど既製のデータベース製品を調達するか、又は、データストレージソリューションを提供する第三者のプロバイダーに依存してきた。しかし、データストレージソリューションが提供されると、データオブジェクトをデータストアに保存し、また取り出すことができる。典型的に、データ保存ソリューションは、データストアからデータオブジェクトを取り出すために使用できる1種以上のロケータを提供する。一般的な「ロケータ」は、クライアントが、ファイルパスで特定されるデータストアと併せて、一部のロケーションから特定のデータオブジェクト(例、ファイル)を取り出すために、特定のファイル名を含むファイルパスを提供する、ファイルパスタイプのロケータである。しかしながら、ファイルパスは、所望のデータオブジェクトがパス/ファイル名のみでしか特定できないため、あまり柔軟性がない。ファイルパス機構、及びデータストアからデータオブジェクトを取り出すその他の従来の「ロケータ」機構は、一般的に、所望のデータオブジェクトの属性に従い、データストアからデータオブジェクトを取り出すための柔軟性を提供しない。例えば、クライアントは、カテゴリ、会社、種類、又はデータオブジェクトに関連するその他の無数の属性のいずれかに基づき、データストアからデータオブジェクを取り出すことを希望する場合もある。従来のファイルパスは、そのような柔軟な取り出し方法を提供しない。
・エンティティ:エンティティとは、ある種のデータストア332に保存され、開発者が属性を関連付けることを希望する、任意のデータオブジェクト又はエンティティを指す
・識別子(eID):開発者が、アプリケーションでエンティティを個別に識別するために使用する文字列(例、UTF−8などのコード化文字列)eIDはロケータとも称される。一部の場合、eIDはブロブ様エンティティを捜すために使用されてもよい。一実施形態において、検索可能なデータサービスは、開発者によって使用されるストレージソリューションに対し不透過的であってもよい。一実施形態において、UTF−8コード化は、eIDの序列を必要とする機構を支援するために、eIDに使用することもできる。一実施形態において、eIDは、バイトの任意配列(しかし、ドメイン又はバケット内では固有である)であってもよい
・属性:文字列で明示され、eIDに関連し、eIDのインデックス化及びクエリが基づく{名前、値}の1組を指す。一実施形態において、属性はUTF−8コード化文字列であるため、属性はUTF−8コード化クエリ式文字列で容易に使用することができる
・インデックス:eIDに関連する各エンティティは、クエリ式を満たすeIDリストを取り出すためにクエリされるインデックスを有する、又は提供することができる
・配列ID:最新要求の受信を認識し、最新情報の状態を追跡する、検索可能なデータサービス生成固有識別子。一実施形態において、配列IDは最新要求の一貫性の順列及び維持に使用することができ、高い配列IDを有する要求は世界的に、低い配列IDを有する要求に優先する。一実施形態において、配列IDはクライアントに公開されないことを留意されたい。
・クライアント(例、図2のクライアント330):用語クライアントは、検索可能なデータサービスシステムの使用を希望する検索可能なデータサービス加入者によって開発された、アプリケーション、スクリプト、ソフトウェアなどを表すために使用することができる
・加入者:検索可能なデータサービス加入者は、請求、計測、及び可能性のあるその他の目的のために、加入者識別子によって固有に識別されてもよい。各検索可能なデータサービス加入者は、同一の加入者識別子を使用して、検索可能なデータサービス内のデータにアクセスする1つ以上のクライアントを有してもよい。加入者識別子は、検索可能なデータサービスに保存されている加入者のeIDデータを捜すために、検索可能なデータサービス内で使用されてもよい。加入者は、1つ以上のバケットの所有者であってもよい。加入者は、顧客とも称される
・検索可能なデータサービス要求:クライアントが、本明細書に記載される1つ以上の検索可能なサービス操作を実施するために、ウェブサービスインターフェースを介して、検索可能なデータサービスに送信するコール(データを含む)を指す
・検索可能なデータサービス応答:クライアントにより送信された検索可能なデータサービス要求を処理した後、検索可能なデータサービスをクライアントに返信する応答を指す
・バケット:加入者が、意味的又はその他の目的のために保持することを希望する検索可能なデータサービスオブジェクト群を指す。クエリは、1つのバケット内で適用される。バケットは、ドメイン又は検索可能なインデックスとも称される。各バケットは、バケット識別子によって識別されてもよい。一実施形態において、各加入者識別子は、1つ以上のバケット識別子に関連され、バケット識別子は単一の加入者識別子と関連付けされてもよい
加入者−>バケット−>eID
eID 属性
k1 {{名前、値}}、{{名前、値}}、...
k2 {{名前、値}}、{{名前、値}}、...
k3 {{名前、値}}、{{名前、値}}、...
… …
eID 属性
<url> (名=“キーワード”、値=“xxx”)、(名=“キーワード”、値=“yyy”)、...
加入者−>バケット−>eID−>{属性リスト}
・加入者ID
・バケット識別子−ドメインを識別する
・eID
・属性リスト−エンティティに関連する{名前、値}の1組のリスト
・作成時間/日付−検索可能なデータサービスオブジェクトが作成された日時を示すタイムスタンプ
・最新修正時間/日付−検索可能なデータサービスオブジェクトが最後に修正された日時を示すタイムスタンプ。初期状態では、作成時間/日付と同一であってよい
・最新アクセス時間/日付−検索可能なデータサービスオブジェクトが最後にアクセスされた日時を示すタイムスタンプ
・作成者−検索可能なデータサービスオブジェクトを作成した特定のユーザ/クライアントを示す
・最新修正者−検索可能なデータサービスオブジェクトを最後に修正した特定のユーザ/クライアントを示す
・サイズ−検索可能なデータサービスオブジェクトのサイズ(例、バイト)を示す
・アクセス権−検索可能なデータサービスオブジェクトへのアクセス権を示す
・指定プレフィックスに一致する検索可能なデータサービスオブジェクト及び/又はeIDの列記
・加入者に関連し、固有加入者識別子によって識別されるすべてのドメイン(バケット)の列記
・ドメイン下(バケット内)にインデックス付けされたすべての属性の列記
・ドメイン下のすべての検索可能なデータサービスオブジェクト及び/又はeIDの列記
・指定クライアントによってインデックス付けされたすべての属性の列記
・全ドメイン共通の顧客に対する、すべての検索可能なデータサービスオブジェクト及び/又はeIDの列記
・指定属性を有するすべての検索可能なデータサービスオブジェクト及び/又はeIDの列記
・ブーリアン(例えば、AND、OR、NOT)
・算術演算子(例えば、<、>、=、!=、<=、>=、<>)
・文字列(特定された文字列を含む属性)
・開始文字列(特定された文字列を含む属性)
・バケット識別子−ドメインを識別する
・作業−実行する作業を示す。例えば、追加、削除、又は修正
・eID
・属性リスト
このセクションは一実施形態に従い、ウェブサービスインターフェース350を介して、ウェブサービスとして開発者及びクライアントに公開される場合がある、検索可能なデータサービス340のための例示的なAPIを記載する。一実施形態において、APIは、THHP/THHPS上の完全に表現可能な状態の転送(Fully Representational State Transfer)(REST)及び/又はシンプルオブジェクトアクセスプロトコル(SOAP)を介して、ウェブサービスプラットフォームを通じ、開発者及びクライアントに提供される場合がある。その他の実施形態は、その他のプロトコルを使用する場合がある。提供されるウェブサービスインターフェース350は、アプリケーションアグノスティックである場合がある。
・更新:eID属性バケットを更新する作業。例えば、追加、置換、及び削除作業
・リスト属性:eID及びバケット識別子の場合、この作業はeIDの属性をリストする。これは、上記テーブルの左から右に進むに従って、視覚化される場合があり、例えば、引数として「k1」が与えられる場合、「k1」の右のすべての{名前、値}の1組が返される
・クエリeID:クエリ式の場合、式を満たすバケットから、すべてのeIDを返す。これは、上記テーブルの右から左に進むに従って、視覚化される場合がある。一実施形態において、クエリ式は、ブーリアン演算子(例えば、NOT、AND、OR)を使用して組み合わせた前提の集合である。前提は、属性リストの名前及び/又は値フィールドが、必ず真の状態を保持していなければいけないことを示す
これらの検索可能なデータサービス作業は、加入者のeID属性バケットを更新するために、クライアントによりウェブサービスインターフェースを介して呼び出される場合がある。
・バケット識別子:加入者のバケットを識別する文字列。バケットが存在しない場合は、1つ作成される場合がある
・eID:クライアントがデータストアのエンティティを捜すために使用する場合がある文字列
・名前:属性の名前を示す文字列
・値:属性の値を示す文字列
・加入者識別子:検索可能なデータサービス加入者を識別し、加入者に請求及び加入者を認証するために使用される場合がある。一実施形態において、加入者の証明書も含まれている場合がある
・バケット識別子:加入者のバケットを識別する文字列。バケットが存在しない場合は、1つ作成される場合がある
・eID:クライアントがデータストアのエンティティを捜すために使用する場合がある文字列
・名前:属性の名前を示す文字列
・値:属性の値を示す文字列
・加入者識別子:検索可能なデータサービス加入者を識別し、加入者に請求及び加入者を認証するために使用される場合がある。一実施形態において、加入者の証明書も含まれている場合がある
・特定の名前又は値のいずれかがない場合、削除作業は、与えられたeIDに関するすべての属性を削除する場合がある。一実施形態において、eIDは、追加又は置換作業により、新しい属性が取り込まれない場合、一定時間経過後、ゴミ収集対象となる。一実施形態において、eIDを持たないバケットは、ゴミ収集対象となる。一実施形態において、属性は、削除済みとしてマークされる場合があり、アクティブなゴミ収集は実行されない
・名前のみを有し特定の値を有さない場合、削除作業は、その名前を有し、与えられたeIDに関する属性を削除する場合がある。属性は、固有値を有するか、又は多値であるかのいずれかである
・特定の名前及び値を有する場合、削除作業は、与えられたeIDに関する{名前、値}の1組を削除する。これは、クライアントが多値属性の1つの特定の値を削除することを可能にする
・バケット識別子:加入者のバケットを識別する文字列
・eID:クライアントがデータストアのエンティティを捜すために使用する場合がある文字列
・名前:属性の名前を示す文字列
・値:属性の値を示す文字列
・加入者識別子:検索可能なデータサービス加入者を識別し、加入者に請求及び加入者を認証するために使用される場合がある。一実施形態において、加入者の証明書も含まれている場合がある
・状態:「OK」又は「エラー」のいずれか。更新が正確に形成され、適応される場合、状態はOKとなり、そうでなければ、応答は、エラーメッセージ内に問題を説明する
・エラーメッセージ:更新作業要求が直面したいずれかの問題について、さらに説明する情報。例えば、「要求は、不適切です」
一実施形態は、バッチ処理、又はバッチ作業として提出される場合がある更新要求を介して、機構を提供する場合がある。バッチ処理更新要求は、上記に記載の2つ以上の連続更新要求を含む場合があり、バッチ処理更新要求に対する応答は、バッチ処理更新要求に対応する更新状態の連続を含む場合がある。一実施形態において、バッチ処理更新要求に指定される更新作業を、リアルタイムで連続して処理するために、単独のバッチ更新要求に提出される場合のある、更新作業の数に制限がある場合がある。又は、バッチ処理更新要求の更新は、非同期的に実行される場合がある。
一実施形態は、ウェブサービスインターフェースを介して、クライアントにより呼び出される場合のある、リスト属性作業を提供する場合がある。リスト属性作業は、特定のeIDに関連する属性のリストを返す場合がある。以下は、更新作業要求に対する、例示的なリスト属性作業要求に含まれている場合がある情報を説明する。これは、例示的であり、これらに限定されないことに留意されたい。
・バケット識別子:加入者のバケットを識別する文字列
・eID:クライアントがデータストアのエンティティを捜すために使用する場合がある文字列
・フィルタ式:eIDに対して返される属性をフィルタするために使用される場合がある、文字列式。フィルタ式が指定されていない場合、eIDに関連するすべての属性が返される。フィルタの構文は、以下に記載の「クエリeID」に使用されるものに従う。このパラメータは任意である場合がある
・加入者識別子:検索可能なデータサービス加入者を識別し、加入者に請求及び加入者を認証するために使用される場合がある。一実施形態において、加入者の証明書も含まれている場合がある
・属性リスト:もしあれば、フィルタ式と一致する{名前、値}の1組のリスト要求に対して、フィルタ式が与えられていない場合は、特定のeIDのすべての属性が返される。エラーがない場合、これが予測される返答である
・エラーメッセージ:リスト属性作業要求が直面したいずれの問題について、さらに説明する情報。例えば、「未知のエンティティ識別子」、「未知のバケット」、又は「フィルタ式は、不正な構文」
一実施形態は、ウェブサービスインターフェースを介して、クライアントにより呼び出される場合のある、クエリeID作業、又は単にクエリ作業を提供する場合がある。クエリeID作業は、クエリ式により指定される条件と一致する、eIDのリストを返す。クエリ式は、文字列であり、タイトルが「クエリ構文及び検索式」である以下のセクションで与えられるルール一式に従う場合がある。検索可能なデータサービスの一部の実施形態では、いずれにせよ、暗黙の構文を有する非正規化検索式を受け入れ、1つ異常の正規化ルール(タイトルが「非正規化検索式」のセクションを参照)を使用する標準形に対するメッセージを削減する場合がある。クエリeID作業要求は、本明細書でクエリ、クエリ要求、又はクエリノード要求といわれる場合があることに留意されたい。
・バケット識別子:加入者のバケットを識別する文字列
・クエリ式:文字列式であり、それに従い、eIDのリストが捜し出される、又は返される場合がある
・MoreToken:不透過的なオブジェクト(例、クッキー)であり、以前のクエリeID作業要求でクライアントに返されている場合がある。トークンが先のクエリeID作業から返される場合、トークンは、返された以前のクエリeID作業要求の応答にて捜し出されたeIDのリストの次のページを要求するために、後続のクエリeID作業要求に提供される場合がある。この任意のパラメータである
・加入者識別子:検索可能なデータサービス加入者を識別し、加入者に請求及び加入者を認証するために使用される場合がある。一実施形態において、加入者の証明書も含まれている場合がある
・エンティティ識別子リスト:クエリ要求に指定される検索条件に一致するeIDのリスト。これは、1つ以上のエラーメッセージが返される場合があるエラーがない限り、予測される返答である
・MoreToken:文字列であり、一実施形態において、MoreTokenは、クライアントから不透過的である。クエリ要求を満たすeIDのリストが、1つの応答に返すには大きすぎる場合、リストはページで返される場合がある。MoreToken「クッキー」は、「最新表示ページ」を示す場合がある。MoreTokenクッキーは、eIDの次のページを取り出すための後続のクエリ要求に含まれる場合がある
・エラーメッセージ:クエリeID作業要求が直面したいずれの問題について、さらに説明する情報。例えば、「未知のバケット」、「クエリ式は、正しい構文を持たない」、又は「無効なMoreToken」
以前のセクションは、検索可能なデータサービスの実施形態の開発者/クライアントに公開される例示的なウェブサービスAPIを記載した。以下のセクションでは、検索可能なデータサービス、及び検索可能なデータサービスの実装に含まれている場合がある様々なサブシステム並びにコンポーネントの例示的なアーキテクチャを記載する。
・要求インターセプタを通じて、ウェブサーバは、測定、請求、認証、及び検索可能なデータサービスへのアクセス権のために、1つ以上のその他のサービスと情報のやり取りを行う場合がある
・ウェブサーバは、1つ以上の完全に表現可能な状態の転送(Fully REpresentational State Transfer)(REST)及び/又はシンプルオブジェクトアクセスプロトコル(Simple Object Access Protocol)(SOAP)APIを提供する場合があり、検索可能なデータサービスへのデータの提出する、又は検索可能なデータサービスからのデータの取り出す際、開発者及びクライアントに公開される。その他の実施形態において、1つ以上のその他のプロトコル又はプロトコルの組み合わせが試用される場合があることに留意されたい。これらのAPIは、エンティティロケータ(eID)、及びエンティティID(eID)ストアのエンティティに関連する属性の受信及び保存を可能にする。属性のインデックスは、eIDストアから構築される場合がある。一実施形態において、APIは、eID及び属性(ストレージノード要求又はストレージ要求と称される場合がある)に対応する以上の1つ以上のAPIコールを提供する場合があるが、それだけに限定されない
・追加−属性({名前、値}の1組)をエンティティに追加する。2つ以上の値を有する場合がある「キーワード」のような属性など、複数の値を有する属性として使用される。
・削除−属性を削除する
・置換−既存の属性を置換する。最初に、1つの値を有する属性とともに使用される場合がある
・リスト属性−エンティティのすべての{名前、値}の1組をリストする
・ウェブサーバは、クエリ要求を検索可能なデータサービスに提出するために、1つ以上のREST及び/又はSOAP APIを提供する場合がある。その他の実施形態において、1つ以上のその他のプロトコル又はプロトコルの組み合わせが試用される場合があることに留意されたい。一実施形態において、1つのクエリAPIコール(クエリeID)がある場合がある。クエリ要求は、クエリノード要求とも称される
・要求ルーター202は、ウェブサービスプラットフォーム200からサービス要求を受け取り、サービス要求がストレージノード要求(例えば、1つ以上のeID及び関連属性の追加、削除、又は置換要求)であるか、又はクエリノード要求(1つ以上の保存されたeID及び/又は関連属性を取り出す要求)であるかを判断する場合がある
・サービス要求がストレージノード要求の場合、要求ルーター202は、ストレージノードロケータに、要求に指定のeID及びバケットを、適切なストレージノードまでマップするように要求する。一実施形態において、検索可能なデータサービスインデックス付けデータは、バケットに分離される場合がある。バケットは、シングルクエリに入ると考えられるデータのリミットを定義する
・サービス要求がクエリノード要求の場合、要求ルーター202は、クエリノードロケータに、バケット及びクエリ式を、適切なクエリノードまでマップするように要求する
・要求ルーター202は、サービス要求を適切なノードへ送り、結果を回収し、結果をウェブサービスプラットフォーム200に返す
・クエリの処理する
・可能であれば、クエリサブシステム204により保持されるクエリキャッシュからのクエリを提供する
・クエリキャッシュからの満たしていないクエリを実行するために、ストレージサブシステム206上の1つ以上のストレージノードに送る小ドメイン(バケット)において、クエリは、一般的に単一ストレージノード上で実行される。より大きなバケットは、複数のストレージノードに渡り分割され、各パーティションの1つのストレージノード上でクエリを実行することを要求する場合がある。要求ルーター202と同様に、クエリサブシステム204は、適切なストレージノードを検出するために、ストレージノードロケータのローカルインスタンスを使用する場合がある
・2つ以上のストレージノードから受け取ったクエリ結果を集約し、必要に応じて、クエリ結果をソートする
・ウェブサービスプラットフォーム200に提供されるウェブサービスインターフェースを介して、クエリを実行したクライアントにクエリ結果を返す。一実施形態において、必要に応じて、結果にページ番号をつける
・ストレージノード上で、ローカルeIDストアは、eID及びそれらの属性に対する権限のあるストアとしての役割を果たす場合がある
・インデックスは、eIDストアから構築され、ローカルストレージノード上のeIDのすべての属性にインデックスを作成する場合がある
・ローカルクエリプロセッサは、ローカルeIDストアに対してクエリを実行する場合がある
・eID更新サービスは、ストレージノード要求(追加、置換、削除など)をローカルeIDストアに適用する場合がある
・ローカルパーティションマネージャーは、各ストレージノードのローカルリソース(ディスクスペース、CPU負荷、ネットワークバンド幅など)の使用を監視し、それに応じてバケットのパーティションを管理する場合があり、パーティションを移動するために、共同してその他のストレージノードと通信を行う場合がある。パーティションは、例えば、ストレージノード上のコンフォートゾーン内のストレージ空き容量を維持するため、及び/又は負荷バランシングを提供するために、移動可能である
・例えば、データの冗長性を提供するために、ストレージノードを渡るパーティションを複製するため、その他のストレージノードと共同して通信する場合がある。
・ストレージ要求に指定の検索可能なデータサービスオブジェクトを検索可能なインデックスに追加する
・検索可能なインデックスに保存されている検索可能なデータサービスオブジェクトをストレージ要求に指定されるように修正する
・検索可能なインデックスから、検索可能なデータサービスオブジェクトを、ストレージ要求に指定されるように削除する、又は
・ストレージノード要求がリスト属性要求の場合、エンティティのすべての{名前、値}の1組のリストをコンパイルし、返す。リスト属性要求は、パーティションの修正を生じない場合があることに留意されたい
検索可能なデータサービスの実施形態は、ストレージサブシステム206におけるインデキシングデータの、データ区分及び複製のための1つ以上の機構を提供することができる。データ区分は、検索可能なデータサービスのクライアントが、もしそうでなければ単一のストレージノード上に納まることができる以上に大きい検索可能なインデックスを保存、及び維持することを可能にすることができる。データ複製は、保存、及び検索可能なデータサービスを介してクライアントアプリケーションからのクエリにアクセス可能とされた加入者のデータストアに対して、検索可能なインデックスの持続性、信頼性、及び可用性のための検索可能なインデックスにおける冗長性を提供することができる。
図9A及び9Bは、検索可能なデータサービスの一実施形態に従い、加入者の検索可能なインデックス、各加入者250のデータのバケットへの分離、及びバケットの区分を例示している。各加入者250に対して、検索可能なデータサービスデータはバケットに分離され、それは単一のクエリにおいて考慮されることが可能であるデータの限度を定義する。図9Aでは、検索可能なデータサービスクライアント(又は加入者)が、加入者250Aによって識別される検索可能なインデックスにデータを追加するとき、クライアントは、属性を有するロケータ(eLD)をバケット252に提出する。各バケット252は、初めは単一のストレージノード上にある。データセットが無制限に増大することが可能であるため、パーティションは、ストレージノード上のディスクの物理的容量を超えることがある。一実施形態では、この可能性を考慮するために、図9Bに図解するように、バケット内のデータを2つ以上のパーティション254にわたって分割することができる。図9Bでは、パーティション254を形成するするために、図9Aのバケット252が分割されていることが示される。例えば、バケット252Aは、パーティション254A、254B、及び254Cに分割されている。ここで留意すべきは、一実施形態において、各パーティション254が、単一のストレージノード上にあることである。しかしながら、2つ以上のパーティション254が、単一のストレージノード上にあってもよい。
図9Cは、一実施形態に従い、パーティションの複製を介するデータ複製を例示している。一実施形態では、データ持続性及びフォルトトレランスに関して、データセット(バケットパーティション254)は、いくつかのストレージノードにわたって複製されてもよい。図9Cでは、複製グループ256を形成するために、図9Bのパーティション254は複製されている。例えば、図9Cでは、複製グループ256A、256B、及び256Cを形成するために、バケット252Aのパーティション254A、254B、及び254Cは複製されている。複製は、検索可能なデータサービスの実施形態が、複製グループ256にわたってクエリ負荷を分散することを可能することができ、したがって、検索可能なデータサービス上の持続的な「読み込みストレス」への対応として必要な、又は望ましい場合がある。さらに、1つ以上のストレージノードが機能しなくなると、検索可能なデータサービスの実施形態は、複製グループ256を密集の状態に保つために、新しいストレージノードを支給することができる。複製グループの形成の詳細は、グループメンバーシップ及びヘルスコンポーネントに関連して、以下でさらに説明される。
一実施形態では、検索可能なデータサービスのパーティションマネージャー232のコンポーネントは、ディスク(ストレージ)スペースの不足の結果として、及び/又は高いプロセス負荷から生じることがあるホットスポットを軽減するために、検索可能なデータサービスシステムを再構成するための決定を下し、アクションを実行する責任を有する。パーティションマネージャー232のコンポーネントは、検索可能なデータサービスシステムにおけるホスト、又はノード上のストレスの平衡を保つ傾向がある分散型演算処理(ホスト、又はノードにわたって分配される)として機能することができる。
・ホスト(ストレージノード)は、複製グループ256に追加されてもよい。
・ホスト(ストレージノード)は、複製グループ256から取り除かれてもよい。
・パーティション254は、分割されてもよい。
・パーティション254は、別のパーティションとマージされてもよい。
一実施形態では、パーティション254は、エンティティID(eID)のハッシュに基づいて形成することができる。以下は、プロバイドeIDが特定のパーティション内にあるかどうか示す、ブーリアン(真又は偽)を返信する例示的な関数である。
bool inPartition(String eID, int mask, int value)
{
int h = hash(eID);
return (h & mask) == value;
}
検索可能なデータサービスデータはバケット252に分離され、それは単一のクエリにおいて考慮されることが可能であるデータの限度を定義する。一実施形態では、任意量のクエリ処理能力をバケット252に追加することができるように、クエリされるバケット252は、フォルトトレランスに必要とされる最小数を超えて複製されることが可能である。しかしながら、バケット252は、検索可能なデータサービスシステム内のホスト上に保存されるには、あまりにも大きくなる場合があり、及び/又はクライアントシステムから過剰な数の更新を受信する場合がある。バケット252の複製は、これらの潜在的状況から生じる可能性がある問題に対応しない場合がある。一実施形態では、これらの潜在的状況に対応するために、バケット252は、データの分かれたパーティション254に分割することができる。
一実施形態では、パーティションマネージャー232は、APIに従って、eID更新マネージャー230と相互作用することができる。以下は、パーティションマネージャー232によって使用することができ、また、記載された例示的なコール、及びコールバックの1つ以上を含むことができるがそれらに限定されない、例示的なAPIである。
setpartitions(Subscriber, Bucket, AcceptPartitionList, DropPartitionList)
empty(subscriber identifier, bucket identifier)
hint(subscriber identifier, bucket identifier, mask)
図11は、一実施形態に従い、例示的ストレージノード及びそのコンポーネントを例示している。ここで留意すべきは、パーティションマネージャー232、及び関連コンポーネントは、パーティションマネージャーという題名の項において上述され、ローカルクエリプロセッサ228は、クエリサービスという題名の項において、以下でさらに説明されることである。図11の次の説明は、eIDストア236、及びその関連コンポーネント:eIDストア236上にコンパイルされるeID更新マネージャー276、及びクエリインデックス234に重点を置く。また、ここで留意すべきは、一実施形態において、図解されるコンポーネントのインスタンスは、検索可能なデータサービス実装において、すべてのストレージノード270上にあることが可能であるということことである。
・リスト属性APIをサポートする:クライアントが更新を提出した後、クライアントがeIDに関連する属性をリードバックすることができる
・クエリインデックス234の作成、及び再作成をサポートする:eIDストア236は、クエリインデックス274の作成のための、信頼すべきストアとして使用することができる。これらのインデックス234が損失した場合、それらはローカルeIDストア236を使用して、再生することができる
・チャンク要求に対するクエリサブシステム204の要求をサポートし、それによってeIDのリストが提出され、それに対して、それぞれに対する属性が返信することができる
・永続性:クライアントが、更新が受け入れられたことを伝えられるとき、クライアントは、複製されたeIDストア236がデータを損失しない、高水準の信頼を要求することができる
・一致性:複製は、顧客との特定のサービス内容合意書(SLA)内で、最終的な一致性を示す
・信頼性、可能性、拡張性:検索可能なデータサービス実装は、全体のシステムが特定のSLAに応じることを可能にするために、随時、これらをサポートするよう要求することができる
一実施形態では、eID更新マネージャー230は、特定のポート上で、例えばTCPを介して、更新及びリスト属性要求を受信することができる。また、eID更新マネージャー230は、問題や状態を報告するために、また、eID更新マネージャー230はどのバケットパーティション254を維持すべきか、また、もしあれば、どちらを削除すべきかについての指示を受信するために、そのローカルパーティションマネージャー232と通信することができる。
一実施形態では、eIDストア236は、Berkeleyデータベース(BDB)として実装することができる。ここで留意すべきは、他の実施形態は、eIDストア236を実装するために、他の機構を使用することができることである。BDBは、その中の加入者識別子、バケット識別子、及びエンティティ識別子(eID)が与えられるすべての属性を見つけるための容量を提供する。BDBは、キー値の1組として情報を保存し、キーは、ここでBDBキーと呼ばれることがあり、値はBDB値と呼ばれることがある。一実施形態では、BDBキー、及びBDB値は以下のように形成することができる。
・BDB-key = Key( subscriber identifier, bucket identifier, eID )
・BDB-value = { updates-for-the-eID-above }
{ (op=replace, name=n1, value=v1, ts=t1), (op=replace, name=n2, value=v2, ts=t2), (op=add,name=n2,value=v3,ts=t3) }
ここで、opは操作を示し、tsはシーケンスIDを示す。この例に関して、t4>t3>t2>t1と仮定する。例における「現時点」では、BDB値によって含意される属性は、
{(n1,v1),(n2,v2),(n2,v3)}
であり、ここでn2は多値である。ここで、同じeIDにおける、以下の例示的なシナリオの1つを介する更新を検討する。
(op=replace, name=n2, value=v4, ts=t4)
これは、BDB値に、
{ (op=replace, name=n1, value=v1, ts=t1), (op=replace, name=n2, value=v4, ts=t4) }
を含ませる。
したがって、
(op=replace, name=n2, value=v2, ts=t2), (op=add,name=n2,value=v3,ts=t3)
は、新しい更新に取って代わられるため、更新のリストから除外される。
第2シナリオ
(op=delete, ts=t4)
これは、BDB値に、
{(op=delete, ts=t4)}
のみを含ませる。
他の操作のすべては、この新しい操作にすべて取って代わられるため、取り除かれる。
第3シナリオ
(op=add, name=n1, value=v5, ts=t4)
これは、BDB値に、
{ (op=replace, name=n1, value=v1, ts=t1), (op=add, name=n1, value=v5, ts=t4), (op=replace, name=n2, value=v2, ts=t2), (op=add,name=n2,value=v3,ts=t3) }
を含ませる。
このシナリオでは、どの更新も外される2つの属性、n1及びn2は多値である。
一実施形態では、クエリインデックス234は、Berkeleyデータベース(BDB)として実装することができる。ここで留意すべきは、他の実施形態は、クエリインデックス234を実装するために、他の機構を使用することができることである。一実施形態では、バケット252が与えられると、クエリインデックス234は、{名前、値}の1組からeIDへのマッピングを可能にする。したがって、クエリインデックス234に対して、
BDB-key = Key( subscriber identifier, bucket identifier, name, value )
BDB-value = { all-eIDs-with-{name, value}-above }
@name = "some-name", @value > "string1" AND @value < "string2"
を与えられると、以下の変換を可能にすることによって、クエリをサポートすることができる。
BDB-Key > Key ( subscriber identifier, bucket identifier, "some-name", "string1" ) AND BDB-Key < Key ( subscriber identifier, bucket identifier, "some-name", "string2" )
以下は、一実施形態に従って、一部の例示的な検索可能なデータサービス ストレージノードの使用事例を説明する。初めの2つの使用事例(更新要求の処理、及びリスト属性要求の処理)は、外部的事象の処理を説明する。残りは、内部的事象の処理を説明する。
eIDストアログが変更する場合、クエリインデックスアップデータは、新しい追加を読み込むことができ、クエリインデックス234を更新する。アンチエントロピーデーモンは新しい追加を読み込み、アンチエントロピーに対するそのデータ構造(例えば、Merkleツリー)を更新する。
以下は、一実施形態に応じて、eID更新マネージャー230によって公開される、又は要求することができる、例示的なインターフェースを説明する。ここで留意すべきは、これらのインターフェースは例示的なものであり、限定することを意図していないことである。
replace ( bucket identifier, eID, name, value, prev-seq-ID) OR
add ( bucket identifier, eID, name, value, prev-seq-ID) OR
delete ( bucket identifier, eID, name, value, prev-seq-ID)
apply(Group, Msg) --> ok|dup|late|error
antientropy(Group, Host, Cookie) --> Status
setpartitions(Subscriber, Bucket, AcceptPartitionList, DropPartitionList)
ここで留意すべきは、アクセプトパーティションリスト、及びドロップパーティションリストは、{マスク、値}の1組のリストであることである。
gcast(Group, Msg) --> {ok, Hosts, Cookie} | error
gsync(Cookie, Timeout)--> true|false
empty(Subscriber, Bucket)
一実施形態では、検索可能なデータサービスシステムのクエリサブシステム204、又はクエリサービスは、クライアントクエリを解析し、データを取り出し、クエリ結果のセットを相互に関連付けるための、1つ以上のインターフェースを提供することができる。一実施形態では、クエリサービスは、図6に図解するように、1つ以上のクエリTSAR212、クエリキャッシュ214、クエリノードロケータ220、及び各ストレージノード270上に、ローカルクエリプロセッサ228、ローカルクエリインデックスストア234、及びエンティティID(eID)ストア236を含むがそれらに限定されない、検索可能なデータサービスのいくつかのコンポーネントを関係させる、又は含むことができる。ここで留意すべきは、これらのコンポーネントは、以下の図において、異なる番号を使用して言及される場合があることである。
・クエリノードロケータ354は、各特定のクエリに対して、ルーティング決定を行うことができる。一実施形態では、クエリキャッシュ364の利点を最大限にするために、繰り返されるクライアントクエリは、クエリシステムを介して同じパスを送ることを推奨されてもよい。
・クエリTSAR(Top Search AggregatoR)360は、所定のバケットに対する適切な一連のストレージノード370にクエリを分配し、また結果及びクエリキャッシングを収集する
・各ストレージノード370上のローカルクエリ実行エンジン376は、ストレージノード370のそれぞれでローカルにクエリを実行する責任を有する
クエリキャッシングが有益なヒット率を提供するために、一実施形態は、可能であれば、同じクライアントクエリが、コーディネーションサービス(要求ルーター352)によって、同じクエリTSAR360のノードに送られることを確実にするよう、試みることが可能である。一実施形態では、クエリノードロケータ354は、その1つが、各コーディネータノード350においてインスタンス化されることが可能であるが、そのルーティングを提供するためのロジックをカプセル化することができる。一実施形態では、クエリノードロケータ354は、参加ノードの1組上の受信クエリの無作為分配を可能にする、一貫したハッシングスキームを実装することができる。他の実施形態は、クエリを分配するための他の無作為、又は非無作為機構を実装することができる。
・キー−組み合わされたドメイン(バケット)名、及びクエリ文字列式のハッシュ
・値−所定のバケットに対するクエリ式を満たす一連のeID
・コスト−最初にクエリ式を実行するためにかかった時間。例えば、ガーベジコレクション、及び置換アルゴリズムに使用することができる
・タイムスタンプ−入力がキャッシュに入れられたときのローカル時間。例えば、ガーベジコレクション、及び検証アルゴリズムに使用することができる
一実施形態では、クエリプロセッサ362は、クエリメッセージにおいて、クライアント330によって提供されるクエリ式を取り扱う、検索可能なデータサービスシステムの第1のコンポーネントである。クエリプロセッサ362は、クエリ式を前処理することができる。クエリ言語における、非正規化構文を可能にする実施形態では、クエリプロセッサ362が行う最初のステップは、クエリをその標準的な、正規化形に変換することである。一実施形態では、クエリプロセッサ362はまた、意味的に同一のクエリが同じに見えるように、クエリ式における述語を並べ替え、それらを正規化することができる。例えば、クエリ式:
[predicate1] AND [predicate2] AND [predicate3]
は、クエリ式と同じ正規化クエリ式によって表されるべきである。:
[predicate3] AND [predicate1] AND [predicate2]
例えば、クエリ式における述語の正規化は、システムが、より高いクエリキャッシュ364のヒット率を実現するのに役立つことが可能である。
一実施形態では、現在のクエリが実行されているバケットに対するeIDを含む、一連のストレージノード370を位置付けるために、クエリアグリゲータ366は、ストレージノードロケータ368のサービスを使用することができる。一連のストレージノード370が決定された後、クエリアグリゲータ366は、クエリ要求を、ストレージノード370上のそれぞれにある、ローカルクエリ実行エンジン376に送信することができ、必要であれば再試行する。クエリに参加しているすべてのストレージノード370から、結果セットが受信されると、結果セットは、必要であればソート属性に基づいて、単一のセットにマージすることができる。
図14は、一実施形態に従い、単一ストレージノード370の例示的アーキテクチャを例示している。ローカルクエリ実行エンジン376は、ストレージノード370のeIDストア380、及びローカルクエリインデックスストア378と、密接に関連することができる。ローカルクエリ実行エンジン376は、この特定のストレージノード370上に保存される、eIDのセットに対して、ローカルにクエリを実行する。eIDに関するすべての情報がローカルに存在するため、ローカルクエリ実行エンジン376は、ローカルに(すなわち、このストレージノード370内で)、提供されたクエリ390を実行し、結果をソートし、クエリ結果セット390を(ソート属性と共に)、クエリTSAR360に返すことができる。一実施形態では、受信クエリ390は、ローカルクエリ実行エンジン376によって、eIDストア380に対して実行される前に、パーサ372によってローカルに解析され、クエリオプティマイザ374によって最適化することができる。一実施形態では、パーサ372、クエリオプティマイザ374、及びローカルクエリ実行エンジン376は、図6に図解するように、ローカルクエリプロセッサ228のコンポーネントであってもよい。
実施形態では、例示的なクエリメッセージは、以下のフィールドの1つ以上を含むことができるが、それらに限定されない。
・加入者識別子−特定のクライアント、又は検索可能なデータサービスのクライアントに対する識別子
・バケット識別子−クエリにおいて考慮され得る、データの限度を定義するバケットを識別する
・ノードID−ノード識別子
・クエリ式−このクエリに対して適用される検索式
・「More Tokens」−クエリ式を満たすeIDの数が、ページ付けの限度を超えるとき、不透明なmoreTokenオブジェクトは、クライアントに返すことができる。このトークンは、結果の次のセット(eID)を取り出すために、同じクエリで再実行することができる
・シーケンストークン
・ブーリアン演算(例えば、AND、OR、NOTなど)
・算術演算(例えば、<、>、<=、>=、<>、=、!=)
・文字列比較演算(例えば、プレフィックス「contains」など)
・クライアント指定の属性に基づく、エンティティの結果セットのソート。一実施形態では、ソートを、単一の属性上のみで許可することができる。他の実施形態は、2つ以上の属性上でのソートを許可することができる
・結果セットのページ付け
[@name = "xxxxxx" starts-with (@value = "yyyyyy")]
[ @name = "prefix" @value = "keyword"] AND [@name = "glassy" starts-with (@value = "tasty") ]
query expression <- (predicate expression)?
predicate expression <- predicate | NOT predicate expression | predicate expression AND predicate expression | predicate expression OR predicate expression | predicate expression sort expression
sort expression <- 'SORTBY[' attribute name ']' | 'SORTBY[' attribute name ' ASC]' | 'SORTBY[' attribute name ' DESC]'
predicate <- '[' attribute name ']' | '[' attribute name _value test expression_ ']'
attribute name <- '@name =' attribute
上記において、attributeは、システムにおける所定の属性の文字列名である。
value test expression <- value test | NOT value test expression | value test expression AND value test expression | value test expression OR value test expression
value test <- '@value =' test value
上記において、値は、test valueと等しくなければならない。
value test <- '@value !=' test value
上記において、値は、test valueと等しくあってはならない。
value test <- '@value >' test value
上記において、値は、test valueより大きくなければならない。
value test <- '@value >=' test value
上記において、値は、test valueより大きいか、等しくなくてはならない。
value test <- '@value <' test value
上記において、値は、test valueより小さくなくてはならない。
value test <- '@value <=' test value
上記において、値は、test valueより小さいか、等しくなくてはならない。
value test <- 'startsWith(@value =' test value ')'
上記において、値は、test valueから始まらなくてはならない。
value test <- 'contains(@value =' test value ')'
上記において、値は、従属文字列として、test valueを含まなければならない。
・オブジェクトの属性リストの、すべての{名前、値}の1組上で実行されるブーリアンテストは、角括弧[…]内に入る
・角括弧内では、{名前、値}の1組の名前、及び値の部分は、左側の「@name」及び「@value」使用して、言及される
・式の最初の部分は、「@name=」の形をとった属性の名前でなければならず、後にゼロ、又は属性値のより多くのブーリアンテストが続くことができる。
・演算子「>>=<<==!=」は、右側の文字列との、比較演算子として使用することができる
・Xpathからの文字列関数「starts−with」及び「contains」は、文字列値の属性に対して使用することができる
・属性のすべての@name部分は、文字列と見なされ、@value部分も文字列と見なされる
・ブーリアン演算子は、AND、OR、及びNOTである。これらは、{名前、値}の1組上で、テストを組み合わせるために使用することができる
・[..]内のテストを使用して得られた属性セットは、XPathによって与えられるような真理値を有し(ノードセットのブーリアン関数)、したがって、ブーリアン演算子を使用して組み合わせられることができる
・任意のSORTBY式は、結果セットがソートされるべき属性を指定することができる。SORTBY式は、ソート順序を示すために、ASC(昇順)及びDESC(降順)指定子を含むことができる。ASC(昇順)は、デフォルトのソート順序である
[@name = "lastName" starts-with (@value = “Adams”)] AND [@name = "firstName" @value = "John"] AND [@name = "age" @value > "25" AND @value < "60"] SORTBY[@name = "year" DESC]
上記は、検索可能なデータサービスの実施形態において使用することができるXpath構文を使用した、例示的な標準的検索式の構文を説明する。しかしながら、検索可能なデータサービスの一部の実施形態は、暗黙的構文を有する非正規化検索式を受け入れ、1つ以上の正規化ルールを使用して、ステートメントを標準形に変換することができる。以下は、非正規化検索式、及び暗黙的構文を標準形に変換するための、対応する例示的な関連正規化ルールの例を示す。ここで留意すべきは、
“unnormalized expression” => [normalized expression]
にあるように、非正規化式は左側に、正規化式は右側に示されることである。
“index > 5” => [@name = "index" @value > "5" ]
“title:‘foo’” => [@name = "title" @value = "foo"]
"NOT keyword:'xxxxxx'" => [ @name = "keyword" NOT(@value = "xxxxxx")]
"title:‘foo’ NOT prefix:‘keyword’" => [ @name = "title" @value = "foo"] AND [ @name = "prefix" NOT (@value = "keyword") ]
"price > 5 AND price < 20 AND available:'yes'" => [ @name = "price" @value > "5" AND @value < "20" ] AND [ @name = "available" @value = "yes" ]
"year < 2010 AND author:'John Doe' sortby price desc" => [@name = "year" @value < "2010"] AND [@name = "author" @value = "John Doe"] SORTBY[@name = "price" DESC]
一実施形態では、検索可能なデータサービスに提出されるクエリは、ここに記載されるように、検索可能なデータサービスのクエリサービスによって処理され、以下の1つ以上を、返された検索結果データの一部として生成することができるが、それらに限定されない。
・クエリ式を満たす1つ以上のエンティティID(eID)のセット。一実施形態では、返されるeIDの数は、所定のページ付けの限度を超えることはできない。
・moreToken:クエリ式を満たすeIDの数が、ページ付けの限度を超えるとき、クライアントに返される不透明なオブジェクト。このトークンは、結果の次のセット(eID)を取り出すために、同じクエリで再実行することができる。
以下は、一実施形態に応じて、一部の例示的な検索可能なデータサービスのクエリサービス使用事例を説明する。ここで留意すべきは、これらの使用事例は、図12に図解するように、例示的なクエリサブシステムのアーキテクチャを意味することができることである。
以下は、一実施形態に応じて、クエリサービスのコンポーネントによって、公開又は要求されてもよい、例示的なインターフェースを説明する。ここで留意すべきは、これらのインターフェースは例示的なものであり、制限することを意図しないことである。
GetQueryNodes ( subscriber identifier, bucket identifier, query-expression )
Query ( queryID, subscriber identifier, bucket identifier, query-expression, more-token, update-cookie)
Query ( queryID, subscriber identifier, bucket identifier, query-expression, more-token, update-cookie)
GetStorageNodes ( subscriber identifier, bucket identifier)
Status (group)
Monitor (group, callback)
検索可能なデータサービスの実施形態は、分散型、非集中的、自動化ストレス管理機構を実装することができる。実施形態では、検索可能なデータサービスにおける各ノードは、できる限りそれ自体のリソースを管理することができる。ノードは、それらのリソース使用を監視することができ、それらのリソース使用について、他のノードの限定されたセットと通信することができる。リソース使用がノード上であまりに高く、コンフォートゾーンから外れる場合、リソースは、ホット状態と見なされ得る。十分に使用されていないリソースは、コールド状態と見なされ得る。各ノードは、そのリソース使用をコンフォートゾーン内にとどめるために実行することができる、アクションを有することができる。
・ストレージ(例えば、ディスク)空間:一部の実施形態は、利用可能なストレージ空間が、コンフォートゾーン内にあるか決定するため目的で、ストレージノード上の利用可能な、及び/又は使用されているストレージ空間の割合を監視することができる
・CPU(プロセッサ)負荷:一部の実施形態は、CPU(プロセッサ)使用を監視することができる。一実施形態は、キューの深さ、及び/又は1つ以上の他のCPU使用評価指標を監視することができる。使用されているノードの潜在的スループットの割合は、CPU使用がコンフォートゾーン内にあるか決定する目的で、監視することができる
・読み込み負荷:一部の実施形態は、ディスク読み込みの数を監視することができる。読み込みは、主としてクエリによって、副次的に「リスト属性」コールによって、決定することができる。実施形態は、これらのコールが静かに損失していないこと、またコールが実行不可能な場合、コールがエラーを返すことを確実にすることができる
・書き込み負荷:一部の実施形態は、ディスク書き込みの数を監視することができる。ホスト/ディスクがあまりに多くの書き込み負荷を有するとき、eID属性の更新は、速度を落とすことができる。実施形態は、書き込みが静かに損失していないこと、またコールが実行不可能な場合、更新がエラーを返すことを確実にすることができる
定義:
Da=すべてのストレージノードにわたる、ディスク使用の平均割合
Dth=ディスク使用閾値。コンフォートゾーンの上限
Dc=コンフォートゾーンの下限
Di=ホストHi上のディスク使用の割合
Pi=Hi上のパーティション
例示的なアルゴリズム:
Da>Dthである場合、ホストを追加する。
Di>Dthである場合、Hiが移動しようと提示するパーティションのリストを公開する。リストは、Hiのパーティションの1つ以上、又はすべてをも含むことができる。
Da<Dcであるときのホストは、それらがDthを超えることなく、受け入れることができるリストからのパーティションをビッドすることができる。
Hiは、
Dc<Di(新)<Dth
移動コストは低い
パーティションは、ほとんどが空き容量のディスクに行くのような1つ以上のビッドを受け入れることができる。
その後、Hiが、Dth未満にさせるビッドを受信しない場合、Hi上のパーティション(一実施形態では、最小のパーティション)を分割し、パーティションの更新されたリストを再提示する。
グループ通信222のコンポーネントは、例えば、検索可能なデータサービスの他のコンポーネントが、インデックス情報の弱一致性の複製データベースを維持することを可能にするために、使用することができる。グループ通信222は、更新を、以下の種類の複製データセットの1つ以上に「運ぶ」ことができるが、それらに限定されない。
・独立したストレージ/インデックス/クエリサブシステムにおける、検索可能なデータサービスのエンティティ
・バケットの区分情報、及び独立したストレージホストの複製グループディレクトリ
・クエリサブシステムのホスト、及び要求ルーター202のホストに関する、グループメンバーシップ情報
図16は、一実施形態に従い、検索可能なデータサービスにある複製グループ300のライフサイクルを例示している。新しいホスト310は、複製グループ300に追加されてもよく、既存ホスト310は、複製グループ300から取り除かれるか、それを中止することができる。新しいホスト310(例えば、ホスト310J)は、320それら自体をプレッジ304として宣言、又は誓約することによって、複製グループ300に追加することができる。誓約されたホスト310(例えば、ホスト310G、及び310H)は、複製されたデータセットへのゴシップされた更新を受信することができる。次に、誓約されたホスト310は、既存複製グループ300のメンバ(例えば、ホスト310F)を選択し、低レベルのアンチエントロピーを実行することができる。誓約されたホスト310はまた、すべての更新を受信することができるため、アンチエントロピーが終了するとき、誓約されたホスト310は、いかなる他の複製グループ300のメンバと同じくらい最新であることが可能であり、したがって、322それら自体を、複製グループ300へと先導することができる。
・snl_hosts:ストレージノードロケータ(snl)を実装するいくつかの、又はすべてのノードを含む。一実施形態では、すべてのコーディネーション、及びクエリ集約サブシステムのノード
・qtsar_hosts:クエリサブシステム内のいくつかの、又はすべてのノードを含む。これは、クエリノードグループとも呼ばれることができる
・coord_datacenter_hosts:所定のデータセンタ内のすべてのコーディネータノード。これは、コーディネータノードグループとも呼ばれることができる
・sn_subscriber_bucket_mask_value_hosts:名前付けされたパーティションに対する、複製グループ。「sn」は、「ストレージノード」を表す。これは、他でパーティショングループと呼ばれるものであるが、ストレージノードグループとも呼ばれることができる
以下は、一実施形態に応じて、検索可能なデータサービスのグループ通信222のコンポーネントによって公開、又は要求することができる、例示的なインターフェース(例えば、コール及びコールバック、内部的及び外部的の両方(ピアツーピア))を説明する。ここで留意すべきは、これらのインターフェースは例示的なものであり、限定することを意図しないということである。他の実施形態は、他のインターフェースを含むことができるか、又はこれらのインターフェースの1つ以上を含まなくてもよい。
コール
constructor(argument(s))
gcast(Group, Msg)
・ホスト:今までのところ更新を認識してきたストレージノードをリストアップする、文字列の配列
・耐久性:メッセージが、最小数のグループメンバに初期に伝えられたかどうか示すブーリアン。システムは、偽が返されても、メッセージを伝達するよう試み続ける
・クッキー:メッセージが、すべてのグループメンバによって認識されたか見るために、後にgsyncに与えられる値
・無効のグループタイプ
・無効のグループ名
gsync(Cookie)
コールバック
apply(Group, Msg)
・OK:より最近指示された変更によって、おそらくは全部ではないが、変更がうまく適用された
・DUP:又は「duplicate」。特定の変更が、すでに受信されている
・LATE:特定の変更が、より最近指示された変更によって、廃棄されている
・Error:エラー理由を与える文字列。Errorによって特定される理由により、変更は適用されることができない。結果として、一実施形態では、低レベルのアンチエントロピーセッションは、自己修復を実行するために、ピアと共に要求することができる
antientropy(Group, Host)
ピアツーピアコールは、検索可能なデータサービスの実装に内部的である。これらのコールは、特定のグループのメンバ間で、又はメンバに行われる。
rumor(Group, Originator, Seqno, OrigVtime, Msg)
request_membership(Group, Mode, Generation, Seqno)
failure(Group, Host, Generation)
fast_anti_entropy(Group, View, SummaryVec, AcknowledgementVec)
一実施形態では、グループヘルス226のコンポーネントは、検索可能なデータサービスの1つ以上の他のコンポーネントが、コンポーネントが監視可能なノードのセットを識別することを可能にすることができる。次に、グループヘルス226のコンポーネントは、それらのノードに関する自動的にリフレッシュされたヘルス情報に対して、他のコンポーネントによってクエリされてもよい。一実施形態では、グループヘルス226のコンポーネントはまた、失敗検出機構として機能することができる。
・プロセッサの使用評価指標−例えば、CPU(プロセッサ)負荷平均/実行キューの深さなど
・ストレージ、及び/又はメモリリソースの使用評価指標−例えば、ディスクI/O、ディスク空き容量、ページング/スワッピング評価指標など
・ネットワーク/帯域リソースの使用評価指標−例えば、ネットワーク通信リソースに対する、ネットワークトラフィック評価指標
以下は、一実施形態に応じて、検索可能なデータサービスのグループヘルス226のコンポーネントによって公開、又は要求されてもよい、例示的なインターフェース(例えば、コール及びコールバック、内部的及び外部的の両方(ピアツーピア))を説明する。ここで留意すべきは、これらのインターフェースは例示的なものであり、限定することを意図しないということである。他の実施形態は、他のインターフェースを含むことができるか、又はこれらのインターフェースの1つ以上を含まなくてもよい。
コール
add(Group, Host)
del(Group, Host)
gdel(Group)
status(Group)
monitor(Group)
unmonitor(Group)
update(Group, Host, Status)
heartbeat(Originator, OrigVtime, StatVec)
・cpu:期間(例えば、1分間)のCPU負荷平均、又は実行キューの深さ
・diskspace:ディスクスペース利用率及び使用法(例えば、ギガバイトで)
・diskio:ディスクI/O操作
・net:ネットワークI/O操作
・mempage:メモリページング
検索可能なデータサービスの一実施形態は、アドミニストレータが、検索可能なデータサービスシステムの動作を監視することを可能にすることができる、管理コンソールを提供することができる。図18は、一実施形態に従い、検索可能なデータサービスシステムの管理コンソールの高レベルアーキテクチャを例示している。管理コンソール400は、検索可能なデータサービスシステム内のホスト410から、情報を収集することができる。検索可能なデータサービスシステムの実装において、単一の事象(例えば、クエリ、又は追加)は、互いに通信するシステム内の多くのホストをもたらすことがある。事象に関する情報、及び事象に続くことができるシステム内の活動(例えば、メッセージ)の結果のカスケードを監視、記録、分析、要約、及び表示することができる管理コンソール400を提供することは、検索可能なデータサービスシステムの様々なフェーズの間、システムモニタリング、最適化、及びトラブルシューティングに有用であることが可能である。
・検索可能なデータサービスホスト間のメッセージを記録、ログ、及び表示する。これらのメッセージは、要求ルーター202間のメッセージ、ストレージノードロケータ216間のメッセージ、クエリノードロケータ220間のメッセージ、eID更新マネージャー230間のメッセージ、要求ルーター202、及びクエリTSAR212間のメッセージ、要求ルーター202、及びeID更新マネージャー230間のメッセージ、クエリTSAR212、及びクエリプロセッサ228間のメッセージ、パーティションマネージャー232、及びストレージノードロケータ216間のメッセージ、パーティションマネージャー232間のメッセージを含むことができるが、それらに限定されない
・検索可能なデータサービスホスト内のモジュール、又はコンポーネント間のメッセージ(例えば、RPCメッセージ)を記録、ログ、及び表示する。これらのメッセージは、要求ルーター202−クエリノードロケータ220のメッセージ、要求ルーター202−ストレージノードロケータ216のメッセージ、パーティションマネージャー232−eID更新マネージャー230のメッセージ、クエリTSAR212−ストレージノードロケータ216のメッセージ、ストレージノードロケータ216−グループメンバーシップ及びヘルス226のメッセージ、クエリノードロケータ220−グループメンバーシップ及びヘルス226のメッセージ、パーティションマネージャー232−グループメンバーシップ及びヘルス226のメッセージ、ストレージノードロケータ216−グループ通信222のメッセージ、及びクエリノードロケータ220−グループ通信222のメッセージを含むことができるが、それらに限定されない
・eIDストア236、及びクエリインデックスストア234の内容を記録、及び表示する
・グループメンバーシップ情報(例えば、snl_hosts、qtsar_hostsなど)を監視、及び表示する
・ストレージノードロケータ216の状況を見る:ホスト、及びパーティション複製間のマッピング
・クエリノードロケータ220の状況を見る:クエリTSARの一貫したハッシングリング
・クエリTSARのクエリキャッシュ214の内容を表示する
・要求ルーター202の状況を見る
・パーティションマネージャー232の状況を見る
・グループメンバーシップのリストを変更する
・2つのノード間のアンチエントロピーを開始する
・システムからのリソースを追加、又は除外する
・1つ以上のノードを、一時的に、又は永久的に停止する
readMsg(String msg)
startMon(String host, int port)
stopMon(String host, int port)
stopAllMon()
enableComp(String componentName)
enableAllComp()
disableComp(String componentName)
disableAllComp()
検索可能なデータサービスのホスト410上のローカル管理412のモジュールは、遠隔管理402のアプリケーション、及びローカルコンポーネント414間の仲介としての機能を果たす。ローカル管理412のモジュールは、遠隔管理402の接続を待ち、一度遠隔管理402のアプリケーションに接続されると、その遠隔管理402のアプリケーションからの有効/無効コンポーネント414の要求を処理する。また、ローカル管理412のモジュールは、ローカルコンポーネント414の間の検索可能なデータサービスメッセージ上の情報を、遠隔管理402のアプリケーションに転送することができる。
<host/hostname/nodeID>: <Component> <sent/received> on <to/from who> <timestamp>: <msg>
monMsg(String msg)
monBegin(String componentName)
monBeginAll()
monStop(String componentName)
monStopAll()
ローカルコンポーネント414は、ローカル管理412の接続を待つ。一度、ローカル管理412のモジュールに接続されると、ローカルコンポーネント414は、ローカル管理412のモジュールからの有効要求を受信するとき、モニタリングに対するメッセージを、ローカル管理412のモジュールに送信し始めることができる(それは、ローカル管理412のモジュールが、遠隔管理402のアプリケーションからの有効要求を受信するときも、同様に生じる)。ローカルコンポーネント414は、ローカル管理412のモジュールからの無効要求を受信するとき、モニタリングに対するメッセージの送信を停止することができる。
<Component> <sent/received> on <to/from who> <timestamp>: <msg>
monEnable()
monDisable()
sendMsgToMon(String msg)
図19は、一実施形態に従い、ネットワーク環境にある検索可能なデータサービスの実装を例示している。ネットワーク700は、例えば、ワールドワイドウェブ、又はインターネットを表すことができる。又は、ネットワーク700は、ローカルエリアネットワーク(LAN)、又はワイドエリアネットワーク(WAN)を表すことができる。検索可能なデータサービス720は、1つ以上のデータセンタ710(例えば、データセンタ710A、及び710B)にわたって実装されてもよい。データセンタ710は、コンピュータデバイスのローカルコレクションを表し、それは、サーバシステム、及びストレージデバイスを含むことができるが、それらに限定されない。データセンタ710は、地理的に分散されてもよい。ここで留意すべきは、データセンタ710内のすべてのコンピュータデバイスが、検索可能なデータサービス720に参加可能とは限らないことである。
・検索可能なデータサービスクライアントの数
・検索可能なデータサービス加入者に対する、特定の検索可能なインデックスドメインのサイズ、及び/又は、すべての加入者に対するすべてのドメインの全体のサイズ
・各検索可能なデータサービスオブジェクト内の、属性のサイズ及び数
・処理される要求の数(読み込み/書き込みスループット)
・ノードの数(追加のコーディネータノード340は、例えば、負荷バランシングに対して追加されてもよい)
・冗長性要件(いくつのパーティションの複製が必要とされるか)
・可用性、一致性、及び性能全般。全体のシステムの可用性、一致性、及び性能を改善するために、追加のノードは、データセンタ710に追加されてもよく、及び/又は、追加のデータセンタ710は、検索可能なデータサービス720に追加されてもよい。より具体的な例として、データセンタ内の追加のストレージノード360に、又は別の新しく追加されたデータセンタ内のストレージノード360に対して、パーティションを複製することは、さらなる冗長性を提供し、可用性を増大し、負荷バランシングを改善することができる。
一実施形態では、ここに記載されるように、検索可能なデータサービスの1つ以上のコンポーネントを実装するホストシステムは、図20に図解されるホストシステム900などの、1つ以上のコンピュータアクセス可能な媒体を含む、又はそれにアクセスするよう構成される、汎用コンピュータシステムを含むことができる。図解される実施形態では、ホストシステム900は、入力/出力(I/O)インターフェース930を介して、システムメモリ920に結合される、1つ以上のプロセッサ910を含む。コンピュータシステム900は、I/Oインターフェース930に結合される、ネットワークインターフェース940をさらに含む。
様々な実施形態は、コンピュータアクセス可能ストレージ媒体に関する前述の説明に従って実装される、インストラクション、及び/又はデータを受信、送信、又は保存するステップを、さらに含むことができる。一般的に言えば、コンピュータアクセス可能ストレージ媒体は、例えば、ディスク、又はDVD/CD−ROMなどの磁気、又は光媒体、RAM(例えば、SDRAM、DDR、RDRAM、SRAMなど)、ROMなどの揮発性、又は不揮発性媒体などの、ストレージ媒体、又はメモリ媒体を含むことができる。ネットワーク、及び/又は無線リンクなどの通信媒体を介して送られる、電気、電磁、又はデジタル信号などの、伝送媒体又は信号も同様である。
Claims (20)
- 検索可能なデータサービスにウェブサービスインターフェースを提供するウェブサービスプラットフォームを実装する1つまたは複数のコンピュータデバイスであって、前記ウェブサービスプラットフォームは、前記ウェブサービスインターフェ−スに従って、クライアントアプリケーションからサービス要求を受信するように構成され、前記サービス要求はクエリ要求とストレージ要求を備え、前記ウェブサービスインターフェースは前記クエリ要求及び前記ストレージ要求を送信するために複数のクライアントアプリケーションに対し共通のメッセージのエンドポイントを提供する、1つまたは複数のコンピュータデバイスと、
前記検索可能なデータサービスに関与するように構成された複数のノードを実装するような複数のコンピュータデバイスと、
を具備し、前記複数のノードを実装することによって、
前記クライアントアプリケーションで使用される複数の独立した複数のデータストアに関する検索可能な各インデックスにおける要求を格納し、前記検索可能なインデックスは前記複数のノード上にあり、前記データストアはネットワーク上にある1つまたは複数のそれぞれのストレージデバイス上に存在し、かつ前記検索可能なデータサービスに関与するように構成された前記複数のノードを実装する前記1つまたは複数のコンピュータデバイスから離れており、それぞれの検索可能なインデックスは、各検索可能なインデックスが前記複数の独立したデータストアのうちのたった1つの完全なインデックスを提供できるように、前記複数の独立したデータストアのうち特定の1つに関する検索可能なデータサービスオブジェクトを格納し、それぞれの検索可能なデータサービスオブジェクトは特定のデータストアにおける特定のエンティティの2つ以上の属性を指定し、前記属性は前記特定のデータストアにおける前記特定のエンティティを配置する固有のエンティティ識別子を有し、
前記検索可能なインデックスのうちの1つを特定する受信したクエリ要求を満たす前記検索可能なインデックスから、1つまたは複数の検索可能なデータサービスオブジェクトのセットを配置し、
前記ウェブサービスインターフェースに従って、前記クエリ要求を満たす前記1つまたは複数の検索可能なデータサービスオブジェクトのセットから、前記クライアントアプリケーションに対して少なくとも1つの前記エンティティ識別子を返す、
ことを特徴とするシステム。 - 前記複数のノードは、
前記検索可能なインデックスを持続的に保存するように構成される1つまたは複数のストレージノードと、
前回のクエリ要求への応答のローカルクエリキャッシュを維持するようにそれぞれ構成された1つまたは複数のクエリノードと、
1つまたは複数のコーディネータノードと、
から構成され、それぞれのコーディネータノードは、
前記ウェブサービスプラットフォームからのサービス要求を受信し、
各ストレージ要求を1つまたは複数の前記ストレージノードに転送し、
各クエリ要求を1つまたは複数の前記クエリノード転送する、
ように構成されることを特徴とする請求項1に記載のシステム。 - 前記1つまたは複数のストレージノードのそれぞれは、
コーディネータノードからストレージ要求を受信し、
前記ストレージ要求に指定された検索可能なデータサービスオブジェクトを前記検索可能なインデックスに加える
ように構成されることを特徴とする請求項2に記載のシステム。 - 前記1つまたは複数のストレージノードのそれぞれは、
コーディネータノードからストレージ要求を受信し、
前記ストレージ要求に指定されるような特定の前記検索可能なインデックスに保存される検索可能なデータサービスオブジェクトを修正する
ように構成されることを特徴とする請求項2に記載のシステム。 - 前記1つまたは複数のストレージノードのそれぞれは、
コーディネータノードからストレージ要求を受信し、
前記ストレージ要求に指定されるような前記検索可能なインデックスから検索可能なデータサービスオブジェクトの少なくとも一部を削除する
ように構成されることを特徴とする請求項2に記載のシステム。 - 前記クエリノードのそれぞれは、
コーディネータノードからクエリ要求を受信し、
前記ローカルクエリキャッシュから前記クエリ要求を満たすことが出来るかどうかを判断するために、前記クエリノード上の前記ローカルクエリキャッシュにアクセスし、
前記ローカルクエリキャッシュから前記クエリ要求を満たすことができる場合、前記ウェブサービスインターフェースに従い、前記クライアントアプリケーションに、前記クエリ要求を満たす前記ローカルクエリキャッシュからの1つまたは複数の検索可能なデータサービスオブジェクトのセットから少なくとも識別子を返し、
前記ローカルクエリキャッシュから前記クエリ要求が満たされない場合には、前記クエリ要求を1つまたは複数の前記ストレージノードに転送する
ように構成されることを特徴とする請求項2に記載のシステム。 - 前記1つまたは複数のストレージノードのそれぞれは、
クエリノードからクエリ要求を受信し、
前記クエリ要求を満たす特定の検索可能なインデックスに、1つまたは複数の検索可能なデータサービスオブジェクトのセットを配置するために、前記ストレージノードによって持続的に保存される前記検索可能なインデックスのパーティションを検索し、
前記ウェブサービスインターフェースに従い、前記クライアントアプリケーションに前記クエリ要求を満たす1つまたは複数の検索可能なデータサービスオブジェクトの前記セットから少なくとも前記エンティティ識別子を返す
ように構成されることを特徴とする請求項6に記載のシステム。 - 前記クエリノードのそれぞれは、
コーディネータノードからクエリ要求を受信し、
前記検索可能なインデックスの異なるパーティションであって、前記クエリ要求の範囲内にある、特定の検索可能なインデックスの異なるパーティションを、それぞれ持続的に保存する、2つ以上の前記ストレージノードに前記クエリ要求を転送し、
前記クエリ要求が転送された前記2つ以上のストレージノードのそれぞれからの前記クエリ要求を満たす前記特定の検索可能なインデックスから、検索可能なデータサービスオブジェクトの異なるセットを受信し、
検索可能なデータサービスオブジェクトの前記異なる複数のセットをマージし、
前記ウェブサービスインターフェースに従い、前記クライアントアプリケーションに検索可能なデータサービスオブジェクトの前記マージされたセットから少なくとも前記エンティティ識別子を返す
ように構成されることを特徴とする請求項2に記載のシステム。 - 前記クエリノードのそれぞれは、
コーディネータノードからクエリ要求を受信し、
1つまたは複数の前記ストレージノードに前記クエリ要求を転送し、
前記クエリ要求が転送された1つまたは複数のストレージノードのうちの少なくとも1つからの前記クエリ要求を満たす特定の検索可能なインデックスから検索可能なデータサービスオブジェクトを受信し、
前記クエリ要求におけるソート仕様に従い、前記受信した検索可能なデータサービスオブジェクトをソートし、
前記ウェブサービスインターフェースとソートされた順序に従い、前記ソートされた検索可能なデータサービスオブジェクトから前記クライアントアプリケーションに少なくとも前記エンティティ識別子を返す
ように構成されることを特徴とする請求項2に記載のシステム。 - 前記複数のノードは2つ以上のストレージノードを備え、それぞれが
特定の検索可能なインデックスのパーティションを持続的に保存し、
2つ以上の新しいパーティションであって、それぞれが、前記検索可能なインデックスに保存された前記検索可能なデータサービスオブジェクトの異なるサブセットを含む、2つ以上の新しいパーティションを前記ストレージノード上に生成するために前記パーティションを再区分し、
前記2つ以上の新しいパーティションのうちの1つを自ら受信する別のストレージノードを配置するため、前記ストレージノードのその他と通信し、
前記2つ以上の新しいパーティションのうちの1つを、前記他のストレージノードに移動するために、前記他のストレージノードと協力する
ように構成されることを特徴とする請求項1に記載のシステム。 - 前記複数のノードは、2つ以上のストレージノードを備え、それぞれが、
特定の検索可能なインデックスのパーティションを持続的に保存し、
前記パーティションの複製を自ら受信するもう1つのストレージノードを配置するため、1つまたは複数の他の前記ストレージノードと通信し、
前記他のストレージノードに前記パーティションを複製するために、前記他のストレージノードと協力する
ように構成されることを特徴とする請求項1に記載のシステム。 - 前記複数のノードが2つ以上のストレージノードを備え、それぞれが
特定の検索可能なインデックスのパーティションを持続的に保存し、
アンチエントロピープロトコルに従い、前記パーティションを別のストレージノードに複製し、
前記他のストレージノードに前記パーティションの前記複製を更新するための、ゴシッププロトコルに従い、前記他のストレージノードに前記複製されたアプリケーションに対する次のストレージ要求を通信する
ように構成されることを特徴とする請求項1に記載のシステム。 - 各クエリ要求は、
前記検索可能なデータサービスにおける特定の検索可能なインデックスを識別するバケット識別子であって、バケットが前記検索可能なデータサービスにするクエリ要求の範囲を確定する、バケット識別子と、
前記クエリ式を満たす検索可能なデータサービスオブジェクトを位置付けるため、前記バケット識別子によって識別される前記検索可能なインデックスの特定された属性に適応される1つまたは複数の検索基準を特定する、クエリ式と
を含むことを特徴とする請求項1に記載のシステム。 - 各クエリ要求は、前記検索可能なデータサービスに対し、特定の加入者を個別に識別する加入者識別子をさらに含み、各加入者識別子が前記検索可能なデータサービスの1つまたは複数のバケット識別子と関連し、各バケット識別子が正確に1人の加入者と関連することを特徴とする請求項13に記載のシステム。
- クエリ式は、
前記特定の検索可能なインデックスの検索可能なデータサービスオブジェクトの1つまたは複数の以上の属性と、
前記特定の検索可能なインデックスの前記クエリ式を満たす検索可能なデータサービスオブジェクトのセットを位置付けるため、前記クエリ式の前記1つ以上の属性に適応される1つまたは複数の演算子と、
を含むことを特徴とする請求項13に記載のシステム。 - 前記複数のノードは、2つ以上のデータセンタの間で分散されることを特徴とする請求項1に記載のシステム。
- 前記複数のノードは複数のストレージを備え、前記複数のストレージノードは2つ以上のデータセンタ間で分散され、各データセンタは2つ以上の前記複数のストレージノードを備え、
前記データセンタにおいて前記ストレージノードの少なくとも2つが特定の検索可能なインデックスのパーティションの複製を持続的に保存し、
少なくとも1つの他のデータセンタにおいて少なくとも2つの他のストレージノードが前記特定の検索可能なインデックスの前記パーティションの複製を持続的に保存することを特徴とする請求項1に記載のシステム。 - 前記複数のノードのそれぞれは、ゴシッププロトコルに従い前記複数のノードのその他に検索可能なデータサービス情報を伝播するように構成されることを特徴とする請求項1に記載のシステム。
- 検索可能なデータサービスへのウェブサービスプラットフォームを実装する1つまたは複数のコンピュータデバイスにより、
−ウェブサービスインターフェースに従い、複数のクライアントアプリケーションからのサービス要求を受信するステップであって、前記サービス要求はクエリ要求及びストレージ要求を備え、当該ステップは前記クエリ要求及び前記ストレージ要求を送信するために前記ウェブサービスインターフェースによって提供される共通のメッセージのエンドポイントで前記クエリ要求及び前記ストレージ要求を受信するステップをさらに含む、サービス要求を受信するステップと、
−前記検索可能なデータサービスに関与するように構成される複数のノードを実装する複数のコンピュータデバイスのうちの1つに、各サービス要求を転送するステップと、
前記複数のノードを実装する複数のコンピュータデバイスにより、
−前記クライアントアプリケーションによって使用される複数の独立したデータストアに関する、検索可能なインデックスにある前記ストレージ要求で指定された検索可能なデータサービスオブジェクトを保存するために、受信したストレージ要求を処理するステップと、
−前記クエリ要求を満たす前記検索可能なインデックスのうち1つから、1つまたは複数の検索可能なサービスオブェクトのセットを配置するため、受信した前記クエリ要求を処理するステップであって、前記受信したクエリ要求のそれぞれは、対応する前記検索可能なインデックスのうち1つを指定する、ステップと、
−前記ウェブサービスインターフェースに従って、前記クエリ要求を満たす1つまたは複数の検索可能なデータサービスオブジェクトのセットから、少なくとも前記エンティティ識別子を対応する前記クライアントアプリケーションへ返すステップと、
から成り、
前記検索可能なインデックスは前記複数のノードを実装する複数のコンピュータデバイス上にあり、前記データストアはネットワーク上の1つまたは複数のストレージデバイスのそれぞれに存在し、且つ前記検索可能なデータサービスに関与するように構成された前記複数のノードを実装する前記複数のコンピュータデバイスからは離れており、各々の検索可能なインデックスが前記独立したデータストアのうちの1つのみに関する完全なインデックスを提供できるように、各検索可能なインデックスは前記複数の独立したデータストアのうち特定の1つに関する検索可能なデータサービスオブジェクトを格納し、各々の検索可能なデータサービスオブジェクトは、特定のデータストアにおける特定のエンティティの2つ以上の属性を特定し、前記属性は前記データストアにおける前記特定のエンティティを配置するための固有のエンティティ識別子を含むことを特徴とする方法。 - 複数のクライアントアプリケーションからサービス要求を受信するよう構成された、ウェブサービスプラットフォームを実装する1つまたは複数のコンピュータデバイスであって、前記ウェブサービスプラットフォームは、検索可能なデータサービスへウェブサービスインターフェースを提供するように構成され、前記サービス要求はクエリ要求及びストレージ要求を備え、前記ウェブサービスインターフェースは、前記クエリ要求及び前記ストレージ要求を送信するために、前記複数のクライアントアプリケーションに対して共通のメッセージのエンドポイントを提供するものである、前記1つまたは複数のコンピュータデバイスと、
前記検索可能なデータサービスに関与するように構成される複数のノードを実装する複数のコンピュータデバイスであって、
−前記クライアントアプリケーションによって使用される複数の独立したデータストアに関する、検索可能なインデックスにある前記ストレージ要求で指定された検索可能なデータサービスオブジェクトを保存するために、受信したストレージ要求を処理するステップと、
−前記クエリ要求を満たす前記検索可能なインデックスのうち1つから、1つまたは複数の検索可能なサービスオブェクトのセットを配置するため、受信した前記クエリ要求を処理するステップであって、前記受信したクエリ要求は、対応する前記検索可能なインデックスのうち1つを指定する、ステップと、
−前記ウェブサービスプラットフォームにより提供される前記ウェブサービスインターフェースに従って、前記クエリ要求を満たす1つまたは複数の検索可能なデータサービスオブジェクトのセットから、少なくとも前記エンティティ識別子を前記クライアントアプリケーションのそれぞれへ返すステップと、
を実行する、前記複数のコンピュータデバイスと、
を備え、
前記検索可能なインデックスは前記複数のノードを実装する複数のコンピュータデバイス上にあり、前記データストアはネットワーク上の1つまたは複数のストレージデバイスのそれぞれに存在し、且つ前記検索可能なデータサービスに関与するように構成された前記複数のノードを実装する複数のコンピュータデバイスからは離れており、各々の検索可能なインデックスが前記独立したデータストアのうちの1つのみに関する完全なインデックスを提供できるように、各検索可能なインデックスは前記複数の独立したデータストアのうち特定の1つに関する検索可能なデータサービスオブジェクトを格納し、各々の検索可能なデータサービスオブジェクトは、特定のデータストアにおける特定のエンティティの2つ以上の属性を特定し、前記属性は前記データストアにおける前記特定のエンティティを配置するための固有のエンティティ識別子を含む、
ことを特徴とするシステム。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US75477705P | 2005-12-29 | 2005-12-29 | |
| US60/754,777 | 2005-12-29 | ||
| US11/392,482 | 2006-03-29 | ||
| US11/392,482 US7801912B2 (en) | 2005-12-29 | 2006-03-29 | Method and apparatus for a searchable data service |
| PCT/US2006/061435 WO2007079303A2 (en) | 2005-12-29 | 2006-11-30 | Method and apparatus for a distributed file storage and indexing service |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2009522660A JP2009522660A (ja) | 2009-06-11 |
| JP2009522660A5 JP2009522660A5 (ja) | 2010-01-21 |
| JP5118059B2 true JP5118059B2 (ja) | 2013-01-16 |
Family
ID=38007272
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008548794A Active JP5118059B2 (ja) | 2005-12-29 | 2006-11-30 | 検索可能なデータサービスのための方法及び装置 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US7801912B2 (ja) |
| EP (2) | EP1974295B1 (ja) |
| JP (1) | JP5118059B2 (ja) |
| KR (4) | KR101543308B1 (ja) |
| CA (1) | CA2635400C (ja) |
| MX (1) | MX2008008509A (ja) |
| WO (1) | WO2007079303A2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9936011B2 (en) | 2014-04-24 | 2018-04-03 | Casio Computer Co., Ltd | Distributed database, method of sharing data, program storing medium, and apparatus for a distributed database |
Families Citing this family (448)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6973654B1 (en) * | 2003-05-27 | 2005-12-06 | Microsoft Corporation | Systems and methods for the repartitioning of data |
| US8638779B2 (en) * | 2004-02-24 | 2014-01-28 | Itxc Ip Holdings Sarl | Methods and apparatus for managing voice over IP telephony |
| US7496500B2 (en) * | 2004-03-01 | 2009-02-24 | Microsoft Corporation | Systems and methods that determine intent of data and respond to the data based on the intent |
| US7539661B2 (en) * | 2005-06-02 | 2009-05-26 | Delphi Technologies, Inc. | Table look-up method with adaptive hashing |
| US7921165B2 (en) * | 2005-11-30 | 2011-04-05 | Microsoft Corporation | Retaining mail for availability after relay |
| US7716180B2 (en) * | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
| US20070192706A1 (en) * | 2006-02-14 | 2007-08-16 | International Business Machines Corporation | Service gateway for providing a scalable and loosely coupled service oriented architecture |
| US7285791B2 (en) * | 2006-03-24 | 2007-10-23 | Goldeneye, Inc. | Wavelength conversion chip for use in solid-state lighting and method for making same |
| US7689580B2 (en) * | 2006-03-27 | 2010-03-30 | Oracle International Corporation | Search based application development framework |
| US7899780B1 (en) * | 2006-03-30 | 2011-03-01 | Emc Corporation | Methods and apparatus for structured partitioning of management information |
| US7681011B1 (en) * | 2006-03-30 | 2010-03-16 | Emc Corporation | Methods and apparatus for partitioning management information |
| US7480817B2 (en) * | 2006-03-31 | 2009-01-20 | International Business Machines Corporation | Method for replicating data based on probability of concurrent failure |
| JP2007279838A (ja) * | 2006-04-03 | 2007-10-25 | Ibm Japan Ltd | 情報処理装置、方法およびプログラム |
| US8384700B2 (en) | 2007-01-26 | 2013-02-26 | Microsoft Corporation | Linked shell |
| US7805425B2 (en) | 2006-04-28 | 2010-09-28 | Microsoft Corporation | Efficient database lookup operations |
| US7698258B2 (en) * | 2006-06-02 | 2010-04-13 | Microsoft Corporation | Searchable storage system |
| US20080010238A1 (en) * | 2006-07-07 | 2008-01-10 | Microsoft Corporation | Index having short-term portion and long-term portion |
| US8423569B2 (en) | 2006-08-09 | 2013-04-16 | International Business Machines Corporation | Decomposed query conditions |
| US8849961B2 (en) * | 2006-09-06 | 2014-09-30 | Nokia Corporation | Mobile network optimized method for keeping an application IP connection always on |
| US7680782B2 (en) * | 2006-10-18 | 2010-03-16 | International Business Machines Corporation | Method to generate semantically valid queries in the XQuery language |
| US20080140826A1 (en) * | 2006-12-08 | 2008-06-12 | Microsoft Corporation | Monitoring and controlling electronic message distribution |
| CN101005606B (zh) * | 2006-12-31 | 2012-07-04 | 华为技术有限公司 | 一种减少媒体播放延时的方法和装置 |
| US7925900B2 (en) | 2007-01-26 | 2011-04-12 | Microsoft Corporation | I/O co-processor coupled hybrid computing device |
| US20080228828A1 (en) * | 2007-03-16 | 2008-09-18 | Microsoft Corporation | Management of collections within a data storage system |
| JP4702314B2 (ja) * | 2007-03-23 | 2011-06-15 | ブラザー工業株式会社 | コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びコンテンツデータ取得方法 |
| GB2443580B (en) * | 2007-05-18 | 2008-07-30 | Cvon Innovations Ltd | Access system and method |
| US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
| US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
| US20090094268A1 (en) * | 2007-10-04 | 2009-04-09 | Yahoo! Inc. | Animated data feeds |
| US9147213B2 (en) | 2007-10-26 | 2015-09-29 | Zazzle Inc. | Visualizing a custom product in situ |
| CN101159533A (zh) * | 2007-11-06 | 2008-04-09 | 中兴通讯股份有限公司 | 一种分组传送网中时钟链路自动保护的方法 |
| US7849067B2 (en) * | 2008-01-31 | 2010-12-07 | Microsoft Corporation | Extensible data provider querying and scheduling system |
| JP2011511366A (ja) * | 2008-02-01 | 2011-04-07 | ジ・オリバー・グループ・リミテッド・ライアビリティ・カンパニー | データの検索および索引付けの方法およびそれを実施するシステム |
| CN101516131B (zh) * | 2008-02-18 | 2012-04-04 | 华为技术有限公司 | 一种数据同步的方法、系统和装置 |
| US8380662B2 (en) * | 2008-02-26 | 2013-02-19 | Red Hat, Inc. | Setting time from a NFS server |
| US8825792B1 (en) * | 2008-03-11 | 2014-09-02 | United Services Automobile Association (Usaa) | Systems and methods for online brand continuity |
| US8621598B2 (en) * | 2008-03-12 | 2013-12-31 | Intuit Inc. | Method and apparatus for securely invoking a rest API |
| CN101247370B (zh) * | 2008-03-14 | 2010-09-29 | 中国网通集团宽带业务应用国家工程实验室有限公司 | 消息呈现业务的实现方法和系统 |
| US8065327B2 (en) | 2008-03-15 | 2011-11-22 | Microsoft Corporation | Management of collections of websites |
| US20090234858A1 (en) * | 2008-03-15 | 2009-09-17 | Microsoft Corporation | Use Of A Single Service Application Instance For Multiple Data Center Subscribers |
| US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
| US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
| US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
| US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
| US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
| US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
| US9304785B2 (en) * | 2008-06-02 | 2016-04-05 | International Business Machines Corporation | Localizing a software product |
| US8370417B2 (en) * | 2008-06-30 | 2013-02-05 | Motorola Solutions, Inc. | Method for peer to peer subscriber registration and affiliation |
| US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
| US20100076952A1 (en) * | 2008-09-05 | 2010-03-25 | Xuejun Wang | Self contained multi-dimensional traffic data reporting and analysis in a large scale search hosting system |
| US8290923B2 (en) * | 2008-09-05 | 2012-10-16 | Yahoo! Inc. | Performing large scale structured search allowing partial schema changes without system downtime |
| US8429194B2 (en) | 2008-09-15 | 2013-04-23 | Palantir Technologies, Inc. | Document-based workflows |
| US9996572B2 (en) * | 2008-10-24 | 2018-06-12 | Microsoft Technology Licensing, Llc | Partition management in a partitioned, scalable, and available structured storage |
| US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
| US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
| US8572110B2 (en) | 2008-12-04 | 2013-10-29 | Microsoft Corporation | Textual search for numerical properties |
| US8489721B1 (en) * | 2008-12-30 | 2013-07-16 | Symantec Corporation | Method and apparatus for providing high availabilty to service groups within a datacenter |
| US9239994B2 (en) * | 2009-02-25 | 2016-01-19 | Empire Technology Development Llc | Data centers task mapping |
| US20100251227A1 (en) * | 2009-03-25 | 2010-09-30 | Microsoft Corporation | Binary resource format and compiler |
| US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
| US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
| US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
| US9207984B2 (en) | 2009-03-31 | 2015-12-08 | Amazon Technologies, Inc. | Monitoring and automatic scaling of data volumes |
| US20100269111A1 (en) * | 2009-04-21 | 2010-10-21 | Thomas Martin Conte | Task management |
| US8095561B2 (en) * | 2009-04-23 | 2012-01-10 | Microsoft Corporation | Extensible framework for data import and export |
| US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
| CN103488680B (zh) * | 2009-06-19 | 2017-09-29 | 国际商业机器公司 | 在数据库系统中计数项目的方法 |
| US8259588B2 (en) * | 2009-06-24 | 2012-09-04 | Oracle International Corporation | System and method for processing communications using service interceptors |
| US8521771B1 (en) * | 2009-07-31 | 2013-08-27 | Amazon Technologies, Inc. | Management of class-associated object mapping information corresponding to a distributed storage system |
| US8621182B1 (en) | 2009-07-31 | 2013-12-31 | Amazon Technologies, Inc. | Management of object mapping information corresponding to a distributed storage system |
| US8285925B1 (en) | 2009-07-31 | 2012-10-09 | Amazon Technologies, Inc. | Management of object mapping information corresponding to a distributed storage system |
| US8639724B1 (en) | 2009-07-31 | 2014-01-28 | Amazon Technologies, Inc. | Management of cached object mapping information corresponding to a distributed storage system |
| US8316213B1 (en) | 2009-07-31 | 2012-11-20 | Amazon Technologies, Inc. | Management of object mapping information corresponding to a distributed storage system |
| US8321435B2 (en) * | 2009-08-12 | 2012-11-27 | Apple Inc. | Quick find for data fields |
| US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
| US8433771B1 (en) * | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
| US9135283B2 (en) * | 2009-10-07 | 2015-09-15 | Amazon Technologies, Inc. | Self-service configuration for data environment |
| US8335765B2 (en) | 2009-10-26 | 2012-12-18 | Amazon Technologies, Inc. | Provisioning and managing replicated data instances |
| US8346722B2 (en) * | 2009-11-23 | 2013-01-01 | Sap Ag | Replica placement strategy for distributed data persistence |
| US8645660B2 (en) * | 2009-12-10 | 2014-02-04 | Microsoft Corporation | Automatic allocation of data replicas |
| US9021046B2 (en) * | 2010-01-15 | 2015-04-28 | Joyent, Inc | Provisioning server resources in a cloud resource |
| US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
| US8561021B2 (en) * | 2010-02-08 | 2013-10-15 | Microsoft Corporation | Test code qualitative evaluation |
| US8370316B2 (en) * | 2010-07-12 | 2013-02-05 | Sap Ag | Hash-join in parallel computation environments |
| US8775425B2 (en) * | 2010-08-24 | 2014-07-08 | International Business Machines Corporation | Systems and methods for massive structured data management over cloud aware distributed file system |
| US8768981B1 (en) * | 2010-08-27 | 2014-07-01 | Disney Enterprises, Inc. | System and method for distributing and accessing files in a distributed storage system |
| US8751513B2 (en) | 2010-08-31 | 2014-06-10 | Apple Inc. | Indexing and tag generation of content for optimal delivery of invitational content |
| US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
| US8379525B2 (en) * | 2010-09-28 | 2013-02-19 | Microsoft Corporation | Techniques to support large numbers of subscribers to a real-time event |
| US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
| US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
| US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
| US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
| US9152683B2 (en) * | 2010-10-05 | 2015-10-06 | International Business Machines Corporation | Database-transparent near online archiving and retrieval of data |
| US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
| US8606771B2 (en) | 2010-12-21 | 2013-12-10 | Microsoft Corporation | Efficient indexing of error tolerant set containment |
| US8874505B2 (en) * | 2011-01-11 | 2014-10-28 | Hitachi, Ltd. | Data replication and failure recovery method for distributed key-value store |
| US8538926B2 (en) * | 2011-03-08 | 2013-09-17 | Rackspace Us, Inc. | Massively scalable object storage system for storing object replicas |
| US8555276B2 (en) | 2011-03-11 | 2013-10-08 | Joyent, Inc. | Systems and methods for transparently optimizing workloads |
| US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
| US8719316B2 (en) | 2011-05-13 | 2014-05-06 | Microsoft Corporation | Write agent delayed write to data stores |
| US9092482B2 (en) | 2013-03-14 | 2015-07-28 | Palantir Technologies, Inc. | Fair scheduling for mixed-query loads |
| US8601000B1 (en) | 2011-06-27 | 2013-12-03 | Amazon Technologies, Inc. | System and method for conditionally updating an item with attribute granularity |
| US8572091B1 (en) | 2011-06-27 | 2013-10-29 | Amazon Technologies, Inc. | System and method for partitioning and indexing table data using a composite primary key |
| US8595267B2 (en) | 2011-06-27 | 2013-11-26 | Amazon Technologies, Inc. | System and method for implementing a scalable data storage service |
| US10754813B1 (en) | 2011-06-30 | 2020-08-25 | Amazon Technologies, Inc. | Methods and apparatus for block storage I/O operations in a storage gateway |
| US9294564B2 (en) | 2011-06-30 | 2016-03-22 | Amazon Technologies, Inc. | Shadowing storage gateway |
| US8832039B1 (en) | 2011-06-30 | 2014-09-09 | Amazon Technologies, Inc. | Methods and apparatus for data restore and recovery from a remote data store |
| US9052831B1 (en) | 2011-06-30 | 2015-06-09 | Amazon Technologies, Inc. | System and method for performing live partitioning in a data store |
| US10877669B1 (en) | 2011-06-30 | 2020-12-29 | Amazon Technologies, Inc. | System and method for providing a committed throughput level in a data store |
| US8706834B2 (en) | 2011-06-30 | 2014-04-22 | Amazon Technologies, Inc. | Methods and apparatus for remotely updating executing processes |
| US8732517B1 (en) | 2011-06-30 | 2014-05-20 | Amazon Technologies, Inc. | System and method for performing replica copying using a physical copy mechanism |
| US8806588B2 (en) | 2011-06-30 | 2014-08-12 | Amazon Technologies, Inc. | Storage gateway activation process |
| US8601134B1 (en) | 2011-06-30 | 2013-12-03 | Amazon Technologies, Inc. | Remote storage gateway management using gateway-initiated connections |
| US8639921B1 (en) | 2011-06-30 | 2014-01-28 | Amazon Technologies, Inc. | Storage gateway security model |
| US8639989B1 (en) | 2011-06-30 | 2014-01-28 | Amazon Technologies, Inc. | Methods and apparatus for remote gateway monitoring and diagnostics |
| US8538929B2 (en) * | 2011-07-07 | 2013-09-17 | International Business Machines Corporation | Archiving de-duplicated data on tape storage media using graph partitions |
| US8793343B1 (en) | 2011-08-18 | 2014-07-29 | Amazon Technologies, Inc. | Redundant storage gateways |
| US8732574B2 (en) | 2011-08-25 | 2014-05-20 | Palantir Technologies, Inc. | System and method for parameterizing documents for automatic workflow generation |
| WO2013033644A1 (en) | 2011-08-31 | 2013-03-07 | Zazzle.Com, Inc. | Tiling process for digital image retrieval |
| US8504542B2 (en) | 2011-09-02 | 2013-08-06 | Palantir Technologies, Inc. | Multi-row transactions |
| US8868546B2 (en) * | 2011-09-15 | 2014-10-21 | Oracle International Corporation | Query explain plan in a distributed data management system |
| JP6135509B2 (ja) * | 2011-09-27 | 2017-05-31 | 日本電気株式会社 | 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造 |
| US8429162B1 (en) | 2011-09-27 | 2013-04-23 | Amazon Technologies, Inc. | Facilitating data redistribution in database sharding |
| JP6094487B2 (ja) * | 2011-09-27 | 2017-03-15 | 日本電気株式会社 | 情報システム、管理装置、データ処理方法、データ構造、プログラム、および記録媒体 |
| US8433702B1 (en) * | 2011-09-28 | 2013-04-30 | Palantir Technologies, Inc. | Horizon histogram optimizations |
| US8560494B1 (en) | 2011-09-30 | 2013-10-15 | Palantir Technologies, Inc. | Visual data importer |
| US8789208B1 (en) | 2011-10-04 | 2014-07-22 | Amazon Technologies, Inc. | Methods and apparatus for controlling snapshot exports |
| US8849776B2 (en) * | 2011-10-17 | 2014-09-30 | Yahoo! Inc. | Method and system for resolving data inconsistency |
| US9148381B2 (en) | 2011-10-21 | 2015-09-29 | Qualcomm Incorporated | Cloud computing enhanced gateway for communication networks |
| US9116893B2 (en) * | 2011-10-21 | 2015-08-25 | Qualcomm Incorporated | Network connected media gateway for communication networks |
| US9183407B2 (en) * | 2011-10-28 | 2015-11-10 | Microsoft Technology Licensing Llc | Permission based query processing |
| US9635132B1 (en) | 2011-12-15 | 2017-04-25 | Amazon Technologies, Inc. | Service and APIs for remote volume-based block storage |
| US8782224B2 (en) | 2011-12-29 | 2014-07-15 | Joyent, Inc. | Systems and methods for time-based dynamic allocation of resource management |
| US9069827B1 (en) | 2012-01-17 | 2015-06-30 | Amazon Technologies, Inc. | System and method for adjusting membership of a data replication group |
| US9116862B1 (en) | 2012-01-17 | 2015-08-25 | Amazon Technologies, Inc. | System and method for data replication using a single master failover protocol |
| US8843441B1 (en) | 2012-01-17 | 2014-09-23 | Amazon Technologies, Inc. | System and method for maintaining a master replica for reads and writes in a data store |
| US8930312B1 (en) | 2012-01-17 | 2015-01-06 | Amazon Technologies, Inc. | System and method for splitting a replicated data partition |
| EP2711841A4 (en) * | 2012-01-19 | 2014-07-30 | Huawei Tech Co Ltd | METHOD, DEVICE AND SYSTEM FOR PROCESSING DATA BASED ON BLOCK MEMORY |
| US9378526B2 (en) | 2012-03-02 | 2016-06-28 | Palantir Technologies, Inc. | System and method for accessing data objects via remote references |
| US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
| JP5844895B2 (ja) * | 2012-05-24 | 2016-01-20 | 株式会社日立製作所 | データの分散検索システム、データの分散検索方法及び管理計算機 |
| US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
| US9270793B2 (en) | 2012-06-19 | 2016-02-23 | Microsoft Technology Licensing, Llc | Enhanced data protection for message volumes |
| US10031978B1 (en) * | 2012-06-29 | 2018-07-24 | Open Text Corporation | Methods and systems for providing a search service application |
| US10157229B1 (en) | 2012-06-29 | 2018-12-18 | Open Text Corporation | Methods and systems for building a search service application |
| US8949653B1 (en) * | 2012-08-03 | 2015-02-03 | Symantec Corporation | Evaluating high-availability configuration |
| US10325324B2 (en) * | 2012-08-28 | 2019-06-18 | Facebook, Inc. | Social context for offsite advertisements |
| US8990176B2 (en) * | 2012-09-10 | 2015-03-24 | Microsoft Technology Licensing, Llc | Managing a search index |
| US9798768B2 (en) | 2012-09-10 | 2017-10-24 | Palantir Technologies, Inc. | Search around visual queries |
| US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
| CN102831253B (zh) * | 2012-09-25 | 2015-01-21 | 北京科东电力控制系统有限责任公司 | 一种分布式全文检索系统 |
| US8954391B2 (en) | 2012-10-15 | 2015-02-10 | Oracle International Corporation | System and method for supporting transient partition consistency in a distributed data grid |
| US9471370B2 (en) | 2012-10-22 | 2016-10-18 | Palantir Technologies, Inc. | System and method for stack-based batch evaluation of program instructions |
| US9348677B2 (en) | 2012-10-22 | 2016-05-24 | Palantir Technologies Inc. | System and method for batch evaluation programs |
| US9047328B2 (en) * | 2012-11-19 | 2015-06-02 | Facebook, Inc. | Searching entity-key associations using in-memory objects |
| US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
| CN103906032B (zh) * | 2012-12-31 | 2018-05-11 | 华为技术有限公司 | 设备到设备通信方法、模块及终端设备 |
| US9197700B2 (en) * | 2013-01-18 | 2015-11-24 | Apple Inc. | Keychain syncing |
| US9087055B2 (en) * | 2013-01-28 | 2015-07-21 | International Business Machines Corporation | Segmenting documents within a full text index |
| US9146771B2 (en) * | 2013-03-12 | 2015-09-29 | International Business Machines Corporation | Responding to a timeout of a message in a parallel computer |
| US11086898B2 (en) * | 2013-03-13 | 2021-08-10 | Amazon Technologies, Inc. | Token-based admission control for replicated writes |
| US9367463B2 (en) | 2013-03-14 | 2016-06-14 | Palantir Technologies, Inc. | System and method utilizing a shared cache to provide zero copy memory mapped database |
| US8826279B1 (en) * | 2013-03-14 | 2014-09-02 | Joyent, Inc. | Instruction set architecture for compute-based object stores |
| US8943284B2 (en) | 2013-03-14 | 2015-01-27 | Joyent, Inc. | Systems and methods for integrating compute resources in a storage area network |
| US8677359B1 (en) | 2013-03-14 | 2014-03-18 | Joyent, Inc. | Compute-centric object stores and methods of use |
| US8881279B2 (en) | 2013-03-14 | 2014-11-04 | Joyent, Inc. | Systems and methods for zone-based intrusion detection |
| US9104456B2 (en) | 2013-03-14 | 2015-08-11 | Joyent, Inc. | Zone management of compute-centric object stores |
| US8909656B2 (en) | 2013-03-15 | 2014-12-09 | Palantir Technologies Inc. | Filter chains with associated multipath views for exploring large data sets |
| US9665957B1 (en) * | 2013-03-15 | 2017-05-30 | Ca, Inc. | System and method for rapidly assessing system components with trend charts |
| US10244080B2 (en) * | 2013-03-15 | 2019-03-26 | VCE IP Holding Company LLC | Accessing multiple converged IT infrastructures |
| US9092238B2 (en) | 2013-03-15 | 2015-07-28 | Joyent, Inc. | Versioning schemes for compute-centric object stores |
| US8930897B2 (en) | 2013-03-15 | 2015-01-06 | Palantir Technologies Inc. | Data integration tool |
| US8793688B1 (en) | 2013-03-15 | 2014-07-29 | Joyent, Inc. | Systems and methods for double hulled virtualization operations |
| US8855999B1 (en) | 2013-03-15 | 2014-10-07 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
| US9679402B1 (en) * | 2013-03-15 | 2017-06-13 | Ca, Inc. | System and method for rapidly assessing system components with gauges |
| US8903717B2 (en) | 2013-03-15 | 2014-12-02 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
| US8868486B2 (en) | 2013-03-15 | 2014-10-21 | Palantir Technologies Inc. | Time-sensitive cube |
| US9898167B2 (en) | 2013-03-15 | 2018-02-20 | Palantir Technologies Inc. | Systems and methods for providing a tagging interface for external content |
| US8775485B1 (en) | 2013-03-15 | 2014-07-08 | Joyent, Inc. | Object store management operations within compute-centric object stores |
| US9740369B2 (en) | 2013-03-15 | 2017-08-22 | Palantir Technologies Inc. | Systems and methods for providing a tagging interface for external content |
| MX2013005303A (es) * | 2013-05-10 | 2013-08-07 | Fondo De Informacion Y Documentacion Para La Ind Infotec | Un sistema y un proceso de alto desempeño para el tratamiento y almacenamiento de datos, basado en componentes de bajo costo, que garantiza la integridad y disponibilidad de los datos para su propia administracion. |
| US9489443B1 (en) | 2013-05-24 | 2016-11-08 | Amazon Technologies, Inc. | Scheduling of splits and moves of database partitions |
| US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
| US9559900B1 (en) | 2013-06-13 | 2017-01-31 | Amazon Technologies, Inc. | Dedicated endpoints for network-accessible services |
| US10158579B2 (en) | 2013-06-21 | 2018-12-18 | Amazon Technologies, Inc. | Resource silos at network-accessible services |
| US9613082B2 (en) | 2013-09-30 | 2017-04-04 | International Business Machines Corporation | Database auditing for bulk operations |
| US10503732B2 (en) | 2013-10-31 | 2019-12-10 | Micro Focus Llc | Storing time series data for a search query |
| US10331695B1 (en) * | 2013-11-25 | 2019-06-25 | Amazon Technologies, Inc. | Replication coordination service for data transfers between distributed databases |
| US9529848B2 (en) * | 2013-12-06 | 2016-12-27 | Vmware, Inc. | Predictive query result computation |
| US9105000B1 (en) | 2013-12-10 | 2015-08-11 | Palantir Technologies Inc. | Aggregating data from a plurality of data sources |
| US9436739B2 (en) | 2013-12-13 | 2016-09-06 | Vmware, Inc. | Dynamic priority-based query scheduling |
| US9430573B2 (en) * | 2014-01-14 | 2016-08-30 | Microsoft Technology Licensing, Llc | Coherent question answering in search results |
| US8924429B1 (en) | 2014-03-18 | 2014-12-30 | Palantir Technologies Inc. | Determining and extracting changed data from a data source |
| WO2015167562A1 (en) * | 2014-04-30 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Using local memory nodes of a multicore machine to process a search query |
| US20160026923A1 (en) | 2014-07-22 | 2016-01-28 | Palantir Technologies Inc. | System and method for determining a propensity of entity to take a specified action |
| US11095715B2 (en) * | 2014-09-24 | 2021-08-17 | Ebay Inc. | Assigning storage responsibility in a distributed data storage system with replication |
| CN104333512B (zh) * | 2014-10-30 | 2017-07-28 | 北京思特奇信息技术股份有限公司 | 一种分布式内存数据库访问系统及方法 |
| US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
| US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
| US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
| WO2016146166A1 (en) * | 2015-03-17 | 2016-09-22 | Huawei Technologies Co., Ltd. | Multi-multidimensional computer architecture for big data applications |
| US20160275085A1 (en) * | 2015-03-17 | 2016-09-22 | Netapp, Inc. | Methods for facilitating a nosql database with integrated management and devices thereof |
| US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
| US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
| US9665299B2 (en) | 2015-03-31 | 2017-05-30 | International Business Machines Corporation | Implicit coordination for deployment of computing systems using a data sharing service |
| US9348880B1 (en) | 2015-04-01 | 2016-05-24 | Palantir Technologies, Inc. | Federated search of multiple sources with conflict resolution |
| US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
| US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
| US10977276B2 (en) * | 2015-07-31 | 2021-04-13 | International Business Machines Corporation | Balanced partition placement in distributed databases |
| US10120938B2 (en) * | 2015-08-01 | 2018-11-06 | MapScallion LLC | Systems and methods for automating the transmission of partitionable search results from a search engine |
| US10235417B1 (en) * | 2015-09-02 | 2019-03-19 | Amazon Technologies, Inc. | Partitioned search of log events |
| US9514205B1 (en) | 2015-09-04 | 2016-12-06 | Palantir Technologies Inc. | Systems and methods for importing data from electronic data files |
| US10528627B1 (en) * | 2015-09-11 | 2020-01-07 | Amazon Technologies, Inc. | Universal search service for multi-region and multi-service cloud computing resources |
| US10558339B1 (en) | 2015-09-11 | 2020-02-11 | Palantir Technologies Inc. | System and method for analyzing electronic communications and a collaborative electronic communications user interface |
| US9772934B2 (en) | 2015-09-14 | 2017-09-26 | Palantir Technologies Inc. | Pluggable fault detection tests for data pipelines |
| US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
| US11082515B2 (en) * | 2015-09-26 | 2021-08-03 | Intel Corporation | Technologies for offloading data object replication and service function chain management |
| US9910697B2 (en) | 2015-10-13 | 2018-03-06 | Palantir Technologies Inc. | Fault-tolerant and highly-available configuration of distributed services |
| US12468467B2 (en) * | 2015-10-31 | 2025-11-11 | Netapp, Inc. | Sequential write based durable file system |
| US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
| US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
| US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
| US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
| US10853359B1 (en) | 2015-12-21 | 2020-12-01 | Amazon Technologies, Inc. | Data log stream processing using probabilistic data structures |
| US9652510B1 (en) | 2015-12-29 | 2017-05-16 | Palantir Technologies Inc. | Systems and user interfaces for data analysis including artificial intelligence algorithms for generating optimized packages of data items |
| US12288233B2 (en) | 2016-04-01 | 2025-04-29 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
| US10320906B2 (en) * | 2016-04-29 | 2019-06-11 | Netapp, Inc. | Self-organizing storage system for asynchronous storage service |
| US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
| US10554516B1 (en) | 2016-06-09 | 2020-02-04 | Palantir Technologies Inc. | System to collect and visualize software usage metrics |
| US12591828B2 (en) | 2016-06-10 | 2026-03-31 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
| US11392720B2 (en) | 2016-06-10 | 2022-07-19 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
| US12381915B2 (en) | 2016-06-10 | 2025-08-05 | OneTrust, LLC | Data processing systems and methods for performing assessments and monitoring of new versions of computer code for compliance |
| US11475136B2 (en) | 2016-06-10 | 2022-10-18 | OneTrust, LLC | Data processing systems for data transfer risk identification and related methods |
| US11354434B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
| US10685140B2 (en) | 2016-06-10 | 2020-06-16 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11354435B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for data testing to confirm data deletion and related methods |
| US11227247B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
| US11403377B2 (en) | 2016-06-10 | 2022-08-02 | OneTrust, LLC | Privacy management systems and methods |
| US11416109B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Automated data processing systems and methods for automatically processing data subject access requests using a chatbot |
| US10284604B2 (en) | 2016-06-10 | 2019-05-07 | OneTrust, LLC | Data processing and scanning systems for generating and populating a data inventory |
| US10909488B2 (en) | 2016-06-10 | 2021-02-02 | OneTrust, LLC | Data processing systems for assessing readiness for responding to privacy-related incidents |
| US10909265B2 (en) | 2016-06-10 | 2021-02-02 | OneTrust, LLC | Application privacy scanning systems and related methods |
| US12045266B2 (en) | 2016-06-10 | 2024-07-23 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US12299065B2 (en) | 2016-06-10 | 2025-05-13 | OneTrust, LLC | Data processing systems and methods for dynamically determining data processing consent configurations |
| US11188862B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Privacy management systems and methods |
| US11438386B2 (en) | 2016-06-10 | 2022-09-06 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US11625502B2 (en) | 2016-06-10 | 2023-04-11 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
| US11586700B2 (en) | 2016-06-10 | 2023-02-21 | OneTrust, LLC | Data processing systems and methods for automatically blocking the use of tracking tools |
| US11134086B2 (en) | 2016-06-10 | 2021-09-28 | OneTrust, LLC | Consent conversion optimization systems and related methods |
| US10997318B2 (en) | 2016-06-10 | 2021-05-04 | OneTrust, LLC | Data processing systems for generating and populating a data inventory for processing data access requests |
| US11294939B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
| US10846433B2 (en) | 2016-06-10 | 2020-11-24 | OneTrust, LLC | Data processing consent management systems and related methods |
| US10678945B2 (en) | 2016-06-10 | 2020-06-09 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11544667B2 (en) | 2016-06-10 | 2023-01-03 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US11651104B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11418492B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for using a data model to select a target data asset in a data migration |
| US12136055B2 (en) | 2016-06-10 | 2024-11-05 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
| US11651106B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
| US11562097B2 (en) | 2016-06-10 | 2023-01-24 | OneTrust, LLC | Data processing systems for central consent repository and related methods |
| US11222139B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems and methods for automatic discovery and assessment of mobile software development kits |
| US11410106B2 (en) | 2016-06-10 | 2022-08-09 | OneTrust, LLC | Privacy management systems and methods |
| US9678850B1 (en) | 2016-06-10 | 2017-06-13 | Palantir Technologies Inc. | Data pipeline monitoring |
| US11481710B2 (en) | 2016-06-10 | 2022-10-25 | OneTrust, LLC | Privacy management systems and methods |
| US11675929B2 (en) | 2016-06-10 | 2023-06-13 | OneTrust, LLC | Data processing consent sharing systems and related methods |
| US11222142B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for validating authorization for personal data collection, storage, and processing |
| US11295316B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems for identity validation for consumer rights requests and related methods |
| US11416798B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for providing training in a vendor procurement process |
| US11366909B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11636171B2 (en) | 2016-06-10 | 2023-04-25 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
| US11520928B2 (en) | 2016-06-10 | 2022-12-06 | OneTrust, LLC | Data processing systems for generating personal data receipts and related methods |
| US12052289B2 (en) | 2016-06-10 | 2024-07-30 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US10318761B2 (en) | 2016-06-10 | 2019-06-11 | OneTrust, LLC | Data processing systems and methods for auditing data request compliance |
| US11188615B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Data processing consent capture systems and related methods |
| US10740487B2 (en) | 2016-06-10 | 2020-08-11 | OneTrust, LLC | Data processing systems and methods for populating and maintaining a centralized database of personal data |
| US11416590B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11416589B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US12118121B2 (en) | 2016-06-10 | 2024-10-15 | OneTrust, LLC | Data subject access request processing systems and related methods |
| US11366786B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing systems for processing data subject access requests |
| US11727141B2 (en) | 2016-06-10 | 2023-08-15 | OneTrust, LLC | Data processing systems and methods for synching privacy-related user consent across multiple computing devices |
| US11461500B2 (en) | 2016-06-10 | 2022-10-04 | OneTrust, LLC | Data processing systems for cookie compliance testing with website scanning and related methods |
| US10063666B2 (en) | 2016-06-14 | 2018-08-28 | Futurewei Technologies, Inc. | Modular telecommunication edge cloud system |
| US11496588B2 (en) * | 2016-06-21 | 2022-11-08 | Micro Focus Llc | Clustering layers in multi-node clusters |
| US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
| US10621314B2 (en) | 2016-08-01 | 2020-04-14 | Palantir Technologies Inc. | Secure deployment of a software package |
| US10133782B2 (en) | 2016-08-01 | 2018-11-20 | Palantir Technologies Inc. | Techniques for data extraction |
| US11256762B1 (en) | 2016-08-04 | 2022-02-22 | Palantir Technologies Inc. | System and method for efficiently determining and displaying optimal packages of data items |
| US20180041578A1 (en) * | 2016-08-08 | 2018-02-08 | Futurewei Technologies, Inc. | Inter-Telecommunications Edge Cloud Protocols |
| US10552531B2 (en) | 2016-08-11 | 2020-02-04 | Palantir Technologies Inc. | Collaborative spreadsheet data validation and integration |
| US10373078B1 (en) | 2016-08-15 | 2019-08-06 | Palantir Technologies Inc. | Vector generation for distributed data sets |
| EP3282374A1 (en) | 2016-08-17 | 2018-02-14 | Palantir Technologies Inc. | User interface data sample transformer |
| US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
| US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
| CN106445645B (zh) * | 2016-09-06 | 2019-11-26 | 北京百度网讯科技有限公司 | 用于执行分布式计算任务的方法和装置 |
| US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
| US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
| US11550847B1 (en) * | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
| US11294941B1 (en) * | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
| US12013895B2 (en) | 2016-09-26 | 2024-06-18 | Splunk Inc. | Processing data using containerized nodes in a containerized scalable environment |
| US11620336B1 (en) | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
| US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
| US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
| US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
| US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
| US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
| US11567993B1 (en) * | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
| US11874691B1 (en) * | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
| US11250056B1 (en) | 2016-09-26 | 2022-02-15 | Splunk Inc. | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system |
| US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
| US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
| US11003714B1 (en) * | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
| US11106734B1 (en) | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
| US10353965B2 (en) | 2016-09-26 | 2019-07-16 | Splunk Inc. | Data fabric service system architecture |
| US11416528B2 (en) | 2016-09-26 | 2022-08-16 | Splunk Inc. | Query acceleration data store |
| US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
| US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
| US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
| US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
| US10977260B2 (en) | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
| US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
| US20180089324A1 (en) | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
| US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
| US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
| US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
| US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query system |
| US11321321B2 (en) | 2016-09-26 | 2022-05-03 | Splunk Inc. | Record expansion and reduction based on a processing task in a data intake and query system |
| US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
| US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
| US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
| US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
| US10650086B1 (en) | 2016-09-27 | 2020-05-12 | Palantir Technologies Inc. | Systems, methods, and framework for associating supporting data in word processing |
| US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
| US9998551B1 (en) | 2016-10-24 | 2018-06-12 | Palantir Technologies Inc. | Automatic discovery and registration of service application for files introduced to a user interface |
| US10042620B1 (en) | 2016-11-03 | 2018-08-07 | Palantir Technologies Inc. | Approaches for amalgamating disparate software tools |
| US10152306B2 (en) | 2016-11-07 | 2018-12-11 | Palantir Technologies Inc. | Framework for developing and deploying applications |
| US10366082B2 (en) * | 2016-12-09 | 2019-07-30 | Oracle International Corporation | Parallel processing of queries with inverse distribution function |
| US10261763B2 (en) | 2016-12-13 | 2019-04-16 | Palantir Technologies Inc. | Extensible data transformation authoring and validation system |
| US10001982B1 (en) | 2016-12-16 | 2018-06-19 | Palantir Technologies, Inc. | Imposing a common build system for services from disparate sources |
| US11157951B1 (en) | 2016-12-16 | 2021-10-26 | Palantir Technologies Inc. | System and method for determining and displaying an optimal assignment of data items |
| US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
| US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
| US10509844B1 (en) | 2017-01-19 | 2019-12-17 | Palantir Technologies Inc. | Network graph parser |
| US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
| US9787671B1 (en) * | 2017-01-30 | 2017-10-10 | Xactly Corporation | Highly available web-based database interface system |
| US10180934B2 (en) | 2017-03-02 | 2019-01-15 | Palantir Technologies Inc. | Automatic translation of spreadsheets into scripts |
| US10572576B1 (en) | 2017-04-06 | 2020-02-25 | Palantir Technologies Inc. | Systems and methods for facilitating data object extraction from unstructured documents |
| US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
| US11573947B2 (en) * | 2017-05-08 | 2023-02-07 | Sap Se | Adaptive query routing in a replicated database environment |
| US10359966B2 (en) * | 2017-05-11 | 2019-07-23 | Vmware, Inc. | Capacity based load balancing in distributed storage systems with deduplication and compression functionalities |
| US10263845B2 (en) | 2017-05-16 | 2019-04-16 | Palantir Technologies Inc. | Systems and methods for continuous configuration deployment |
| US10824604B1 (en) | 2017-05-17 | 2020-11-03 | Palantir Technologies Inc. | Systems and methods for data entry |
| US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
| US10013577B1 (en) | 2017-06-16 | 2018-07-03 | OneTrust, LLC | Data processing systems for identifying whether cookies contain personally identifying information |
| US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
| US10353699B1 (en) | 2017-06-26 | 2019-07-16 | Palantir Technologies Inc. | Systems and methods for managing states of deployment |
| US10534595B1 (en) | 2017-06-30 | 2020-01-14 | Palantir Technologies Inc. | Techniques for configuring and validating a data pipeline deployment |
| US10204119B1 (en) | 2017-07-20 | 2019-02-12 | Palantir Technologies, Inc. | Inferring a dataset schema from input files |
| US11989194B2 (en) | 2017-07-31 | 2024-05-21 | Splunk Inc. | Addressing memory limits for partition tracking among worker nodes |
| US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
| US12118009B2 (en) | 2017-07-31 | 2024-10-15 | Splunk Inc. | Supporting query languages through distributed execution of query engines |
| US12248484B2 (en) | 2017-07-31 | 2025-03-11 | Splunk Inc. | Reassigning processing tasks to an external storage system |
| US10754820B2 (en) | 2017-08-14 | 2020-08-25 | Palantir Technologies Inc. | Customizable pipeline for integrating data |
| US11016936B1 (en) | 2017-09-05 | 2021-05-25 | Palantir Technologies Inc. | Validating data for integration |
| US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
| US10860618B2 (en) | 2017-09-25 | 2020-12-08 | Splunk Inc. | Low-latency streaming analytics |
| US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
| US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
| CN107748766B (zh) * | 2017-09-28 | 2021-08-24 | 南威软件股份有限公司 | 一种基于Presto和Elasticsearch的大数据快速查询方法 |
| US10579265B2 (en) * | 2017-10-18 | 2020-03-03 | Adobe Inc. | Cloud-synchronized local storage management |
| US11379525B1 (en) | 2017-11-22 | 2022-07-05 | Palantir Technologies Inc. | Continuous builds of derived datasets in response to other dataset updates |
| US10552524B1 (en) | 2017-12-07 | 2020-02-04 | Palantir Technolgies Inc. | Systems and methods for in-line document tagging and object based data synchronization |
| US10783162B1 (en) | 2017-12-07 | 2020-09-22 | Palantir Technologies Inc. | Workflow assistant |
| US10360252B1 (en) | 2017-12-08 | 2019-07-23 | Palantir Technologies Inc. | Detection and enrichment of missing data or metadata for large data sets |
| CN107733939A (zh) * | 2017-12-12 | 2018-02-23 | 柳州市北龟农业科技孵化器有限公司 | 一种网络咨询服务平台 |
| US11176116B2 (en) | 2017-12-13 | 2021-11-16 | Palantir Technologies Inc. | Systems and methods for annotating datasets |
| US10853352B1 (en) | 2017-12-21 | 2020-12-01 | Palantir Technologies Inc. | Structured data collection, presentation, validation and workflow management |
| GB201800595D0 (en) | 2018-01-15 | 2018-02-28 | Palantir Technologies Inc | Management of software bugs in a data processing system |
| US10599762B1 (en) | 2018-01-16 | 2020-03-24 | Palantir Technologies Inc. | Systems and methods for creating a dynamic electronic form |
| US10997180B2 (en) | 2018-01-31 | 2021-05-04 | Splunk Inc. | Dynamic query processor for streaming and batch queries |
| US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
| CN110198269B (zh) * | 2018-04-03 | 2021-10-08 | 腾讯科技(深圳)有限公司 | 分布式机群的路由同步系统、方法及相关装置 |
| US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
| US10885021B1 (en) | 2018-05-02 | 2021-01-05 | Palantir Technologies Inc. | Interactive interpreter and graphical user interface |
| US11171846B1 (en) | 2018-05-14 | 2021-11-09 | Vmware, Inc. | Log throttling |
| US11263263B2 (en) | 2018-05-30 | 2022-03-01 | Palantir Technologies Inc. | Data propagation and mapping system |
| US11061542B1 (en) | 2018-06-01 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for determining and displaying optimal associations of data items |
| US10795909B1 (en) | 2018-06-14 | 2020-10-06 | Palantir Technologies Inc. | Minimized and collapsed resource dependency path |
| TWI821373B (zh) * | 2018-08-23 | 2023-11-11 | 美商阿爾克斯股份有限公司 | 網路運算環境中的第一跳轉閘道的冗餘機制系統 |
| US11544409B2 (en) | 2018-09-07 | 2023-01-03 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
| US10803202B2 (en) | 2018-09-07 | 2020-10-13 | OneTrust, LLC | Data processing systems for orphaned data identification and deletion and related methods |
| US10775976B1 (en) | 2018-10-01 | 2020-09-15 | Splunk Inc. | Visual previews for programming an iterative publish-subscribe message processing system |
| US10761813B1 (en) | 2018-10-01 | 2020-09-01 | Splunk Inc. | Assisted visual programming for iterative publish-subscribe message processing system |
| US10846155B2 (en) * | 2018-10-16 | 2020-11-24 | Samsung Electronics Co., Ltd. | Method for NVMe SSD based storage service using RPC and gRPC tunneling over PCIe + |
| US10936585B1 (en) | 2018-10-31 | 2021-03-02 | Splunk Inc. | Unified data processing across streaming and indexed data sets |
| US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
| US11625273B1 (en) | 2018-11-23 | 2023-04-11 | Amazon Technologies, Inc. | Changing throughput capacity to sustain throughput for accessing individual items in a database |
| US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
| WO2020220216A1 (en) | 2019-04-29 | 2020-11-05 | Splunk Inc. | Search time estimate in data intake and query system |
| US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
| US12412155B2 (en) | 2019-05-07 | 2025-09-09 | Zazzle Inc. | System and method for role-based collaborative design of custom products based on manufacturing constraints |
| US11238048B1 (en) | 2019-07-16 | 2022-02-01 | Splunk Inc. | Guided creation interface for streaming data processing pipelines |
| KR102421397B1 (ko) * | 2019-07-25 | 2022-07-18 | 주식회사 디에스랩글로벌 | 프로그래밍 코드 자동생성을 통한 백엔드 구축 방법 |
| US11231876B2 (en) * | 2019-09-24 | 2022-01-25 | Western Digital Technologies, Inc. | Initial data placement in hybrid object storage system |
| US11474977B2 (en) | 2019-09-30 | 2022-10-18 | Dropbox, Inc. | Snapshot isolation in a distributed storage system |
| US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
| CN110995803B (zh) * | 2019-11-22 | 2022-04-19 | 用友网络科技股份有限公司 | 上、下游业务处理方法及系统、计算机可读存储介质 |
| US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
| US11604928B2 (en) * | 2020-04-30 | 2023-03-14 | International Business Machines Corporation | Efficiently managing predictive changes for a conversational agent |
| US11614923B2 (en) | 2020-04-30 | 2023-03-28 | Splunk Inc. | Dual textual/graphical programming interfaces for streaming data processing pipelines |
| CN111966877B (zh) * | 2020-06-29 | 2024-05-07 | 北京百度网讯科技有限公司 | 前端服务方法、装置、设备及存储介质 |
| WO2022011142A1 (en) | 2020-07-08 | 2022-01-13 | OneTrust, LLC | Systems and methods for targeted data discovery |
| WO2022026564A1 (en) | 2020-07-28 | 2022-02-03 | OneTrust, LLC | Systems and methods for automatically blocking the use of tracking tools |
| US11475165B2 (en) | 2020-08-06 | 2022-10-18 | OneTrust, LLC | Data processing systems and methods for automatically redacting unstructured data from a data subject access request |
| WO2022060860A1 (en) | 2020-09-15 | 2022-03-24 | OneTrust, LLC | Data processing systems and methods for detecting tools for the automatic blocking of consent requests |
| US12566885B2 (en) | 2020-09-21 | 2026-03-03 | OneTrust, LLC | Data processing systems and methods for automatically detecting target data transfers and target data processing |
| CN112052247B (zh) * | 2020-09-29 | 2024-05-07 | 微医云(杭州)控股有限公司 | 搜索引擎的索引更新系统、方法、装置、电子设备、存储介质 |
| US12265896B2 (en) | 2020-10-05 | 2025-04-01 | OneTrust, LLC | Systems and methods for detecting prejudice bias in machine-learning models |
| US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
| WO2022099023A1 (en) | 2020-11-06 | 2022-05-12 | OneTrust, LLC | Systems and methods for identifying data processing activities based on data discovery results |
| US11687528B2 (en) | 2021-01-25 | 2023-06-27 | OneTrust, LLC | Systems and methods for discovery, classification, and indexing of data in a native computing system |
| US12164524B2 (en) | 2021-01-29 | 2024-12-10 | Splunk Inc. | User interface for customizing data streams and processing pipelines |
| US11650995B2 (en) | 2021-01-29 | 2023-05-16 | Splunk Inc. | User defined data stream for routing data to a data destination based on a data route |
| WO2022170047A1 (en) * | 2021-02-04 | 2022-08-11 | OneTrust, LLC | Managing custom attributes for domain objects defined within microservices |
| US11494515B2 (en) | 2021-02-08 | 2022-11-08 | OneTrust, LLC | Data processing systems and methods for anonymizing data samples in classification analysis |
| US11601464B2 (en) | 2021-02-10 | 2023-03-07 | OneTrust, LLC | Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system |
| WO2022178089A1 (en) | 2021-02-17 | 2022-08-25 | OneTrust, LLC | Managing custom workflows for domain objects defined within microservices |
| WO2022178219A1 (en) | 2021-02-18 | 2022-08-25 | OneTrust, LLC | Selective redaction of media content |
| EP4305539A1 (en) | 2021-03-08 | 2024-01-17 | OneTrust, LLC | Data transfer discovery and analysis systems and related methods |
| US11687487B1 (en) | 2021-03-11 | 2023-06-27 | Splunk Inc. | Text files updates to an active processing pipeline |
| US12118598B2 (en) | 2021-03-30 | 2024-10-15 | Zazzle Inc. | Generating and using tokens to request services and access to a product collaboration platform |
| US11562078B2 (en) | 2021-04-16 | 2023-01-24 | OneTrust, LLC | Assessing and managing computational risk involved with integrating third party computing functionality within a computing system |
| US11663219B1 (en) | 2021-04-23 | 2023-05-30 | Splunk Inc. | Determining a set of parameter values for a processing pipeline |
| US11604789B1 (en) | 2021-04-30 | 2023-03-14 | Splunk Inc. | Bi-directional query updates in a user interface |
| US12242892B1 (en) | 2021-04-30 | 2025-03-04 | Splunk Inc. | Implementation of a data processing pipeline using assignable resources and pre-configured resources |
| US12072939B1 (en) | 2021-07-30 | 2024-08-27 | Splunk Inc. | Federated data enrichment objects |
| US11989592B1 (en) | 2021-07-30 | 2024-05-21 | Splunk Inc. | Workload coordinator for providing state credentials to processing tasks of a data processing pipeline |
| US12153704B2 (en) | 2021-08-05 | 2024-11-26 | OneTrust, LLC | Computing platform for facilitating data exchange among computing environments |
| US12164522B1 (en) | 2021-09-15 | 2024-12-10 | Splunk Inc. | Metric processing for streaming machine learning applications |
| US12314992B2 (en) | 2021-10-21 | 2025-05-27 | Zazzle Inc. | Method and computer readable storage media for interfacing with third party platforms via collaboration sessions to customize products |
| CN114138561B (zh) * | 2021-12-02 | 2025-08-22 | 上海沄熹科技有限公司 | 分布式数据库加速副本平衡的系统及方法 |
| US12093272B1 (en) | 2022-04-29 | 2024-09-17 | Splunk Inc. | Retrieving data identifiers from queue for search of external data system |
| US11743363B1 (en) * | 2022-05-23 | 2023-08-29 | Oracle International Corporation | Methods, systems, and computer readable media for utilizing network function (NF) service attributes associated with registered NF service producers in a hierarchical network |
| US11620142B1 (en) | 2022-06-03 | 2023-04-04 | OneTrust, LLC | Generating and customizing user interfaces for demonstrating functions of interactive user environments |
| US12141137B1 (en) | 2022-06-10 | 2024-11-12 | Cisco Technology, Inc. | Query translation for an external data system |
| US12019642B2 (en) * | 2022-11-11 | 2024-06-25 | Microsoft Technology Licensing, Llc | Distributed query technique to efficiently retrieve and merge data from multiple shards |
| KR102628460B1 (ko) * | 2022-11-14 | 2024-01-23 | 세종대학교산학협력단 | 메타버스를 위한 가상 공간 검색 방법 및 시스템 |
| US12287790B2 (en) | 2023-01-31 | 2025-04-29 | Splunk Inc. | Runtime systems query coordinator |
| US12585638B2 (en) | 2023-07-17 | 2026-03-24 | Cisco Technology, Inc. | Query execution using a data processing scheme of a separate data processing system |
Family Cites Families (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6304874B1 (en) * | 1996-07-09 | 2001-10-16 | British Telecommunications Public Limited Company | Access system for distributed storage |
| US5963944A (en) | 1996-12-30 | 1999-10-05 | Intel Corporation | System and method for distributing and indexing computerized documents using independent agents |
| US6167438A (en) | 1997-05-22 | 2000-12-26 | Trustees Of Boston University | Method and system for distributed caching, prefetching and replication |
| US6081840A (en) * | 1997-10-14 | 2000-06-27 | Zhao; Yan | Two-level content distribution system |
| US6192165B1 (en) | 1997-12-30 | 2001-02-20 | Imagetag, Inc. | Apparatus and method for digital filing |
| US6108703A (en) | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
| EP0993163A1 (en) | 1998-10-05 | 2000-04-12 | Backweb Technologies Ltd. | Distributed client-based data caching system and method |
| US6351776B1 (en) | 1999-11-04 | 2002-02-26 | Xdrive, Inc. | Shared internet storage resource, user interface system, and method |
| US6557111B1 (en) | 1999-11-29 | 2003-04-29 | Xerox Corporation | Multicast-enhanced update propagation in a weakly-consistant, replicated data storage system |
| US6651242B1 (en) | 1999-12-14 | 2003-11-18 | Novell, Inc. | High performance computing system for distributed applications over a computer |
| US20020007350A1 (en) | 2000-07-11 | 2002-01-17 | Brian Yen | System and method for on-demand data distribution in a P2P system |
| US7734715B2 (en) | 2001-03-01 | 2010-06-08 | Ricoh Company, Ltd. | System, computer program product and method for managing documents |
| WO2002084528A1 (en) | 2001-04-12 | 2002-10-24 | Fifth Web Limited | System and method for searching in a distributed computing environment |
| US20020188735A1 (en) | 2001-06-06 | 2002-12-12 | Needham Bradford H. | Partially replicated, locally searched peer to peer file sharing system |
| CA2377649C (en) * | 2002-03-20 | 2009-02-03 | Ibm Canada Limited-Ibm Canada Limitee | Dynamic cluster database architecture |
| US20040044776A1 (en) | 2002-03-22 | 2004-03-04 | International Business Machines Corporation | Peer to peer file sharing system using common protocols |
| US20040006601A1 (en) | 2002-07-01 | 2004-01-08 | Bernstein David B. | Method and system for optimized persistent messaging |
| US20040010716A1 (en) | 2002-07-11 | 2004-01-15 | International Business Machines Corporation | Apparatus and method for monitoring the health of systems management software components in an enterprise |
| US7263560B2 (en) * | 2002-08-30 | 2007-08-28 | Sun Microsystems, Inc. | Decentralized peer-to-peer advertisement |
| US7206934B2 (en) * | 2002-09-26 | 2007-04-17 | Sun Microsystems, Inc. | Distributed indexing of identity information in a peer-to-peer network |
| KR20020096027A (ko) * | 2002-10-22 | 2002-12-28 | (주)컴파인 | 세계 곳곳에 분포된 개인용 컴퓨터의 스토리지와 네트워크자원을 이용하여 파일을 저장하고 서비스하는 그리드 파일 시스템 |
| US7287068B1 (en) | 2002-12-13 | 2007-10-23 | Bmc Software, Inc. | System and method for updating devices that execute an operating system or application program directly from nonvolatile storage |
| EP1573600A4 (en) * | 2003-08-21 | 2006-04-19 | Microsoft Corp | SYSTEMS AND METHOD FOR SYNCHRONIZING COMPUTER SYSTEMS BY A INTERMEDIATE SYSTEM OR DEVICE |
| US20050108203A1 (en) | 2003-11-13 | 2005-05-19 | Chunqiang Tang | Sample-directed searching in a peer-to-peer system |
| WO2005048565A1 (en) * | 2003-11-14 | 2005-05-26 | Canon Kabushiki Kaisha | System, method and devices for accessing or sharing a digital document in a peer-to-peer communication network |
| US7778984B2 (en) | 2004-11-19 | 2010-08-17 | Microsoft Corporation | System and method for a distributed object store |
| US7991767B2 (en) * | 2005-04-29 | 2011-08-02 | International Business Machines Corporation | Method for providing a shared search index in a peer to peer network |
| US7783698B2 (en) * | 2005-12-16 | 2010-08-24 | Microsoft Corporation | Generalized web-service |
| US7716180B2 (en) | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
-
2006
- 2006-03-29 US US11/392,482 patent/US7801912B2/en active Active
- 2006-11-30 KR KR1020137027952A patent/KR101543308B1/ko active Active
- 2006-11-30 EP EP06846427.0A patent/EP1974295B1/en active Active
- 2006-11-30 CA CA2635400A patent/CA2635400C/en active Active
- 2006-11-30 EP EP18160029.7A patent/EP3361399A1/en not_active Withdrawn
- 2006-11-30 MX MX2008008509A patent/MX2008008509A/es active IP Right Grant
- 2006-11-30 KR KR1020157013735A patent/KR101719936B1/ko active Active
- 2006-11-30 WO PCT/US2006/061435 patent/WO2007079303A2/en not_active Ceased
- 2006-11-30 KR KR1020087018549A patent/KR20080086918A/ko not_active Ceased
- 2006-11-30 KR KR1020147033813A patent/KR101595202B1/ko active Active
- 2006-11-30 JP JP2008548794A patent/JP5118059B2/ja active Active
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9936011B2 (en) | 2014-04-24 | 2018-04-03 | Casio Computer Co., Ltd | Distributed database, method of sharing data, program storing medium, and apparatus for a distributed database |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101595202B1 (ko) | 2016-02-18 |
| KR20080086918A (ko) | 2008-09-26 |
| CA2635400A1 (en) | 2007-07-12 |
| KR20130130867A (ko) | 2013-12-02 |
| WO2007079303A3 (en) | 2007-08-23 |
| KR20150065910A (ko) | 2015-06-15 |
| US7801912B2 (en) | 2010-09-21 |
| US20070168336A1 (en) | 2007-07-19 |
| MX2008008509A (es) | 2008-12-16 |
| JP2009522660A (ja) | 2009-06-11 |
| EP3361399A1 (en) | 2018-08-15 |
| KR101543308B1 (ko) | 2015-08-11 |
| KR20150004917A (ko) | 2015-01-13 |
| EP1974295B1 (en) | 2018-04-11 |
| CA2635400C (en) | 2014-10-28 |
| WO2007079303A2 (en) | 2007-07-12 |
| KR101719936B1 (ko) | 2017-03-24 |
| EP1974295A2 (en) | 2008-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5118059B2 (ja) | 検索可能なデータサービスのための方法及び装置 | |
| US11354315B2 (en) | Method and apparatus for stress management in a searchable data service | |
| US11860874B2 (en) | Multi-partitioning data for combination operations | |
| US20200183932A1 (en) | Optimizing write operations in object schema-based application programming interfaces (apis) | |
| EP3465435B1 (en) | Optimizing read and write operations in object schema-based application programming interfaces (apis) | |
| JP5090450B2 (ja) | 階層に編成され、ネットワークを介してリンクされた複数のノードに保管された複製データを更新するための方法、プログラム、およびコンピュータ可読媒体 | |
| US20190095493A1 (en) | Multi-partition operation in combination operations | |
| Chervenak et al. | The globus replica location service: design and experience | |
| d'Orazio et al. | Adaptable cache service and application to grid caching | |
| Ryeng | Improving Query Processing Performance in Large Distributed Database Management Systems. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091130 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091130 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120529 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120822 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120918 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121018 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5118059 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151026 Year of fee payment: 3 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |