CN112383588B - 一种调整资源顺序延迟执行方法、系统及云平台 - Google Patents
一种调整资源顺序延迟执行方法、系统及云平台 Download PDFInfo
- Publication number
- CN112383588B CN112383588B CN202011145677.6A CN202011145677A CN112383588B CN 112383588 B CN112383588 B CN 112383588B CN 202011145677 A CN202011145677 A CN 202011145677A CN 112383588 B CN112383588 B CN 112383588B
- Authority
- CN
- China
- Prior art keywords
- transaction
- resource
- execution
- resources
- manager
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- 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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种调整资源顺序延迟执行方法、系统及云平台,所述方法应用于包含多个云虚拟主机节点的云平台,每一个云虚拟主机节点包括事务管理器和资源管理器;所述方法包括:事务管理器将事务所有资源置入事务资源队列;在延迟执行启动时,对事务所有资源进行排序,并生成排序结果;在调用事务管理准备时,根据排序结果进行延迟执行各资源;延迟执行所有资源后,事务管理器启动事务准备阶段,并清空事务资源队列。通过本发明,无需预先按照统一的全局资源约定的顺序标准访问资源,在资源访问关系之间没有逻辑依赖情况下,TM事务服务透明的调整本事务访问资源顺序,在相当大程度上可以避免分布式事务并发访问资源导致的死锁问题。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及大规模数据服务平台领域,具体为一种调整资源顺序延迟执行方法、系统及云平台。
背景技术
近年随着数字化经济的纵深发展,企业级传统关系型数据库,以及非关系型数据库的应用及数据资源呈现出爆炸式增长,系统和数据的增长促进了业务的精细化分工和协作,而体验良好的智能化的业务流程往往涉及多方系统、多个流程环节、多个资源动态交互、无中心化集中控制等特点,这大幅度提升了整个业务的控制复杂度。
分布式事务是这类场景中一些关键复杂业务的基本要求,这类业务需要访问分布的多个数据资源,这些资源属于多个系统甚至运营商所有,实现架构上没有集中控制中心。因为分布式事务执行需要竞争和锁定资源,如何提高分布式事务的吞吐率,尽量避免并发关键业务导致的事务资源死锁,是解决这类分布式事务的关键问题之一。
解决分布式事务死锁的一个关键而有效的技术手段,就是对所有涉及事务处理的资源排序,并遵循相同的顺序依次访问。这要求事务业务的开发人员遵循相应的技术约定规范标准和专业习惯。
显然,在无集中控制、跨多方系统、资源动态变化、独立敏捷开发环境,这种统一要求的技术约定标准,约定和实施起来都相对较困难,需要业务支撑平台,如云平台,有相应的技术和机制,能支持关键业务在无集中控制的无序开发环境,运行时能尽量调整执行顺序满足对资源的顺序访问。
而且当前大规模数据服务平台的具体实践中,常常为了提高可扩展性、可用性、吞吐率、响应时间等指标,大幅度牺牲了或限制了传统关系型数据库的OLTP业务的数据一致性能力。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种调整资源顺序延迟执行方法、系统及云平台,用于解决现有技术中在无集中控制的无序开发环境中并发关键业务导致的事务资源死锁的问题。
为实现上述目的及其他相关目的,本发明提供一种调整资源顺序延迟执行方法,应用于包含多个云虚拟主机节点的云平台,每一个云虚拟主机节点包括事务管理器和资源管理器;所述调整资源顺序延迟执行方法包括:事务管理器将事务所有资源置入事务资源队列;在延迟执行启动时,对所述事务所有资源进行排序,并生成排序结果;在调用事务管理准备时,根据所述排序结果进行延迟执行各资源;延迟执行所有资源后,事务管理器启动事务准备阶段,并清空所述事务资源队列。
于本发明一实施例中,在延迟执行启动时,同步给应用逻辑返回预先约定的结果。
于本发明一实施例中,在同步执行启动时,所述事务资源队列给应用逻辑返回未按顺序执行的资源列表,并向所述应用逻辑发送预设提醒。
于本发明一实施例中,若延迟执行中出现异常状态时,所述事务管理器启动事务回滚。
于本发明一实施例中,所述对所述事务所有资源进行排序的一种方式为:按照虚拟表的自然属性编号进行排序。
于本发明一实施例中,所述事务管理器以事务键为关键字,动态存储和管理事务所访问的虚拟表资源。
于本发明一实施例中,所述事务管理器在接收到事务服务的云端访问请求时启动,对关键业务的事务全过程管理和控制;通过虚拟表对大规模物理异构数据库资源进行管理;通过资源管理器基于云平台的访问通道和虚拟表的服务地址,对所述关键业务的资源进行管理;一个事务管理器协调运行在多个云虚拟主机节点中的资源管理器,形成运行时结构体,通过运行时结构体完成一次即时性的全局事务服务;所述全局事务服务完成后,所述运行时结构体被摧毁;运行时即时存储事务管理器的事务管理日志和资源管理器的资源管理日志。
对应地,本发明提供一种调整资源顺序延迟执行系统,应用于包含多个云虚拟主机节点的云平台,其特征在于:每一个云虚拟主机节点包括事务管理器和资源管理器;所述调整资源顺序延迟执行系统包括:事务资源队列模块,事务管理器将事务所有资源置入事务资源队列,在延迟执行启动时,对所述事务所有资源进行排序,并生成排序结果;延迟执行模块,用于在调用事务管理准备时,根据所述排序结果进行延迟执行各资源,延迟执行所有资源后,事务管理器启动事务准备阶段,并清空所述事务资源队列。
于本发明一实施例中,在延迟执行启动时,同步给应用逻辑返回预先约定的结果;在同步执行启动时,所述事务资源队列给应用逻辑返回未按顺序执行的资源列表,并向所述应用逻辑发送预设提醒;若延迟执行中出现异常状态时,所述事务管理器启动事务回滚。
本发明提供一种云平台,应用如上所述的调整资源顺序延迟执行方法。
如上所述,本发明的调整资源顺序延迟执行方法、系统及云平台,具有以下有益效果:
1)本发明在现有动态可扩展的云架构基础上,提出一种应用层可主动控制的、平台层透明的调整事务资源访问顺序及延迟执行机制,避免不规范的应用逻辑对事务资源并发访问导致资源竞争死锁问题,最终实现物理数据源的穿透性、强一致的在线联机事务处理。
2)本发明为各方在云平台上自主开发分布式关键业务提供便利和自主独立变更的优点。技术人员无需预先按照统一的全局资源约定的顺序标准访问资源,在资源访问关系之间没有逻辑依赖情况下,TM事务服务透明的调整本事务访问资源顺序,在相当大程度上可以避免分布式事务并发访问资源导致的死锁问题。
3)本发明能基于现有云架构、数据处理中间件等拓展,能较好的与现有分布式数据平台对接,业务编写和用户体验能实现平滑转移,因此,本发明在带来新型技术和适用功能的同时,建设、运营、推广成本较低。
附图说明
图1显示为本发明的调整资源顺序延迟执行方法应用的云平台框架示意图;
图2显示为本发明的调整资源顺序延迟执行方法的流程示意图;
图3显示为本发明的调整资源顺序延迟执行方法于一实施例中的数据处理关系示意图;
图4显示为本发明的调整资源顺序延迟执行方法应用的云平台运行原理示意图;
图5显示为本发明的调整资源顺序延迟执行系统的原理框图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
类似云平台这类大规模数据服务平台,在资源访问关系之间没有逻辑依赖情况下,可以为应用逻辑提供一种透明的调整资源访问顺序的延迟执行机制,在相当大程度上可以避免事务并发访问资源导致的死锁问题。
本实施例为这类新型大数据平台提供了一种优化OLTP(On-Line TransactionProcessing,联机事务处理过程)业务运行效能的框架和方法,可以大幅度提高无集中控制的无序开发环境的分布式事务执行效能。本实施例利用大规模数据库资源的虚拟网格化管理机制,在云平台层,为应用逻辑提供一种逻辑可主动控制的、透明的调整资源访问顺序的延迟执行机制,尽量避免不规范的应用逻辑对事务资源并发访问导致资源竞争死锁问题,最终实现物理数据源的穿透性、强一致的在线联机事务处理,支持大规模、分布式异构数据库面向全局的、即时性的OLTP业务。
具体地,本实施例的目的在于提供一种调整资源顺序延迟执行方法、系统及云平台,用于解决现有技术中在无集中控制的无序开发环境中并发关键业务导致的事务资源死锁的问题。
以下将详细阐述本实施例的调整资源顺序延迟执行方法、系统及云平台的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的一种调整资源顺序延迟执行方法、系统及云平台。
如图1所示,本实施例提供一种调整资源顺序延迟执行方法,应用于包含多个云虚拟主机节点(图1中所示的云虚拟主机节点1、云虚拟主机节点2…云虚拟主机节点N)的云平台,,如图1所示,每一个云虚拟主机节点(VM)均配置有一个所述事务管理器(TM,Transaction Manager)和一个资源管理器(RM,Resource Manager)。
如图2所示,本实施例中,所述调整资源顺序延迟执行方法包括:
步骤S110,事务管理器将事务所有资源置入事务资源队列;
步骤S120,在延迟执行启动时,对所述事务所有资源进行排序,并生成排序结果;
步骤S130,在调用事务管理准备时,根据所述排序结果进行延迟执行各资源;
步骤S140,延迟执行所有资源后,事务管理器启动事务准备阶段,并清空所述事务资源队列。
本实施例的调整资源顺序延迟执行方法是通过对事务资源队列化管理,调整事务资源访问顺序延迟执行的机制,避免大规模高并发环境下事务资源死锁的问题。
以下对本实施例的调整资源顺序延迟执行方法中的上述步骤S110至步骤S140进行详细说明。
步骤S110,事务管理器将事务所有资源置入事务资源队列。
于本实施例中,所述事务管理器以事务键为关键字,动态存储和管理事务所访问的虚拟表资源。如图3所示,每个云虚拟主机节点上,事务管理器(TM,TransactionManager)服务在数据执行时针对事务访问的虚拟资源,提供一种可主动控制的、透明的将事务所有资源预先置入事务资源队列,暂缓执行。
于本实施例中,所述事务管理器(TM,Transaction Manager)配置于云虚拟主机节点中,在接收到事务服务的云端访问请求时启动,对关键业务的事务全过程管理和控制。
所述事务管理器实现一次关键业务的事务全过程管理和控制,每次事务需要一个或多个独立的资源管理器(RM,Resource Manager)参与协同,每次事务所述事务管理器运行在独立的云虚拟主机节点上。
所述事务管理器(TM)相当于云虚拟主机节点的一个内置核心组件,每个云虚拟主机节点在处理标签为事务的请求时,会启动所述事务管理器(TM),实现全程事务监控和管理。于本实施例中,所述事务管理器(TM)并不是一个代理应用服务(如Tuxedo架构中的Application Service),不代理云端进程/线程完成对关键资源的事务访问通路,而是作为一个专门依附并服务于该通路的运行时结构体及其持久存储日志,实现事务管控的。这样,只有标签为事务服务的云端访问请求,才会启动相应的所述事务管理器(TM)及服务,而针对非事务请求,并不需要TM服务和RM服务。
步骤S120,在延迟执行启动时,对所述事务所有资源进行排序,并生成排序结果。
于本实施例中,在延迟执行启动时,同步给应用逻辑返回预先约定的结果,即同步给应用逻辑返回一个约定的结果,不影响应用逻辑继续“执行”。在同步执行启动时,所述事务资源队列给应用逻辑返回未按顺序执行的资源列表,并向所述应用逻辑发送预设提醒。
于本实施例中,资源队列是TM服务中的一个独立组件,如图3所示,每个事务键(key)所访问的资源预先放入该资源队列,形成事务资源队列,可以同步执行事务资源队列,也可以延迟执行事务资源队列。如果TM事务服务针对本事务选择不同步实时执行即延迟执行,只是同步给应用逻辑返回一个预约的结果。事务资源队列可以对每个事务所访问的资源按照预先约定的规则排序,在事务第一阶段(prepare阶段)再延迟执行。如果TM事务服务选择同步执行,即不延迟执行,事务资源队列会给应用逻辑返回未按顺序执行的资源列表,以提醒应用逻辑。
步骤S130,在调用事务管理准备时,根据所述排序结果进行延迟执行各资源。
步骤S130即为调整顺序延迟执行阶段:事务管理准备即为XA事务的第一阶段,在XA事务的第一阶段,TM服务首先对该事务访问的所有资源按预先统一的规则顺序排序,再透明的按照排序启动顺序执行(称之为“调整顺序延迟执行”)。
于本实施例中,若延迟执行中出现异常状态时,所述事务管理器启动事务回滚。
其中,于本实施例中,所述对所述事务所有资源进行排序的一种方式为:按照虚拟表的自然属性编号进行排序。
即于本实施例中,应用逻辑代码启动第一阶段准备(prepare)阶段时,代表需要访问的事务资源全部“结束”,事务管理器(TM)检查到该事务有资源队列服务并延迟执行,立即启动该事务键(key)资源队列服务对资源排序,排序可以按照虚拟表的自然属性编号进行排序,也可以是系统定义的其他规则,只要整个系统的规则一致即可,获得资源顺序列表。
也就是说,应用逻辑“访问”完所有资源后(只是把资源放入资源队列),调用TM事务准备时,此时TM服务根据当前事务状态,如果事务启动了资源队列延迟执行,会立即调用排序操作,对该事务的所有资源按照统一约定规则排序,再将排序结果给延迟执行引擎执行,如果这期间出现异常等非常状态,事务管理器(TM)会直接启动事务回滚。
步骤S140,延迟执行所有资源后,事务管理器启动事务准备阶段,并清空所述事务资源队列。
即延迟执行完毕后,事务管理器(TM)立即自动启动事务准备阶段。应用逻辑可以主动控制关闭本事务的延迟执行机制,从而事务资源会同步实时执行操作。
如上所述,步骤S110和步骤S120相当于实现如下事务资源队列服务:
1)按照事务键(key)为关键字,动态存储和管理事务所访问的虚拟表资源。
2)按照系统约定规则,对事务资源排序。
3)事务延迟执行后,自动清空队列。
4)非顺序执行的虚拟资源,对应用发出提醒。
5)对应用同步返回约定的“执行”结果。
6)提供关闭/打开事务资源队列调整顺序延迟执行接口。
步骤S130和步骤S140相当于实现如下延迟执行引擎服务:
1)由事务的事务管理器(TM)启动和运行时监控。
2)按照资源排序,依次调用云平台虚拟资源访问执行服务。
3)延迟执行引擎出现异常,直接反馈给事务管理器(TM),由事务管理器(TM)立即启动事务回滚。
4)延迟执行引擎执行完后,由TM服务直接立即启动事务准备阶段。
如图4所示,于本实施例中,所述事务管理器在接收到事务服务的云端访问请求时启动,对关键业务的事务全过程管理和控制。所述事务管理器实现一次关键业务的事务全过程管理和控制,每次事务需要一个或多个独立的资源管理器(RM,Resource Manager)参与协同,每次事务所述事务管理器运行在独立的云虚拟主机节点上。
具体地,于本实施例中,所述事务管理器对关键业务的事务全过程管理和控制包括:
创建当前事务运行的事务对象实体,该事务对象实体基于当前业务运行的线程号/进程号/指定的事务键获取;管理访问的虚拟资源及地址,通过该地址,访问到对应的资源管理器构建的资源对象实体;关键业务执行过程中,数据执行、事务准备、事务提交,三个运行时阶段的实时状态管理;事务超时监控、事务异常等状态管理;输出、恢复事务管理日志;事务恢复。
于本实施例中,如图4所示,资源管理器(RM,Resource Manager)配置于云虚拟主机节点中,基于云平台的访问通道和所述虚拟表的服务地址,对所述关键业务的资源进行管理。
资源管理器(RM)针对每次关键业务事务,资源管理器(RM)是服务于事务管理器(TM),是管理特定资源的资源管理器。显然,一个事务管理器(TM)可以协调多个资源管理器(RM)。每个资源管理器(RM)运行在独立的云虚拟主机节点上,也即运行在该资源当前的控制服务节点上。
于本实施例中,资源管理器(RM,Resource Manager)也是云虚拟主机节点的一个内置核心组件。对该云虚拟主机节点管控的某个资源进行事务操作访问时,该云虚拟主机节点启动一个针对该资源的RM实例。跟TM一样,RM不是代理资源访问应用服务的一部分,而是代表运行时结构体及其持久存储日志。
具体地,于本实施例中,所述资源管理器对所述关键业务的资源进行的管理包括:
事务键的执行数据操作时,即时创建对应资源的资源对象实体,该资源对象实体通过事务键获取;管理资源针对该事务键过程中,数据执行、事务准备、事务提交,三个运行时阶段的实时状态管理;资源处理事务的超时监控、资源异常状态管理;输出、恢复资源管理日志;资源恢复。
于本实施例中,一个事务键(key)可能访问同一个云虚拟主机节点(VM)上的RM服务地址一次或多次,这样同一个RM服务可能为该事务键(key)生成一个或多个RM实例,每个RM实例管理对应的一个资源。
于本实施例中,一个事务管理器协调运行在多个云虚拟主机节点中的资源管理器,形成运行时结构体,通过运行时结构体完成一次即时性的全局事务服务;所述全局事务服务完成后,所述运行时结构体被摧毁;运行时即时存储事务管理器的事务管理日志和资源管理器的资源管理日志。
也就是说,一个事务管理器(TM)通过协调运行在多个独立云虚拟主机节点上的资源管理器(RM),共同完成一次即时性的全局事务服务。事务完成后,运行时结构体被摧毁,只保存持久存储的TM和RM事务日志。
于本实施例中,每个云虚拟主机节点单独管理和存储本节点的持久事务日志,所有日志按照TM和RM服务分开存储和管理。为提高处理性能,每个节点可以同时开启多个日志文件并行存储输出日志信息,但是确保每个特定Key的日志最终都映射到同一个物理TM和RM日志文件。每个事务日志文件存储有限量的事务信息,并采取定时清除机制。
于本实施例中,每个云虚拟主机节点都可以提供对等的、独立的、松耦合的事务管理器(TM)和资源管理器(RM)服务,实现对所有接入云端资源的全局事务管理。
云平台要管理和访问海量数据资源,给云应用提供便捷的、轻量级的访问接口,屏蔽海量分布异构物理资源访问的繁琐细节,前提就是必须实现资源的虚拟化管理,通过动态定位和动态映射,实现对物理资源的透明访问和控制。这种云平台的资源虚拟化管理机制,以及统一的基于虚拟表的访问接口,为对应用透明化的实现事务资源队列和调整顺序延迟执行提供了可能。本实施例的事务管理框架通过动态定位和动态映射,实现对物理资源的透明访问和控制。
于本实施例中,所述虚拟表运行于云平台的某一云虚拟主机节点中,对大规模物理异构数据库资源进行管理。通过资源管理器基于云平台的访问通道和虚拟表的服务地址,对所述关键业务的资源进行管理。具体地,所述虚拟表动态映射所述关键业务对应的一个或多个物理库表,实现所述关键业务访问一个或多个物理资源。
详细而言,云平台通过虚拟化机制实现对物理异构数据库资源的管理,虚拟表是云平台的一个抽象资源实体,通过动态映射,映射到对应的一个或多个物理库表。所有虚拟表在云端又按照社区进行局部的集中管理和控制。云端的数据操作,都是针对虚拟表的接口。
基于虚拟表的统一接口编写的关键业务的应用逻辑运行在云平台的某个云虚拟主机节点上,该云虚拟主机节点启动一事务管理器(TM)服务实例为该业务服务,而通过云平台的动态映射机制,该业务最终要绑定访问的物理资源可能遍布在云平台的其他节点,该事务管理器(TM)实时协调那些节点上的资源管理器(RM)服务实例。
于本实施例中,所述云平台对所述大规模物理异构数据库资源进行分区管理,预设类别数据库资源由预设云虚拟主机节点控制和管理。
具体地,大规模异构数据库资源在接入云平台时遵循分区控制的管理机制,即特定数据库资源由特定服务节点集(应用上称为服务社区)控制和管理。这解决了(从资源端需求的)局部自主集中控制,与(从应用端需求的)全局协同一体服务的协作需要。针对这类资源的访问,必须由相应的服务节点(集合)完成。服务节点针对特定资源,实施对应的安全控制策略。
于本实施例中,访问大规模物理异构数据库资源的虚拟表的接口对所述云平台的所有云虚拟主机节点通用。
具体地,于本实施例中,服务节点(各云虚拟主机节点)和数据库资源,是基于相互独立策略的可伸缩扩展机制,以及动态分配调度机制,实现对资源的局部管控,也就是说服务节点和资源之间不是硬耦合的绑定机制,原则上资源接口对所有服务节点是通用的。
本实施例的调整资源顺序延迟执行方法是基于X/OPEN组织的XA事务标准,通过调整事务资源访问顺序延迟执行的机制,避免大规模高并发环境下事务资源死锁问题的实现框架和算法。应用逻辑可主动开启或关闭事务的调整顺序延迟执行机制,整个实现机制对应用逻辑透明。
以XA事务的TM服务为例,资源队列以及延迟执行引擎的框架和算法流程如下:
(1)基于系统默认的配置,或者应用逻辑开启事务后,应用层主动打开/关闭事务管理器(TM)的资源队列的延迟执行服务;
(2)应用逻辑写资源操作时,TM服务将所有事务的资源,放入事务资源队列中,以事务键(key)为单位存储和管理;
(3)该事务键(key)的TM服务如果打开了延迟执行,那么同步的为应用逻辑返回预先约定的结果,表示该资源暂时执行成功。原则上应用逻辑的继续执行不应该依赖这个结果,也就是说确保资源操作之间相互逻辑独立;如果关闭延迟执行(即选择同步执行),给应用返回未按顺序执行的资源列表,以示提醒。
(4)应用代码启动第一阶段(prepare阶段)时,代表需要访问的事务资源全部“结束”,事务管理器(TM)检查到该事务有资源队列服务并延迟执行,立即启动该事务键(key)资源队列服务对资源排序,排序可以按照虚拟表的自然属性编号进行排序,也可以是系统定义的其他规则,只要整个系统的规则一致即可,获得资源顺序列表;
(5)事务管理器(TM)按照资源顺序列表,调用延迟执行引擎,依次执行资源;
(6)延迟执行过程中,任何异常等非常状态,事务管理器(TM)截住异常,并立即启动事务回滚,并将该异常最终抛出通知给应用逻辑;
(7)事务键(key)的所有资源延迟执行成功后,摧毁事务键(key)的资源队列;
(8)事务管理器(TM)立即自动启动事务的第一阶段(prepare阶段)。
此外,如图5所示,本实施例还提供一种调整资源顺序延迟执行系统100,应用于包含多个云虚拟主机节点的云平台,每一个云虚拟主机节点包括事务管理器和资源管理器;所述调整资源顺序延迟执行系统100包括:事务资源队列模块110和延迟执行模块120。
于本实施例中,所述事务资源队列模块110中,事务管理器将事务所有资源置入事务资源队列,在延迟执行启动时,对所述事务所有资源进行排序,并生成排序结果。于本实施例中,所述延迟执行模块120用于在调用事务管理准备时,根据所述排序结果进行延迟执行各资源,延迟执行所有资源后,事务管理器启动事务准备阶段,并清空所述事务资源队列。
于本实施例中,在延迟执行启动时,同步给应用逻辑返回预先约定的结果;在同步执行启动时,所述事务资源队列给应用逻辑返回未按顺序执行的资源列表,并向所述应用逻辑发送预设提醒;若延迟执行中出现异常状态时,所述事务管理器启动事务回滚。
本实施例中,所述调整资源顺序延迟执行系统100的具体实现的技术特征与前述调整资源顺序延迟执行方法具体实现的技术特征基本相同,两者间可以通用的技术内容不作重复赘述。
本实施例还提供一种云平台,应用如上所述的调整资源顺序延迟执行方法。上述已经对调整资源顺序延迟执行方法进行了详细说明,在此不再赘述。
综上所述,本发明在现有动态可扩展的云架构基础上,提出一种应用层可主动控制的、平台层透明的调整事务资源访问顺序及延迟执行机制,尽量避免不规范的应用逻辑对事务资源并发访问导致资源竞争死锁问题,最终实现物理数据源的穿透性、强一致的在线联机事务处理;本发明为各方在云平台上自主开发分布式关键业务提供便利和自主独立变更的优点。技术人员无需预先按照统一的全局资源约定的顺序标准访问资源,在资源访问关系之间没有逻辑依赖情况下,TM事务服务透明的调整本事务访问资源顺序,在相当大程度上可以避免分布式事务并发访问资源导致的死锁问题;本发明能基于现有云架构、数据处理中间件等拓展,能较好的与现有分布式数据平台对接,业务编写和用户体验能实现平滑转移,因此,本发明在带来新型技术和适用功能的同时,建设、运营、推广成本较低。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种调整资源顺序延迟执行方法,应用于包含多个云虚拟主机节点的云平台,其特征在于:每一个云虚拟主机节点包括事务管理器和资源管理器;所述调整资源顺序延迟执行方法包括:
事务管理器将事务所有资源置入事务资源队列;
在延迟执行启动时,对所述事务所有资源进行排序,并生成排序结果;
在调用事务管理准备时,根据所述排序结果进行延迟执行各资源;
延迟执行所有资源后,事务管理器启动事务准备阶段,并清空所述事务资源队列。
2.根据权利要求1所述的调整资源顺序延迟执行方法,其特征在于:在延迟执行启动时,同步给应用逻辑返回预先约定的结果。
3.根据权利要求1或2所述的调整资源顺序延迟执行方法,其特征在于:在同步执行启动时,所述事务资源队列给应用逻辑返回未按顺序执行的资源列表,并向所述应用逻辑发送预设提醒。
4.根据权利要求1所述的调整资源顺序延迟执行方法,其特征在于:若延迟执行中出现异常状态时,所述事务管理器启动事务回滚。
5.根据权利要求1所述的调整资源顺序延迟执行方法,其特征在于:所述对所述事务所有资源进行排序的一种方式为:按照虚拟表的自然属性编号进行排序。
6.根据权利要求1所述的调整资源顺序延迟执行方法,其特征在于:所述事务管理器以事务键为关键字,动态存储和管理事务所访问的虚拟表资源。
7.根据权利要求1所述的调整资源顺序延迟执行方法,其特征在于:所述事务管理器在接收到事务服务的云端访问请求时启动,对关键业务的事务全过程管理和控制;通过虚拟表对大规模物理异构数据库资源进行管理;通过资源管理器基于云平台的访问通道和虚拟表的服务地址,对所述关键业务的资源进行管理;一个事务管理器协调运行在多个云虚拟主机节点中的资源管理器,形成运行时结构体,通过运行时结构体完成一次即时性的全局事务服务;所述全局事务服务完成后,所述运行时结构体被摧毁;运行时即时存储事务管理器的事务管理日志和资源管理器的资源管理日志。
8.一种调整资源顺序延迟执行系统,应用于包含多个云虚拟主机节点的云平台,其特征在于:每一个云虚拟主机节点包括事务管理器和资源管理器;其特征在于:所述调整资源顺序延迟执行系统包括:
事务资源队列模块,事务管理器将事务所有资源置入事务资源队列,在延迟执行启动时,对所述事务所有资源进行排序,并生成排序结果;
延迟执行模块,用于在调用事务管理准备时,根据所述排序结果进行延迟执行各资源,延迟执行所有资源后,事务管理器启动事务准备阶段,并清空所述事务资源队列。
9.根据权利要求8所述的调整资源顺序延迟执行系统,其特征在于:在延迟执行启动时,同步给应用逻辑返回预先约定的结果;在同步执行启动时,所述事务资源队列给应用逻辑返回未按顺序执行的资源列表,并向所述应用逻辑发送预设提醒;若延迟执行中出现异常状态时,所述事务管理器启动事务回滚。
10.一种云平台,其特征在于,应用如权利要求1至权利要求7任一权利要求所述的调整资源顺序延迟执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011145677.6A CN112383588B (zh) | 2020-10-23 | 2020-10-23 | 一种调整资源顺序延迟执行方法、系统及云平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011145677.6A CN112383588B (zh) | 2020-10-23 | 2020-10-23 | 一种调整资源顺序延迟执行方法、系统及云平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112383588A CN112383588A (zh) | 2021-02-19 |
CN112383588B true CN112383588B (zh) | 2023-09-29 |
Family
ID=74580794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011145677.6A Active CN112383588B (zh) | 2020-10-23 | 2020-10-23 | 一种调整资源顺序延迟执行方法、系统及云平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112383588B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5377351A (en) * | 1990-06-20 | 1994-12-27 | Oki Electric Industry Co., Ltd. | Device for controlling multiple transactions contending concurrently for the same resource in a distributed database system |
JPH11161530A (ja) * | 1997-11-27 | 1999-06-18 | Ntt Data Corp | トランザクション処理システム |
CN102103518A (zh) * | 2011-02-23 | 2011-06-22 | 运软网络科技(上海)有限公司 | 一种在虚拟化环境中管理资源的系统及其实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9152523B2 (en) * | 2010-09-15 | 2015-10-06 | Qualcomm Incorporated | Batching and forking resource requests in a portable computing device |
JP5891969B2 (ja) * | 2012-06-25 | 2016-03-23 | 富士通株式会社 | 排他制御プログラム、該装置、及び該方法 |
-
2020
- 2020-10-23 CN CN202011145677.6A patent/CN112383588B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5377351A (en) * | 1990-06-20 | 1994-12-27 | Oki Electric Industry Co., Ltd. | Device for controlling multiple transactions contending concurrently for the same resource in a distributed database system |
JPH11161530A (ja) * | 1997-11-27 | 1999-06-18 | Ntt Data Corp | トランザクション処理システム |
CN102103518A (zh) * | 2011-02-23 | 2011-06-22 | 运软网络科技(上海)有限公司 | 一种在虚拟化环境中管理资源的系统及其实现方法 |
Non-Patent Citations (1)
Title |
---|
SQL Server性能优化理论;夏炎;;电脑编程技巧与维护(第14期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112383588A (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338766B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
Popek et al. | The LOCUS distributed system architecture | |
CN103930875B (zh) | 用于加速业务数据处理的软件虚拟机 | |
Briot et al. | Inheritance and synchronization in concurrent OOP | |
US12014248B2 (en) | Machine learning performance and workload management | |
US20060253501A1 (en) | Fast and reliable synchronization of file system directories | |
US8156507B2 (en) | User mode file system serialization and reliability | |
CN102103518A (zh) | 一种在虚拟化环境中管理资源的系统及其实现方法 | |
CN107077492A (zh) | 可扩展的基于日志的事务管理 | |
CN113190529B (zh) | 一种适用MongoDB数据库的多租户数据共享存储系统 | |
CN101373474A (zh) | 海量数据实时处理架构及用于该架构的实时随需处理平台 | |
CN107148617A (zh) | 日志协调存储组的自动配置 | |
WO2019047441A1 (zh) | 一种通信优化方法及系统 | |
JPH11506552A (ja) | pipes及びfifosを用いてマルチプロセッサ・コンピュータ・システムのファイルをアクセスする方法 | |
CN113672240A (zh) | 一种基于容器的多机房批量自动化部署应用的方法及系统 | |
CN112104504B (zh) | 一种大规模资源访问的事务管理框架、设计方法及云平台 | |
Jiang et al. | Alibaba hologres: A cloud-native service for hybrid serving/analytical processing | |
US20090100082A1 (en) | Replication and mapping mechanism for recreating memory durations | |
CN112383588B (zh) | 一种调整资源顺序延迟执行方法、系统及云平台 | |
CN113312164B (zh) | 一种适用于云计算系统的资源数据读取方法 | |
WO2023273157A1 (zh) | 一种工作流生成方法、装置、设备及存储介质 | |
Carstoiu et al. | High performance eventually consistent distributed database Zatara | |
Donnelly et al. | Confuga: scalable data intensive computing for POSIX Workflows | |
Bhargava et al. | Design and implementation of the Raid V2 distributed database system | |
CN110399206A (zh) | 一种基于云计算环境下idc虚拟化调度节能系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |