JP2011514577A - 分散共有ストリーム処理システムのクエリ配備プラン - Google Patents
分散共有ストリーム処理システムのクエリ配備プラン Download PDFInfo
- Publication number
- JP2011514577A JP2011514577A JP2010544484A JP2010544484A JP2011514577A JP 2011514577 A JP2011514577 A JP 2011514577A JP 2010544484 A JP2010544484 A JP 2010544484A JP 2010544484 A JP2010544484 A JP 2010544484A JP 2011514577 A JP2011514577 A JP 2011514577A
- Authority
- JP
- Japan
- Prior art keywords
- query
- operator
- plan
- node
- partial
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【解決手段】分散共有ストリーム処理システムにおけるクエリに関する配備プランを提供するための方法は、ストリーム処理システムにおいて現在配備されているクエリに関する実現可能な配備プランのセットを記憶することを含む。クエリは、情報を求めるクライアント要求に応答してデータストリームを提供する、ストリーム処理システム内のノードでホスティングされる複数の演算子を含む。本発明はまた、クエリのQoSメトリック制約が違反されているか否かを判断することと、QoSメトリック制約が違反されているとの判断に応じて、クエリを提供するのに使用するために実現可能な配備プランのセットから1つの配備プランを選択することとを含む。
【選択図】図5
Description
本出願は、2008年1月29日に出願された仮出願第61/024,300号の優先権を主張する。この仮出願の内容は、参照によりそっくりそのまま本明細書に援用される。
これらのSPSは、潜在的に大量のデータストリームを生成するデータパブリッシャ及びこれらのデータストリームに関して多くの同時クエリを登録するクライアントを含めて、多くの地理的に分散したエンティティにより特徴付けられる。
例えば、クライアントは、クエリをデータパブリッシャへ送信し、一定の処理結果を受信する。
高いネットワークスケーラビリティは、システムコンポーネントの増大する地理的分布を優雅に取り扱う能力を指すのに対して、ワークロードスケーラビリティは、多くの同時に起こるユーザクエリに対処する。
双方のタイプのスケーラビリティを達成するために、SPSは、自身の処理をスケールアウトして、ネットワーク内の複数のノードにわたって分散させることができるべきである。
SPSの配備に関連した難点は、アプリケーションが処理コンポーネントを共有する共有処理環境において、その配備がストリームベースのクエリをハンドリングするSPSについてのものであるときに、さらに悪化する。
第1に、アプリケーションは、例えば、実用性、応答遅延、エンドツーエンド損失率又はレイテンシ等、出力のさまざまな特徴とその有用性との間の関係を記述するサービス品質(QoS)仕様を表すことが多い。
例えば、多くのリアルタイム金融アプリケーションでは、クエリ回答は、タイムリーに受信された場合にのみ役立つ。
金融データを運ぶデータストリームが複数のマシンにわたって処理されるとき、データストリームを提供するQoSは、複数のマシンのそれぞれによって影響を受ける。
したがって、マシンのいくつかが過負荷である場合、これらのマシンは、データストリームを提供するQoSに影響を与える。
その上、ストリーム処理アプリケーションは、多くの信頼できないノードを有する公衆インターネットを介して動作すると予想され、ピアツーピア設定の場合等、それら信頼できないノードの一部又はすべては、自身の資源を一時的にしか与えない場合がある。
さらに、ストリーム処理及びデータストリームのクライアントへの配信には、複数のノードがチェーン又はツリーで動作してストリームを処理及び配信することが必要とされる場合がある。このチェーン又はツリーでは、或るノードの出力は、別のノードの入力となる。
したがって、処理がネットワーク内の新しいノードへ移動される場合、チェーン又はツリーの下流側処理及びQoSが影響を受ける場合がある。
例えば、処理が、新しい地理的ロケーションの新しいノードへ移動される場合、これによって、エンドツーエンドのレイテンシが、クライアントにとって許容できない程度にまで増加される場合がある。
以下の説明では、実施形態の完全な理解を提供するために、多数の具体的な詳細が述べられる。
しかしながら、実施形態は、これらの具体的な詳細に限定されることなく実施できることが当業者には明らかであろう。
いくつかの例では、実施形態を不必要に不明瞭にしないように、既知の方法及び構造は詳細に説明されていない。
ノード及びオーバーレイノードは、本明細書では交換可能に使用される。
DSPSは、データストリームを処理して、クライアントへ配信する。
データストリームは、データのフィードを含む。
例えば、データストリームは、RSSフィード又はリアルタイム金融データのストリームを含むことができる。
データストリームは、マルチメディアを含むこともできる。
データストリームは、データの連続送信又は定期的送信(リアルタイム相場又はRSSフィード等)を含むこともできるし、データストリームは、アパートリスト(apartment listing)を求める要求の結果のような、必ずしも連続して又は定期的に送信されないデータのセットを含むこともできる。
DSPSによって実行されるストリーム処理は、共有されたストリーム処理を含み、ここでは、後述するように、複数のデータストリームが演算子を共有できることに留意すべきである。
ノードは、分散リソースディレクトリサービスを使用して自己組織化する。
このリソースディレクトリサービスは、ノードにおける利用可能なコンピュータリソースをアドバタイズ及び発見するのに使用される。
一実施形態によれば、DSPSは、プロアクティブ手法を使用する。この手法では、ノードは、データストリームの代替的な配備プランを事前に計算するように定期的に協力する。
配備プランは、本明細書ではプランとも呼ばれる。
ランタイム中、コンピュータリソース又はQoSメトリックの制約違反が発生すると、DSPSは、変更に高速に反応することができ、事前に計算された配備プランのうちの最適なものを適用することによって、実現可能な配備プランにマイグレーションすることができる。
その上、違反がない場合であっても、これらのプランの最良のものを適用して、システムの帯域幅消費を定期的に改善することができる。
システム100は、オーバーレイノード111で構成されるオーバーレイネットワーク110、リソースディレクトリ120、及びネットワーク監視サービス130を含む。
例えば、オーバーレイネットワーク110は、インターネット又は他のパブリックコンピュータネットワーク若しくはプライベートコンピュータネットワークの上に構築することができる。
オーバーレイネットワーク110は、オーバーレイノード111で構成され、オーバーレイノード111は、ストリーム処理機能性を提供する。
オーバーレイノード111は、オーバーレイパスを形成する論理リンクを介して互いに接続され、各論理リンクは、下部ネットワークにおける複数のホップを含む場合がある。
例えば、オーバーレイノード111は、クエリのための演算子を含む。
クエリは、ストリーム処理システムにおけるノードでホスティングされる複数の演算子を含む。
クエリは、クライアントクエリ又は情報の要求の受信及び登録に応じて提供され得る。
演算子は、クエリの関数である。
演算子は、データストリームに対する特定の演算を実行するように動作可能なノード上で動作するソフトウェアを含むことができる。
オーバーレイノードのコンピュータリソースの一部を、クエリのための演算子を提供するのに使用することができる。
オーバーレイノードは、他の機能を実行することができ、したがって、演算子をホスティングするオーバーレイノードを選択するときに、オーバーレイノード上の負荷を考慮することができる。
これらの演算子は、従来のデータベースにおいてクエリのために通常は使用される演算子を含むことができる。しかしながら、システム100における演算子は、データストリームに対して演算を行う。
演算子は、複数のクエリによって共有され得、ここで、各クエリは、1つ又は複数のデータストリームによって表され得る。
また、サブクエリが、演算子によって作成される。
一面において、複数の演算子から成るどのクエリも、たとえそのクエリが単一のクライアント用のものであっても、各演算子につき1つの、複数のサブクエリを有する。
別の面において、別のクライアントからの新しいクエリが、前のクエリの結果を部分的な結果として使用できるとき、前のクエリは、その新しいクエリのサブクエリとなる。
例えば、前のクエリを新しいクエリに部分的に使用できる状況について、フィルタ演算は、前の要求の結果を表すデータストリームに対してノードにより実行され得る。
例えば、オリジナルのクライアントクエリは、北カリフォルニア州のすべてのアパートリストを要求することができ、フィルタ演算をノードにおいて実行して、パロアルトのみのリストを導出することができる。
同じ演算は、連続データ又は定期的に送信されるデータを有するデータストリームを除くデータストリームに適用され、ストリームにおいて結合を実行すべき箇所を求めるのにスライディングウィンドウが使用される。
例えば、結合演算子は、或る入力である第1のストリーム及び別の入力である第2のストリームを有する。
結合は、ストリームからのデータが、スライディングウィンドウ内にタイムスタンプを有する場合に実行される。
スライディングウィンドウの一例は、2分ウィンドウとすることができるが、他の長さのウィンドウも使用することができる。
最適化は、いくつかのタイプのメトリックを考慮に入れることができる。
メトリックのタイプは、CPU使用率、メモリ使用率等のようなノードレベルメトリックだけでなく、帯域幅消費等のようなサービスプロバイダメトリックも含み得る。
また、レイテンシのようなQoSメトリックも考慮される。
最適化は、以下でさらに詳細に説明される。
クエリのための演算子のロケーションは、クエリの配備プランを定義する。このクエリの配備プランも、以下でさらに詳細に説明される。
ネットワークにおいて利用可能なリソース及びクエリの要件に依拠して、各クエリは、複数の代替的な事前に計算された配備プランを有することができる。
クエリの演算子は、オーバーレイネットワーク110内のノード111間のオーバーレイリンクによって相互接続される。
各演算子は、演算子の出力を、クエリプランにおける次の処理演算子へ転送する。
したがって、クエリ配備は、登録されたクエリのデータフローと一致するトポロジーを有するオーバーレイネットワークを作成する。
演算子oiが、その出力を演算子ojへ転送する場合、oiは、ojの上流側演算子(又はojのパブリッシャ)と呼ばれ、ojはoiの下流側演算子(又はoiのサブスクライバ)と呼ばれる。
演算子は、複数のパブリッシャ(例えば、結合演算子、統合演算子)を有することができ、演算子はクエリ間で共有され得るので、演算子は、複数のサブスクライバを有することもできる。
oiのサブスクライバのセットはsuboiと表記され、oiのパブリッシャのセットはpuboiと表記される。
データソース140は、データストリームをパブリッシュする一方、クライアントは、ストリーム指向型の連続クエリとして表されたそれらのデータインタレスト(data interests)をサブスクライブする。
システム100は、オーバーレイノード111に配備された演算子を介してパブリッシャからクライアントへデータをストリーミングする。
パブリッシュされたデータストリームの例には、RSSフィード、センサネットワークからのデータ、インターネットを介してプレイされるマルチプレイヤゲームからのデータ等が含まれ得る。
演算子をホスティングするための見込みオーバーレイノードを発見するために、リソースディレクトリ120が使用される。
リソースディレクトリ120を、複数のオーバーレイノードにわたって提供される分散サービスとすることができる。
一実施形態では、リソースディレクトリ120は、Basu他の「Nodewiz: Peer-to-peer resource discovery for grids」に説明されたNodeWizシステムに基づいている。
Nodewizシステムは、リソース発見用のスケーラブルなツリーベースのオーバーレイインフラストラクチャである。
例えば、各オーバーレイノードは、自身の利用可能なコンピュータリソース容量をリソースディレクトリ120へ送信し、リソースディレクトリ120は、この情報を記憶する。
容量属性の例には、CPU容量、メモリ容量、I/O容量等が含まれる。
また、最適化中、オーバーレイノード又は他の或るエンティティは、クエリをリソースディレクトリ120へ送信して、再配置された演算子を実行するのに使用できる所定の利用可能な容量を有するオーバーレイノードを識別することができる。
リソースディレクトリ120は、アドバタイズメントの分配及びクエリの実行の負荷がノード間でバランスされるように演算子の割り当てを適合させることができる。
統計の一例には、レイテンシ統計が含まれる。
ネットワーク監視サービス130は、Yalagandula他の「s3: A scalable sensing service for monitoring large networked systems」に説明されたS3に基づくことができる。
ネットワーク監視サービス130は、大規模ネットワーク化システムのためのリアルタイムで且つ構成可能な監視のためのスケーラブルセンシングサービスである。
このインフラストラクチャは、オーバーレイノード111を含むことができ、スケーラブルな方法でデータを集約している間、QoSメトリック、ノードレベルメトリック、及びサービスプロバイダメトリックを測定するのに使用され得る。
その上、推論アルゴリズムを使用して、ネットワークパスの小さなセットに基づくすべてのノード対のパス特性を導出することもできる。
最適化中、ネットワーク監視サービス130は、前もって必要なQoSを提供するノード間のエンドツーエンドオーバーレイパス又はエンドツーエンドオーバーレイリンク、例えば、しきい値よりも低いレイテンシを有するパスを識別するために、クエリを受けることができる。
例えば、リアルタイム金融パブリッシャ140aは、1つ又は複数のクライアントクエリに応じて、リアルタイムの株価を有するデータストリームを生成する。
金融ニュースパブリッシャ140bも、金融ニュースのデータストリームを生成する。
ノード111a〜111eにおける演算子は、それらノードの各演算子を実行することによりサブクエリを提供して、クライアントに所望のデータを提供するように機能する。
例えば、クライアント150a〜150cは、異なる企業の株価及び対応する金融ニュースを望み、クライアント150b及び150cは、データストリームの特定のソートを必要とする。
演算子は、パブリッシャからのオリジナルのデータストリームに対してサブクエリを実行して、所望のデータをクライアントに提供する。
結合演算子は、ノード111fへ移動され得るが、下流側演算子が影響を受ける。
最適化は、QoSメトリック制約にもノードのコンピュータリソース容量にも違反しない実現可能な配備プランを事前に計算する。
最適化は、登録されたすべてのクエリのための代替的な実現可能配備プランを事前に計算することを含む。
各ノードは、自身のローカル演算子の配置に関する情報を保持し、自身の「近傍(close neighborhood)」のノードと定期的に協力して、演算子の全セットを分散させる配備プランを構成する。
配備プランは、演算子と、パブリッシャからクライアントへのデータストリームのエンドツーエンドオーバーレイパスを提供する、演算子をホスティングするノードとを識別する。
その上、違反がない場合であっても、システムは、現在の配備よりも効率的な配備を適用することによって、自身の現在の状態を定期的に改善することができる。
このように、オーバーレイノードは、可能な最良の方法で自身の共有クエリに影響を与える自身のローカル演算子及び上流側演算子の配置に関する決定を行うことができる。
この手法の1つの主な利点は、ノードが独力で配置の決定を行うことができるということである。これによって、どのQoSメトリック制約違反にも迅速な対処が提供される。
これらのプランは、クエリの演算子のサブセットしか配備しないので、部分的と呼ばれる。
ノードは、上流側ノードから部分的プランを受信すると、上記上流側演算子の可能な配置を追加することによってプランを拡張する。
プランにおける演算子を共有するすべてのクエリのQoS制約を満たす部分的プランは、他のノードへ伝播される。
k−前方検索は、例えば最も低いレイテンシを招くローカル演算子から前方のk個の演算子(k operators ahead)の配置を発見する。
レイテンシの代わりに、他のQoSメトリックを使用することもできる。
最小のレイテンシに基づいて、QoS境界に違反する可能性のある部分的プラン(例えば、しきい値よりも大きなレイテンシ)は、最適化プロセスのできるだけ早期に削除される。
また、あらゆるノードは、自身のローカルな部分的プランを完成させる。
これは、各ノードが、帯域幅消費及びすべての影響を受けるクエリのレイテンシに対する自身の影響を評価することを含むことができる。
最終プランを使用すると、ノードは、ランタイムで高速配置決定を行うことができる。
代替的な実現可能配備プランのセットを選択するときに、例えば、エンドツーエンドレイテンシのようなクライアントによって提供される1つ又は複数のQoSメトリック、及びコンピュータリソースの利用可能な容量のような1つ又は複数のノードレベルメトリックを使用して、或るパスが実現可能なパスであるか否かを判断することができる。
また、例えば、最小総帯域幅消費、コンソリデーション等のようなサービスプロバイダメトリックといった別のタイプのメトリックを使用して、データストリーム用に配備するために、実現可能な配備プランのセットからパスの1つを選択することができる。
演算子oiは、クエリ
また、oiの上流側演算子のセットを
一例が図3に示される。
クエリq1及びq2は、演算子o1及びo2を共有し、
各部分的プランpは、(a)例えばその部分的プランが行われるときの帯域幅消費といった部分的コストpcp、及び(b)その部分的プランが影響を与える各クエリの部分的レイテンシ
例えば、o2に関する部分的プランは、演算子o1及びo2を2つのノードに割り当て、これらの配置に起因して消費される帯域幅、並びに各クエリq1及びq2のための演算子o2までの応答レイテンシを評価する。
配備プラン生成のための候補ノード及びQoSメトリック(例えば、レイテンシ)の評価は、以下でさらに詳細に説明される。
ステップ401において、クライアントはクエリを登録する。
例えば、図2に示すクエリ150aは、株価及び関連した金融ニュースを要求するクライアントクエリをパブリッシャ140a及び140bへ送信する。
図2に示すリソースディレクトリ120は、配備された演算子及びストリームについての情報を記憶するのに使用され得る。
これは、ノードの初期割り当て/クエリの初期配置についてのものであることに留意されたい。
パブリッシャ又はそれらのパブリッシャ演算子に最も近くない可能性のある他のノードは、最適化用に選択され得る。
例えば、そのクエリのためのデータストリームは、そのクエリを登録したクライアントへ送信される。
最適化プロセスは、1つ又は複数のメトリックの点から現在の配備プランよりも良好であり得る配備プランを識別する。
方法500のステップの1つ又は複数は、方法400におけるステップ405において実行することができる。
このプロセスは、最新のノードワークロード及びネットワーク状態を反映する実現可能な配備プランを作成する。
これらの事前に計算された配備プランは、オーバーレイノードに記憶され、QoS違反が検出されたときに使用され得、又は、事前に計算されたプランの1つを配備することによって帯域幅消費若しくは別のメトリックを改善できるか否かについての判断がなされる場合に使用され得る。
プラン生成プロセスは、方法600について以下でさらに詳細に説明される。
例えば、レイテンシのようなQoSメトリックがしきい値と比較される。このしきい値は制約である。
しきい値を超えている場合、QoS違反が発生している。
あらゆるオーバーレイノードは、そのローカル演算子を共有するすべてのクエリのレイテンシも定期的に受信し、それらのQoS期待値からのそれらの「スラック」、すなわち各クエリが許容できるレイテンシの増加、を定量化する。
例えば、単一のパブリッシャomを有する演算子oiであって、応答遅延dqt及びスラックslackqtを有するクエリqtによって共有される演算子oiを仮定する。
oiとomとの間のオーバーレイリンクのレイテンシが、Δd(h(om),h(oi))>slackqtだけ増加した場合、クエリqtのQoSは違反され、異なる配備が直ちに適用されるべきである。
このプランは、QoS違反を除去するだけ十分にQoSを改善すべきである。
この条件を充足するすべてのプランにわたって、oi及びomをマイグレーションせず(すなわち、ボトルネックリンクを含む)、且つ
例えば、上述したように、oi及びomをマイグレーションせず(すなわち、ボトルネックリンクを含む)、且つ
残りのプランから、帯域幅消費を最も多く改善する1つのプランが適用される。
例えば、この要求は、その下流側サブスクライバ/演算子へ伝播される。
すなわち、qtのQoSを満たすことができる配備をoiのホストにおいて発見できない場合、ノードは、違反したクエリqtについて、適したプランを求める要求を自身のサブスクライバへ送信する。
この要求は、輻輳したリンクに関するメタデータ(例えば、当該リンクの新しいレイテンシ)も含む。
このような要求を受信したノードは、クエリqtのQoSを充足できるプランの発見を試みる。
下流側ノードは、より多くの演算子をマイグレーションするプランを記憶するので、それら下流側ノードは、qtに関する実現可能な配備を発見する可能性がより高い。
この伝播は、違反したクエリの最後の演算子をホスティングするノードに達するまで続く。
プランを識別できない場合、ステップ507において、クエリを充足することはできない。
クライアントは、クエリを充足することができないことの通知を受けることができ、クライアントは、別のクエリを登録することができる。
そうでない場合、QoS違反を除去するだけ十分にQoSを改善できる、要求に応じて識別されたプランが配備される。
本質的に、ノードは、クエリのレイテンシを十分削減するプランを検索しなければならない。
最終プランは、それら最終プランが影響を与えるクエリに基づいてインデックスされ得、各クエリのレイテンシに対するそれら最終プランの影響に基づいてソートされ得る。
したがって、QoS違反が発生すると、本発明者らのシステムは、自身の「回復」配備を非常に迅速に識別することができる。
これらのステップの多くは、QoS違反が発生していないときに配備され得るが、新しいプランが、既存のプランよりも良好なQoS、又は良好なノードレベル(例えば、コンピュータリソース容量)メトリック若しくはサービスプロバイダメトリック(例えば、帯域幅消費)を提供できるとの判断が行われる。
方法600のステップの1つ又は複数は、プラン生成プロセスとして、方法500におけるステップ501において実行され得る。
k−前方検索によって、各ノードは、部分的配備プランために使用できるローカル演算子の候補ホストに気付く。
oiを、ノードnvで実行されるリーフ演算子とする。
ノードnvは、部分的プランのセットを作成する。
各部分的プランは、異なる候補ホスト
ノードnvは、自身の部分的コスト及びoiを共有するすべてのクエリの部分的レイテンシを評価する。
最後に、このプランは、最初の演算子を割り当てるので、その部分的帯域幅消費は0である。
部分的プランが一旦作成されると、その部分的プランを下流側に転送して、より多くの演算子マイグレーションを追加することにより拡張すべきか否かについての決定が行われる。
部分的プランは、実現可能な配備につながる可能性がある場合にのみ伝播される。
この決定は、k−前方検索の結果に基づく。
oiがnjに配置されていると仮定すると、三重項(oi,nj,qt)に関するk−前方レイテンシは、oiの前方のk個の演算子のすべての可能な配置にわたるクエリqtに対する最小レイテンシオーバーヘッドを表す。
演算子oiまでのクエリのレイテンシに前方のk個の演算子の最小レイテンシを加えたものがクエリのQoSに違反している場合、その部分的プランは、いかなる実現可能な配備にもつながる可能性はない。
より具体的には、
したがって、伝播されたプランは、以下のステップで実現不可能であると判明する場合がある「潜在的」に実現可能なプランである。
検索される前方の演算子が多いほど、k−前方検索のオーバーヘッドは高くなる。しかしながら、実現不可能なプランをより早期に発見することができる。
これらは、ステップ602から識別された実現可能な部分的配備プランを含む。
メタデータは、部分的レイテンシ及び/又はプランの実現可能性を判断するための他のメトリックを含むことができる。
例証の目的で、単一のパブリッシャを仮定するが、以下の式は、複数のパブリッシャについて直接的な方法で一般化され得る。
oiを共有する各クエリは、そのパブリッシャも共有していることに留意されたい。
したがって、受信された各プランは、部分的レイテンシ
最適化プロセスは、ローカル演算子oiをその候補ホストへマイグレーションすることを追加することによってこれらのプランのそれぞれを拡張する。
例えば、ノードnvは、プランpをパースして、いくつかの上流側演算子がnjにも割り当てられているか否かをチェックする。
これを容易にするために、各プランと共に、各プランに含まれる各演算子の予想負荷要件に関するメタデータが送信される。
njの残り容量が、oiを含む割り当てられたすべての演算子を処理するのに十分である場合、新しい部分的プランfの影響は、
ここで、hp(om)は、部分的プランpにおけるomのホストである。
新しい各部分的プランfについて、その部分的プランが、k−前方レイテンシ
例えば、プランを受信した中間ノードは、クエリの演算子の候補である。
中間ノードは、演算子をホスティングする自身のコンピュータリソース可用性を確認し、演算子をホスティングする予定である場合には、QoSに対する影響を判断する。
ステップ605において、実現可能な部分的プランが、帯域幅消費のようなサービスプロバイダメトリックに対する影響に基づいて選択される。
例えば、ノードで作成された部分的プランは、「完成」され、ローカルに記憶される。
部分的プランを完成させるために、現在の帯域幅消費及びその部分的プランが影響するクエリのレイテンシに対するその影響が評価される。
このプロセスを実施するために、あらゆるローカル演算子の上流側演算子によって消費される帯域幅及びこのローカル演算子までのクエリレイテンシに関する統計が保持される。
例えば、図3では、o1がリーフ演算子である場合、n2が、o1からo2への帯域幅消費及び演算子o2までのレイテンシに関する統計を保持する。
各プランについて、現在の配備とそのプランによって提案された配備との間のこれらのメトリックの差が評価され、対応する最終プランと共にメタデータとして記憶される。
したがって、あらゆるノードは、自身のローカル演算子及び上流側演算子の実現可能な配備のセットを、システムコスト及びクエリのレイテンシに対するこれらの配備の影響と共に記憶する。
図3では、n2は、演算子{o1,o2}をマイグレーションするプランを記憶する一方、n4は、{o1,o2,o4}を配置するプランを記憶する。
この問題を取り扱うために、多数の削除ヒューリスティクスを用いることができる。
例えば、クエリレイテンシに対して同様の影響を有する最終プランの間では、最小の帯域幅消費を有する最終プランが維持される一方、最終プランが帯域幅に対して同様の影響を有する場合には、クエリレイテンシを最も多く削減する最終プランが維持される。
ステップ601において、リーフノードが部分的プランを作成する。
部分的プランは、k−前方検索を使用して作成され得る。
直観的に、oiをノードnjへマイグレーションすることが各クエリqtの次のk個の下流側演算子の(例えば、レイテンシについての)最良の配置決定を行う場合、検索は、各クエリ
以下に、k−前方検索のステップが説明される。
k−前方検索は、最初に、1−前方レイテンシを評価し、次に、あらゆる三重項(oi,nj,qt)に関するk−前方レイテンシ値を導出する。
ここで、
oiの制約要件はC={(c1,v1),(c2,v2),…,(cm,vm)}であると仮定し、リソースディレクトリは、c1≧v1∧c2≧v2∧…∧cm≧vmを有するノードについてクエリされると仮定する。
ここで、ciはリソース属性であり、viは、そのリソースに関する演算子の要件である。
これらの候補ノードのそれぞれ1つについて、そのノードは、レイテンシ
oi演算子の候補nj及びクエリ
図3では、
また、o2について、
oi演算子の候補nj及びクエリ
この場合、
したがって、o1のn5へのマイグレーションを仮定すると、次の2つの演算子の最小レイテンシを有する配置は、q1の部分的応答レイテンシを15msだけ増加させ、q2の部分的レイテンシを25msだけ増加させる。ここで、各部分的レイテンシは、より多くの演算子がそのクエリに割り当てられるほど増加する。
例えば、図3において、q1及びq2の双方のQoSが満たされないと仮定し、ノードn3及びn4が、各クエリについて異なる配備プランを適用するように同時に決定すると仮定する。
これらのプランの並列実行は、それらのQoS期待値が充足されることを保証しない。
配備プランは、演算子のマイグレーションが、それら演算子に依存するすべてのクエリのQoSメトリック制約を充足できないときはいつでもそれら演算子を複製することによって実施される。
しかしながら、複製処理は、帯域幅消費を増加させるだけでなく、システムの処理負荷も増加させる。
したがって、プロセスは、衝突が代替的な候補プランによって解決できるか否かを識別し、代替的な候補プランが利用可能でない場合には、プロセスは複製を適用する。
プロセスは、プラン生成フェーズ中に作成されたメタデータを使用して、複製ソリューションに代わるものを識別する。
より具体的には、プロセスは、既存の配備プランを使用して、(1)マイグレーションによるプランを適用することが、同時に違反されたすべてのクエリを充足するか否かを決定し、(2)安全であるときはいつでも複数のマイグレーションを可能にし、すなわち、並列マイグレーションを可能にし、(3)既存の配備プランを使用できないときは、衝突のないプランを構築する。
次のパラグラフでは、プロセスが、以下の定義を使用して説明される。
その場合、qi及びqjは、あらゆる演算子okの依存するクエリである。
クエリqiの依存するクエリのセットはDqiであり、演算子okの依存するクエリはDokである。
この場合、O(qi)がクエリqiにおける演算子のセットである場合、
それにもかかわらず、それらの配備プランに対する同時変更は、それらの共通の依存するクエリに影響を与える可能性がある。
したがって、プロセスは、これらの衝突にも同様に対処し、依存するクエリのOoS期待値が充足されることを保証する。
同時変更を検出するために、リースベース(lease-based)の手法が使用される。
新しい配備が適用されるべきであるとノードが一旦決定すると、プランのすべての演算子及びそれらの上流側演算子はロックされる。
すでにロックされた演算子のマイグレーションを試みるノードは、自身の変更が、進行中の現在のものと衝突しないか否かをチェックする。
衝突が存在する場合、ノードは、衝突のない代替的な配備を識別することを試みる。
そうでない場合、ノードは、演算子を複製することによって、自身の初期プランを適用する。
リースベースの手法は、次のパラグラフで説明される。
ノードは、REQUEST LOCK(q,p)(ロック要求)メッセージを自身のパブリッシャ及びサブスクライバへ転送する。
間接的な依存関係をハンドリングするために、このロック要求を受信した各ノードも、そのロック要求を、クエリqの自身のローカル演算子のサブスクライバへ送信する。
この要求は、いずれかのクエリ演算子及びそれらに依存するものを実行するノードに、新しい配備プランを知らせ、q及びその依存するもののロックを要求する。
クエリがロックを有さない(これは、依存するものを有さないクエリには常に当てはまる)とすると、パブリッシャ/サブスクライバは、そのクエリの自身のパブリッシャ/サブスクライバからMIGR LEASE(q)要求を一旦受信すると、MIGR LEASE(q)許可でリプライする。
マイグレーションリースを許可したノードは、そのリースが解除される(又は或る満了しきい値に基づいて満了する)まで、別のマイグレーションリースを許可することが認められない。
ノードnは、配備プランをパースし、ノードnへのマイグレーション演算子oをホスティングするノードごとに、MIGRATE(o,n)メッセージを送信する。
マイグレーションは、クエリプランのトップダウン方向で適用される。すなわち、最も上流側のノードが(プランによって必要とされている場合に)自身の演算子をマイグレーションし、このプロセスが一旦完了すると、すぐ隣の演算子(immediate operator)は、変更を知らされ、それら演算子の新しいロケーションへサブスクライブする。
ノードは、自身の接続を更新するとき、プランによって指定されたあらゆるローカルマイグレーションも適用する。
プラン全体が一旦配備されると、RELEASE LOCK(q)要求が、演算子及びそれらに依存するものの古いロケーションへ転送され、これらは、クエリのロックを解除する。
ロックが一旦許可されると、あらゆる後続のロック要求は、複製リース又はマイグレーションリースのいずれかによって充足される。
マイグレーションリースによって、配備プランは、その演算子をマイグレーションすることによって適用されることが可能になる。
しかしながら、クエリネットワーク上での同時変更によってこのようなリースを許可できない場合、複製リースを許可することができ、ノードは、関与する演算子を複製することによってそのクエリの配備プランを適用することが可能になる。
このように、この特定のクエリのみが影響を受ける。
次に、共にそのQoSメトリック制約が違反されている2つの依存するクエリqi及びqjを仮定する。
クエリqiは、REQUESTLOCK(qi,pi)要求をこの下流側演算子へ送信し、クエリqjについても同様である。
その上、依存関係に気付いている共有演算子は、同じ要求を自身のサブスクライバへ転送して、依存するクエリにも、要求されたロックを知らせる。
クエリはいくつかの演算子を共有するので、少なくとも1つの演算子は、双方のロック要求を受信する。
その演算子は、最初の要求を受信すると、後述する手順を適用する。すなわち、衝突を識別し、2つのプランのメタデータに基づいて衝突を解決する。
一方、2番目のロックの要求が到着すると、受信する最初の共有ノードは、このクエリのマイグレーションリースがすでに許可されているので、その要求をどのパブリッシャへも転送しない。
直接的な依存関係については、直接的に依存するプランに対する同時変更が生じる。
2つの配備プランがクエリの同じセットに影響を与えない場合、双方のプランを並列に適用することができる。
例えば、図3において、n3がo3のみをマイグレーションし、n4がo4のみをマイグレーションすると決定した場合、双方の変更を適用することができる。
この場合、n3及びn4によって決定された2つのプランは、それぞれクエリq1及びq2に対して影響がないことを示すべきである。
配備プランは、これらの場合を効率的に識別するすべての必要な情報(マイグレーションされる演算子、新しいホスト、クエリに対する影響)を含み、したがって、衝突のない複数のプランにマイグレーションリースを許可する。
非常に多くの場合に、ノードは、並列にQoS違反を識別し、自身のローカルに記憶された配備プランを適用することによってそれら違反に対処しようと試みることができる。
この場合、現在の配備を再構成するには、それらプランのいずれか1つで十分である可能性がかなりある。
しかしながら、あらゆるプランが、影響を受けるすべてのクエリに対する影響の評価を含む。
したがって、2つのプランp1及びp2が共に同じクエリのセットに影響を与えている場合、いずれか一方を適用することによっても、本発明者らのクエリの実現可能な配備が提供される。
したがって、マイグレーションリースを最初に取得したプランが適用される一方、2番目のプランは無視される。
この場合、ロックを要求する最初のプランが、演算子をマイグレーションする一方、充足されないあらゆるQoS期待値を満たすために、新しい代替的な衝突のない配備プランを識別する試みが行われる。
最初のプランは、共有演算子をマイグレーションしているので、このマイグレーションの上に構築されたあらゆるプランを求めて、下流側演算子のホストが検索される。
例えば、図3において、最初のプランが演算子o1をマイグレーションするが、q2のQoSが依然として満たされない場合、o1に対する同じマイグレーションを含むあらゆるプランを求めて、ノードn4が検索され、o4も同様にマイグレーションすることによってq2の応答遅延をさらに削減することができる。
したがって、間接的に依存するクエリの配備を変更する試みが行われる場合、それらの共有された依存するものに対する影響が考慮される。
この場合、適用されるプランが、依存するクエリの重複セットに影響を与えている場合、マイグレーションリースが、最初のロック要求に許可され、あらゆる後続の要求に複製リースが許可される。
一方、それらプランが、同じクエリのQoSに影響を与えない場合、これらのプランは、並列に適用され得る。
ステップ701において、ノードは、例えば、QoSメトリック制約違反により、新しい配備プランを適用すべきと判断する。
あらゆる演算子がロックされている場合には、ステップ703において、衝突が存在するか否かについての判断が行われる。
コンピュータシステム800は、ソフトウェアを実行するための実行プラットフォームを提供するプロセッサ802のような1つ又は複数のプロセッサを含む。
コンピュータシステム800は、ソフトウェアがランタイム中常駐できるランダムアクセスメモリ(RAM)のようなメインメモリ804、及びデータストレージ806も含む。
データストレージ806は、例えば、ソフトウェアのコピーを記憶できるハードディスクドライブ及び/若しくは着脱可能記憶ドライブ、又は不揮発性メモリを含む。着脱可能記憶ドライブは、フロッピー(登録商標)ディスケットドライブ、磁気テープドライブ、コンパクトディスクドライブ等を表す。
データストレージ806には、ROM(読み出し専用メモリ)、EPROM(消去可能プログラマブルROM)、EEPROM(電気的消去可能プログラマブルROM)も含めることができる。
本明細書で説明したルーティングステップ及び他のステップのソフトウェアに加えて、ルーティングテーブル、ネットワークメトリック、及び他のデータをメインメモリ804及び/又はデータストレージ806に記憶することができる。
他のノード及びコンピュータシステムと通信するためのネットワークインターフェース808が提供される。
これらのステップは、コンピュータプログラムによって具現化され得、コンピュータプログラムは、アクティブ及び非アクティブの双方のさまざまな形態で存在することができる。
例えば、ステップは、当該ステップのいくつかを実行するためのソースコード、オブジェクトコード、実行可能コード、又は他のフォーマットのプログラム命令で構成されたソフトウェアプログラム(複数可)として存在することができる。
上記のいずれも、コンピュータ可読媒体上に具現化することができる。コンピュータ可読媒体には、圧縮形態又は非圧縮形態の記憶デバイス及び信号が含まれる。
適したコンピュータ可読記憶デバイスの例には、従来のコンピュータシステムRAM(ランダムアクセスメモリ)、ROM(読み出し専用メモリ)、EPROM(消去可能プログラマブルROM)、EEPROM(電気的消去可能プログラマブルROM)、及び磁気ディスク若しくは磁気テープ又は光ディスク若しくは光テープが含まれる。
コンピュータ可読信号の例には、搬送波を使用して変調されているか否かに関わらず、コンピュータプログラムをホスティング又は実行するコンピュータシステムにアクセスするように構成され得る信号であり、インターネット又は他のネットワークを通じてダウンロードされた信号が含まれる。
前述のものの具体例には、CD ROMによる又はインターネットダウンロードを介したプログラムの配布が含まれる。
或る意味で、インターネットそのものが、抽象エンティティとして、コンピュータ可読媒体である。
同じことは、コンピュータネットワーク一般に当てはまる。
したがって、添付の請求の範囲で列挙される機能は、上述した機能を実行できる任意の電子デバイスによって実行できることが理解されるべきである。
110 オーバーレイネットワーク
111 オーバーレイノード
120 リソースディレクトリ
130 ネットワーク監視サービス
140 データソース
150 クライアント
800 コンピュータシステム
802 プロセッサ
804 メモリ
806 マスストレージ
807 I/Oデバイス
808 ネットワークインターフェース
Claims (15)
- 分散共有ストリーム処理システムにおけるクエリに関する配備プランを提供する方法であって、
前記ストリーム処理システムにおいて現在配備されているクエリに関する事前に計算された実現可能な配備プランのセットを記憶することであって、前記クエリは、情報を求めるクライアント要求に応答してデータストリームを提供する、前記ストリーム処理システム内のノードでホスティングされる複数の演算子を含む、記憶することと、
前記クエリのQoSメトリック制約が違反されているか否かを判断することと、
前記QoSメトリック制約が違反されているとの判断に応じて、前記クエリを提供するのに使用される前記実現可能な配備プランのセットから一配備プランを選択することと
を含む方法。 - 前記実現可能な配備プランのセットを記憶することは、
複数の部分的配備プランを識別することと、
前記QoSメトリックに基づいて、前記複数の部分的配備プランから前記実現可能な部分的配備プランを識別することと、
前記プランのそれぞれについて演算子を実行するノードのコンピュータリソースの可用性に基づいて、前記実現可能な部分的配備プランのサブセットを識別することと、
サービスプロバイダメトリックを最適化するように前記実現可能な部分的配備プランのサブセットの1つ又は複数を選択することと、
前記選択されたプランを記憶することと
を含む
請求項1に記載の方法。 - 前記複数の部分的配備プランを識別することは、
前記クエリのリーフノードにおいて複数の部分的配備プランを識別することと、
実現可能であると判断された前記部分的配備プランを、下流側に、前記部分的配備プランの演算子をホスティングするノードへ、前記下流側ノードによって使用されるメタデータと共に転送することであって、それによって、前記部分的配備プランを、そのローカルに実行される演算子の配置で拡張し、前記QoSメトリックに対する前記配置の影響を定量化する、転送することと
を含む
請求項2に記載の方法。 - 前記クエリのリーフノードにおいて複数の部分的配備プランを識別することは、
k−前方検索を実行することであって、それによって、前記QoSメトリックに対する影響を判断し、k個の下流側演算子の最良の配置を提供する、実行すること
を含む
請求項3に記載の方法。 - 前記k−前方検索は、
各部分的配備プランについて、前記部分的配備プランの演算子をホスティングする候補ノードを識別することと、
下流側演算子をホスティングするノードへ、前記下流側演算子の候補ホストの第2のセット及び前記候補の前記QoSメトリックの推定値を求める要求を送信することと、
前記QoSメトリック制約が、前記候補ノードのそれぞれについて違反されているか否かを評価することと、
要求を送信する前記ステップ及び後続の下流側演算子について前記QoSメトリックを評価する前記ステップを繰り返すことであって、それによって、前記QoSメトリック制約を違反しない部分的プランを求める、繰り返すことと
を含む
請求項4に記載の方法。 - 前記実現可能な部分的配備プランのサブセットを識別することは、
前記下流側ノードのそれぞれにおいて、該ノードが、前記演算子をホスティングするのに十分な利用可能なコンピュータリソースを有するか否かを判断することと、
前記QoSメトリックに基づいて前記部分的プランの前記影響を推定することと、
前記QoSメトリック制約を充足する部分的プランのみを下流側へ伝播することと
を含む
請求項3に記載の方法。 - サービスプロバイダメトリックを最適化するように実現可能な部分的配備プランの前記サブセットの1つ又は複数を選択することは、
あらゆるローカル演算子のすべての上流側演算子について、前記サービスプロバイダメトリックに関する統計を保持することと、
実現可能な部分的配備プランの前記サブセットの1つ又は複数を、前記統計に基づいて記憶するように選択することと
を含む
請求項6に記載の方法。 - 前記クエリのQoSメトリック制約が違反されているか否かを判断することは、
前記クエリにおける各ノードが、自身のパブリッシャのロケーションへの自身の演算子の前記QoSメトリックを監視することと、
各ノードが、前記QoSメトリックの前記監視に基づいて、前記QoSメトリック制約が違反されているか否かを判断することと
を含む
請求項1に記載の方法。 - 前記QoSメトリック制約が違反されているか否かを各ノードが判断することは、
各ノードについて、そのノードでホスティングされる前記演算子を共有するすべてのクエリの前記QoSメトリックを求めることと、
前記QoSメトリックの許容範囲が、前記クエリのいずれについても違反されているか否かを判断することと
を含む
請求項8に記載の方法。 - 分散ストリーム処理システムにおいて衝突を解決してクエリの配備プランを配備する方法であって、
既存のクエリに関する新しい配備プランが適用されるべきと判断することと、
前記新しい配備プランの各演算子について、その演算子がまだロックされていない場合にはその演算子をロックすることと、
その演算子がすでにロックされている場合には、衝突が存在するか否かを判断することと、
衝突が存在する場合には、代替的な配備プランを識別することと、
衝突が存在しない場合には、前記演算子を複製し、前記新しい配備プランを配備することと
を含む方法。 - 前記演算子をロックすることは、
前記新しい配備プランを適用すると判断したノードが、自身のパブリッシャ及び前記クエリのサブスクライバへロックする要求を送信することと、
前記要求を受信した各ノードが、前記クエリの自身の演算子のサブスクライバへ前記要求を送信することと
を含む
請求項10に記載の方法。 - 前記要求を受信したノードは、前記演算子がまだロックされていない場合に前記クエリのローカル演算子をロックし、
前記演算子をロックすることは、前記ロックが解除されるまで、前記ノードが前記ロックされた演算子の別のマイグレーションを可能にすることを防止する
請求項11に記載の方法。 - 衝突は、前記クエリが別のクエリと直接的又は間接的な依存関係を有する場合に存在するように実施可能であり、
前記直接的な依存関係は、前記クエリ及び前記別のクエリが演算子を共有するか否かに基づき、前記間接的な依存関係は、演算子が前記クエリ及び前記別のクエリによって共有されないが、前記クエリ及び前記別のクエリの双方が1つの演算子を共有する第3のクエリが存在するときである
請求項10に記載の方法。 - 実行されると方法を実行する命令を含むソフトウェアを記憶するコンピュータ可読記憶媒体であって、前記方法は、
分散ストリーム処理システムにおけるデータストリームのエンドツーエンドオーバーレイパスを提供するオーバーレイネットワークに現在配備されているクエリに関する部分的配備プランを作成することと、
前記クエリのためのローカル演算子の上流側演算子によって消費される帯域幅に関する統計を記憶することと、
前記ローカル演算子までのクエリレイテンシに関する統計を記憶することと、
各部分的配備プランについて、前記部分的配備プランについて前記消費される帯域幅及びレイテンシと、前記現在配備されているクエリについて前記消費される帯域幅及びレイテンシとの間の差を評価することと、
各部分的配備プランについて、前記部分的配備プランが前記配備されたクエリよりも良好であること及び前記部分的配備プランがQoSメトリック制約を充足することを、前記評価された差が示す場合に、その部分的配備プラン及びその部分的配備プランのその後の評価のためのメタデータとを記憶することと
を含む
コンピュータ可読記憶媒体。 - 前記クエリは、前記オーバーレイネットワーク内のノードによってホスティングされる複数の演算子を含み、前記ノードのそれぞれは、前記クエリに関して事前に計算された複数の配備プランを共に形成する部分的配備プランを作成し、評価し、及び記憶する
請求項14に記載のコンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2430008P | 2008-01-29 | 2008-01-29 | |
US12/244,878 US20090192981A1 (en) | 2008-01-29 | 2008-10-03 | Query Deployment Plan For A Distributed Shared Stream Processing System |
PCT/US2009/032450 WO2009097438A2 (en) | 2008-01-29 | 2009-01-29 | Query deployment plan for a distributed shared stream processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011514577A true JP2011514577A (ja) | 2011-05-06 |
Family
ID=40900240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010544484A Pending JP2011514577A (ja) | 2008-01-29 | 2009-01-29 | 分散共有ストリーム処理システムのクエリ配備プラン |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090192981A1 (ja) |
JP (1) | JP2011514577A (ja) |
KR (1) | KR20100113098A (ja) |
CN (1) | CN101933018A (ja) |
WO (1) | WO2009097438A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013502642A (ja) * | 2009-08-18 | 2013-01-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | イベント・ドリブン・システムにおける非集中負荷分散の方法およびコンピュータ・プログラム |
KR20180079183A (ko) * | 2016-12-30 | 2018-07-10 | 삼성전자주식회사 | 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 |
JP2022006909A (ja) * | 2020-06-25 | 2022-01-13 | Kddi株式会社 | 制御装置、情報処理装置、情報処理制御方法及びコンピュータプログラム |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101594577B1 (ko) * | 2009-11-19 | 2016-02-16 | 삼성전자주식회사 | 클러스터 질의를 이용한 데이터 스트림 처리 장치 및 방법 |
US9237105B2 (en) * | 2009-12-08 | 2016-01-12 | Microsoft Technology Licensing, Llc | Data communication with compensation for packet loss |
US9430494B2 (en) | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
US8549125B2 (en) * | 2010-03-11 | 2013-10-01 | International Business Machines Corporation | Environmentally sustainable computing in a distributed computer network |
US9798696B2 (en) * | 2010-05-14 | 2017-10-24 | International Business Machines Corporation | Computer system, method, and program |
JP5520369B2 (ja) * | 2010-05-14 | 2014-06-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ・システム、方法及びプログラム |
US8996503B2 (en) * | 2010-10-04 | 2015-03-31 | Sybase, Inc. | Query plan optimization for prepared SQL statements |
CN103154935B (zh) * | 2010-10-11 | 2016-08-24 | 惠普发展公司,有限责任合伙企业 | 用于查询数据流的系统和方法 |
US9189280B2 (en) | 2010-11-18 | 2015-11-17 | Oracle International Corporation | Tracking large numbers of moving objects in an event processing system |
US8990416B2 (en) | 2011-05-06 | 2015-03-24 | Oracle International Corporation | Support for a new insert stream (ISTREAM) operation in complex event processing (CEP) |
US9396157B2 (en) | 2011-08-26 | 2016-07-19 | International Business Machines Corporation | Stream application performance monitoring metrics |
JP5927871B2 (ja) * | 2011-11-30 | 2016-06-01 | 富士通株式会社 | 管理装置、情報処理装置、管理プログラム、管理方法、プログラムおよび処理方法 |
US9424150B2 (en) * | 2011-12-06 | 2016-08-23 | Sap Se | Fault tolerance based query execution |
US9744442B2 (en) | 2012-08-27 | 2017-08-29 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Dynamic quality of service management in multiplayer gaming |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US9805095B2 (en) | 2012-09-28 | 2017-10-31 | Oracle International Corporation | State initialization for continuous queries over archived views |
CN102981909B (zh) * | 2012-10-22 | 2015-11-25 | 百度在线网络技术(北京)有限公司 | 控制终端的应用程序迁移的方法、装置及终端 |
US10956422B2 (en) | 2012-12-05 | 2021-03-23 | Oracle International Corporation | Integrating event processing with map-reduce |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9390135B2 (en) | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
US9690829B2 (en) | 2013-04-15 | 2017-06-27 | Vmware, Inc. | Dynamic load balancing during distributed query processing using query operator motion |
US9659057B2 (en) * | 2013-04-15 | 2017-05-23 | Vmware, Inc. | Fault tolerant distributed query processing using query operator motion |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
CN104516994B (zh) * | 2013-09-29 | 2019-03-19 | 国际商业机器公司 | 计算机实现的辅助发布规划的方法和装置 |
US9934279B2 (en) | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
US20150248461A1 (en) * | 2014-02-28 | 2015-09-03 | Alcatel Lucent | Streaming query deployment optimization |
US20150248462A1 (en) * | 2014-02-28 | 2015-09-03 | Alcatel Lucent | Dynamically improving streaming query performance based on collected measurement data |
CN104020994B (zh) * | 2014-05-30 | 2017-07-14 | 华为技术有限公司 | 基于流系统的流过程定义装置和流过程定义方法 |
US9712645B2 (en) | 2014-06-26 | 2017-07-18 | Oracle International Corporation | Embedded event processing |
MY186962A (en) * | 2014-07-23 | 2021-08-26 | Mimos Berhad | A system for querying heterogeneous data sources and a method thereof |
US9886486B2 (en) | 2014-09-24 | 2018-02-06 | Oracle International Corporation | Enriching events with dynamically typed big data for event processing |
US10120907B2 (en) | 2014-09-24 | 2018-11-06 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
WO2017018901A1 (en) | 2015-07-24 | 2017-02-02 | Oracle International Corporation | Visually exploring and analyzing event streams |
US10263908B1 (en) * | 2015-12-09 | 2019-04-16 | A9.Com, Inc. | Performance management for query processing |
WO2019050952A1 (en) * | 2017-09-05 | 2019-03-14 | Brandeis University | SYSTEMS, METHODS, AND MEDIA FOR DISTRIBUTING DATABASE INTERROGATIONS THROUGH A PAYING VIRTUAL NETWORK |
CN110190991B (zh) * | 2019-05-21 | 2020-06-02 | 华中科技大学 | 一种多应用场景下的分布式流处理系统的容错方法 |
WO2021254288A1 (en) * | 2020-06-14 | 2021-12-23 | Wenfei Fan | Querying shared data with security heterogeneity |
CN112884248B (zh) * | 2021-03-24 | 2023-01-06 | 苏州大学 | 一种大规模云服务流程的优化方法 |
CN116610533B (zh) * | 2023-07-17 | 2023-09-26 | 江苏挚诺信息科技有限公司 | 分布式数据中心运维管理方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060200251A1 (en) * | 2005-03-01 | 2006-09-07 | Xiaohui Gu | Systems and methods for optimal component composition in a stream processing system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345279B1 (en) * | 1999-04-23 | 2002-02-05 | International Business Machines Corporation | Methods and apparatus for adapting multimedia content for client devices |
US7093001B2 (en) * | 2001-11-26 | 2006-08-15 | Microsoft Corporation | Methods and systems for adaptive delivery of multimedia contents |
US7640230B2 (en) * | 2005-04-05 | 2009-12-29 | Microsoft Corporation | Query plan selection control using run-time association mechanism |
-
2008
- 2008-10-03 US US12/244,878 patent/US20090192981A1/en not_active Abandoned
-
2009
- 2009-01-29 CN CN2009801034322A patent/CN101933018A/zh active Pending
- 2009-01-29 JP JP2010544484A patent/JP2011514577A/ja active Pending
- 2009-01-29 WO PCT/US2009/032450 patent/WO2009097438A2/en active Application Filing
- 2009-01-29 KR KR1020107017078A patent/KR20100113098A/ko not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060200251A1 (en) * | 2005-03-01 | 2006-09-07 | Xiaohui Gu | Systems and methods for optimal component composition in a stream processing system |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013502642A (ja) * | 2009-08-18 | 2013-01-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | イベント・ドリブン・システムにおける非集中負荷分散の方法およびコンピュータ・プログラム |
KR20180079183A (ko) * | 2016-12-30 | 2018-07-10 | 삼성전자주식회사 | 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 |
KR102506605B1 (ko) | 2016-12-30 | 2023-03-07 | 삼성전자주식회사 | 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 |
KR20230035016A (ko) * | 2016-12-30 | 2023-03-10 | 삼성전자주식회사 | 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 |
KR102624607B1 (ko) | 2016-12-30 | 2024-01-12 | 삼성전자주식회사 | 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 |
JP2022006909A (ja) * | 2020-06-25 | 2022-01-13 | Kddi株式会社 | 制御装置、情報処理装置、情報処理制御方法及びコンピュータプログラム |
JP7350694B2 (ja) | 2020-06-25 | 2023-09-26 | Kddi株式会社 | 制御装置、情報処理装置、情報処理制御方法及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2009097438A2 (en) | 2009-08-06 |
CN101933018A (zh) | 2010-12-29 |
KR20100113098A (ko) | 2010-10-20 |
US20090192981A1 (en) | 2009-07-30 |
WO2009097438A3 (en) | 2009-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011514577A (ja) | 分散共有ストリーム処理システムのクエリ配備プラン | |
US10567303B2 (en) | System and method for routing service requests | |
Marozzo et al. | P2P-MapReduce: Parallel data processing in dynamic Cloud environments | |
Maggs et al. | Algorithmic nuggets in content delivery | |
Sivasubramanian et al. | Replication for web hosting systems | |
JP5090450B2 (ja) | 階層に編成され、ネットワークを介してリンクされた複数のノードに保管された複製データを更新するための方法、プログラム、およびコンピュータ可読媒体 | |
US9053167B1 (en) | Storage device selection for database partition replicas | |
US9143452B2 (en) | Data processing | |
US20120084386A1 (en) | System and method for sharing network storage and computing resource | |
US6973536B1 (en) | Self-adaptive hybrid cache | |
Mastroianni et al. | Designing an information system for Grids: Comparing hierarchical, decentralized P2P and super-peer models | |
US11277489B2 (en) | Software application updating in a local network | |
CN110611688B (zh) | 用于查找节点的方法、电子设备和计算机程序产品 | |
Kamali et al. | Dynamic data allocation with replication in distributed systems | |
US9003034B2 (en) | Method for operating a local area data network | |
JP2004302564A (ja) | ネームサービス提供方法及びその実施装置並びにその処理プログラム | |
WO2018116389A1 (en) | Method and distributed storage system for aggregating statistics | |
US11157454B2 (en) | Event-based synchronization in a file sharing environment | |
van Renesse et al. | Autonomic computing: A system-wide perspective | |
Jeanvoine et al. | RW-OGS: an optimized randomwalk protocol for resource discovery in large scale dynamic Grids | |
Aznar-Poveda et al. | SDKV: A Smart and Distributed Key-Value Store for the Edge-Cloud Continuum | |
Antoine et al. | A generic API for load balancing in distributed systems for big data management | |
CN108965387A (zh) | 一种提高p2p数据存储抗毁性的均衡方法及系统 | |
Kwan et al. | Resource discovery and scheduling in unstructured peer-to-peer desktop grids | |
Papaemmanouil et al. | Adaptive in-network query deployment for shared stream processing environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20120201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120731 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20121012 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20121019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121226 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130507 |