CN106445687A - 一种大事务执行方法及其系统 - Google Patents
一种大事务执行方法及其系统 Download PDFInfo
- Publication number
- CN106445687A CN106445687A CN201610854271.2A CN201610854271A CN106445687A CN 106445687 A CN106445687 A CN 106445687A CN 201610854271 A CN201610854271 A CN 201610854271A CN 106445687 A CN106445687 A CN 106445687A
- Authority
- CN
- China
- Prior art keywords
- subtransaction
- pending
- current state
- transaction
- code
- 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.)
- Pending
Links
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/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
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)
Abstract
本发明公开了一种大事务执行方法,大事务预先拆分为若干个子事务,若干个子事务之间预先设置有依赖关系,包括分别获取待处理子事务及与待处理子事务具有依赖关系的其他子事务的预设事务码以及当前状态码;按照预设调度策略对待处理子事务和其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断待处理子事务是否可执行;若可以,执行待处理子事务,并修改待处理子事务的当前状态码的状态信息以及回复用户响应。本发明能够对大事务进行拆分,并按照子事务之间的依赖关系,选择性地来分别执行各个子事务,然后在子事务执行完毕后回复用户响应,从而提升业务处理时的响应性。本发明还包括一种大事务执行系统,用于上述方法,在此不再赘述。
Description
技术领域
本发明涉及业务处理技术领域,特别是涉及一种大事务执行方法及其系统。
背景技术
事务是业务处理场景中常见的处理单元,一个事务中包括一系列动作,事务开始执行后,会执行这一系列的动作,直到整个事务动作完成时,才会对用户有所响应。而执行过程中用户无法进行与此事务相关的动作,其他事务也无法调用作为该事务执行时的数据来源的数据库。
该种情况下,当事务为大事务时,即一个事务中的动作很多,需要执行很长时间时,会导致大事务锁定的大量的数据库资源均无法调用,且系统不能及时回复用户响应,响应性差,处理时间过长。
因此,如何提供一种响应性好的大事务执行方法及其系统是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种大事务执行方法及其系统,能够对大事务进行拆分,并按照子事务之间的依赖关系,选择性地来分别执行各个子事务,然后在子事务执行完毕后回复用户响应,从而提升业务处理时的响应性。
为解决上述技术问题,本发明提供了一种大事务执行方法,所述大事务预先拆分为若干个子事务,且若干个所述子事务之间预先设置有依赖关系,所述方法包括:
分别获取待处理子事务以及与所述待处理子事务具有依赖关系的其他子事务的预设事务码以及当前状态码;
按照预设调度策略对所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断所述待处理子事务是否可执行;
若可以,执行所述待处理子事务,并修改所述待处理子事务的当前状态码的状态信息以及回复用户响应。
优选地,还包括:
根据预设的数据库运行压力表,确定所述待处理子事务对应的源数据库的当前压力数据;其中,所述源数据库为对应的子事务执行时的数据来源;
相应的,所述按照预设调度策略对所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析具体为:
按照所述预设调度策略对所述待处理子事务对应的当前压力数据、所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析。
优选地,每个所述子事务均预设有与自身一一对应的预设事务码以及当前状态码,所述当前状态码用于表征对应的子事务的当前状态。
优选地,所述当前状态为未执行状态、执行中状态以及执行完成状态中的任一种。
优选地,所述预设的数据库运行压力表的获得过程具体为:
分别确定各个所述子事务对应的源数据库;
确定具有依赖关系的各个所述子事务之间的源数据库交集情况;
获取各个所述源数据库的运行压力情况;
将各个所述子事务的预设事务码、对应的源数据库、源数据库交集情况以及源数据库的运行压力情况对应写入表格中,得到所述预设的数据库运行压力表。
优选地,所述依据分析结果判断所述待处理子事务是否可执行的过程具体为:
判断与所述待处理子事务具有依赖关系的其他子事务中是否有子事务处于执行中状态;
若有,判断处于执行中状态的子事务对应的源数据库与所述待处理子事务是否具有交集;
若有,暂缓处理所述待处理子事务;
若无,按照所述预设的数据库运行压力表判断所述待处理子事务对应的源数据库的运行压力情况是否超出预设压力阈值,若是,暂缓处理所述待处理子事务;
若否,所述待处理子事务可执行。
为解决上述技术问题,本发明还提供了一种大事务执行系统,所述大事务预先拆分为若干个子事务,且若干个所述子事务之间预先设置有依赖关系,所述系统包括:
第一获取模块,用于分别获取待处理子事务以及与所述待处理子事务具有依赖关系的其他子事务的预设事务码以及当前状态码;
分析判断模块,用于按照预设调度策略对所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断所述待处理子事务是否可执行;若可以,触发执行模块;
所述执行模块,用于执行所述待处理子事务,并修改所述待处理子事务的当前状态码的状态信息以及回复用户响应。
优选地,还包括:
第二获取模块,用于根据预设的数据库运行压力表,确定所述待处理子事务对应的源数据库的当前压力数据;其中,所述源数据库为对应的子事务执行时的数据来源;
相应的,所述分析判断模块具体用于按照所述预设调度策略对所述待处理子事务对应的当前压力数据、所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断所述待处理子事务是否可执行;若可以,触发所述执行模块。
本发明提供了一种大事务执行方法及其系统,将大事务预先拆分为若干个子事务,且若干个所述子事务之间预先设置有依赖关系;当需要执行某个子事务时,获取该待处理子事务以及与其具有依赖关系的其他子事务的预设事务码和当前状态码,并按照预设调度策略进行分析判断,来确定该待处理子事务是否可执行。可见,本发明不需要将整个大事务一次性完成,而是可以按照子事务之间的依赖关系,选择性地来分别执行各个子事务,并在子事务执行完毕后回复用户响应。即本发明对大事务进行了拆分,提升了业务处理时的响应性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种大事务执行方法的过程的流程图;
图2为本发明提供的一种大事务执行系统的结构示意图。
具体实施方式
本发明的核心是提供一种大事务执行方法及其系统,能够对大事务进行拆分,并按照子事务之间的依赖关系,选择性地来分别执行各个子事务,然后在子事务执行完毕后回复用户响应,从而提升业务处理时的响应性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种大事务执行方法,大事务预先拆分为若干个子事务,且若干个子事务之间预先设置有依赖关系,参见图1所示,图1为本发明提供的一种大事务执行方法的过程的流程图;该方法包括:
步骤s101:分别获取待处理子事务以及与待处理子事务具有依赖关系的其他子事务的预设事务码以及当前状态码;
步骤s102:按照预设调度策略对待处理子事务和其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断待处理子事务是否可执行;
步骤s103:若可以,执行待处理子事务,并修改待处理子事务的当前状态码的状态信息以及回复用户响应。
作为优选地,该方法还包括:
根据预设的数据库运行压力表,确定待处理子事务对应的源数据库的当前压力数据;其中,源数据库为对应的子事务执行时的数据来源;
相应的,按照预设调度策略对待处理子事务和其他子事务的预设事务码和当前状态码进行分析具体为:
按照预设调度策略对待处理子事务对应的当前压力数据、待处理子事务和其他子事务的预设事务码和当前状态码进行分析。
其中,上述增加的步骤与步骤s101之间没有先后顺序之分,也可同时进行,本发明对此不作限定。
具体的,每个子事务均预设有与自身一一对应的预设事务码以及当前状态码,当前状态码用于表征对应的子事务的当前状态。
可以理解的是,这里的预设事务码是用于进行子事务触发使用的,并且预设事务码中还包括有该子事务对应的源数据库的信息。当前状态码能够表征子事务当前的状态,进而据此判断子事务对应的源数据库是否处于锁定状态。
进一步可知,当前状态为未执行状态、执行中状态以及执行完成状态中的任一种。当然,这里还可包括其他状态,本发明对此不做限定,可根据实际需要自行设定。
具体的,预设的数据库运行压力表的获得过程具体为:
分别确定各个子事务对应的源数据库;
确定具有依赖关系的各个子事务之间的源数据库交集情况;
获取各个源数据库的运行压力情况;
将各个子事务的预设事务码、对应的源数据库、源数据库交集情况以及源数据库的运行压力情况对应写入表格中,得到预设的数据库运行压力表。
其中,这里的运行压力情况为源数据库所处的服务器的运行压力情况,具体包括内存的存储利用率、服务器对应的硬件利用率以及锁机制中的锁利用率等。这里的数据库运行压力表采用表格形式,同一个子事务的预设事务码、对应的源数据库以及源数据库的运行压力情况写于同一行。当然,以上仅为优选实施例,这里的数据库运行压力表的文件类型以及子事务的数据排列方式本发明并不做限定。
具体的,依据分析结果判断待处理子事务是否可执行的过程具体为:
步骤s301:判断与待处理子事务具有依赖关系的其他子事务中是否有子事务处于执行中状态;
步骤s302:若有,判断处于执行中状态的子事务对应的源数据库与待处理子事务是否具有交集;若有,进入步骤s305;若无,进入步骤s303;
步骤s303:按照预设的数据库运行压力表判断待处理子事务对应的源数据库的运行压力情况是否超出预设压力阈值,若是,进入步骤s305;若否,进入步骤s304;
步骤s304:待处理子事务可执行;
步骤s305:暂缓处理待处理子事务。
当然,以上步骤仅为一种优选方案,工作人员也可采用其他判断顺序或其他判断内容,本发明对此不做限定。
本发明提供了一种大事务执行方法,将大事务预先拆分为若干个子事务,且若干个子事务之间预先设置有依赖关系;当需要执行某个子事务时,获取该待处理子事务以及与其具有依赖关系的其他子事务的预设事务码和当前状态码,并按照预设调度策略进行分析判断,来确定该待处理子事务是否可执行。可见,本发明不需要将整个大事务一次性完成,而是可以按照子事务之间的依赖关系,选择性地来分别执行各个子事务,并在子事务执行完毕后回复用户响应。即本发明对大事务进行了拆分,提升了业务处理时的响应性。
本发明还提供了一种大事务执行系统,大事务预先拆分为若干个子事务,且若干个子事务之间预先设置有依赖关系,参见图2所示,图2为本发明提供的一种大事务执行系统的结构示意图。该系统包括:
第一获取模块11,用于分别获取待处理子事务以及与待处理子事务具有依赖关系的其他子事务的预设事务码以及当前状态码;
分析判断模块12,用于按照预设调度策略对待处理子事务和其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断待处理子事务是否可执行;若可以,触发执行模块13;
执行模块13,用于执行待处理子事务,并修改待处理子事务的当前状态码的状态信息以及回复用户响应。
作为优选地,该系统还包括:
第二获取模块14,用于根据预设的数据库运行压力表,确定待处理子事务对应的源数据库的当前压力数据;其中,源数据库为对应的子事务执行时的数据来源;
相应的,分析判断模块12具体用于按照预设调度策略对待处理子事务对应的当前压力数据、待处理子事务和其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断待处理子事务是否可执行;若可以,触发执行模块13。
本发明提供了一种大事务执行系统,将大事务预先拆分为若干个子事务,且若干个子事务之间预先设置有依赖关系;当需要执行某个子事务时,获取该待处理子事务以及与其具有依赖关系的其他子事务的预设事务码和当前状态码,并按照预设调度策略进行分析判断,来确定该待处理子事务是否可执行。可见,本发明不需要将整个大事务一次性完成,而是可以按照子事务之间的依赖关系,选择性地来分别执行各个子事务,并在子事务执行完毕后回复用户响应。即本发明对大事务进行了拆分,提升了业务处理时的响应性。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种大事务执行方法,其特征在于,所述大事务预先拆分为若干个子事务,且若干个所述子事务之间预先设置有依赖关系,所述方法包括:
分别获取待处理子事务以及与所述待处理子事务具有依赖关系的其他子事务的预设事务码以及当前状态码;
按照预设调度策略对所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断所述待处理子事务是否可执行;
若可以,执行所述待处理子事务,并修改所述待处理子事务的当前状态码的状态信息以及回复用户响应。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据预设的数据库运行压力表,确定所述待处理子事务对应的源数据库的当前压力数据;其中,所述源数据库为对应的子事务执行时的数据来源;
相应的,所述按照预设调度策略对所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析具体为:
按照所述预设调度策略对所述待处理子事务对应的当前压力数据、所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析。
3.根据权利要求2所述的方法,其特征在于,每个所述子事务均预设有与自身一一对应的预设事务码以及当前状态码,所述当前状态码用于表征对应的子事务的当前状态。
4.根据权利要求3所述的方法,其特征在于,所述当前状态为未执行状态、执行中状态以及执行完成状态中的任一种。
5.根据权利要求3所述的方法,其特征在于,所述预设的数据库运行压力表的获得过程具体为:
分别确定各个所述子事务对应的源数据库;
确定具有依赖关系的各个所述子事务之间的源数据库交集情况;
获取各个所述源数据库的运行压力情况;
将各个所述子事务的预设事务码、对应的源数据库、所述源数据库交集情况以及源数据库的运行压力情况对应写入表格中,得到所述预设的数据库运行压力表。
6.根据权利要求4所述的方法,其特征在于,所述依据分析结果判断所述待处理子事务是否可执行的过程具体为:
判断与所述待处理子事务具有依赖关系的其他子事务中是否有子事务处于执行中状态;
若有,判断处于执行中状态的子事务对应的源数据库与所述待处理子事务是否具有交集;
若有,暂缓处理所述待处理子事务;
若无,按照所述预设的数据库运行压力表判断所述待处理子事务对应的源数据库的运行压力情况是否超出预设压力阈值,若是,暂缓处理所述待处理子事务;
若否,所述待处理子事务可执行。
7.一种大事务执行系统,其特征在于,所述大事务预先拆分为若干个子事务,且若干个所述子事务之间预先设置有依赖关系,所述系统包括:
第一获取模块,用于分别获取待处理子事务以及与所述待处理子事务具有依赖关系的其他子事务的预设事务码以及当前状态码;
分析判断模块,用于按照预设调度策略对所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断所述待处理子事务是否可执行;若可以,触发执行模块;
所述执行模块,用于执行所述待处理子事务,并修改所述待处理子事务的当前状态码的状态信息以及回复用户响应。
8.根据权利要求7所述的方法,其特征在于,还包括:
第二获取模块,用于根据预设的数据库运行压力表,确定所述待处理子事务对应的源数据库的当前压力数据;其中,所述源数据库为对应的子事务执行时的数据来源;
相应的,所述分析判断模块具体用于按照所述预设调度策略对所述待处理子事务对应的当前压力数据、所述待处理子事务和所述其他子事务的预设事务码和当前状态码进行分析,依据分析结果判断所述待处理子事务是否可执行;若可以,触发所述执行模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610854271.2A CN106445687A (zh) | 2016-09-27 | 2016-09-27 | 一种大事务执行方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610854271.2A CN106445687A (zh) | 2016-09-27 | 2016-09-27 | 一种大事务执行方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106445687A true CN106445687A (zh) | 2017-02-22 |
Family
ID=58169864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610854271.2A Pending CN106445687A (zh) | 2016-09-27 | 2016-09-27 | 一种大事务执行方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106445687A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033301A (zh) * | 2018-07-16 | 2018-12-18 | 中国科学技术大学 | 一种基于图形处理器的数据库事务执行方法 |
CN109669988A (zh) * | 2018-12-17 | 2019-04-23 | 武汉达梦数据库有限公司 | 一种查询建表事物的拆分同步方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401084B1 (en) * | 2001-06-14 | 2008-07-15 | Oracle International Corporation | Two-phase commit with queryable caches |
CN101488149A (zh) * | 2009-02-19 | 2009-07-22 | 上海交通大学 | 普适环境下情境自适应的移动事务处理系统 |
CN104317850A (zh) * | 2014-10-14 | 2015-01-28 | 北京国双科技有限公司 | 数据处理方法和装置 |
CN104794239A (zh) * | 2015-05-08 | 2015-07-22 | 成都博元科技有限公司 | 一种云平台数据处理方法 |
-
2016
- 2016-09-27 CN CN201610854271.2A patent/CN106445687A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401084B1 (en) * | 2001-06-14 | 2008-07-15 | Oracle International Corporation | Two-phase commit with queryable caches |
CN101488149A (zh) * | 2009-02-19 | 2009-07-22 | 上海交通大学 | 普适环境下情境自适应的移动事务处理系统 |
CN104317850A (zh) * | 2014-10-14 | 2015-01-28 | 北京国双科技有限公司 | 数据处理方法和装置 |
CN104794239A (zh) * | 2015-05-08 | 2015-07-22 | 成都博元科技有限公司 | 一种云平台数据处理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033301A (zh) * | 2018-07-16 | 2018-12-18 | 中国科学技术大学 | 一种基于图形处理器的数据库事务执行方法 |
CN109033301B (zh) * | 2018-07-16 | 2021-07-06 | 中国科学技术大学 | 一种基于图形处理器的数据库事务执行方法 |
CN109669988A (zh) * | 2018-12-17 | 2019-04-23 | 武汉达梦数据库有限公司 | 一种查询建表事物的拆分同步方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547612B (zh) | 一种多任务处理方法及装置 | |
WO2019019381A1 (zh) | 批量处理保单任务的方法、装置、计算机设备及存储介质 | |
CN106126403B (zh) | Oracle数据库故障分析方法和装置 | |
CN106354817B (zh) | 一种日志的处理方法及装置 | |
CN106971254A (zh) | 一种业务监控系统及方法 | |
CN108829510B (zh) | 线程绑定处理方法和装置 | |
CN110175165A (zh) | 交易对账方法、装置、计算机设备及存储介质 | |
CN113268334B (zh) | Rpa机器人的调度方法、装置、设备以及存储介质 | |
CN104408065A (zh) | 一种联机查询交易信息的方法及装置 | |
CN106445687A (zh) | 一种大事务执行方法及其系统 | |
CN105446812A (zh) | 一种多任务调度配置方法 | |
ATE454787T1 (de) | Verfahren zum anpassen einer anzahl n von empfängerendgeräten an eine anzahl m von steuerkarten für bedingten zugang | |
CN107766144A (zh) | 一种任务调度方法、装置及系统 | |
JP5206268B2 (ja) | ルール作成プログラム、ルール作成方法及びルール作成装置 | |
CN110753090A (zh) | 服务器集群的任务执行方法、装置、计算机设备及存储介质 | |
CN104731900A (zh) | 一种Hive调度方法及装置 | |
CN115794545A (zh) | 运维数据的自动化处理方法及其相关设备 | |
US10255128B2 (en) | Root cause candidate determination in multiple process systems | |
CN104572036B (zh) | 事件的处理方法及装置 | |
CN109086132A (zh) | 一种人脸识别任务均衡调用方法、装置及终端设备 | |
CN112365331A (zh) | 基于职责链模式的金融风控方法及装置 | |
CN106127026A (zh) | 权限配置方法和装置 | |
CN101615120A (zh) | Aadl模型的一种调度分析方法 | |
CN115018398B (zh) | 一种动画项目延期预测方法、装置及系统 | |
CN106293923A (zh) | 一种基于hadoop系统的数据处理和分发方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |
|
RJ01 | Rejection of invention patent application after publication |