JP5656781B2 - ストリーム・ベースのデバッギングのための方法、記憶媒体、およびシステム(ストリーム・ベースのデバッギング技法) - Google Patents

ストリーム・ベースのデバッギングのための方法、記憶媒体、およびシステム(ストリーム・ベースのデバッギング技法) Download PDF

Info

Publication number
JP5656781B2
JP5656781B2 JP2011196978A JP2011196978A JP5656781B2 JP 5656781 B2 JP5656781 B2 JP 5656781B2 JP 2011196978 A JP2011196978 A JP 2011196978A JP 2011196978 A JP2011196978 A JP 2011196978A JP 5656781 B2 JP5656781 B2 JP 5656781B2
Authority
JP
Japan
Prior art keywords
stream
processing element
stream application
processing
debugging
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
JP2011196978A
Other languages
English (en)
Other versions
JP2012118965A (ja
JP2012118965A5 (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 JP2012118965A publication Critical patent/JP2012118965A/ja
Publication of JP2012118965A5 publication Critical patent/JP2012118965A5/ja
Application granted granted Critical
Publication of JP5656781B2 publication Critical patent/JP5656781B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明はストリーム・ベースのデバッギング技法に関し、特にストリーム・ベースのアプリケーションにおいて処理要素をデバッグするための技法に関する。
コンピュータ・データベースが極めて洗練されている一方で、データベース・システムに課されるコンピューティングの要求は急速に増している。データベース・システムは通常、データベース内に記憶されたデータのアクセス、操作、または使用から、データ記憶プロセスを分離するように構成されている。更に具体的には、データベースは、データをまず記憶し、次いで索引を付け、次いで照会するモデルを用いる。しかしながら、このモデルでは、いくつかのリアルタイム・アプリケーションの性能要件を満たすことができない。例えば、データベース・システムが入来データを受信し記憶することができる速度によって、処理または他の方法での評価を行うことができるデータ量が制限される可能性があり、これが、大量のデータをリアルタイムで処理するように構成されたデータベース・アプリケーションの有用性を制限することになる。
この問題に対処するために、データベース・システムのための開発途上の技術として、ストリーム・ベースのコンピューティングおよびストリーム・ベースのデータベース・コンピューティングが出現しつつある。また、ストリーミング・データがデータベース・ファイルに到達する前に処理し照会するアプリケーションをユーザが生成することができる製品が入手可能である。この新進の技術によって、ユーザは、受信データ・レコードが「飛行中」にこれに適用する処理論理を指定することができ、この結果はミリ秒単位で利用可能である。このタイプの処理を用いたアプリケーションの構築が新しいプログラミング・パラダイムを切り開いており、これによって、広範な革新的アプリケーション、システム、およびプロセスが開発可能となると共に、アプリケーション・プログラマーおよびデータベース開発者に新しい課題を投げかけることになる。
本発明の実施形態は、ストリーム・ベースのデータベース・アプリケーションにおいて処理要素(または複数の要素)をデバッグするための技法を提供する。例えば、本発明の一実施形態は、1つ以上の計算ノード上で実行する複数の処理要素から構成されたストリーム・アプリケーションをデバッグする方法を含む。この方法は、一般的に、複数の処理要素の最初の1つにおけるデバッギング・ブレークポイントについての位置の指示を受信することと、オペレータ・グラフを評価して、複数のうちの1つ以上の他の処理要素に対する第1の処理要素の位置を識別することと、を含むことができる。また、この方法は、ストリーム・アプリケーションの状態を変更して第1の処理要素のデバッグを可能とすることと、第1の処理要素のためのデバッグ・セッションを開始することと、を含むことができる。
本発明の別の実施形態は、実行された場合に、1つ以上の計算ノード上で実行する複数の処理要素から構成されたストリーム・アプリケーションをデバッグするための動作を実行するプログラムを含むコンピュータ読み取り可能記憶媒体を含む。この動作は、複数の処理要素の最初の1つにおけるデバッギング・ブレークポイントについての位置の指示を受信することと、オペレータ・グラフを評価して、複数のうちの1つ以上の他の処理要素に対する第1の処理要素の位置を識別することと、を含むことができる。この動作は、更に、ストリーム・アプリケーションの状態を変更して第1の処理要素のデバッグを可能とすることと、第1の処理要素のためのデバッグ・セッションを開始することと、を含むことができる。
本発明の更に別の実施形態は、各々がプロセッサおよびメモリを含む複数の計算ノードを有するシステムを含む。計算ノードは、ストリーム・アプリケーションの処理要素を実行するように構成されている。また、このシステムは、プロセッサおよびメモリを含む管理システムも含むことができる。このメモリはストリーム・デバッギング・アプリケーションを記憶し、このアプリケーションは、管理システム上で実行された場合に、複数の計算ノード上で実行するストリーム・アプリケーションをデバッグするための動作を実行するように構成されている。
この動作は、一般に、複数の処理要素の最初の1つにおけるデバッギング・ブレークポイントについての位置の指示を受信することと、オペレータ・グラフを評価して、複数のうちの1つ以上の他の処理要素に対する第1の処理要素の位置を識別することと、を含むことができる。更に、この動作は、ストリーム・アプリケーションの状態を変更して第1の処理要素のデバッグを可能とすることと、第1の処理要素のためのデバッグ・セッションを開始することと、を含むことができる。
上述の態様が達成され、詳細に理解可能となるように、先に簡単にまとめた本発明の実施形態のいっそう具体的な説明を、添付図面を参照して行うことができる。しかしながら、本発明は他の等しく有効な実施形態を認めることができるので、添付図面は本発明の典型的な実施形態を図示するだけであり、従ってその範囲を限定するものとは見なされないことに留意すべきである。
本発明の一実施形態に従った、ストリーム・データベース・アプリケーションを実行するように構成されたコンピューティング・インフラストラクチャを示す。 本発明の一実施形態に従った、ストリーム・データベース・アプリケーションを実行するように構成されたコンピューティング・インフラストラクチャを示す。 本発明の一実施形態に従った、図1の分散型コンピューティング・ノードの更に詳細な図である。 本発明の一実施形態に従った、ストリーム・データベース・アプリケーションにおける管理コンピューティング・システムの更に詳細な図である。 本発明の一実施形態に従った、ストリーム・データベース・アプリケーションにおける計算ノードの一例を示す。 本発明の一実施形態に従った、ストリーム・データベース・アプリケーションにおける処理要素をデバッグするための方法を示す。 本発明の実施形態に従った、ストリーム・アプリケーションをデバッグするための状況を図示するように変更した、最初に図5に示した計算ノードおよびストリーム・アプリケーションの例を示す。 本発明の実施形態に従った、ストリーム・アプリケーションをデバッグするための状況を図示するように変更した、最初に図5に示した計算ノードおよびストリーム・アプリケーションの例を示す。 本発明の実施形態に従った、ストリーム・アプリケーションをデバッグするための状況を図示するように変更した、最初に図5に示した計算ノードおよびストリーム・アプリケーションの例を示す。
ストリーム・アプリケーションにおいて、オペレータは相互に接続されて、ある処理要素から次のものへと(例えばTCP/IPソケットを介して)データが流れるようになっている。多くの小さい実行可能コード・ピース(オペレータ)を生成することによってノード全体にアプリケーションを分散させ、多数のノード上に処理要素を複製し、それらの間で負荷バランスを取ることで、スケーラビリティを達成する。ストリーム・アプリケーションにおける複数の処理要素(および複数のオペレータ)を共に融合させて(fuse)、更に大きい処理要素を形成することができる。こうすることによって複数の処理要素が共通のプロセス空間を共有することができ、その結果、プロセス間通信技法を用いて(例えばTCP/IPソケットを用いて)利用可能であるよりも著しく高速なオペレータ間通信が行われる。更に、処理要素は、ストリーム・アプリケーションを通るデータ・フローを表すオペレータ・グラフから動的に挿入または除去することができると共に、実行時にストリーム・アプリケーションから融合または非融合(un-fuse)とすることができる。
分散型ストリーム環境における処理要素は、動作中のコードによって発生したログ・ファイルを調べることでデバッグすることができるが、完全なデバッグ・セッションが必要となることが多い。しかしながら、デバッガを動作させると、ブレークポイントに達したか否かにはかかわらずデバッグ中のプロセスが減速し、更に、ブレークポイントをトリガすると、デバッグ対象のオペレータを通って流れているデータの(完全な停止ではないとしても)著しい減速が生じる恐れがある。このため、デバッグ対象の処理要素を動作させることが、「ストリーム停滞(backup)」を引き起こす可能性がある。その処理要素におけるオペレータに流れているデータ・ストリームは流れを止めないからである。更に一般的には、ストリーム・コンピューティングは、ストリームがオペレータを通って連続的に流れるという前提に基づいている。
多数の処理要素を共に融合させて単一の動作プロセスを形成する場合、その中の1つでブレークポイントをトリガすると、融合させた処理要素の全てが処理を停止し、場合によってはオペレータ・グラフの大部分がオフになる。一方で、1組の非融合処理要素は、第2および第3の処理要素から流れたデータを結合させるように構成された第1の処理要素を含む場合がある。第2または第3の処理要素のいずれかでブレークポイントがトリガされると、ストリーム処理の結果が混乱する可能性がある。
本発明の実施形態は、ストリーム・ベースのアプリケーションにおいて処理要素(または複数の要素)をデバッグするための技法を提供する。具体的には、本発明の実施形態は、動作中の環境全体に対する処理要素(または複数の要素)のデバッグの影響を軽減するように、処理要素のデバッグ中にストリーム・アプリケーションの状態を変更するための技法を提供する。例えば、20のオペレータを含む融合処理要素内の1つのオペレータをデバッグする必要があると想定する。かかる場合、ストリーム・デバッガは、動作中のストリームから融合処理要素を取り除き、それらのオペレータを非融合とし、それらを動作中のストリームに再挿入するように構成することができる。そして、単一のオペレータをデバッグ中であるこの処理要素は、独立して動作中のプロセス(それ自身のプロセスID(PID)およびメモリ空間を有する)として実行することができ、これによって、そのオペレータを他の19のオペレータから独立してデバッグすることができる。いったんデバッギング・セッションが完了すると、デバッガは非融合オペレータを再融合して、20の融合オペレータを含む処理要素を、デバッグ・セッション前に存在した同一の実行状態に復元させることができる。
別の実施形態においては、デバッガは、多数の独立した処理要素を1つのデバッグ・セッションの一部として共に融合することができる。これは、1つのオペレータをデバッグしている場合にオペレータ・グラフの一部の動作を止めるのに有用である場合がある。例えば、こうすることによって処理要素間の依存性を満足させることができる。同様に、所与の処理要素がデバッグされている間に適宜、デバッガはデータがストリーム内に流れるのを防ぐことができる。これは、デバッグされているオペレータ・グラフ内の処理要素の上流(または下流)のいずれかのポイントで行うことができる。更に具体的には、デバッガは、データがオペレータ・グラフ内のソース・オペレータ(すなわちオペレータ・グラフを流れるデータのソース・ポイントである処理要素)に流れること、または特定の部分(または特定の処理要素)に流れるのを防ぐことができる。逆に、デバッガは、入来データのいくつかのタプルを、ブレークポイントから除外されているものとして認識するように構成することができる。
データの流れを防ぐことの代替案として、デバッグ対象の処理要素においてデータを「負荷制限(load shed)することも可能である(またはいくつかの条件のもとで流れることを選択的に可能とする)。こうすることによって、特に、データが迅速に処理されないと価値を持たないことがある場合に、デバッギング・セッションの完了時にシステムがデータで過負荷になることを回避するのに役立てることができる。更に別の実施形態においては、デバッガは、処理要素を複写して、その複製したものでデバッギングを行うように構成することができる。デバッグした処理要素から流れるデータは、リンクされた下流のオペレータに送出せずに、制限する(shed)ことができる。更に、デバッグ対象のオペレータが出力した結果を、実際のオペレータと比較して、デバッギング・プロセスの精度に関するチェックとすることができる。
以下では、本発明の実施形態を参照する。しかしながら、本発明はここに記載する特定の実施形態に限定されないことは理解されよう。以下の特徴および要素の組み合わせは、異なる実施形態に関連する場合もそうでない場合も、本発明を実施し実行するように想定されている。更に、本発明の実施形態は他の可能な解決策または従来技術あるいはその両方よりも優れた利点を達成可能であるが、所与の実施形態によって具体的な利点が達成されるか否かは、本発明を限定するものではない。このため、以下の態様、特徴、実施形態、および利点は単なる例示であり、特許請求の範囲の請求項(複数の請求項)に明示的に言及される場合を除いて、添付の特許請求の範囲の要素または限定とは見なされない。同様に、「本発明」に対する言及は、本明細書に開示する本発明の主題の一般化として解釈されるものではなく、請求項(複数の請求項)に明示的に言及される場合を除いて、添付の特許請求の範囲の要素または限定として見なされるものではない。
当業者には認められようが、本発明の態様は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。従って、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。更に、本発明の実施形態は、具現化されたコンピュータ使用可能プログラム・コードを有する1つ以上のコンピュータ読み取り可能媒体(複数の媒体)において具現化されるコンピュータ・プログラムの形態を取ることも可能である。
1つ以上のコンピュータ読み取り可能媒体(複数の媒体)のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は、例えば、限定ではないが、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、もしくはデバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能記憶媒体の更に具体的な例(非網羅的な列挙)は、以下を含む。すなわち、1本以上のワイヤを有する電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)電気的プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、または前述のもののいずれかの適切な組み合わせである。この文書の文脈において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することができるいずれかのタンジブルな媒体とすることができる。
コンピュータ読み取り可能信号媒体は、例えばベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ読み取り可能プログラム・コードを有する伝播データ信号を含むことができる。かかる伝播信号は、限定ではないが、電磁気、光、またはそれらのいずれかの適切な組み合わせを含む多種多様な形態のいずれかを取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体ではないいずれかのコンピュータ読み取り可能媒体とすることができ、これは、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためのプログラムを伝達、伝播、または伝送することができるものである。
コンピュータ読み取り可能媒体上に具現化されたプログラム・コードは、限定ではないが、無線、有線、光ファイバ・ケーブル、RF等、または前述のもののいずれかの適切な組み合わせを含むいずれかの適切な媒体を用いて送信することができる。
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のオブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語を含む1つ以上のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的に遠隔コンピュータ上で、または全体的に遠隔コンピュータもしくはサーバ上で、実行することができる。後者の状況では、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は外部コンピュータに対して行うことができる(例えばインターネット・サービス・プロバイダを用いてインターネットを介して)。
以下に、本発明の実施形態に従った方法、装置(システム)、およびコンピュータ・プログラムのフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様について説明する。フローチャート図またはブロック図あるいはその両方の各ブロックならびにフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するための手段を生成するようになっている。
また、これらのコンピュータ・プログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これにより、コンピュータまたは他のプログラマブル・データ処理装置または他のデバイスに特定の方法で機能するように指示することができ、これによって、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施する命令を含む製造品を生成するようになっている。
また、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するためのプロセスを提供するようになっている。
本発明の実施形態は、クラウド・コンピューティング・インフラストラクチャを介してエンド・ユーザに提供することができる。一般的にクラウド・コンピューティングとは、スケーラブルなコンピューティング・リソースを、ネットワークを介したサービスとして提供することを指す。更に形式的には、クラウド・コンピューティングは、コンピューティング・リソースとその基礎にある技術的アーキテクチャ(例えばサーバ、記憶装置、ネットワーク)との間のアブストラクションを提供するコンピューティング機能として定義することができ、これによってコンフィギュレーション可能なコンピューティング・リソースの共有プールに対する便利なオンデマンドのネットワーク・アクセスを可能とし、これらのリソースを、管理労力またはサービス・プロバイダの相互作用を最小限に抑えつつ、迅速に供給し解放することができる。従って、クラウド・コンピューティングによってユーザは、「クラウド」における仮想コンピューティング・リソース(例えば記憶装置、データ、アプリケーション、更には完全な仮想化コンピューティング・システム)にアクセスすることができ、その上、これらのコンピューティング・リソースを提供するために用いられる基礎にある物理システム(またはそれらのシステムの位置)について考慮しなくても良い。
典型的に、クラウド・コンピューティング・リソースは従量料金制でユーザに提供され、この場合ユーザは実際に用いたコンピューティング・リソース(例えばユーザが消費した記憶空間量、またはユーザがインスタンス化した仮想化システムの数)のみの料金を課金される。ユーザは、クラウド内に常駐するリソースのいずれにも、いつでも、インターネットを介してどこからでもアクセスすることができる。本発明の文脈において、ユーザは、クラウド内で利用可能なアプリケーションまたは関連データにアクセスすることができる。例えば、ストリーム・データベース・アプリケーションを生成するために用いるノードは、クラウド・サービス・プロバイダがホストとなる仮想機械とすることができる。
図1から図2は、本発明の一実施形態に従ってストリーム・アプリケーションを実行するように構成されたコンピューティング・インフラストラクチャ100を示す。図示のように、コンピューティング・インフラストラクチャ100は、管理システム105および複数の計算ノード130〜130を含み、計算ノードの各々が通信ネットワーク120に接続されている。また、管理システム105は、オペレータ・グラフ132およびストリーム・マネージャ134を含む。以下で更に詳細に説明するが、オペレータ・グラフ132は、1つ以上のソース処理要素(PE)から開始して1つ以上のシンクPEまでのストリーム・アプリケーションを表す。データ要素は、ストリーム・アプリケーションのソースPE内に流れて、そのPEによって処理される。通常、処理要素は、ストリームからデータ要素のNタプルを受信すると共に、データ要素のNタプルをストリーム内に送出する(ストリームが終端するシンクPEを除く)。むろん、処理要素が受信したNタプルは、下流に送信されるのと同一のNタプルである必要はない。また、処理要素は、Nタプル以外のフォーマットでデータを送受信するように構成することができる(例えば処理要素はXML文書としてマークされたデータを交換することができる)。更に、各処理要素は、受信したタプルに対していずれかの形態のデータ処理機能を実行するように構成することができる。その処理機能は、例えば、データベース・テーブルへの書き込み、またはデータ結合、分割、読み取り等の他のデータベース動作の実行、ならびに他のデータ分析機能または動作の実行を含む。
ストリーム・マネージャ134は、計算ノード130〜130上で動作しているストリーム・アプリケーションを監視すると共に、オペレータ・グラフ132の構造を変更するように構成することができる。例えば、ストリーム・マネージャ134は、コンピューティング・インフラストラクチャ100における計算ノード130の処理負荷を管理するために、ある計算ノード130から他のものに処理要素(PE)を移動させることができる。更に、ストリーム・マネージャ134は、計算ノード130〜130上で動作している処理要素(または処理要素に流れるデータ・タプル)の挿入、除去、融合、非融合、または他の方法の変更を行うことによって、ストリーム・アプリケーションを制御することができる。
図2は、計算ノード130〜130上で動作している処理要素(PE1〜PE10と標示する)を含む例示的なオペレータ・グラフを示す。処理要素は独立して動作中のプロセスとして実行することができる(それ自身のプロセスID(PID)およびメモリ空間を有する)が、多数の処理要素を融合させて単一のプロセス(PIDおよびメモリ空間を有する)として動作することも可能である。2つ(またはそれ以上)の処理要素が独立して動作中の場合、ネットワーク・ソケット(例えばTCP/IPソケット)を用いてプロセス間通信を行うことができる。しかしながら、プロセスを共に融合させた場合は、融合させた処理要素は、処理要素(および各処理要素におけるオペレータ)間でNタプル(または他のデータ)を受け渡すための更に高速な通信技法を用いることができる。
図示のように、オペレータ・グラフは、ソースPE135(PE1と標示する)で開始し、シンクPE140〜140(PE6およびPE10と標示する)で終了する。計算ノード130は、PE2およびPE3と共にソースPE1を含む。ソースPE1が送出するタプルはPE2およびPE3によって受信される。例えばPE1は、1タプルで受信されるデータ要素を分割し、いくつかのデータ要素をPE2に、他のものをPE3に渡すことができる。PE2に流れるデータは、計算ノード130上のPE4に送出されるタプルとなる。そして、PE4が送出するデータ・タプルはシンクPE6 140に流れる。同様に、PE3からPE5に流れるデータ・タプルもシンクPE6 140に達する。このため、PE6は、この例のオペレータ・グラフのシンクであるのに加えて、結合動作を実行するように構成し、PE4およびPE5から受信したタプルを組み合わせることができる。また、この例のオペレータ・グラフは、P3から計算ノード130上のPE7に流れるデータ・タプルも示すが、これはPE8に流れてPE7にループバックするデータ・タプルを示す。PE8から送出されたデータ・タプルは計算ノード130上のPE9に流れ、これが送出するタプルはシンクPE10 140によって処理される。
図3は、本発明の一実施形態に従った、図1から図2の計算ノード130の更に詳細な図である。図示のように、計算ノード130は、中央演算処理装置(CPU)205、ネットワーク・インタフェース215、相互接続220、メモリ225、および記憶装置230を含むが、これらは限定ではない。また、計算ノード130は、I/Oデバイス212(例えばキーボード、ディスプレイ、およびマウス・デバイス)を計算ノード130に接続するために用いられるI/Oデバイス・インタフェース210も含むことができる。
CPU205は、メモリ225に記憶されたプログラミング命令を検索して実行する。同様に、CPU205は、メモリ225に常駐するアプリケーション・データを記憶し検索する。相互接続220は、CPU205、I/Oデバイス・インタフェース210、記憶装置230、ネットワーク・インタフェース215、およびメモリ225間でプログラミング命令およびアプリケーション・データを送信するために用いられる。CPU205は、単一のCPU、多数のCPU、多数の処理コアを有する単一のCPU等を代表するものとして含まれる。また、メモリ225は、一般にランダム・アクセス・メモリを代表するものとして含まれる。ハード・ディスク・ドライブ、固体デバイス(SSD)、またはフラッシュ・メモリ記憶ドライブ等の記憶装置230は、不揮発性データを記憶することができる。
この例では、メモリ225は、融合処理要素(PE)235、非融合PE245、デバッガ・アプリケーション250、およびストリーム接続データ255を含む。融合PE235はオペレータ240の集合を含む。上述のように、各オペレータ240は、処理要素(例えばPE235)内に流れるデータを処理し、データをそのPEの他のオペレータ240およびストリーム・アプリケーションの他のPEに送出するように構成された小量の実行可能コードを提供することができる。かかるPEは、同一の計算ノード130上(例えば非融合PE245)またはデータ通信ネットワーク120を介してアクセスされる他の計算ノード上にある場合がある。ストリーム接続データ255は、計算ノード130上のPE間の接続(例えば融合PE240と非融合PE245との間のTEP/IPソケット接続)を表すと共に、TCP/IPソケット(または他のプロセス間データ通信機構)を介した他の計算ノード130に対する、ストリーム・アプリケーション内の上流または下流あるいはその両方のPEとの接続を表す。
バッファ・ストリーム・データ260は、上流処理要素から(またはストリーム・アプリケーションのためのデータ・ソースから)計算ノード130に内に流れるデータのための記憶空間を表す。例えば、バッファ・ストリーム・データは、PE240または245の1つによって処理されるのを待っているデータ・タプルを含むことができる。また、バッファ・ストリーム・データ260は、PE240または245が実行したデータ処理の結果を記憶することができる。この結果は後に下流の処理要素に送信される(または負荷制限される)。
デバッガ250は、計算ノード130上で動作中の処理要素245を開発者がデバッグすることを可能とするように構成されたソフトウェア・アプリケーションを提供する。例えばデバッガ250を用いて、ブレークポイントの設定、命令における関数呼び出しまでの(または関数呼び出しが終わるまでの)命令ステップの実行、変数の検査等を行うことができ、更に、処理要素245をデバッグするために用いられる多種多様な他の機能または特徴あるいはその両方を提供することができる。本発明の文脈において、デバッガ250は、PEを選択的に融合または非融合として(または他の方法でストリーム・アプリケーションの状態を変更して)、デバッギング・プロセスを容易にするように構成することができる。一実施形態では、例えばデバッガは、開発者によって指定されたようにPEを融合または非融合とすることができる。あるいは、デバッガ250は、所与の処理要素(または複数の要素)をデバッグするためのストリーム状態を提案するように構成することができる。これを行うためデバッガ250は、ストリーム・アプリケーションに関連付けられたオペレータ・グラフをどのように変更するかを決定するために、管理システム105上のストリーム・デバッガとの相互作用によって、オペレータ・グラフを分析すると共に、計算ノード130の集合全体にわたる処理要素の分布を分析することができる。デバッガ250は、処理要素の融合および非融合に加えて、例えばデバッグしているPEを通るデータ・フローを止め(または制限し)、デバッギング・プロセスから除外するデータを指定し、PEを複写してPEのデバッグ・コピーを生成し、または他のアクションを実行して処理要素(または複数の要素)をデバッグ可能とすることによって、ストリーム・アプリケーションの動作状態を変更することができる。
図4は、本発明の一実施形態に従った図1のサーバ・コンピューティング・システム105の更に詳細な図である。図示のように、サーバ・コンピューティング・システム105は、中央演算処理装置(CPU)305、ネットワーク・インタフェース315、相互接続320、メモリ325、および記憶装置330を含むが、これらは限定ではない。また、サーバ・コンピューティング・システム105は、I/Oデバイス312(例えばキーボード、ディスプレイ、およびマウス・デバイス)をサーバ・コンピューティング・システム105に接続するI/Oデバイス・インタフェース310を含むことができる。
図3のCPU205と同様に、CPU305は、メモリ325および記憶装置330に記憶されたプログラミング命令を検索して実行するように構成されている。同様に、CPU305は、メモリ325および記憶装置330に常駐しているアプリケーション・データを記憶し検索するように構成されている。相互接続320は、プログラミング命令およびアプリケーション・データ等のデータを、CPU305、I/Oデバイス・インタフェース310、記憶ユニット330、ネットワーク・インタフェース315、およびメモリ325間で移動させるように構成されている。CPU205と同様に、CPU305は、単一のCPU、多数のCPU、多数の処理コアを有する単一のCPU等を代表するものとして含まれる。メモリ325は、一般にランダム・アクセス・メモリを代表するものとして含まれる。ネットワーク・インタフェース315は、通信ネットワーク120を介してデータを送信するように構成されている。記憶装置330は、単一ユニットとして図示しているが、固定ディスク・ドライブ、着脱可能メモリ・カード、光記憶装置、SSD、またはフラッシュ・メモリ・デバイス、ネットワーク接続ストレージ(NAS)、またはストレージ・エリア・ネットワーク(SAN)・デバイスに対する接続等、固定または着脱可能あるいはその両方の記憶デバイスの組み合わせとすることができる。
図示のように、メモリ325は、ストリーム・デバッガ335、ストリーム・コンパイラ330、およびストリーム・マネージャ132を記憶している。また、記憶装置330はオペレータ・グラフ134を含む。上述のように、ストリーム・デバッガを用いて、計算ノード130の1つ(またはそれ以上)の処理要素(PE)のデバッギングを管理することができる。例えばストリーム・デバッガ335は、ある処理ノードを他の複数のPEと融合させる(または非融合とする)ことを決定することができる。かかる場合、ストリーム・デバッガは、1つの計算ノード上で大きなPE群が融合されているが、それらの処理要素のうち少数にしかデバッグ・ブレークポイントが含まれていないと(オペレータ・グラフから)判定することができる。かかる場合、ストリーム・デバッガ335は、この大きい群からブレークポイントを有するPEを非融合とさせると決定することができる。一実施形態では、ストリーム・デバッガ335は、ストリーム・コンパイラ340を呼び出して必要に応じてPE/オペレータ・ソース・コードの要素を再コンパイルすることによって、PEを非融合とする。本例では、ブレークポイントを有するPEを再コンパイルして第1のPEとすることができ、(融合PEからの)残りのPEを再コンパイルして第2のPEとすることができる。いったん準備ができたら、ストリーム・マネージャ132は、動作中のストリームから融合PEを除去し、これをストリーム・コンパイラ340が発生した第1および第2のPEで置換することができる。その後、第1のPEにおけるブレークポイントに達したら、第1のPEは実行を停止するが、第2のPEが実行する処理を混乱させることはない。
図5は、本発明の一実施形態に従ったストリーム・アプリケーションにおける計算ノードの一例を示す。図示のように、計算ノード130上の融合処理要素405は3つの処理要素(PE1〜PE3と標示する)を含み、これはNタプル・データ・ストリームを受信すると共に、計算ノード130上の処理要素410(PE4と標示する)にNタプルを送出する。この例では、融合処理要素405はソースPE135(PE1と標示する)を含み、これは<名前、部署、給料、性別>を含むタプルを受信する。PE1は、このNタプルを取得し、PE1が受信したタプルにおける性別値に基づいて、PE2に送信される1組のタプルおよびPE3に送信される別の組のタプルを発生する。次いで、PE2およびPE3は、PE1から受信した各タプルについてデータベース書き込みを実行し、PE4に送信される<名前、部署、給料>のタプルを発生する。受信したら、PE4は、サードパーティのウェブ・サービスにアクセスし、ストリーム・アプリケーションにおいて更に下流に送信されるタプルを発生する。
図6は、本発明の一実施形態に従った、ストリーム・データベース・アプリケーションにおいて処理要素をデバッグするための方法500を示す。図示のように、この方法500はステップ505で開始し、ここでデバッガ・アプリケーションは、ストリーム・アプリケーションのオペレータ・グラフに含まれる処理要素についてのブレークポイントの指示を受信する。ステップ510において、デバッガ・アプリケーションは、他の処理要素に対するオペレータ・グラフ内のこの処理要素の位置を識別することができる。この位置に基づいて、デバッガ・アプリケーションは、オペレータ・グラフにおける処理要素を融合(または非融合)とすることを決定することができる(ステップ515)。更に、デバッギング・アプリケーションは、例えばブレークポイントを有する処理要素を複写することによって、またはあるデータ・タプル(またはデータ・フロー)をデバッグから除外することによって、ストリーム・アプリケーションの動作に対して他の変更を加えることができる。同様に、デバッギング・アプリケーションは、ある処理要素についてデータ・タプルの送信(または受信)を阻止すべきこと、またはデバッギング・セッション中に発生したデータ処理の結果を負荷制限すべきことを指定することができる。
ステップ520において、融合または非融合としたPEを再開してアプリケーション・ストリームに展開することができる(ブレークポイントを有するPEを含む)。ステップ525において、いったんPEがアプリケーション・ストリームで動作(およびストリーム・アプリケーションに対してデバッガが行うと選択した他のいずれかの変更)すると、デバッグ対象のPEの動作を評価することができる。例えば、ブレークポイントがトリガされるとデバッグ対象のPEは実行を止めることができ、次いで開発者は、関数呼び出しまで(または関数呼び出しが終わるまで)1ステップずつ進むことによって段階的にPEを実行し、変数を検査し、他のいずれかのデバッギング機能を実行して処理要素を評価することができる。同時に、データ・タプルは、デバッグされているPEに流れ続け、バッファに記憶することができる。すなわち、いったんブレークポイントがトリガされると、デバッグされているPEに流れているタプルは、PEが実行を再開するまでバッファすることができる。
ステップ530において、いったんデバッギング・セッションが完了すると、デバッギング・アプリケーションは、ストリーム・アプリケーションの状態を復元し、デバッギング・セッションをサポートするために行った変更を取り消すことができる。従って、デバッギング・セッションの一部として融合された(または非融合された)PEは、非融合(または再融合)することができ、タプル・フローを復元することができ、またはバッファしたデータ結果を負荷制限することができ、複写した処理要素を除去することができる等となる。
図7から図9は、本発明の実施形態に従った、最初に図5に示した計算ノードおよびストリーム・アプリケーションの一例であるが、ストリーム・アプリケーションをデバッグするための状況を例示するように変更したものである。まず、図7は、図5の融合処理要素405の一例であるが、処理要素の1つのデバッグを可能とするために部分的に非融合とした後のものである。開発者がPE2において1つ以上のブレークポイントを追加すると仮定する。かかる場合、デバッガ・アプリケーションは、PE1およびPE3によって実行される処理から独立してPE2のデバッグが可能であると判定し、融合処理要素405からPE2を非融合とすることができる。従って、図示のように、融合PE405を変更してPE2を除去し、結果として部分的に非融合のPE405’を生じている。更に、PE2はここで非融合PE605として実行している。PE2を独立プロセスとして動作させることによって、アプリケーション・ストリームを減速させることなくPE2をデバッグすることができる。データ・タプルは部分的に非融合のPE405’を流れるからである。同時に、オペレータ・グラフの基本的な構造は不変のままである。すなわち、依然としてタプルは最初にPE1に流れ、これがPE2およびPE3に送信されるタプルを発生する。
同様に、図8は図5の処理要素410の一例を示すが、追加のPEと融合した後のものである。この例では、ユーザがPE4にブレークポイントを配置すると仮定する。かかる場合、デバッガ・アプリケーションは、PE4が実行を停止した場合に下流の処理要素(PE5)も実行を停止するような依存性をPE5が有すると判定することができる。例えばPE5は、規則的な指定された間隔でPE4からデータを受信するように構成することができる。この依存性が与えられれば、ユーザがPE4にブレークポイントを挿入した場合に、デバッガ・アプリケーションはPE4およびPE5を融合させて融合処理要素410’とすることができる。そうすることによって、PE4はPE5の動作を混乱させることなくデバッグすることができる。PE4においてブレークポイントに達した場合、PE4およびPE5の双方の動作が実行を停止するからである。
図9は、図5の処理要素410を変更する別の例を示す。この例でも、ユーザはPE410(PE4と標示する)にブレークポイントを配置する。しかしながら、この場合、PE410をデバッグしてもストリームからPE805(PE5と標示する)に流れるデータを混乱させないとデバッガ・アプリケーションが判定することを仮定する。かかる場合、デバッガ・アプリケーションはデバッグ・クローン410’を生成し、これをアプリケーション・ストリームに挿入することができる。この結果を図9に示す。ここで、PE405から流れるデータは複写され、PE410およびデバッグ・クローン410’の双方に送信される。このため、PE410はストリームの処理を続け、PE805によって受信されるタプルをストリーム内に送出する。同時に、PE405から流れるデータはデバッグ・クローン410にも送信され、タプルをデバッグ・ログに出力する。こうすることによって、デバッガは、アプリケーション・ストリームを混乱させることなくPE410’のためのデバッギング・セッションを実行することができる。
好都合なことに、上述した本発明の実施形態は、ストリーム・ベースのアプリケーションにおいて処理要素(または複数の要素)をデバッグするための技法を提供する。特に、本発明の実施形態は、1群の計算ノード上で動作している処理要素を選択的に融合する(または非融合とする)ことによって、動作中の環境全体に対する処理要素(または複数の要素)のデバッグの影響を軽減するように処理要素をデバッグするための技法を提供する。処理要素を融合および非融合とすることに加えて、デバッギング・アプリケーションおよびストリーム・マネージャは、様々な方法でアプリケーション・ストリーム内のデータ・フローを変更して、デバッギング・セッションの結果として生じる何らかの混乱を最小限に抑えることができる。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を示す。この点で、フローチャートまたはブロック図における各ブロックは、規定された論理機能(複数の機能)を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序どおりでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した2つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフローチャートあるいはその両方の各ブロック、およびブロック図またはフローチャートあるいはその両方におけるブロックの組み合わせは、特殊目的ハードウェアおよびコンピュータ命令の規定された機能もしくは行為または組み合わせを実行する特殊目的ハードウェア・ベースのシステムによって実施可能であることに留意すべきである。
前述の説明は本発明の実施形態を対象とするが、その基本的な範囲から逸脱することなく本発明の他の実施形態および更に別の実施形態を考案することができ、その範囲は以下の特許請求の範囲によって決定される。
105 管理システム
120 ネットワーク
130〜130 計算ノード
132 オペレータ・グラフ
134 ストリーム・マネージャ
225 メモリ
230 記憶装置
235 融合処理要素
245 非融合処理要素
250 デバッガ
325 メモリ
330 記憶装置
335 ストリーム・デバッガ
340 ストリーム・コンパイラ
132 ストリーム・マネージャ
134 オペレータ・グラフ
345 PE/オペレータ・ソース・コード

Claims (8)

  1. 1つ以上の計算ノード上で実行する複数の処理要素から構成されるストリーム・アプリケーションをデバッグする方法であって、前記複数の処理要素は前記ストリーム・アプリケーションのオペレータ・グラフに含まれており、前記方法は、
    前記複数の処理要素のうちの第1の処理要素におけるデバッギング・ブレークポイント指示を受信するステップと、
    前記オペレータ・グラフを評価して前記複数の処理要素のうちの1つ以上の他の処理要素に対する前記オペレータ・グラフ内の前記第1の処理要素の位置を識別するステップと、
    前記識別された位置に基づいて前記オペレータ・グラフにおける処理要素の融合、非融合を実行し、または前記ブレークポイントを有する処理要素の複写を実行することによって、前記ストリーム・アプリケーションの状態を変更して前記第1の処理要素デバッグ可能にするステップと、
    前記ストリーム・アプリケーションの前記第1の処理要素のためのデバッグ・セッションを開始するステップと、
    前記ストリーム・アプリケーションの前記第1の処理要素の前記デバッグ・セッションに引き続いて、前記デバッギング・サポート変更を取り消すことによって前記ストリーム・アプリケーションの前記状態を復元するステップと
    を含む、前記方法。
  2. 各処理要素が、前記複数の計算ノードのうちの所与の1つ上でプロセスID(PID)を割り当てられたコンピューティング・プロセスとして実行する、請求項1に記載の方法。
  3. 前記ストリーム・アプリケーションの前記第1の処理要素が、第1のNタプルを受信し、前記第1のNタプルを処理し、そして第2の処理要素に送出される第2のNタプルを発生するように構成されている、請求項1に記載の方法。
  4. 前記ストリーム・アプリケーションの前記クローニング命令が、
    前記ストリーム・アプリケーションの前記第1の処理要素のデバッグ・クローンを発生するステップと、
    前記デバッグ・クローンに前記ブレークポイントを挿入するステップと、
    前記デバッグ・クローンを前記ストリーム・アプリケーションに挿入するステップ
    を含む、請求項1に記載の方法。
  5. 前記ストリーム・アプリケーションの前記融合命令が、
    前記ストリーム・アプリケーションの少なくとも第2の処理要素の実行を止めるステップと、
    前記ストリーム・アプリケーションの前記第1の処理要素及び前記ストリーム・アプリケーションの前記第2の処理要素から融合処理要素を発生するステップと、
    前記融合処理要素に前記ブレークポイントを挿入するステップと、
    前記融合処理要素を前記ストリーム・アプリケーションに挿入するステップ
    を含む、請求項1に記載の方法。
  6. 前記ストリーム・アプリケーションの前記非融合命令が、
    前記ストリーム・アプリケーションの前記第1の処理要素及び前記ストリーム・アプリケーションの第2の処理要素を含む融合処理要素の実行を止めるステップと、
    前記ストリーム・アプリケーションの前記第1の処理要素を含む第1の非融合処理要素を発生するステップと、
    前記第1の非融合処理要素に前記ブレークポイントを挿入するステップと、
    前記ストリーム・アプリケーションの少なくとも前記第2の処理要素を含む第2の非融合処理要素を発生するステップと、
    前記第1の非融合処理要素および前記第2の融合処理要素を前記ストリーム・アプリケーションに挿入するステップ
    を含む、請求項1に記載の方法。
  7. 1つ以上の計算ノード上で実行する複数の処理要素から構成されストリーム・アプリケーションをデバッグするための動作を実行する為のコンピュータ・プログラムであって、前記複数の処理要素は前記ストリーム・アプリケーションのオペレータ・グラフに含まれており、前記動作は、請求項1〜6のいずれか一項に記載の方法の各ステップを含む、前記コンピュータ・プログラム
  8. システムであって、
    各々の計算ノードがプロセッサおよびメモリを含む複数の計算ノードであって、ストリーム・アプリケーションの複数の処理要素を実行するように構成され、前記複数の処理要素は前記ストリーム・アプリケーションのオペレータ・グラフに含まれている、前記計算ノードと、
    少なくともプロセッサおよびメモリを備えている管理システムであって、前記メモリがストリーム・デバッギング・アプリケーションを記憶し、前記ストリーム・デバッギング・アプリケーションが、前記管理システム上で実行された場合に、前記複数の計算ノード上で実行する前記ストリーム・アプリケーションをデバッグするための動作を実行するように構成され、前記動作が、請求項1〜6のいずれか一項に記載の方法の各ステップを含む、前記管理システムと
    を備えている、前記システム。
JP2011196978A 2010-11-30 2011-09-09 ストリーム・ベースのデバッギングのための方法、記憶媒体、およびシステム(ストリーム・ベースのデバッギング技法) Expired - Fee Related JP5656781B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/956424 2010-11-30
US12/956,424 US8327337B2 (en) 2010-11-30 2010-11-30 Stream based debugging techniques

Publications (3)

Publication Number Publication Date
JP2012118965A JP2012118965A (ja) 2012-06-21
JP2012118965A5 JP2012118965A5 (ja) 2014-08-28
JP5656781B2 true JP5656781B2 (ja) 2015-01-21

Family

ID=46127452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011196978A Expired - Fee Related JP5656781B2 (ja) 2010-11-30 2011-09-09 ストリーム・ベースのデバッギングのための方法、記憶媒体、およびシステム(ストリーム・ベースのデバッギング技法)

Country Status (3)

Country Link
US (1) US8327337B2 (ja)
JP (1) JP5656781B2 (ja)
CN (1) CN102591899B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10044569B2 (en) 2016-09-22 2018-08-07 International Business Machines Corporation Operator fusion management in a stream computing environment

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572178B1 (en) * 2011-07-01 2013-10-29 Amazon Technologies, Inc. Executing applications in remotely emulated computing devices
US8776025B2 (en) * 2011-11-04 2014-07-08 International Business Machines Corporation Integrated debugger and code coverage tool
US9087153B2 (en) 2011-11-04 2015-07-21 International Business Machines Corporation Code coverage framework
US9251205B2 (en) 2013-02-21 2016-02-02 International Business Machines Corporation Streaming delay patterns in a streaming environment
US9372780B2 (en) * 2013-06-28 2016-06-21 International Business Machines Corporation Breakpoint continuation for stream computing
US9262222B2 (en) * 2013-12-03 2016-02-16 International Business Machines Corporation Lazy initialization of operator graph in a stream computing application
US9705778B2 (en) * 2014-03-06 2017-07-11 International Business Machines Corporation Deploying operators of a streaming application based on physical location attributes of a virtual machine
US9614740B2 (en) * 2014-05-13 2017-04-04 International Business Machines Corporation Multifusion of a stream operator in a streaming application
US9262300B1 (en) * 2014-06-24 2016-02-16 Google Inc. Debugging computer programming code in a cloud debugger environment
CN104216766B (zh) * 2014-08-26 2017-08-29 华为技术有限公司 对流数据进行处理的方法及装置
US9734038B2 (en) 2014-09-30 2017-08-15 International Business Machines Corporation Path-specific break points for stream computing
US9239773B1 (en) * 2014-10-29 2016-01-19 Cadence Design Systems, Inc. Method and system for debugging a program that includes declarative code and procedural code
US10147046B2 (en) * 2014-10-30 2018-12-04 International Business Machines Corporation System and methodology to handle misdirected input data during multi partitioned real time analytics
US20160259705A1 (en) * 2015-03-04 2016-09-08 International Business Machines Corporation Breakpoint prediction
US20170063723A1 (en) * 2015-08-26 2017-03-02 International Business Machines Corporation Asset arrangement management for a shared pool of configurable computing resources associated with a streaming application
US9747189B2 (en) 2015-11-12 2017-08-29 International Business Machines Corporation Breakpoint for predicted tuple processing time in a streaming environment
US10282277B2 (en) * 2015-12-01 2019-05-07 International Business Machines Corporation Streams: intelligent operator subset for debug
US10558555B2 (en) 2016-04-22 2020-02-11 International Business Machines Corporation Debugging streaming applications using debug regions
US10169201B2 (en) * 2017-01-07 2019-01-01 International Business Machines Corporation Debug management in a distributed batch data processing environment
US20180203901A1 (en) * 2017-01-17 2018-07-19 International Business Machines Corporation Operator fusion management in a stream computing environment
US11102258B2 (en) * 2018-07-10 2021-08-24 International Business Machines Corporation Stream processing without central transportation planning
US10901853B2 (en) * 2018-07-17 2021-01-26 International Business Machines Corporation Controlling processing elements in a distributed computing environment
US11301359B2 (en) * 2020-01-07 2022-04-12 International Business Machines Corporation Remote debugging parallel regions in stream computing applications
US11822461B2 (en) * 2021-11-08 2023-11-21 Sap Se Remote debugging of cloud application

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6004A (en) * 1849-01-09 chinnqck
US6934937B1 (en) * 2000-03-30 2005-08-23 Broadcom Corporation Multi-channel, multi-service debug on a pipelined CPU architecture
US20030041315A1 (en) * 2001-08-21 2003-02-27 International Business Machines Corporation Debugger with automatic detection of control points influencing program behavior
US6920545B2 (en) * 2002-01-17 2005-07-19 Raytheon Company Reconfigurable processor with alternately interconnected arithmetic and memory nodes of crossbar switched cluster
US7512934B2 (en) * 2004-08-25 2009-03-31 Microsoft Corporation Parallel debugger
US20070261041A1 (en) * 2005-08-23 2007-11-08 Lisa Amini Method and system for dynamic application composition in streaming systems
US7899861B2 (en) * 2007-04-02 2011-03-01 International Business Machines Corporation Method for declarative semantic expression of user intent to enable goal-driven stream processing
US8146061B2 (en) * 2007-12-12 2012-03-27 Via Technologies, Inc. Systems and methods for graphics hardware design debugging and verification
US8291006B2 (en) * 2008-05-30 2012-10-16 International Business Machines Corporation Method for generating a distributed stream processing application
US8490072B2 (en) * 2009-06-23 2013-07-16 International Business Machines Corporation Partitioning operator flow graphs
US8402444B2 (en) * 2009-10-09 2013-03-19 Microsoft Corporation Program analysis through predicate abstraction and refinement
US8245083B2 (en) * 2009-12-24 2012-08-14 At&T Intellectual Property I, L.P. Systems, methods, and apparatus to debug a network application

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10044569B2 (en) 2016-09-22 2018-08-07 International Business Machines Corporation Operator fusion management in a stream computing environment
US10341189B2 (en) 2016-09-22 2019-07-02 International Business Machines Corporation Operator fusion management in a stream computing environment
US10623269B2 (en) 2016-09-22 2020-04-14 International Business Machines Corporation Operator fusion management in a stream computing environment

Also Published As

Publication number Publication date
US20120137178A1 (en) 2012-05-31
JP2012118965A (ja) 2012-06-21
CN102591899A (zh) 2012-07-18
US8327337B2 (en) 2012-12-04
CN102591899B (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
JP5656781B2 (ja) ストリーム・ベースのデバッギングのための方法、記憶媒体、およびシステム(ストリーム・ベースのデバッギング技法)
Inoubli et al. An experimental survey on big data frameworks
US10296386B2 (en) Processing element management in a streaming data system
JP5679917B2 (ja) データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラム
US8560526B2 (en) Management system for processing streaming data
US9158795B2 (en) Compile-time grouping of tuples in a streaming application
US9563539B2 (en) Breakpoint continuation for stream computing
CA3055071C (en) Writing composite objects to a data store
US9253059B2 (en) Deploying an executable with historical performance data
US9391831B2 (en) Dynamic stream processing within an operator graph
US20140164601A1 (en) Management of stream operators with dynamic connections
US9152689B2 (en) Managing passthru connections on an operator graph
US20140164356A1 (en) Tuple routing in a streaming application
US20140317305A1 (en) Compile-time tuple attribute compression
Pace et al. Experimental performance evaluation of cloud-based analytics-as-a-service
US11301359B2 (en) Remote debugging parallel regions in stream computing applications
Fritsch et al. Cwmwl, a LINDA-based PaaS Fabric for the Cloud.
Danjou The Hacker's Guide to Scaling Python
Kiær Skyline Computing over multiple Data Streams with a Storm Cluster.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140624

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140624

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140624

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20140624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140627

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141010

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141010

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141107

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20141107

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141125

R150 Certificate of patent or registration of utility model

Ref document number: 5656781

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees