CN107423046B - 用于处理基于图的计算的方法、系统以及计算机可读介质 - Google Patents

用于处理基于图的计算的方法、系统以及计算机可读介质 Download PDF

Info

Publication number
CN107423046B
CN107423046B CN201710217866.1A CN201710217866A CN107423046B CN 107423046 B CN107423046 B CN 107423046B CN 201710217866 A CN201710217866 A CN 201710217866A CN 107423046 B CN107423046 B CN 107423046B
Authority
CN
China
Prior art keywords
error
component
graph
handling
processing
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
CN201710217866.1A
Other languages
English (en)
Other versions
CN107423046A (zh
Inventor
克雷格·W·斯坦菲尔
约瑟夫·S·沃利三世
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ab Initio Technology LLC
Original Assignee
Ab Initio Technology LLC
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 Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Publication of CN107423046A publication Critical patent/CN107423046A/zh
Application granted granted Critical
Publication of CN107423046B publication Critical patent/CN107423046B/zh
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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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/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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

本发明涉及用于处理基于图的计算的方法、系统以及计算机可读介质。用于处理基于图的计算的方法包括:在包括代表根据联结顶点的连线处理工作元素(360)的图组件的顶点的图内,提供被配置成向所述图外部的过程提供错误信息的至少一个错误处理图组件,和处理数据,包括响应于图组件在进行处理时遇到错误(370),把处理重定向到所述错误处理图组件,其中,把处理重定向到所述错误处理图组件包括根据到代表所述错误处理图组件的顶点的至少一个连线,把至少某些工作元素定向(380)到所述错误处理图组件。

Description

用于处理基于图的计算的方法、系统以及计算机可读介质
本申请是申请日为2008年7月25日、申请号为200880107445.2、发明名称为“具有误差处理的事务型基于图的计算”的发明专利申请的分案申请。
相关申请的交叉引用
本申请要求2007年7月26日提交的序列号为60/952,075的美国申请的优先权,该申请通过引用被合并于此。
技术领域
本发明涉及基于图(graph-based)的计算的执行。
背景技术
复杂的计算经常可以被表达为通过有向图的数据流,计算的组件(component)和图的顶点相关联,并且组件之间的数据流对应于图的连线(link)(弧、边)。在美国专利5,966,072“EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS”中描述了实施这种基于图的计算的系统。执行基于图的计算的一种方法是执行许多个过程(process),每一个均和图的不同顶点相关联,并根据图的连线在过程之间建立通信路径。例如,通信路径可以使用TCP/IP或者UNIX域套接字,或者使用共享存储器在过程之间传递数据。
发明内容
在一个方面中,一般地,一种用于使用基于图的计算处理事务的方法包括:确定一个或更多个计算图的集合中的一个计算图的多个图元中的至少一个包括针对给定事务要被进行的计算,把给定事务和包括与相应图元相关联的可重用计算元素的计算图的实例相关联,和,执行图以进行计算。
方面可以包括下列特征中的一个或更多个。
计算图集合中的图的至少某些实例共享一个或更多个计算元素。
计算元素包括由操作系统过程(operating system process)和过程线程(process thread)中的至少一个执行的计算。
图元包括计算图的顶点。
把事务和计算图的实例相关联包括在开始执行图元之前,把对应于计算图中的每一个图元的计算元素分配给计算图的实例。
把事务和计算图的实例相关联包括在使用已分配给计算图的实例的计算元素执行另一个图元之后,把对应于计算图中的图元的计算元素分配给计算图的实例。
至少两个图元使用公共资源,并且执行图以进行计算包括把使用公共资源的图元中的每一个分配给单个计算元素。
单个计算元素在图元被分配给计算元素时已经被启用。
公共资源包括数据库。
公共资源包括特定端口。
处理事务包括接收对事务的请求。
所述方法也包括:确定同一计算图和针对第二事务要进行的计算相关联,把第二事务和计算图的第二实例相关联,和,执行图的第二实例以进行针对第二事务的计算。
使用计算图的不同实例进行的针对事务的计算被以时间交织的方式进行。
多个事务被并行处理。
每一个事务和一个或更多个根据对应的计算图处理的工作元素相关联。
至少某些事务各自和被根据对应的计算图处理的一个工作元素相关联。
所述的方法还包括形成至少某些计算图的多个实例。
所述的方法还包括识别在进行针对事务其中之一的计算时已出现了错误,并继续进行针对事务中的另外一个的计算。
在第一时间开始多个事务中的第一事务的处理,并且在晚于第一时间的第二时间开始多个事务中的第二事务的处理,所述方法还包括在完成进行针对第一事务的计算之前完成进行针对第二事务的计算。
在另一方面中,一般地,一种用于使用基于图的计算处理事务的系统包括:用于确定一个或更多个计算图的集合中的一个计算图的多个图元的至少一个包括针对事务要被进行的计算的装置,用于把给定事务和包括与相应图元相关联的可重用计算元素的计算图的实例相关联的装置,和,用于执行图以进行计算的装置。
在另一个方面中,一般地,一种计算机可读介质存储用于使用基于图的计算处理事务的计算机程序。所述计算机程序包括指令,用于导致计算机系统:确定一个或更多个计算图的集合中的一个计算图的多个图元的至少一个包括针对给定事务要被进行的计算,把给定事务和包括与相应图元相关联的可重用计算元素的计算图的实例相关联,和,执行图以进行计算。
在又一个方面中,一般地,一种用于处理基于图的计算的方法,包括:在包括代表根据联结顶点的连线处理工作元素的图组件的顶点的图内,提供至少一个被配置成向图外部的过程提供错误信息的错误处理图组件,和,处理数据,包括响应于图组件在处理时遇到错误,把处理重定向到错误处理图组件,包括根据至少一个到代表错误处理组件的顶点的连线,把至少某些工作元素定向到错误处理组件。
方面包括下列特征中的一个或更多个。
把处理重定向到错误处理图组件包括从至少一个输入队列去除工作元素。
把处理重定向到错误处理图组件包括处理被定向到错误处理图组件的工作元素。
处理被定向到错误处理图组件的工作元素包括回滚在错误之前做出的对数据库的变化。
处理数据包括,对于在处理错误中未包括的图组件,丢弃被定向到那些图组件的工作元素。
提供了子图,所述子图包括被配置成提供错误代码作为子图的输出的错误处理子图组件。
如果由子图提供的输出指示子图中出现的错误,则把处理重定向到错误处理图组件。
把处理重定向到错误处理图组件包括把当发生错误时图组件正在处理的工作元素从遇到错误的图组件传送到错误处理图组件。
工作元素被根据到代表错误处理组件的顶点的连线传送。
把处理重定向到错误处理图组件包括把关于错误的报告信息从遇到错误的图组件传送到错误处理图组件。
报告信息被根据遇到错误的图组件和错误处理组件之间的隐式连接传送。
响应于用户请求,把隐式连接显露为代表遇到错误的图组件的顶点和代表错误处理组件的顶点之间的显式连线。
提供错误处理图组件包括提供多个错误处理图组件,并且把处理重定向到错误处理图组件包括基于从遇到错误的图组件提供的输出选择错误处理图组件。
处理数据也包括,如果图组件在处理时遇到错误,则输出导致该错误的工作元素的标识。
处理包括:使能图的第一组件;禁止错误处理组件;和,对于第一组件下游的除了错误处理组件以外的每一个组件,如果该组件上游的最接近该组件的组件被使能,则使能该组件。
把处理重定向到错误处理图组件包括:停止执行每一个被使能的图组件;禁止遇到错误的组件;使能错误处理组件;禁止在遇到错误的组件下游但不在错误处理组件下游的组件;和,使能错误处理组件上游的组件。
把处理重定向到错误处理图组件包括:在第一组件中出现错误的情况下,如果在第一条件下出现错误,则把过程流从第一组件定向到第一组件上游的第一错误处理组件,并且,如果在第二条件下出现错误,则把过程流从第一组件定向到第一组件下游的第二错误处理组件。
第一条件是计数器在界限以下。
第二条件是计数器在界限以上。
把处理重定向到错误处理图组件还包括使能图组件的集合,该集合在错误之前已被确定。
在另一个方面中,一般地,一种用于处理基于图的计算的系统包括,在包括代表根据联结顶点的连线处理工作元素的图组件的顶点的图内,用于提供至少一个被配置成向图外部的过程提供错误信息的错误处理图组件的装置,和,用于处理数据的装置,处理数据包括响应于图组件在处理时遇到错误,把处理重定向到错误处理图组件,包括根据至少一个到代表错误处理组件的顶点的连线,把至少某些工作元素定向到错误处理组件。
在又一个方面中,一般地,一种计算机可读介质存储用于处理基于图的计算的计算机程序,所述计算机程序包括指令,用于导致计算机系统:在包括代表根据联结顶点的连线处理工作元素的图组件的顶点的图内,提供至少一个被配置成向图外部的过程提供错误信息的错误处理图组件,和,处理数据,包括响应于图组件在处理时遇到错误,把处理重定向到错误处理图组件,包括根据至少一个到代表错误处理组件的顶点的连线,把至少某些工作元素定向到错误处理组件。
从下面的描述,以及从权利要求,本发明的其他特征和优点将会清晰。
附图说明
图1是示出基于图的计算的实例的图。
图2是用于处理工作流的系统的逻辑框图。
图3A是用于处理每一个工作流的流程图。
图3B是用于处理错误的流程图。
图4A、图4B、图5和图6是错误处理图的例子。
具体实施方式
1.概述
本申请涉及2002年10月10日提交的美国专利申请10/268,509“Startup andControl of Graph-Based Computation”,以及2007年4月10日提交的作为申请10/268,509的继续申请的11/733,579“Transactional Graph-Based Computation”。两者均通过引用被合并于此。
下面描述的系统实施了用于执行依据计算图定义的计算的方法。参考图1,计算图100的例子包括许多个由单向连线120联结(join)的顶点110。在图1中所示的例子中,顶点110被从1到6进行编号,并且连线120也被从1到6进行编号。计算图100处理由一系列工作元素130组成的工作流,工作元素例如根据和事务(transaction)处理系统相关联的计算图来处理的各个事务。一个事务可以由多个工作元素构成。每一个顶点均和由整个计算图定义的计算的一部分相关联。在这个例子中,顶点1提供对用于和一个或更多个事务相关联的初始的一系列工作元素130的存储器的访问,并在其输出连线1上传递该系列。实施和每一个顶点相关联的计算的过程依次处理工作元素130,并且通常在该顶点的一个或更多个输出连线上产生工作元素。
当至少一个工作元素在顶点的每一个输入处排队时,用于顶点的过程准备好运行。如图1中所示,在连线1上,工作元素130在运输中,在顶点3,一个工作元素排队准备好进行处理,并且在顶点4,两个工作元素排队等候处理。因此,用于顶点3和4的过程准备好运行以处理排队的工作元素。如图所示,顶点5在其输入之一——连线4——上具有排队的工作元素,但是在另一输入——连线5——上没有排队的工作元素。因此,和顶点5相关联的过程未准备好运行。
在某些例子中,工作流可以包括来自多个事务的工作元素(即一个和更多个工作元素的第一集合对应于第一事务,一个和更多个元素的第二集合对应于第二事务,等等)。事务可以包括代表全部要作为集合处理的动作的工作元素集合,所以如果一个动作失败,则不会执行任何一个动作。图的多个实例可被用来处理多个事务,并且,通过利用可重用计算元素(例如,操作系统过程)实施图组件的计算,可以按需要生成各个图组件的多个实例(由计算图的顶点代表)。通过把不同的事务和图的不同相应实例相关联,多个事务可以被并行(concurrently)处理。如下面更详细地描述的那样,由于使多个计算元素能够按需要分配给图实例,因此有效的资源共享能够通过使计算元素由一个图实例使用并被另一个图实例重新使用来实现。
参考图2,用于执行计算图以处理包含事务的工作流的系统200包括存储的图数据结构210。这些数据结构包括计算图的说明,其包括图的顶点和连线的特性。无需加载整个图就可以访问这些数据结构的部分,例如,可以加载各个图组件的说明以便把工作元素分配给该图组件的新生成的实例。
系统的事务预订(subscription)模块220从事务预订图组件(例如提供命令而不一定处理工作元素的组件,例如由图1的顶点10代表的组件)接收控制输入222,该控制输入包括使用在所存储的图数据结构210中规定的相应的计算图处理特定工作流232的命令。事务预订模块220追踪(keep track of)可用于实例化要被分配给特定事务的图实例的图计算处理资源230。事务预订模块220包括使用计算图的说明来确定如何使用图计算处理资源230实例化图实例的调度器,图计算处理资源230通常由多个过程(或过程池)组成,其中每一个过程起到实例化图实例中的给定图组件的可重用计算元素的作用。被执行以进行图组件的计算的过程可以利用外部数据和过程240,外部数据和过程240包括数据库引擎、数据存储器,或者在和计算图的顶点相关联的处理期间访问的其他模块。在某些例子中,能够进行多个不同操作的单个过程或者过程集合被绑定到图的给定实例以处理该实例的所有操作。
在某些例子中,事务预订模块220的调度器使用远程过程调用(remote procedurecall,RPC)过程。当调度器接收到用于给定事务的工作元素时,它把该工作元素分配给和事务相关联的(即被分配到的)图实例的适当组件。分配给该图实例的过程执行该组件的计算。和该工作元素相关联的数据被写入可用于该图实例并可被该过程访问的临时空间。该调度器被通知事务预订模块220已完成该组件,然后,调度器调度任何下游图组件用于执行。最终,该事务将穿越整个图(因为该图是使用图计算处理资源230执行的),并通过RPC公布(publish)过程输出。这取走在临时空间中累积的数据并将其交给适当的输出通道,例如图1中的数据库输出6。RPC公布过程可以与PRC预订过程复用,因此它可以访问最初在其上接收到事务的套接字。
一般来讲,不同的事务可以被并行处理,每一个均由图的不同实例处理。系统200通过事务预订模块220为用于每一个事务的计算图的实例分配资源,并通过图计算处理资源230控制它们的执行以处理工作流。
2.图数据结构
系统200包括许多特征,它们提供了图计算的快速启动以及有限资源的有效共享。
在利用计算图的实例处理事务之前,事务预订模块220在功能共享存储器(functionally shared memory)中为该图实例生成运行时数据结构。在一个实施例中,生成单个共享存储器段,在其中生成用于图实例的所有运行时数据结构。
绑定到事务的一个过程或更多个过程和图的顶点相关联,并且每一个过程均把共享的存储器段映射到其地址空间。过程可以在为各个事务生成图实例时与顶点相关联,或者,它们可以在生成或者执行各个图组件的实例之前不与顶点相关联。在处理事务期间,过程从图实例的运行时数据结构读取工作元素,并将工作元素写入图实例的运行时数据结构。即,通过该图流动的用于事务的数据通过共享的存储器段中的这些运行时数据结构,被从组件传递到组件,并且如果多于一个的过程被绑定到该事务,则被从过程传递到过程。通过在图的每一个组件可访问的存储器空间中包含用于给定事务的数据,并利用始终如一(consistent)的过程或者过程集合执行每一个组件,可以在组件之间共享状态。除了其他优点外,这允许在确认事务被成功执行以后,和执行事务的计算相关联的所有数据库操作被立刻提交(commit)。
3.过程池
如上面所介绍的那样,可以使用由调度器管理和分配的过程池实施用于执行图实例的组件的图计算处理资源230。多于许多不同类型的计算中的每一个,在使用要求该类型的计算的图组件开始处理事务的工作流之前生成过程池。当事务被分配给图实例时,如果需要特定类型的计算来进行该图实例的给定组件的计算,则调度器分配该过程池的一个成员供该图实例使用并且将该过程池成员分配给该给定组件。在处理事务的持续时间中,该过程池的成员保持和该图实例相关联,并且可被重新用于该图实例内要求同一类型的计算的其他组件。一旦在用于该事务的图实例中需要该类型的计算的最后一个组件的上游没有工作元素了,则该过程可以被释放回过程池。可能有很多不同的过程池,每一个均和对应的计算类型相关联。在池中的过程可被用于相同或者不同图实例中的组件,例如包括用于不同图实例中给定类型的组件,以及用于一个图实例中多个不同组件。
在某些实施方案中,过程池中的每一个过程是被管理过程池的事务预订模块220调用的单独过程(例如UNIX过程)。对于每一个过程池,模块220维持单独的工作队列。工作队列中的每一个条目(entry)标识了图实例的一个特定顶点,针对该特定顶点该过程要进行计算。
某些过程保留或者消耗固定的资源。这种过程的例子是做出到诸如
Figure BDA0001262800740000081
数据库之类的数据库的连接的过程。由于资源被消耗用于形成和维持每一个数据库连接,所以期望限制这种处于活动的过程的数量。如果图包括访问数据库的多个组件,则可能期望用于给定事务的所有数据库操作在单个数据库过程中发生。为了适应这一点,可以建立过程集合,使得每一个过程维持到数据库的连接,并且每一个过程均能够执行给定图实例可能要求的数据库功能。当图实例被分配给给定事务时,如上所述,来自所述集合的一个过程被分配给该图实例用于整个事务,并且所有的数据库组件被复用到该过程。当顶点要求访问数据库的过程来处理事务的工作元素时,所分配的过程(其已经建立其与数据库的连接)被和该顶点相关联。以这种方式,避免了连接到该数据库本来需要的该过程的初始化步骤的开销,并且针对给定事务的所有数据库动作都由同一过程处理。其他类型的过程可以以相同的方式处理。
系统200支持不同的方法来配置用于顶点的过程,其区别在于顶点何时和过程相关联,以及何时启动针对顶点的计算。在一个类型的配置中,在其所有输入工作元素的所有数据完全可用之前,过程不和顶点相关联。如果工作元素较大,则对于整个工作元素由上游顶点计算并变为可用可能要花费一些时间。这种类型的配置避免了阻断(block)该过程以等待输入变得可用,从而其可以被该实例中的其他顶点使用。
另一种类型的配置使用流模式。过程在至少每一个输入的开始可用时被和顶点相关联并启动。在过程执行的同时,其输入中的每一个的剩余部分变得可用。如果该输入足够快地变得可用,则该过程不阻断对输入的等待。但是,如果该输入未变为可用,则过程可能阻断。
4.计算控制
图3A是用于使用相应图实例处理每一个事务的过程300的流程图。当事务预订模块220(图2)接收到关于处理事务的请求时,它首先确定哪个计算图(以及对应的类型)适合处理该事务(步骤305)。例如,调度器确定某个计算图适合(例如包括适当的组件)进行该事务的计算。这可以由事务自身规定,或者,事务预订模块220可以包括或者可访问把特定事务类型和特定计算图相关联的数据。然后,事务预订模块220生成处理该事务所需类型的计算图的图实例(如果必要的话)(步骤310),并把该事务与其相关联。作为这个过程的一部分,事务预订模块220分配共享存储器段的一部分用于图实例的运行时数据结构,并把该类型的计算图的图模板复制到运行时数据结构中,从而初始化该运行时数据结构。在通过引用合并于此的美国专利No.7,167,850中更详细地描述了使用图模板的例子。在某些例子中,图实例已被生成,并且在这个阶段,一个图实例只是被分配给当前的事务。然后,如下面更详细地描述的那样,事务预订模块220在调度器的控制下执行该图实例(步骤320)。图实例包括和可重用的相应组件相关联的(被分配的)计算元素(例如,过程)。当事务的整个工作流已被处理时,事务预订模块220提交执行该图的结果(例如,提交输出数据库的变化),并可选地释放所分配的资源和计算元素以及删除该图实例的运行时数据结构,从而允许共享存储器段的该部分被重新用于其他图实例(步骤330)。
5.替换方案
如上面指出的那样,在预期到存在将需要计算图的事务时,有可能预先生成该计算图的已被实例化的实例的图池。当事务被接收并需要图实例时,如果可从图池获得一个图实例,则从图池分配而不必生成该图实例。以这种方式,事务的启动成本被进一步降低。当完成用于事务的计算时,通过把变量恢复到被分配给该事务之前的其初始值并释放任何动态分配的存储器,来将该图复位。在图实例被复位后,其被返回图池。
在某些例子中,图池中图实例的数量可被允许按需要增长,例如,可能存在每一个图的最小数量的实例,并且可以按需要生成更多实例。
在上面的描述中,过程可以按需方式被分配给图中的顶点,其中,在到该顶点的所有输入都可用之前,过程不和顶点相关联,尽管它们被绑定到特定的图实例和事务。另一种方法是在事务和图实例相关联时把过程和顶点相关联,并维持所述关联,直到事务的整个工作流已被处理为止。
6.应用
上面描述的类型的计算图的一个应用是在银行应用中处理金融事务。一般地,不同类型的事务要求不同类型的计算图。典型的计算图与客户事务的类型和处理该事务所需的“后端”服务的某种组合相关联。例如,事务可以是ATM请求、银行出纳员(bank teller)输入,以及计算机或者web服务器之间的企业对企业(business to business)事务。不同客户可能具有不同的后端系统,特别是当银行合并并且客户被从不同的原银行组合时。他们的帐户可能在非常不同的后端系统上维护,尽管他们都是收购方(acquiring)银行的客户。因此,图中的不同顶点可被用来处理不同的事务。不同的服务可被和图中的顶点相关联。例如,一些顶点可以和例如更新余额、在帐户中存钱,或者进行开户以便在帐户中保存资金的功能相关联。在某些实施方案中,过程到顶点的即时(on-the fly)分配避免了使用于未使用的顶点的过程保持空闲的开销。
以每个事务为基础分配图实例的优点是它允许数据流的并行化,否则,这些数据流将必须被串行处理。分配给不同事务的图实例可以按和它们开始的顺序不同的顺序结束,例如,如果第一个事务比第二个事务更复杂。在串行化系统可能仍在处理第一事务时,这可以允许第二个图实例被释放并可用于处理第三事务。
7.错误处理
以每个事务为基础分配图实例的优点是因执行图实例时的错误所致的故障(failure)可以被包含到该事务,并且不危害其他图实例的并行处理。通过把提交计算图的结果延迟到整个事务完成,如果发生错误,则数据可以被“回滚(rolled-back)”到其在系统开始处理该事务之前所处的状态。可以用几种方式处理错误。
在某些例子中,“错误处理”组件被包括在图中。错误处理组件是一种特殊情况,因为其不是必须执行以使图完成。在任一顶点处的组件产生错误的情况下,不是导致整个计算中止(abort),而是把图的执行重定向到错误处理组件。给定组件和错误处理组件之间的显式关系(包括从组件的输出端口到错误处理组件的输入端口的工作流)被称为异常流(exception flow)。调度器从图实例去除作为失败计算的一部分的工作元素,并且错误处理组件提供输出,该图可以使用所述输出来提供错误消息作为到调用其的过程的输出。依赖于实施方案,除了通过异常流以外,错误处理组件还可以通过其它方式接收数据输入。
图3B示出了执行图和处理在图中出现的错误的示范性过程350的流程图。调度器根据连线处理图组件中的工作元素的工作流(步骤360)。当调度器识别出在图组件中已出现错误时(步骤370),调度器把处理重定向到错误处理组件。这种重定向的一个方面是根据到该错误处理组件的任何异常流把工作元素定向到该错误处理组件(步骤380)。如下面更详细地描述的那样,处理异常流使错误处理组件能够向图外部的过程提供错误信息(步骤390),图外部的过程代表在图开始处理其中出现错误的事务之前图处理的状态。
对于图中的任何组件,存在指定的错误处理组件。这可以是从另一图组件直接接收异常流输出或者其他错误数据输出的组件,或者,它可以被定义为用于组件集合的指定的错误处理组件,而不管其是否接收到异常流。在某些例子中,如图4A到4B中所示那样处理异常流。在这个例子中,图被设计用于执行事务型(transactional)计算,并且示出了预订902和公布904组件,但是,相同的技术可以在用于非事务型工作流的图中使用。在图4A中,调度器已经激活图900。从第一组件预订902开始,在任何非异常路径下游中的每一个组件被标记为“使能”。异常路径是在异常情况下(例如,如上所述引向错误处理组件的异常流)只接收工作元素流或者其他错误数据的路径。这被称为使能传播(enablementpropagation)。如果在其他组件下游的给定组件的输入中的任何一个被连接到使能的上游组件,则该给定组件被使能。也就是,复制(replicate)906、重新格式化908、调用web服务910、上滚(rollup)912、融合(fuse)914和公布(publish)904都被使能,但是未从任何使能的组件接收到非异常输入流的错误处理器916及其下游的两个组件回滚918和错误日志920仍保持“禁止”。
如果出现错误,则调度器停止(halt)出错组件的执行,允许任何其他已在执行的组件执行完毕,并把任何相关数据(例如,已完成的组件的异常流输出,或者出错组件的“错误报告输出”)传播到错误处理组件。例如,如果调用web服务组件910引发(trigger)了错误,则来自复制组件906的异常流和来自调用web服务组件910的拒绝端口(reject port)921的错误报告输出分别在输入922和924处输入到错误处理组件916。错误报告输出端口(被示为图900中某些组件的底部的端口)可被用来提供关于已发生的任何错误的信息,包括例如描述发生了什么错误、哪里发生了错误以及与该错误相关联的任何拒绝的工作元素的信息。
在这个例子中,对于复制组件906,存在三个错误报告输出端口。拒绝端口921提供可能已经导致该错误或者以某种方式和该错误相关的工作元素。错误端口923提供描述关于该错误的相关信息的错误消息。日志端口925能够可选地提供记录发生了该错误的信息。即使没有错误发生,日志端口925也能够提供关于在执行的正常过程期间的事件的日志信息。在这个例子中,对于可能需要使用拒绝端口921的那些组件(例如,调用web服务组件910),拒绝端口921被显式地示为被连接。但是,错误端口923和日志端口925未被显式地示为被连接,而是具有到错误处理组件916的隐式连接。例如,端口可以由开发者连接,然后使用接口控制隐藏。在某些实施方案中,系统可以自动地确定到默认错误处理组件的隐式连接,随后这些隐式连接可以被开发者无效。对于较大和/或复杂的图,用于一个或更多个类型的错误报告端口的这种“隐式连线”提高了开发者对图的直观理解(visualcomprehension),这是基于图的编程的益处之一。在某些实施方案中,可以提供直观线索来指示一个端口被隐式地连接到另一个组件的端口(例如,图标或者阴影的或者彩色的端口)。隐藏的隐式工作流连接中的一些或者全部也可以响应于用户请求(例如,点击按钮或者在端口上悬浮)而被显露为显式连线。
如果在错误出现前该复制组件906已经结束操作,则来自复制组件906的异常流可能已经在输入922处排队。然后,调度器使能错误处理组件(在这个例子中为916),禁止出错组件(在这个例子中910),并从错误处理组件进行使能传播(在这个例子中使能918、904、920)。被禁止的出错组件下游的任何组件只要未从错误处理组件下游的使能组件接收到流,就被禁止(在这个例子中禁止912和914)。最后,向使能组件提供流的任何剩余组件被使能(在这个例子中使能906和902)。
因此,这个过程的结果由图4B中的“<使能>”和“<禁止>”组件的指示示出。在错误处理器916之后把公布组件904连接回该流允许该事务被完成,尽管具有用于其输出的错误消息。丢弃已传播到现在禁止的组件的数据,例如来自重新格式化组件908的输出。
如上面所指出的那样,数据可以作为异常流的一部分或者作为另一组件的错误报告输出的一部分流到错误处理组件。在出现错误之前可用的数据,例如,来自图4B中的复制模块906的输出数据,被暂时保持在错误处理器916的输入队列中,直到确实需要它时为止。如果该图无错误地完成,则错误处理器916永不激活并且数据被丢弃。如果的确出现错误,则错误处理器916使用其已经接收到的任何输入数据来拟定(formulate)响应。如图4B中所示,在某些例子中,使用回滚组件918。来自复制组件906的输入数据告诉错误处理器916在该图开始处理事务之前事情(things)的状态是什么。错误处理器916将它输出到回滚组件918,回滚组件918使用它把被其他组件修改的任何数据恢复到其在该事务执行之前的状态。然后,执行流既去往记录错误的错误日志920,也去往公布组件904,所以错误可以被报告并被任何递送到图900的较高级别的过程适当地处理。从任一组件到错误处理器916的异常流也可以包括数据。如果除了来自复制组件906的原始数据以外还存在到错误处理器916的输入,例如来自调用web服务组件910的错误输出或者来自任何其他组件(未示出)的异常流,则这可以被用来在错误日志或者公布组件拟定更详细的错误消息。
在某些例子中,如图5中所示,图包括被实施为子图的顶点,例如子图950,每一个子图可以具有其自己的错误处理组件952。因此,可以存在一种子图层次结构,其具有顶层图,该顶层图具有作为子图的顶点,这些子图处于较低“图层”,依此类推。如果在子图950的任何组件954、956、958、960、962中出现错误,则处理流被路由到错误处理组件952,它在子图错误报告端口974上提供错误报告输出。错误处理组件952的范围是子图950。错误处理组件可以具有接收来自另一图元(graph element)的异常流(例如,元素954)或者另一图元(例如,元素958)的错误输出959的输出的输入966、968,所示另一图元自身可以是嵌套的子图。在某些例子中,如果错误处理组件具有多个输入,则只有最近接收数据的输入被使用。如果子图950的所有组件成功地完成它们的操作,则输出(工作流)被递送到正常子图输出端口970,并且子图950以外的处理流正常地继续进行。如果出现错误,则其可以被处理并在错误流输出972或者错误报告输出974上报告。在其他的例子中,也可以在标准输出970上报告错误。
如果子图不具有错误处理,其错误在该子图是其一部分的子图层次结构中向上流动,直到它们到达具有错误处理的图层为止,此刻,该层的错误处理组件被激活。
暂时保存在错误处理组件的输入处的数据可以是工作流的子集,其可以是和事务相关联的全部数据,或者,其可以是整个数据流。如果错误处理组件具有错误输出端口,其将基于暂时保存的数据或者从具有错误的组件接收到的输入来输出导致错误的记录或者其他错误信息。如果它不具有这样的端口,则它可以在其输出端口上简单地输出违规记录(offending record)作为正常输出。
如果子图不具有错误处理,其组件中的错误在该子图是其一部分的子图层次结构中向上流动,直到它们到达不具有错误处理的图层为止,此刻,该层的错误处理组件接收适当的输入,并产生适当的错误输出。
错误处理可以允许在基于图的计算中通常会避免的循环图排列。例如,如图6中所示,在图1100中,来自错误处理器1104下游的计算组件1112的错误输出1116把流返回到该同一错误处理器1104。错误处理器1104也从预订组件1102接收输入并把输出提供给回滚组件1106,如图4A中所示。回滚组件1106基于由预订组件1102输入到错误处理器1104的数据,把数据返回到尝试该失败的计算之前其所处的状态。计数器组件1108可以从回滚组件1106接收流,并在把流返回到收集组件1110之前使其值递增。计算组件1112可以以几种不同方式使用从计数器组件1108输入的值。例如,它可以在执行其计算之前查考(consult)该值,以查看其是否应该对其操作做出某些改变。它也可以在错误之后查考计数器,以查看是否已经做出了某个阈值数量的尝试。如果已经超过阈值,则其把其输出定向到通向第二错误处理器1120的第二错误输出1118,而不是再次通过输出1116把错误输出返回到错误处理器1104。如果未使用计数器组件,则可以使用某个其他技术来打破该循环并确保该图最终完成。
为了确保循环图被明确地定义(well-defined),在错误时将被使能的元素的集合被基于图的拓扑预先确定,而不是如上所述那样当需要时确定。
在某些例子中,可以使用其他规则来确保错误处理正确地工作。例如,在某些实施方案中,可以只在图内的一个组件的异常端口上触发错误处理(可以忽略任何同时的错误)。如果图组件或者子图连线到错误处理组件,则其必须将该组件用在任何错误上。如果图组件或者子图未连线到错误处理组件,则错误必须由用于当前范围的通用错误处理器处理。每一个图组件一般就与一个错误处理器相关联。这些规则可以依赖于系统的要求被修改或者组合。它们在需要紧密控制用于每一个事务的过程的情况下能够用得到。
在某些例子中,当出现错误时,操作系统确定哪个错误处理组件和经历该错误的组件相关联,然后确定应该使用到该错误处理组件的哪个输入流(如果有的话)。如果存在多个输入,则使用最近有数据写入其中的那一个。
如刚才描述的,错误处理可以是主动的,其中组件或者子图处理它们自己的错误并产生能够被其他组件用来诊断或者避开(work around)错误的错误代码,或者,它可以是被动的。在被动系统中,遇到错误的图简单地失效,并允许操作系统提供错误处理,例如,通过给调试过程提供堆栈转储。
图的每一个组件隐式地连接到调度器,其不需要来自图的专门邀请来干预和处理错误。调度器可以从图实例去除和错误有关的数据,并且,在某些例子中,不需要知道错误的本质。在某些情况下,调度器可以把分配给图的资源分阶段地返回到它们相应的池中,从而允许图完成处理未受错误影响的工作元素。
8.实施方案
本发明可以被实现在硬件或者软件中,或者两者的组合(例如可编程逻辑阵列中)。除非另外规定,否则所描述的算法并非固有地与任何特定的计算机或者其他装置有关。具体来说,各种通用机可以和根据这里的教导所写的程序一起使用,或者,构造更专门化的装置(例如集成电路)来执行特定功能可能更方便。因此,本发明可以被实施在一个或更多个在一个或更多个被编程或者可编程计算机系统(它们可以是各种体系结构,例如分布式、客户端/服务器,或者网格)上执行的计算机程序中,所述计算机系统均包含至少一个处理器、至少一个数据存储系统(包括易失和非易失存储器,和/或存储元件)、至少一个输入设备或者端口,以及至少一个输出设备或者端口。程序代码被应用于输入数据以执行这里所描述的功能,并产生输出信息。输出信息被以已知方式应用于一个或更多个输出设备。
每一个这样的程序均可以被用任何期望的计算机语言(包括机器、汇编,或者高级程序、逻辑,或者面向对象编程语言)实施以便和计算机系统通信。在任何情况下,语言可以是编译或者解释语言。
每一个这样的计算机程序最好被存储或者下载到可被专用或者通用可编程计算机读取的存储介质或者设备(例如固态存储器或者介质,或者磁性或光学介质),用于在计算机系统读取存储介质或者设备来执行这里所描述的程序时配置和操作计算机。发明系统也可以被视为被实施为计算机可读存储介质,配置有计算机程序,其中,如此配置的存储介质导致计算机系统以特定和预先定义的方式工作来执行这里所描述的功能。
要理解,前面的描述旨在说明而非限制本发明的范围,本发明由所附权利要求的范围限定。其他的实施例在下列权利要求的范围内。

Claims (60)

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所述的方法,其中处理包括:
使能图的第一组件;
禁止所述错误处理图组件;和
对于所述第一组件下游的除了所述错误处理图组件以外的每一个组件,如果该组件上游的最接近该组件的组件被使能,则使能该组件。
16.如权利要求15所述的方法,其中把处理重定向到所述错误处理图组件包括:
停止执行每一个被使能的图组件;
禁止遇到错误的组件;
使能所述错误处理图组件;
禁止在遇到错误的组件下游但不在所述错误处理图组件下游的组件;和
使能所述错误处理图组件上游的组件。
17.如权利要求1所述的方法,其中把处理重定向到所述错误处理图组件包括:在第一组件中出现错误的情况下,
如果在第一条件下出现错误,则把过程流从所述第一组件定向到该第一组件上游的第一错误处理图组件,
并且,如果在第二条件下出现错误,则把过程流从所述第一组件定向到该第一组件下游的第二错误处理图组件。
18.如权利要求17所述的方法,其中所述第一条件是计数器在界限以下。
19.如权利要求17所述的方法,其中所述第二条件是计数器在界限以上。
20.如权利要求17所述的方法,其中把处理重定向到所述错误处理图组件还包括使能图组件的集合,该集合在错误之前已被确定。
21.一种用于处理基于图的计算的系统,所述系统包括:
在包括代表根据联结顶点的连线处理工作元素的工作元素处理图组件的顶点的图内,
用于提供被配置成向所述图外部的过程提供错误信息的至少一个错误处理图组件的装置,和
用于处理数据的装置,其被配置用于:
在工作元素处理图组件处接收要处理的工作元素;以及
响应于工作元素处理图组件在进行处理时遇到错误,把处理重定向到所述错误处理图组件,其中,把处理重定向到所述错误处理图组件包括根据到代表所述错误处理图组件的顶点的至少一个连线,把至少某些接收到的工作元素从所述工作元素处理图组件中的一个或多个工作元素处理图组件定向到所述错误处理图组件。
22.如权利要求21所述的系统,其中把处理重定向到所述错误处理图组件包括从至少一个输入队列去除工作元素。
23.如权利要求21所述的系统,其中把处理重定向到所述错误处理图组件包括处理被定向到所述错误处理图组件的工作元素。
24.如权利要求23所述的系统,其中处理被定向到所述错误处理图组件的工作元素包括回滚在错误之前做出的对数据库的变化。
25.如权利要求23所述的系统,其中处理数据包括,对于在处理错误中未包括的图组件,丢弃被定向到那些图组件的工作元素。
26.如权利要求21所述的系统,还包括提供子图,所述子图包括被配置成提供错误代码作为该子图的输出的错误处理子图组件。
27.如权利要求26所述的系统,其中如果由所述子图提供的输出指示子图中出现错误,则把处理重定向到所述错误处理图组件。
28.如权利要求21所述的系统,其中把处理重定向到所述错误处理图组件包括把当发生错误时图组件正在处理的工作元素从遇到错误的图组件传送到所述错误处理图组件。
29.如权利要求28所述的系统,其中所述工作元素被根据到代表所述错误处理图组件的顶点的连线传送。
30.如权利要求28所述的系统,其中把处理重定向到所述错误处理图组件包括把关于错误的报告信息从遇到错误的图组件传送到所述错误处理图组件。
31.如权利要求30所述的系统,其中所述报告信息被根据遇到错误的图组件与所述错误处理图组件之间的隐式连接传送。
32.如权利要求31所述的系统,还包括用于响应于用户请求而把隐式连接显露为代表遇到错误的图组件的顶点与代表所述错误处理图组件的顶点之间的显式连线的装置。
33.如权利要求21所述的系统,其中提供所述错误处理图组件包括提供多个错误处理图组件,并且把处理定向到所述错误处理图组件包括基于从遇到错误的图组件提供的输出选择错误处理图组件。
34.如权利要求21所述的系统,处理数据还包括:如果图组件在进行处理时遇到错误,则输出导致该错误的工作元素的标识。
35.如权利要求21所述的系统,其中处理包括:
使能图的第一组件;
禁止所述错误处理图组件;和
对于所述第一组件下游的除了所述错误处理图组件以外的每一个组件,如果该组件上游的最接近该组件的组件被使能,则使能该组件。
36.如权利要求35所述的系统,其中把处理重定向到所述错误处理图组件包括:
停止执行每一个被使能的图组件;
禁止遇到错误的组件;
使能所述错误处理图组件;
禁止在遇到错误的组件下游但不在所述错误处理图组件下游的组件;和
使能所述错误处理图组件上游的组件。
37.如权利要求21所述的系统,其中把处理重定向到所述错误处理图组件包括:在第一组件中出现错误的情况下,
如果在第一条件下出现错误,则把过程流从所述第一组件定向到该第一组件上游的第一错误处理图组件,
并且,如果在第二条件下出现错误,则把过程流从所述第一组件定向到该第一组件下游的第二错误处理图组件。
38.如权利要求37所述的系统,其中所述第一条件是计数器在界限以下。
39.如权利要求37所述的系统,其中所述第二条件是计数器在界限以上。
40.如权利要求37所述的系统,其中把处理重定向到所述错误处理图组件还包括使能图组件的集合,该集合在错误之前已被确定。
41.一种存储用于处理基于图的计算的计算机程序的计算机可读介质,所述计算机程序包括指令,用于使计算机系统进行以下操作:
在包括代表根据联结顶点的连线处理工作元素的工作元素处理图组件的顶点的图内,
提供被配置成向所述图外部的过程提供错误信息的至少一个错误处理图组件,和
处理数据,其中,所述处理数据包括:
在工作元素处理图组件处接收要处理的工作元素,以及
响应于工作元素处理图组件在进行处理时遇到错误,把处理重定向到所述错误处理图组件,其中,把处理重定向到所述错误处理图组件包括根据到代表所述错误处理图组件的顶点的至少一个连线,把至少某些接收到的工作元素从所述工作元素处理图组件中的一个或多个工作元素处理图组件定向到所述错误处理图组件。
42.如权利要求41所述的计算机可读介质,其中把处理重定向到所述错误处理图组件包括从至少一个输入队列去除工作元素。
43.如权利要求41所述的计算机可读介质,其中把处理重定向到所述错误处理图组件包括处理被定向到所述错误处理图组件的工作元素。
44.如权利要求43所述的计算机可读介质,其中处理被定向到所述错误处理图组件的工作元素包括回滚在错误之前做出的对数据库的变化。
45.如权利要求43所述的计算机可读介质,其中处理数据包括,对于在处理错误中未包括的图组件,丢弃被定向到那些图组件的工作元素。
46.如权利要求41所述的计算机可读介质,还包括用于使计算系统提供子图的指令,所述子图包括被配置成提供错误代码作为该子图的输出的错误处理子图组件。
47.如权利要求46所述的计算机可读介质,其中如果由所述子图提供的输出指示子图中出现错误,则把处理重定向到所述错误处理图组件。
48.如权利要求41所述的计算机可读介质,其中把处理重定向到所述错误处理图组件包括把当发生错误时图组件正在处理的工作元素从遇到错误的图组件传送到所述错误处理图组件。
49.如权利要求48所述的计算机可读介质,其中所述工作元素被根据到代表所述错误处理图组件的顶点的连线传送。
50.如权利要求48所述的计算机可读介质,其中把处理重定向到所述错误处理图组件包括把关于错误的报告信息从遇到错误的图组件传送到所述错误处理图组件。
51.如权利要求50所述的计算机可读介质,其中所述报告信息被根据遇到错误的图组件与所述错误处理图组件之间的隐式连接传送。
52.如权利要求51所述的计算机可读介质,还包括响应于用户请求而把隐式连接显露为代表遇到错误的图组件的顶点与代表所述错误处理图组件的顶点之间的显式连线。
53.如权利要求41所述的计算机可读介质,其中提供所述错误处理图组件包括提供多个错误处理图组件,并且把处理定向到所述错误处理图组件包括基于从遇到错误的图组件提供的输出选择错误处理图组件。
54.如权利要求41所述的计算机可读介质,其中处理数据还包括:如果图组件在进行处理时遇到错误,则输出导致该错误的工作元素的标识。
55.如权利要求41所述的计算机可读介质,其中处理包括:
使能图的第一组件;
禁止所述错误处理图组件;和
对于所述第一组件下游的除了所述错误处理图组件以外的每一个组件,如果该组件上游的最接近该组件的组件被使能,则使能该组件。
56.如权利要求55所述的计算机可读介质,其中把处理重定向到所述错误处理图组件包括:
停止执行每一个被使能的图组件;
禁止遇到错误的组件;
使能所述错误处理图组件;
禁止在遇到错误的组件下游但不在所述错误处理图组件下游的组件;和
使能所述错误处理图组件上游的组件。
57.如权利要求41所述的计算机可读介质,其中把处理重定向到所述错误处理图组件包括:在第一组件中出现错误的情况下,
如果在第一条件下出现错误,则把过程流从所述第一组件定向到该第一组件上游的第一错误处理图组件,
并且,如果在第二条件下出现错误,则把过程流从所述第一组件定向到该第一组件下游的第二错误处理图组件。
58.如权利要求57所述的计算机可读介质,其中所述第一条件是计数器在界限以下。
59.如权利要求57所述的计算机可读介质,其中所述第二条件是计数器在界限以上。
60.如权利要求57所述的计算机可读介质,其中把处理重定向到所述错误处理图组件还包括使能图组件的集合,该集合在错误之前已被确定。
CN201710217866.1A 2007-07-26 2008-07-25 用于处理基于图的计算的方法、系统以及计算机可读介质 Active CN107423046B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US95207507P 2007-07-26 2007-07-26
US60/952,075 2007-07-26
CN200880107445.2A CN101821721B (zh) 2007-07-26 2008-07-25 具有误差处理的事务型基于图的计算

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200880107445.2A Division CN101821721B (zh) 2007-07-26 2008-07-25 具有误差处理的事务型基于图的计算

Publications (2)

Publication Number Publication Date
CN107423046A CN107423046A (zh) 2017-12-01
CN107423046B true CN107423046B (zh) 2021-08-06

Family

ID=40281847

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710217866.1A Active CN107423046B (zh) 2007-07-26 2008-07-25 用于处理基于图的计算的方法、系统以及计算机可读介质
CN200880107445.2A Active CN101821721B (zh) 2007-07-26 2008-07-25 具有误差处理的事务型基于图的计算

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN200880107445.2A Active CN101821721B (zh) 2007-07-26 2008-07-25 具有误差处理的事务型基于图的计算

Country Status (8)

Country Link
US (1) US8706667B2 (zh)
EP (2) EP2174222A4 (zh)
JP (3) JP5520219B2 (zh)
KR (2) KR101758670B1 (zh)
CN (2) CN107423046B (zh)
AU (1) AU2008279001B2 (zh)
CA (2) CA2965896C (zh)
WO (1) WO2009015342A1 (zh)

Families Citing this family (35)

* 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
WO2008021953A2 (en) * 2006-08-10 2008-02-21 Ab Initio Software Llc Distributing services in graph-based computations
CN107423046B (zh) 2007-07-26 2021-08-06 起元技术有限责任公司 用于处理基于图的计算的方法、系统以及计算机可读介质
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
CN107066241B (zh) * 2010-06-15 2021-03-09 起元技术有限责任公司 用于动态加载基于图的计算的系统和方法
US9032362B2 (en) * 2012-09-10 2015-05-12 Sap Se System and method for generating high performance calculators for calculation graphs
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component 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
US10565005B2 (en) * 2013-04-23 2020-02-18 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
AU2014360308B2 (en) 2013-12-05 2018-11-29 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
US10698878B2 (en) * 2015-03-06 2020-06-30 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
EP3394739B1 (en) 2015-12-21 2020-11-11 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
CN110515680B (zh) * 2018-05-21 2024-04-09 吕纪竹 一种实时判断大数据自身给定延迟重复性的方法
CN110515681B (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

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301336A (en) * 1986-10-24 1994-04-05 National Instruments, Inc. Graphical method for programming a virtual instrument
JPH08106540A (ja) * 1994-10-06 1996-04-23 Toshiba Corp 編集装置
US5924095A (en) * 1997-02-05 1999-07-13 Oracle Corporation Processing distributed transactions in heterogeneous computing environments using two-phase commit
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JP2000010788A (ja) * 1998-06-25 2000-01-14 Sharp Corp 緊急動作処理機能を有するコンピュータ装置
US6145017A (en) * 1997-08-05 2000-11-07 Adaptec, Inc. Data alignment system for a hardware accelerated command interpreter engine
JP2001022571A (ja) * 1999-07-09 2001-01-26 Riso Kagaku Corp 電子機器及び該電子機器の制御プログラム書き換え方法
CN1707481A (zh) * 2004-05-03 2005-12-14 微软公司 用于数据模型中实体的自动维护与修复的系统和方法
JP2006133986A (ja) * 2004-11-04 2006-05-25 Funai Electric Co Ltd ディスク装置のファームウェア書き換えシステム
CN1783132A (zh) * 2004-11-22 2006-06-07 微软公司 通过工作流事务的批处理来同步运行库和应用状态
CN1794220A (zh) * 2004-12-20 2006-06-28 微软公司 图表中放置元素的布局的方法、系统和计算机可读介质

Family Cites Families (173)

* 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
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
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
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
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
US6173276B1 (en) 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
US6377993B1 (en) 1997-09-26 2002-04-23 Mci Worldcom, Inc. Integrated proxy interface for web based data management reports
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
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
EP1365385B1 (en) 1998-11-09 2012-06-13 Broadcom Corporation Graphics display system with processing of graphics layers, alpha blending and composition with video data
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
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
US7409679B2 (en) 1999-12-20 2008-08-05 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
US7130484B2 (en) 2001-10-15 2006-10-31 Jonas August Biased curve indicator random field filters for enhancement of contours in images
US7085426B2 (en) 2001-10-15 2006-08-01 Jonas August Volterra 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
DE60106467T2 (de) 2001-12-14 2006-02-23 Hewlett-Packard Development Co., L.P., Houston Verfahren zum Installieren Überwachungsagenten, System und Computerprogramm von Objekten in einem IT-Netz Überwachung
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
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
US7417645B2 (en) 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
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
WO2005001721A1 (en) 2003-06-24 2005-01-06 Bae Systems Plc A method, tool and system for increasing the efficiency of a design process
CN101165650B (zh) * 2003-06-25 2012-10-10 起元科技有限公司 计算图的计算机辅助并行化
EP1652072A4 (en) 2003-07-11 2008-12-31 Computer Ass Think Inc METHOD AND APPARATUS FOR PROCESSING PARALLEL ACTIONS
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
WO2005022417A2 (en) 2003-08-27 2005-03-10 Ascential Software 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
US7840949B2 (en) 2003-11-03 2010-11-23 Ramal Acquisition Corp. System and method for data transformation using dataflow graphs
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
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
US7730482B2 (en) 2004-06-08 2010-06-01 Covia Labs, Inc. Method and system for customized programmatic dynamic creation of interoperability content
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 敷衍化した例外処理方法、およびそのコンピュータ読み取り可能なプログラム
US7598953B2 (en) * 2004-11-05 2009-10-06 Microsoft Corporation Interpreter for simplified programming of graphics processor units in general purpose programming languages
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
US7747565B2 (en) 2005-12-07 2010-06-29 Microsoft Corporation Garbage collector support for 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
WO2008021953A2 (en) 2006-08-10 2008-02-21 Ab Initio Software Llc Distributing services in graph-based computations
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 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
CN107423046B (zh) 2007-07-26 2021-08-06 起元技术有限责任公司 用于处理基于图的计算的方法、系统以及计算机可读介质
US8347292B2 (en) 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout
CA2698265C (en) 2007-09-20 2017-08-29 Craig W. Stanfill 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
WO2010002919A1 (en) 2008-06-30 2010-01-07 Ab Initio Software 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
JP5878537B2 (ja) 2010-08-25 2016-03-08 アビニシオ テクノロジー エルエルシー データフローグラフの特性の評価
US8566441B2 (en) * 2010-11-22 2013-10-22 Microsoft Corporation Network latency estimation for mobile devices

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301336A (en) * 1986-10-24 1994-04-05 National Instruments, Inc. Graphical method for programming a virtual instrument
JPH08106540A (ja) * 1994-10-06 1996-04-23 Toshiba Corp 編集装置
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5924095A (en) * 1997-02-05 1999-07-13 Oracle Corporation Processing distributed transactions in heterogeneous computing environments using two-phase commit
US6145017A (en) * 1997-08-05 2000-11-07 Adaptec, Inc. Data alignment system for a hardware accelerated command interpreter engine
JP2000010788A (ja) * 1998-06-25 2000-01-14 Sharp Corp 緊急動作処理機能を有するコンピュータ装置
JP2001022571A (ja) * 1999-07-09 2001-01-26 Riso Kagaku Corp 電子機器及び該電子機器の制御プログラム書き換え方法
CN1707481A (zh) * 2004-05-03 2005-12-14 微软公司 用于数据模型中实体的自动维护与修复的系统和方法
JP2006133986A (ja) * 2004-11-04 2006-05-25 Funai Electric Co Ltd ディスク装置のファームウェア書き換えシステム
CN1783132A (zh) * 2004-11-22 2006-06-07 微软公司 通过工作流事务的批处理来同步运行库和应用状态
CN1794220A (zh) * 2004-12-20 2006-06-28 微软公司 图表中放置元素的布局的方法、系统和计算机可读介质

Also Published As

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

Similar Documents

Publication Publication Date Title
CN107423046B (zh) 用于处理基于图的计算的方法、系统以及计算机可读介质
US8667329B2 (en) Processing transactions in graph-based applications
EP1559069B1 (en) Startup and control of graph-based computation
KR100322224B1 (ko) 클라이언트/서버 컴퓨터 시스템에서 서버 내의 클라이언트 요청들의 디스패칭시에 시맨틱 동시 제어를 수행하는 장치 및 방법
US9047144B2 (en) System and method for providing Quality-of-Services in a multi-event processing environment
Kunze et al. State spaces
AU2007202782A1 (en) Startup and control of graph-based computation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant