JP6177179B2 - エラーハンドリングをもつトランザクションのグラフ型計算 - Google Patents

エラーハンドリングをもつトランザクションのグラフ型計算 Download PDF

Info

Publication number
JP6177179B2
JP6177179B2 JP2014077798A JP2014077798A JP6177179B2 JP 6177179 B2 JP6177179 B2 JP 6177179B2 JP 2014077798 A JP2014077798 A JP 2014077798A JP 2014077798 A JP2014077798 A JP 2014077798A JP 6177179 B2 JP6177179 B2 JP 6177179B2
Authority
JP
Japan
Prior art keywords
error
graph component
handling graph
work element
component
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.)
Active
Application number
JP2014077798A
Other languages
English (en)
Other versions
JP2014130647A (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 JP2014130647A publication Critical patent/JP2014130647A/ja
Application granted granted Critical
Publication of JP6177179B2 publication Critical patent/JP6177179B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Complex Calculations (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Description

本発明は、グラフ型計算の実行に関する。
複雑な計算は、有向グラフによるデータフローとして表せることが多く、計算成分はそのグラフの頂点と関係付けられ、成分間のデータフローはグラフのリンク(弧、辺)と対応付けられる。このようなグラフ型計算を実装するシステムは、米国特許第5,966,072号、名称「グラフとして表される計算の実行」に記載されている。グラフ型計算を実行する一手法は、グラフの異なる頂点とそれぞれが関係付けられる幾つかの処理を実行することと、グラフのリンクに従って処理間の通信経路を確立することである。例えば、通信経路は、TCP/IPまたはUNIXドメインソケット(UNIXは登録商標)を用いるか、または処理間でデータを渡すために共有メモリを用いることができる。
一態様では、概して、グラフ型計算を用いるトランザクションの処理方法は、一つ又は複数の計算グラフからなるセットのうちの一つの計算グラフの複数グラフ要素のうちの少なくとも一つが、所与のトランザクションに対して実行すべき計算を含むことを判定するステップと、上記所与のトランザクションを、それぞれのグラフ要素と関係付けられた再利用可能な計算要素を含む計算グラフのインスタンスと関係付けるステップと、そのグラフを実行して計算を行うステップとを含む。
各態様には以下の特徴のうちの一つ又は複数が含まれる。
計算グラフのセットのうちのグラフの少なくとも幾つかのインスタンスは、一つ又は複数の計算要素を共有する。
計算要素は、オペレーティングシステムの処理および処理スレッドのうちの少なくともいずれかにより実行される計算を含む。
グラフ要素は、計算グラフの頂点を含む。
トランザクションを計算グラフのインスタンスと関係付けるステップは、グラフ要素の実行を開始する前に、計算グラフ内の各グラフ要素と対応する計算要素を計算グラフのインスタンスに割り当てるステップを含む。
トランザクションを計算グラフのインスタンスと関係付けるステップは、既にインスタンスに割り当てられている計算要素を用いて別のグラフ要素を実行してから、計算グラフ内のグラフ要素と対応する計算要素を、計算グラフのインスタンスに割り当てるステップを含む。
グラフ要素内の少なくとも二つの要素が共通のリソースを使用し、グラフを実行して、計算を行うステップは、共通のリソースを用いるグラフ要素それぞれを単一の計算要素に割り当てるステップを含む。
単一の計算要素は、グラフ要素をその計算要素に割当てたとき、既に起動されている。
共通リソースは、データベースを含む。
共通リソースは、特定のポートを含む。
トランザクションを処理するステップは、トランザクションに対するリクエストを受け取るステップを含む。
本方法は、同一の計算グラフが第2のトランザクションで実行される計算と関係付けられると判定するステップと、第2のトランザクションを計算グラフの第2のインスタンスと関係付けるステップと、グラフの第2のインスタンスを実行して第2のトランザクションの計算を行うステップとをさらに含む。
計算グラフの各種インスタンスを用いて実行されるトランザクション計算は、時間インターリーブ法で実行される。
複数のトランザクションが同時処理される。
各トランザクションは、対応する計算グラフにより処理される一つ又は複数のワーク要素と関係付けられる。
少なくとも幾つかのトランザクションは、対応する計算グラフにより処理される一つのワーク要素とそれぞれ関係付けられる。
本方法は、少なくとも幾つかの計算グラフの多数のインスタンスを形成するステップをさらに含む。
本方法は、トランザクションのうちの一つの計算を実行するステップでエラーが発生したことを識別するステップと、トランザクションのうちの別の一つの計算を実行するステップを継続するステップとをさらに含む。
複数トランザクションのうちの第1トランザクションを処理するステップは第1の時間に開始され、複数トランザクションのうちの第2トランザクションを処理するステップは第1時間のあとの第2時間に開始され、本方法は、第2トランザクションの計算を実行するステップを完了させてから、第1トランザクションの計算を実行するステップを完了させるステップをさらに含む。
別の態様では、概して、グラフ型計算を用いてトランザクションを処理するシステムは、一つ又は複数の計算グラフからなるセットのうちの一つの計算グラフの複数のグラフ要素のうちの少なくとも一つが、トランザクションに対して実行すべき計算を含むことを判定する手段と、上記所与のトランザクションを、それぞれのグラフ要素と関係付けられた再利用可能な計算要素を含む計算グラフのインスタンスと関係付ける手段と、そのグラフを実行して計算を行う手段とを備える。
別の態様では、概して、コンピュータ読み取り可能な記録媒体が、グラフ型計算を用いてトランザクションを処理するコンピュータープログラムを格納する。コンピュータープログラムは、コンピューターシステムに、一つ又は複数の計算グラフからなるセットのうちの一つの計算グラフの複数のグラフ要素のうちの少なくとも一つが、所与のトランザクションに対して実行すべき計算を含むことを判定させる命令と、上記所与のトランザクションを、それぞれのグラフ要素と関係付けられた再利用可能な計算要素を含む計算グラフのインスタンスと関係付けさせる命令と、そのグラフを実行して計算を行わせる命令とを含む。
別の態様では、概して、グラフ型計算を処理するための方法は、頂点を結ぶリンクに従ってワーク要素を処理するグラフ成分を表す頂点を含むグラフ内で、エラー情報をグラフ外部の処理に提供するよう構成される少なくとも一つのエラーハンドリンググラフ成分を提供するステップと、処理中にエラーが発生したグラフ成分に応じて、少なくとも幾つかのワーク要素を、エラーハンドリング成分を表す頂点への少なくとも一つのリンクに従って、エラーハンドリング成分に導くステップを含む、エラーハンドリンググラフ成分に処理をリダイレクトするステップを含むデータを処理するステップとを含む。
各態様は以下の特徴のうちの一つ又は複数を含む。
エラーハンドリンググラフ成分に処理をリダイレクトするステップは、少なくとも一つの入力待ち行列からワーク要素を除去するステップを含む。
エラーハンドリンググラフ成分に処理をリダイレクトするステップは、エラーハンドリンググラフ成分に導かれたワーク要素を処理するステップを含む。
エラーハンドリンググラフ成分に導かれたワーク要素を処理するステップは、エラーが発生する前に作成されたデータベースに対して変更を元に戻すステップを含む。
データを処理するステップは、エラーを取り扱う際に含まれないグラフ成分に対して、これらのグラフ成分に導かれたワーク要素を破棄するステップを含む。
サブグラフが提供され、そのサブグラフは、エラーコードをサブグラフの出力として提供するよう構成されるエラーハンドリングサブグラフ成分を含む。
エラーがサブグラフで発生したことをサブグラフの出力が示す場合、処理はエラーハンドリンググラフ成分にリダイレクトされる。
エラーハンドリンググラフ成分に処理をリダイレクトするステップは、エラーが発生したグラフ成分からエラーハンドリンググラフ成分に、エラーが発生したときにグラフ成分が処理していたワーク要素を伝えるステップを含む。
ワーク要素は、エラーハンドリング成分を表す頂点へのリンクに従って伝えられる。
エラーハンドリンググラフ成分に処理をリダイレクトするステップは、エラーが発生したグラフ成分からエラーハンドリンググラフ成分に、エラーに関する報告情報を伝えるステップを含む。
報告情報は、エラーが発生したグラフ成分とエラーハンドリング成分との間の暗黙的な接続に従って伝えられる。
暗黙的な接続は、ユーザーリクエストに応えて、エラーが発生したグラフ成分を表す頂点と、エラーハンドリング成分を表す頂点との間の明示的なリンクとして明らかにされる。
エラーハンドリンググラフ成分を提供するステップは、複数のエラーハンドリンググラフ成分を提供するステップを含み、エラーハンドリンググラフ成分に処理をリダイレクトするステップは、エラーが発生したグラフ成分がもたらす出力に基づいてエラーハンドリンググラフ成分を選択するステップを含む。
データを処理するステップは、処理中にグラフ成分にエラーが発生すると、エラーを招いたワーク要素の識別を出力するステップも含む。
処理は、グラフの第1成分をイネーブルにするステップと、エラーハンドリング成分をディスエーブルにするステップと、エラーハンドリング成分以外の第1成分の下流の成分毎に、その成分のすぐ上流の成分がイネーブルにされた場合、その成分をイネーブルにするステップとを含む。
エラーハンドリング成分に処理をリダイレクトするステップは、イネーブルにされている各グラフ成分の実行を停止するステップと、エラーが発生した成分をディスエーブルにするステップと、エラーハンドリング成分をイネーブルにするステップと、エラーハンドリング成分の下流ではないエラー発生成分の下流の成分をディスエーブルにするステップと、エラーハンドリング成分の上流成分をイネーブルにするステップとを含む。
第1成分でエラーが発生した場合のエラーハンドリンググラフ成分に処理をリダイレクトするステップは、エラーが第1条件で発生した場合、処理フローを、第1成分から第1成分上流の第1エラーハンドリング成分に導くステップと、エラーが第2条件で発生した場合、処理フローを、第1成分から第1成分下流の第2エラーハンドリング成分に導くステップとを含む。
第1条件は、カウンタが限界値未満の場合である。
第2条件は、カウンタが限界値を超える場合である。
エラーハンドリンググラフ成分に処理をリダイレクトするステップは、一セットのグラフ成分をイネーブルにするステップも含み、そのセットはエラー発生以前に決定されている。
別の態様では、概して、グラフ型計算を処理するためのシステムは、頂点を結ぶリンクに従ってワーク要素を処理するグラフ成分を表す頂点を含むグラフ内で、エラー情報をグラフの外部の処理に提供するよう構成される少なくとも一つのエラーハンドリンググラフ成分を提供する手段と、処理中にエラーが発生したグラフ成分に応じて、少なくとも幾つかのワーク要素を、エラーハンドリング成分を表す頂点への少なくとも一つのリンクに従って、エラーハンドリング成分に導くステップを含む、エラーハンドリンググラフ成分に処理をリダイレクトするステップを含むデータを処理する手段とを備える。
別の態様では、概して、コンピュータ読み取り可能な記録媒体が、グラフ型計算を処理するコンピュータープログラムを格納する。コンピュータープログラムは、コンピューターシステムに、頂点を結ぶリンクに従ってワーク要素を処理するグラフ成分を表す頂点を含むグラフ内で、エラー情報をグラフの外部の処理に提供するよう構成される少なくとも一つのエラーハンドリンググラフ成分を提供させる命令と、処理中にエラーが発生したグラフ成分に応じて、少なくとも幾つかのワーク要素を、エラーハンドリング成分を表す頂点への少なくとも一つのリンクに従って、エラーハンドリング成分に導くステップを含む、エラーハンドリンググラフ成分に処理をリダイレクトするステップを含むデータを処理させるための命令とを含む。
本発明の他の特徴および利点は、以下の説明およびクレームから明らかである。
グラフ型計算のインスタンスを説明する図である。 ワークフローを処理するためのシステムの論理ブロック図である。 各ワークフローを処理するためのフロー図である。 エラーを取扱うためのフロー図である。 エラーハンドリンググラフの実施例である。 エラーハンドリンググラフの実施例である。 エラーハンドリンググラフの実施例である。 エラーハンドリンググラフの実施例である。
1.概観
本願は、2002年10月10日出願の米国特許出願第10/268,509号、発明の名称「グラフ型計算の起動および制御」、および特許出願第10/268,509号の継続出願である2007年4月10日出願の米国特許出願第11/733,579号、発明の名称「トランザクションのグラフ型計算」と関連している。いずれも引用して本明細書に組み込む。
(関連出願の相互参照)
本願は、引用して本明細書に組み込む、2007年6月26日出願の米国特許出願第60/952,075号の優先権を主張する。
以下に説明する本システムは、計算グラフの観点から定義される計算を実行するための方法を実装する。図1を参照すると、計算グラフ100の実施例には、一方向のリンク120により結ばれる幾つかの頂点110が含まれる。図1に示す実施例では、頂点110には1〜6の番号を付し、リンク120にも1〜6を付してある。計算グラフ100は、トランザクション処理システムと関係付けられる計算グラフに従って処理される個々のトランザクション等の、一連のワーク要素130から作成されるワークフローを処理する。トランザクションは、多数のワーク要素から構成することができる。各頂点は、全体の計算グラフが定義する計算の一部と関係付けられる。本実施例では、頂点1は、一つ又は複数のトランザクションと関係付けられる最初のシリーズのワーク要素130のための格納へのアクセスを提供し、そのシリーズを出力リンク1に渡す。それぞれの頂点と関係付けられる計算を実施する処理は、ワーク要素130を順に処理し、その頂点の一つ又は複数の出力リンクにワーク要素を生成するのが典型的である。
少なくとも一つのワーク要素が頂点入力のそれぞれに待ち行列を作ると、頂点の処理を実行する準備が整う。図1に説明するように、一つのワーク要素130がリンク1上を移動中で、一つのワーク要素が頂点3で処理されるのを待ち、二つのワーク要素が頂点4で処理されるのを待っている。従って、頂点3と頂点4の処理は、待ち行列のワーク要素の処理を実行する準備ができている。図示するように、頂点5には、その入力の一つリンク4に待ち行列を作るワーク要素があるが、リンク5の方の他の入力にはない。従って、頂点5と関係する処理は、実行準備が整っていない。
実施例によっては、ワークフローが多数のトランザクションからのワーク要素を含んでもよい(すなわち、第1トランザクションと対応する一つ又は複数のワーク要素からなる第1セット、第2トランザクションと対応する一つ又は複数のワーク要素からなる第2セット等)。トランザクションには、一つのアクションでも欠けると、どのアクションも実行すべきではないような、全てがセットとして処理されるアクションを表す一セットのワーク要素を含めることができる。グラフの多数のインスタンスを用いて多数のトランザクションを処理することができ、必要に応じて、再利用可能な計算要素(例えば、オペレーティングシステムの処理)をもつグラフ成分の計算を実施することにより、(計算グラフの頂点により表される)個々のグラフ成分の多数のインスタンスを創成することができる。様々なトランザクションをグラフの様々なインスタンス毎に関係付けることにより、多数のトランザクションを同時に処理することができる。詳細に後述するように、必要に応じて、多数の計算要素をグラフインスタンスに割当て可能とし、ある計算要素を一つのグラフインスタンスに利用させ、別のグラフインスタンスにも再利用させることにより、効率的なリソース共有を実現することができる。
図2を参照すると、計算グラフを実行してトランザクションを含むワークフローを処理するシステム200には、格納グラフデータ構造210が含まれる。これらのデータ構造には、グラフの頂点およびリンクの特性を含む計算グラフの仕様が含まれる。グラフ全体をロードしなくても、これらのデータ構造の各部分にアクセスすることができ、例えば、ワーク要素をそのグラフ成分の新規創成インスタンスに割当てるために、個々のグラフ成分の仕様をロードすることができる。
本システムのトランザクション申請モジュール220が、格納グラフデータ構造210に規定される対応する計算グラフを用いて、特定のワークフロー232を処理するコマンドを含むトランザクション申請グラフ成分(例えば、図1の頂点10により表される成分のような、必ずしもワーク要素を処理するとは限らないコマンドを提供する成分)からの制御入力222を受け取る。トランザクション申請モジュール220は、特定のトランザクションに割り当てられるべきグラフインスタンスをインスタンス化するために利用可能なグラフ計算処理リソース230を追跡する。トランザクション申請モジュール220には、グラフ計算処理リソース230を用いて、グラフインスタンスをインスタンス化する方法を決定するために、計算グラフの仕様を利用するスケジューラが含まれる。スケジューラは、多数の処理(または、処理の集積)から作成されるのが一般的であり、各処理は、グラフインスタンス内の所与のグラフ成分をインスタンス化する再利用可能な計算要素として機能する。グラフ成分の計算を行うために実行される処理は、データベースエンジン、データ格納装置、または計算グラフの頂点と関係付けられる処理の間にアクセスできる他のモジュールを含む、外部のデータおよび処理240を利用できる。実施例によっては、単一の処理または多数の様々な操作を実行できる一セットの処理が、グラフの所与のインスタンスにバインドされて、そのインスタンスの全ての操作を取り扱う。
実施例によっては、トランザクション申請モジュール220のスケジューラは、リモートプロシージャコール(RPC)処理を用いる。スケジューラは、所与のトランザクションに対するワーク要素を受け取ると、そのワーク要素をトランザクションと関係付けられる(すなわち、トランザクションに割り当てられる)グラフインスタンスの適切な成分に割り当てる。そのグラフインスタンスに割り当てられる処理は、その成分の計算を実行する。ワーク要素と関係付けられるデータは、グラフインスタンスに利用可能でその処理がアクセス可能な一時的な空間に書き込まれる。スケジューラは、トランザクション申請モジュール220がその成分により処理されると通知を受け、実行用のどれか下流グラフ成分をスケジュール化する。最終的に、トランザクションはグラフ全体を通じて進行し(グラフがグラフ計算処理リソース230を用いて実行されるのにつれて)、RPC発行処理を経て出力される。これは一時的な空間に蓄積されたデータを取り込み、それを適切な出力チャンネル、例えば、図1のデータベース出力6に収納する。RPC発行処理は、トランザクションを最初に受け取ったソケットにアクセスすることができるように、RPC申請処理と多重化することができる。
一般に、様々なトランザクションを同時に処理することができ、グラフの異なるインスタンスがそれぞれを処理する。システム200は、トランザクション申請モジュール220を介して、トランザクション毎に計算グラフのインスタンスに対するリソースを配置し、グラフ計算処理リソース230によりそれらの実行を制御してワークフローを処理する。
2.グラフデータ構造
システム200には、グラフ計算の迅速な起動、および限られたリソースの効率的な共有をもたらす幾つかの特徴が含まれる。
計算グラフのインスタンスによりトランザクションを処理する前に、トランザクション申請モジュール220は、機能的に共有されるメモリにそのグラフインスタンスに対するランタイムデータ構造を創成する。一実施の形態では、グラフインスタンスに対して全てのランタイムデータ構造を創成する単一の共有メモリセグメントが創成される。
トランザクションに結びつけられる一処理または複数の処理は、グラフの頂点と関係付けられ、これらの処理それぞれは、共有メモリセグメントをそのアドレス空間にマッピングする。この処理は、個々のトランザクションに対してグラフインスタンスが創成されると頂点と関係付けることができ、つまり、個々のグラフ成分のインスタンスが創成されるか、実行されるまで、頂点と関係付けることができない。この処理は、トランザクション処理中にグラフインスタンスに対するランタイムデータ構造から/にワーク要素を読み出し/書き込む。すなわち、グラフを貫流するトランザクションのデータは、共有メモリセグメント内のこれらのランタイムデータ構造を介して、成分から成分へ渡され、二つ以上の処理がトランザクションにバインドされている場合は、処理から処理へ渡される。所与のトランザクションに対するデータをグラフの各成分がアクセス可能なメモリ空間に収納し、かつ一貫した処理または一セットの処理により各成分を実行することにより、状態を成分間で共有することができる。とりわけ有利なのは、これにより、トランザクションの実行が成功したことを確認したあと、トランザクションの計算実行と関係付けられる全てのデータベース操作を一度に確定できることである。
3.処理プール
上述のように、グラフインスタンスの成分を実行するためのグラフ計算処理リソース230は、スケジューラが管理し、配置する処理プールを用いて実装することができる。幾つかの様々な計算形式ごとに、処理プールを創成してから、その計算形式を必要とするグラフ成分を用いてトランザクションのワークフロー処理を開始する。トランザクションがグラフインスタンスに割り当てられると、グラフインスタンスの所与の成分に対する計算を実行するのに特定の形式の計算が必要とされる場合、グラフインスタンスおよび所与の成分が使用するための処理プールのメンバーをスケジューラが配置する。そのトランザクションを処理する間は、処理プールのメンバーはそのグラフインスタンスと関係付けられたままであり、同じ形式の計算を必要とするグラフインスタンス内の他の成分に対して再利用することができる。この処理は、その形式の計算を必要とするそのトランザクションに対するグラフインスタンス内の最後の成分の上流にワーク要素が何もなくなると、プールに戻されて解放することができる。多数の様々な処理プールがあり、それぞれ対応する計算形式と関係付けられている。プール内の処理は、同一または異なるグラフインスタンス内の成分に対して使用することができ、例えば、様々なグラフインスタンス内の所与の成分形式に対する使用、および一つのグラフインスタンス内の多くの異なる成分に対する使用が含まれる。
実施例によっては、処理プール内の各処理は、処理プールを管理するトランザクション申請モジュール220が呼び出す、別々の処理(例えば、UNIXプロセス(UNIXは登録商標))である。モジュール220は、処理プール毎に別々のワーク待ち行列を維持する。ワーク待ち行列内の各エントリーは、処理が計算を実行すべきグラフインスタンスの特定の頂点を識別する。
幾つかの処理は、固定のリソースを予約、または消費する。この処理の実施例は、オラクル(R)データベース等のデータベースへ接続するものである。リソースは、各データベース接続を形成し、維持することにより消費されるので、そのようなアクティブな処理の数を制限することが望ましい。グラフがデータベースにアクセスする多数の成分を含む場合、所与のトランザクションに対する全てのデータベース操作が単一のデータベース処理で行われることが望ましい。そのために、それぞれがデータベースへの接続を維持し、それぞれが所与のグラフインスタンスが要求するデータベース関数を実行できる一セットの処理を構築してもよい。グラフインスタンスを所与のトランザクションに割り当てる場合、上記のように、そのセットからの一つの処理をトランザクション全体に対するそのグラフインスタンスに割り当て、全てのデータベース成分をその処理に多重化する。頂点がトランザクションのワーク要素を処理するためにデータベースにアクセスするための処理を要求する場合、割り当てられた処理(データベースとの接続は既に確立している)は、その頂点と関係付けられる。こうして、そのデータベースへの接続を要求したであろうその処理の初期化ステップのオーバーヘッドが回避され、所与のトランザクションに対する全てのデータベースアクションが同一処理により取り扱われる。他の形式の処理も同一の方法で取り扱うことができる。
システム200は、頂点に対する処理を構成する異なる手法をサポートし、それら手法は、頂点が処理と関係付けられる場合と、頂点の計算が初期化される場合とでは異なる。一形式の構成では、処理は、その全入力ワーク要素で全データが完全に利用可能となるまで、頂点と関係付けられない。ワーク要素が大きい場合、ワーク要素全体が、上流の頂点により計算され、利用可能となるのにある時間が必要なことがある。この形式の構成は、入力が利用可能となるのを待つ処理の中断を防ぐので、そのグラフインスタンス内の他の頂点がそれを使用できるようになる。
別の形式の構成ではストリームモードを使用する。処理は頂点と関係付けられ、少なくとも各入力の開始が可能な場合、初期化される。その各入力の残りは処理が実行されている間、利用可能となる。その入力が十分速く利用可能となる場合、処理は入力待機を中断させない。しかし、入力が利用可能とならない場合は、処理は入力待機を中断させる。
4.計算制御
図3Aは、それぞれのグラフインスタンスを用いて各トランザクションを処理するための処理300のフロー図である。トランザクション申請モジュール220(図2)がトランザクションを処理するようリクエストを受け付けると、どの計算グラフ(および対応する形式)がそのトランザクションを処理するのに適切であるかを最初に決定する(ステップ305)。例えば、スケジューラは、そのトランザクションの計算を実行するのに特定の計算グラフが適切である(例えば、適切な成分を含む)と決定する。トランザクション自体がこれを指定してもよく、またはトランザクション申請モジュール220が、特定トランザクション形式を特定計算グラフと関係付けるデータへのアクセスを含むか、またはそのデータを有する。次いで、トランザクション申請モジュール220は、そのトランザクションを処理するのに必要な形式の計算グラフのグラフインスタンス(必要な場合)を創成して(ステップ310)、そのトランザクションをグラフインスタンスに関係付ける。この処理の一部として、トランザクション申請モジュール220は、グラフインスタンスのランタイムデータ構造のために共有メモリセグメントの一部を割り当て、その形式の計算グラフのグラフテンプレートをランタイムデータ構造にコピーし、それによりランタイムデータ構造を初期化する。グラフテンプレート使用の実施例は、引用して本明細書に組み込む、米国特許第7,167,850号に詳細に記載されている。実施例によっては、グラフインスタンスは既に創成され、この段階では一つが本トランザクションに割り当てられているにすぎない。次いで、トランザクション申請モジュール220が、詳細に後述するように、スケジューラの管理のもとでグラフインスタンスを実行する(ステップ320)。グラフインスタンスには、再利用可能な各成分と関係付けられる(割当てられる)計算要素(例えば、処理)が含まれる。トランザクションのワークフロー全体が処理されると、トランザクション申請モジュール220は、グラフの実行結果を確定し(例えば出力データベースに変化を収納し)、割り当てられたリソースおよび計算要素をオプションで解放し、グラフインスタンスのランタイムデータ構造を削除するので、共有メモリセグメントのその一部を他のグラフインスタンスで再利用できるようになる(ステップ330)。
5.代替法
上記のように、グラフプールを要求するトランザクションが存在すると予測して、既にインスタンス化された計算グラフのインスタンスのグラフプールを予め創成することが可能である。グラフインスタンスを必要とするトランザクションを受け取ったとき、その一つがグラフプールから利用可能である場合、創成すべきというよりプールから割り当てられる。これで、トランザクションの起動コストがさらに減少する。トランザクションの計算が完了したとき、グラフは、変数をトランザクションに割り当てられる前の初期値に戻し、全ての動的に割り当てられたメモリを解放することにより、リセットされる。グラフインスタンスはリセットされたあとプールに戻される。
実施例によっては、グラフプール内のグラフインスタンスの数を必要に応じて増やすことができる。例えば、各グラフのインスタンス数を最小にしておいて、必要に応じてより多く創成してもよい。
上記のように、グラフ内の頂点にオンデマンド方式で処理を割り当てることができる。その場合、特定のグラフインスタンスおよびトランザクションに処理がバインドされていても、その頂点への全ての入力が利用可能になるまで、その処理は頂点と関係付けられない。別の手法は、トランザクションがグラフインスタンスと関係付けられると、処理を頂点に関係付け、トランザクションの全ワークフローが処理されてしまうまでその関係を維持するという手法である。
6.応用
上記形式の計算グラフの一つの応用は、銀行業務における金融取引の処理である。一般に、異なるトランザクション形式には異なる計算グラフ形式が必要である。典型的な計算グラフは、顧客トランザクションの形式と、そのトランザクションを処理するのに必要な「バックエンド」サービスとの何らかの組合せと関係付けられる。例えば、トランザクションは、ATMリクエスト、銀行窓口入力、およびコンピュータ間やウェブサーバ間のB2Bトランザクションとすることができる。異なる顧客は異なるバックエンドシステムをもつことがあり、特に、銀行が合併し、元の様々な銀行から顧客が混ざり合う場合である。彼ら顧客の口座は、彼ら全員が承継銀行の顧客であっても、全く異なるバックエンドシステムで維持することができる。従って、グラフ内の異なる頂点を用いて異なるトランザクションを処理することができる。様々なサービスをグラフ内の頂点と関係付けることができる。例えば、幾つかの頂点は、残高を更新する、口座に預金する、または資金が口座にホールドされるように口座ホールドを実行する等の機能と関係付けることができる。実施例によっては、頂点に処理をリアルタイムで割り当てると、未使用の頂点に対する処理をアイドル状態にしておくオーバーヘッドを避けることができる。
トランザクション毎を基準にグラフインスタンスを配置する利点は、データストリームの並列化が可能になるということにあり、でなければ直列処理しなければならなくなる。異なるトランザクションに割り当てられるグラフインスタンスは、例えば、第1トランザクションが第2トランザクションよりずっと複雑であった場合、開始したときと異なる順序で終了してもよい。これにより、直列システムがまだ第1トランザクションを処理していたとしても、第2グラフインスタンスを解放し、利用可能として、第三トランザクションを処理することができる。
7.エラーハンドリング
トランザクション毎を基準にグラフインスタンスを配置する利点は、グラフインスタンスを実行する際のエラーによる障害をそのトランザクションに封じ込めることができ、並行して行われる他のグラフインスタンスの処理に悪影響を与えないという点にある。トランザクション全体が完了するまで計算グラフの結果を確定するのを遅らせることにより、エラーが発生したときに、本システムがトランザクションの処理を開始する前の状態にまで、データをロールバックすることができる。エラーは幾つかの方法で取り扱うことができる。
実施例によっては、「エラーハンドリング」成分がグラフ内に含まれている。エラーハンドリング成分は、グラフに対して実行しなくてもよいという意味で特別な成分である。どれかの頂点で成分にエラーが発生した場合、計算全体を中途終了させる代わりに、グラフの実行をエラーハンドリング成分にリダイレクトする。所与の成分とエラーハンドリング成分(成分の出力ポートからエラーハンドリング成分の入力ポートまでのワークフローを含む)との間の明示的な関連性は、例外フローと呼ばれる。スケジューラは、グラフインスタンスから障害のある計算の一部であったワーク要素を削除し、エラーハンドリング成分は、それを呼び出した処理に対する出力としてグラフがエラーメッセージを提供するのに利用できる出力を提供する。エラーハンドリング成分は、実施例によっては、例外フローを通じての他にデータ入力を受けることができる。
図3Bに、グラフを実行し、グラフ内で発生するエラーを取り扱うための例示の手順350のフロー図を示す。スケジューラは、リンクに従ってグラフ成分内のワーク要素のワークフローを処理する(ステップ360)。グラフ成分内でエラーが発生したことをスケジューラが認識すると(ステップ370)、スケジューラは、エラーハンドリング成分に処理をリダイレクトする。このリダイレクトの一態様は、エラーハンドリング成分への何らかの例外フローに従って、エラーハンドリング成分にワーク要素を導く(ステップ380)ことである。詳細に後述するように、例外フロー処理により、エラーハンドリング成分は、エラーが発生したトランザクションの処理を開始する前のグラフ処理の状態を表すエラー情報をグラフ外部の処理に提供できる(ステップ390)。
グラフ内のどの成分にも指定のエラーハンドリング成分がある。これは例外フロー出力、もしくは別のグラフ成分からの他のエラーデータ出力を直接受ける成分でもよく、または例外フローを受けるかどうかにかかわらず一セットの成分に対して指定されたエラーハンドリング成分として定義してもよい。実施例によっては、例外フローは図4A、図4Bに示すように取り扱われる。本実施例では、グラフはトランザクション計算を実行するために設計され、申請成分902および発行成分904が示されているが、同一の技法は非トランザクションのワークフローに対するグラフ内で使用することができる。図4Aは、スケジューラがグラフ900をアクティブにしたところである。最初の成分である申請902で開始すると、下流のどの非例外パスの各成分も「イネーブル」と記されている。例外パスは、例外(例えば、上記のようなエラーハンドリング成分に導く例外フロー)の場合に、ワーク要素のフローまたは他のエラーデータを受け取るだけのパスである。これはイネーブル伝搬と呼ばれる。他の下流の所与の成分は、その入力のどれかがイネーブルの上流成分に接続する場合、イネーブルにされる。すなわち、複製906、再フォーマット908、ウェブサービス呼び出し910、ロールアップ912、融合914、および発行904は全てイネーブルであるが、エラーハンドラ916および二つの下流成分、ロールバック918およびエラーログ920は、どのイネーブル成分からの非例外入力フローも受け取らず、「ディスエーブル」のままである。
エラーが発生した場合、スケジューラは、エラー発生成分の実行を停止して、既に実行している他のどの成分も終了させることができ、何らかの関連データ(例えば、完了した成分の例外フロー出力、またはエラー発生成分の「エラー報告出力」)をエラーハンドリング成分に伝搬する。例えば、ウェブサービス呼び出し成分910がエラーをトリガーした場合、複製成分906からの例外フロー、およびウェブサービス呼び出し成分910のリジェクトポート921からのエラー報告出力が、それぞれ入力922、924でエラーハンドリング成分916に入力される。エラー報告出力ポート(グラフ900内の成分の幾つかの底部にポートとして示す)を用いて、例えば、どんなエラーが発生したのか、そのエラーがどこで発生したのかを特徴付ける情報を含む発生エラーに関する情報、およびそのエラーと関係付けられるリジェクトされるワーク要素に関する情報を提供することができる。
本実施例では、複製成分906に三つのエラー報告出力ポートがある。リジェクトポート921は、エラーの原因となったかもしれないワーク要素、またはエラーと何らかの関連をもつワーク要素を提供する。エラーポート923は、エラーについての関連情報を説明するエラーメッセージを提供する。ログポート925は、エラーが発生したログ情報を提供する。ログポート925は、エラーが発生していなくても、通常の実行過程中のイベントに関するログ情報を提供することもできる。本実施例では、リジェクトポート921は、このポートを使用する必要がある成分(例えば、ウェブサービス呼び出し成分910)に接続されるとして明示的に示している。但し、エラーポート923およびログポート925は、接続を明示的に示さず、エラーハンドリング成分916に暗黙的に接続している。例えば、そのポートは、開発者が接続してインターフェース操作を用いて隠すことができる。実施例によっては、本システムは、既定のエラーハンドリング成分への暗黙的な接続を自動的に決定することができ、次いで、開発者がそれに上書きしてもよい。大規模なおよび/または複雑なグラフでは、エラー報告ポートの一つ又は複数の形式に対するこの「暗黙的な配線」は、グラフ型プログラミングの利点の一つである開発者によるグラフの視覚的理解を深める。実施例によっては、ポートが別の成分のポートに暗黙的に接続されていることを示すために視覚的キューを設けることができる(例えば、アイコンまたは陰影を付けたり色を付けたりしたポート)。隠された暗黙的なワークフロー接続の一部または全てを、ユーザーリクエストに応じて明示的なリンクとして明らかにすることもできる(例えば、ボタンのクリックまたはポート上へのマウスポインターの移動)。
エラーが発生する前に複製が操作を終了させている場合、複製成分906からの例外フロー出力は入力922で既に待ち行列に入っている。次いで、スケジューラは、エラーハンドリング成分(本実施例では916)をイネーブルにし、エラー発生成分(本実施例では910)をディスエーブルにし、エラーハンドリング成分からイネーブル伝搬を実行する(本実施例では918、904、920をイネーブルにする)。ディスエーブルにしたエラー発生成分の下流のどの成分も、その成分がエラーハンドリング成分下流のイネーブル化した成分からのフローを受け取らない限り、ディスエーブルにする(本実施例では912、914をディスエーブルにする)。最後に、イネーブルにした成分へフローを提供する残りの成分はどれもイネーブルにする(本実施例では906および902をイネーブルにする)。
このように、本手順の結果を、図4B内で「イネーブル化」、「ディスエーブル化」成分という表示により示す。発行成分904をエラーハンドラ916の後のフローの中に遡って接続することにより、出力にエラーメッセージを伴っているものの、トランザクションを完了させることができる。ディスエーブルにしたばかりの成分に既に伝搬してしまったデータ、例えば、再フォーマット成分908からの出力は破棄する。
上記のように、データは、例外フローの一部として、または別の成分のエラー報告出力の一部としてエラーハンドリング成分に流れる。エラー発生の前に利用可能なデータ、例えば、図4Bの複製モジュール906からの出力データは、実際に必要ならエラーハンドラ916の入力待ち行列にエスクローとしてそのときまで保持される。エラーがないままグラフが完了した場合、エラーハンドラ916がアクティブになることはなく、そのデータは破棄される。エラーが発生した場合、エラーハンドラ916は、受け取ったどんな入力データも利用して応答を作成する。実施例によっては、図4Bに示すように、ロールバック成分918が使用される。複製成分906からの入力データは、エラーハンドラ916に、グラフがトランザクション処理を開始する前の事物の状態がどうであったかを伝える。エラーハンドラ916は、これをロールバック成分918に出力して、ロールバック成分918は、他の成分が修正したあらゆるデータをトランザクション実行以前の状態に復元するのにそれを用いる。次いで、実行フローは、エラーを記録するエラーログ920に向かうと同時に、エラーを報告できるように、かつグラフ900にそれを配送したどの高次処理でも適切に取り扱えるように、発行成分904に向かう。任意の成分からのエラーハンドラ916までの例外フローにはデータも含まれる。エラーハンドラ916に、ウェブサービス呼び出し成分910からのエラー出力、またはどれか他の成分(不図示)からの例外フロー等の、複製成分906からの元データ以外の入力がある場合、これを用いて、エラーログまたは発行成分のどちらかで、より詳細なエラーメッセージを作成することができる。
実施例によっては図5に示すように、グラフはサブグラフ、例えばサブグラフ950として実装される頂点を含み、それぞれの頂点は、それ自体のエラーハンドリング成分952をもつことができる。従って、下位の「グラフレベル」にサブグラフである頂点を有するトップレベルグラフ等を有するサブグラフの階層が存在し得る。サブグラフ950の成分954、956,958、960、962のどれかにエラーが発生した場合、処理フローは、サブグラフエラー報告ポート974にエラー報告出力を提供するエラーハンドリング成分952にルーティングされる。エラーハンドリング成分952のスコープはサブグラフ950である。エラーハンドリング成分は、別のグラフ要素(例えば、要素954)からの例外フローか、または別のグラフ要素(例えば、要素958)のエラー出力959からの出力を受け取る入力966、968を有してもよく、それら別のグラフ要素自体がネストされたサブグラフであってもよい。実施例によっては、エラーハンドリング成分が多くの入力を有する場合、最新のデータを受け取った入力だけが使用される。サブグラフ950の全成分が首尾よく動作を完了した場合、出力(ワークフロー)は、通常のサブグラフ出力ポート970に配送され、サブグラフ950の域を超える処理フローは通常通りに継続される。エラーが発生した場合、エラーフロー出力972上でエラーを取り扱い、報告することができる。他の実施例では、標準の出力970上でエラーを報告することもできる。
サブグラフがエラーハンドリングを持たない場合、そのエラーは、エラーハンドリングをもつグラフレベルに達するまで、そのサブグラフが属するサブグラフ階層内の上方に流れ、そのポイントでそのレベルのエラーハンドリング成分がアクティブ化される。
エラーハンドリング成分の入力でエスクローされたデータは、ワークフローのサブセットでもよく、トランザクションと関係付けられる全てのデータでもよく、またはデータフロー全体とすることもできる。エラーハンドリング成分がエラー出力ポートをもつ場合、そのポートは、エラーの原因となったレコード、またはエスクローされたデータもしくはエラーを生じた成分から受け取った入力に基づく他のエラー情報を出力する。そのようなポートをもたない場合、その出力ポート上の通常出力として原因レコードを出力するだけでよい。
サブグラフがエラーハンドリングをもたない場合、その成分内のエラーは、エラーハンドリングをもつグラフレベルに達するまで、そのサブグラフが属するサブグラフ階層内の上方に流れ、そのポイントでそのレベルのエラーハンドリング成分が適切な入力を受け取り、適切なエラー出力を生成する。
エラーハンドリングにより、グラフ型計算処理で通常は回避される循環グラフ編成が可能になる。例えば、図6に示すように、グラフ1100内で、エラーハンドラ1104の下流の計算成分1112からのエラー出力1116は、同一のエラーハンドラ1104に戻って流れる。エラーハンドラ1104は申請成分1102からの入力も受け取り、図4Aのように、ロールバック成分1106に出力を提供する。ロールバック1106は、申請成分1102によるエラーハンドラ1104へのデータ入力に基づいて、障害を起こした計算を試みる前の状態にデータを戻す。カウンタ成分1108は、ロールバック成分1106からフローを受け取り、集結成分1110にフローを戻す前にその値をインクリメントする。計算成分1112は、幾つかの異なる方法で、カウンタ成分1108から入力された値を用いることができる。計算成分は、計算を実行する前にその値を参照して、例えば、その操作について何らかの変更をすべきかどうかを調べることができる。エラーの後にカウンタを参照して、しきい値回数の試行がなされたかどうかを調べることもできる。しきい値を越えた場合、エラー出力を再度出力1116を通じてエラーハンドラ1104に戻す代わりに、第2エラーハンドラ1120に至る第2エラー出力1118にその出力を導く。カウンタ成分を用いない場合、何らかの他の技法を用いて循環を絶ち、最終的にグラフを確実に完了させる。
循環グラフの定義を確実にするために、エラーの状態でイネーブルにされる要素のセットを、上記のように必要に応じてではなく、グラフのトポロジーに基づいて予め決定しておく。
実施例によっては、他の規則を用いてエラーハンドリングが正しく機能するのを確実にする。例えば、実施例によっては、エラーハンドリングをグラフ内の一成分の例外ポートでトリガーするだけでよい(同時エラーはどれも無視してよい)。グラフ成分またはサブグラフをエラーハンドリング成分にリンクする場合、どのエラーに対してもその成分を使用しなければならない。グラフ成分またはサブグラフをエラーハンドリング成分にリンクしない場合、現在のスコープに対する一般的なエラーハンドラによりエラーを取り扱わなければならない。各グラフ成分は、正確に一つのエラーハンドラと関係付けられるのが典型的である。これらの規則は、本システムの要件に応じて修正または組合せてもよい。これらの規則は、トランザクション毎の処理に厳しい管理が必要な場合に有益である。
実施例によっては、エラーが発生した場合、オペレーティングシステムは、どのエラーハンドリング成分をエラーが現れた成分と関係付けるかを決定し、次いで、そのエラーハンドリング成分に、もしあるなら、どの入力フローを使用すべきかを決定する。多数の入力がある場合は、書き込まれた最新データをもつものを使用する。
上記のように、成分またはサブグラフがそれら自体のエラーを取り扱い、他の成分が使用してエラー診断またはエラーに対処できるエラーコードを生成する場合、エラーハンドリングはアクティブでもよく、そうでない場合はパッシブとすることもできる。パッシブシステムでは、エラーに遭遇したグラフは単に停止するだけであり、オペレーティングシステムにエラーハンドリングを提供させることができ、例えば、デバッグ処理にスタックダンプを提供することによる。
グラフの各成分はスケジューラに暗黙的に接続されているが、スケジューラに対するグラフからの介入およびエラー取り扱いの特別な要請は不要である。スケジューラは、グラフインスタンスからのエラーに関連するデータを削除することができ、実施例によってはエラーの性質を知る必要がない。場合によっては、スケジューラは、グラフに割り当てたリソースを各段階のそれぞれのプールに戻すことができので、エラーに影響されなかったワーク要素の処理をグラフに完了させることができる。
8.実装
本発明は、ハードウエアもしくはソフトウエア、または両者の組合せ(例えば、プログラマブルロジックアレイ)に実装することができる。特に規定しない限り、上記アルゴリズムは、本質的に特定のコンピュータまたは他の装置と関連していない。特に、各種汎用マシンを、本明細書の教示に従って書かれたプログラムとともに用いることができ、またはさらに特別な装置(例えば、集積回路)を構築して特定の機能を実行すると一層便利になる。従って、本発明は、一つ又は複数のプログラムされるか、またはプログラマブルのコンピューターシステム(分散型、クライアント/サーバ、またはグリッド型のような各種アーキテクチャで構成できる)上で実行する一つ又は複数のコンピュータープログラム内に実装することができ、そのコンピューターシステムはそれぞれ、少なくとも一つのプロセッサと、少なくとも一つのデータ格納システム(揮発性または不揮発性メモリおよび/または格納素子を含む)と、少なくとも一つの入力装置またはポートと、少なくとも一つの出力装置またはポートとを備える。プログラムコードを入力データに適用して、本明細書で説明した機能を実行し、出力情報を生成する。出力情報は、周知の方式で一つ又は複数の出力装置に適用される。
このようなプログラムはそれぞれ、任意の所望するコンピュータ言語(機械語、アセンブラ、または高水準プロシージャ、論理式、またはオブジェクト指向プログラミング言語を含む)で実装して、コンピューターシステムと通信することができる。どの場合も、言語はコンパイラ言語またはインタプリタ言語とすることができる。
このような各コンピュータープログラムは、汎用または専用のプログラマブルコンピュータ読み取り可能な記録媒体または記録装置(例えば、固体メモリもしくは媒体、または磁気式もしくは光学式媒体)に格納するか、ダウンロードして、コンピューターシステムが記録媒体または記録装置を読み取って本明細書で説明した手順を実行する際に、コンピュータを構成し、操作するのが好ましい。本発明のシステムは、コンピュータープログラムにより構成されるコンピュータ読み取り可能な記録媒体としての実装を考慮することもでき、そのように構成された記録媒体により、コンピューターシステムを特定の、かつ所定の方法で操作して、本明細書で説明した機能を実行することができる。
言うまでもなく、これまでの記述は、説明を目的としたものであり、付帯のクレームの範囲で定義される本発明の範囲を限定する意図はない。他の実施の形態は、以下のクレームの範囲内にある。

Claims (62)

  1. グラフ型計算を処理するための方法であって、頂点を結ぶリンクに従ってワーク要素を処理するワーク要素ハンドリンググラフ成分を表す前記頂点を含む計算グラフ内で、
    前記計算グラフ内の少なくとも一つのエラーハンドリンググラフ成分であって、該少なくとも1つのエラーハンドリンググラフ成分は、前記ワーク要素ハンドリンググラフ成分と異なり、エラー情報を前記計算グラフの外部の処理に提供するよう構成される、少なくとも1つのエラーハンドリンググラフ成分を提供するステップと、
    処理中にエラーが発生したワーク要素ハンドリンググラフ成分に応じて、処理を前記エラーハンドリンググラフ成分にリダイレクトすることを含むデータを処理するステップと、
    1つ以上の前記ワーク要素ハンドリンググラフ成分から、少なくとも幾つかの前記ワーク要素を、前記エラーハンドリンググラフ成分を表す頂点への少なくとも一つのリンクに従って、前記エラーハンドリンググラフ成分に導くステップを含む、方法。
  2. 前記エラーハンドリンググラフ成分に処理をリダイレクトするステップは、少なくとも一つのグラフ成分の入力待ち行列からワーク要素を除去するステップを含む請求項1の方法。
  3. 前記エラーハンドリンググラフ成分に処理をリダイレクトするステップは、前記エラーハンドリンググラフ成分に導かれた前記ワーク要素を処理するステップを含む請求項1の方法。
  4. 前記エラーハンドリンググラフ成分に導かれた前記ワーク要素を処理するステップは、前記エラーが発生する前に作成されたデータベースに対して変更を元に戻すステップを含む請求項3の方法。
  5. 前記データを処理するステップは、前記エラーを取り扱う際に含まれないワーク要素ハンドリンググラフ成分に対して、これらのワーク要素ハンドリンググラフ成分に導かれたワーク要素を破棄するステップを含む請求項3の方法。
  6. サブグラフを提供するステップをさらに含み、
    前記サブグラフは、エラーコードを前記サブグラフの出力として提供するよう構成されるエラーハンドリングサブグラフ成分を含む請求項1の方法。
  7. エラーが前記サブグラフで発生したことを前記サブグラフの出力が示す場合、処理は前記エラーハンドリンググラフ成分にリダイレクトされる請求項6の方法。
  8. 前記エラーハンドリンググラフ成分に処理をリダイレクトするステップは、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分から、前記エラーハンドリンググラフ成分に、前記エラーが発生したときに前記ワーク要素ハンドリンググラフ成分が処理していたワーク要素を伝えるステップを含む請求項1の方法。
  9. 前記ワーク要素は、前記エラーハンドリンググラフ成分を表す前記頂点への前記リンクに従って伝えられる請求項8の方法。
  10. 前記エラーハンドリンググラフ成分に処理をリダイレクトするステップは、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分から、前記エラーハンドリンググラフ成分に、前記エラーに関する報告情報を伝えるステップを含む請求項8の方法。
  11. 前記報告情報は、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分と前記エラーハンドリンググラフ成分との間の暗黙的な接続に従って伝えられる請求項10の方法。
  12. ユーザーリクエストに応えて、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分を表す頂点と、前記エラーハンドリンググラフ成分を表す頂点との間の明示的なリンクとして前記暗黙的な接続を明らかにするステップをさらに含む請求項11の方法。
  13. 前記エラーハンドリンググラフ成分を提供するステップは、複数のエラーハンドリンググラフ成分を提供するステップを含み、
    前記エラーハンドリンググラフ成分に処理をリダイレクトするステップは、前記エラーが発生したワーク要素ハンドリンググラフ成分がもたらす出力に基づいてエラーハンドリンググラフ成分を選択するステップを含む請求項1の方法。
  14. 前記データを処理するステップは、処理中にワーク要素ハンドリンググラフ成分にエラーが発生すると、前記エラーを招いたワーク要素の識別を出力するステップを含む請求項1の方法。
  15. 処理は、
    前記計算グラフの第1ワーク要素ハンドリンググラフ成分をイネーブルにするステップと、
    前記エラーハンドリンググラフ成分をディスエーブルにするステップと、
    前記エラーハンドリンググラフ成分以外の前記第1ワーク要素ハンドリンググラフ成分の下流のワーク要素ハンドリンググラフ成分毎に、前記ワーク要素ハンドリンググラフ成分のすぐ上流の第1ワーク要素ハンドリンググラフ成分がイネーブルにされた場合、前記ワーク要素ハンドリンググラフ成分をイネーブルにするステップとを含む請求項1の方法。
  16. 前記エラーハンドリンググラフ成分に処理をリダイレクトするステップは、
    イネーブルにされている各ワーク要素ハンドリンググラフ成分の実行を停止するステップと、
    前記エラーが発生したワーク要素ハンドリンググラフ成分をディスエーブルにするステップと、
    前記エラーハンドリンググラフ成分をイネーブルにするステップと、
    前記エラーハンドリンググラフ成分の下流ではない前記エラーが発生したワーク要素ハンドリンググラフ成分の下流のワーク要素ハンドリンググラフ成分をディスエーブルにするステップと、
    前記エラーハンドリンググラフ成分の上流のワーク要素ハンドリンググラフ成分をイネーブルにするステップとを含む請求項15の方法。
  17. 第1ワーク要素ハンドリンググラフ成分で前記エラーが発生した場合の前記エラーハンドリンググラフ成分に処理をリダイレクトするステップは、
    前記エラーが第1条件で発生した場合、処理フローを前記第1ワーク要素ハンドリンググラフ成分から前記第1ワーク要素ハンドリンググラフ成分上流の第1エラーハンドリンググラフ成分に導くステップと、
    前記エラーが第2条件で発生した場合、処理フローを前記第1ワーク要素ハンドリンググラフ成分から前記第1ワーク要素ハンドリンググラフ成分下流の第2エラーハンドリンググラフ成分に導くステップとを含む請求項1の方法。
  18. 前記第1条件は、カウンタが限界値未満の場合である請求項17の方法。
  19. 前記第2条件は、カウンタが限界値を超える場合である請求項17の方法。
  20. 前記エラーハンドリンググラフ成分に処理をリダイレクトするステップは、前記エラー発生以前に決定されている一セットのエラーハンドリンググラフ成分をイネーブルにするステップも含む請求項17の方法。
  21. グラフ型計算を処理するためのシステムであって、
    頂点を結ぶリンクに従ってワーク要素を処理するワーク要素ハンドリンググラフ成分を表す頂点を含む計算グラフ内で、
    前記計算グラフ内の少なくとも一つのエラーハンドリンググラフ成分であって、該少なくとも1つのエラーハンドリンググラフ成分は、前記ワーク要素ハンドリンググラフ成分と異なり、エラー情報を前記計算グラフの外部の処理に提供するよう構成される、少なくとも1つのエラーハンドリンググラフ成分を提供する手段と、
    処理中にエラーが発生したワーク要素ハンドリンググラフ成分に応じて、処理を前記エラーハンドリンググラフ成分にリダイレクトすることを含むデータを処理する手段と、
    1つ以上の前記ワーク要素ハンドリンググラフ成分から、少なくとも幾つかの前記ワーク要素を、前記エラーハンドリンググラフ成分を表す頂点への少なくとも一つのリンクに従って、前記エラーハンドリンググラフ成分に導く手段とを備えるシステム。
  22. グラフ型計算を処理するコンピュータープログラムを格納するコンピュータ読み取り可能な記録媒体であって、前記コンピュータープログラムは、コンピューターシステムに、
    頂点を結ぶリンクに従ってワーク要素を処理するワーク要素ハンドリンググラフ成分を表す前記頂点を含む計算グラフ内で、
    前記計算グラフ内の少なくとも一つのエラーハンドリンググラフ成分であって、該少なくとも1つのエラーハンドリンググラフ成分は、前記ワーク要素ハンドリンググラフ成分と異なり、エラー情報を前記計算グラフの外部の処理に提供するよう構成される、少なくとも一つのエラーハンドリンググラフ成分を提供させる命令と、
    処理中にエラーが発生したワーク要素ハンドリンググラフ成分に応じて、処理を前記エラーハンドリンググラフ成分にリダイレクトすることを含むデータを処理させる命令と、
    1つ以上の前記ワーク要素ハンドリンググラフ成分から、少なくとも幾つかの前記ワーク要素を、前記エラーハンドリンググラフ成分を表す頂点への少なくとも一つのリンクに従って、前記エラーハンドリンググラフ成分に導かせる命令とを含むコンピュータ読み取り可能な記録媒体。
  23. グラフ型計算を処理するコンピューティングシステムであって、
    少なくとも1つのプロセッサが、
    頂点を結ぶリンクに従ってワーク要素を処理するワーク要素ハンドリンググラフ成分を表す前記頂点を含む計算グラフ内で、
    前記計算グラフ内の少なくとも1つのエラーハンドリンググラフ成分であって、該少なくとも1つのエラーハンドリンググラフ成分は、前記ワーク要素ハンドリンググラフ成分と異なり、エラー情報を前記計算グラフの外部の処理に提供するように構成される、エラーハンドリンググラフ成分を提供し、
    処理中にエラーが発生したワーク要素ハンドリンググラフ成分に応じて、処理を前記エラーハンドリンググラフ成分にリダイレクトすることを含むデータを処理し、
    1つ以上の前記ワーク要素ハンドリンググラフ成分から、少なくとも幾つかの前記ワーク要素を、前記エラーハンドリンググラフ成分を表す頂点への少なくとも一つのリンクに従って、前記エラーハンドリンググラフ成分に導く
    ように構成される、コンピューティングシステム。
  24. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、少なくとも一つのグラフ成分の入力待ち行列からワーク要素を除去することを含む請求項23のコンピューティングシステム。
  25. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラーハンドリンググラフ成分に導かれた前記ワーク要素を処理することを含む請求項23のコンピューティングシステム。
  26. 前記エラーハンドリンググラフ成分に導かれた前記ワーク要素を処理することは、前記エラーが発生する前に作成されたデータベースに対して変更を元に戻すことを含む請求項25のコンピューティングシステム。
  27. 前記データを処理することは、前記エラーを取り扱う際に含まれないワーク要素ハンドリンググラフ成分に対して、これらのワーク要素ハンドリンググラフ成分に導かれたワーク要素を破棄することを含む請求項25のコンピューティングシステム。
  28. 前記プロセッサは、サブグラフを提供するように構成され、
    前記サブグラフは、エラーコードを前記サブグラフの出力として提供するよう構成されるエラーハンドリングサブグラフ成分を含む請求項23のコンピューティングシステム。
  29. エラーが前記サブグラフで発生したことを前記サブグラフの出力が示す場合、処理は前記エラーハンドリンググラフ成分にリダイレクトされる請求項28のコンピューティングシステム。
  30. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラーが発生したワーク要素ハンドリンググラフ成分から、前記エラーハンドリンググラフ成分に、前記エラーが発生したときにワーク要素ハンドリンググラフ成分が処理していたワーク要素を伝えることを含む請求項23のコンピューティングシステム。
  31. 前記ワーク要素は、前記エラーハンドリンググラフ成分を表す前記頂点への前記リンクに従って伝えられる請求項30のコンピューティングシステム。
  32. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分から、前記エラーハンドリンググラフ成分に、前記エラーに関する報告情報を伝えることを含む請求項30のコンピューティングシステム。
  33. 前記報告情報は、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分と前記エラーハンドリンググラフ成分との間の暗黙的な接続に従って伝えられる請求項32のコンピューティングシステム。
  34. 前記プロセッサは、ユーザーリクエストに応えて、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分を表す頂点と、前記エラーハンドリンググラフ成分を表す頂点との間の明示的なリンクとして前記暗黙的な接続を明らかにするよう構成される、請求項33のコンピューティングシステム。
  35. 前記エラーハンドリンググラフ成分を提供することは、複数のエラーハンドリンググラフ成分を提供することを含み、
    前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラーが発生したワーク要素ハンドリンググラフ成分がもたらす出力に基づいてエラーハンドリンググラフ成分を選択することを含む請求項23のコンピューティングシステム。
  36. 前記データを処理することは、処理中にワーク要素ハンドリンググラフ成分にエラーが発生すると、前記エラーを招いたワーク要素の識別を出力することを含む請求項23のコンピューティングシステム。
  37. 処理は、
    前記計算グラフの第1ワーク要素ハンドリンググラフ成分をイネーブルにすることと、
    前記エラーハンドリンググラフ成分をディスエーブルにすることと、
    前記エラーハンドリンググラフ成分以外の前記第1ワーク要素ハンドリンググラフ成分の下流のワーク要素ハンドリンググラフ成分毎に、前記ワーク要素ハンドリンググラフ成分のすぐ上流のワーク要素ハンドリンググラフ成分がイネーブルにされた場合、前記ワーク要素ハンドリンググラフ成分をイネーブルにすることとを含む請求項23のコンピューティングシステム。
  38. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、
    イネーブルにされている各ワーク要素ハンドリンググラフ成分の実行を停止することと、
    前記エラーが発生したワーク要素ハンドリンググラフ成分をディスエーブルにすることと、
    前記エラーハンドリンググラフ成分をイネーブルにすることと、
    前記エラーハンドリンググラフ成分の下流ではない前記エラーが発生したワーク要素ハンドリンググラフ成分の下流のワーク要素ハンドリンググラフ成分をディスエーブルにすることと、
    前記エラーハンドリンググラフ成分の上流のワーク要素ハンドリンググラフ成分をイネーブルにすることとを含む請求項37のコンピューティングシステム。
  39. 第1ワーク要素ハンドリンググラフ成分で前記エラーが発生した場合の前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、
    前記エラーが第1条件で発生した場合、処理フローを前記第1ワーク要素ハンドリンググラフ成分から前記第1ワーク要素ハンドリンググラフ成分上流の第1エラーハンドリンググラフ成分に導くことと、
    前記エラーが第2条件で発生した場合、処理フローを前記第1ワーク要素ハンドリンググラフ成分から前記第1ワーク要素ハンドリンググラフ成分下流の第2エラーハンドリンググラフ成分に導くこととを含む請求項23のコンピューティングシステム。
  40. 前記第1条件は、カウンタが限界値未満の場合である請求項39のコンピューティングシステム。
  41. 前記第2条件は、カウンタが限界値を超える場合である請求項39のコンピューティングシステム。
  42. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラー発生以前に決定されている一セットのエラーハンドリンググラフ成分をイネーブルにすることも含む請求項39のコンピューティングシステム。
  43. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、少なくとも一つのグラフ成分の入力待ち行列からワーク要素を除去することを含む請求項22のコンピュータ読み取り可能な記録媒体。
  44. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラーハンドリンググラフ成分に導かれた前記ワーク要素を処理することを含む請求項22のコンピュータ読み取り可能な記録媒体。
  45. 前記エラーハンドリンググラフ成分に導かれた前記ワーク要素を処理することは、前記エラーが発生する前に作成されたデータベースに対して変更を元に戻すことを含む請求項44のコンピュータ読み取り可能な記録媒体。
  46. 前記データを処理することは、前記エラーを取り扱う際に含まれないワーク要素ハンドリンググラフ成分に対して、これらのワーク要素ハンドリンググラフ成分に導かれたワーク要素を破棄することを含む請求項44のコンピュータ読み取り可能な記録媒体。
  47. 前記コンピューターシステムに、サブグラフを提供させる命令を含み、
    前記サブグラフは、エラーコードを前記サブグラフの出力として提供するよう構成されるエラーハンドリングサブグラフ成分を含む請求項22のコンピュータ読み取り可能な記録媒体。
  48. エラーが前記サブグラフで発生したことを前記サブグラフの出力が示す場合、処理は前記エラーハンドリンググラフ成分にリダイレクトされる請求項47のコンピュータ読み取り可能な記録媒体。
  49. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分から、前記エラーハンドリンググラフ成分に、前記エラーが発生したときに前記ワーク要素ハンドリンググラフ成分が処理していたワーク要素を伝えることを含む請求項22のコンピュータ読み取り可能な記録媒体。
  50. 前記ワーク要素は、前記エラーハンドリンググラフ成分を表す前記頂点への前記リンクに従って伝えられる請求項49のコンピュータ読み取り可能な記録媒体。
  51. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分から、前記エラーハンドリンググラフ成分に、前記エラーに関する報告情報を伝えることを含む請求項49のコンピュータ読み取り可能な記録媒体。
  52. 前記報告情報は、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分と前記エラーハンドリンググラフ成分との間の暗黙的な接続に従って伝えられる請求項51のコンピュータ読み取り可能な記録媒体。
  53. 前記コンピューターシステムに、ユーザーリクエストに応えて、前記エラーが発生した前記ワーク要素ハンドリンググラフ成分を表す頂点と、前記エラーハンドリンググラフ成分を表す頂点との間の明示的なリンクとして前記暗黙的な接続を明らかにさせる命令を含む請求項52のコンピュータ読み取り可能な記録媒体。
  54. 前記エラーハンドリンググラフ成分を提供することは、複数のエラーハンドリンググラフ成分を提供することを含み、
    前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラーが発生したワーク要素ハンドリンググラフ成分がもたらす出力に基づいてエラーハンドリンググラフ成分を選択することを含む請求項22のコンピュータ読み取り可能な記録媒体。
  55. 前記データを処理することは、処理中にワーク要素ハンドリンググラフ成分にエラーが発生すると、前記エラーを招いたワーク要素の識別を出力することを含む請求項22のコンピュータ読み取り可能な記録媒体。
  56. 処理は、
    前記計算グラフの第1ワーク要素ハンドリンググラフ成分をイネーブルにすることと、
    前記エラーハンドリンググラフ成分をディスエーブルにすることと、
    前記エラーハンドリンググラフ成分以外の前記第1ワーク要素ハンドリンググラフ成分の下流のワーク要素ハンドリンググラフ成分毎に、前記ワーク要素ハンドリンググラフ成分のすぐ上流の第1ワーク要素ハンドリンググラフ成分がイネーブルにされた場合、前記ワーク要素ハンドリンググラフ成分をイネーブルにすることとを含む請求項22のコンピュータ読み取り可能な記録媒体。
  57. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、
    イネーブルにされている各ワーク要素ハンドリンググラフ成分の実行を停止することと、
    前記エラーが発生したワーク要素ハンドリンググラフ成分をディスエーブルにすることと、
    前記エラーハンドリンググラフ成分をイネーブルにすることと、
    前記エラーハンドリンググラフ成分の下流ではない前記エラーが発生したワーク要素ハンドリンググラフ成分の下流のワーク要素ハンドリンググラフ成分をディスエーブルにすることと、
    前記エラーハンドリンググラフ成分の上流のワーク要素ハンドリンググラフ成分をイネーブルにすることとを含む請求項56のコンピュータ読み取り可能な記録媒体。
  58. 第1ワーク要素ハンドリンググラフ成分で前記エラーが発生した場合の前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、
    前記エラーが第1条件で発生した場合、処理フローを前記第1ワーク要素ハンドリンググラフ成分から前記第1ワーク要素ハンドリンググラフ成分上流の第1エラーハンドリンググラフ成分に導くことと、
    前記エラーが第2条件で発生した場合、処理フローを前記第1ワーク要素ハンドリンググラフ成分から前記第1ワーク要素ハンドリンググラフ成分下流の第2エラーハンドリンググラフ成分に導くこととを含む請求項22のコンピュータ読み取り可能な記録媒体。
  59. 前記第1条件は、カウンタが限界値未満の場合である請求項58のコンピュータ読み取り可能な記録媒体。
  60. 前記第2条件は、カウンタが限界値を超える場合である請求項58のコンピュータ読み取り可能な記録媒体。
  61. 前記エラーハンドリンググラフ成分に処理をリダイレクトすることは、前記エラー発生以前に決定されている一セットのエラーハンドリンググラフ成分をイネーブルにすることも含む請求項58のコンピュータ読み取り可能な記録媒体。
  62. 与えられたトランザクションに対する複数の計算が実行された後に、前記実行された計算をデータベースに送ることを含む、請求項1の方法。
JP2014077798A 2007-07-26 2014-04-04 エラーハンドリングをもつトランザクションのグラフ型計算 Active JP6177179B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US95207507P 2007-07-26 2007-07-26
US60/952,075 2007-07-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010518415A Division JP5520219B2 (ja) 2007-07-26 2008-07-25 エラーハンドリングをもつトランザクションのグラフ型計算

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016046091A Division JP2016106329A (ja) 2007-07-26 2016-03-09 エラーハンドリングをもつトランザクションのグラフ型計算

Publications (2)

Publication Number Publication Date
JP2014130647A JP2014130647A (ja) 2014-07-10
JP6177179B2 true JP6177179B2 (ja) 2017-08-09

Family

ID=40281847

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2010518415A Active JP5520219B2 (ja) 2007-07-26 2008-07-25 エラーハンドリングをもつトランザクションのグラフ型計算
JP2014077798A Active JP6177179B2 (ja) 2007-07-26 2014-04-04 エラーハンドリングをもつトランザクションのグラフ型計算
JP2016046091A Pending JP2016106329A (ja) 2007-07-26 2016-03-09 エラーハンドリングをもつトランザクションのグラフ型計算

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010518415A Active JP5520219B2 (ja) 2007-07-26 2008-07-25 エラーハンドリングをもつトランザクションのグラフ型計算

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2016046091A Pending JP2016106329A (ja) 2007-07-26 2016-03-09 エラーハンドリングをもつトランザクションのグラフ型計算

Country Status (8)

Country Link
US (1) US8706667B2 (ja)
EP (2) EP2234017A3 (ja)
JP (3) JP5520219B2 (ja)
KR (2) KR101758670B1 (ja)
CN (2) CN107423046B (ja)
AU (1) AU2008279001B2 (ja)
CA (2) CA2697306C (ja)
WO (1) WO2009015342A1 (ja)

Families Citing this family (36)

* 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
EP2050013A4 (en) * 2006-08-10 2010-01-06 Ab Initio Software Llc DISTRIBUTION SERVICES IN DIAGRAM-BASED CALCULATIONS
KR101758670B1 (ko) 2007-07-26 2017-07-18 아브 이니티오 테크놀로지 엘엘시 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
US7979479B2 (en) * 2009-01-08 2011-07-12 International Business Machines Corporation Transaction-controlled graph processing and management
KR20150038758A (ko) * 2009-02-13 2015-04-08 아브 이니티오 테크놀로지 엘엘시 태스크 실행 관리
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
EP2583168B1 (en) * 2010-06-15 2017-11-08 Ab Initio Technology LLC Dynamically loading graph-based computations
US9032362B2 (en) * 2012-09-10 2015-05-12 Sap Se System and method for generating high performance calculators for calculation graphs
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
US11061539B2 (en) * 2013-03-15 2021-07-13 The Mathworks, Inc. Reference nodes in a computational graph
CA2909748C (en) 2013-04-23 2021-09-21 Ab Initio Technology Llc Controlling tasks performed by a computing system
US9348560B2 (en) 2013-06-04 2016-05-24 Qualcomm Incorporated Efficient execution of graph-based programs
WO2015058216A1 (en) * 2013-10-20 2015-04-23 Pneuron Corp. Event-driven data processing system
WO2015085152A1 (en) 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US20150186427A1 (en) * 2013-12-26 2015-07-02 Telefonica Digital Espana, S.L.U. Method and system of analyzing dynamic graphs
WO2016144299A1 (en) * 2015-03-06 2016-09-15 Hewlett Packard Enterprise Development Lp Graph update flush to a shared memory
US20160364794A1 (en) * 2015-06-09 2016-12-15 International Business Machines Corporation Scoring transactional fraud using features of transaction payment relationship graphs
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10120744B1 (en) * 2015-11-20 2018-11-06 VCE IP Holding Company LLC Graph execution system and method for a computing environment
AU2016377516B2 (en) 2015-12-21 2020-01-30 Ab Initio Technology Llc Sub-graph interface generation
US10642580B1 (en) * 2016-09-20 2020-05-05 Amazon Technologies, Inc. Simplifying and reusing visual programming graphs
US10678515B1 (en) 2016-09-20 2020-06-09 Amazon Technologies, Inc. Simplifying and reusing visual programming graphs
US10318355B2 (en) 2017-01-24 2019-06-11 Oracle International Corporation Distributed graph processing system featuring interactive remote control mechanism including task cancellation
US11057276B2 (en) 2017-10-04 2021-07-06 Servicenow, Inc. Bulk service mapping
US10732940B2 (en) 2018-04-27 2020-08-04 EMC IP Holding Company LLC Enterprise services framework for presentation layer management
CN110515681B (zh) * 2018-05-21 2024-04-09 吕纪竹 一种实时判断流数据自身给定延迟重复性的方法
CN110515680B (zh) * 2018-05-21 2024-04-09 吕纪竹 一种实时判断大数据自身给定延迟重复性的方法
WO2020068927A2 (en) * 2018-09-25 2020-04-02 Ab Initio Technology Llc A dedicated audit port for implementing recoverability in outputting audit data
US10740537B2 (en) * 2018-11-01 2020-08-11 Dell Products L.P. Enterprise form dependency visualization and management
US11250059B2 (en) 2020-01-09 2022-02-15 Oracle International Corporation Optimizing graph queries by performing early pruning
US11675785B2 (en) 2020-01-31 2023-06-13 Oracle International Corporation Dynamic asynchronous traversals for distributed graph queries
US11461130B2 (en) 2020-05-26 2022-10-04 Oracle International Corporation Methodology for fast and seamless task cancelation and error handling in distributed processing of large graph data
US11456946B2 (en) 2020-06-11 2022-09-27 Oracle International Corporation Regular path queries (RPQS) for distributed graphs
US12001425B2 (en) 2020-12-09 2024-06-04 Oracle International Corporation Duplication elimination in depth based searches for distributed systems

Family Cites Families (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US179923A (en) * 1876-07-18 Improvement in hose-couplings
US3662343A (en) * 1970-07-29 1972-05-09 Docutel Corp Credit card automatic currency dispenser
US3662401A (en) * 1970-09-23 1972-05-09 Collins Radio Co Method of program execution
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4972314A (en) 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4720780A (en) 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4914568A (en) * 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
JPS6347841A (ja) * 1986-08-15 1988-02-29 Hitachi Ltd デ−タフロ−計算機
US5127104A (en) * 1986-12-29 1992-06-30 Dataflow Computer Corporation Method and product involving translation and execution of programs by automatic partitioning and data structure allocation
JPH02272645A (ja) * 1989-04-14 1990-11-07 Hitachi Ltd プログラム・デバツグ支援方法
US5357632A (en) * 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
US5280619A (en) * 1990-05-17 1994-01-18 Texas Instruments Incorporated System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions
JPH05134886A (ja) * 1990-11-30 1993-06-01 Fujitsu Ltd デツドロツク検出方式
US5323452A (en) 1990-12-18 1994-06-21 Bell Communications Research, Inc. Visual programming of telephone network call processing logic
EP0529303A3 (en) 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5333319A (en) * 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
JPH07168743A (ja) * 1993-12-16 1995-07-04 Nec Corp 利用者プログラム異常終了時の情報表示システム
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US6044211A (en) * 1994-03-14 2000-03-28 C.A.E. Plus, Inc. Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
JPH08106540A (ja) * 1994-10-06 1996-04-23 Toshiba Corp 編集装置
US5692168A (en) 1994-10-18 1997-11-25 Cyrix Corporation Prefetch buffer using flow control bit to identify changes of flow within the code stream
US5701400A (en) 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US5805462A (en) 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
JP3154942B2 (ja) 1995-09-11 2001-04-09 株式会社東芝 分散チェックポイント生成方法および同方法が適用される計算機システム
US5630047A (en) 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
JP3258228B2 (ja) 1996-03-15 2002-02-18 株式会社東芝 チェックポイント生成方法
US7415466B2 (en) 1996-03-19 2008-08-19 Oracle International Corporation Parallel transaction recovery
US6006242A (en) 1996-04-05 1999-12-21 Bankers Systems, Inc. Apparatus and method for dynamically creating a document
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5857204A (en) * 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
JP3672208B2 (ja) * 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US6016516A (en) * 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US5930794A (en) * 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
US6038558A (en) * 1996-10-18 2000-03-14 Sagent Technology, Inc. Extensible database retrieval and viewing architecture
US6151531A (en) * 1996-12-12 2000-11-21 Charles Frankel Et Al System and method for managing the alteration of garments
US5924095A (en) * 1997-02-05 1999-07-13 Oracle Corporation Processing distributed transactions in heterogeneous computing environments using two-phase commit
US6330008B1 (en) 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US5933640A (en) 1997-02-26 1999-08-03 Digital Equipment Corporation Method for analyzing and presenting test execution flows of programs
US5999729A (en) 1997-03-06 1999-12-07 Continuum Software, Inc. System and method for developing computer programs for execution on parallel processing systems
US6088716A (en) 1997-04-28 2000-07-11 Ab Initio Software Corporation Method for preventing buffer deadlock in dataflow computations
US6032158A (en) * 1997-05-02 2000-02-29 Informatica Corporation Apparatus and method for capturing and propagating changes from an operational database to data marts
US6044394A (en) * 1997-07-21 2000-03-28 International Business Machines Corporation Managing independently executing computer tasks that are interrelated by dataflow
US6145017A (en) * 1997-08-05 2000-11-07 Adaptec, Inc. Data alignment system for a hardware accelerated command interpreter engine
US6173276B1 (en) * 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
US6490620B1 (en) * 1997-09-26 2002-12-03 Worldcom, Inc. Integrated proxy interface for web based broadband telecommunications management
US5958004A (en) * 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6014670A (en) * 1997-11-07 2000-01-11 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6339775B1 (en) * 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6044374A (en) * 1997-11-14 2000-03-28 Informatica Corporation Method and apparatus for sharing metadata between multiple data marts through object references
US6272650B1 (en) * 1998-02-03 2001-08-07 Amazing Media, Inc. System and method for disambiguating scene graph loads
US6437796B2 (en) 1998-02-17 2002-08-20 Sun Microsystems, Inc. Multiple processor visibility search system and method
US6208345B1 (en) * 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
US6256637B1 (en) 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6675189B2 (en) 1998-05-28 2004-01-06 Hewlett-Packard Development Company, L.P. System for learning and applying integrated task and data parallel strategies in dynamic applications
US6480876B2 (en) 1998-05-28 2002-11-12 Compaq Information Technologies Group, L.P. System for integrating task and data parallelism in dynamic applications
US6314114B1 (en) 1998-06-23 2001-11-06 Oracle Corporation Distributed resource management
JP2000010788A (ja) * 1998-06-25 2000-01-14 Sharp Corp 緊急動作処理機能を有するコンピュータ装置
US6259988B1 (en) 1998-07-20 2001-07-10 Lockheed Martin Corporation Real-time mission adaptable route planner
US6401216B1 (en) 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6608628B1 (en) 1998-11-06 2003-08-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) Method and apparatus for virtual interactive medical imaging by multiple remotely-located users
US6570579B1 (en) 1998-11-09 2003-05-27 Broadcom Corporation Graphics display system
JP4094752B2 (ja) * 1998-11-27 2008-06-04 株式会社日立製作所 トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US6449711B1 (en) 1999-02-04 2002-09-10 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6728879B1 (en) * 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6816825B1 (en) 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
JP2001022571A (ja) * 1999-07-09 2001-01-26 Riso Kagaku Corp 電子機器及び該電子機器の制御プログラム書き換え方法
US6647408B1 (en) * 1999-07-16 2003-11-11 Novell, Inc. Task distribution
US6715145B1 (en) * 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US20020129340A1 (en) 1999-10-28 2002-09-12 Tuttle Douglas D. Reconfigurable isomorphic software representations
US7137116B2 (en) 1999-11-09 2006-11-14 Microsoft Corporation Method and system for performing a task on a computer
US6879946B2 (en) 1999-11-30 2005-04-12 Pattern Discovery Software Systems Ltd. Intelligent modeling, transformation and manipulation system
US6584581B1 (en) * 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
WO2001046798A2 (en) * 1999-12-20 2001-06-28 Headway Research Limited System and method for computer-aided graph-based dependency analysis
US6848100B1 (en) 2000-03-31 2005-01-25 Intel Corporation Hierarchical software path profiling
US7062483B2 (en) 2000-05-18 2006-06-13 Endeca Technologies, Inc. Hierarchical data-driven search and navigation system and method for information retrieval
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6813761B1 (en) 2000-06-30 2004-11-02 Microsoft Corporation Methods for enhancing flow analysis
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US6832369B1 (en) 2000-08-01 2004-12-14 International Business Machines Corporation Object oriented method and apparatus for class variable initialization
US6496961B2 (en) 2000-10-27 2002-12-17 Nec Usa, Inc. Dynamic detection and removal of inactive clauses in SAT with application in image computation
US20020152244A1 (en) 2000-12-22 2002-10-17 International Business Machines Corporation Method and apparatus to dynamically create a customized user interface based on a document type definition
US6804800B2 (en) * 2000-12-29 2004-10-12 Intel Corporation Method and apparatus for detecting and recovering from errors in a source synchronous bus
JP4294879B2 (ja) 2001-02-05 2009-07-15 株式会社日立製作所 サービスレベル制御機構を有するトランザクション処理システム及びそのためのプログラム
US20020111876A1 (en) 2001-02-09 2002-08-15 Rudraraju Panduranga R. Transaction aggregation system and method
US7082386B2 (en) 2001-02-21 2006-07-25 International Business Machines Corporation Generalized software modeling tool
US7188091B2 (en) * 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US6651234B2 (en) 2001-04-06 2003-11-18 Nec Corporation Partition-based decision heuristics for SAT and image computation using SAT and BDDs
US20020147745A1 (en) * 2001-04-09 2002-10-10 Robert Houben Method and apparatus for document markup language driven server
US7082604B2 (en) * 2001-04-20 2006-07-25 Mobile Agent Technologies, Incorporated Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
US20040093559A1 (en) * 2001-05-25 2004-05-13 Ruth Amaru Web client for viewing and interrogating enterprise data semantically
GB2376094A (en) 2001-05-30 2002-12-04 Ibm Flexible navigation of a workflow graph in a data processing system
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US20030033432A1 (en) 2001-08-08 2003-02-13 Simpson Shell S. Web based imaging service that converts web pages into content on behalf of another web site
US20040006745A1 (en) * 2001-08-31 2004-01-08 Van Helden Wico Methods, apparatuses, system, and articles for associating metadata with datastream
US7165030B2 (en) 2001-09-17 2007-01-16 Massachusetts Institute Of Technology Concatenative speech synthesis using a finite-state transducer
US7085426B2 (en) 2001-10-15 2006-08-01 Jonas August Volterra filters for enhancement of contours in images
US7130484B2 (en) 2001-10-15 2006-10-31 Jonas August Biased curve indicator random field filters for enhancement of contours in images
DE10152213B4 (de) 2001-10-23 2006-04-27 Onespin Solutions Gmbh Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches
US7092401B2 (en) * 2001-11-15 2006-08-15 International Business Machines Corporation Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram
EP1320217B1 (en) * 2001-12-14 2004-10-13 Hewlett-Packard Company, A Delaware Corporation Method of installing monitoring agents, system and computer program for monitoring objects in an IT network
US7240247B2 (en) * 2002-04-29 2007-07-03 Intel Corporation Providing a chain of tokenized error and state information for a call stack
JP2003345610A (ja) * 2002-05-27 2003-12-05 Nippon Telegr & Teleph Corp <Ntt> トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体
US20040041838A1 (en) * 2002-09-04 2004-03-04 Adusumilli Venkata J.R.B. Method and system for graphing data
US7103597B2 (en) 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7167850B2 (en) * 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7694272B2 (en) 2002-10-21 2010-04-06 Sungard (Israel) Ltd Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language
US7711772B2 (en) * 2002-11-15 2010-05-04 Schlumberger Technology Corporation Web-based system and method for electronic data delivery
US7430747B2 (en) * 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7441008B2 (en) 2002-12-18 2008-10-21 International Business Machines Corporation Method for correlating transactions and messages
US20050193056A1 (en) * 2002-12-26 2005-09-01 Schaefer Diane E. Message transfer using multiplexed connections in an open system interconnection transaction processing environment
US20040148373A1 (en) 2003-01-23 2004-07-29 International Business Machines Corporation Service level agreement compliance measurement
US7707564B2 (en) * 2003-02-26 2010-04-27 Bea Systems, Inc. Systems and methods for creating network-based software services using source code annotations
US7395540B2 (en) * 2003-03-12 2008-07-01 Microsoft Corporation Automated business software application integration
US7417645B2 (en) * 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US7088374B2 (en) * 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7669129B2 (en) * 2003-04-04 2010-02-23 Avid Technology, Inc. Graphical user interface for providing editing of transform hierarchies within an effects tree
US7665025B2 (en) * 2003-04-16 2010-02-16 The Mathworks, Inc. Signal navigation and label propagation in block diagrams
US20040225657A1 (en) * 2003-05-07 2004-11-11 Panacea Corporation Web services method and system
US8265979B2 (en) 2003-06-17 2012-09-11 International Business Machines Corporation Automatic generation of process models
EP1636730A2 (en) * 2003-06-18 2006-03-22 Applera Corporation Methods and systems for the analysis of biological sequence data
US20050177531A1 (en) 2003-06-24 2005-08-11 Bracewell Robert H. Method, tool and system for increasing the efficiency of a design process
CN101165650B (zh) * 2003-06-25 2012-10-10 起元科技有限公司 计算图的计算机辅助并行化
US7185322B2 (en) * 2003-07-11 2007-02-27 Computer Associates Think, Inc. Method and apparatus for parallel action processing
US7590971B2 (en) * 2003-08-01 2009-09-15 Idx Investment Corporation Enterprise task manager
GB0318196D0 (en) * 2003-08-02 2003-09-03 Ibm A method apparatus and computer program for processing a queue of messages
US7444595B2 (en) * 2003-08-13 2008-10-28 National Instruments Corporation Graphical programming system and method for creating and managing a scene graph
US8307109B2 (en) * 2003-08-27 2012-11-06 International Business Machines Corporation Methods and systems for real time integration services
US7174479B2 (en) 2003-09-10 2007-02-06 Microsoft Corporation Method and system for rollback-free failure recovery of multi-step procedures
US20050102670A1 (en) * 2003-10-21 2005-05-12 Bretl Robert F. Shared object memory with object management for multiple virtual machines
US20080052687A1 (en) * 2003-11-03 2008-02-28 Agustin Gonzales-Tuchmann Development environment for data transformation applications
US7296072B2 (en) * 2003-12-12 2007-11-13 International Business Machines Corporation Enhanced port type agnostic proxy support for web services intermediaries
US7404189B2 (en) * 2003-12-30 2008-07-22 International Business Machines Corporation Scheduler supporting web service invocation
US7467383B2 (en) 2004-03-08 2008-12-16 Ab Initio Software Llc System for controlling task execution using a graphical representation of task dependency
US20050256818A1 (en) 2004-04-30 2005-11-17 Xerox Corporation Workflow auto generation from user constraints and hierarchical dependence graphs for workflows
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US7415704B2 (en) * 2004-05-20 2008-08-19 Sap Ag Sharing objects in runtime systems
US7614037B2 (en) 2004-05-21 2009-11-03 Microsoft Corporation Method and system for graph analysis and synchronization
US7316001B2 (en) * 2004-06-05 2008-01-01 Graphlogic Inc. Object process graph system
US7703073B2 (en) 2004-06-08 2010-04-20 Covia Labs, Inc. Device interoperability format rule set and method for assembling interoperability application package
US20060064147A1 (en) * 2004-07-02 2006-03-23 Almqvist Hans O Cooling garment having phase change material in its extremity portions
US7398514B2 (en) * 2004-09-29 2008-07-08 Microsoft Corporation Test automation stack layering
US7343482B2 (en) * 2004-10-20 2008-03-11 Arm Limited Program subgraph identification
JP2006127440A (ja) * 2004-10-29 2006-05-18 Satoshi Obana 敷衍化した例外処理方法、およびそのコンピュータ読み取り可能なプログラム
JP4759983B2 (ja) * 2004-11-04 2011-08-31 船井電機株式会社 ディスク装置のファームウェア書き換え方法、及びファームウェア書き換えプログラム
US7598953B2 (en) * 2004-11-05 2009-10-06 Microsoft Corporation Interpreter for simplified programming of graphics processor units in general purpose programming languages
US7487442B2 (en) * 2004-12-20 2009-02-03 Microsoft Corporation Method, system, and computer-readable medium for the layout of automatically-placed elements and user-placed elements in a chart
US7665093B2 (en) * 2004-12-22 2010-02-16 Microsoft Corporation Synchronization of runtime and application state via batching of workflow transactions
WO2006078751A2 (en) 2005-01-18 2006-07-27 Everypoint, Inc. Systems and methods for processing changing data
US7620947B2 (en) * 2005-03-11 2009-11-17 Autodesk, Inc. Enhanced directed graph representation for dependency systems
US7505975B2 (en) * 2005-04-14 2009-03-17 Bea Systems, Inc. Use of transaction context to select single database instance for global transaction
JP4246176B2 (ja) * 2005-04-25 2009-04-02 株式会社日立製作所 トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US7716630B2 (en) * 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070118839A1 (en) * 2005-10-24 2007-05-24 Viktors Berstis Method and apparatus for grid project modeling language
US8799882B2 (en) * 2005-12-07 2014-08-05 Microsoft Corporation Compiler support for optimizing decomposed software transactional memory operations
US8099726B2 (en) * 2005-12-07 2012-01-17 Microsoft Corporation Implementing strong atomicity in software transactional memory
US8073671B2 (en) 2006-03-31 2011-12-06 Microsoft Corporation Dynamic software performance models
US7870556B2 (en) * 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
EP2050013A4 (en) * 2006-08-10 2010-01-06 Ab Initio Software Llc DISTRIBUTION SERVICES IN DIAGRAM-BASED CALCULATIONS
US7844946B2 (en) * 2006-09-26 2010-11-30 Intel Corporation Methods and apparatus to form a transactional objective instruction construct from lock-based critical sections
JP4073033B1 (ja) 2007-04-27 2008-04-09 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
KR101758670B1 (ko) 2007-07-26 2017-07-18 아브 이니티오 테크놀로지 엘엘시 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
US8347292B2 (en) 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout
EP2191362B1 (en) * 2007-09-20 2015-08-19 Ab Initio Technology LLC Managing data flows in graph-based computations
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US20090193417A1 (en) * 2008-01-24 2009-07-30 Nec Laboratories America, Inc. Tractable dataflow analysis for concurrent programs via bounded languages
US8797178B2 (en) 2008-03-10 2014-08-05 Microsoft Corporation Efficient stream sharing for multi-user sensor data collection
CA2729304C (en) 2008-06-30 2016-12-13 Ab Initio Technology Llc Data logging in graph-based computations
US20100070955A1 (en) * 2008-07-08 2010-03-18 Nec Laboratories America Alias analysis for concurrent software programs
US20100169137A1 (en) * 2008-12-31 2010-07-01 Ebay Inc. Methods and systems to analyze data using a graph
US7979479B2 (en) * 2009-01-08 2011-07-12 International Business Machines Corporation Transaction-controlled graph processing and management
US8635694B2 (en) 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
KR20150038758A (ko) * 2009-02-13 2015-04-08 아브 이니티오 테크놀로지 엘엘시 태스크 실행 관리
US7992040B2 (en) * 2009-02-20 2011-08-02 International Business Machines Corporation Root cause analysis by correlating symptoms with asynchronous changes
US8327377B2 (en) 2009-04-30 2012-12-04 Ca, Inc. Detecting, logging and tracking component dependencies in web service transactions
US8205113B2 (en) 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
WO2012027560A1 (en) 2010-08-25 2012-03-01 Ab Initio Technology Llc Evaluating dataflow graph characteristics
US8566441B2 (en) * 2010-11-22 2013-10-22 Microsoft Corporation Network latency estimation for mobile devices

Also Published As

Publication number Publication date
CA2965896A1 (en) 2009-01-29
EP2234017A3 (en) 2010-10-27
EP2234017A2 (en) 2010-09-29
CA2697306A1 (en) 2009-01-29
CA2697306C (en) 2017-06-20
EP2174222A1 (en) 2010-04-14
JP2010534891A (ja) 2010-11-11
KR101635945B1 (ko) 2016-07-04
JP2014130647A (ja) 2014-07-10
KR101758670B1 (ko) 2017-07-18
CN101821721B (zh) 2017-04-12
EP2174222A4 (en) 2010-10-27
KR20100046198A (ko) 2010-05-06
CN107423046A (zh) 2017-12-01
AU2008279001A1 (en) 2009-01-29
CA2965896C (en) 2020-01-07
JP5520219B2 (ja) 2014-06-11
JP2016106329A (ja) 2016-06-16
US20090030863A1 (en) 2009-01-29
KR20160078523A (ko) 2016-07-04
CN107423046B (zh) 2021-08-06
AU2008279001B2 (en) 2014-02-06
US8706667B2 (en) 2014-04-22
CN101821721A (zh) 2010-09-01
WO2009015342A1 (en) 2009-01-29

Similar Documents

Publication Publication Date Title
JP6177179B2 (ja) エラーハンドリングをもつトランザクションのグラフ型計算
US8667329B2 (en) Processing transactions in graph-based applications
US7636699B2 (en) Processing transactions using graph-based computations including instances of computation graphs associated with the transactions
AU2007202782B2 (en) Startup and control of graph-based computation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140502

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150721

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160309

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160316

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20160408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170711

R150 Certificate of patent or registration of utility model

Ref document number: 6177179

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