JP2013536531A - データフローグラフの特性の評価 - Google Patents

データフローグラフの特性の評価 Download PDF

Info

Publication number
JP2013536531A
JP2013536531A JP2013526149A JP2013526149A JP2013536531A JP 2013536531 A JP2013536531 A JP 2013536531A JP 2013526149 A JP2013526149 A JP 2013526149A JP 2013526149 A JP2013526149 A JP 2013526149A JP 2013536531 A JP2013536531 A JP 2013536531A
Authority
JP
Japan
Prior art keywords
expressions
data flow
flow graph
data
fields
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.)
Granted
Application number
JP2013526149A
Other languages
English (en)
Other versions
JP5878537B2 (ja
JP2013536531A5 (ja
Inventor
ブックスバウム,マーク
ブイ. フェインハウス,ディマ
ウェイクリング,ティム
Original Assignee
アビニシオ テクノロジー エルエルシー
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 アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2013536531A publication Critical patent/JP2013536531A/ja
Publication of JP2013536531A5 publication Critical patent/JP2013536531A5/ja
Application granted granted Critical
Publication of JP5878537B2 publication Critical patent/JP5878537B2/ja
Active 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/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

コンポーネント間の作業要素のフローを表すリンク(326、328)によって接続されたデータ処理コンポーネント(308、310)を表す頂点を含むデータフローグラフ(302)の1つまたは複数の特性を表す1つまたは複数の式(324)を評価する。1つまたは複数の変数に対する1つまたは複数の演算を含む1つまたは複数の式を評価するという要求をコンピューティングシステム(100)によって受信する。式を評価する工程は、1つまたは複数のフィールド(320A〜D)を含むデータ構造(318)を定義する工程と、データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報をデータフローグラフの実行中に収集する工程と、1つまたは複数のフィールドに追跡情報に関連する値を格納する工程と、1つまたは複数の式の1つまたは複数の変数を、1つまたは複数のフィールドに格納した値と置き換えて、1つまたは複数の式の評価結果を演算する工程とを含む。

Description

関連出願の相互参照
本願は、2010年8月25日に出願された米国仮特許出願第61/376,878号の優先権を主張し、同特許は参照により本明細書に組み込まれる。
背景
この説明は、データフローグラフの特性の評価に関する。
複雑なコンピューテーションは、有向グラフ(「データフローグラフ」と呼ばれる)を通じてデータフローとして表すことができる場合が多く、コンピューテーションのコンポーネントはグラフの頂点に関連し、コンポーネント間のデータフローはグラフのリンク(弧、辺)に相当する。コンポーネントは、1つまたは複数の入力ポートでデータを受信し、データを処理し、1つまたは複数の出力ポートからデータを提供するデータ処理コンポーネントと、データフローのソースまたはシンクとして機能するデータセットコンポーネントとを含み得る。そのようなグラフに基づくコンピューテーションを実施するシステムについては、米国特許第5,966,072号「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」に記載されている。
要約
一態様では、一般に、方法は、コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステムによって実行される。本方法は、1つまたは複数の変数に対する1つまたは複数の演算を含む1つまたは複数の式を評価するという要求をコンピューティングシステムによって受信する工程と、コンピューティングシステムによって1つまたは複数の式を評価する工程とを含む。評価する工程は、1つまたは複数のフィールドを含むデータ構造を定義する工程と、データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報をデータフローグラフの実行中に収集する工程と、1つまたは複数のフィールドに追跡情報に関連する値を格納する工程と、1つまたは複数の式の1つまたは複数の変数を、1つまたは複数のフィールドに格納した値と置き換えて、1つまたは複数の式の評価結果を演算する工程とを含む。
態様は、以下の特徴の1つまたは複数を含み得る。
評価は、データフローグラフを実行している間に実行される。
追跡情報は、データフローグラフの1つまたは複数のサブグラフの1つまたは複数のコンポーネントにさらに関連する。
1つまたは複数の変数の少なくとも第1の変数は、1つまたは複数のサブグラフの1つの第1のサブグラフへの参照を含む項として式中で表される。
第1の変数は、第1のサブグラフ内の第1のコンポーネントへの参照を含む。
1つまたは複数の変数の少なくとも1つは、データフローグラフの1つまたは複数、1つまたは複数のサブグラフ、および、1つまたは複数のコンポーネントの特性に相当する。
1つまたは複数の式を評価する工程は、事前に定義された条件に従って1つまたは複数の式を評価する工程を含む。
事前に定義された条件は、トリガ事象の検出を含む。
トリガ事象は、1つまたは複数の処理リソースが1つまたは複数の処理リソースの要求に対して不足しているかについての判断を含む。
データ構造を定義する工程は、データフローグラフを横断して、1つまたは複数のフィールドのタイプおよび数の1つまたは複数を特定する工程を含む。
データフローグラフを横断する工程は、1つまたは複数の式に関連するデータフローグラフの一部分を横断する工程を含む。
データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を収集する工程は、1つまたは複数の式に少なくとも部分的に基づいて追跡情報をフィルタ処理する工程を含む。
本方法は、結果を1つまたは複数の閾値と比較する工程をさらに含む。
本方法は、比較する工程に応じて通知を生成する工程をさらに含む。
本方法は、通知に少なくとも部分的に基づいて1つまたは複数の自動化プロセスを実行する工程をさらに含む。
本方法は、ユーザインターフェースから1つまたは複数の式を受信する工程をさらに含む。
本方法は、1つまたは複数の式を含む事前に定義された式のセットを提供する工程をさらに含む。
評価する工程は、1つまたは複数の式を定期的に評価する工程をさらに含む。
本方法は、2つ以上の結果を使用して1つまたは複数の特性に関連するヒストグラムを生成する工程をさらに含む。
本方法は、1つまたは複数の式の定期的な評価結果に少なくとも部分的に基づいて、格納された過去のデータを更新する工程をさらに含む。
1つまたは複数の変数の少なくとも1つは、1つまたは複数の式を評価するという要求をコンピューティングシステムによって受信する前に過去のデータに格納された値に依存する。
本方法は、1つまたは複数のフィールドの1つの中に、ベクトル形式で、追跡情報に関連する複数の値を格納する工程をさらに含む。
複数の値のそれぞれは、特定のパラメータのそれぞれの異なる値に関連し、複数の値のそれぞれは、特定のパラメータのそれぞれの値に関連する追跡情報上で集約された特性の値である。
別の態様では、一般に、コンピュータ可読記憶媒体は、コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピュータプログラムを格納する。コンピュータプログラムは、コンピュータに、1つまたは複数の変数に対する1つまたは複数の演算を含む1つまたは複数の式を評価するという要求を受信させ、1つまたは複数の式を評価させるための命令を含む。該評価は、1つまたは複数のフィールドを含むデータ構造を定義することと、データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報をデータフローグラフの実行中に収集することと、1つまたは複数のフィールドに追跡情報に関連する値を格納することと、1つまたは複数の式の1つまたは複数の変数を、1つまたは複数のフィールドに格納した値と置き換えて、1つまたは複数の式の評価結果を演算することとを含む。
別の態様では、一般に、コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステム。コンピューティングシステムは、1つまたは複数の変数に対する1つまたは複数の演算を含む1つまたは複数の式を評価するという要求を受信するよう構成された入力デバイスまたはポートと、1つまたは複数の式を評価するよう構成された少なくとも1つのプロセッサとを含む。該評価は、1つまたは複数のフィールドを含むデータ構造を定義することと、データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報をデータフローグラフの実行中に収集することと、1つまたは複数のフィールドに追跡情報に関連する値を格納することと、1つまたは複数の式の1つまたは複数の変数を、1つまたは複数のフィールドに格納した値と置き換えて、1つまたは複数の式の評価結果を演算することとを含む。
別の態様では、一般に、コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステム。コンピューティングシステムは、1つまたは複数の変数に対する1つまたは複数の演算を含む1つまたは複数の式を評価するという要求を受信する手段と、1つまたは複数の式を評価する手段とを含む。該評価は、1つまたは複数のフィールドを含むデータ構造を定義することと、データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報をデータフローグラフの実行中に収集することと、1つまたは複数のフィールドに追跡情報に関連する値を格納することと、1つまたは複数の式の1つまたは複数の変数を、1つまたは複数のフィールドに格納した値と置き換えて、1つまたは複数の式の評価結果を演算することとを含む。
態様は、以下の利点の1つまたは複数を含み得る。
データフローグラフを実行環境で実行する際、データフローグラフの実行をモニタして、例えば、データフローグラフのコンポーネントによって実行されているさまざまなコンピューテーションの進行を追跡するか、または、実行されているデータ処理に関連するさまざまな特性をサンプリングすることが有用である場合が多い。いくつかの事例では、ユーザは、処理されているデータの量(例えば、データの記録数もしくはバイト数)、および/または、データ処理中に消費されているリソースの量(例えば、コンポーネントによって使用されているCPU時間もしくはコンポーネントに関連する待ち時間)の追跡を希望する場合がある。いくつかの実行環境は、ユーザインターフェースの一部であるウィンドウに表示されるさまざまな特性を示すための追跡データストリームを受信するユーザインターフェースを提供するよう構成される。
本明細書に記載される技法のいくつかにより、ユーザは、ユーザがモニタリングに関心を示し得るある特定の特性を定義する式を動的かつ柔軟に提供することができる。いくつかの事例では、ユーザは、データフローグラフの実行中にそのデータフローグラフをモニタするための式を提供することができる。特性は、データフローグラフのサブグラフ内にあるデータフローグラフの一部分(例えば、コンポーネントまたはデータフローリンク)と関連し得る。ユーザは、システムがデータフローグラフの表現(例えば、ノードがコンポーネントを表し、リンクがデータフローを表す有向グラフとしてのデータフローグラフの表現)の適切な部分を横断する(または「少しずつ移動する」)ことを可能にする、十分に適格な経路の指定を可能にする表記を使用することができる。データ構造を生成して、ユーザが提供する式の評価に必要な追跡情報の一部分を保持することによって、追跡情報のライブストリームから集約され封入された適切な情報を使用して、効果的な様式で、オンザフライで式を評価することができる。ユーザは、追跡情報を理解することも読み取ることもできなければならないというわけではなく、単に、理解可能な式を生成するだけでよく、それに基づいて、システムは、適切な追跡情報を取得し、最新の情報を使用して式を評価することができる。
本発明の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになるであろう。
図面の説明
グラフに基づくコンピューテーションを実行するためのシステムのブロック図である。 データフローグラフの特性を評価するための例示的な手順のフローチャートである。 データフローグラフをモニタするためのシステムのブロック図である。 データフローグラフの特性を評価するための例示的な手順のフローチャートである。
説明
図1は、データフローグラフの特性を評価するための技法を使用することができる例示的なデータ処理システム100を示す。システム100は、記憶装置またはオンラインデータストリームとの接続部などの1つまたは複数のデータソースを含み得るデータソース102を含み、データソースのそれぞれは、さまざまな格納形式のいずれかの形式(例えば、メインフレームによって使用されるデータベース表、スプレッドシートファイル、フラットテキストファイルまたはネイティブ形式)でデータを格納することができる。実行環境104は、モニタモジュール106と、実行モジュール112とを含む。モニタモジュール106は、実行モジュール112上で実行する1つまたは複数のプロセスの特性をモニタするための1つまたは複数のプロセスを含む。例えば、実行モジュール112は、頂点間の有向リンク(作業要素のフローを表す)によって接続された頂点(データ処理コンポーネントまたはデータセットを表す)を含むデータフローグラフとしてアプリケーションを実行するよう構成することができる。データ処理コンポーネントは、入力データフロー上で作業要素を受信するための任意の数の入力ポートと、出力データフロー上で作業要素を提供するための任意の数の出力ポートとを有し得る。モニタモジュール106は、1つまたは複数のデータフローグラフを実行しているときに、1つまたは複数のデータフローグラフの特性をモニタするよう構成することができる。実行環境104は、UNIX(登録商標)オペレーティングシステムなどの適切なオペレーティングシステムの制御下で、1つまたは複数の汎用コンピュータをホストとすることができる。例えば、実行環境104は、ローカルで接続された(例えば、SMPコンピュータなどのマルチプロセッサシステム)もしくはローカルで分散された(例えば、クラスタもしくはMPPとして結合された複数のプロセッサ)、または、リモートで接続されたもしくはリモートで分散された(例えば、ローカルエリアネットワーク(LAN)および/もしくは広域ネットワーク(WAN)を介して結合された複数のプロセッサ)、あるいは、それらの任意の組合せの、複数の中央演算処理装置(CPU)を使用したコンピュータシステムの構成を含む複数ノード並列演算環境を含み得る。
いくつかの例では、モニタモジュール106は、データ格納システム116からデータを読み取る。例えば、モニタモジュール106は、データ格納システム116に格納された1つまたは複数の式114にアクセスすることができる。モニタモジュール106は、式114を使用して、実行モジュール112によって実行されているデータフローグラフの特性を評価することができる。以下でさらに詳細に論じられるように、モニタモジュール106は、データフローグラフに関連する追跡情報を使用して、式114を評価することができる。実行モジュール112は、入力データを処理するために実行しているデータフローグラフへの入力として、データソース102からデータを読み取る。データソース102を提供する記憶装置は、実行環境104とローカルで接続する、例えば、実行環境104を実行しているコンピュータに接続された記憶媒体(例えば、ハードドライブ108)に格納することも、実行環境104とリモートで接続する、例えば、リモート接続上で、実行環境104を実行しているコンピュータと連通するリモートシステム(例えば、メインフレーム110)をホストとすることもできる。
実行モジュール112は、1つまたは複数のコンピュータプロセス(例えば、データフローグラフのコンポーネントに関連するプロセス)を実行することができ、モニタモジュール106は、実行モジュール112がデータフローグラフを実行しているときに、(例えば、実行モジュール112が実行するグラフプロセスとともに、実行環境で実行している1つまたは複数のモニタリングプロセスも使用して)データフローグラフのアクティビティをモニタすることができる。また、データ格納システム116は、開発環境118にアクセスすることができ、開発環境118では、開発者120は、以下で説明されるように、データフローグラフの1つまたは複数の特性を表す式114を定義することも入力することもでき、評価した式の結果を使用して措置を講じることもできる。式114は、データフローグラフの異なる特性を表す1つまたは複数の変数に対する1つまたは複数の演算の観点から定義することができる。演算の結果は、ユーザがモニタを所望する特性を表す式の値をもたらす。開発環境118は、いくつかの実装形態では、データフローグラフとしてアプリケーションを開発するためのシステムである。例えば、そのような環境については、参照により本明細書に組み込まれる「Managing Parameters for Graph-Based Applications」と称する米国特許出願公開第2007/0011668号に詳細に説明されている。そのようなグラフに基づくコンピューテーションを実行するシステムについては、参照により本明細書に組み込まれる米国特許第5,566,072号「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」に記載されている。このシステムに従って作成されたデータフローグラフは、グラフコンポーネントによって表される個別のプロセスに情報を持ち込むおよび個別のプロセスから情報を引き出すための方法、プロセス間で情報を移動するための方法、ならびに、プロセスに対する実行順番を定義するための方法を提供する。このシステムは、プロセス間通信方法(例えば、グラフのリンクに従った通信経路は、TCP/IPもしくはUNIX(登録商標)ドメインソケットを使用することも、共有メモリを使用して、プロセス間でデータを渡すこともできる)を選択するアルゴリズムを含む。
システム100は、異なる形式のデータベースシステムを含むさまざまなタイプのシステムからデータを受信することができる。データは、恐らくヌル値を含む、それぞれのフィールド(「属性」または「列」とも呼ばれる)に対する値を有する記録として組織化することができる。データソース102から最初にデータを読み取る際、実行モジュール112は、通常、そのデータソース内の記録についてのいくつかの初期のフォーマット情報から始める。状況次第では、データソースの記録構造は、初めは知られていない場合があり、代わりに、データソースの分析後に決定される場合がある。記録についての初期情報は、異なる値を表すビット数と、記録内のフィールドの順番と、ビットによって表される値のタイプ(例えば、ストリング、符号付き/符号なし整数)とを含み得る。
図2は、データフローグラフの特性を評価するための例示的な手順200のフローチャートを示す。本手順は、システム(例えば、システム100(図1))がデータフローグラフの1つまたは複数の特性を表す式を評価するという要求を受信する(202)と開始する。式を評価するという要求を受信した後、システムは、1つまたは複数のフィールドを含むデータ構造を定義する(204)。いくつかの例では、データ構造は、実行がモニタされているデータフローグラフの表現を横断することによってフィールドが定義されるメモリ内データ構造である。一般に、データ構造内のフィールドは、式の評価に必要なデータを保持するよう構成される。
システム100は、以下でさらに詳細に説明されるように、データフローグラフの異なる部分に関連する追跡情報を集約することによって、データフローグラフの実行中に追跡情報を収集する(206)。一般に、追跡情報は、データフローグラフを実行している間に生成され、データフローグラフならびにそのコンポーネントおよびサブコンポーネントのオペレーションについての情報の他に、さまざまなオペレーションが消費するリソースの量についての情報も提供することができる。一旦追跡情報が収集および/もしくは集約されれば(または、追跡情報が収集および/もしくは集約されてくると)、システムは、メモリ内データ構造のフィールドに、追跡情報に関連する値を格納する(208)。データ構造に値を格納した後、評価している式中の変数を、データ構造のフィールドに格納した値を使用して置き換える(210)。変数を既知の量と置き換えることで、システムは、次いで、式を評価して、結果を提供する(212)ことができる。図4の例に示されるように、結果は、さらなる処理タスクに使用することができる。また、結果は、以下の図3の例でさらに詳細に説明されるように、他の式を評価するために使用できる過去のデータの収集体に格納することもできる。
データフローグラフは、さまざまなレベルの抽象化によって指定することができる。それ自体がコンポーネントおよびリンクを含むデータフローグラフである「サブグラフ」は、単一のコンポーネントとして別の包含データフローグラフ内で表すことができ、サブグラフ内でコンポーネントへの入力を提供する入力ポートと、サブグラフ内でコンポーネントからの出力を提供する出力ポートとを示す。サブグラフは、開発者が所定のサブグラフを低レベルまで掘り下げてそのサブグラフ内のコンポーネントおよびリンクを見ることを可能にする一方で、データフローグラフの開発におけるモジュール方式および再利用可能性、ならびに、データフローグラフの所定のレベルで開発者からコンポーネントおよびコンポーネント間のリンクのサブセットの複雑性を隠す能力を可能にする。
図3は、実行モジュール112によって実行されるデータフローグラフ302の特性をモニタする例示的なシステム300を示し、データストア316と、式評価エンジン322と、グラフ縦断エンジン330とを含み、式評価エンジン322とグラフ縦断エンジン330の両方ともモニタモジュール106によって使用され、式324を受信して評価し、データフローグラフ302のモニタされた特性を表す結果を提供する。式324は、例えば、式評価エンジン322およびグラフ縦断エンジン330がデータ格納システム116からアクセスすることができる。データフローグラフ302は、データフロー(例えば、データソース102から提供され、サブグラフによって処理された記録などのデータ要素のフロー)を表すリンク328によって接続された第1のサブグラフ304と第2のサブグラフ306とを含む。サブグラフ304は、データフロー(例えば、データソース102から提供され、コンポーネントによって処理された記録などのデータ要素のフロー)を表すリンク326によって接続された第1のコンポーネント「C1」308と第2のコンポーネント「C2」310とを含む。また、システム300は、グラフ302のコンポーネントおよびサブグラフの実行に関連する追跡情報を集約する集約エンジン312も含み、集約エンジン312は、データストア316と通信可能に接続される。集約エンジン312は、以下でさらに詳細に説明されるように、データフローグラフ302ならびにそのサブグラフおよびコンポーネントに関連する追跡情報を式評価エンジン322に渡すよう構成され、式評価エンジン322もまた、データストア316と通信可能に接続される。集約エンジン312は、実行モジュール112の一部として、またはその代替として、モニタモジュール106の一部として実装することができる。
1つのデータフローグラフと少数のサブグラフおよびコンポーネントのみ示されているが、データフローグラフは、モジュールの実体であり、他のデータフローグラフと接続しても、組み合わせてもよい。その上、図3の例は比較的少数のサブグラフおよびコンポーネントを示す簡単な例であるが、データフローグラフ302は任意の数のサブグラフを含み得、各サブグラフは任意の数のコンポーネントを含み得る。
いくつかの例では、データストア316は、データ格納システム116のメモリ(例えば、揮発性および/または不揮発性メモリ)に格納される。データストア316は、集約された追跡情報を格納するための少なくとも1つのデータ構造318を格納する。いくつかの例では、データ構造318は、フィールドによって定義される構造を有する記録内に1つまたは複数の追跡情報値を格納するための1つまたは複数のフィールド320A、320B、320Cおよび320Dを含む。
図3の例では、グラフ縦断エンジン330は、以下でさらに詳細に説明されるように、式324を分析し、データフローグラフ302の表現を横断する際にどの情報が必要かを判断し、データ構造318の定義を決定する。この横断は、新しい式324の受信に応じて、データフローグラフ302の実行前またはデータフローグラフ302の実行中に起こり得る。データフローグラフ302の実行中は、集約エンジン312は、定義されたデータ構造318に、集約した追跡情報を入力する。式評価エンジン322は、情報が入力されたデータ構造318を使用して式324を評価する。式324を評価した後、評価結果は、データフローグラフ302の1つまたは複数の特性の表現を提供する。結果は、場合により、データストア316内の過去のデータ332の収集体に格納することができる。
いくつかの例では、開発者120(図1)などのユーザは、式324を入力して、ユーザインターフェースを通じて評価する。ユーザは、評価のための新しい式を入力することができる(例えば、ユーザは、何らかの形式のプログラミング言語もしくは式作成ツールを使用して、評価する新しい式を定義することができる)か、または、ユーザは、事前に設定された式もしくはデフォルト式などの保存された式のリストから選択された式などの既存の式を入力することができる。一般に、ユーザは、1つまたは複数のデータフローグラフの特定の特性についての情報を得るために式を入力することができる。例えば、ユーザが、コンポーネントC1およびC2が消費するリソースの量(例えば、1つまたは複数のCPUがコンポーネント用のプロセスの実行に費やす時間などのCPUリソース)を評価することを希望すれば、ユーザは、以下の式を選択することも作成することもできる。

消費されたCPUリソース=(SG1.C1.cpu+SG1.C2.cpu)

上記の式は、「ドット表記」式の一例である。式中の項は、データフローグラフの異なる部分に相当する名前(例えば、サブグラフ、コンポーネント、ポート、リンク)と、データフローグラフのそれらの部分に関連する特性とを含む。サブグラフまたはコンポーネントの名前の間に存在する式中の「ドット」は、「ドット」の右側のサブグラフまたはコンポーネントが「ドット」の左側のサブグラフまたはコンポーネント内に存在することを示す。式中の最後の「ドット」の後にくる最後の名前は、モニタされている「ドット」の左側の要素の特性に相当する。項「SG1.C1.cpu」は、コンポーネントC1 308によって消費されているCPUリソースを提供し、同様に、項「SG1.C2.cpu」は、コンポーネントC2 310によって消費されているCPUリソースを提供する。上記の式では、2つの項を足して、2つのコンポーネントC1 308およびC2 310によって消費されている全CPUリソースを得る。項SG1.C1.cpuおよびSG1.C2.cpuは、式の評価前または評価中にデータ構造318のフィールドから値を提供することができる変数である。
CPUリソースを含むいくつかの特性は特定のパラメータによって分解することができ、そのパラメータの異なる値に対してその特性を別々にモニタすることができる。例えば、CPUリソース変数に対する複数の異なる値は、「ホスト」パラメータのそれぞれの値に対するデータ構造318のフィールドに(例えば、ベクトルとして)格納することができる。特定のサブグラフの特定のコンポーネントは、異なるホストコンピュータ上で並行して実行する異なるスレッドを有し得る。各ホストコンピュータは、複数のCPUを有し得る。この例では、集約エンジン312は、各ホスト上ですべてのCPU上のCPU時間を集約して、各ホストに対してCPU時間の単一値をもたらす。これらの値は、データ構造318のフィールドにベクトル形式で格納される。フィールドを使用して式の変数に値を提供すると、場合により、全体的結果としてまたはホストによって分解された結果として、式の結果をユーザに表示することができる。式の結果を追加の処理(例えば、警告を定義するため)に使用する場合、ユーザは、チェックして(例えば、チェックボックスを使用して)、全体的結果を使用すべきかまたはホストによって分解された個々の結果を使用すべきかを示すことができる。例えば、警告をいつトリガするかを決定するために式に関連する閾値を定義する際、「全体」のチェックボックスがチェックされていれば、式の全体的結果に関連付ける閾値を受信するための単一の入力インターフェースが提供される。「全体」のチェックボックスがチェックされていなければ、各ホストに対するそれぞれの結果に関連付ける複数の閾値を受信するための複数の入力インターフェースが提供される。
上記の例では、式324が、データフローグラフ302の2つのコンポーネントによって消費されているCPUリソースに関連する特性を定義するが、式評価エンジン322を使用して、他の特性を表す式を評価することもできる。例えば、式を評価して、コンポーネントを通過する記録(またはバイト)数、入力データセットから読み取られるかまたは出力データセットに書き込まれる記録(またはバイト)数、経過時間などを提供することができる。いくつかの特性は、他の特性の観点から表すことができ、例えば、num_records/elapsed_timeは平均処理速度(例えば、1秒当たりの記録数の単位で)を表す。また、式評価エンジン322は、複数の式を同時に評価することもでき、事前に定義されたスケジュールに従って式を評価するようさらに構成することができる。例えば、式評価エンジン322は、1時間に1回、または、処理リソースがそれらのリソースの要求に対して不足しつつあるかについての判断などの1つもしくは複数のトリガ事象もしくは条件の検出時に、式324を評価するよう構成することができる。
式324を評価すべきであるという指示を受信した後、グラフ縦断エンジン330は、式324の字句解析およびデータフローグラフの表現を横断することによって決定されたデータフローグラフ302の分析に基づいて、データストア316内のデータ構造318を定義する。例えば、コンポーネントへの参照に使用される項は、データフローグラフのどれほど深いレベルにコンポーネントが位置するかに応じた構造を有する。ドット表記は、データフローグラフの表現を横断して、<サブグラフ>.<コンポーネント>として表される目的とするコンポーネントに到達するための十分に適格な経路を提供する。コンポーネント間のリンクへの参照に使用される項は、<コンポーネント>_から_<コンポーネント>として表される。データ構造318は、式324中の1つまたは複数の変数の代わりとなるように最終的に式評価エンジン322に提供される値を保持するよう構成されたフィールドを含む。
データ構造318を生成する前、グラフ縦断エンジン330は、データフローグラフ302の表現を横断(または「少しずつ移動」)し、式324の評価に必要なフィールド320A〜Dの数およびタイプを決定する。データフローグラフ302を横断するためのいくつかの手順では、グラフ縦断エンジン330は、データフローグラフ302の最高レベル(コンポーネントおよびサブグラフは、最高レベルでのノードとして表される)でデータフローグラフ302を検査することによって、および、式324の評価に関連するデータフローグラフの部分を特定するため、データフローグラフ302のノードを接続するデータフローリンクをたどって、式中の変数名をデータフローグラフの部分の名前(例えば、コンポーネント、ポート、リンク)と比較することによって開始する。すなわち、グラフ縦断エンジン330は、式324およびデータフローグラフ302を分析して、特定のタイプ(例えば、データタイプ)の1つまたは複数のフィールドを定義する。例えば、上記の式では、データ構造318は2つのフィールドを有し、それぞれのタイプはCPUリソースに関連することになる。データフローグラフ302のトポロジー(グラフ縦断エンジン330によって決定される)は、データ構造318内に含まれるフィールドの数およびタイプを定義する。例えば、データフローグラフが3つのトポロジーを有するノードの有向グラフとして表される場合、式に基づいて、グラフ縦断エンジン330は、ルートから式で参照されるコンポーネント/データフローを表すノード/リンクまでどの経路を横断すべきか判断することができる。式で参照されるコンポーネントまたはデータフローを表すノードまたはリンクが経路に含まれていない場合は、グラフ縦断エンジン330は、その経路を横断する必要はない。あるいは、いくつかの実装形態では、グラフ縦断エンジン330は、グラフ全体を横断することができる。
データ構造318を定義すると、データフローグラフ302は実行モジュール112によって実行され、実行中は、モニタモジュール106が1つまたは複数の式の評価を管理する。評価する各式に対し、定義されたフィールドの仕様に基づいて、データ構造の対応するインスタンスを生成し、追跡情報を受信する。集約エンジン312は、実行モジュール112によって提供される追跡情報のフローからどの追跡情報を抽出すべきか示す入力を受信する。集約エンジン312は、定義されたデータ構造318のインスタンスの定義されたフィールド320A〜Dを、式324の評価に関連する値で満たすよう試みる。これらの値は、データフローグラフ302の実行中に実行モジュール112によって生成される追跡情報によって提供される。実行モジュール112は、さまざまなサブグラフおよびコンポーネントを実行すると、追跡情報を生成することができ、追跡情報は、集約エンジン312によって集約される。いくつかの例では、集約エンジン312は、データフローグラフ302のプロセスとともに実行されるプロセスを使用して実装し、個々のコンポーネント、サブグラフおよびデータフローの特性を説明する追跡情報を収集することができる。
適切な追跡情報をフィールドに提供するため、集約エンジン312は、データフローグラフのどの態様が式324の評価に関連するかを特定するためにデータ構造318の生成されたインスタンスを分析する。データ構造318のインスタンスを生成するプロセスは、いくつかの実装形態では、再度実行中にグラフ縦断エンジン330を使用して、データフローグラフの表現を横断し、追加情報を得る(定義されたフィールドに加えて)か、または、データフローグラフの構造を実証する(例えば、実行前の初期の横断からかなりの時間の量が経過している場合)工程を含む。
データフローグラフの異なる態様には異なるタイプの集約が必要とされる場合がある。集約の1つのタイプは、低レベルからデータフローグラフのあるレベルに対する追跡情報を提供するために起こる。例えば、集約エンジン312は、ある特定の数値を、サブグラフ内の個々のコンポーネントの特性(例えば、各コンポーネントに対する個々のCPU時間)を表す追跡情報内に追加し、サブグラフの特性(例えば、総CPU時間)を表す総和を提供する。他のタイプの集約は、データフローグラフの他の態様を伴う。並行なデータフローグラフの場合、入力データフロー上で受信したデータを並行して処理する所定のコンポーネントの複数のインスタンスが存在する(例えば、入力データフロー上のデータは、例えば、異なるCPUで実行することができる異なる並行インスタンス間をパーティションで区切ることができる)。集約エンジン312は、並行コンポーネントの各インスタンスに対する異なる追跡情報を集約し、集約値(例えば、各インスタンスに対する総CPU時間)を提供する。データ構造318内の、式324の評価に関連するデータフローグラフの部分(例えば、関連するデータフロー、コンポーネントまたはサブグラフ)に相当するフィールドに追跡情報を格納した後、式評価エンジン322は、データ構造318を受信し、格納した情報(例えば、コンポーネントC1 308およびC2 310についての情報)を使用して式324を評価する。いくつかの事例では、集約エンジン312は、式324の評価のために必要以上のそれらのコンポーネントに対する追跡情報を提供する(例えば、集約エンジン312は、コンポーネントを通過する記録数など他の式で参照された変数および現在評価している式324で参照されたコンポーネントのCPU使用状況に関連する追跡情報を提供することができる)が、式評価エンジン322は、不要な追跡情報をフィルタ除去し、式324の評価に必要な追跡情報のみを抽出するよう構成することができる。
集約エンジン312によって関連追跡情報を収集した後、追跡情報は、データ構造318内の適切なフィールドに格納される。フィールド320A〜Dは定義された「タイプ」のものであり、追跡情報は同じタイプのものになるようフィルタ処理されたため、フィールド320A〜Dには、互換性の適切なタイプの追跡情報を提供することができる。フィールド320A〜Dを関連追跡情報(または、その追跡情報に関連する値)で満たした後、データ構造318は、式評価エンジン322によって評価できる記録の形を取った。この時点で、式評価エンジン322は、フィールド320A〜Dから値を引き出し、式324で定義された変数と置き換えることができる。
式324中の変数をフィールド320A〜Dからの値と置き換えた後、式評価エンジン322は、式324を評価して所望の結果を生成することができる。上記の例示的な式を使用すると、その式の評価結果は、コンポーネントC1 308およびコンポーネントC2 310の総CPU使用状況を示すことになる。式324の評価は、データフローグラフを実行している間に実行することができる。
図4は、式の評価から結果を得た後で実行することができる2つの任意選択のオペレーション414、416を除いて、例示的な手順200(図2)と同様の例示的な手順400である。手順400は、システム(例えば、システム100(図1))がデータフローグラフの1つまたは複数の特性を表す式を評価するという要求を受信する(402)と開始する。式を評価するという要求を受信した後、システムは、1つまたは複数のフィールドを含むデータ構造を定義する(404)。いくつかの例では、データ構造は、評価されているデータフローグラフの表現を横断することによってフィールドが定義されるメモリ内データ構造である。一般に、データ構造内のフィールドは、式の評価に必要なデータを保持するよう構成される。
システム100は、データフローグラフの異なる部分から生成された追跡情報を集約することによって、データフローグラフから追跡情報を収集する(406)。一般に、追跡情報は、データフローグラフを実行している間に生成され、データフローグラフならびにそのコンポーネントおよびサブコンポーネントのオペレーションについての情報の他に、さまざまなオペレーションが消費するリソースの量についての情報も提供することができる。一旦追跡情報が収集および/もしくは集約されれば(または、追跡情報が収集および/もしくは集約されてくると)、システムは、メモリ内データ構造のフィールドに、追跡情報に関連する値を格納する(408)。データ構造に値を格納した後、評価している式中の変数を、データ構造のフィールドに格納した値を使用して置き換える(410)。変数を既知の量と置き換えることで、システムは、次いで、式を評価して、結果を提供する(412)ことができる。
結果を判断した後、システムは、結果を1つまたは複数の閾値と比較する(414)ことができる。例えば、システムが以前に説明された式を評価して、コンポーネントC1 308およびC2 310のCPU使用量(例えば、80%使用)を表す結果を得たと仮定する。システムは、80%の結果をそれらの2つのコンポーネントに関連する最大CPU使用に関連する閾値(例えば、50%)と比較することができる。結果が閾値を超える場合、システム内で通知を生成して、その条件の管理者に警告する(416)ことができる。通知は、警告または警報の形であってもよく、自動化プロセスを実行させてもよい(例えば、追加のCPUリソースを解放してコンポーネントC1 308およびC2 310に追加のリソースを提供する)。
いくつかの例では、結果を使用して、時間に対するまたは他の値に対する1つまたは複数の特性を示すことができる。例えば、式の評価結果を使用して、収集した過去のデータ332に基づく1つまたは複数の評価特性を表すヒストグラムまたは他の統計値を生成することができる。ヒストグラムは、レポートの形で定期的に自動的に生成してもよく、システム300の管理者が要求に応じて生成してもよい。
以前に評価された式の結果は過去のデータ332に格納されるため、いくつかの式は、その変数の既定数の以前の評価上で演算された変数の平均値などの過去のデータ332の関数である項を含み得る。ユーザは、1つまたは複数のグラフを実行するジョブの性能をそのジョブの過去の性能と比較する式を書き込むことができる。そのような式を使用して、履歴ベースの警告(例えば、式によって測定されたグラフ測定基準がその過去値から逸脱することをユーザに通知する警告)を生成することができる。デフォルトでは、システム300は、評価された各式の指定数の過去の結果を過去のデータ332に格納するよう構成することができる(例えば、最近の50回のジョブ実行から)。指定数は、ユーザが構成することができる。
特定の式によって定義された測定基準の値は、測定基準の過去値を含む他の式で参照することができる。以下は、過去のデータ332に依存する測定基準の過去値または統計値を参照するためにユーザが使用できる変数の構文の一例である。
value:モニタされているジョブの測定基準の現在値
max_value:格納された過去値上の測定基準の最大値
min_value:格納された過去値上の測定基準の最小値
avg_value:格納された過去値上の測定基準の平均(average)(平均(mean))値
stdev_value:格納された過去値上の測定基準の標準偏差
これらの変数を使用すると、ユーザは、以下のようなブール式を構築することができる。
value > avg_value + stdev_value
この式を使用して、値がその過去平均を標準偏差以上上回る場合にトリガされる警戒通知を定義することができる。
履歴ベースの式を構築する際、過去のデータ内の基本的な個々の過去値へのアクセスをユーザに与えることができる。例えば、測定基準の個々の過去値は、ベクトルhistory[i]としての参照であり得、iは、どれほど前に値が捕捉されたかを示す。例えば、測定基準が、ジョブによって消費されるCPU時間を表す式によって定義される場合、最近完了したジョブ実行によって使用された総CPU時間の値は、history[0]として表される。次の最近完了したジョブ実行に対する値は、history[1]として表される。このhistoryベクトルの大きさは、history_lengthとして表される。max_valueおよびavg_valueなどの統計値は、過去値のこの数値上で計算される。history_length時間より少ない数値でジョブが実行される場合、したがって、history[i]ベクトルが格納された過去値history_lengthより少ない数値を有する場合、システム300は、すべての格納された過去値を使用して統計値を演算する。場合により、システム300は、提供する統計値がより意味深いものであるように、統計値を提供する前に最小数の過去値(例えば、少なくとも3)を格納する必要がある場合がある。history[i]で利用可能な個々の値を使用すると、ユーザは、履歴ベースの警告を定義することができる。例えば、以下の式は、その現在値と、最近の2回のジョブ実行上のその値の平均との差として最近の「ドリフト」を測定基準の値で、すなわち、value - (history[0] + history[1])/2で表す。このブール式を使用して、例えば、グラフジョブがその最近の性能を特徴付ける測定基準から何らかの方法で逸脱し始めた場合にユーザに通知することができる。
いくつかの例では、データフローグラフは、特定のユーザの関心に合わせて調整された追跡情報を生成することができる。例えば、多くのデータフローグラフがCPU使用状況に関連するデータを生成する一方で、データフローグラフは、特定のコンポーネントを通過するドルの枚数に関連する追跡情報を生成するよう構成することもできる(例えば、ユーザが金融サービス業界にいる場合)。したがって、式は、ユーザのビジネスエリアに重要な特性の評価のための強力なツールであり得る。
上記で説明されるデータフローグラフの特性を評価する手法は、コンピュータ上で実行するためのソフトウェアを使用して実施することができる。例えば、ソフトウェアは、1つまたは複数のプログラムされたまたはプログラム可能なコンピュータシステム(それは、分散型、クライアント/サーバまたはグリッドなどのさまざまなアーキテクチャのものである)上で実行する1つまたは複数のコンピュータプログラムの手順を形成し、コンピュータシステムはそれぞれ、少なくとも1つのプロセッサと、少なくとも1つのデータ格納システム(揮発性および不揮発性メモリならびに/または格納要素を含む)と、少なくとも1つの入力デバイスまたはポートと、少なくとも1つの出力デバイスまたはポートとを含む。ソフトウェアは、例えば、データフローグラフの設計および構成に関連する他のサービスを提供する大規模なプログラムの1つまたは複数のモジュールを形成することができる。グラフのノードおよび要素は、コンピュータ可読媒体に格納されたデータ構造、または、データリポジトリに格納されたデータモデルに適合する他の組織化されたデータとして実装することができる。
ソフトウェアは、汎用もしくは特殊用途のプログラム可能なコンピュータによる読み取りが可能なCD−ROMなどの記憶媒体上で提供されても、ネットワークの通信媒体上で、ソフトウェアが実行されるコンピュータの記憶媒体に送達されてもよい(伝播信号で符号化される)。機能のすべては、特殊用途のコンピュータ上か、または、コプロセッサなどの特殊用途のハードウェアを使用して実行することができる。ソフトウェアは、ソフトウェアによって指定されるコンピューテーションの異なる部分は異なるコンピュータによって実行される分散様式で実施することができる。それぞれのそのようなコンピュータプログラムは、好ましくは、汎用もしくは特殊用途のプログラム可能なコンピュータによる読み取りが可能な記憶媒体もしくはデバイス(例えば、ソリッドステートメモリもしくは媒体、または、磁気もしくは光媒体)上に格納されるか、または、同記憶媒体もしくはデバイスにダウンロードされるが、それは、コンピュータシステムで記憶媒体もしくはデバイスを読み取り、本明細書に記載される手順を実行する際にコンピュータを構成および動作するためである。また、本発明のシステムは、コンピュータ可読記憶媒体として実装され、コンピュータプログラムを用いて構成されるものと考慮され得、そのように構成された記憶媒体は、特定の事前に定義された様式でコンピュータシステムを動作させ、本明細書に記載される機能を実行する。
本発明の多くの実施形態について説明してきた。それにもかかわらず、本発明の精神および範囲から逸脱することなく、さまざまな変更を行うことができることが理解されよう。例えば、上記で説明された工程のいくつかは、順番に依存しないものであり得、したがって、説明されている順番とは異なる順番で実行することができる。
前述の説明は、例示を意図するものであり、本発明の範囲を限定するものではなく、本発明の範囲は、添付の特許請求の範囲によって定義されることを理解されたい。例えば、上記で説明された多くの機能工程は、処理全体に実質的に影響を与えることなく、異なる順番で実行することができる。他の実施形態は、以下の特許請求の範囲内にある。

Claims (26)

  1. コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステムによって実行される方法であって、
    1つまたは複数の変数に対する1つまたは複数の演算を含む前記1つまたは複数の式を評価するという要求を前記コンピューティングシステムによって受信する工程と、
    前記コンピューティングシステムによって前記1つまたは複数の式を評価する工程であって、
    1つまたは複数のフィールドを含むデータ構造を定義する工程と、
    前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を前記データフローグラフの実行中に収集する工程と、
    前記1つまたは複数のフィールドに前記追跡情報に関連する値を格納する工程と、
    前記1つまたは複数の式の1つまたは複数の変数を、前記1つまたは複数のフィールドに格納した値と置き換えて、前記1つまたは複数の式の評価結果を演算する工程とを含む、工程と
    を含む、方法。
  2. 前記評価は、前記データフローグラフを実行している間に実行される、請求項1に記載の方法。
  3. 前記追跡情報は、前記データフローグラフの1つまたは複数のサブグラフの1つまたは複数のコンポーネントにさらに関連する、請求項1に記載の方法。
  4. 前記1つまたは複数の変数の少なくとも第1の変数は、前記1つまたは複数のサブグラフの第1のサブグラフへの参照を含む項として前記式中で表される、請求項3に記載の方法。
  5. 前記第1の変数は、前記第1のサブグラフ内の第1のコンポーネントへの参照を含む、請求項4に記載の方法。
  6. 前記1つまたは複数の変数の少なくとも1つは、前記データフローグラフの1つまたは複数、前記1つまたは複数のサブグラフ、および、前記1つまたは複数のコンポーネントの特性に相当する、請求項3に記載の方法。
  7. 前記1つまたは複数の式を評価する工程は、事前に定義された条件に従って前記1つまたは複数の式を評価する工程を含む、請求項1に記載の方法。
  8. 前記事前に定義された条件は、トリガ事象の検出を含む、請求項7に記載の方法。
  9. 前記トリガ事象は、1つまたは複数の処理リソースが前記1つまたは複数の処理リソースの要求に対して不足しているかについての判断を含む、請求項8に記載の方法。
  10. 前記データ構造を定義する工程は、前記データフローグラフを横断して、前記1つまたは複数のフィールドのタイプおよび数の1つまたは複数を特定する工程を含む、請求項1に記載の方法。
  11. 前記データフローグラフを横断する工程は、前記1つまたは複数の式に関連する前記データフローグラフの部分を横断する工程を含む、請求項10に記載の方法。
  12. 前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を収集する工程は、前記1つまたは複数の式に少なくとも部分的に基づいて前記追跡情報をフィルタ処理する工程を含む、請求項1に記載の方法。
  13. 前記結果を1つまたは複数の閾値と比較する工程をさらに含む、請求項1に記載の方法。
  14. 前記比較する工程に応じて通知を生成する工程をさらに含む、請求項13に記載の方法。
  15. 前記通知に少なくとも部分的に基づいて1つまたは複数の自動化プロセスを実行する工程をさらに含む、請求項14に記載の方法。
  16. ユーザインターフェースから前記1つまたは複数の式を受信する工程をさらに含む、請求項1に記載の方法。
  17. 前記1つまたは複数の式を含む事前に定義された式のセットを提供する工程をさらに含む、請求項1に記載の方法。
  18. 前記評価する工程は、前記1つまたは複数の式を定期的に評価する工程をさらに含む、請求項1に記載の方法。
  19. 2つ以上の結果を使用して1つまたは複数の特性に関連するヒストグラムを生成する工程をさらに含む、請求項18に記載の方法。
  20. 前記1つまたは複数の式の定期的な評価結果に少なくとも部分的に基づいて、格納された過去のデータを更新する工程をさらに含む、請求項18に記載の方法。
  21. 前記1つまたは複数の変数の少なくとも1つは、前記1つまたは複数の式を評価するという前記要求を前記コンピューティングシステムによって受信する前に前記過去のデータに格納された値に依存する、請求項18に記載の方法。
  22. 前記1つまたは複数のフィールドの1つの中に、ベクトル形式で、前記追跡情報に関連する複数の値を格納する工程をさらに含む、請求項1に記載の方法。
  23. 前記複数の値のそれぞれは、特定のパラメータのそれぞれの異なる値に関連し、前記複数の値のそれぞれは、前記特定のパラメータの前記それぞれの値に関連する追跡情報上で集約された特性の値である、請求項22に記載の方法。
  24. コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピュータプログラムを格納するコンピュータ可読記憶媒体であって、前記コンピュータプログラムは、コンピュータに、
    1つまたは複数の変数に対する1つまたは複数の演算を含む前記1つまたは複数の式を評価するという要求を受信させ、
    前記1つまたは複数の式を評価させるための命令を含み、該評価は、
    1つまたは複数のフィールドを含むデータ構造を定義することと、
    前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を前記データフローグラフの実行中に収集することと、
    前記1つまたは複数のフィールドに前記追跡情報に関連する値を格納することと、
    前記1つまたは複数の式の1つまたは複数の変数を、前記1つまたは複数のフィールドに格納した値と置き換えて、前記1つまたは複数の式の評価結果を演算することと
    を含む、コンピュータ可読記憶媒体。
  25. コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステムであって、
    1つまたは複数の変数に対する1つまたは複数の演算を含む前記1つまたは複数の式を評価するという要求を受信するよう構成された入力デバイスまたはポートと、
    前記1つまたは複数の式を評価するよう構成された少なくとも1つのプロセッサとを含み、該評価は、
    1つまたは複数のフィールドを含むデータ構造を定義することと、
    前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を前記データフローグラフの実行中に収集することと、
    前記1つまたは複数のフィールドに前記追跡情報に関連する値を格納することと、
    前記1つまたは複数の式の1つまたは複数の変数を、前記1つまたは複数のフィールドに格納した値と置き換えて、前記1つまたは複数の式の評価結果を演算することと
    を含む、コンピューティングシステム。
  26. コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステムであって、
    1つまたは複数の変数に対する1つまたは複数の演算を含む前記1つまたは複数の式を評価するという要求を受信する手段と、
    前記1つまたは複数の式を評価する手段とを含み、該評価は、
    1つまたは複数のフィールドを含むデータ構造を定義することと、
    前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を前記データフローグラフの実行中に収集することと、
    前記1つまたは複数のフィールドに前記追跡情報に関連する値を格納することと、
    前記1つまたは複数の式の1つまたは複数の変数を、前記1つまたは複数のフィールドに格納した値と置き換えて、前記1つまたは複数の式の評価結果を演算することと
    を含む、コンピューティングシステム。
JP2013526149A 2010-08-25 2011-08-25 データフローグラフの特性の評価 Active JP5878537B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37687810P 2010-08-25 2010-08-25
US61/376,878 2010-08-25
PCT/US2011/049131 WO2012027560A1 (en) 2010-08-25 2011-08-25 Evaluating dataflow graph characteristics

Publications (3)

Publication Number Publication Date
JP2013536531A true JP2013536531A (ja) 2013-09-19
JP2013536531A5 JP2013536531A5 (ja) 2014-09-25
JP5878537B2 JP5878537B2 (ja) 2016-03-08

Family

ID=44545974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013526149A Active JP5878537B2 (ja) 2010-08-25 2011-08-25 データフローグラフの特性の評価

Country Status (8)

Country Link
US (1) US9727438B2 (ja)
EP (1) EP2609507B1 (ja)
JP (1) JP5878537B2 (ja)
KR (1) KR101809573B1 (ja)
CN (1) CN103069394B (ja)
AU (1) AU2011293338C1 (ja)
CA (1) CA2806236C (ja)
WO (1) WO2012027560A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022502799A (ja) * 2018-09-25 2022-01-11 アビニシオ テクノロジー エルエルシー 監査データを出力する際の回復性を実装するための専用監査ポート

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
AU2007286155B2 (en) * 2006-08-10 2013-12-12 Ab Initio Technology Llc. Distributing services in graph-based computations
EP2174222A4 (en) 2007-07-26 2010-10-27 Ab Initio Technology Llc TRANSACTIONAL GRAPH-BASED CALCULATION WITH ERROR HANDLING
CN102317911B (zh) 2009-02-13 2016-04-06 起元技术有限责任公司 管理任务执行
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
KR20150042297A (ko) 2010-06-15 2015-04-20 아브 이니티오 테크놀로지 엘엘시 동적으로 로딩하는 그래프 기반 계산
US20120188249A1 (en) * 2011-01-26 2012-07-26 Raytheon Company Distributed graph system and method
US10108521B2 (en) * 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) * 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
CA2932763C (en) * 2013-12-05 2022-07-12 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US8811172B1 (en) 2014-04-10 2014-08-19 tw telecom holdings inc. Network path selection using bandwidth prediction
JP2017520032A (ja) 2014-04-17 2017-07-20 アビニシオ テクノロジー エルエルシー 処理環境の統合監視および制御
US9607073B2 (en) * 2014-04-17 2017-03-28 Ab Initio Technology Llc Processing data from multiple sources
US10705877B2 (en) 2014-05-29 2020-07-07 Ab Initio Technology Llc Workload automation and data lineage analysis
US9959301B2 (en) * 2014-07-25 2018-05-01 Cisco Technology, Inc. Distributing and processing streams over one or more networks for on-the-fly schema evolution
CA2962760C (en) * 2014-10-08 2022-07-19 Signalfx, Inc. Real-time reporting based on instrumentation of software
US9984105B2 (en) * 2014-12-04 2018-05-29 International Business Machines Corporation Automatic discovery of code and data stores that populate a user interface element
US10394692B2 (en) * 2015-01-29 2019-08-27 Signalfx, Inc. Real-time processing of data streams received from instrumented software
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
CN108475189B (zh) 2015-12-21 2021-07-09 起元技术有限责任公司 子图接口生成的方法、系统及计算机可读介质
US20190303263A1 (en) * 2018-03-30 2019-10-03 Kermin E. Fleming, JR. Apparatus, methods, and systems for integrated performance monitoring in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10929110B2 (en) 2019-06-15 2021-02-23 International Business Machines Corporation AI-assisted UX design evaluation
US11132403B2 (en) * 2019-09-06 2021-09-28 Digital Asset Capital, Inc. Graph-manipulation based domain-specific execution environment
US10990879B2 (en) 2019-09-06 2021-04-27 Digital Asset Capital, Inc. Graph expansion and outcome determination for graph-defined program states
US12086080B2 (en) 2020-09-26 2024-09-10 Intel Corporation Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits
US11567998B2 (en) * 2021-03-25 2023-01-31 Databricks, Inc. Dataflow graph processing
US11977580B2 (en) * 2021-11-30 2024-05-07 International Business Machines Corporation Partitioning and parallel loading of property graphs with constraints

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04109341A (ja) * 1990-08-30 1992-04-10 Hitachi Ltd 計算機システムの状態表示方法
JP2009537908A (ja) * 2006-05-16 2009-10-29 アビニシオ ソフトウェア エルエルシー グラフ型計算における計算リソースの管理法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475844A (en) 1992-11-27 1995-12-12 Nec Corporation Heavily loaded resource evaluation system
JP3079881B2 (ja) 1993-08-10 2000-08-21 三菱自動車工業株式会社 道路交通状況推定方法および車両運転特性制御方法
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US20070118839A1 (en) * 2005-10-24 2007-05-24 Viktors Berstis Method and apparatus for grid project modeling language
AU2009322602B2 (en) * 2008-12-02 2015-06-25 Ab Initio Technology Llc Mapping instances of a dataset within a data management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04109341A (ja) * 1990-08-30 1992-04-10 Hitachi Ltd 計算機システムの状態表示方法
JP2009537908A (ja) * 2006-05-16 2009-10-29 アビニシオ ソフトウェア エルエルシー グラフ型計算における計算リソースの管理法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022502799A (ja) * 2018-09-25 2022-01-11 アビニシオ テクノロジー エルエルシー 監査データを出力する際の回復性を実装するための専用監査ポート
JP7372977B2 (ja) 2018-09-25 2023-11-01 アビニシオ テクノロジー エルエルシー 監査データを出力する際の回復性を実装するための専用監査ポート

Also Published As

Publication number Publication date
WO2012027560A1 (en) 2012-03-01
CA2806236C (en) 2021-06-15
US9727438B2 (en) 2017-08-08
JP5878537B2 (ja) 2016-03-08
KR20130105604A (ko) 2013-09-25
CN103069394B (zh) 2016-06-22
AU2011293338B2 (en) 2015-08-20
CN103069394A (zh) 2013-04-24
EP2609507B1 (en) 2019-05-15
KR101809573B1 (ko) 2018-01-18
AU2011293338A1 (en) 2013-01-31
CA2806236A1 (en) 2012-03-01
EP2609507A1 (en) 2013-07-03
AU2011293338C1 (en) 2016-03-10
US20120054255A1 (en) 2012-03-01

Similar Documents

Publication Publication Date Title
JP5878537B2 (ja) データフローグラフの特性の評価
CN110050257B (zh) 可执行数据流图的差分
AU2021203955B2 (en) Dynamic component performance monitoring
JP6423803B2 (ja) キュー監視及び視覚化
KR20150074020A (ko) 데이터에 규칙 지정 및 적용
KR102284985B1 (ko) 동적 그래프 퍼포먼스 모니터링
US20160077828A1 (en) Logical grouping of profile data
CN113396395A (zh) 有效评估日志模式的方法
CN111367786B (zh) 一种符号执行方法、电子设备以及存储介质
Bevan et al. Identification of Software Instabilities.
US20090228261A1 (en) Method for characterizing a software application
Xie et al. PBScaler: A Bottleneck-aware Autoscaling Framework for Microservice-based Applications
Kunz HPC Job-Monitoring with SLURM, Prometheus and Grafana
Hammad et al. Provenance for business events
Sandoval Alcocer Horizontal profiling: A sampling technique to identify performance regressions

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140806

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150319

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150616

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150717

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150917

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160128

R150 Certificate of patent or registration of utility model

Ref document number: 5878537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250