JP5679917B2 - データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラム - Google Patents

データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラム Download PDF

Info

Publication number
JP5679917B2
JP5679917B2 JP2011138024A JP2011138024A JP5679917B2 JP 5679917 B2 JP5679917 B2 JP 5679917B2 JP 2011138024 A JP2011138024 A JP 2011138024A JP 2011138024 A JP2011138024 A JP 2011138024A JP 5679917 B2 JP5679917 B2 JP 5679917B2
Authority
JP
Japan
Prior art keywords
processing
tuple
execution path
data stream
attributes
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
JP2011138024A
Other languages
English (en)
Other versions
JP2012043409A5 (ja
JP2012043409A (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 JP2012043409A publication Critical patent/JP2012043409A/ja
Publication of JP2012043409A5 publication Critical patent/JP2012043409A5/ja
Application granted granted Critical
Publication of JP5679917B2 publication Critical patent/JP5679917B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (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)

Description

本発明は、データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラムに係る。
コンピュータ・データベースは、非常に高度化されているが、データベース・システムに突きつけられた計算上のデマンドも、急速に増加している。一般に、データベース・システムは、データを格納するための処理を、データベースに格納したデータにアクセスし、操作し、又は使用するための処理から分離するように構成されている。具体的には、データベースは、あるモデルを使用することにより、最初にデータを格納し、データにインデックスを付け、その後に、データの照会を行うようになっている。
しかし、このモデルは、特定のリアルタイム・アプリケーションの性能要件を満たすことができない。例えば、データベース・システムが着信データを受信し且つ格納することができるレートは、処理可能又は評価可能なデータの量を制限することがある。その結果、大量のデータをリアルタイムに処理すべきデータベース・アプリケーションの能力を制限することがある。
本発明の実施形態は、データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラムを提供する。当該方法、システム及びコンピュータ・プログラムは、処理すべき前記データ・ストリームのうち複数の属性を含む第1のタプルを受信することを含む。また、当該方法、システム及びコンピュータ・プログラムは、少なくとも前記受信した第1のタプル内の前記複数の属性のうち1つ以上の属性に部分的に基づき、前記データ・ストリームの前記受信した第1のタプルを処理するための推定処理時間を計算することを含む。さらに、当該方法、システム及びコンピュータ・プログラムは、前記計算した推定処理時間が所定のしきい値時間を超えないことを決定する場合、基本実行パス(primary execution path)を使用して前記データ・ストリームの前記受信した第1のタプルを第1の態様で処理することを含む。さらに、当該方法、システム及びコンピュータ・プログラムは、前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記受信した第1のタプルを前記第1の態様で処理するのに比べて前記基本実行パス内の処理遅延を削減するように、前記データ・ストリームの前記受信した第1のタプルを第2の態様で処理することを含む。
本発明の代替実施形態は、データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラムを提供する。当該方法、システム及びコンピュータ・プログラムは、処理すべき前記データ・ストリームのうち複数の属性を含む第1のタプルを受信することを含む。また、当該方法、システム及びコンピュータ・プログラムは、(i)前記受信した第1のタプル内の前記複数の属性のうち1つ以上の属性、及び(ii)前記受信した第1のタプルに関連するメタデータのうち少なくとも1つに部分的に基づき、前記データ・ストリームの前記受信した第1のタプルを処理するための推定処理時間を計算することを含む。さらに、当該方法、システム及びコンピュータ・プログラムは、前記計算した推定処理時間が所定のしきい値時間を超えないことを決定する場合、基本実行パスを使用して前記データ・ストリームの前記受信した第1のタプルを第1の態様で処理することを含む。さらに、当該方法、システム及びコンピュータ・プログラムは、前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記受信した第1のタプルを前記第1の態様で処理するのに比べて前記基本実行パス内の処理遅延を削減するように、前記データ・ストリームの前記受信した第1のタプルを第2の態様で処理することを含む。
本発明は、しきい値時間内に処理できそうもない着信ストリーム・データを識別し且つ当該着信ストリーム・データを基本実行パスから除去することにより、ストリーム・アプリケーション内のボトルネックを防止することができるという効果を奏する。
本発明の一実施形態に従った、ストリーム・アプリケーションを実行するように構成されたコンピューティング・インフラストラクチャ100を例示する図である。 本発明の一実施形態に従った、ストリーム・アプリケーションを実行するように構成されたコンピューティング・インフラストラクチャ100を例示する図である。 本発明の一実施形態に従った、図1及び図2の計算ノード130をより詳細に示す図である。 本発明の一実施形態に従った、図1のサーバ・コンピューティング・システム105をより詳細に示す図である。 本発明の一実施形態に従った、ストリーム・アプリケーション内の複数の計算ノードを例示する図である。 本発明の一実施形態に従った、ランタイム・データの予測除去方法を例示するフローチャートである。 本発明の一実施形態に従った、タプルのプロファイル方法を例示するフローチャートである。
ストリーム・ベースのコンピューティング及びストリーム・ベースのデータベース・コンピューティングは、データベース・システム用の開発途上の技術として出現している。現に使用可能な製品は、ストリーミング・データがデータベース・ファイルに到達する前に、当該ストリーミング・データを処理し且つ照会するためのアプリケーションをユーザが作成することを可能にする。この新たな技術を使用すると、ユーザは、インバウンドのデータ・レコードが「未完了」(in flight)である間に、これらのデータ・レコードに適用すべき処理論理を指定することができ、その結果を非常に短い時間(しばしばミリ秒)の間に得ることができる。このタイプの処理を使用してアプリケーションを構築すると、新しいプログラミング・パラダイムが開かれて、多種多様な革新的アプリケーション、システム及びプロセスを開発することが可能になるばかりか、アプリケーション・プログラマ及びデータベース開発者にとって新たな挑戦を提示する。
ストリーム・アプリケーションでは、各オペレータは、データが1つの処理要素から(例えば、TCP/IPソケットを介して)次の処理要素にフローするように、互いに他のオペレータに接続される。スケーラビリティに到達するためには、多数の小さな実行可能コード部分(複数のオペレータ)を作成することにより、アプリケーションを複数のノードにわたって分散させるとともに、複数のノード上に複数の処理要素を複製し且つそれらの間のロード・バランシングが行われる。ストリーム・アプリケーション内の複数の処理要素(及び複数のオペレータ)を互いに融合化(fuse)することにより、より大きな処理要素を形成することができる。そのようにすると、複数の処理要素が共通の処理空間を共有することが可能になり、その結果、(例えば、TCP/IPソケットを使用する)プロセス間通信技術を使用する場合に比べて、遙かに速いオペレータ間の通信を行うことができる。さらに、複数の処理要素は、ストリーム・アプリケーションを通してのデータのフローを表すオペレータ・グラフに動的に挿入するか又は当該オペレータ・グラフから動的に除去することができ、またこれらの処理要素は、ランタイム中にストリーム・アプリケーションに融合化するか又は当該ストリーム・アプリケーションから融合化解除(un-fuse)することができる。
ストリーム・アプリケーションの1つの利点は、ユーザが、当該アプリケーションを通してのデータの処理フローの粒度を制御できるということである。言いかえれば、ユーザは、処理要素ごとに着信データについて種々の動作を実行する特定のオペレータを指定することができ、また、これらのオペレータ及びこれらのオペレータが実行される順序を修正することにより、ストリーム・アプリケーションを動的に変更することができる。さらに、ストリーム・アプリケーションは、処理中の任意の「ボトルネック」を制限しつつ、大量のデータを扱うことができる。それにも拘わらず、多くのケースでは、依然としてボトルネックが発生して、ストリーム・アプリケーションの複数の部分を低下させるであろう。さらに、追加のデータが受信される場合、かかるボトルネックによって惹起される問題は、継続的に増大することがある。このため、着信データをできるだけリアルタイムに近い態様で処理しなければならないストリーム・アプリケーションについては、潜在的な任意のボトルネックを回避しなければならない。というのは、かかるボトルネックは、アプリケーションの性能及び着信データをリアルタイムに処理するというアプリケーションの能力に厳しい影響を及ぼすことがあるからである。
本発明の実施形態は、しきい値時間内に処理できそうもない着信ストリーム・データを識別し且つ当該着信ストリーム・データを基本実行パスから除去するための技術を提供する。特に、本発明の実施形態は、データ・ストリームの受信タプル(received tuple)用の推定処理時間を計算し且つ当該計算した推定処理時間に基づき、当該受信タプルを処理すべきか否かを決定するための技術を提供する。例えば、所与の処理要素が一のタプルを処理するための平均処理時間が5ミリ秒であると仮定する。もし、本発明の実施形態が、特定のタプルを受信し且つ所与の処理要素が当該特定のタプルを処理するのに約5分を要するであろうということを計算すれば、本発明の実施形態は、所与の処理要素がこのタプルを処理するのを禁止することができる。このため、本発明の実施形態は、ストリーム・アプリケーション内のボトルネックを防止することができる。さらに、特定の実施形態では、基本実行パスの外部で、他の資源を使用して当該特定のタプルを処理することができる。
以下、本発明の実施形態を参照して説明する。しかし、本発明は、開示された特定の実施形態に制限されないことを理解されたい。むしろ、以下で説明する特徴及び要素の任意の組み合わせは、互いに異なる実施形態に関係するか否かに拘わらず、本発明を実装し且つ実施するように意図される。さらに、本発明の実施形態は、他の可能な解決手段及び/又は従来技術に比べて優れた効果を奏することができるが、所与の実施形態が特定の効果を奏するか否かは、本発明を制限するものではない。従って、以下で説明する本発明の側面、特徴、実施形態及び利点は、単に例示であるに過ぎず、請求項において明示的に記載されている場合を除き、請求項に係る発明を制限する要素であると見なすべきではない。同様に、「本発明」という用語が使用されているとしても、このことは、本明細書に開示した任意の発明的主題の一般化として解すべきではなく、請求項において明示的に記載されている場合を除き、請求項に係る発明を制限する要素であると見なすべきではない。
本発明の側面は、システム、方法又はコンピュータ・プログラムとして具体化することができる。従って、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)又はソフトウェア及びハードウェア要素を組み合わせた実施形態の形式を取ることができ、これらの全てを一般に「回路」、「モジュール」又は「システム」と称することができる。さらに、本発明の側面は、コンピュータ可読プログラム・コードを1つ以上のコンピュータ可読媒体内に具体化した、コンピュータ・プログラムの形式を取ることができる。
1つ以上のコンピュータ可読媒体の任意の組み合わせを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体から成る。例えば、コンピュータ可読ストレージ媒体は、電子、磁気、光学、電磁気、赤外線、半導体式のシステム若しくは装置又はこれらの任意の適切な組み合わせ等から成る。コンピュータ可読ストレージ媒体の特定の例は、1つ以上の線を有する電気接続、可搬式のコンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、可搬式のコンパクト・ディスク読み取り専用メモリ(CD−ROM)、光ストレージ装置、磁気ストレージ装置又はこれらの任意の適切な組み合わせ等から成る。本明細書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム等に関連して又はこれらによって使用するためのプログラムを保持し又は格納することができる、任意の有形的媒体から成る。
コンピュータ可読信号媒体は、伝搬されるデータ信号の形式を有することもあるが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ可読プログラム・コードを具体化することができる。かかる伝搬される信号は、電磁気、光学、又はこれらの任意の適切な組み合わせ等を含む、種々の形式のうち任意の形式を取る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム又は装置等に関連して又はこれらによって使用するためのプログラムを通信し、伝搬し、移送することができる、任意のコンピュータ可読媒体から成る。
コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RF、又はこれらの任意の適切な組み合わせ等を含む、適切な任意の媒体を使用して伝送することができる。
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Java(登録商標)、Smalltalk、C++等のようなオブジェクト指向プログラミング言語及び「C」プログラミング言語又は同様のプログラミング言語のような通常の手続き的プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書くことができる。プログラム・コードは、独立のソフトウェア・パッケージとしてユーザ・コンピュータ上で完全に実行することができ、その一部をユーザ・コンピュータ上で且つ他の一部を遠隔コンピュータ上で実行することができ、或いは遠隔コンピュータ又はサーバ上で完全に実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザ・コンピュータに接続することができ、或いはその接続を(例えば、インターネット・サービス・プロバイダを使用するインターネットを通して)外部コンピュータに行うことができる。
以下では、本発明の実施形態に従った、方法、装置(システム)及びコンピュータ・プログラムのフローチャート又はブロック図を参照して、本発明の側面を説明する。フローチャート又はブロック図の各ブロック、複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができる。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、当該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令は、フローチャート又はブロック図のブロックで指定された機能/行為を実装するための手段を作成する。
また、これらのコンピュータ・プログラム命令をコンピュータ可読媒体内に格納すると、当該コンピュータ可読媒体内に格納された命令が、フローチャート又はブロック図のブロックで指定された機能/行為を実装するための命令を含む製品を生産することを目的として、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置に対し特定の態様で機能するように指示することができる。
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置にロードすると、当該コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で実行される諸命令が、フローチャート又はブロック図のブロックで指定された機能/行為を実装するためのプロセスを提供することを目的として、一のコンピュータ実装プロセスを生成するように当該コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で一連の動作ステップを実行させることができる。
本発明の実施形態は、クラウド・コンピューティング・インフラストラクチャを通してエンド・ユーザに提供することができる。一般に、クラウド・コンピューティングは、ネットワーク経由のサービスとしてスケーラブルなコンピューティング資源を提供することを意味する。より正式には、クラウド・コンピューティングは、コンピューティング資源とその下部にある技術的アーキテクチャ(例えば、サーバ、ストレージ、ネットワーク)の間の抽象化を提供するコンピューティング能力であって、最小限の管理努力又はサービス・プロバイダとのやりとりで迅速にプロビジョン及び解放することができる、構成可能なコンピューティング資源の共有プールへの簡便で且つオンデマンドのネットワーク・アクセスを可能にするものと定義することができる。従って、クラウド・コンピューティングは、仮想的なコンピューティング資源(例えば、ストレージ、データ、アプリケーション、さらに完全な仮想化コンピューティング・システム)を提供するために使用される下部の物理的なシステムには関係なく、ユーザが「クラウド」内のコンピューティング資源にアクセスすることを可能にする。
一般に、クラウド・コンピューティング資源は、従量課金制に基づいてユーザに提供され、ユーザには、実際に使用したコンピューティング資源(例えば、ユーザが消費したストレージ空間の量又はユーザがインスタンス化した仮想化システムの数)のみについて使用料金が課される。ユーザは、クラウド内に存在する任意の資源を、任意の時間に、しかもインターネット上の任意の場所からアクセスすることができる。本発明の文脈では、ユーザは、クラウド内で使用可能なアプリケーション又は関係するデータにアクセスすることができる。例えば、ストリーム・アプリケーションを作成するために使用される各ノードは、クラウド・サービス・プロバイダがホストする仮想計算機とすることができる。そのようにすると、ユーザは、クラウド(例えば、インターネット)に接続されたネットワークに接続済みの任意のコンピューティング・システムからこの情報にアクセスすることができる。
図1及び図2は、本発明の一実施形態に従った、ストリーム・アプリケーションを実行するように構成されたコンピューティング・インフラストラクチャ100を例示する。図示のように、コンピューティング・インフラストラクチャ100は、管理システム105及び各々が通信ネットワーク120に接続されている複数の計算ノード1301−4を含む。また、管理システム105は、オペレータ・グラフ132及びストリーム・マネージャ134を含む。以下で詳述するように、オペレータ・グラフ132は、1つ以上のソース処理要素(PE)から開始して1つ以上のシンクPEに至る、ストリーム・アプリケーションを表す。一般に、本明細書では、ソースからシンクへのこのフローを実行パスと称する。一般に、データ要素は、ストリーム・アプリケーションのソースPEに流入し、当該PEによって処理される。典型的には、処理要素は、ストリームからデータ要素のN−タプルを受信するとともに、データ要素のN−タプルをストリームに出力する(但し、当該ストリームが終了する箇所のシンクPEを除く)。もちろん、一の処理要素によって受信されるN−タプルは、下流に送信されるN−タプルと同じである必要がない。さらに、これらの処理要素は、N−タプルとは異なる形式で、データを受信又は出力するように構成することができる(例えば、これらの処理要素は、XMLドキュメントとしてマークアップされたデータを交換することができる)。さらに、各処理要素は、受信タプルについて任意の形式のデータ処理機能を実行するように構成することができる。かかるデータ処理機能は、例えば、データベース・テーブルへの書き込み又はデータの結合、分割、読み取り等の他のデータベース動作に加えて、他のデータ分析機能又は動作を実行することを含む。
ストリーム・マネージャ134は、計算ノード1301−4上で走行中のストリーム・アプリケーションをモニタし且つオペレータ・グラフ134の構造を変更するように構成することができる。ストリーム・マネージャ134は、例えば、コンピューティング・インフラストラクチャ100内の複数の計算ノード130の処理ロードを管理するために、1つの計算ノード130からの処理要素(PE)を他の計算ノード130に移動させることができる。さらに、ストリーム・マネージャ134は、計算ノード1301−4上で走行中の処理要素(又はこれらの処理要素に流入するデータ・タプル)を挿入し、移動し、融合化し、融合化解除し、又は他の態様で修正することにより、ストリーム・アプリケーションを制御することができる。本発明の一実施形態では、管理システム105は、複数のオペレータ・グラフ132を維持することがある。かかる実施形態では、1つのオペレータ・グラフ132は、一般又はデフォルト処理フローを表す基本のオペレータ・グラフとして指定され、他のオペレータ・グラフは、代替処理フローを表すことがある。
図2は、計算ノード1301−4上で走行中の10個の処理要素(PE1〜PE10)を含む、オペレータ・グラフを例示する。各処理要素は、それ自体のプロセスID(PID)及びメモリ空間を有する独立的に走行するプロセスとして実行することができるが、(PID及びメモリ空間を有する)単一のプロセスとして走行するように複数の処理要素を融合化することもできる。2つ以上の処理要素が独立的に走行しているケースでは、ネットワーク・ソケット(例えば、TCP/IPソケット)を使用してプロセス間通信を行うことができる。しかし、複数のプロセスが互いに融合化される場合は、融合化した諸処理要素は、複数の処理要素(及び各処理要素内の複数のオペレータ)間でN−タプル(又は他のデータ)を引き渡すために、より高速の通信技術を使用することができる。
図示のように、オペレータ・グラフ132は、ソース135で開始し(処理要素PE1に流入する)、シンク1401−2で終了する(処理要素PE6及びPE10から流出する)。計算ノード130は、処理要素PE1〜PE3を含む。ソース135は、処理要素PE1に流入し、処理要素PE1が出力するタプルは、PE2及びPE3が受信する。例えば、PE1は、一のタプル内で受信したデータ要素を分割し、幾つかのデータ要素をPE2に引き渡すとともに、他のデータ要素をPE3に引き渡すことができる。PE2に流入するデータは、PE2内に保持されるオペレータによって処理され、その後、結果的なタプルは、計算ノード130上のPE4に出力される。同様に、PE4が出力するデータ・タプルは、シンクPE6 140に流入する。同様に、PE3からPE5に流出するデータ・タプルも、PE6 140に到達する。従って、PE6は、この例示的なオペレータ・グラフのシンクであることに加えて、PE4及びPE5からの受信タプルを組み合わせて、結合動作を実行するように構成することができる。また、この例示的なオペレータ・グラフは、PE3から計算ノード130上のPE7に流出するデータ・タプルを示しており、PE8に流入するデータ・タプルがPE7にループ・バックすることも示している。PE8が出力したデータ・タプルは、計算ノード130上のPE9に流入し、PE9は、シンクPE10 140が処理すべきタプルを出力する。
図3は、本発明の一実施形態に従った、図1及び図2の計算ノード130をより詳細に示す。図示のように、計算ノード130は、中央演算処理装置(CPU)205、ネットワーク・インタフェース215、相互接続220、メモリ225及びストレージ230を含む。また、計算ノード130は、I/O装置212(例えば、キーボード、ディスプレイ及びマウス)を接続するために使用されるI/O装置インタフェース210を含む。
CPU205は、メモリ225内に格納したプログラミング命令を検索し且つこれを実行する。同様に、CPU 205は、アプリケーション・データをメモリ225内に格納し且つこれをメモリ225から検索する。相互接続220は、プログラミング命令及びアプリケーション・データを、CPU 205、I/O装置インタフェース210、ストレージ230、ネットワーク・インタフェース215及びメモリ225の間で送信するために使用される。CPU 205は、単一のCPU、複数のCPU、複数の処理コアを有する単一のCPU等を表す。また、メモリ225は、一般にランダム・アクセス・メモリを表す。ストレージ230は、例えば、ハードディスク・ドライブ、ソリッド・ステート装置(SSD)又はフラッシュ・メモリ・ストレージ・ドライブから構成され、不揮発性データを格納することができる。
この例では、メモリ225は、複数の処理要素(PE)235、推定処理時間(EPT)コンポーネント245及びストリーム接続データ255を含む。各PE 235は、オペレータ240の集合を含む。前述のように、各オペレータ240は、一の処理要素(例えば、PE 235)に流入するデータを処理し且つ当該PE内の他のオペレータ240及びストリーム・アプリケーション内の他のPEにデータを出力するように構成された、実行可能なコードの小さなチャンクを提供することができる。これらのPEは、同じ計算ノード上にあるか、又はデータ通信ネットワーク120を介してアクセス可能な他の計算ノード上にある。ストリーム接続データ255は、計算ノード130上のPE間の接続(例えば、2つの別個のPE 235間のTCP/IPソケット接続)を表すとともに、ストリーム・アプリケーション内の上流及び下流のPEを有する他の計算ノード130への接続(例えば、TCP/IPソケット又は他のプロセス間データ通信機構を介する接続)を表す。
バッファ化ストリーム・データ260は、上流の処理要素(又はストリーム・アプリケーションのデータソース)から計算ノード130に流入するデータ用のストレージ空間を表す。例えば、バッファ化ストリーム・データ260は、1つのPE 235によって処理されることを待機中のデータ・タプルを含むことができる。また、バッファ化ストリーム・データ260は、PE 235によって実行されたデータ処理の結果を格納することができる。これらの結果は、下流の処理要素に送信されるであろう。
EPTコンポーネント245は、1つのPE 235上で処理すべきデータ・ストリームの着信タプルを受信する。一般に、これらの受信タプルは、ソース135から着信するか、又はシステム100内の他のPEの出力である。所与のタプルを受信する際、EPTコンポーネント245は、所与のタプルを処理するための推定処理時間を計算する。一実施形態では、推定処理時間は、所与のタプル内に保持される1つ以上の属性に基づいて計算される。他の実施形態では、推定処理時間は、所与のタプルに関して収集したメタデータに基づいて計算される。さらに他の実施形態では、推定処理時間は、PE 235を使用して処理した他のタプルから収集済みの履歴データに基づいて計算される。一旦推定処理時間を計算すると、EPTコンポーネント245は、推定処理時間が所定のしきい値時間を超えるか否かを決定する。もし、推定処理時間が所定のしきい値時間を超えなければ、EPTコンポーネント245は、所与のタプルを処理すべき適切なPE 235に送信する。
一方、推定処理時間が所定のしきい値時間を超えれば、EPTコンポーネント245は、所与のタプルを基本実行パスから除去する。本発明の一実施形態では、EPTコンポーネント245は、所与のタプルを処理すべき代替実行パス(alternate execution path)に送信する。例えば、基本実行パスが、第1のPE 235を使用して所与のタプルを処理すべきことを指定するものと仮定する。もし、推定処理時間が所定のしきい値時間を超えることを決定すれば、EPTコンポーネント245は、代替実行パスに従って、所与のタプルを第2のPE 235に送付する。本発明の他の実施形態では、推定処理時間が所定のしきい値時間を超えることを決定する場合、EPTコンポーネント245は、所与のタプルの処理を遅延させる。例えば、EPTコンポーネント245は、基本実行パスが指定したPE 235がアイドルになるまで、所与のタプルの処理を遅延させる。代替実施形態では、推定処理時間が所定のしきい値時間を超えることを決定する場合、EPTコンポーネント245は、データ・ストリームの所与のタプルを廃棄する。かかる代替実施形態では、EPTコンポーネント245は、所与のタプルが廃棄されたことを指示するメッセージを生成する。補足的に説明すると、EPTコンポーネント245は、当該生成済みのメッセージをログ・ファイル内に格納するか、又は(例えば、モニタのようなI/O装置212を使用して)当該メッセージをユーザに伝えることができる。
図4は、本発明の一実施形態に従った、図1のサーバ・コンピューティング・システム105をより詳細に示す。図示のように、サーバ・コンピューティング・システム105は、CPU 305、ネットワーク・インタフェース315、相互接続320、メモリ325及びストレージ330を含む。また、サーバ・コンピューティング・システム105は、I/O装置312(例えば、キーボード、ディスプレイ及びマウス))を当該サーバ・コンピューティング・システム105に接続するI/Oデバイス・インタフェース310を含む。
図3のCPU 205のように、CPU 305は、メモリ325及びストレージ330内に格納したプログラミング命令を検索し且つ実行するように構成される。同様に、CPU 305は、アプリケーション・データをメモリ325及びストレージ330に格納し且つこれを検索するように構成される。相互接続320は、プログラム命令及びアプリケーション・データのようなデータを、CPU 305、I/O装置インタフェース310、ストレージ330、ネットワーク・インタフェース305及びメモリ325の間で移動させるように構成される。CPU 205のように、CPU 305は、単一のCPU、複数のCPU、複数の処理コアを有する単一のCPU等を表す。メモリ325は、一般にランダム・アクセス・メモリを表す。ネットワーク・インタフェース315は、通信ネットワーク120を介してデータを送信するように構成される。ストレージ330は、単一のユニットとして図示されているが、これを固定ディスク・ドライブ、取り外し可能メモリ・カード、光ストレージ、SSD又はフラッシュ・メモリ装置のような固定式及び/又は取り外し可能ストレージ装置の組み合わせ、ネットワーク接続ストレージ(NAS)、又はストレージ・エリア・ネットワーク(SAN)装置とすることができる。
図示のように、メモリ325は、ストリーム・マネージャ134を格納する。さらに、ストレージ330は、基本オペレータ・グラフ335及び代替オペレータ・グラフ340を含む。一般に、ストリーム・マネージャ134は、データ・ストリームの一部として受信したタプルを、基本オペレータ・グラフ335に従って、処理すべきPE 235に送付することができる。前述のように、本発明の一実施形態では、推定処理時間が所定のしきい値時間を超えることを決定する場合、EPTコンポーネント245は、所与のタプルを、代替実行パスに従って、第2のPE 235に送付する。かかるシナリオでは、代替実行パスは、代替オペレータ・グラフ240によって指定することができる。さらに、EPTコンポーネント245は、ストリーム・マネージャ134に対し、データ・ストリームについて受信された全ての後続タプルを代替オペレータ・グラフ340に従ってPE 235に送付すべきことを通知するように構成することができる。
図5は、本発明の一実施形態に従った、ストリーム・アプリケーション内の複数の計算ノードを例示する。図示のように、計算ノード130は、3つの処理要素235、235及び235(PE1〜PE3)を含む。この例では、処理要素235は、N−タプル・データ・ストリームを受信し、N−タプルを処理要素235及び235(PE2及びPE3)に出力する。次に、処理要素PE2及びPE3は、N−タプルを計算ノード130上の処理要素235に出力する。この例では、PE 135(PE1)は、属性<名前、所属部門、給与、性別>を含むタプルを受信する。PE1は、このN−タプルを取り、PE1が受信したタプル内の性別値に基づき、PE2に送信される1組のタプル及びPE3に送信される他の1組のタプルを生成する。次に、PE2及びPE3は、PE1から受信した各タプルについてデータベースへの書き込みを行い、そしてPE4に送信されるタプルの属性<名前、所属部門、給与>を生成する。一旦これを受信すると、PE4は、第三者のウェブ・サービスにアクセスして、ストリーム・アプリケーション内のさらなる下流に送信されるタプルを生成する。
この例の説明を継続すると、図示のストリーム・アプリケーションは、受信タプルをできるだけリアルタイムに近い態様で処理することを必要とするものであることがある。そのため、ストリーム・アプリケーションは、複数のタプルをパイプライン式に処理することができる。本明細書では、パイプライン式処理は、第1の処理要素による処理の結果が次の処理要素によって処理され、当該次の処理要素による処理の結果が後続の処理要素によって処理され、以後同様の処理が実行されるという形式の任意の処理を意味する。従って、図5に示す例を使用すると、この処理がパイプライン化されていると云われる理由は、PE1による処理の結果が処理のためにPE2又はPE3の何れかに供給され、そしてPE2及びPE3の結果がさらなる処理のためにPE4に供給されるという点にある。
この処理のパイプライン化のために、処理するのにより長い時間を要するデータの特定のタプルは、特定のタプルの処理を遅延させるだけでなく、受信した全ての後続タプルの処理も同様に遅延させることがある。例えば、一のタプルが平均して5ミリ秒ごとに受信され且つ例示したストリーム・アプリケーションが一のタプルを処理するのに平均して4ミリ秒を要すると仮定すれば、ストリーム・アプリケーションは、未処理タプルのバックログを有することなしに、受信タプルを処理することができるであろう。しかし、受信した特定のタプルを処理するのに5分を要するものとさらに仮定する。このことが生じ得るのは、例えば、特定のタプルが特定の属性を保持し、その処理が、第三者サービスにアクセスすることを必要とすることがあるからである。例えば、属性「所属部門」が値「技術部」を保持すれば、ストリーム・アプリケーションは、技術部特有の第三者の給与計算サービスにアクセスするように構成することができる。もし、ストリーム・アプリケーション及び第三者サービスの間の接続が現に問題を有していれば、特定のタプルの処理を完了するのに通常よりもかなり長い時間を要することがある(例えば、4ミリ秒対5分)。そのため、説明中の例では、特定のタプルの処理は、他のタプルの平均処理時間より遙かに長い時間を必要とするので、ストリーム・アプリケーションは、5分の処理時間中に受信した他の全てのタプルのバックログを有し、従ってこれらのタプルの処理が遅延されることになろう。さらに、属性「所属部門」の値「技術部」を保持する他のタプルが受信される場合、バックログ(従って、遅延)は、継続的に増大するであろう。
本発明の実施形態は、属性プロファイリングに基づいて、処理するのに過度に長い時間を要すると予測される特定のランタイム・データを除去することができる。本発明の実施形態に従って、EPTコンポーネント245は、各受信タプルが処理される前に、当該各受信タプルをプロファイルする。このプロファイリングは、タプル内に保持される属性、当該属性の値、当該属性に関するメタデータ、他のタプルの処理から収集した履歴データなどを考慮に入れることができる。一旦プロファイルが生成されると、EPTコンポーネント245は、受信タプル用の推定処理時間を計算する。次に、EPTコンポーネント245は、推定処理時間が所定のしきい値時間より小さいか又はそれに等しいかを決定し、そうであれば、基本実行パス(すなわち、受信タプルのための標準的な実行パス)に従って、受信タプルを処理すべき適切な処理要素に送信する。しかし、推定処理時間が所定のしきい値時間を超えることを決定すれば、EPTコンポーネント245は、処理要素を使用して受信タプルを処理する動作を回避することができる。その代わりに、受信タプルは、代替実行パスを使用して処理することができる。本発明の他の実施形態では、受信タプルの処理は、後の時間(例えば、処理要素がアイドルになるとき、又は接続がもはや問題を有しないとき)まで遅延させることができる。さらに他の実施形態では、受信タプルは単に廃棄して、処理しないようにすることができる。
本発明の実施形態は、推定処理時間がしきい値時間を超える場合には基本実行パスを使用する受信タプルの処理を回避することによって、特定のタプルがストリーム・アプリケーション内にバックログを作成する状況を回避するのを支援する。さらに、本発明の実施形態は、特定のタプル内に保持されるデータがストリーム・アプリケーションにとって失われないように、特定のタプルの処理を遅延させるか又は再送付するように構成することができる。これらの利点がストリーム・アプリケーションに特に適切であるのは、受信データをその受信時にできるだけリアルタイムに近い態様で処理する必要がある場合である。
さらに、本発明の実施形態は、所定のしきい値時間を使用するのではなく、1つ以上のファクタに基づき、しきい値時間を計算するように構成することができる。本発明の一実施形態では、EPTコンポーネント245は、システムのワークロード(又は予測ワークロード)に基づき、しきい値時間を計算する。例えば、ピーク処理時間帯の間は、システム資源は高いデマンドがあるので、EPTコンポーネント245は、しきい値時間を比較的短い時間にセットする。他の例として、オフピーク処理時間帯の間は、システム資源がアイドルであるか又は最大能力よりも低いレベルで動作しているので、EPTコンポーネント245は、しきい値時間を比較的長い時間にセットする。有利なことに、本発明の実施形態は、このようにして一種のロード・バランシングを行うことができる。というのは、システムが重いワークロードの下で動作している場合は、(処理時間の点で)長い照会を制限することができるからである。
図6は、本発明の一実施形態に従った、ランタイム・データの予測除去方法500をフローチャートの形式で例示する。図示のように、方法500はステップ520で開始し、そこでEPTコンポーネント245は、処理すべきタプルを受信する。一実施形態では、このタプルは、EPTコンポーネント245に直接に送信することができる。代替実施形態では、EPTコンポーネント245は、処理要素235がタプルを受信する前に、この処理要素235に送信されたタプルをインターセプトすることができる。
一旦このタプルを受信すると、EPTコンポーネント245は、この受信タプル用のプロファイルを生成する(ステップ522)。一般に、このプロファイルは、受信タプルに関係する情報を含む。例えば、このプロファイルは、どのような属性が受信タプル内に保持されているかという情報に加えて、これらの属性の値に関する情報を含むことができる。さらに、このプロファイルは、受信タプルに関するメタデータを含むことができる。典型的なメタデータは、受信タプル内に保持される属性の数、受信タプル内に保持される属性のサイズ、受信タプル内に保持される属性のタイプ、受信タプルが属するグループ等を含む。さらに、このプロファイルは、以前に処理したタプルについて収集した情報を含むことができる。
一旦受信タプル用のプロファイルを生成すると、EPTコンポーネント245は、受信タプルを処理するための推定処理時間を計算する(ステップ524)。EPTコンポーネント245は、受信タプル用の生成済みプロファイルに基づき、この決定を行う。例えば、EPTコンポーネント245は、受信タプルが属性「所属部門」の値「販売部」を含むという理由で、このタプルを処理するのに約15ミリ秒を要するだろうということを決定する。
一旦推定処理時間を計算すると、EPTコンポーネント245は、推定処理時間を所定のしきい値時間と比較する(ステップ526)。もし、推定処理時間がしきい値時間より大きいことを決定すれば、EPTコンポーネント245は、受信タプルを廃棄する(ステップ530)。次に、EPTコンポーネント245は、廃棄タプルに関する情報をログする(ステップ532)。一実施形態では、EPTコンポーネント245は、受信タプル内に保持される属性の値もログする。そのようにすると、受信タプルを後の時点で処理することができる。代替実施形態では、EPTコンポーネント245は、これに代えて、受信タプルを処理すべき代替実行パスに送付することができる。さらに、EPTコンポーネント245は、受信タプルが属するデータ・ストリームから受信される全ての後続タプルを代替実行パスに送付するように構成することができる。
一方、推定処理時間がしきい値時間よりも大きくないことを決定すれば、EPTコンポーネント245は、受信タプルを基本実行パスに従った適切な処理要素に送信し、そこで受信タプルが処理される(ステップ528)。一旦受信タプルが処理されるか、又は廃棄タプルに関する情報をログすると、EPTコンポーネント245は、処理すべき他のタプルが存在するか否かを決定する(ステップ534)。そうであれば、方法500はステップ520で再び開始し、そこでEPTコンポーネント245は、処理すべき次のタプルを受信する。さもなければ、方法500は終了する。
方法500を使用することの1つの利点は、基本実行パスを使用すると相当な遅延を引き起こしそうなタプルの処理を、ストリーム・アプリケーションが回避できるということにある。そのため、方法500は、しきい値時間内に処理が完了すると予測されるタプルだけを処理することによって、「ボトルネック」効果を引き起こし且つストリーム・アプリケーション内に処理すべきタプルのバックログを作成しそうな任意のタプルの処理を回避することを支援する。さらに、本発明の実施形態は、その処理時間がしきい値時間を超えそうなタプルの処理を遅延させるか、又は代替実行パスを使用してこれらのタプルを処理するように構成することができる。そのため、これらのタプル内に保持されるデータは失われないし、これらのタプルを処理することにより基本実行パスが遅延されることもないであろう。
図7は、本発明の一実施形態に従った、タプルのプロファイル方法600をフローチャートの形式で例示する。図示のように、方法600はステップ620で開始し、そこでEPTコンポーネント245は、受信タプルに関するメタデータを計算する。前述のように、典型的なメタデータは、受信タプル内に保持される属性の数、受信タプル内に保持される属性のサイズ、受信タプル内に保持される属性のタイプ及び受信タプルが属するグループを含む。もちろん、これらの例は、説明の便宜上のものであるに過ぎず、受信タプルに関する他のメタデータも収集することもできる。
一旦メタデータを計算すると、EPTコンポーネント245は、受信タプル内に保持される属性の値を分析する(ステップ622)。例えば、EPTコンポーネント245は、受信タプルが属性「所属部門」の値「技術部」を保持することを決定する。次に、EPTコンポーネント245は、受信タプルに関係する履歴データを検索する(ステップ624)。例えば、受信タプルが値「技術部」を有する属性「所属部門」を保持していれば、EPTコンポーネント245は、属性「所属部門」の値「技術部」を保持していた他のタプルの処理に関係する履歴データを検索する。一旦履歴データを検索すると、EPTコンポーネント245は、検索されたタプル用のプロファイルを作成する(ステップ626)。
受信タプル用のプロファイルを生成した後、EPTコンポーネント245は、生成されたプロファイルを使用して受信タプルの処理時間を推定することができる。例えば、EPTコンポーネント245は、特定のタプルが属性「所属部門」の値「技術部」を保持するという理由で、このタプルを処理するのに50ミリ秒を要するであろうということを推定する。他の例として、このプロファイルは、他の関係するタプルの処理に関する履歴情報を保持することができる。例えば、一のプロファイルは、属性「所属部門」の値「技術部」を保持する3つのタプルが、10ミリ秒、20ミリ秒及び30ミリ秒の処理時間でそれぞれ処理されたことを指示する情報を保持することがある。そのため、EPTコンポーネント245は、属性「所属部門」の値「技術部」を保持する一のタプルの推定処理時間が、以前の3つのレコード時間の平均となり、従って20ミリ秒になるであろうということを決定することができる。EPTコンポーネント245は、これら及び他のファクタを考慮することによって、受信タプル用の完全なプロファイルを生成し、これを使用して、受信タプル用の正確な推定処理時間を計算することができる。さらに、前述の例は、受信タプル内の単一の属性を分析することに注目しているが、本発明の実施形態は、受信タプル用の推定処理時間を計算する際に、受信タプル内の複数又は全ての属性に加えて、他の関係する情報をも調べることができる。
図面のうちフローチャート及びブロック図は、本発明の種々の実施形態に従った、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能性及び動作を示す。この点に関連して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ以上の実行可能命令から成る、モジュール、セグメント又はコード部分を表すことがある点に留意されたい。また、幾つかの代替的実装では、ブロック内に表記した機能を図面に示した順序とは異なる順序で実施することができる点にも留意されたい。例えば、特定の機能性に依存して、連続的に示した2つのブロックを実質的に並列に実施したり、これらのブロックを反対の順序で実施することができる。さらに、ブロック図又はフローチャートの各ブロック及び複数ブロックの組み合わせは、指定された機能又は行為を実行する専用のハードウェア・ベースのシステム又は専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができる点にも留意されたい。
前述の説明は、本発明の実施形態に向けられているが、本発明の基本的な範囲から逸脱することなく、他の実施形態を考案することができる。本発明の範囲は、以下の請求項の記載によって決定される。
100・・・コンピューティング・インフラストラクチャ
105・・・管理システム
120・・・通信ネットワーク
130・・・計算ノード
132・・・オペレータ・グラフ
134・・・ストリーム・マネージャ
135・・・ソース
140・・・シンク
225・・・メモリ
230・・・ストレージ
235・・・処理要素(PE)
240・・・オペレータ
245・・・推定処理時間(EPT)コンポーネント
255・・・ストリーム接続データ
260・・・バッファ化ストリーム・データ
325・・・メモリ
330・・・ストレージ
335・・・
335・・・基本オペレータ・グラフ
340・・・代替オペレータ・グラフ

Claims (9)

  1. 複数の計算ノード上で実行中の複数の処理要素を含むデータ・ストリーム環境においてデータ・ストリームを処理するためのコンピュータ・システム実装方法であって、前記複数の計算ノードの各々が前記複数の処理要素の各々をホストし、前記複数の計算ノードの各々がコンピュータ・プロセッサを備えており、前記複数の処理要素の各々が、データ・ストリームの着信タプルを受信し及び前記着信タプル上の個々の1以上の処理動作を実行するように構成されており、前記方法は、
    処理すべき前記データ・ストリームのうち複数の属性を含む第1のタプルを受信するステップと、
    1つ以上の前記コンピュータ・プロセッサの動作によって、少なくとも前記受信した第1のタプル内の前記複数の属性のうち1つ以上の属性に部分的に基づき、前記データ・ストリームの前記受信した第1のタプルを処理するための推定処理時間を計算するステップと、
    前記計算した推定処理時間が所定のしきい値時間を超えないことを決定する場合オペレータ・グラフを通じて第1の実行パスを使用して前記第1のタプルを第1の態様で処理するステップであって、前記オペレータ・グラフは前記複数の処理要素を接続して表したグラフである、前記処理するステップと、
    前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記受信した第1のタプルを、
    (i)前記第1のタプルを廃棄すること;
    (ii)処理要素が使用可能になるときに処理するように、前記第1のタプルを格納すること、及び、前記第1の実行パス内の少なくとも1つの処理要素が使用可能であることを決定する場合、前記第1の実行パスを使用して前記格納した第1のタプルを処理すること;
    (iii)前記オペレータ・グラフを通じて第2の実行パスを使用して前記第1のタプルを処理するステップであって、前記第2の実行パスは前記第1の実行パスと異なる、前記処理すること;
    の少なくとも1つで処理するステップと
    を含み、前記方法は、
    前記第1の実行パス内の少なくとも1つの処理要素の現在のワークロードをモニタするステップと、
    前記現在のワークロードに基づき前記しきい値時間を調整するステップと
    をさらに含む、前記方法。
  2. 前記第1の実行パスを使用して前記第1のタプルを前記第1の態様で処理するステップが、
    前記第1の実行パスを使用して前記データ・ストリームの前記受信した第1のタプルを処理するための実際の実行時間を計算するステップと、
    前記実際の実行時間及び前記処理した第1のタプルの識別子を履歴データに格納するステップと
    を含む、請求項1に記載の方法。
  3. 前記計算するステップがさらに、他のタプルを処理するステップから収集した履歴データに基づく、請求項1に記載の方法。
  4. 前記調整するステップが、
    前記現在のワークロードが第1のワークロード値を超えることを決定する場合、前記第1の実行パス内の前記少なくとも1つの処理要素の全体的なワークロードを削減するように前記しきい値時間を減少させるステップと、
    前記現在のワークロードが第2のワークロード値未満であることを決定する場合、前記第1の実行パス内の前記少なくとも1つの処理要素の全体的なワークロードを増大するように前記しきい値時間を増加させるステップと
    を含む、請求項1〜3のいずれか一項に記載の方法。
  5. 複数の計算ノード上で実行する複数の処理要素を含むデータ・ストリーム環境においてデータ・ストリームを処理するためのコンピュータ・システム実装方法であって、前記複数の計算ノードの各々が前記複数の処理要素の各々をホストし、前記複数の計算ノードの各々がコンピュータ・プロセッサを備えており、前記複数の処理要素の各々が、データ・ストリームの着信タプルを受信し及び前記着信タプル上の個々の1以上の処理動作を実行するように構成されており、前記方法は、
    処理すべき前記データ・ストリームのうち複数の属性を含む第1のタプルを受信するステップと、
    1つ以上の前記コンピュータ・プロセッサの動作によって、少なくとも前記受信した第1のタプル内の前記複数の属性のうち1つ以上の属性に部分的に基づき、前記データ・ストリームの前記受信した第1のタプルを処理するための推定処理時間を計算するステップと、
    前記計算した推定処理時間が所定のしきい値時間を超えないことを決定する場合、前記オペレータ・グラフを通じて第1の実行パスを使用して前記第1のタプルを第1の態様で処理するステップであって、前記オペレータ・グラフは前記複数の処理要素を接続して表したグラフである、前記処理するステップと、
    前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記第1の実行パス内の1つ以上の処理要素に対する遅延を最小化するように、前記第1のタプルを、
    (i)前記第1のタプルを廃棄すること;
    (ii)処理要素が使用可能になるときに処理するように、前記第1のタプルを格納すること、及び、前記第1の実行パス内の少なくとも1つの処理要素が使用可能であることを決定する場合、前記第1の実行パスを使用して前記格納した第1のタプルを処理すること;
    (iii)前記オペレータ・グラフを通じて第2の実行パスを使用して前記第1のタプルを処理するステップであって、前記第2の実行パスは前記第1の実行パスと異なる、前記処理すること;
    の少なくとも1つを含む第2の態様で処理するステップと
    を含み、前記方法は、
    前記第1の実行パス内の少なくとも1つの処理要素の現在のワークロードをモニタするステップと、
    前記現在のワークロードに基づき前記しきい値時間を調整するステップと
    をさらに含む、前記方法。
  6. 前記データ・ストリームの前記受信した第1のタプルを記述するメタデータを収集するステップをさらに含む請求項に記載の方法。
  7. 前記メタデータが、(i)前記複数の属性内の属性の数、(ii)前記複数の属性内の1つ以上の属性の長さ、及び(iii)前記複数の属性内の1つ以上の属性のタイプのうち少なくとも1つを含む、請求項に記載の方法。
  8. 前記調整するステップが、
    前記現在のワークロードが第1のワークロード値を超えることを決定する場合、前記第1の実行パス内の前記少なくとも1つの処理要素の全体的なワークロードを削減するように前記しきい値時間を減少させるステップと、
    前記現在のワークロードが第2のワークロード値未満であることを決定する場合、前記第1の実行パス内の前記少なくとも1つの処理要素の全体的なワークロードを増大するように前記しきい値時間を増加させるステップと
    を含む、請求項5〜7のいずれか一項に記載の方法。
  9. データ・ストリームを処理するためのコンピュータ・システムであって、複数の計算ノードを備えており、前記複数の計算ノードの各々が前記複数の処理要素の各々をホストし、前記複数の計算ノードの各々がコンピュータ・プロセッサを備えており、前記複数の処理要素の各々が、データ・ストリームの着信タプルを受信し及び前記着信タプル上の個々の1以上の処理動作を実行するように構成されており、前記コンピュータ・システムに、請求項1〜8のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・システム。
JP2011138024A 2010-08-20 2011-06-22 データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラム Expired - Fee Related JP5679917B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/860,000 US8639809B2 (en) 2010-08-20 2010-08-20 Predictive removal of runtime data using attribute characterizing
US12/860000 2010-08-20

Publications (3)

Publication Number Publication Date
JP2012043409A JP2012043409A (ja) 2012-03-01
JP2012043409A5 JP2012043409A5 (ja) 2014-08-07
JP5679917B2 true JP5679917B2 (ja) 2015-03-04

Family

ID=45595081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011138024A Expired - Fee Related JP5679917B2 (ja) 2010-08-20 2011-06-22 データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラム

Country Status (3)

Country Link
US (1) US8639809B2 (ja)
JP (1) JP5679917B2 (ja)
CN (1) CN102375877A (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8744367B2 (en) * 2010-08-31 2014-06-03 At&T Intellectual Property I, L.P. Tail optimization protocol for cellular radio resource allocation
US8527627B2 (en) 2010-12-14 2013-09-03 At&T Intellectual Property I, L.P. Intelligent mobility application profiling with respect to identified communication bursts
US9220066B2 (en) 2011-06-20 2015-12-22 At&T Intellectual Property I, L.P. Bundling data transfers and employing tail optimization protocol to manage cellular radio resource utilization
US9264872B2 (en) 2011-06-20 2016-02-16 At&T Intellectual Property I, L.P. Controlling traffic transmissions to manage cellular radio resource utilization
US9396157B2 (en) * 2011-08-26 2016-07-19 International Business Machines Corporation Stream application performance monitoring metrics
US8990635B2 (en) * 2011-12-22 2015-03-24 International Business Machines Corporation Detecting and resolving errors within an application
US8924939B2 (en) * 2012-05-09 2014-12-30 International Business Machines Corporation Streams debugging within a windowing condition
US9391830B2 (en) * 2012-09-26 2016-07-12 International Business Machines Corporation Dynamic stream processing within an operator graph
US9195559B2 (en) 2012-12-12 2015-11-24 International Business Machines Corporation Management of stream operators with dynamic connections
US20140280338A1 (en) * 2013-03-14 2014-09-18 Cisco Technology, Inc. Distributed network analytics
US9571545B2 (en) 2013-03-15 2017-02-14 International Business Machines Corporation Evaluating a stream-based computing application
US9329970B2 (en) 2013-03-15 2016-05-03 International Business Machines Corporation Selecting an operator graph configuration for a stream-based computing application
EP2981885A4 (en) * 2013-04-03 2016-11-02 Hewlett Packard Development Co MODIFYING OPERATIONS TO BE EXECUTED IN MULTIPLE EXECUTION ENVIRONMENTS
US9147010B2 (en) 2013-04-17 2015-09-29 International Business Machines Corporation Reconfiguring an operator graph based on attribute usage
CN104462087B (zh) * 2013-09-13 2018-09-04 北大方正集团有限公司 一种文本文档分页处理方法和系统
US9515965B2 (en) * 2013-09-18 2016-12-06 International Business Machines Corporation Managing data paths in an operator graph
WO2015125453A1 (ja) 2014-02-18 2015-08-27 日本電気株式会社 情報処理装置及び負荷制御方法
US9747343B2 (en) * 2015-02-19 2017-08-29 International Business Machines Corporation Algorithmic changing in a streaming environment
US11240286B2 (en) * 2015-06-29 2022-02-01 International Business Machines Corporation Software request-filtering predictive technique based on resource usage probabilities
CN106599161B (zh) * 2016-12-08 2020-02-14 竹间智能科技(上海)有限公司 延长机器人思考时间的回复方法及系统
US10579624B2 (en) * 2017-01-08 2020-03-03 International Business Machines Corporation Tuple attribute expiry management
US10417239B2 (en) 2017-01-13 2019-09-17 International Business Machines Corporation Reducing flow delays in a data streaming application caused by lookup operations
US10541944B1 (en) * 2017-07-24 2020-01-21 Rockwell Collins, Inc. High integrity AFDX switches
CN107566206B (zh) * 2017-08-04 2020-09-04 华为技术有限公司 一种流量测量方法、设备及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2816730B1 (fr) * 2000-11-13 2004-10-15 Commissariat Energie Atomique Procede de securisation rendant deterministe l'execution en temps reel d'applications multitaches du type controle- commande avec confinement d'erreur
US8107524B2 (en) * 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
JP2004046312A (ja) * 2002-07-09 2004-02-12 Nippon Telegr & Teleph Corp <Ntt> サイト運営者情報抽出方法、装置、サイト運営者情報抽出プログラム、および該プログラムを記録した記録媒体
JP3833665B2 (ja) 2004-03-16 2006-10-18 三井住友海上火災保険株式会社 記録物、記録方法、及び記録物の読み取り装置
JP4810918B2 (ja) 2005-08-01 2011-11-09 富士ゼロックス株式会社 コードパターン画像生成装置及び方法、コードパターン画像読取装置及び方法、及びコードパターン画像媒体
JP4523921B2 (ja) * 2006-02-24 2010-08-11 三菱電機株式会社 計算機リソース動的制御装置
KR20080109786A (ko) * 2006-03-29 2008-12-17 닛본 덴끼 가부시끼가이샤 통신 방법, 노드 및 제어 프로그램
US7817563B1 (en) * 2007-06-26 2010-10-19 Amazon Technologies, Inc. Adaptive data stream sampling
US7769806B2 (en) * 2007-10-24 2010-08-03 Social Communications Company Automated real-time data stream switching in a shared virtual area communication environment
JP5465413B2 (ja) * 2008-10-29 2014-04-09 株式会社日立製作所 ストリームデータ処理方法、及びそのシステム

Also Published As

Publication number Publication date
CN102375877A (zh) 2012-03-14
US20120047505A1 (en) 2012-02-23
US8639809B2 (en) 2014-01-28
JP2012043409A (ja) 2012-03-01

Similar Documents

Publication Publication Date Title
JP5679917B2 (ja) データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラム
US9135057B2 (en) Operator graph changes in response to dynamic connections in stream computing applications
US8560526B2 (en) Management system for processing streaming data
US9189449B2 (en) Memory management in a streaming application
US8572274B2 (en) Estimating load shed data in streaming database applications
US9043381B2 (en) Predictive operator graph element processing
US9158795B2 (en) Compile-time grouping of tuples in a streaming application
JP5656781B2 (ja) ストリーム・ベースのデバッギングのための方法、記憶媒体、およびシステム(ストリーム・ベースのデバッギング技法)
US9251205B2 (en) Streaming delay patterns in a streaming environment
US8943120B2 (en) Enhanced barrier operator within a streaming environment
US8688646B2 (en) Speculative execution in a real-time data environment
US20130198318A1 (en) Processing element management in a streaming data system
US9262223B2 (en) Lazy initialization of operator graph in a stream computing application
WO2013113575A1 (en) Deploying an executable with historical performance data
Javed et al. Characterization of big data stream processing pipeline: A case study using flink and kafka
US9152689B2 (en) Managing passthru connections on an operator graph
US20140164356A1 (en) Tuple routing in a streaming application
US8600976B2 (en) Invalidating streams in an operator graph
US9218566B2 (en) Detecting disallowed combinations of data within a processing element
US9330118B2 (en) Exiting windowing early for stream computing
US9158784B2 (en) Compressing tuples in a streaming application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140605

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140605

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140605

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20140605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140609

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141022

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141022

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141211

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20141211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150106

R150 Certificate of patent or registration of utility model

Ref document number: 5679917

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees