CN100375038C - 重定序两阶段提交中的资源的最后代理优化方法和*** - Google Patents

重定序两阶段提交中的资源的最后代理优化方法和*** Download PDF

Info

Publication number
CN100375038C
CN100375038C CNB2005101246796A CN200510124679A CN100375038C CN 100375038 C CN100375038 C CN 100375038C CN B2005101246796 A CNB2005101246796 A CN B2005101246796A CN 200510124679 A CN200510124679 A CN 200510124679A CN 100375038 C CN100375038 C CN 100375038C
Authority
CN
China
Prior art keywords
resource
read
usage statistics
application program
resources
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.)
Expired - Fee Related
Application number
CNB2005101246796A
Other languages
English (en)
Other versions
CN1794181A (zh
Inventor
斯特凡·J·金德尔
马修·J·塞克斯
蒂莫西·D·卡金斯基
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.)
SAP SE
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1794181A publication Critical patent/CN1794181A/zh
Application granted granted Critical
Publication of CN100375038C publication Critical patent/CN100375038C/zh
Expired - Fee Related 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

产生和维护多个资源的直方图或资源状态历史表。事务或资源管理器基于直方图将各个资源安排和/或重定序成一个序列,使得只读资源被首先准备,并且单纯非只读资源不需要准备,而是只需要提交。事务管理器启发式地确定驱动资源的顺序以实现最后代理优化。直方图基于运行时刻和应用程序上下文保持与上下文相关,以保证按上下文的使用模式被优化,而无需设备了解任何使用模式。

Description

重定序两阶段提交中的资源的最后代理优化方法和***
技术领域
本发明涉及事务处理,尤其涉及两阶段提交(two-phase commit)中的最后代理优化(last-agent optimization)。
背景技术
任何涉及需要均一结果(homogeneous outcome)的多个实体的操作均需要某种外部协同以保证每个实体接收相同结果。分布式事务是这种操作的一个例子。事务一般具有两个可能结果:提交或回退。为了保证结果均一,使用被称为两阶段提交的协议。管理事务资源的实体被称作资源管理器。
在两阶段提交过程中,首先请求编入(enlist)事务的每个资源准备提交,并且接着被指示进行提交。在第一阶段期间,资源管理器确认它能够通过应答一个认可值来成功完成提交。如果所有资源认可提交,则写入一个日志记录以指示结果并且提交所有资源。如果任何资源不能确认提交将成功,则所有资源被回退。如果结果是回退,则由于缺省结果是回退(假定中止),通常没有日志记录被写入。当所有资源成功地执行相同结果时,所述结果被称为是原子的(atomic)。
事务管理器通常负责组合和定序要驱动的资源。假定进行准备,提交和回退的每个调用必须被驱动到网络上的从属资源,则两阶段事务导致网络上的一个日志写入和2n个调用,其中n是编入事务中的资源的数量。
如果只有一个资源被编入事务,则准备阶段和日志写入变得不必要,因为只有一个资源,并且因此无论准备调用是否成功,事务的结果将是原子的。在这种情况下,简单请求单个资源进行提交,并且提交总体结果。如果提交失败,则总体结果变为回退。这种优化被称作一阶段提交或纯代理(only-agent)。
需要进一步优化将通常需要两阶段提交的选择事务收缩为一阶段提交的两阶段提交过程(也称为最后代理优化)。当请求准备时,资源会在其对于后续提交或回退调用没有要完成的更新的情况下,返回只读值。如果在事务中编入n个资源,并且前n-1个资源对准备调用表决为只读,则剩余资源将变成编入的唯一资源,并且能够对其执行一阶段提交。这个所需的优化被称作最后代理优化,因为最后资源(或代理)会能够执行一阶段提交优化并且仍然保持总体事务的均一结果。在这种情况下,提交事务所需的网络调用的总数将减少到n,并且在准备阶段之后不需要记入日志。
发明内容
本发明涉及对参与两阶段提交的资源进行动态重定序以启发式地进行最后代理优化的方法,***和存储介质。
第一方面用于最后代理优化的方法,包括:为应用程序建立到多个资源中的每个资源的连接;
确定当前事务上下文;
收集与每个资源相关的使用统计数据;及
根据所述收集到的与每个资源相关的使用统计数据,确定当前事务上下文中每个资源的顺序以实现基于使用统计数据的最后代理优化;
其中在确定当前事务上下文中每个资源的顺序时,将只读资源排在前面。另一个方面是提供一种用于最后代理优化的准备***,包括:
用于保存多个资源中的每个资源的使用统计数据和历史信息的直方图的存储设备;及
事务管理器,用于基于直方图对当前事务中的每个资源进行定序,使得只读可能性大的资源被首先准备,并且无需准备非只读资源。
另一个方面是用于最后代理优化的另一个***,,包括:
在通用计算机上运行应用的服务器;
驻留在服务器上的应用程序容器;
在应用程序容器中运行的至少一个应用程序,应用程序包含使用多个资源的至少一个事务;
服务器上的事务管理器,用于在两阶段提交过程的提交阶段期间,根据所述多个资源中的每个资源的使用统计数据和历史信息对资源进行定序以实现最后代理优化;及
服务器上的连接管理器,用于提供资源给应用程序并且用于使用事务管理器编入资源。
另一个方面是存储用于执行最后代理优化方法的指令的存储介质,其中使用统计数据被存储在直方图中。使用直方图对当前事务上下文中的资源进行定序以实现最后代理优化。自主调整定序以在使用方面产生变化。
附图说明
结合以下描述,所附权利要求书和附图,本发明的这些和其它特征,方面及优点将更好理解,其中:
图1是两阶段提交过程的现有技术例子的数据流图;
图2是优化的最后代理提交过程的示例性实施例的数据流图;
图3是事务***的示例性实施例的模块图;
图4是将资源编入当前事务的处理的示例性实施例的数据流图;
图5是图解示例性实施例如何针对多个应用程序跟踪资源的使用统计数据的逻辑图;及
图6是优化准备处理的资源定序的示例性实施例的流程图。
具体实施方式
图1示出两阶段提交过程的现有技术例子,其中没有为最优提交而对资源进行定序。在第一和第二步骤中,来自应用程序容器和应用程序管理器的提交流向事务。在事务中存在两个资源。在第三步骤中,第一资源接收准备调用,并且向事务返回认可。在第四步骤中,第二资源接收准备调用,并且向事务返回只读。这结束了两阶段提交的第一阶段。由于资源中的一个返回认可,所以在第五步骤中结果被记录,并且在第六步骤中,提交在该资源(第一资源)上流过,对此第一资源返回认可。这结束了两阶段提交的第二阶段。
在这个例子中,通常需要两阶段提交的选择事务被缩减为一阶段提交。当请求准备时,资源在其对后续提交或回退调用没有要完成的更新的情况下,返回只读值。如果在事务中编入n个资源,并且前n-1个资源对准备调用表决为只读,则剩余资源变成编入的唯一资源,并且执行一阶段提交。这是最后代理优化,因为最后资源(或代理)能够执行一阶段提交优化。在这种情况下,提交事务所需的网络调用的总数减少到n,并且在准备阶段之后不必记录。
如果最后资源之前的所有资源表决为只读,则可以执行最后代理优化。例如,假定事务编入n个资源,其中n>1。如果第一个资源对准备调用表决认可,并且剩余n-1个资源表决只读,则仅留下一个编入事务中的资源。然而,这个资源已经为准备而驱动。由于两阶段提交中的阶段一已经执行,所以不能执行一阶段提交。随着两阶段提交的第二阶段,结果被记录,并且驱动剩余资源进行提交。在这种情况下,由于一个资源被准备以及提交,所以存在总共n+l个提交事务所需的网络调用。
在这个示例性实施例中,如果资源被最优定序,则额外网络调用和日志写入在上述情景中是可避免的。如果不能表决只读的资源被最后驱动,则在使用最后代理优化时不需要额外网络调用和日志写入。
图2示出了优化的最后代理提交过程的示例性实施例。图1所示的相同事务在图2中示出。然而,在图2中,资源被定序,使得在第一阶段期间,第二资源被首先驱动。在第三步骤中,响应准备调用,第二资源返回只读。由于只有一个资源,即第一资源留下,在第四步骤中,它被驱动提交,而无需执行阶段一的剩余部分。
事务处理的例子是储蓄帐户和支票帐户之间资金的转移。在存在***故障的情况下,两阶段提交操作可以被用于进行恢复。假定存在从储蓄帐户传送$100到支票帐户的请求。为了满足请求,$100必须从储蓄帐户中扣除。如果从储蓄帐户中扣除$100,但是在$100记入到支票帐户之前***失败,则存在问题。两阶段提交操作包含向资源(例如储蓄帐户管理器和支票帐户管理器)通知需要从储蓄帐户转移$100到支票帐户,并且在存储用于可能的恢复的事务记录的同时请求其它资源的批准。一旦存在批准并且所有方面均没有问题,则事务被提交并且资源有责任完成事务,即使存在***失败(在这种情况下,所存储的记录在***重新启动之后被用于完成事务)。
当事务中只有一个更新方或一个资源留下时,可以执行最后代理优化。不需要请求唯一一个资源进行提交。假定事务是储蓄帐户的余额查询;即一个资源(储蓄帐户管理器)的只读事务。当询问储蓄帐户管理器是否能够提交时,它响应以忘记(forget)。
示例性实施例自动确定顺序,使得在指定上下文中可能表决认可的任何资源之前轮询在指定上下文中可能表决忘记的任何资源。首先确定所有只读动作,把提交者留到最后。最优的情况是仅留有一个提交者。基于可以显示在直方图中的使用数据进行关于资源是否可能表决忘记或提交的预测。
图3示出事务***的示例性实施例。应用服务器300包含应用程序容器302,连接管理器304及事务管理器306。例如应用服务器300的应用服务器是任何通用计算机。
应用程序容器302拥有第一应用程序308和第二应用程序310。例如应用程序容器302的应用程序容器是用户能够部署要运行的应用程序的地方。应用程序容器是受管理的环境,其中应用程序具有对它可用的某些服务,例如连接管理和事务管理。根据怎样定义受管理的环境,应用程序能够具有变化的粒度,例如部件级别。在这个例子中,第一应用程序308是独立应用程序,同时第二应用程序310包含第一模块312和第二模块314。
连接管理器304包含第一资源(A)316和第二资源(B)318。
事务管理器306从各个资源收集表决,并且确定结果。事务管理器306负责对资源进行定序,其对应用程序308,310透明。用于对参与两阶段提交的资源进行动态重定序以启发式地进行最后代理优化的示例性实施例驻留在事务管理器306中。在这个示例性实施例中,使用散列映射将使用统计数据存储在事务管理器306中。在其它示例性实施例中,使用统计数据被存储在事务管理器306可访问的任何存储设备中。
假定第一资源316是储蓄帐户,并且第二资源318是支票帐户。并且,假定第二应用程序310中的第一模块312对储蓄帐户执行余额查询,即只读操作,并且第二模块314对支票帐户执行提取(withdrawal),即修改该资源。在这种情况下,期望基于使用统计数据对资源316,318进行定序,使得只读事务(余额查询)首先进行,并且修改事务(提取)最后进行。
为了使事务管理器306使用最后代理优化对资源进行定序,事务管理器306需要先验地知道资源在它们被驱动进行准备时将怎样表决。在某些***中,***管理员可以提供部署提示给事务管理器以指示特定资源将怎样作为。这允许事务管理器306将可能表决只读的资源定序在从不表决只读的那些资源之前。然而,这需要***管理员可得到这个信息,并且需要使用这个资源的所有应用程序以类似方式使用它,因为多个应用程序可能以不同方式使用相同资源,因而需要相同资源的多个配置。由于工作负载模式可表现出随时间变化特性,即使在***的配置没有改变时也是如此,因此对于某些安装,这是不切实际的。
图4示出了用将资源编入当前事务的处理的示例性实施例。在第一步骤中,应用程序容器302内的第一应用程序308正调用连接管理器304以建立到一资源,例如保存银行帐户的关系数据库的连接。在第二步骤中,连接管理器304调用应用程序容器312以检索应用程序标识符(ID)。应用程序标识符是在应用程序容器302内为第一应用程序308部署的标识符。作为响应,应用程序容器312返回ID=1。在步骤三,连接管理器304通过事务管理器306进行检查以确定第一应用程序308是否具有事务上下文。它有,所以在步骤四连接管理器304编入第一资源(A)316。在步骤五,当前事务通过事务管理器306进行检查以得到到目前为止针对第一资源(A)316产生的使用统计数据,并且返回到连接管理器304。
在这个例子中,″A1″是应用程序名称(应用程序″1″)和资源名称(资源″A″)的组合。其它示例性实施例可以使用任何其他唯一标识符。在图3中,第二应用程序310具有两个部件,第一模块312和第二模块314。为了跟踪特定应用程序和特定资源的正确使用统计数据,指示第二应用程序310正使用第一资源316是不够的。而是,事务管理器306通过容器管理器304进行检查以确定哪个部件正在运行。在这种情况下,它是第一应用程序308。接着,当连接管理器304正编入第一资源316时,连接管理器304向事务传递应用程序ID″1″和资源ID″A″。事务连接它们以产生″A1″,以便确定正确部件的使用统计数据。部件的粒度取决于维护ID列表和目前运行的应用程序的ID的应用程序容器302。例如,在Java2平台中,企业版(J2EE)服务器,应用程序被分解成模块,并且模块被分解成部件,即3个粒度级别。在其它示例性实施例中,可以有或多或少的粒度级别。
图5图解了示例性实施例如何针对多个应用程序跟踪资源的使用统计数据。对于第一资源(A)316,存在3个部件的使用统计数据,即第一应用程序308(ID=A1),第二应用程序310的第一模块312(ID=A2.1)和第二应用程序310的第二模块314(ID=A2.2)。
所有这些部件500,502,504的资源统计数据均包含准备,只读和失败的计数,以及只读(RO)和失败的等级。只读等级=准备数量/只读数量。只读等级1是最高可能等级,指示每次只读的表决。失败等级=准备数量/失败数量,其中失败指示远程资源管理器在准备期间遇到例如处理XA异常(XAException)的某种异常条件。这里,由于它与ID-A1的准备数量(准备=100)相同,所以失败等级100是ID=A1的最高可能等级。
图6示出了优化准备处理的资源排序的示例性实施例。这个示例性实施例包含确定怎样排序编入事务中的资源,使得结果排序产生如上所述的最后代理优化。该方法无需***管理员的干预动态对资源进行定序。
在这个示例性实施例中,为了预测资源的将来行为,在直方图中跟踪每个资源的以往行为。直方图是存储器中存储的表格,使用情况的表格和历史记录。当情况出现时,搜索表格以查看它是否在以前出现过。直方图记录针对指定***和情况资源表决只读或无法完成准备阶段的频度。事务管理器使用这个信息预测在当前事务中资源可能怎样作为,并且对资源进行定序,使得可能表决只读的那些资源被首先驱动。这增加了能够执行最后代理优化的频率。
在这个示例性实施例中,直方图包含资源实例到使用统计数据的映射。在使用统计数据中,若干计数器被维护。一个计数器表示这个资源已经准备过的总次数。另一个计数器表示这个资源已被表决只读的总次数。另一个计数器表示这个资源在准备阶段内出现异常的总次数。使用这些计数器,资源实例按照相对于准备总数的表决只读频度和相对于准备总数无法完成准备频度进行排序。
在另一个示例性实施例中,应用服务器在通用计算机上运行。应用服务器包含容器,连接管理器和事务管理器。在容器内,部署和运行一或多个应用程序。连接管理器负责向容器中运行的应用程序提供资源实例,并且通过事务管理器编入那些资源。事务管理器负责产生容器中运行的应用程序的事务边界,提供编入事务边界的资源的原子结果,并且在提交阶段对资源进行定序。
在这个示例性实施例中,当部署应用程序时,它被分配应用ID。根据怎样构造应用程序,这个应用ID被进一步分解成应用程序内的部件。应用程序内的每个部件也基于应用程序的总体ID被分配ID。应用程序内的每个部件提供描述部件事务语义的部署元数据。元数据描述部件是否应当在事务内运行,及部件是否应当加入可能在其进入时已经运行的事务。
在这个示例性实施例中,当应用程序被驱动时,容器***件的元数据并且把这个请求所需的事务上下文通知事务管理器。接着执行应用程序代码。当应用程序需要使用资源(例如,一部分关系数据库)时,应用程序通过连接管理器请求连接。连接管理器检查当前事务上下文,并且在存在事务的情况下,连接管理器向事务管理器传递资源和当前执行的部件的ID。事务管理器接收资源实例并且把它转换成标识符,该标识符与部件的ID连接以产生表示资源和使用资源的部件的标识符。
在这个示例性实施例中,存在实现为把标识符映射到一组使用统计数据的散列映射的直方图。通过把部件ID和资源ID连接在一起,我们具有每个资源的多组使用统计数据,使用资源的每个部件有一组。使用统计数据与资源实例结合,并且共同被编入当前事务。接着,连接管理器把到资源的连接返回到应用程序代码。
在这个示例性实施例中,使用统计数据包含通过将准备总数除以只读表决总数而产生的只读等级。每次100%表决只读的资源具有等级值1,其是用于优化的最优可能等级。每次0%表决只读表决只读的资源具有等于它已经准备的总次数的等级。通过将准备总数除以失败或异常总数来确定失败等级。具有高等级的资源被排序在具有低等级的资源之前。每次100%失败的资源具有等级1。
在某些实施例中,所有计数器被初始化成1以防止在计算等级时除以0。在某些实施例中,当进行变化以允许配置改变快速反映在使用统计数据中,或反映在任何其他适当时间安排上时,在指定时间间隔复位计数器和等级。在某些实施例中,如果准备计数器达到***的最大值,则等级和计数器被复位。
在某些实施例中,等级仅在指定间隔被计算。在某些实施例中,对于前100个准备,每次准备总数递增时计算等级。对于接着的100个准备,每十次准备总数递增时计算等级。对于接着的10,000个准备,每100次准备递增时计算等级。对于所有剩余的准备,在某些实施例中,每1000次准备递增时计算等级。
在这个示例性实施例中,将使用统计数据封装成对象,并将该对象***到排序列表中。排序列表接收两个比较器对象中的一个。比较器对象基于只读等级或失败等级排序使用统计数据。
在这个示例性实施例中,当部件结束执行时,容器再次***件的元数据以确定当前事务上下文是否已经结束。如果事务上下文结束,则容器联系事务管理器以完成事务。事务管理器基于相关的使用统计数据对象排序编入事务中的资源。只读比较器把具有低只读等级的资源放置在列表的开始处。
在这个示例性实施例中,事务管理器基于其等级驱动每个资源的准备。当准备被驱动时,资源的准备计数器递增。当资源表决只读时,该资源的只读计数器递增,并且该资源被从编入事务中的资源的列表中清除。在所有表决之后,如果单个资源保持编入,则执行最后代理优化以结束事务。如果响应准备调用,资源表决认可,则列表的比较器切换到失败比较器,按照其失败等级排序剩余元素,使得可能失败的资源被首先驱动。如果资源失败,则由于结果现在为回退,所以不需要在剩余资源上驱动准备。在那些不大可能失败的资源之前排序可能失败的资源在实际失败情况下额外节省了流过网络的若干准备,然而这应当只在唯一代理优化不再可能时进行。两阶段提交接着继续对剩余资源进行。如果资源失败,则其失败计数递增,并且由于资源将被回退,所以跳过剩余资源的准备阶段。
如上所述,本发明的实施例可以实现这些处理的计算机实现的处理和设备的形式体现。本发明的实施例也可以包含以例如软盘,CD-ROM,硬盘驱动器或任何其他计算机可读存储介质的有形介质体现的指令的计算机程序代码的形式体现,其中,当计算机程序代码被载入并且通过计算机执行时,计算机变成实践本发明的设备。本发明也可以计算机程序代码的形式体现,例如在存储介质中存储,载入和/或通过计算机执行,或通过例如电连线或电缆,光纤,或电磁辐射的某种传输介质发送的计算机程序代码,其中当计算机程序代码被载入并且通过计算机执行时,计算机变成实践本发明的设备。当在通用微处理器上实现时,计算机程序代码段配置微处理器以产生特定逻辑电路。
虽然参照示例性实施例描述了本发明,然而本领域的技术人员将理解,在不偏离本发明的范围的情况下可以进行各种变化并且可以用等同特征代替其中的要素。另外,本发明的各种实施例的较小调整可以使用对标准的将来改进或变化。此外,各种部件可以硬件,软件或固件或其任何组合实现。最终,可进行许多修改以使特定情况或材料适合本发明的教导,而无需偏离其实质范围。因此,本发明不限于公开为本发明具体实施方式的特定实施例,本发明将包含属于所附权利要求书的范围的所有实施例。此外,术语第一,第二等等的使用不表示任何顺序或重要性,而是术语第一,第二等等被用于把一个要素与另一个要素区分开。此外,术语一,一个等等的使用不表示数量的限定,而是表示至少一个所指项目的存在。

Claims (16)

1.一种用于最后代理优化的方法,包括:
为应用程序建立到多个资源中的每个资源的连接;
确定当前事务上下文;
收集与每个资源相关的使用统计数据;及
根据所述收集到的与每个资源相关的使用统计数据,确定当前事务上下文中每个资源的顺序以实现基于使用统计数据的最后代理优化;
其中在确定当前事务上下文中每个资源的顺序时,将只读资源排在前面。
2.如权利要求1所述的方法,其中与每个资源相关的使用统计数据包含从以下之中选出的至少一个计数器,用于统计这个资源被准备过的次数,这个资源被表决过为只读的次数,及这个资源失败过的次数。
3.如权利要求2所述的方法,其中与每个资源相关的使用统计数据包含只读等级及失败等级。
4.如权利要求3所述的方法,其中以选定间隔确定只读等级及失败等级。
5.如权利要求2所述的方法,其中收集与每个资源相关的使用统计数据步骤还包括:
检索与应用程序相关的应用程序标识符;
使用散列映射把应用程序标识符映射到为该应用程序的与每个资源相关的使用统计数据。
6.如权利要求2所述的方法,其中至少一个计数器被周期性地复位。
7.如权利要求1所述的方法,其中将收集到的与每个资源相关的使用统计数据封装成对象,并将该对象***到排序列表中。
8.如权利要求3所述的方法,还包括:
基于与该资源相关的只读等级驱动每个资源上的准备;
在资源的列表中编入每个资源;
从当前事务上下文的编入资源列表中清除只读资源;
对编入资源的列表中剩余的单个编入资源执行最后代理优化。
9.一种用于最后代理优化的准备***,包括:
用于保存多个资源中的每个资源的使用统计数据和历史信息的直方图的存储设备;及
事务管理器,用于基于直方图对当前事务中的每个资源进行定序,使得只读可能性大的资源被首先准备,并且无需准备非只读资源。
10.如权利要求9所述的***,其中事务管理器根据所述直方图保存的多个资源中的每个资源的使用统计数据和历史信息,确定当前事务中的每个资源的顺序以实现最后代理优化。
11.一种用于最后代理优化的***,包括:
在通用计算机上运行应用的服务器;
驻留在服务器上的应用程序容器;
在应用程序容器中运行的至少一个应用程序,应用程序包含使用多个资源的至少一个事务;
服务器上的事务管理器,用于在两阶段提交过程的提交阶段期间,根据所述多个资源中的每个资源的使用统计数据和历史信息对资源进行定序以实现最后代理优化;及
服务器上的连接管理器,用于提供资源给应用程序并且用于使用事务管理器编入资源。
12.如权利要求11所述的***,其中事务管理器产生应用程序的事务边界。
13.如权利要求12所述的***,其中事务管理器提供原子结果给编入事务边界的资源。
14.如权利要求11所述的***,其中事务管理器使用统计数据对资源进行定序。
15.如权利要求14所述的***,其中使用统计数据被存储在所述服务器上的事务管理器的散列映射中。
16.如权利要求11所述的***,其中事务管理器如此对资源进行定序,使得响应准备调用而可能表决为只读的任何资源被放置在其它资源之前。
CNB2005101246796A 2004-12-21 2005-11-14 重定序两阶段提交中的资源的最后代理优化方法和*** Expired - Fee Related CN100375038C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/018,889 US7712096B2 (en) 2004-12-21 2004-12-21 Method, system, and storage medium for dynamically reordering resource participation in two-phase commit to heuristically optimize for last-agent optimization
US11/018,889 2004-12-21

Publications (2)

Publication Number Publication Date
CN1794181A CN1794181A (zh) 2006-06-28
CN100375038C true CN100375038C (zh) 2008-03-12

Family

ID=36597684

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101246796A Expired - Fee Related CN100375038C (zh) 2004-12-21 2005-11-14 重定序两阶段提交中的资源的最后代理优化方法和***

Country Status (2)

Country Link
US (1) US7712096B2 (zh)
CN (1) CN100375038C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10261825B2 (en) 2017-04-25 2019-04-16 International Business Machines Corporation Agent flow arrangement management

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0130399D0 (en) * 2001-12-19 2002-02-06 Ibm Message ordering in a messaging system
US8533597B2 (en) * 2003-09-30 2013-09-10 Microsoft Corporation Strategies for configuring media processing functionality using a hierarchical ordering of control parameters
DE102007040676A1 (de) * 2006-11-13 2008-05-15 Abb Technology Ag Optimiertes Speicherungs- und Zugriffsverfahren in einem Historienspeicher eines Automatisierungssystems
US8898669B2 (en) * 2007-07-30 2014-11-25 International Business Machines Corporation Methods and systems for coordinated transactions
US8959516B2 (en) 2007-07-30 2015-02-17 International Business Machines Corporation Methods and systems for coordinated financial transactions in distributed and parallel environments
US9027030B2 (en) * 2007-11-29 2015-05-05 Red Hat, Inc. Commit-one-phase distributed transactions with multiple starting participants
US10007547B2 (en) * 2008-01-17 2018-06-26 International Business Machines Corporation Specifying an invocation order of a plurality of resources in a transaction according to resource distance
US8276141B2 (en) * 2008-12-10 2012-09-25 International Business Machines Corporation Selection of transaction managers based on transaction metadata
US20100146033A1 (en) * 2008-12-10 2010-06-10 International Business Machines Corporation Selection of transaction managers based on runtime data
US8041690B2 (en) * 2009-01-27 2011-10-18 International Business Machines Corporation Storing information for dynamically enlisted resources in a transaction
US8713578B2 (en) * 2009-03-25 2014-04-29 International Business Machines Corporation Managing job execution
US20120016633A1 (en) * 2010-07-16 2012-01-19 Andreas Wittenstein System and method for automatic detection of anomalous recurrent behavior
US9760584B2 (en) 2012-03-16 2017-09-12 Oracle International Corporation Systems and methods for supporting inline delegation of middle-tier transaction logs to database
US9665392B2 (en) 2012-03-16 2017-05-30 Oracle International Corporation System and method for supporting intra-node communication based on a shared memory queue
US9146944B2 (en) 2012-03-16 2015-09-29 Oracle International Corporation Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls
CN103686821B (zh) * 2012-08-27 2016-08-31 上海亿动信息技术有限公司 根据移动终端唯一标识进行应用程序流量统计的控制方法
US9384229B2 (en) 2012-11-29 2016-07-05 International Business Machines Corporation Data readiness using initiator region last commit selection
US9348641B2 (en) * 2013-03-13 2016-05-24 Futurewei Technologies, Inc. System and method for performing a transaction in a massively parallel processing database
US9953053B2 (en) 2014-12-18 2018-04-24 International Business Machines Corporation Reliability improvement of distributed transaction processing optimizations based on connection status
US9495137B1 (en) * 2015-12-28 2016-11-15 International Business Machines Corporation Methods and systems for improving responsiveness of analytical workflow runtimes
US10552409B2 (en) 2016-11-30 2020-02-04 International Business Machines Corporation Dynamically optimizing flows in a distributed transaction processing environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261089A (en) * 1990-05-16 1993-11-09 International Business Machines Corporation Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary
US5953719A (en) * 1997-09-15 1999-09-14 International Business Machines Corporation Heterogeneous database system with dynamic commit procedure control
CN1259702A (zh) * 1998-12-28 2000-07-12 国际商业机器公司 用于编织排序的设备和方法
US6542922B1 (en) * 1999-02-20 2003-04-01 International Business Machines Corporation Client/server transaction data processing system with automatic distributed coordinator set up into a linear chain for use of linear commit optimization

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095421A (en) * 1989-08-17 1992-03-10 International Business Machines Corporation Transaction processing facility within an operating system environment
GB2303474A (en) * 1995-07-19 1997-02-19 Ibm Optimized synchronisation procedure
US5673253A (en) 1996-02-29 1997-09-30 Siemens Business Communication Systems Dynamic allocation of telecommunications resources
US5995997A (en) 1997-05-02 1999-11-30 Microsoft Corporation Apparatus and methods for optimally allocating currently available computer resources to future task instances versus continued execution of current task instances
FR2766592B1 (fr) 1997-07-23 1999-08-27 Bull Sa Dispositif et procede de regulation dynamique de l'attribution des ressources sur un systeme informatique
GB2346985B (en) * 1999-02-19 2003-07-09 Ibm Client/server transaction data processing system with optimum selection of last agent
CN1258962C (zh) 2000-08-04 2006-06-07 松下电器产业株式会社 用于优化元件安装顺序的方法,采用该方法的装置及组装机器
US20030149717A1 (en) 2002-02-05 2003-08-07 William Heinzman Batch processing job streams using and/or precedence logic
US7103597B2 (en) 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7165061B2 (en) * 2003-01-31 2007-01-16 Sun Microsystems, Inc. Transaction optimization of read-only data sources
US20040153383A1 (en) * 2003-01-31 2004-08-05 K Venugopal Rao Transaction management with last agent optimization
US7236632B2 (en) 2003-04-11 2007-06-26 Ricoh Company, Ltd. Automated techniques for comparing contents of images
US7266550B2 (en) * 2004-01-29 2007-09-04 Sap Aktiengesellschaft Managing application status information for a computer application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261089A (en) * 1990-05-16 1993-11-09 International Business Machines Corporation Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary
US5953719A (en) * 1997-09-15 1999-09-14 International Business Machines Corporation Heterogeneous database system with dynamic commit procedure control
CN1259702A (zh) * 1998-12-28 2000-07-12 国际商业机器公司 用于编织排序的设备和方法
US6542922B1 (en) * 1999-02-20 2003-04-01 International Business Machines Corporation Client/server transaction data processing system with automatic distributed coordinator set up into a linear chain for use of linear commit optimization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10261825B2 (en) 2017-04-25 2019-04-16 International Business Machines Corporation Agent flow arrangement management
US11221870B2 (en) 2017-04-25 2022-01-11 International Business Machines Corporation Agent flow arrangement management

Also Published As

Publication number Publication date
US20060136887A1 (en) 2006-06-22
US7712096B2 (en) 2010-05-04
CN1794181A (zh) 2006-06-28

Similar Documents

Publication Publication Date Title
CN100375038C (zh) 重定序两阶段提交中的资源的最后代理优化方法和***
CN111752957B (zh) 一种基于缓存化的销售锁定方法及***
CN108647357B (zh) 数据查询的方法及装置
CN112700310B (zh) 一种基于电商平台的交易订单数据优化处理方法
CN107464151B (zh) 高并发业务的订单数据处理方法及装置
CN103177061A (zh) 分区表中的唯一值估计
CN103177063A (zh) 用于时间数据聚合的时间滑动操作器
JPS633341B2 (zh)
US10437689B2 (en) Error handling for services requiring guaranteed ordering of asynchronous operations in a distributed environment
CN104937556A (zh) 恢复数据库的页面
CN110019469B (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
CN112597153A (zh) 一种基于区块链的数据存储方法、装置及存储介质
CN112559300B (zh) 一种故障原因确定***、方法及装置
US8830831B1 (en) Architecture for balancing workload
Kleppmann et al. Online event processing
CN109614263B (zh) 一种容灾数据处理方法、装置及***
CN112559496B (zh) 一种分布式数据库事务原子性实现方法及装置
CN109597706B (zh) 一种核对差异数据的检测方法、装置及***
US7571171B1 (en) Smart trigger for use in processing business transactions
CN113052515A (zh) 一种基于数据并发处理的教学考评方法及***
CN112035503A (zh) 交易数据更新方法及装置
CN112712433B (zh) 一种基于区块链的数据状态管理和查询方法及区块链装置
CN112860780B (zh) 数据导出方法、装置和终端设备
CN109255702B (zh) 变更账户开户机构的方法及装置
JP2017091213A (ja) データベース更新処理システムおよびデータベース更新処理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SAP AG

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION

Effective date: 20130201

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130201

Address after: German Waldo

Patentee after: SAP AG

Address before: American New York

Patentee before: International Business Machines Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080312

Termination date: 20141114

EXPY Termination of patent right or utility model