JP5108011B2 - バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム - Google Patents

バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP5108011B2
JP5108011B2 JP2009521197A JP2009521197A JP5108011B2 JP 5108011 B2 JP5108011 B2 JP 5108011B2 JP 2009521197 A JP2009521197 A JP 2009521197A JP 2009521197 A JP2009521197 A JP 2009521197A JP 5108011 B2 JP5108011 B2 JP 5108011B2
Authority
JP
Japan
Prior art keywords
message flow
physical processing
processing node
logical operator
logical
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.)
Expired - Fee Related
Application number
JP2009521197A
Other languages
English (en)
Other versions
JP2009545043A (ja
Inventor
ジェン、ジュン−ジャン
ラング、クリスチャン、アレクサンダー
スタノイ、イオアナ、ロクサーナ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009545043A publication Critical patent/JP2009545043A/ja
Application granted granted Critical
Publication of JP5108011B2 publication Critical patent/JP5108011B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/4013Management of data rate on the bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、一般に分散処理システムの分野に関し、とりわけ、分散処理システム内の処理ノード間でのメッセージ・フローの削減に関する。
企業はますます自社のビジネス・プロセスを自動化しており、さらに重要なことには、関連する低レベルのタスクもさらに自動化している。現在、企業には、過程、動作、手順、および業務報告を文書化する厳密なブックキーピングを維持するための、サーベンス・オクスリー法(Sarbanes−Oxley)、HIPPA、およびテロ対策法(Patriotic Act)などの内部および外部規定が求められている。これに応答して組織は、自社のビジネス・プロセスを自動化および制御するための、ビジネス・アクティビティ・モニタリング(「BAM」)などのソリューションに目を向けている。
新しい連邦規定の順守の必要性に加えて、ビジネス・プロセスの自動モニタリングは、生産性の増加にもつながる。イベントはいくつかの企業階層間を流れるため、このイベントを使用して階層の様々な構成要素を一括して見ることができる。イベントは、システム全体を流れ、情報を運び、プロセス全体を支持する、血球に似ている。
以下の考察では、イベントを全面的に活用する複雑なモニタリング・システムによってもたらされる課題のいくつかを例示する。第1の課題は、イベント・ソースおよびモニタに関するスケーラビリティである。たとえば、複雑なモニタリング・アプリケーションの諸要件に起因して生じるイベント管理への影響を考えてみる。イベントは様々なアーキテクチャ階層間を流れ、その後、分析処理のモニタリング関係タスクについて格納され、取り出される。ビジネス・プロセス・タスクの自動化の結果として、分析のために生成された、分析に必要なイベント数が増加する。同時に、これらのイベント全体にわたって複雑さが増加していく照会についての諸要件も段階的に増大する。これらのプロセスは、同じイベント管理リソースについて競合する。システムを流れるイベントの数が増えることの他の影響は、ネットワークおよび競合リソースの輻輳である。
単純な照会のみを許可することによってイベント管理ストレージにかかる負荷を減らすことは、モニタリング・システムの機能および潜在能力の低下につながるため、任意選択でないことに留意されたい。他の課題は、イベントの格納および照会の競合に伴うものである。自動化されるビジネス・タスクの数および詳細が増加すると、結果として、多数のイベントが生じる。最低でも、不可欠な主要業績評価指標(「KPI」)の計算に寄与するイベントは、他の分析のために格納するべきである。この情報は、メトリクスが示す問題の出所を理解する際に不可欠である。格納されるべきイベントの量が増加すると、イベント全体にわたる照会の数および複雑さも増加する。イベント管理データベースは更新と照会の両方をサポートしなければならないため、システム全体のボトルネックになる。
さらに他の課題は、ネットワークおよび計算リソースに伴うものである。たとえば、多くの現在の複雑なモニタリング・システムは、ビジネス・プロセスによって生成されるイベントの数および率が増えることから生じる、ネットワークおよびミドルウェアの輻輳を経験する。これらの複雑なモニタリング・システムは、アプリケーション・レベルで無用な計算も実行する。メトリクスの計算に必要でないイベントが依然として処理およびフィルタリングされる必要があり、これが他の潜在的なボトルネックにつながる可能性がある。多くの現在のモニタリング・システムによって、冗長計算も実行される。フィルタリング・ステップは、異なるモニタリング・コンテキスト間で、さらには異なるモニタ間で重複する計算も含む可能性がある。
したがって、前述のような従来技術に伴う問題を克服することが求められている。
手短に言えば、本発明に従って、メッセージ・バス上のメッセージ・フローを削減するためのシステム、方法、およびコンピュータ読み取り可能媒体が開示されている。この方法は、複数の論理演算子のうちの少なくとも1つの論理演算子が、物理ノードのグループ内の所与の物理処理ノードでの処理を必要とするかどうかを判別することを含む。論理演算子が所与の物理処理ノードでの処理を必要とする旨の決定に応答して、論理演算子が所与の物理処理ノードにピンニング(pin)される。複数の論理演算子内の各論理演算子は、メッセージ・バス上にある物理処理ノードのグループ内の初期の物理処理ノードに割り当てられる。
他の実施形態では、メッセージ・バス上のメッセージ・フローを削減するためのシステムが開示される。このシステムは、通信に関してメッセージ・バスに結合された複数の物理処理ノードを備える。少なくとも1つの情報処理システムが、通信に関して複数の物理処理ノードに結合される。情報処理システムは、物理処理ノードのうちの少なくとも1つに常駐する複数の論理演算子のうちの少なくとも1つの論理演算子が、物理処理ノードのうちの1つでの処理を必要とするかどうかを判別するための、論理演算子ピンナ(pinner)を含む。この論理演算子ピンナは、論理演算子が所与の物理処理ノード上での処理を必要とする旨の決定に応答して、論理演算子を所与の物理処理ノードにピンニングする。情報処理システムは、複数の論理演算子内の各論理演算子を、メッセージ・バス上にある複数の物理処理ノード内の初期の物理処理ノードに割り当てるための、論理演算子アサイナ(assignor)も含む。
他の実施形態では、メッセージ・バス上のメッセージ・フローを削減するためのコンピュータ読み取り可能媒体が開示される。コンピュータ読み取り可能媒体は、複数の論理演算子内の少なくとも1つの論理演算子が、物理ノード・グループ内の所与の物理処理ノード上での処理を必要とするかどうかを判別するための、命令を備える。論理演算子が所与の物理処理ノード上での処理を必要とする旨の決定に応答して、論理演算子が所与の物理処理ノードにピンニングされる。複数の論理演算子内の各論理演算子は、メッセージ・バス上にある物理処理ノードのグループ内の初期の物理処理ノードに割り当てられる。
本発明の一利点は、分散ストリーム処理システムの構成要素間でのメッセージ・フローが削減され、処理の負荷が平均化されることである。本発明の他の利点は、イベントのストレージおよび照会によって生成されるデータの輻輳が、サブスクライビング(subscribing)・アプリケーションに不要なイベントを識別することによって緩和されることである。一実施形態では、アプリケーション・モデルのモニタリング計算モデルに基づくモデル駆動型「データ弁別」手法を使用して、サブスクライビング・アプリケーションにとって有用でないイベントを除去する。これにより、ネットワークに送信されるメッセージ数の削減、異なる構成要素での計算の削減、および冗長フィルタリング条件の削減が提供される。
添付の図面は、さらに様々な実施形態を例示する働き、および、すべてが本発明に従った様々な原理および利点を説明する働きをするものであって、同じ参照番号は別々の図面全体を通じて同一かまたは機能的に同様の要素を表し、以下の詳細な説明と共に明細書に組み込まれ、その一部を形成する。
本発明の実施形態に従った、バス接続された分散処理システムにおけるイベント・フローを示すシステム流れ図である。 本発明の実施形態に従った、分散処理システムを示す図である。 本発明の実施形態に従った、情報処理システムを示す詳細図である。 本発明の実施形態に従った、例示的メッセージ・バスを示す図である。 本発明の実施形態に従った、物理処理ノードへの論理演算子のピンニングを示す有向非巡回グラフである。 本発明の実施形態に従った、メッセージ・フロー量を示すように論理演算子に注釈が付けられた、図5の有向非巡回グラフを示す図である。 本発明の実施形態に従った、論理演算子が初期の物理処理ノードに割り当てられた、図5の有向非巡回グラフを示す図である。 本発明の実施形態に従った、図7における親論理演算子の、子論理演算子に割り当てられた物理処理ノードへの再割り当てを示す図である。 本発明の実施形態に従った、図7における論理演算子の、物理処理ノードへの再割り当てを示す図である。 本発明の実施形態に従った、論理演算子を物理処理ノードへ初期に割り当てる例示的プロセスを示す、動作流れ図である。 本発明の実施形態に従った、論理演算子を物理処理ノードへ再度割り当てる例示的プロセスを示す、動作流れ図である。 本発明の実施形態に従った、親論理演算子を、子論理演算子に割り当てられた物理処理ノードへ再度割り当てる例示的プロセスを示す、動作流れ図である。
当業者であればわかるように、本発明は、ハードウェアまたはソフトウェア内で、あるいはハードウェアおよびソフトウェアの組み合わせ内で、生成可能である。しかしながら一実施形態では、本発明はソフトウェア内で実装される。好ましい実施形態に関連して開示されたような本発明の原理に従ったシステムまたは方法は、説明または請求された個々の機能またはステップを実行するための別々の要素または手段、あるいは開示または請求された機能またはステップのうちのいずれかの性能を組み合わせた1つまたは複数の要素または手段を有する、単一のコンピュータ・システム内で、生成可能であるか、あるいは、当業者であればわかるような任意の好適な手段によって相互接続された、分散コンピュータ・システム内で配置構成可能である。
好ましい実施形態に関連して開示されたような本発明の原理によれば、本発明および本発明の原理はいかなる特定種類のコンピュータ・システムにも限定されないが、当業者であればわかるように、説明された機能および説明された方法ステップを実行するために配置構成された任意の汎用コンピュータと共に使用可能である。前述のようなこうしたコンピュータの動作は、当業者であればわかるように、コンピュータの動作または制御で使用するために媒体上に含まれたコンピュータ・プログラムに従うものとすることができる。コンピュータ・プログラムを保持するかまたは含むために使用可能なコンピュータ媒体は、当業者であればわかるように、内蔵メモリなどのコンピュータの装備品とするか、またはディスクなどの移送可能媒体上にあるものとすることができる。
本発明は、いかなる特定のコンピュータ・プログラムまたは論理または言語、あるいは命令にも限定されないが、当業者であればわかるように、任意のこうした好適なプログラム、論理、または言語、あるいは命令で実施することができる。任意のこうしたコンピューティング・システムは、開示された発明の原理を制限することなく、とりわけ、コンピュータがデータ、命令、メッセージまたはメッセージ・パケット、および他のコンピュータ読み取り可能情報を、コンピュータ読み取り可能媒体から読み取ることができるようにする、少なくともコンピュータ読み取り可能媒体を含むことができる。コンピュータ読み取り可能媒体は、ROM、フラッシュ・メモリ、フロッピィ・ディスク、ディスク・ドライブ・メモリ、CD−ROM、および他の永続ストレージなどの、不揮発性メモリを含むことができる。加えてコンピュータ読み取り可能媒体は、たとえば、RAM、バッファ、キャッシュ・メモリ、およびネットワーク回路などの、揮発性ストレージを含むこともできる。
さらに、コンピュータ読み取り可能媒体は、ネットワーク・リンクあるいはネットワーク・インターフェースまたはその両方などの一時状態媒体内に、コンピュータ読み取り可能情報を含むことができる。本発明は、ある実施形態に従って、メモリ・コピー動作のためのより効率的なメカニズムを提供することによって、従来技術に伴う問題を克服する。本発明は、プロセッサが、メモリ・コピー動作中に後続の命令の実行を続行できるようにし、それによって不要なプロセッサのダウンタイムを避ける。
イベント・バス接続システムに関する例示的なシステム・フロー
図1は、イベント・エミッタ102、104、106およびコンシューマ108のバス接続システム100における、イベントおよびさらにはメタデータの流れを示す。一実施形態では、イベント・エミッタ102、104、106が様々なイベントを生成し、これらのイベントを、本明細書では「メッセージ・バス110」と呼ばれる共通イベント・インフラストラクチャ(たとえばイベント/メッセージ・バス110)に送信する。一実施形態では、イベントとは、状態の変更に関連する情報を含むメッセージである。たとえば、センサまたはタイマからの読み取りである。イベントは、時間に依存した情報を含むことが可能であり、構造化または非構造化テキストとすることができる。
一実施形態では、多くのイベントは、その後のデータ・マイニングのためにイベント・データベース112に格納される。さらにイベントは、イベントが発生した場合にコンシューマ・アプリケーション108などのイベント・モニタに送達することができる。たとえば、エミッタはメッセージ・バス110を介してイベント・モニタ108にイベントを伝送する。別の方法として、モニタ(コンシューマ108)で処理要件が生成され、エミッタ104まで(選択的に)押し下げられる場合がある。このプロセスは、プッシュ/非同期モデルと呼ぶことができる。別の方法として、イベント・モニタは、イベント・データベース112の照会を介してイベントを取り出すことができる。このプロセスはプル/同期モデルと呼ぶことができる。非同期的に送達されたイベントは、より高位の主要業績評価指標(「KPI」)を計算するために、通常、モニタ(たとえばコンシューマ・アプリケーション108)内でさらに処理される。一実施形態では、イベント・バス110は、相関およびイベント格納/取り出しの責務を負うが、モニタは、KPIの計算およびモニタリング・ダッシュボードへの送達の責務を負う。一実施形態では、モニタリング・ダッシュボードは、モニタリング・タスクからの結果を分析者などのユーザに提供する。
複雑な相関または大量のイベント格納/取り出しを体験すると、メッセージ・バス110はボトルネックになる可能性がある。同様に、コンシューマ・アプリケーション108などのモニタは、イベント送達および複雑なKPI計算規則の場合、過負荷となる可能性がある。多くのイベントがいずれかのダッシュボード・インジケーションに寄与せず、除去される可能性があるため、これらのイベントは不必要な負荷をメッセージ・バス110およびモニタ108に加える。したがって、本発明の一利点は、多くのイベントのフィルタリング動作および格納動作が、メッセージ・フローを削減するためにイベント・エミッタ102、104、106方向へ「アップストリーム」に押し上げられ、これによってメッセージ・バス110でのボトルネックを最小限にすることである。
一実施形態では、フィルタリング動作および格納動作をイベント・エミッタ102、104、106のより近くに配置することは、ビジネス分析サブスクリプション(subscription)・エクストラクタ(「BASE」)モジュール114、ならびにイベント全体にわたる条件の配置および分析(「PLACE」)モジュール116を使用して達成可能である。一実施形態では、BASEモジュール114は、モニタ108からイベント・サブスクリプションを分析し、これらのサブスクリプションから、展開可能な(deployment-ready)独立サブスクリプションの正規セットを抽出する。一実施形態では、サブスクリプションとは処理済みイベントの要求である。処理は、フィルタリング条件などの基本的なものとするか、結合などのより複雑なものとすることができる。一実施形態では、展開可能なサブスクリプションとは、独立して正しく処理されるように正しいフォーマットで形成または作成された記述である。一実施形態では、PLACEモジュール116は、これらのサブスクリプションを入力と解釈し、依存性および負荷についての考慮事項に基づいて、それぞれのサブスクリプションをどれだけ「アップストリーム」に押し上げるべきかを決定する。一実施形態では、BASEモジュール114は、モニタ108によって使用されるモニタリング・モデルの仕様を使用する。BASEおよびPLACEモジュール114、116については、以下でさらに詳細に論じる。
例示的な分散ストリーム処理システム
図2に示されるように、本発明の実施形態に従った例示的な分散処理システム200が示される。図2は、物理処理ノード202、204、206、208、210のサブセットを介してシステム200に入る、様々なリアルタイム・ストリーム212、214、216、218を示す。一実施形態では、分散処理システム200は、図1に示されたメッセージ・バス110などのメッセージ・バスを介して互いの間でメッセージを渡す、物理処理ノードのシステムである。処理ノード202、204、206、208、210は、たとえば単一のクラスタ内に一緒に配置されるか、または広域にわたって地理的に分散される場合がある。
図2は、論理演算子のネットワークとして処理ノード202、204、206、208、210上に展開されたアプリケーション、またはPE A 220などの処理要素(「PE」)も示す。各データ・ストリーム212、214、216、218は、データ・ストリームの基本情報単位である、一連のストリーム・データ・オブジェクト(SDO)からなる。各処理要素は、その入力データ・ストリームから受け取ったSDO上で、たとえば選択、フィルタリング、集合、相関、分類、または変換などの、何らかの計算を実行する。一実施形態では、各物理処理ノード202、204、206、208、210を、イベントのプロデューサ(producer)、イベントのコンシューマ(consumer)、またはその両方とすることができる。
例示的情報処理システム
図3は、情報処理システムの詳細を示すブロック図である。一実施形態では、情報処理システムは、図2の物理処理ノード202、204、206、208、210のいずれかとすることができる。他の実施形態では、情報処理システムは、図2の物理処理ノード202、204、206、208、210に通信に関して結合された、別個かつ異質な情報処理システムである。
情報処理システムは、本発明の例示的実施形態を実施するように適合された、好適に構成された処理システムに基づく。同様に、任意の好適に構成された処理システムは、本発明の諸実施形態によって、たとえばパーソナル・コンピュータ、ワークステーションなどの情報処理システムとしても使用可能である。情報処理システムは、コンピュータ302を含む。コンピュータ302は、システム・バス314を介して、主メモリ306、大容量ストレージ・インターフェース308、ターミナル・インターフェース310、およびネットワーク・アダプタ・ハードウェア312に接続された、プロセッサ304を有する。大容量ストレージ・インターフェース308は、データ・ストレージ・デバイス316などの大容量ストレージ・デバイスを情報処理システムに接続するために使用される。特定タイプのデータ・ストレージ・デバイスの1つは、データをCD 318またはその等価物に格納し、そこからデータを読み取るために使用可能な、CDドライブなどのコンピュータ読み取り可能媒体である。他のタイプのデータ・ストレージ・デバイスは、たとえばNTFSタイプのファイル・システム動作をサポートするように構成されたデータ・ストレージ・デバイスである。
主メモリ306は論理演算子ピンナ320を含む。論理演算子ピンナ320は、一実施形態では、論理演算子(たとえばSELECT、JOINなど)が特定の物理処理ノードによる処理を必要とするかどうかを判別する。たとえば、オリジナルのイベント・エミッタでは、イベントのエミットを実行する必要があり、モニタリング構成要素(たとえばコンシューマ・アプリケーション108)によってKPI結果を戻す必要がある。一実施形態では、論理演算子は、処理済のイベントあたりのコスト、選択性、入力および出力条件、制約、およびそれに関連付けられたその他を有することができる。論理演算子が特定の物理処理ノードによる処理を必要とする場合、論理演算子ピンナ320は、その演算子をその必要なノードにピンニングする。言い換えれば、論理演算子がピンニングされた場合、その演算子は他の物理処理ノードに割り当てられない。
主メモリ306は論理演算子アノテータ(annotator)322も含む。論理演算子アノテータ322は、一実施形態では、論理演算子のメッセージ・フロー量を決定する。たとえば入力メッセージ・フロー量および出力メッセージ・フロー量は、各論理演算子について決定される。論理演算子アノテータ322は、一実施形態では、各論理演算子にその入力/出力メッセージ・フロー量を用いて注釈を付ける。主メモリ306は、論理演算子アサイナ324も含む。論理演算子アサイナ324は、一実施形態では、各論理演算子を物理処理ノードに割り当てる。たとえば論理演算子アサイナ324は、一実施形態では、各論理演算子を初期の物理処理ノードに割り当てる。
論理演算子の物理処理ノードへの初期割り当て後、コスト・エスティメータ326は、初期割り当てに関連付けられた総メッセージ・フロー量を推定することができる。総メッセージ・フロー量は、たとえば、物理処理ノードにメッセージを伝送する各論理演算子に関連付けられたメッセージ・フロー量に基づく。論理演算子アサイナ324は、一実施形態では、論理演算子の物理処理ノードへの後続の割り当ても実行する。たとえばメッセージ・フロー量アナライザ328は、各論理演算子の入力および出力メッセージ・フロー量を分析する。メッセージ・フロー・アナライザ328は、次に、メッセージ・フロー入力量の合計がメッセージ・フロー出力量の合計よりも多いかまたはこれに等しいかどうかを判別する。これが真の場合、論理演算子アサイナ324は、論理演算子に割り当てられた現在の物理処理ノードの位置に先行する、所与のメッセージ・フロー・シーケンスに関するイベント/メッセージ・バス上のある位置に位置する物理処理ノードに、論理演算子を割り当てる。
論理演算子の入力量の合計が出力量の合計よりも多いかまたはこれに等しい場合、論理演算子はフィルタリングを実行している可能性が高い。論理演算子を再割り当てすることによって、時間的に早くそのフィルタリングを実行するため、メッセージ・バス上のボトルネックを避けるのに役立つ。たとえば、フィルタリングがメッセージ・バス110上のさらに下流で実行される場合、メッセージを必要としない物理処理ノードに不必要なメッセージが渡される。入力量の合計が出力量の合計よりも大きくないかまたはこれに等しくない場合、論理演算子はメッセージを生成している可能性が高い。したがって論理演算子アサイナは、論理演算子に現在割り当てられている物理処理ノードの位置に後続の、所与のメッセージ・フロー・シーケンスに関するイベント/メッセージ・バス上のある位置に位置する物理処理ノードに、論理演算子を再割り当てする。これによって、メッセージのコンシューマのより近くにメッセージを生成し、イベント/メッセージ・バス上のボトルネックを防ぐことができる。
いったん論理演算子が再割り当てされると、割り当てコスト・エスティメータ326によって、この後続割り当てに関する総メッセージ・フロー・コストが決定される。論理演算子アサイナ324は、初期の割り当てに関連付けられたメッセージ・フロー・コストと、後続の割り当てのメッセージ・フロー・コストとを比較する。後続のメッセージ・フロー・コストが初期のメッセージ・フロー・コストよりも低い場合、論理演算子アサイナはこの割り当てを選択する。他の実施形態では、割り当てプロセスの多数の反復を実行して、メッセージ・フロー・コストが最も低い可能な割り当て構成を決定することができる。
他の実施形態では、論理演算子アサイナ324は、物理処理ノードを論理演算子に割り当てる場合に、処理ノードの使用可能リソースを考慮に入れる。たとえば論理演算子アサイナ324が、先行する物理処理ノードに論理演算子を再割り当てすべきである旨を決定した場合、論理演算子アサイナ324は、一実施形態では、論理演算子の処理要件が物理処理ノードの使用可能リソースよりも多いかどうかを判別し、このノードは論理演算子に割り当てられない。他の実施形態では、論理演算子アサイナ324は物理処理ノードに論理演算子を再割り当てした後、現在その子論理演算子に割り当てられている物理処理ノードに先行する何らかの親論理演算子が、物理処理ノードに割り当てられているかどうかを判別する。これが真である場合、論理演算子アサイナ324は、親論理演算子を子論理演算子の物理処理ノードに再割り当てする。これにより、親論理演算子と子論理演算子との間を流れるメッセージが、メッセージ・バス上の1つの処理ノードから他の処理ノードへの流れと比較して同じ処理ノード上に発生可能となり、リソースが節約される。
さらに他の実施形態では、BASEモジュール114が主メモリ306に含まれることも可能である。PLACEモジュールも主メモリ306に含まれることが可能であり、主メモリ306内に常駐する前述の要素の1つまたは複数を備える。
主メモリ306のそれぞれの構成要素は、主メモリ306内に同時に常駐するように示されているが、常時、あるいは同時に、主メモリ306内に完全に常駐する必要がないことは明らかである。一実施形態では、情報処理システム300は、従来の仮想アドレス指定メカニズムを利用して、プログラムが、主メモリ306およびデータ・ストレージ・デバイス316などの複数の小規模なストレージ・エンティティへのアクセスではなく、本明細書ではコンピュータ・システム・メモリとして表される、大規模な単一ストレージ・エンティティへのアクセスを有するかのように挙動できるようにする。「コンピュータ・システム・メモリ」という用語は、本明細書では、情報処理システム300の仮想メモリ全体を総称的に言い表すために使用されることに留意されたい。
コンピュータ302については、1つのCPU 304のみが示されているが、複数のCPUを備えるコンピュータ・システムが等しく効果的に使用可能である。本発明の諸実施形態は、それぞれが、CPU 304から処理をオフロードするために使用される別々の完全にプログラミングされたマイクロプロセッサを含むインターフェースを、さらに組み込む。端末インターフェース310は、1つまたは複数の端末330をコンピュータ302に直接接続して、コンピュータ302にユーザ・インターフェースを提供するために使用される。これらの端末330は、非インテリジェントまたは完全にプログラム可能なワークステーションであることが可能であり、システム管理者またはユーザが情報処理システム300と通信できるようにするために使用される。端末330は、コンピュータ302に接続され、ビデオ・アダプタ、ならびに、キーボード、ポインティング・デバイスなどのためのインターフェースを含む、端末I/F 310に含まれる端末インターフェース・ハードウェアによって制御される、ユーザ・インターフェースおよび周辺デバイスで構成されることも可能である。
主メモリ306に含まれるオペレーティング・システム(図示せず)は、Linux、UNIX、Windows XP、およびWindows Server 2003オペレーティング・システムなどの、好適なマルチタスク・オペレーティング・システムである。本発明の諸実施形態は、任意の他の好適なオペレーティング・システムを使用することができる。本発明の一部の実施形態は、オペレーティング・システムの構成要素(図示せず)の命令が、情報処理システム300内に配置された任意のプロセッサ上で実行できるようにする、オブジェクト指向フレームワーク・メカニズムなどの、アーキテクチャを利用する。ネットワーク・アダプタ・ハードウェア312は、無線ネットワーク、WLAN、LANなど(図示せず)のネットワークへのインターフェースを提供するために使用される。本発明の諸実施形態は、現在のアナログあるいはデジタル技法またはその両方を含むか、あるいは、将来のネットワーキング・メカニズムを介する、任意のデータ通信接続を使用して動作するように適合可能である。
本発明の例示的な諸実施形態について、完全に機能するコンピュータ・システムとの関連において説明しているが、当業者であれば、諸実施形態が、たとえばCD 318などのCD/DVD、または他の形の記録可能媒体を介したプログラム製品として、あるいは任意のタイプの電子伝送メカニズムを介して、配布可能であることを理解されよう。
例示的メッセージ・バス
図4は、一実施形態では共通イベント・インターフェースである、例示的イベント/メッセージ・バス410を示す。一実施形態では、物理処理ノード402、404、406、408、414が通信に関してメッセージ・バス410に結合される。物理処理ノードは、一実施形態では、イベント/メッセージのプロデューサ、あるいは、モニタリング・アプリケーションなどのイベント/メッセージのコンシューマ、またはその両方を、含むことができる。一実施形態では、各物理処理ノード402、404、406、408、414は、コストおよび選択性などの意味論的および計算上の制約のセットに関連付けられる。これらの制約は、一実施形態では、どの物理処理ノード上に論理演算子が配置できるかを指示する。メッセージ・バス410は、一実施形態では、イベント・エミッタによって生成されたトピックにサブスクライブする。これらのトピックに関して発行されたメッセージは、メッセージ・バス410によって処理あるいは格納またはその両方が実行され、その後、それらのイベントにサブスクライブしている論理演算子へとルーティングされる。他方で、論理演算子はイベントの受け取りおよび処理を実行する。論理演算子は、ビジネス観察モニタ・モデルなどのモニタリング・モデルに従って、受け取ったメッセージをさらに処理する。他方でアプリケーションは、通常は結果が戻されるエンド・ポイントである。
アプリケーションによって使用されるモニタリング計算モデルは、一実施形態では、論理演算子414のDAG 412によって表すことができる。DAG 412は、論理演算子を表すノードを備える。各論理演算子414は、一実施形態では、関連するコスト、選択性などを有する。たとえばコストは、時間単位あたりに処理されるメッセージの数とすることができる。一実施形態では、リーフ・ノードは、着信するイベントを処理する論理演算子であり、親のないノードは、主要業績評価指標(「KPI」)の計算を完了する論理演算子である。一実施形態では、BASEモジュール114は、イベント・バス110またはエミッタへ押し下げることができる、演算子の部分グラフを抽出する。
BASEモジュール114は、一実施形態では、すべてのモニタリング・モデルを分析することから、アーキテクチャ上のフレームワークの「外部の」構成要素として説明することができる。これらのサブスクリプションはXMLファイルに格納され、すべての構成要素に配布するためにPLACEに与えられる。ある展開では、BASEモジュール114は、サブスクリプションが変更されるごとに、またはそれほど頻繁でなく、実行することができる。BASEモジュール114がより頻繁に実行されるほど、各フィルタリング条件の選択性が高くなる。最低でも、モニタリング構成要素の範囲が「拡大される」、すなわちより多くのイベントを受け入れると必ず、BASEモジュール114が実行されなければならないことに留意されたい。これは、必要なイベントの不正なフィルタリングを避けることに役立つ。
PLACEモジュール116は、分散処理システム200内の、BASEモジュール114によって導出されたサブスクリプションと処理機能を備えた構成要素との間の、コーディネータである。PLACEモジュール116は、BASEモジュール114によって生成されたXMLファイルからのDAGサブスクリプションを読み取り、ロード・バランシング・プロトコルと同様のプロトコルを介して他の構成要素と対話する。サブスクリプションの形の計算グラフがエミッタまで押し下げ可能な場合、これはエミッタ・フィルタリング条件に変わり、それによってエミッタによって生成されるイベントの数が削減される。サブスクリプションがメッセージ・バス410に押し入れられた場合、相関エンジンにフィルタリング条件を追加することが可能であり、それによってモニタリング・コンテキストに送達されるイベントの数が削減される。
負荷を考慮に入れるために、一実施形態では、PLACEモジュール116は、処理構成要素、それらの機能、および可用性を表すトポロジ構造を構築する。PLACEモジュール116は、そのホストの負荷を定期的にモニタリングし、標準的なロード・バランシング・プロトコルを使用してこの情報をその隣接するPLACE構成要素と交換する。一実施形態では、PLACEモジュール116は、(DAGサブスクリプションからの)論理演算子を、処理機能を備えたイベント・コンシューマまたはエミッタである物理ノードに割り当てる。この割り当てプロセスについて、以下で考察する。
物理処理ノードへの論理演算子の割り当て
図5〜図9は、物理処理ノードへの論理演算子の割り当てを示すDAGを示す。図5は、論理演算子に対応する複数のノードを備えるDAG 500を示す。図5(および図6〜図9)は、物理処理ノード502、504、506、508、512、514、516のセットを含む、例示的メッセージ・バス510も含む。メッセージ・バス510は、イベント・バス510上の物理処理ノードの配置を示すための参照として示される。たとえば、所与のメッセージ・フロー・シーケンスでは、物理処理ノードC0 502は、物理処理ノードC1 504より前に処理を実行する。
前述のように、各論理演算子は、処理ノードに演算子を割り当てる場合に論理演算子アサイナ324によって使用される、メッセージ・プロセスあたりの関連コスト、選択性、入力および出力条件、制約などを含む。一実施形態では、物理処理ノード502、504、506、508、512、514、516は、サブスクリプションの受け入れおよび処理のための既知の機能(たとえば、サブスクリプションを処理するために割り振られたメモリおよびCPUリソース)も有する。いずれかの論理演算子が特定の物理処理ノード上での処理を必要とする場合、これらの論理演算子はそのノードにピンニングされる。たとえば一実施形態では、論理演算子518、520、522、524、526、528、530、532は、それぞれ物理処理ノードC0 502、C1 504、e1 508、e2 512、e3 514、e6 516上での処理を必要とする。したがって、これらの論理演算子518、520、522、およびエミット側論理演算子524、526、528、530、532が、これらの物理処理ノードにピンニングされる。言い換えれば、ピンニングされた論理演算子518、520、522、524、526、528、530、532は、他の物理処理ノードに再割り当てされない。ピンニングされた論理演算子は、論理演算子内の黒丸で示される。
一実施形態では、1つの論理演算子を他の論理演算子に接続している各縁部に、図6に示されるような予測フロー量の注釈が付けられる。たとえば、論理演算子524から論理演算子522への予測メッセージ・フロー量は、時間単位あたり15メッセージである。一実施形態では、予測メッセージ・フロー量は、分布あるいは初期量またはその両方の仮定、観察、高/低または高/中/低の格付けなどの単純な仮定などから算出された、統計から決定される。その後、論理演算子は、図7に示されるように初期物理処理ノードに割り当てられる。たとえば、ピンニングされた部分グラフ734、736が、ルートのホスティング構成要素に割り当てられる。ピンニングされた部分グラフとは、一実施形態では、ルートとしてピンニング・ノードを有する部分グラフであり、すべての子はピンニングされない。時間単位あたりのメッセージとしての初期コストは、一実施形態では、初期割り当てについて決定される。たとえば、図7に示された初期割り当ての区画1 734のコストは、(15+40+2+21+1)(2)=158メッセージ/時間単位であり、初期割り当ての区画2 736のコストは、(8+8+10+1)(2)=54メッセージ/時間単位である。したがって、初期割り当ての総コストは、212メッセージ/時間単位である。メッセージはメッセージ・バス510上で1つの物理ノードから他の物理処理ノードへと流れるため、各部分グラフ734、736のメッセージ・フロー・コストは2倍される。
物理処理ノードへの論理演算子の初期割り当ては、物理処理ノードのリソースに関する実行不可能なソリューションを生み出す可能性があることに留意されたい。しかしながら、以下で考察するように、この初期割り当ては、より最適な割り当て構成を生み出す割り当てを決定するためにさらに調整される。
図8は、図7に示された物理処理ノードの初期割り当ての調整を示す。DAG 500の下部から始まり、上方へと移動すると、各演算子には「初期」から「後期」までの配置選択肢の順序付けセットが割り当てられる。これは、一実施形態では、論理演算子の入力メッセージ・フロー量の合計と出力メッセージ・フロー量の合計とを比較することによって実施される。たとえば、入力メッセージ・フロー量の合計が出力メッセージ・フロー量の合計よりも多いかまたはこれに等しい場合、論理演算子は物理処理ノード上で可能な限り「初期」に配置される。たとえば、最初は物理処理ノードC1 504に割り当てられたノードn8 838は、40の入力メッセージ・フロー量および20の出力メッセージ・フロー量を有する。したがってノードn8 838は、現在はノードn8 838に割り当てられている物理処理ノードの位置に先行する、所与のメッセージ・フロー・シーケンスに関するメッセージ・バス510上のある位置に位置する物理処理ノードに、再割り当てされる。
論理演算子が、入力されているメッセージ数よりも少ない数のメッセージを出力している場合、この演算子はフィルタリングを実行している可能性が高い。フィルタリング演算子を上流へ移動することによって、それらは後期ではなく初期に実行されるため、不必要なメッセージはそれらを必要としないアプリケーションに渡されない。これにより、メッセージ・バス510上のボトルネックが最小限となる。一実施形態では、論理演算子を物理処理ノードに割り当てる際に、物理処理ノードの使用可能リソースが考慮に入れられる。言い換えれば、論理演算子に関連付けられたコストよりも使用可能リソースが少ない場合、この特定の処理ノードは論理演算子に割り当てられない。
入力メッセージ・フロー量の合計が出力メッセージ・フロー量の合計よりも少ない場合、論理演算子はできる限り「後期」に配置され、物理処理ノードの使用可能リソースが与えられる。たとえば、初期に物理処理ノードC0 502に割り当てられたノード(論理演算子)n10 840は、11の入力メッセージ・フロー量および47の出力メッセージ・フロー量を有する。したがって、ノードn10 840は、ノードn10 840に割り当てられた現在の物理処理ノードである、C1 504の位置に後続の、所与のメッセージ・フロー・シーケンスに関するメッセージ・バス510上のある位置に位置する、物理処理ノードC2 506に再割り当てされる。一実施形態では、処理ノードは、受け取られているメッセージの数よりも多くのメッセージを出力している場合、メッセージのプロデューサである可能性が高い。これらの論理演算子を物理処理ノードへと移動することによって、メッセージの生成は可能な限り後期に実行されるため、メッセージ・バス110は、ボトルネックを発生させるようなメッセージで飽和されることがない。
一実施形態では、サイクルが解決される。言い換えれば、親論理演算子ごとに、そのいかなる子論理演算子よりも「初期」の物理処理ノードに割り当てられているかどうかが判別される。これが真である場合、親論理演算子は、その子の物理処理ノードに再割り当てされる。たとえば図8は、物理処理ノードC0 502に割り当てられている親論理演算子n11 842を示す。しかしながら、その子論理演算子n12 844は、C0 502よりも「後期」の処理ノードである物理処理ノードC1 500に割り当てられる。この例では、ノードIDは任意であることに留意されたい。これによりメッセージは、メッセージ・バス510上を進ませるために、親ノードn11 842から、その子ノードn12 844へ、およびその逆へと伝送される。したがって親ノードは、物理処理ノードC0 502へと再割り当てされ、現在この物理処理ノードは、図9に示されるように、子ノードn12 844に割り当てられている。したがって、親ノードn11 842と子ノードn12 844との間のメッセージはメッセージ・バス510を横切る必要がなく、それによってシステム・リソースが節約され、ボトルネックが最小限となる。
一実施形態では、再割り当てされた物理処理ノード構成に関連付けられたコストも決定される。たとえば、物理処理ノードC0 502に割り当てられている論理演算子のコストは(8+8)(2)+47=79であり、物理処理ノードC1 504に割り当てられている論理演算子のコストは(15+10+2+21+1)(2)=98であり、物理処理ノードC2 506に割り当てられている論理演算子のコストは(10+1)=11であって、再割り当てに関する総メッセージ・フロー・コストは79+98+11=188となる。その後、再割り当て構成に関連付けられたこのコストを、212である初期構成のコストと比較することができる。ここからわかるように、再割り当て構成に関連付けられたコストは、初期構成に関連付けられたコストよりも少ないため、実施用に選択される。より最適な(たとえばコストの少ない)物理処理ノード割り当て構成が存在するかどうかを判別するために、後続の割り当てを実行することができる。
論理演算子への物理処理ノードの初期割り当ての例示的プロセス
図10は、論理演算子への物理処理ノードの初期割り当ての例示的プロセスを示す。図10の動作流れ図はステップ1002から始まり、ステップ1004へと直接進む。論理演算子アサイナ324は、ステップ1004で、いずれかの論理演算子が特定の物理処理ノードによる処理を必要とするかどうかを判別する。この判別の結果が否定的である場合、制御はステップ1008へと進む。この判別の結果が肯定的である場合、論理演算子アサイナ324は、ステップ1006で、これらの論理演算子をそれらの必要な物理処理ノードにピンニングする。論理演算子アサイナ324は、ステップ1008で、各論理演算子に関する入力および出力メッセージ・フロー量を決定する。その後論理演算子は、ステップ1010で、初期物理処理ノードに割り当てられる。その後論理演算子アサイナは、ステップ1012で、論理演算子への物理処理ノードの初期割り当てに関する総メッセージ・フロー・コストを決定する。その後、制御フローは図11の入口ポイントAへと続く。
論理演算子への物理処理ノードの再割り当ての例示的プロセス
図11は、最適な割り当て構成を決定するための、論理演算子への物理処理ノードの再割り当ての例示的プロセスを示す。動作流れ図は、入口ポイントAから始まり、ステップ1102へと直接進む。論理演算子アサイナ324は、ステップ1102で、各論理演算子に関する入力および出力メッセージ・フロー量を分析する。論理演算子アサイナ324は、ステップ1104で、各論理演算子について、入力メッセージ・フロー量の合計が出力メッセージ・フロー量の合計よりも多いかまたはこれに等しいかどうかを判別する。この判別の結果が否定的である場合、論理演算子アサイナ324は、ステップ1106で、所与のメッセージ・フロー・シーケンスに関するメッセージ・バス324上の、現在論理演算子に割り当てられている物理処理ノードよりも後続のある位置に位置する物理処理ノードに、論理演算子を割り当てる。その後、制御はステップ1110に進む。
この判別の結果が肯定的である場合、論理演算子アサイナ324は、ステップ1108で、(所与のメッセージ・フロー・シーケンスに関する)メッセージ・バス上の、現在論理演算子に割り当てられている物理処理ノードの位置に先行する、ある位置に位置する物理処理ノードに、論理演算子を割り当てる。論理演算子アサイナ324は、ステップ1110で、論理演算子への物理処理ノードの再割り当てに関連付けられた総メッセージ・フロー・コストを決定する。
その後論理演算子アサイナ324は、ステップ1112で、後続の総メッセージ・フロー・コストが初期メッセージ・フロー・コストよりも少ないかどうかを判別する。この判別の結果が肯定的である場合、論理演算子アサイナ324は、ステップ1114で、後続の割り当てを選択する。その後、制御フローはステップ1116で終了する。この判別の結果が否定的である場合、論理演算子アサイナ324は、ステップ1118で、初期割り当てを選択する。その後、制御フローはステップ1120で終了する。一実施形態では、論理演算子が論理演算子を再割り当てする場合、候補となる物理処理ノードの使用可能リソースを考慮に入れる。たとえば、物理処理ノードの使用可能リソースが、論理演算子のコストよりも多いかまたはこれに等しいノードである場合、この物理処理ノードに論理演算子は割り当てられない。
子論理演算子の物理処理ノードへの親論理演算子の再割り当ての例示的プロセス
図12は、子論理演算子のうちの1つの物理処理ノードへの親論理演算子の割り当ての例示的プロセスを示す。動作流れはステップ1202で開始され、ステップ1204へ直接進む。論理演算子アサイナ324は、ステップ1204で、親論理演算子が、現在子論理演算子に割り当てられている物理処理ノードの位置に先行する、メッセージ・バス上のある位置に位置する物理処理ノードに割り当てられるかどうかを判別する。この判別の結果が否定的である場合、制御フローはステップ1206で終了する。この判別の結果が肯定的である場合、論理演算子アサイナ324は、ステップ1208で、親論理演算子を、現在子論理演算子に割り当てられている物理処理オードに再割り当てする。
非限定的な例
本発明は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせで実現可能である。本発明の好ましい実施形態に従ったシステムは、1コンピュータ・システム内で集中的に、または、異なる要素がいくつかの相互接続されたコンピュータ・システムにまたがって散在する分散的に、実現可能である。任意の種類のコンピュータ・システム、または、本明細書で説明した方法を実施するように適合された他の装置が好適である。ハードウェアおよびソフトウェアの典型的な組み合わせは、ロードおよび実行された場合にコンピュータ・システムを制御し、その結果として本明細書で説明した方法を実施する、コンピュータ・プログラムを備えた、汎用コンピュータ・システムとすることができる。
一般に、本発明の諸実施形態を実施するために実行されるルーチンは、オペレーティング・システムまたは特定アプリケーションの一部、構成要素、プログラム、モジュール、オブジェクト、あるいは命令シーケンスの、いずれとして実施される場合でも、本明細書では「プログラム」と言い表される場合がある。コンピュータ・プログラムは、通常、ネイティブ・コンピュータによってマシン読み取り可能形式、したがって実行可能命令に変換されることになる、多数の命令からなる。またプログラムは、プログラムに対してローカルに常駐するか、またはメモリ内またはストレージ・デバイス上に見られる、変数およびデータ構造からなる。加えて、本明細書で説明する様々なプログラムは、本発明の特定実施形態で実施されるアプリケーションに基づいて識別することができる。しかしながら、後続のいかなる特定のプログラム命名法(nomenclature)も、単に便宜上使用されるものであるため、本発明は、こうした命名法によって識別あるいは示唆された、またはその両方の、任意の特定アプリケーションでのみ使用されるように限定されるべきではないことを理解されたい。
以上、本発明の特定の実施形態について開示してきたが、当業者であれば、本発明の範囲を逸脱することなく、特定の実施形態に対する変更が可能であることを理解されよう。したがって本発明の範囲は特定の実施形態に限定されるものではなく、添付の特許請求の範囲は、本発明の範囲内のこうした適用範囲、修正、および実施形態のうちのいずれかおよびすべてをカバーするものであることが意図される。

Claims (10)

  1. メッセージ・バス上のメッセージ・フローを削減するための、情報処理システムを伴う方法であって、
    複数の論理演算子内の少なくとも1つの論理演算子が、物理ノード・グループ内の所与の物理処理ノードでの処理を必要とするかどうかを判別するステップと、
    前記論理演算子が前記所与の物理処理ノードでの処理を必要とする旨の決定に応答して、前記論理演算子が前記所与の物理処理ノードにピンニングするステップと、
    前記複数の論理演算子内の各論理演算子を、メッセージ・バス上にある前記物理処理ノード・グループ内の初期の物理処理ノードに割り当てるステップと、
    を含み、前記割り当てるステップは、
    前記複数の論理演算子内の少なくとも1つの論理演算子について、前記論理演算子に関連付けられた入力メッセージ・フロー量セットの合計が、前記論理演算子に関連付けられた出力メッセージ・フロー量セットの合計よりも多い、およびこれに等しい、のうちの少なくとも1つであるかどうかを判別するステップと、
    前記入力メッセージ・フロー量セットの合計が、前記出力メッセージ・フロー量セットの合計よりも多い、およびこれに等しい、のうちの1つであることに応答して、前記論理演算子を、前記論理演算子が現在関連付けられている前記物理処理ノードに先行する所与のメッセージ・フロー・シーケンスに関する前記メッセージ・バス上のある位置に位置する、先行する物理処理ノードに割り当てるステップと、
    前記入力メッセージ・フロー量セットの合計が、前記出力メッセージ・フロー量セットの合計よりも少ないことに応答して、前記論理演算子を、前記論理演算子が現在関連付けられている前記物理処理ノードに対して、前記所与のメッセージ・フロー・シーケンスに関する前記メッセージ・バス上のある後続位置に位置する、後続の処理ノードに割り当てるステップと、
    を含む、方法。
  2. 前記メッセージ・フロー量が、
    統計と、
    観察と、
    仮定と、
    のうちの少なくとも1つに基づいて決定される、請求項1に記載の方法。
  3. 前記複数の論理演算子内の各論理演算子をそれぞれの初期の物理処理ノードに割り当てるステップに関連付けられた、総メッセージ・フロー・コストを決定するステップをさらに含む、請求項1に記載の方法。
  4. 前記メッセージ・フロー・コストが、前記初期の物理処理ノードにメッセージを伝送する各論理演算子に関連付けられたメッセージ・フロー量の合計を含む、請求項3に記載の方法。
  5. 前記入力メッセージ・フロー量セットの合計が、前記出力メッセージ・フロー量セットの合計よりも多い、およびこれに等しい、のうちの1つであることに応答して、割り当てる前記ステップが、
    前記物理処理ノードが、前記論理演算子のリソース要件を満たすために使用可能なリソースを備えるかどうかを判別するステップと、
    前記物理処理ノードが使用可能なリソースを備えることに応答して、前記論理演算子を、前記論理演算子が現在関連付けられている前記物理処理ノードの前記メッセージ・バス上の位置に位置する前記先行する物理処理ノードに割り当てるステップと、
    をさらに含む、請求項1に記載の方法。
  6. 前記複数の論理演算子を各物理処理ノードに割り当てるステップに関連付けられた総メッセージ・フロー・コストを決定するステップをさらに含む、請求項1に記載の方法。
  7. 前記メッセージ・フロー・コストが、物理処理ノードにメッセージを伝送する各論理演算子に関連付けられたメッセージ・フロー量の合計を含む、請求項1に記載の方法。
  8. 前記先行する物理処理ノードおよび前記後続の物理処理ノードのうちの1つに前記論理演算子のそれぞれを割り当てるステップに関連付けられた、後続のメッセージ・フロー・コストが、前記論理演算子のそれぞれを初期物理処理ノードに割り当てるステップに関連付けられた初期メッセージ・フロー・コストよりも少ないかどうかを判別するステップと、
    前記後続のメッセージ・フロー・コストが前記初期メッセージ・フロー・コストよりも少ないことに応答して、前記後続のメッセージ・フロー・コストに関連付けられた前記論理演算子の前記割り当てを選択するステップと、
    をさらに含む、請求項1に記載の方法。
  9. 請求項1〜8のいずれか一項に記載の方法のすべてのステップを実施するように適合された手段を備えるシステム。
  10. 請求項1〜8のいずれか一項に記載の方法のすべてのステップをコンピュータに実行させるコンピュータ・プログラム。
JP2009521197A 2006-07-27 2007-07-10 バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム Expired - Fee Related JP5108011B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/495,312 US7529849B2 (en) 2006-07-27 2006-07-27 Reduction of message flow between bus-connected consumers and producers
US11/495,312 2006-07-27
PCT/EP2007/057027 WO2008012198A1 (en) 2006-07-27 2007-07-10 Reduction of message flow between bus-connected consumers and producers

Publications (2)

Publication Number Publication Date
JP2009545043A JP2009545043A (ja) 2009-12-17
JP5108011B2 true JP5108011B2 (ja) 2012-12-26

Family

ID=38519753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009521197A Expired - Fee Related JP5108011B2 (ja) 2006-07-27 2007-07-10 バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム

Country Status (5)

Country Link
US (3) US7529849B2 (ja)
EP (1) EP2052325B1 (ja)
JP (1) JP5108011B2 (ja)
CN (1) CN101495978B (ja)
WO (1) WO2008012198A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5104489B2 (ja) * 2008-04-03 2012-12-19 日本電気株式会社 分散イベント検出システム、分散イベント検出方法、及び分散イベント検出用プログラム
CN103095564B (zh) * 2011-11-01 2016-07-06 北京新媒传信科技有限公司 数据业务平台上数据交互方法和系统
CN103259701A (zh) * 2012-12-04 2013-08-21 中国科学院沈阳自动化研究所 面向复杂生产过程管理系统的消息总线实现方法
US9591063B2 (en) * 2013-03-09 2017-03-07 Sas Institute Inc. Parallel community detection
US10860186B2 (en) * 2014-09-26 2020-12-08 Oracle International Corporation User interface component wiring for a web portal
US10761750B2 (en) * 2017-03-09 2020-09-01 Netapp Inc. Selectively storing data into allocation areas using streams

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257374A (en) 1987-11-18 1993-10-26 International Business Machines Corporation Bus flow control mechanism
JP2589932B2 (ja) 1992-06-15 1997-03-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 装置の割り当てのグローバルな最適化方法とシステム
JPH06149756A (ja) * 1992-11-16 1994-05-31 Hitachi Ltd 分散型情報処理方法およびその装置
EP0687089B1 (en) * 1994-06-10 2003-05-28 Hewlett-Packard Company, A Delaware Corporation Event-processing system and method of constructing such a system
JPH0830558A (ja) * 1994-07-20 1996-02-02 Fujitsu Ltd 計算機システムにおける負荷分散方法及びそれを利用した計算機システム
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
CN100364293C (zh) * 2002-09-28 2008-01-23 华为技术有限公司 消息传输部分2层用户适配对ip网络拥塞的处理方法
US20050193113A1 (en) 2003-04-14 2005-09-01 Fujitsu Limited Server allocation control method
JP2004348680A (ja) * 2003-05-26 2004-12-09 Fujitsu Ltd 複合イベント通知システムおよび複合イベント通知プログラム
JP2005004676A (ja) * 2003-06-16 2005-01-06 Fujitsu Ltd 適応型分散処理システム
US7088371B2 (en) * 2003-06-27 2006-08-08 Intel Corporation Memory command handler for use in an image signal processor having a data driven architecture
US7444632B2 (en) * 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7389508B2 (en) * 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7516456B2 (en) * 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US7549145B2 (en) * 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7093080B2 (en) * 2003-10-09 2006-08-15 International Business Machines Corporation Method and apparatus for coherent memory structure of heterogeneous processor systems
EP1533699B1 (en) 2003-11-21 2012-08-08 Sap Ag A method of assigning objects to processing units
US7240182B2 (en) * 2004-09-16 2007-07-03 International Business Machines Corporation System and method for providing a persistent function server
US7506325B2 (en) * 2004-10-07 2009-03-17 International Business Machines Corporation Partitioning processor resources based on memory usage
US7398482B2 (en) * 2005-07-28 2008-07-08 International Business Machines Corporation Modular design method and apparatus

Also Published As

Publication number Publication date
WO2008012198A1 (en) 2008-01-31
US20080028098A1 (en) 2008-01-31
US8392577B2 (en) 2013-03-05
US20090216899A1 (en) 2009-08-27
EP2052325B1 (en) 2013-05-22
US8364818B2 (en) 2013-01-29
JP2009545043A (ja) 2009-12-17
CN101495978B (zh) 2011-12-14
US7529849B2 (en) 2009-05-05
US20120297085A1 (en) 2012-11-22
CN101495978A (zh) 2009-07-29
EP2052325A1 (en) 2009-04-29

Similar Documents

Publication Publication Date Title
US11341131B2 (en) Query scheduling based on a query-resource allocation and resource availability
US11321321B2 (en) Record expansion and reduction based on a processing task in a data intake and query system
US11615087B2 (en) Search time estimate in a data intake and query system
US11580107B2 (en) Bucket data distribution for exporting data to worker nodes
US11599541B2 (en) Determining records generated by a processing task of a query
US11494380B2 (en) Management of distributed computing framework components in a data fabric service system
US11586627B2 (en) Partitioning and reducing records at ingest of a worker node
US20190258632A1 (en) Determining a Record Generation Estimate of a Processing Task
US20190272271A1 (en) Assigning processing tasks in a data intake and query system
US20200050612A1 (en) Supporting additional query languages through distributed execution of query engines
US20190324819A1 (en) Distributed-system task assignment method and apparatus
US8402469B2 (en) Allocating resources for parallel execution of query plans
JP5108011B2 (ja) バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム
WO2014074088A1 (en) Enhanced graph traversal
US11159403B1 (en) Systems and methods of network monitoring for supercomputers and supercomputer nodes
CN111949832A (zh) 批量作业依赖关系的解析方法及装置
CN110932981A (zh) 一种支持自动路由的数据交换系统
WO2011142227A1 (ja) コンピュータ・システム、方法及びプログラム
US10944846B2 (en) Distribution schedule creation method and distribution schedule creation apparatus
JP2009065256A (ja) トラヒック情報処理装置、トラヒック情報処理方法、及び、トラヒック情報処理プログラム
TW202315360A (zh) 微服務分配方法、電子設備及儲存介質
CN115396319B (zh) 数据流分片方法、装置、设备及存储介质
CN113760942A (zh) 一种交互式分析中的数据处理方法及装置
CN115729719A (zh) 数据处理方法及相关设备
KR20210058401A (ko) 클라우드 컴퓨팅 환경에서의 컨테이너 배치 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120808

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: 20121004

R150 Certificate of patent or registration of utility model

Ref document number: 5108011

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees