CN102576347A - 处理基于图的应用中的事务 - Google Patents
处理基于图的应用中的事务 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0727—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution 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.一种计算机系统,包括:
用于准备具有多个节点的基于图的计算的部件,所述节点表示由一个或多个链路连接的图组分,所述链路表示图组分之间的数据流,所述准备具有多个节点的基于图的计算包括:
标识至少第一集合的图组分以处理计算中的多个事务;和
将第一组的一个或多个数据记录以及与该数据记录对应的数据操作与第一事务相关联,以及将第二组的一个或多个数据记录以及与该数据记录对应的数据操作与第二事务相关联;以及
用于执行基于图的计算以便处理至少第一事务和第二事务的部件,所述执行基于图的计算以便处理至少第一事务和第二事务包括:延迟由第一集合的图组分对与第二组的初始数据记录对应的数据操作的执行,直到由第一集合的图组分执行了与第一组的最后的数据记录相对应的数据操作之后。
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 | 2009-12-15 | ||
US12/638,588 US8667329B2 (en) | 2009-09-25 | 2009-12-15 | Processing transactions in graph-based applications |
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) | KR101597704B1 (zh) |
CN (1) | CN102576347B (zh) |
AU (1) | AU2010298291C1 (zh) |
CA (1) | CA2773344C (zh) |
IN (1) | IN2012DN02037A (zh) |
WO (1) | WO2011038096A1 (zh) |
Cited By (2)
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)
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 |
JP5894724B2 (ja) | 2006-08-10 | 2016-03-30 | アビニシオ テクノロジー エルエルシー | グラフ型計算の分散サービス |
EP2174222A4 (en) * | 2007-07-26 | 2010-10-27 | Ab Initio Technology Llc | TRANSACTIONAL GRAPH-BASED CALCULATION WITH ERROR HANDLING |
KR101730513B1 (ko) | 2009-02-13 | 2017-04-26 | 아브 이니티오 테크놀로지 엘엘시 | 태스크 실행 관리 |
JP5898188B2 (ja) | 2010-06-15 | 2016-04-06 | アビニシオ テクノロジー エルエルシー | グラフに基づく計算の動的ロード |
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 |
US10108521B2 (en) | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph performance monitoring |
US9274926B2 (en) | 2013-01-03 | 2016-03-01 | Ab Initio Technology Llc | Configurable testing of computer programs |
JP6469084B2 (ja) * | 2013-04-23 | 2019-02-13 | アビニシオ テクノロジー エルエルシー | コンピューティングシステムによって実行されるタスクの制御 |
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 |
US10180821B2 (en) | 2013-12-05 | 2019-01-15 | Ab Initio Technology Llc | Managing interfaces for sub-graphs |
SG11201701584SA (en) | 2014-09-02 | 2017-03-30 | Ab Initio Technology Llc | Compiling graph-based program specifications |
US9684944B2 (en) | 2015-01-16 | 2017-06-20 | Intel Corporation | Graph-based application programming interface architectures with node-based destination-source mapping for enhanced image processing parallelism |
US9710876B2 (en) * | 2015-01-16 | 2017-07-18 | Intel Corporation | Graph-based application programming interface architectures with equivalency classes 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)
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)
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 |
GB2256514B (en) * | 1991-05-21 | 1994-11-16 | Digital Equipment Corp | Commitment ordering for guaranteeing serializability across distributed transactions |
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 |
US5857204A (en) | 1996-07-02 | 1999-01-05 | Ab Initio Software Corporation | Restoring the state of a set of files |
US5966072A (en) * | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
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 |
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 |
US9197599B1 (en) | 1997-09-26 | 2015-11-24 | Verizon Patent And Licensing Inc. | Integrated business system for web based telecommunications management |
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 |
US6501480B1 (en) | 1998-11-09 | 2002-12-31 | Broadcom Corporation | Graphics accelerator |
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 |
WO2001046798A2 (en) | 1999-12-20 | 2001-06-28 | Headway Research Limited | System and method for computer-aided graph-based dependency analysis |
US6848100B1 (en) | 2000-03-31 | 2005-01-25 | Intel Corporation | Hierarchical software path profiling |
US7062483B2 (en) | 2000-05-18 | 2006-06-13 | Endeca Technologies, Inc. | Hierarchical data-driven search and navigation system and method for information retrieval |
US6922685B2 (en) | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
US6813761B1 (en) | 2000-06-30 | 2004-11-02 | Microsoft Corporation | Methods for enhancing flow analysis |
US7164422B1 (en) | 2000-07-28 | 2007-01-16 | Ab Initio Software Corporation | Parameterized graphs with conditional components |
US6832369B1 (en) | 2000-08-01 | 2004-12-14 | International Business Machines Corporation | Object oriented method and apparatus for class variable initialization |
US6496961B2 (en) | 2000-10-27 | 2002-12-17 | Nec Usa, Inc. | Dynamic detection and removal of inactive clauses in SAT with application in image computation |
US20020152244A1 (en) | 2000-12-22 | 2002-10-17 | International Business Machines Corporation | Method and apparatus to dynamically create a customized user interface based on a document type definition |
US6804800B2 (en) | 2000-12-29 | 2004-10-12 | Intel Corporation | Method and apparatus for detecting and recovering from errors in a source synchronous bus |
JP4294879B2 (ja) | 2001-02-05 | 2009-07-15 | 株式会社日立製作所 | サービスレベル制御機構を有するトランザクション処理システム及びそのためのプログラム |
US20020111876A1 (en) * | 2001-02-09 | 2002-08-15 | Rudraraju Panduranga R. | Transaction aggregation system and method |
US7082386B2 (en) | 2001-02-21 | 2006-07-25 | International Business Machines Corporation | Generalized software modeling tool |
US7188091B2 (en) | 2001-03-21 | 2007-03-06 | Resolutionebs, Inc. | Rule processing system |
US6651234B2 (en) | 2001-04-06 | 2003-11-18 | Nec Corporation | Partition-based decision heuristics for SAT and image computation using SAT and BDDs |
US20020147745A1 (en) | 2001-04-09 | 2002-10-10 | Robert Houben | Method and apparatus for document markup language driven server |
US7082604B2 (en) | 2001-04-20 | 2006-07-25 | Mobile Agent Technologies, Incorporated | Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents |
US20040093559A1 (en) | 2001-05-25 | 2004-05-13 | Ruth Amaru | Web client for viewing and interrogating enterprise data semantically |
GB2376094A (en) | 2001-05-30 | 2002-12-04 | Ibm | Flexible navigation of a workflow graph in a data processing system |
US7069536B2 (en) | 2001-06-28 | 2006-06-27 | International Business Machines Corporation | Method, system, and program for executing a workflow |
US20030033432A1 (en) | 2001-08-08 | 2003-02-13 | Simpson Shell S. | Web based imaging service that converts web pages into content on behalf of another web site |
US20040006745A1 (en) | 2001-08-31 | 2004-01-08 | Van Helden Wico | Methods, apparatuses, system, and articles for associating metadata with datastream |
US7165030B2 (en) | 2001-09-17 | 2007-01-16 | Massachusetts Institute Of Technology | Concatenative speech synthesis using a finite-state transducer |
US7085426B2 (en) | 2001-10-15 | 2006-08-01 | Jonas August | Volterra filters for enhancement of contours in images |
US7130484B2 (en) | 2001-10-15 | 2006-10-31 | Jonas August | Biased curve indicator random field filters for enhancement of contours in images |
DE10152213B4 (de) | 2001-10-23 | 2006-04-27 | Onespin Solutions Gmbh | Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches |
US7092401B2 (en) | 2001-11-15 | 2006-08-15 | International Business Machines Corporation | Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram |
EP1320217B1 (en) | 2001-12-14 | 2004-10-13 | Hewlett-Packard Company, A Delaware Corporation | Method of installing monitoring agents, system and computer program for monitoring objects in an IT network |
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 |
US20050177531A1 (en) | 2003-06-24 | 2005-08-11 | Bracewell Robert H. | Method, tool and system for increasing the efficiency of a design process |
WO2005001687A2 (en) * | 2003-06-25 | 2005-01-06 | Ab Initio Software Corporation | Computer-aided parallelizing of computation graphs |
WO2005008414A2 (en) | 2003-07-11 | 2005-01-27 | Computer Associates Think, Inc. | Method and apparatus for parallel action processing |
GB0318196D0 (en) * | 2003-08-02 | 2003-09-03 | Ibm | A method apparatus and computer program for processing a queue of messages |
US7444595B2 (en) | 2003-08-13 | 2008-10-28 | National Instruments Corporation | Graphical programming system and method for creating and managing a scene graph |
US8307109B2 (en) | 2003-08-27 | 2012-11-06 | International Business Machines Corporation | Methods and systems for real time integration services |
US7174479B2 (en) * | 2003-09-10 | 2007-02-06 | Microsoft Corporation | Method and system for rollback-free failure recovery of multi-step procedures |
US20050102670A1 (en) | 2003-10-21 | 2005-05-12 | Bretl Robert F. | Shared object memory with object management for multiple virtual machines |
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 | フィッシャー−ローズマウント・システムズ・インコーポレーテッド | プロセス制御システムのためのサービス指向型アーキテクチャ |
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 |
US7747980B2 (en) | 2004-06-08 | 2010-06-29 | Covia Labs, Inc. | Method and system for specifying device interoperability source specifying renditions data and code for interoperable device team |
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 |
JP2008533564A (ja) * | 2005-02-24 | 2008-08-21 | ゼラウンド システムズ リミテッド | データ管理のための方法および装置 |
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 | 株式会社日立製作所 | トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体 |
US7877350B2 (en) | 2005-06-27 | 2011-01-25 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
US7716630B2 (en) * | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US20070118839A1 (en) | 2005-10-24 | 2007-05-24 | Viktors Berstis | Method and apparatus for grid project modeling language |
US8266609B2 (en) | 2005-12-07 | 2012-09-11 | Microsoft Corporation | Efficient placement of software transactional memory operations around procedure calls |
US8073671B2 (en) * | 2006-03-31 | 2011-12-06 | Microsoft Corporation | Dynamic software performance models |
JP5894724B2 (ja) * | 2006-08-10 | 2016-03-30 | アビニシオ テクノロジー エルエルシー | グラフ型計算の分散サービス |
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 |
AU2008302144B2 (en) * | 2007-09-20 | 2014-09-11 | Ab Initio Technology Llc | Managing data flows in graph-based computations |
US8775441B2 (en) * | 2008-01-16 | 2014-07-08 | Ab Initio Technology Llc | Managing an archive for approximate string matching |
US20090193417A1 (en) * | 2008-01-24 | 2009-07-30 | Nec Laboratories America, Inc. | Tractable dataflow analysis for concurrent programs via bounded languages |
US8797178B2 (en) * | 2008-03-10 | 2014-08-05 | Microsoft Corporation | Efficient stream sharing for multi-user sensor data collection |
JP4261609B1 (ja) * | 2008-05-02 | 2009-04-30 | 透 降矢 | トランザクションの同時実行制御を備えたマルチオペレーション・プロセッシングを用いたデータベースのトランザクション処理システム |
JP5331203B2 (ja) * | 2008-06-30 | 2013-10-30 | アビニシオ テクノロジー エルエルシー | グラフベース計算におけるデータ記録 |
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 |
KR101730513B1 (ko) | 2009-02-13 | 2017-04-26 | 아브 이니티오 테크놀로지 엘엘시 | 태스크 실행 관리 |
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 |
US9727438B2 (en) | 2010-08-25 | 2017-08-08 | Ab Initio Technology Llc | Evaluating dataflow graph characteristics |
-
2009
- 2009-12-15 US US12/638,588 patent/US8667329B2/en active Active
-
2010
- 2010-09-23 AU AU2010298291A patent/AU2010298291C1/en active Active
- 2010-09-23 CA CA2773344A patent/CA2773344C/en active Active
- 2010-09-23 IN IN2037DEN2012 patent/IN2012DN02037A/en unknown
- 2010-09-23 JP JP2012531025A patent/JP5668070B2/ja active Active
- 2010-09-23 WO PCT/US2010/049966 patent/WO2011038096A1/en active Application Filing
- 2010-09-23 CN CN201080042716.8A patent/CN102576347B/zh active Active
- 2010-09-23 EP EP10819444.0A patent/EP2480983B1/en active Active
- 2010-09-23 KR KR1020127008873A patent/KR101597704B1/ko active IP Right Grant
- 2010-09-23 EP EP17156952.8A patent/EP3193255A1/en active Pending
- 2010-09-23 KR KR20157008376A patent/KR20150042875A/ko not_active Application Discontinuation
Patent Citations (6)
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)
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 |
---|---|
EP2480983B1 (en) | 2017-02-22 |
US8667329B2 (en) | 2014-03-04 |
KR20120076354A (ko) | 2012-07-09 |
KR101597704B1 (ko) | 2016-02-25 |
JP5668070B2 (ja) | 2015-02-12 |
WO2011038096A1 (en) | 2011-03-31 |
WO2011038096A8 (en) | 2011-06-23 |
CN102576347B (zh) | 2017-08-29 |
CA2773344A1 (en) | 2011-03-31 |
IN2012DN02037A (zh) | 2015-08-21 |
AU2010298291A1 (en) | 2012-03-22 |
EP3193255A1 (en) | 2017-07-19 |
CA2773344C (en) | 2018-09-04 |
KR20150042875A (ko) | 2015-04-21 |
EP2480983A4 (en) | 2015-07-01 |
EP2480983A1 (en) | 2012-08-01 |
AU2010298291C1 (en) | 2017-01-19 |
JP2013506199A (ja) | 2013-02-21 |
US20110078500A1 (en) | 2011-03-31 |
AU2010298291B2 (en) | 2016-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102576347A (zh) | 处理基于图的应用中的事务 | |
Guerraoui et al. | The consensus number of a cryptocurrency | |
JP6983990B2 (ja) | 複数ソースからのデータの処理 | |
KR101758670B1 (ko) | 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템 | |
AU2021203955B2 (en) | Dynamic component performance monitoring | |
CA2890144C (en) | Dynamic graph performance monitoring | |
De Oliveira et al. | Performance evaluation of parallel strategies in public clouds: A study with phylogenomic workflows | |
Fagg et al. | Process fault tolerance: Semantics, design and applications for high performance computing | |
CA2889884C (en) | System for transform generation | |
CN110050261A (zh) | 计算资源分配 | |
US20240152444A1 (en) | Online query execution using a big data 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 | |
CN114385230A (zh) | 系统构建方法、装置、计算机设备、存储介质和程序产品 | |
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 |