CN102576347A - 处理基于图的应用中的事务 - Google Patents

处理基于图的应用中的事务 Download PDF

Info

Publication number
CN102576347A
CN102576347A CN2010800427168A CN201080042716A CN102576347A CN 102576347 A CN102576347 A CN 102576347A CN 2010800427168 A CN2010800427168 A CN 2010800427168A CN 201080042716 A CN201080042716 A CN 201080042716A CN 102576347 A CN102576347 A CN 102576347A
Authority
CN
China
Prior art keywords
affairs
data
component
batch
data recording
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800427168A
Other languages
English (en)
Other versions
CN102576347B (zh
Inventor
B.P.杜罗斯
M.D.阿特伯里
C.W.斯坦菲尔
J.S.沃利三世
H.M.布罗姆利
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 CN102576347A publication Critical patent/CN102576347A/zh
Application granted granted Critical
Publication of CN102576347B publication Critical patent/CN102576347B/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/0727Error 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 a storage system, e.g. in a DASD or network based storage system
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • 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

Landscapes

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

Abstract

基于图的计算具有多个节点,所述节点表示由一个或多个链路连接的图组分,所述链路表示组分之间的数据流。准备所述计算包括:标识至少第一集合的组件以处理计算中的多个事务;以及将第一组的一个或多个数据记录以及与该数据记录对应的数据操作与第一事务相关联,并且将第二组的一个或多个数据记录以及与该数据记录对应的数据操作与第二事务相关联。执行所述计算以便处理至少第一事务和第二事务包括:延迟由第一集合的组件对与第二组的初始数据记录对应的数据操作的执行,直到第一集合的组件执行了与第一组的最后数据记录相对应的数据操作之后。

Description

处理基于图的应用中的事务
相关申请交叉引用
本申请要求2009年9月25日提交的美国申请序列号61/245862以及2009年12月15日提交的美国申请序列号12/638588的优先权,上述每一个美国申请通过引用而被合并于此。
技术领域
本公开涉及处理基于图的应用中的事务(transaction)。
背景技术
常常可以通过有向图将复杂计算表示为数据流,其中该计算的组件(component)与图的顶点相关联,并且组件之间的数据流对应于图的链路(弧、边)。在美国专利5966072,EXECUTING COMPUTATIONS EXPRESSEDAS GRAPHS中描述了实现这种基于图的计算的系统。执行基于图的计算的一种方法是执行多个进程,每个进程与图的不同顶点相关联,并且根据图的链路在所述进程之间建立通信路径。例如,通信路径可以使用TCP/IP或UNIX域套接字,或者使用共享存储器来在进程之间传递数据。
发明内容
在一个方面,总的来说,一种计算机实现的方法包括:通过以下方式准备具有多个节点的基于图的计算:标识至少第一集合的图组分以处理计算中的多个事务;以及将第一组的一个或多个数据记录以及与该数据记录对应的数据操作与第一事务相关联,并且将第二组的一个或多个数据记录以及与该数据记录对应的数据操作与第二事务相关联,所述节点表示由一个或多个链路连接的图组分,所述链路表示图组分之间的数据流。该方法包括执行基于图的计算以便处理至少第一事务和第二事务,包括:延迟由第一集合的图组分对与第二组的初始数据记录对应的数据操作的执行,直到第一集合的图组分执行了与第一组的最后的数据记录相对应的数据操作之后。
该方面可以包括以下特征中的一个或多个。
执行基于图的计算可以包括:通过以下方式作为第一批次事务执行第一和第二事务:处理与第一和第二事务相对应的数据记录和数据操作;以及在检测到失败时,通过回滚(roll back)与已处理事务相对应的所有已处理数据记录和数据操作来回滚第一批次事务。
该方法还可以包括:指定至少具有输出端口的第一图组分,作为用于第一集合的图组分的数据流的开头;以及指定至少具有输入端口的第二图组分,作为用于第一集合的图组分的数据流的末尾。
所述方法还可以包括:动态地调用第一集合的图组分以便处理所述一个或多个事务。
所述方法还可以包括:当成功地处理了第一批次事务中的基本全部事务时,提交第一批次事务。提交第一批次事务可以包括基本同时提交与第一批次事务中的每一个事务相对应的所有数据操作。
检测到失败可以包括例如检测到与第一批次事务的事务中的每一个数据记录相对应的任何数据操作的失败。
该方法还可以包括:在检测到失败之后,作为不同的第二批次事务来重新处理第一批次事务中的未处理事务以及在处理第一批次事务期间未提交的已处理事务。
该方法还可以包括:在检测到失败之后,作为一系列分离的批次来重新处理与第一批次事务相关联的已处理事务和未处理事务中的每一个。
该方法还可以包括:当检测到失败时,将失败的一个或多个事务标识为失败事务,作为不同的第二批次来重新处理除了失败事务之外的第一批次事务,并且作为第三批次来重新处理失败事务。
该方法还可以包括:在执行第一事务的过程中,通过属于基于图的计算的图组分的集合来执行第一数据库中的一个或多个数据操作。该方法还可以包括:在执行第一事务的过程中,建立与第一数据库的第一会话,第一会话由处理第一事务的第一集合的图组分中的一个或多个图组分共享。
可以由用户指定第一事务的大小。
在另一种方面中,总的来说,一种计算机可读介质存储包括指令的计算机程序,该指令用于使计算机:准备具有多个节点的基于图的计算,所述节点表示由一个或多个链路连接的图组分,所述链路表示图组分之间的数据流,所述准备具有多个节点的基于图的计算包括标识至少第一集合的图组分以处理计算中的多个事务,将第一组的一个或多个数据记录以及与该数据记录对应的数据操作与第一事务相关联,以及将第二组的一个或多个数据记录以及与该数据记录对应的数据操作与第二事务相关联;以及执行基于图的计算以便处理至少第一事务和第二事务,包括延迟由第一集合的图组分对与第二组的初始数据记录对应的数据操作的执行,直到第一集合的图组分执行了与第一组的最后的数据记录相对应的数据操作之后。
在另一方面中,总的来说,一种计算机系统包括:用于准备具有多个节点的基于图的计算的部件,所述节点表示由一个或多个链路连接的图组分,所述链路表示图组分之间的数据流,所述准备具有多个节点的基于图的计算包括标识至少第一集合的图组分以处理计算中的多个事务,将第一组的一个或多个数据记录以及与该数据记录对应的数据操作与第一事务相关联,以及将第二组的一个或多个数据记录以及与该数据记录对应的数据操作与第二事务相关联;以及用于执行基于图的计算以便处理至少第一事务和第二事务的部件,所述执行基于图的计算以便处理至少第一事务和第二事务包括延迟由第一集合的图组分对与第二组的初始数据记录对应的数据操作的执行,直到第一集合的图组分执行了与第一组的最后的数据记录相对应的数据操作之后。
在下面的附图和描述中阐述了本发明的一个或多个实施例的细节。根据所述描述和图以及权利要求,本发明的其他特征、目的和优点将显而易见。
附图说明
图1是基于图的系统的框图。
图2、3和4是示出事务处理的示例数据流图。
图5是事务处理的示例场景。
图6是示出准备数据流图和执行数据流图中的事务的示例过程的流程图。
具体实施方式
参照图1,用于执行基于图的计算的计算系统100包括耦接到数据存储器102的开发环境104以及耦接到数据存储器102的运行时环境106。开发者101使用开发环境104构造应用。应用与数据存储器102中的数据结构指定的一个或多个数据流图相关联,所述数据结构可以作为开发者使用开发环境104的结果而被写入数据存储器102。数据结构指定例如数据流图的顶点(表示组件或数据集)以及顶点之间的链路(表示数据流)。数据结构还可以包括图的组件、数据集和数据流的各种特性。数据处理应用例如可以与实现对于从一个或多个输入数据集通过处理组件的图流到一个或多个输出数据集的数据执行的计算的数据流图相关联。
运行时环境106可以驻留在处于诸如UNIX操作系统的适当操作系统控制下的一个或多个通用计算机上。例如,运行时环境106可以包括多节点并行计算环境,该多节点并行计算环境包括使用多个中央处理单元(CPU)的计算机系统的配置,所述多个中央处理单元是本地的(例如,诸如SMP计算机的微处理器系统)、或者本地分布的(例如,被耦接为群集的多个处理器或MPP)、或者远程的、或者远程分布的(例如经由LAN或WAN网络耦接的多个处理器)、或者其任意组合。图中的多个组件的并发执行提供了一种形式的并行性。另外的并行性可以通过将图的不同组件分布到不同的计算节点(例如不同的CPU)来获得。图的元素(例如数据集、组件和流)可以被显式地或者隐式地复制以将并行性引入运行时环境106。
用户103可以例如使用命令行或图形接口与运行时环境106交互。运行时环境106包括预执行模块110以读取指定给定数据流图的所存储的图数据结构并且分配和配置计算资源,例如用于执行组件的计算的进程(例如,在主机操作系统中的执行的进程或线程)。
运行时环境106还包括执行模块112以便调度和控制由预执行模块110分配给数据流图的进程的执行。执行模块112可以与耦接到系统100的外部计算资源交互,所述外部计算资源例如为数据库引擎、数据存储器或者在与图组分相关联的处理期间访问的其他模块。
在执行数据流图之后,或者在执行期间以预定的间隔,报告模块114提供表征给定计算的信息,例如与数据流图的各个组件相关联的统计值。报告模块114报告的一些信息是从数据流图产生的输出获得的。所报告的一些信息是通过监视数据流图的执行获得的。
运行时监视模块(RMM)116监视分配给数据流图的一个或多个进程的执行,并且将信息提供给报告模块114。该信息包括例如投入运行每个组件的中央处理单元(CPU)时间、或者每个组件处理的数据量。
参照图2,示例数据流图200包括输入数据集201,其具有要由数据流图200的组件204A-204I(总称为204)处理的一个或多个输入数据记录。在一些实现方式中,输入数据记录201进入组件204的一个或多个输入端口,并且输出数据记录(在某些情况下,输出数据记录是输入数据记录201或者输入数据记录204的经过处理的版本)典型地离开组件204的一个或多个输出端口。在一些实现方式中,单个输入数据记录201的处理可以产生多个输出数据记录。在图200中,将来自组件204C、204I和255的输出数据记录存储在输出数据集206A-206C(总称为206)中。在2006年5月16日提交的美国申请No.11/434623中更详细地描述了示例数据流图200,其通过引用而被合并于此。
通常,允许在任何数据流链路245上并发地发生从上游组件(例如204A)的输出到下游组件(例如204B或240)的记录的流动。这允许数据流图200中的不同组件204对不同的记录并发地执行任务,这对于正由数据流图200执行的整个计算提供了流水线并行性的形式。换言之,与下游组件204对不同的一组记录执行的计算的不同部分并行地,上游组件204对给定的一组记录执行所述计算的给定部分。
数据流图200可以在并行处理系统上运行,并且通过文件操纵操作(例如创建、删除和重命名)与数据操纵操作(例如读取和写入)的组合而对多个外部数据集合(例如文件和数据库)做出改变。一种这样的外部数据集合是数据库系统209。数据流图200的组件204被配置为访问数据库系统209。在这一点上,将图200正在处理的数据记录与要对数据库系统209执行的一个或多个数据操作相关联。
在一种实现方式中,组件204可以被配置为提供事务属性,如下面更详细地描述的那样。作为示例,参照图3,考虑用于基于从自动柜员机(ATM)处的银行顾客的会话接收的信息更新该顾客的记录的计算图300。在操作中,组件315从ATM读取所述信息,并且基于该信息产生数据记录312和要在数据库系统209中执行的相关联的数据操作。如所示出的,组件“验证账户”306a、“检查余额”306b和“更新余额”306c都访问相同的数据库系统209。“验证账户”206a处理第一数据记录312a,该第一数据记录312a携带关于被输入到ATM中的顾客的个人识别号(PIN)的信息。此外,“更新余额”306c处理第二数据记录312b,第二数据记录312b携带指示顾客的账户被借记了某一金额的信息。
如果独立于第二数据记录312b而处理第一数据记录312a,则向数据库209的独立提交将导致数据库可能在验证顾客信息之前更新账户余额。因此,包含在数据库系统209中的数据将不会是期望的形式。为了应对这种情况,需要作为单个单元而一起提交或放弃(即,回滚)的数据记录312和相关联的操作被编组为事务,该事务仅在处理了所有记录312和对应于记录312的操作之后才作为整体被提交。可以将被编组到一起以便作为相同事务的一部分处理的记录312称为“工作单元”。此外,任选地,可以将不同的事务一起编组为一批次事务,该一批次事务作为一个单元而被处理,使得该批次中的事务要么一起提交,要么整批次回滚。一批次事务的大小(即,该批次中的事务数目)可以由用户指定,或者由预执行模块110(图1)自动确定。此外,可以将组件315、306a-d和310一起编组为与事务单元相对应的集合,如下面详细描述的那样。因此,事务单元在单独的事务中或者在多批次事务中处理数据记录312,其中每批次事务作为独立的或不同的单元而被提交到数据库209。
在此示例中,组件306a-c每个被配置为访问(例如接收、修改和/或删除)数据库系统209中的数据。“读取”组件315接收一系列数据记录312作为输入。当对数据记录312和相关联的数据操作的处理导致对于数据库系统209的永久改变时,将该改变称为“已提交”。使得这种已提交的改变对于计算系统100内的所有进程可见。在这一点上,对于与数据记录312和相关联的操作对应的每个事务执行提交操作,以便使通过数据记录312和相关联的数据操作实行的改变在数据库系统209中成为永久的。如果出现失败,则包括数据记录312和相关联的数据操作的失败事务可以作为单个单元而回滚(即,可以恢复执行所述操作之前的数据库系统209的先前的状态),并且可以丢弃或者在解决了失败的原因之后重新处理数据记录312和相关联的操作。可能因为多种原因而产生失败。例如,失败可以是系统失败,例如存储器分配上的错误或者写入存储器空间时的冲突。失败也可以是底层数据操作上的失败,例如试图从亏空的账户中提取资金。在这种场景中,包括数据记录312和相关联的数据操作的事务将失败。
通常,在处理包括数据记录312和相关联的数据操作的每个事务之后进行提交可能是昂贵的。在典型的提交操作中,数据库系统209向物理盘(例如,存储与数据库系统209相关联的数据的硬盘)写入通过数据操作对数据库系统209进行的每个修改。在一些示例中,也可能需要更新日志文件(未示出),从而进一步增大在执行提交操作时涉及的处理周期的数量。因此,提交操作可能需要相当多的资源和处理周期。因此,在这里描述的用于将对于一批次的多个事务的提交操作编组的示例技术减少了这一花销中的一部分,并且节约了资源。
如上所述,以与单独的事务相关联的工作为单元来处理数据记录的输入流通过抑制流水线并行性而使能某些事务属性(例如,隔离,如下面更详细地描述的),所述流水线并行性否则将出现在对于那些事务的一组组件处置操作中。再次参照图2,可以通过由整个数据流图200定义的计算的一部分来执行事务。例如,结合数据库系统209执行的事务可以只涉及与数据库系统209通信的组件204D-G。沿着这些线,在一种实现方式中,可以定义用于执行涉及组件204D-G的事务的集合250。以这一方式,组件204D-G的集合250可以集体地对在事务中涉及的数据记录执行操作。在一些示例中,可以有超过一个的组件集合250,每个集合执行不同类型的事务。可以以各种方式建立集合250。例如,可以在执行图之前建立集合250。在一些示例中,可以在图的启动期间建立所述集合。用户可以定义组件(未示出)来动态地调用这些集合。在一些实现方式中,在执行数据流图200时,预执行模块110(图1)可以将组件204标识为用于处理事务的集合250的一部分。
在一种实现方式中,可以通过使用一个或多个专用组件240、255来建立集合250,所述专用组件240、255对针对给定事务的事务处理的开头和末尾进行划界。在一些示例中,可以由设计者(例如图1的开发者101)在将图200部署给用户(例如图1的用户103)之前指定组件240、255。在一些示例中,可以由具有修改图200的能力的终端用户103指定组件240、255。如所示出的,具有至少输出端口的第一组件(例如“开始事务”(BT)240)可以被指定为用于事务的数据流245的开头,并且具有至少输入端口的第二组件(例如“结束事务”(ET)255)可以被指定为用于事务的数据流245的末尾。在一些实现方式中,执行与事务的数据记录相关联的事务的操作的组件204的集合250被称为事务单元(TU)。可以在TU中通过确保只允许正在被处置的单个事务的数据记录流入该TU来抑制流水线并行性。要由TU处置的下一事务的数据记录可以在(例如通过提交)而完成了前一事务之后流入TU。BT 240和ET 250可以进行通信以实施这一条件。数据流图200可以具有多个TU。
在一些实现方式中,在启动时,可以分析图200以确定集合250中的组件204。集合250中的组件204可以在单个进程中执行。在这一方法中,预执行模块110(图1)将图200的多个组件204分为一个或多个集合,每个集合包含一个或多个组件204。可以向包含一个或多个组件204的每个集合分配不同的进程。因此,对于被置于相同的集合中的一个或多个组件204,由那些组件204表示的计算可以被“收到一起(folded together)”以便在相同的进程中执行。以这一方式,按照如果组件在分开的进程中则所述组件可能已经执行的顺序,将记录从一个组件204传递到该进程中的下一个。
对于给定集合250中的组件204,如上所述指定BT 240和ET 255。可以存在到BT 240的一个输入、出自一个或多个ET 255的任选的输出、以及出自集合250中的组件的其他输出。在一些实现方式中,可以存在BT 240上游的组件(例如组件204A)和ET 255下游的组件。
在一种实现方式中,可以潜在地参与处理给定事务的组件204可以使用“发现”进程来向BT 240指示它们是集合250的一部分。例如,组件204D-G是集合250的一部分。被收入单个进程的每个组件204可以包括在事务启动期间被调用的启动例程。向组件204D-G的每一个分配指定集合250的名称的参数。在启动期间,组件204D-G作为分配给集合250的组件204而注册它们自己,使得BT 240可以知道在处理给定事务时涉及的组件204D-G。
在一个示例中,当BT 240接收到数据记录201而没有其他事务激活时,开始新事务。在该事务开始时,BT 240指示每个组件204和ET 255开始处理该事务。作为该事务中的数据流245的一部分而在组件204D-G之间传递与该事务相关联的数据记录201。在处理该事务结束时,ET 255使得能够提交或放弃该事务的结果,如上所述。
此外,在一些实现方式中,集合250中的一个或多个组件204D-G可以共享连接以便访问数据库系统209。因此,在使用集合250中的组件204D-G执行事务的过程中,可以与数据库系统209建立会话,并且由集合250中的组件204D-G共享该会话。以这一方式,在处理一批次事务的情境中,可以在相同的数据库会话中处理与数据库系统209相关的所有数据记录和相关联的数据操作。
为了提高在计算图的情境中的可靠性,将数据流图200的TU配置为实现提供“ACID”属性的事务,即,系统100对于用于给定事务的数据记录201和相关联的数据操作确保“不可分性”、“一致性”、“隔离”和“持久性”。例如,为了满足不可分性属性,TU与数据库系统209交互,使得在单个事务中执行的与对于数据库系统209的改变相关联的所有操作被一起提交。例如,在图3的示例中,仅在成功地验证了顾客的信息时才成功地产生对顾客账户的更新。类似地,对于从一个账户向另一个账户转移资金的应用,不可分性属性确保如果从一个账户成功地进行了借记,则对另一账户进行对应的贷记。以这一方式,在数据库系统209中执行所有改变,或者不执行任何一个改变。
除了不可分性以外,系统100确保数据库209中的数据在事务开始和结束时处于一致的状态。这确保数据库209满足“一致性”属性。例如,在从一个账户向另一个账户转移资金的应用中,一致性属性确保两个账户中的总资金值在每个事务开始和结束时相同。
此外,系统100确保事务的中间状态对于其他事务不可见。这确保系统100满足“隔离”属性。例如,在从一个账户向另一个账户转移资金的应用中,另一个事务在一个账户或另一个账户中而不是在两者中看到所转移的资金。
最后,在事务成功完成之后,系统100确保对数据的改变持久且不被丢失,即使在系统失败的情况下也是如此。这确保系统100满足“持久性”属性。例如,在从一个账户向另一个账户转移资金的应用中,持久性属性确保对每个账户做出的改变不会丢失。
可以使用技术来应付处理事务期间的失败。如果发生失败,则可能已经对数据库系统209做出了部分改变,这使得当前应用或者其他应用不能使用数据库系统209中的数据,直到所述数据被校正。典型地,这将发生在在计算过程中修改、删除或创建了数据库系统209中的记录的时候。在并行处理系统中,问题变严重,这是因为数据库系统209常常会散布在很多不同的计算系统和存储单元(例如磁盘)上,使得“回滚”数据的状态所需的工作与存储单元的数量成比例地增加。
为了从这种失败中恢复,需要关闭当前(即失败的)应用,然后要么从其开头起撤销所述应用做出的所有改变(“全部回滚”),要么将系统的状态恢复为中间的“检查点”并且从该点起重新开始执行(“部分回滚”)。
如上面提出的,数据流图200的一个特征是可以将数据记录201及其对应数据操作与多个事务相关联。与给定事务相关联的数据记录201和对应数据操作可以作为单个单元被提交(即,使其成为永久性的)或者回滚(即,撤销)。
现在参照图4,数据流图400包括图组分406a-d(总称为406)和410a-c(总称为410)。如所示出的,将组件406的集合402定义为用于处理事务的TU。此外,组件406与数据库系统209通信。在一种实现方式中,诸如组件410的某些组件没有被包括在集合402中,因此不参与和集合402相关联的事务的处理。
在一种实现方式中,将输入数据记录312一起编组为一批次事务414a、414b(总称为414),每个事务对应于要在TU 402中处理的“工作单元”的不同的一组记录。将数据记录312编组为事务414的工作单元可以以多种方式进行。例如,用户103可以定义每个事务414的事务大小(即,数据记录312的数量)。在一些示例中,预执行模块101(图1)可以例如基于数据记录的预定特征而自动地将数据记录划分到事务414中。例如,如果数据记录312是来自例如结账现金出纳机的行项目(line item)记录的流,则每个记录312可以包含诸如“出纳机编号”、“事务编号”、“项目编号”、“项目代码”和“价格”之类的特征。如果需要作为单个事务来评估在结账出纳机处发生的每笔销售,则可以基于“出纳机编号”和/或“事务编号”而将所有记录312一起编组到单个事务414中。
在示例中,为了提供不同事务之间的隔离,集合402的组件406a-d一次只处理一个事务,例如事务414a。因此,仅在最后的组件406d处理了事务414a的最后的数据记录之后,第一组件406a才能处理事务414b的第一数据记录。
在一些实现方式中,提交操作不是在每个事务之后执行,而是被延迟并且一次针对一批次事务而执行。在以下示例中,“批次”是指一批次多个事务以及它们对应的工作单元,每个工作单元由要在那些事务中处理的记录组成。现在参照图5,示例场景示出了包括用于接收和处理工作单元510a-e的批次509的TU中的组件集合502的数据流图500的一部分。如所示出的,集合502已经对具有5个输入工作单元510a-e的批次509进行排队以便处理。在执行批次509的过程中,组件508a-c与数据库系统209共享共同的会话。用于工作单元510a和510b的输入事务被示出为已经被集合502处理为那些事务的处理结果514a和514b,并且已经被标记为完成(但是未提交)。此外,输入工作单元510c当前正作为工作单元512c而在组件508a中被处理。在组件508处理期间,工作单元512c中包括的记录可以相对于输入工作单元510c中包含的记录改变,然而,二者均对应于在不同的时间点与给定事务相关联的记录。如上所述,TU的组件一次只处理给定事务的一个工作单元。
如果在处理用于工作单元512c的事务期间出现失败,则将回滚由先前处理的事务的结果514a和514b表示的改变。与已处理事务的这些结果514a和514b对应的输入工作单元510a和510b在集合502的输入处仍可获得。在一些实现方式中,当发生失败时,可以通过将批次509分解而重新处理与工作单元510a-e相对应的事务。也就是说,批次509中的与工作单元510a-e相对应的、包括相关联的数据记录和操作的每个事务可以被分开处理,并且可以在处理下一事务之前提交基于一个或多个单独事务的对于数据库209的改变。在一些实现方式中,由于可以识别失败的事务,例如与输入工作单元510c(或者已处理的工作单元512c)相对应的事务,因此批次509中的包括相关联的数据记录和操作的事务可以作为没有失败事务以及(输入工作单元510c的)相关联的数据记录和操作的新批次509而被重新处理。在一些实现方式中,可以单独处理失败的事务,并且可以将批次509中的其余事务分为较小的两个或更多批次的事务(未示出)并且逐个批次地进行处理。例如可以作为第一批次来处理与工作单元510a和510b相对应的事务,并且可以作为第二批次来处理与工作单元510d和510e相对应的事务。
现在参照图6,示出了用于准备基于图的计算并且执行计算中的事务的流程图600。标识一个或多个组件的集合(例如图4中的组件406的集合402)以便处理一个或多个事务(步骤602)。如上所述,事务单元(TU)可以通过被配置为动态调用组件406的集合402的组件来标识,或者可以通过使用一个或多个专用组件(例如图2中的组件240和255)来划界。
将数据记录及其对应数据操作与要由TU处理的一批次事务中的事务相关联(步骤606)。例如,将事务414(图4)与数据记录312和对应操作相关联。在一些示例中,用户103可以指定一批次事务中的每个事务414的事务大小(即,数据记录312的数量),或者预执行模块101(图1)可以自动地将数据记录312和对应操作编组到事务中。然后,选择事务414以便由组件的集合402执行(步骤610)。可以通过作为一个单元处理每个事务的数据记录312来执行事务(步骤614)。
在处理事务414期间,可能发生失败。如上所述,数据记录312及其相关联的数据操作可能由于多种原因而失败,所述原因包括例如系统失败和/或操作失败。因此,当正在处理事务414时,可以针对这种失败或者其他错误而检查事务414(步骤618)。如果没有检测到失败,则作为单个单元提交处理与事务414相关联的数据记录312和对应数据操作的结果(步骤622)。如果在处理事务414时发生了失败,则需要回滚对于对应数据库(例如图3中的数据库209)所做的任何改变(步骤626)。此外,如果失败的事务414在一起提交的一批次的多个事务中进行处理,则可以将失败的这一批次事务分解,并且可以在有或没有失败事务的情况下单独地重新处理与该批次中的各个事务相对应的数据记录312和相关联的数据操作(步骤630)。在一些实现方式中,可以单独地重新处理失败批次中的事务(其中在重新处理每个事务414之后将改变提交到数据库209),或者使用上述的替换技术来重新处理失败批次中的事务。
上述技术可以使用用于在计算机上执行的软件来实现。例如,该软件形成一个或多个计算机程序中的过程,所述计算机程序在一个或多个已编程的或可编程的计算机系统(其可以是各种架构,例如分布式、客户端/服务器或网格)上执行,每个计算机系统包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器以及/或者存储元件)、至少一个输入设备或端口、以及至少一个输出设备或端口。所述软件可以形成更大程序的一个或多个模块,所述更大程序例如提供与计算图的设计和配置有关的其他服务。图的节点和元素可以被实现为存储在计算机可读介质中的数据结构或者符合存储在数据储存库中的数据模型的其他有组织数据。
可以在诸如CD-ROM之类的可由通用或专用可编程计算机读取的存储介质上提供所述软件,或者可以经由网络的通信介质将所述软件传递到执行该软件所在的计算机。可以在专用计算机上或者使用诸如协处理器之类的专用硬件来执行所有功能。可以以分布式方式实现所述软件,其中,该软件指定的计算的不同部分由不同的计算机执行。每个这样的计算机程序最好被存储在或下载到可由通用或专用可编程计算机读取的存储介质或设备(例如固态存储器或存储介质、或者磁介质或光介质)上,用于在所述存储介质或设备由计算机系统读取以便执行在这里描述的过程时配置和操作计算机。也可以考虑将本发明的系统实现为计算机可读存储介质,其配置有计算机程序,其中,如此配置的存储介质使得计算机系统按照特定的或者预定义的方式操作以执行在此描述的功能。
已经描述了本发明的很多实施例。然而,将理解,可以进行各种修改而不背离本发明的精神和范围。例如,一些上述步骤可以是与顺序无关的,因此可以按照与上述顺序不同的顺序执行。
应当理解,前述描述意图是说明而不是限制由所附权利要求的范围限定的本发明的范围。例如,上述很多功能步骤可以按照不同的顺序执行,而基本上不影响整个处理。其他实施例处于所附权利要求的范围内。

Claims (15)

1.一种计算机实现的方法,包括:
准备具有多个节点的基于图的计算,所述节点表示由一个或多个链路连接的图组分,所述链路表示图组分之间的数据流,所述准备具有多个节点的基于图的计算包括:
标识至少第一集合的图组分以处理计算中的多个事务;和
将第一组的一个或多个数据记录以及与该数据记录对应的数据操作与第一事务相关联,并且将第二组的一个或多个数据记录以及与该数据记录对应的数据操作与第二事务相关联;以及
执行基于图的计算以便处理至少第一事务和第二事务,包括:延迟由第一集合的图组分对与第二组的初始数据记录对应的数据操作的执行,直到由第一集合的图组分执行了与第一组的最后的数据记录相对应的数据操作之后。
2.如权利要求1所述的方法,其中,执行基于图的计算还包括:
通过以下方式作为第一批次事务来执行第一和第二事务:
处理与第一和第二事务相对应的数据记录和数据操作;以及
在检测到失败时,通过回滚与已处理事务相对应的所有已处理数据记录和数据操作来回滚第一批次事务。
3.如权利要求1所述的方法,还包括:
指定至少具有输出端口的第一图组分,作为用于第一集合的图组分的数据流的开头;以及
指定至少具有输入端口的第二图组分,作为用于第一集合的图组分的数据流的末尾。
4.如权利要求1所述的方法,还包括:动态地调用第一集合的图组分以便处理一个或多个事务。
5.如权利要求1所述的方法,还包括:当成功地处理了第一批次事务中的基本全部事务时,提交第一批次事务。
6.如权利要求5所述的方法,其中,提交第一批次事务包括:基本同时提交与第一批次事务中的每一个事务相对应的所有数据操作。
7.如权利要求2所述的方法,其中,检测到失败包括:检测到与第一批次事务的事务中的每一个数据记录相对应的任何数据操作的失败。
8.如权利要求2所述的方法,还包括:在检测到失败之后,作为不同的第二批次事务来重新处理第一批次事务中未处理事务以及在处理第一批次事务期间未提交的已处理事务。
9.如权利要求2所述的方法,还包括:在检测到失败之后,作为一系列分离的批次来重新处理与第一批次事务相关联的已处理事务和未处理事务中的每一个。
10.如权利要求2所述的方法,还包括:
当检测到失败时,将失败的一个或多个事务标识为失败事务,
作为不同的第二批次来重新处理除了失败事务之外的第一批次事务,并且
作为第三批次来重新处理失败事务。
11.如权利要求2所述的方法,还包括:在执行第一事务的过程中,通过属于基于图的计算的图组分的集合来执行第一数据库中的一个或多个数据操作。
12.如权利要求11所述的方法,还包括:在执行第一事务的过程中,建立与第一数据库的第一会话,第一会话由处理第一事务的第一集合的图组分中的一个或多个图组分共享。
13.如权利要求2所述的方法,其中,由用户指定第一事务的大小。
14.一种计算机可读介质,存储计算机程序,该计算机程序包括指令,该指令用于使计算机:
准备具有多个节点的基于图的计算,所述节点表示由一个或多个链路连接的图组分,所述链路表示图组分之间的数据流,所述准备具有多个节点的基于图的计算包括:
标识至少第一集合的图组分以处理计算中的多个事务;和
将第一组的一个或多个数据记录以及与该数据记录对应的数据操作与第一事务相关联,以及将第二组的一个或多个数据记录以及与该数据记录对应的数据操作与第二事务相关联;以及
执行基于图的计算以便处理至少第一事务和第二事务,包括延迟由第一集合的图组分对与第二组的初始数据记录对应的数据操作的执行,直到由第一集合的图组分执行了与第一组的最后的数据记录相对应的数据操作之后。
15.一种计算机系统,包括:
用于准备具有多个节点的基于图的计算的部件,所述节点表示由一个或多个链路连接的图组分,所述链路表示图组分之间的数据流,所述准备具有多个节点的基于图的计算包括:
标识至少第一集合的图组分以处理计算中的多个事务;和
将第一组的一个或多个数据记录以及与该数据记录对应的数据操作与第一事务相关联,以及将第二组的一个或多个数据记录以及与该数据记录对应的数据操作与第二事务相关联;以及
用于执行基于图的计算以便处理至少第一事务和第二事务的部件,所述执行基于图的计算以便处理至少第一事务和第二事务包括:延迟由第一集合的图组分对与第二组的初始数据记录对应的数据操作的执行,直到由第一集合的图组分执行了与第一组的最后的数据记录相对应的数据操作之后。
CN201080042716.8A 2009-09-25 2010-09-23 处理基于图的应用中的事务 Active CN102576347B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US24586209P 2009-09-25 2009-09-25
US61/245,862 2009-09-25
US12/638,588 US8667329B2 (en) 2009-09-25 2009-12-15 Processing transactions in graph-based applications
US12/638,588 2009-12-15
PCT/US2010/049966 WO2011038096A1 (en) 2009-09-25 2010-09-23 Processing transactions in graph-based applications

Publications (2)

Publication Number Publication Date
CN102576347A true CN102576347A (zh) 2012-07-11
CN102576347B CN102576347B (zh) 2017-08-29

Family

ID=43781640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080042716.8A Active CN102576347B (zh) 2009-09-25 2010-09-23 处理基于图的应用中的事务

Country Status (9)

Country Link
US (1) US8667329B2 (zh)
EP (2) EP2480983B1 (zh)
JP (1) JP5668070B2 (zh)
KR (2) KR20150042875A (zh)
CN (1) CN102576347B (zh)
AU (1) AU2010298291C1 (zh)
CA (1) CA2773344C (zh)
IN (1) IN2012DN02037A (zh)
WO (1) WO2011038096A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363712A (zh) * 2014-09-02 2021-02-12 起元科技有限公司 在基于图的程序中指定组件
CN113168362A (zh) * 2018-09-25 2021-07-23 起元技术有限责任公司 用于实施输出审核数据的可恢复性的专用审核端口

Families Citing this family (28)

* 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
EP2527983A3 (en) 2006-08-10 2013-06-12 Ab Initio Technology LLC Distributing services in graph-based computations
US8706667B2 (en) * 2007-07-26 2014-04-22 Ab Initio Technology Llc Transactional graph-based computation with error handling
CN105843684B (zh) * 2009-02-13 2020-03-03 起元技术有限责任公司 管理任务执行
WO2011159759A1 (en) 2010-06-15 2011-12-22 Ab Initio Technology Llc Dynamically loading graph-based computations
JP2014059862A (ja) * 2012-08-22 2014-04-03 Canon Inc データフローのリソース割り当て装置および方法
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
CA2909751C (en) 2013-04-23 2021-02-16 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
US9600500B1 (en) * 2013-06-21 2017-03-21 Amazon Technologies, Inc. Single phase transaction commits for distributed database transactions
EP3092557B1 (en) 2013-12-05 2024-03-27 AB Initio Technology LLC Managing interfaces for dataflow graphs composed of sub-graphs
CA2959534C (en) 2014-09-02 2021-06-29 Ab Initio Technology Llc Compiling graph-based program specifications
US9710876B2 (en) 2015-01-16 2017-07-18 Intel Corporation Graph-based application programming interface architectures with equivalency classes for enhanced image processing parallelism
US9818166B2 (en) 2015-01-16 2017-11-14 Intel Corporation Graph-based application programming interface architectures with producer/consumer nodes for enhanced image processing parallelism
WO2016144299A1 (en) 2015-03-06 2016-09-15 Hewlett Packard Enterprise Development Lp Graph update flush to a shared memory
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
WO2017112654A2 (en) 2015-12-21 2017-06-29 Ab Initio Technology Llc Sub-graph interface generation
KR101909273B1 (ko) * 2016-12-02 2018-10-17 주식회사유한양행 메트포르민 및 HMG-CoA 환원효소 억제제를 포함하는 정제
US20180158034A1 (en) * 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US20190005492A1 (en) * 2017-06-28 2019-01-03 Paypal, Inc. Self-correcting transactions
US20210312443A1 (en) * 2020-04-03 2021-10-07 Ebay Inc. Orchestration engine for transactions
US11416259B2 (en) * 2020-12-11 2022-08-16 Sap Se Look-ahead staging for time-travel reconstruction
KR102567658B1 (ko) * 2021-04-14 2023-08-16 주식회사 카카오뱅크 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법 및 시스템
US11909574B2 (en) * 2021-06-01 2024-02-20 Ciena Corporation Grouping configuration-modifying transactions from collaborating agents
US20230067111A1 (en) * 2021-09-01 2023-03-02 Juniper Networks, Inc. Time-based synchronized activation of configuration updates in network devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012094A (en) * 1996-07-02 2000-01-04 International Business Machines Corporation Method of stratified transaction processing
US20040098452A1 (en) * 2002-11-15 2004-05-20 Matthew Brown Web-based system and method for electronic data delivery
CN1864137A (zh) * 2003-08-06 2006-11-15 甲骨文国际公司 具有高效版本控制的数据库管理系统
US7167850B2 (en) * 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US20090030863A1 (en) * 2007-07-26 2009-01-29 Ab Initio Software Corporation Transactional graph-based computation with error handling
CN101443733A (zh) * 2006-05-16 2009-05-27 起元软件有限公司 在基于图的计算中的计算资源管理

Family Cites Families (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
US5323452A (en) * 1990-12-18 1994-06-21 Bell Communications Research, Inc. Visual programming of telephone network call processing logic
DE4216871C2 (de) * 1991-05-21 2001-09-06 Digital Equipment Corp Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen
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
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
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
US6016516A (en) * 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US6038558A (en) * 1996-10-18 2000-03-14 Sagent Technology, Inc. Extensible database retrieval and viewing architecture
US5930794A (en) * 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
JPH10149306A (ja) * 1996-11-18 1998-06-02 Nippon Telegr & Teleph Corp <Ntt> サービス連携装置およびその生成装置
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
US5950212A (en) * 1997-04-11 1999-09-07 Oracle Corporation Method and system for workload based group committing for improved performance
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
US6574661B1 (en) * 1997-09-26 2003-06-03 Mci Communications Corporation Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6339775B1 (en) * 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6014670A (en) * 1997-11-07 2000-01-11 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
US6233585B1 (en) * 1998-03-12 2001-05-15 Crossworlds Software, Inc. Isolation levels and compensating transactions in an information system
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
JP2000029956A (ja) * 1998-07-08 2000-01-28 Fujitsu Ltd ワークフローアプリケーション実行装置およびワークフローアプリケーション構築方法
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
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
JP2000315190A (ja) * 1999-04-30 2000-11-14 Nec Corp ジョブのリカバリ方式
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
AUPS169002A0 (en) * 2002-04-11 2002-05-16 Tune, Andrew Dominic An information storage system
US7240247B2 (en) 2002-04-29 2007-07-03 Intel Corporation Providing a chain of tokenized error and state information for a call stack
US20050261914A1 (en) * 2002-07-19 2005-11-24 Microsoft Corporation Method and system for managing long running transactions
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
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
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
US7730446B2 (en) * 2003-03-12 2010-06-01 Microsoft Corporation Software business process model
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
EP1639510A1 (en) 2003-06-24 2006-03-29 BAE Systems PLC A method, tool and system for increasing the efficiency of a design process
CA2891145C (en) * 2003-06-25 2019-02-19 Craig W. Stanfill Computer-aided parallelizing of computation graphs
EP1652072A4 (en) * 2003-07-11 2008-12-31 Computer Ass Think Inc METHOD AND APPARATUS FOR PROCESSING PARALLEL ACTIONS
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
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
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
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
JP2008503011A (ja) 2004-06-08 2008-01-31 ダートデバイセズ コーポレーション ユニバーサルデバイスインタオペラビリティプラットフォームのためのデバイスチームリクルートメントおよびコンテンツレンディションのアーキテクチャ装置および方法
US7398514B2 (en) * 2004-09-29 2008-07-08 Microsoft Corporation Test automation stack layering
US7565640B2 (en) 2004-10-01 2009-07-21 Microsoft Corporation Framework for seamlessly authoring and editing workflows at design and runtime
US7343482B2 (en) 2004-10-20 2008-03-11 Arm Limited Program subgraph identification
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
EP1851662A2 (en) * 2005-02-24 2007-11-07 Xeround Systems Ltd. Method and apparatus for distributed data management in a switching network
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
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
EP2527983A3 (en) * 2006-08-10 2013-06-12 Ab Initio Technology 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 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
US8347292B2 (en) * 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout
WO2009039352A1 (en) * 2007-09-20 2009-03-26 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
US20090193416A1 (en) * 2008-01-24 2009-07-30 Nec Laboratories America, Inc. Decidability of reachability for threads communicating via locks
US8797178B2 (en) * 2008-03-10 2014-08-05 Microsoft Corporation Efficient stream sharing for multi-user sensor data collection
JP4261609B1 (ja) * 2008-05-02 2009-04-30 透 降矢 トランザクションの同時実行制御を備えたマルチオペレーション・プロセッシングを用いたデータベースのトランザクション処理システム
KR101499599B1 (ko) * 2008-06-30 2015-03-18 아브 이니티오 테크놀로지 엘엘시 그래프 기반 계산에서의 데이터 로깅
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
CN105843684B (zh) 2009-02-13 2020-03-03 起元技术有限责任公司 管理任务执行
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
WO2012027560A1 (en) * 2010-08-25 2012-03-01 Ab Initio Technology Llc Evaluating dataflow graph characteristics

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012094A (en) * 1996-07-02 2000-01-04 International Business Machines Corporation Method of stratified transaction processing
US7167850B2 (en) * 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US20040098452A1 (en) * 2002-11-15 2004-05-20 Matthew Brown Web-based system and method for electronic data delivery
CN1864137A (zh) * 2003-08-06 2006-11-15 甲骨文国际公司 具有高效版本控制的数据库管理系统
CN101443733A (zh) * 2006-05-16 2009-05-27 起元软件有限公司 在基于图的计算中的计算资源管理
US20090030863A1 (en) * 2007-07-26 2009-01-29 Ab Initio Software Corporation Transactional graph-based computation with error handling

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363712A (zh) * 2014-09-02 2021-02-12 起元科技有限公司 在基于图的程序中指定组件
CN112363712B (zh) * 2014-09-02 2024-03-12 起元科技有限公司 用于处理基于图的程序规范的方法
CN113168362A (zh) * 2018-09-25 2021-07-23 起元技术有限责任公司 用于实施输出审核数据的可恢复性的专用审核端口

Also Published As

Publication number Publication date
KR20150042875A (ko) 2015-04-21
JP2013506199A (ja) 2013-02-21
WO2011038096A1 (en) 2011-03-31
IN2012DN02037A (zh) 2015-08-21
EP2480983B1 (en) 2017-02-22
US8667329B2 (en) 2014-03-04
AU2010298291A1 (en) 2012-03-22
CA2773344A1 (en) 2011-03-31
AU2010298291B2 (en) 2016-08-25
WO2011038096A8 (en) 2011-06-23
EP3193255A1 (en) 2017-07-19
CA2773344C (en) 2018-09-04
KR20120076354A (ko) 2012-07-09
JP5668070B2 (ja) 2015-02-12
EP2480983A4 (en) 2015-07-01
US20110078500A1 (en) 2011-03-31
AU2010298291C1 (en) 2017-01-19
KR101597704B1 (ko) 2016-02-25
EP2480983A1 (en) 2012-08-01
CN102576347B (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
CN102576347A (zh) 处理基于图的应用中的事务
Guerraoui et al. The consensus number of a cryptocurrency
JP6815456B2 (ja) 複数ソースからのデータの処理
KR101758670B1 (ko) 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
AU2021203955B2 (en) Dynamic component performance monitoring
CN104937548B (zh) 动态图的性能监视
Fagg et al. Process fault tolerance: Semantics, design and applications for high performance computing
AU2013359617B2 (en) System for transform generation
CN110050261A (zh) 计算资源分配
US20240152444A1 (en) Online query execution using a big data framework
US20140082627A1 (en) Parallel compute framework
Gesvindr et al. Design of Scalable and Resilient Applications using Microservice Architecture in PaaS Cloud.
Estupiñán Analysis of Modern Blockchain Networks Using Graph Databases
Faleiro et al. CScale–A Programming Model for Scalable and Reliable Distributed Applications
Ng et al. Improving Performance of a Trading System through Lock-Free Programming
CN117520133A (zh) 银行核心系统全栈国产化数据库非功能测试的方法和装置
Schultz Configurable Testbeds for Cloud Data Management Systems

Legal Events

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