事务的处理方法、装置、存储介质及电子装置与流程

文档序号:15615138发布日期:2018-10-09 21:10阅读:169来源:国知局

本发明涉及计算机领域,具体而言,涉及一种事务的处理方法、装置、存储介质及电子装置。



背景技术:

事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的acid(原子性、一致性、隔离性和持久性)属性。在分布式系统中存在一个cap原理:一致性(consistency)、可用性(avalibility)、分区容忍性(partitiontorlerance),这三个要素最多同时只能实现两点,不可能三者兼顾。对于分布式系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式系统,就是在一致性和可用性之间取一个平衡。对于大多数网络应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性。当然,牺牲一致性,并不是完全不管数据的一致性,否则数据是混乱的,那么系统可用性再高分布式再好也没有了价值。牺牲一致性,只是不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可,考虑到客户体验,这个最终一致的时间窗口,要尽可能的对用户透明,也就是需要保障“用户感知到的一致性”。

但是,目前保持系统最终一致性的方式对事务的处理效率较低,在参与者资源检查通过后,强制锁定参与者数据对象,使其在事务执行期间始终保持可见。对于参与者来说,这就意味着在事务执行期间不能进行下线、传送等操作。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种事务的处理方法、装置、存储介质及电子装置,以至少解决相关技术中对事务的处理效率较低的技术问题。

根据本发明实施例的一个方面,提供了一种事务的处理方法,包括:检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源,其中,所述目标参与者为所述目标事务的参与者,所述目标资源为执行所述目标事务中的目标操作所需的资源;从具有对应关系的事务、参与者与操作提交状态信息中获取所述目标事务的所述目标参与者对应的目标操作提交状态信息,其中,所述目标操作提交状态信息用于指示所述目标参与者对所述目标操作的提交状态;在所述目标操作提交状态指示所述目标操作未提交的情况下,对所述目标参与者的所述目标资源执行所述目标操作,或者,在所述目标操作提交状态指示所述目标操作已提交的情况下,解除对所述目标资源的锁定。

根据本发明实施例的另一方面,还提供了一种事务的处理装置,包括:第一检测模块,用于检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源,其中,所述目标参与者为所述目标事务的参与者,所述目标资源为执行所述目标事务中的目标操作所需的资源;获取模块,用于从具有对应关系的事务、参与者与操作提交状态信息中获取所述目标事务的所述目标参与者对应的目标操作提交状态信息,其中,所述目标操作提交状态信息用于指示所述目标参与者对所述目标操作的提交状态;第一处理模块,用于在所述目标操作提交状态指示所述目标操作未提交的情况下,对所述目标参与者的所述目标资源执行所述目标操作,或者,在所述目标操作提交状态指示所述目标操作已提交的情况下,解除对所述目标资源的锁定。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行上述任一项中所述的方法。

在本发明实施例中,采用检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源,其中,目标参与者为目标事务的参与者,目标资源为执行目标事务中的目标操作所需的资源;从具有对应关系的事务、参与者与操作提交状态信息中获取目标事务的目标参与者对应的目标操作提交状态信息,其中,目标操作提交状态信息用于指示目标参与者对目标操作的提交状态;在目标操作提交状态指示目标操作未提交的情况下,对所述目标参与者的所述目标资源执行所述目标操作,或者,在目标操作提交状态指示目标操作已提交的情况下,解除对目标资源的锁定的方式,建立事务、参与者与操作提交状态信息之间的对应关系,操作提交状态信息指示参与者在该事务中的操作提交状态,当目标参与者的在线状态从离线状态转换为上线状态的情况下,从上述对应关系中获取目标参与者对应的目标操作状态提交信息,若该信息指示目标操作未提交,则指示目标参与者对目标资源执行目标操作,从而完成目标事务中的操作,若该信息指示目标操作已提交,则解除对目标资源的锁定,从而通过对操作提交状态的记录实现了即使目标参与者在操作提交阶段处于离线状态,也能够在其上线后实现对目标事务中的目标操作的提交,使得事务的成功率大幅度提升,从而实现了提高对事务进行处理的处理效率的技术效果,进而解决了相关技术中对事务的处理效率较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的事务的处理方法的示意图;

图2是根据本发明实施例的一种可选的事务的处理方法的应用环境示意图;

图3是根据本发明可选实施例的一种可选的事务的处理方法的示意图一;

图4是根据本发明可选实施例的一种可选的事务的处理方法的示意图二;

图5是根据本发明可选实施例的一种可选的事务的处理方法的示意图三;

图6是根据本发明可选实施例的一种可选的事务的处理方法的示意图四;

图7是根据本发明可选实施例的一种可选的事务的处理方法的示意图五;

图8是根据本发明可选实施例的一种可选的事务的处理方法的示意图六;

图9是根据本发明可选实施例的一种可选的事务的处理方法的示意图七;

图10是根据本发明可选实施例的一种可选的事务的处理方法的示意图八;

图11是根据本发明实施例的一种可选的事务的处理装置的示意图;

图12是根据本发明实施例的一种可选的事务的处理方法的应用场景示意图;以及

图13是根据本发明实施例的一种可选的电子装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例的一个方面,提供了一种事务的处理方法,如图1所示,该方法包括:

s102,检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源,其中,目标参与者为目标事务的参与者,目标资源为执行目标事务中的目标操作所需的资源;

s104,从具有对应关系的事务、参与者与操作提交状态信息中获取目标事务的目标参与者对应的目标操作提交状态信息,其中,目标操作提交状态信息用于指示目标参与者对目标操作的提交状态;

s106,在目标操作提交状态指示目标操作未提交的情况下,对目标参与者的目标资源执行目标操作,或者,在目标操作提交状态指示目标操作已提交的情况下,解除对目标资源的锁定。

可选地,在本实施例中,上述事务的处理方法可以应用于如图2所示的设备202所构成的硬件环境中。如图2所示,设备202检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源,其中,目标参与者为目标事务的参与者,目标资源为执行目标事务中的目标操作所需的资源,从具有对应关系的事务、参与者与操作提交状态信息中获取目标事务的目标参与者对应的目标操作提交状态信息,其中,目标操作提交状态信息用于指示目标参与者对目标操作的提交状态,在目标操作提交状态指示目标操作未提交的情况下,对目标参与者的目标资源执行目标操作,或者,在目标操作提交状态指示目标操作已提交的情况下,解除对目标资源的锁定。

可选地,在本实施例中,上述事务的处理方法可以但不限于在终端设备上执行,也可以但不限于在服务器设备上执行,或者还可以但不限于由服务器设备和终端设备交互执行。

可选地,在本实施例中,上述事务的处理方法可以但不限于应用于对事务进行处理的场景中。其中,上述事务的处理方法可以但不限于应用于各种类型的客户端,例如,在线教育客户端、即时通讯客户端、社区空间客户端、游戏客户端、购物客户端、浏览器客户端、金融客户端、多媒体客户端、直播客户端等。具体的,可以但不限于应用于在上述游戏客户端中对事务进行处理的场景中,或还可以但不限于应用于在上述多媒体客户端中对事务进行处理的场景中,以提高对事务进行处理的处理效率。上述仅是一种示例,本实施例中对此不做任何限定。

可选地,在本实施例中,可以但不限于在由可持久化锁实现对目标参与者对目标事务的处理。如图3所示,相较于只有上线状态的传统锁机制,可持久化锁分为上线和离线两个状态。可持久化锁可以但不限于包括两部分:数据与逻辑,当其上线时,数据与逻辑都处于激活状态;离线时则对数据进行持久化,不参与任何逻辑。可持久化锁的数据包括两个部分:所有事务总共的锁定量数据及每个事务的锁定量数据。可持久化锁的逻辑是指上层业务对某项资源的可锁定量检查,由于某类资源的一部分可能被其他业务锁定,而不能使用,因此在使用该类资源之前可以检查剩余资源是否够用。

可选地,在本实施例中,目标资源可以但不限于包括:用户数据及其他各种类型的在事务中进行处理的数据。

可选地,在本实施例中,具有对应关系的事务、参与者与操作提交状态信息可以但不限于由数据表进行记录和存储,该数据表可以称为事务状态表,事物状态表中还可以记录事务的执行状态。如图4所示,事务状态表可以用于记录事务的执行状态及事务参与者的提交记录。在事务状态表中,每个正在执行或正在挂起状态的事务都对应一条事务状态记录,所有的记录构成事务状态表的数据部分。每条事务状态记录由事务id、当前事务状态及事务参与者的提交记录构成。事务状态表的逻辑是指响应事务协调者及事务参与者的请求,设置或者查询事务状态及设置参与者提交记录。

在一个可选的实施方式中,以游戏客户端中,游戏玩家用20游戏代币购买装备1,目标参与者为该游戏玩家、目标资源为该游戏玩家的20游戏代币为例,检测到在线状态从离线状态转换为上线状态的该游戏玩家的资源中存在被目标事务锁定的20游戏代币,从具有对应关系的事务、参与者与操作提交状态信息中获取该游戏玩家对应的目标操作提交状态信息,在目标操作提交状态指示扣除代币操作未提交的情况下,对锁定的20游戏代币执行扣除操作,或者,在目标操作提交状态指示扣除代币操作已提交的情况下,解除对20游戏代币的锁定。

可见,通过上述步骤,建立事务、参与者与操作提交状态信息之间的对应关系,操作提交状态信息指示参与者在该事务中的操作提交状态,当目标参与者的在线状态从离线状态转换为上线状态的情况下,从上述对应关系中获取目标参与者对应的目标操作状态提交信息,若该信息指示目标操作未提交,则指示目标参与者对目标资源执行目标操作,从而完成目标事务中的操作,若该信息指示目标操作已提交,则解除对目标资源的锁定,从而通过对操作提交状态的记录实现了即使目标参与者在操作提交阶段处于离线状态,也能够在其上线后实现对目标事务中的目标操作的提交,使得事务的成功率大幅度提升,从而实现了提高对事务进行处理的处理效率的技术效果,进而解决了相关技术中对事务的处理效率较低的技术问题。

作为一种可选的方案,在对目标参与者的目标资源执行目标操作之后,还包括:

s1,检测是否已成功对目标参与者的目标资源执行目标操作;

s2,在检测到已成功对目标参与者的目标资源执行目标操作的情况下,将用于指示目标操作未提交的目标操作提交状态信息更新为用于指示目标操作已提交。

可选地,在本实施例中,在对目标参与者的目标资源执行目标操作之后,还可以根据目标操作的提交状态对目标操作提交状态信息进行更新。例如:如图5所示,参与者p2提交成功后将提交成功的信息发送给事务状态表,事务状态表中将参与者p2的操作提交状态信息由未提交更新为已提交。

可选地,在本实施例中,当事务状态表中一条事务记录的全部参与者的操作提交状态信息均为已提交状态时,可以将本条事务记录删除,以便节省事务状态表占用的空间。或者,也可以保留本条事务记录,以便于对已完成的事务的查询和回溯。或者还可以将本条事务记录从事务状态表中删除,并将其存储到用于存储已完成的事务记录的存储位置,从而既节省了事务状态表的存储空间,也能够方便的查询和回溯已完成的事务。

作为一种可选的方案,从具有对应关系的事务、参与者与操作提交状态信息中获取目标事务的目标参与者对应的目标操作提交状态信息包括:

s1,向事务状态表发送查询请求,其中,查询请求用于请求查询目标事务的目标参与者对应的操作提交状态信息,事务状态表用于记录具有对应关系的事务、参与者与操作提交状态信息;

s2,接收事务状态表响应查询请求返回的请求响应信息,其中,请求响应信息中携带有目标操作提交状态信息。

可选地,在本实施例中,当检测到目标参与者从离线状态转换到上线状态的情况下,可以通过与事务状态表的交互获取到目标参与者对应的目标操作提交状态信息。

例如:如图6所示,检测到参与者p2由离线状态转换为上线状态并且参与者p2的资源中存在被目标事务锁定的目标资源(如图6中所示锁定数据),则向事务状态表发送查询请求,来请求查询参与者p2在目标事务中对应的操作提交状态信息,事务状态表查询到参与者p2在目标事务中对应的操作提交状态信息为未提交,则将携带有用于指示参与者p2在目标事务中对应的操作提交状态信息为未提交的请求响应信息返回。

作为一种可选的方案,检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源包括:

s1,接收目标事务的协调者发送的提交请求,其中,提交请求用于指示目标参与者对目标资源执行目标操作,目标操作提交状态信息用于指示目标操作未提交;

s2,响应提交请求检测目标参与者的在线状态;

s3,在检测到目标参与者的在线状态为离线状态的情况下,继续检测目标参与者的在线状态是否从离线状态转换为上线状态;

s4,在检测到目标参与者的在线状态从离线状态转换为上线状态的情况下,检测到目标参与者的资源中存在被目标事务锁定的目标资源。

可选地,在本实施例中,可以但不限于由事务协调者来控制事务中的各个参与者提交各自的操作。例如:目标事务的协调者向目标事务的参与者发送提交请求来指示各个参与者提交目标操作,如图7所示,目标参与者接收到协调者发送的提交请求,响应该提交请求检测目标参与者的在线状态,如果在线状态为离线状态,则继续检测目标参与者是否从离线状态转换为上线状态,如果是,则检测目标参与者的资源中是否存在被目标事务锁定的目标资源,从而检测到被目标事务锁定的目标资源。

作为一种可选的方案,在接收目标事务的协调者发送的提交请求之前,还包括:

s1,接收协调者发送的资源锁定请求,其中,资源锁定请求用于请求在目标参与者的资源中锁定目标操作所需的资源;

s2,响应资源锁定请求将目标参与者的资源中目标操作所需的资源确定为目标资源,并锁定目标资源。

可选地,在本实施例中,事务协调者可以但不限于控制事务中的各个参与者对事务所需资源进行锁定。例如:目标事务的协调者向目标事务的参与者发送资源锁定请求来请求在目标参与者的资源中锁定目标操作所需的资源,如图8所示,目标参与者接收到协调者发送的资源锁定请求,响应该资源锁定请求将目标参与者的资源中目标操作所需的资源确定为目标资源,并锁定目标资源。

作为一种可选的方案,响应资源锁定请求将目标参与者的资源中目标操作所需的资源确定为目标资源,并锁定目标资源包括:

s1,响应资源锁定请求检测目标参与者的在线状态是否为上线状态;

s2,在检测到目标参与者的在线状态为上线状态的情况下,检测目标参与者的资源中的可用资源的第一资源量是否大于或者等于目标操作所需的资源的第二资源量;

s3,在检测到第一资源量大于或者等于第二资源量的情况下,从目标参与者的资源中获取第二资源量的可用资源,并将第二资源量的可用资源确定为目标资源;

s4,锁定目标资源,并向协调者发送第一锁定信息,其中,第一锁定信息用于指示目标资源锁定成功。

可选地,在本实施例中,在对目标资源进行锁定的过程中,可以首先检测目标参与者的在线状态是否为上线状态,如果是上线状态,则检测目标参与者的资源中的可用资源的资源量是否足够执行目标操作,如果足够,则从可用资源中获取足够资源量的目标资源,并锁定目标资源,同时发送第一锁定信息来通知协调者目标资源已锁定成功。

可选地,在本实施例中,如图9所示,如果目标事务的各个参与者返回给协调者的均是第一锁定信息,则协调者可以将事务状态表中的事务状态信息更新为事务提交中,从而指示该目标事务进入操作的提交阶段。

作为一种可选的方案,在检测到目标参与者的在线状态为离线状态或者检测到第一资源量小于第二资源量的情况下,还包括:

s1,向协调者发送第二锁定信息,其中,第二锁定信息用于指示目标资源锁定失败。

可选地,在本实施例中,如果目标参与者的资源中可用资源的资源量不足,或者,目标参与者在资源的锁定阶段处于离线状态,则均会导致目标资源锁定失败,可以向协调者发送第二锁定信息来指示目标资源锁定失败。

可选地,在本实施例中,如图10所示,如果目标事务的各个参与者中有一个或者多个参与者返回给协调者的是第二锁定信息,则协调者可以将事务状态表中记录的该目标事务的事务记录清楚。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

根据本发明实施例的另一个方面,还提供了一种用于实施上述事务的处理方法的事务的处理装置,如图11所示,该装置包括:

第一检测模块1102,用于检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源,其中,目标参与者为目标事务的参与者,目标资源为执行目标事务中的目标操作所需的资源;

获取模块1104,用于从具有对应关系的事务、参与者与操作提交状态信息中获取目标事务的目标参与者对应的目标操作提交状态信息,其中,目标操作提交状态信息用于指示目标参与者对目标操作的提交状态;

第一处理模块1106,用于在目标操作提交状态指示目标操作未提交的情况下,对目标参与者的目标资源执行目标操作,或者,在目标操作提交状态指示目标操作已提交的情况下,解除对目标资源的锁定。

可选地,在本实施例中,上述事务的处理装置可以应用于如图2所示的设备202所构成的硬件环境中。如图2所示,设备202检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源,其中,目标参与者为目标事务的参与者,目标资源为执行目标事务中的目标操作所需的资源,从具有对应关系的事务、参与者与操作提交状态信息中获取目标事务的目标参与者对应的目标操作提交状态信息,其中,目标操作提交状态信息用于指示目标参与者对目标操作的提交状态,在目标操作提交状态指示目标操作未提交的情况下,对目标参与者的目标资源执行目标操作,或者,在目标操作提交状态指示目标操作已提交的情况下,解除对目标资源的锁定。

可选地,在本实施例中,上述事务的处理装置可以但不限于在终端设备上执行,也可以但不限于在服务器设备上执行,或者还可以但不限于由服务器设备和终端设备交互执行。

可选地,在本实施例中,上述事务的处理装置可以但不限于应用于对事务进行处理的场景中。其中,上述事务的处理方法可以但不限于应用于各种类型的客户端,例如,在线教育客户端、即时通讯客户端、社区空间客户端、游戏客户端、购物客户端、浏览器客户端、金融客户端、多媒体客户端、直播客户端等。具体的,可以但不限于应用于在上述游戏客户端中对事务进行处理的场景中,或还可以但不限于应用于在上述多媒体客户端中对事务进行处理的场景中,以提高对事务进行处理的处理效率。上述仅是一种示例,本实施例中对此不做任何限定。

可选地,在本实施例中,可以但不限于在由可持久化锁实现对目标参与者对目标事务的处理。如图3所示,相较于只有上线状态的传统锁机制,可持久化锁分为上线和离线两个状态。可持久化锁可以但不限于包括两部分:数据与逻辑,当其上线时,数据与逻辑都处于激活状态;离线时则对数据进行持久化,不参与任何逻辑。可持久化锁的数据包括两个部分:所有事务总共的锁定量数据及每个事务的锁定量数据。可持久化锁的逻辑是指上层业务对某项资源的可锁定量检查,由于某类资源的一部分可能被其他业务锁定,而不能使用,因此在使用该类资源之前可以检查剩余资源是否够用。

可选地,在本实施例中,目标资源可以但不限于包括:用户数据及其他各种类型的在事务中进行处理的数据。

可选地,在本实施例中,具有对应关系的事务、参与者与操作提交状态信息可以但不限于由数据表进行记录和存储,该数据表可以称为事务状态表,事物状态表中还可以记录事务的执行状态。如图4所示,事务状态表可以用于记录事务的执行状态及事务参与者的提交记录。在事务状态表中,每个正在执行或正在挂起状态的事务都对应一条事务状态记录,所有的记录构成事务状态表的数据部分。每条事务状态记录由事务id、当前事务状态及事务参与者的提交记录构成。事务状态表的逻辑是指响应事务协调者及事务参与者的请求,设置或者查询事务状态及设置参与者提交记录。

在一个可选的实施方式中,以游戏客户端中,游戏玩家用20游戏代币购买装备1,目标参与者为该游戏玩家、目标资源为该游戏玩家的20游戏代币为例,检测到在线状态从离线状态转换为上线状态的该游戏玩家的资源中存在被目标事务锁定的20游戏代币,从具有对应关系的事务、参与者与操作提交状态信息中获取该游戏玩家对应的目标操作提交状态信息,在目标操作提交状态指示扣除代币操作未提交的情况下,对锁定的20游戏代币执行扣除操作,或者,在目标操作提交状态指示扣除代币操作已提交的情况下,解除对20游戏代币的锁定。

可见,通过上述装置,建立事务、参与者与操作提交状态信息之间的对应关系,操作提交状态信息指示参与者在该事务中的操作提交状态,当目标参与者的在线状态从离线状态转换为上线状态的情况下,从上述对应关系中获取目标参与者对应的目标操作状态提交信息,若该信息指示目标操作未提交,则指示目标参与者对目标资源执行目标操作,从而完成目标事务中的操作,若该信息指示目标操作已提交,则解除对目标资源的锁定,从而通过对操作提交状态的记录实现了即使目标参与者在操作提交阶段处于离线状态,也能够在其上线后实现对目标事务中的目标操作的提交,使得事务的成功率大幅度提升,从而实现了提高对事务进行处理的处理效率的技术效果,进而解决了相关技术中对事务的处理效率较低的技术问题。

作为一种可选的方案,上述装置还包括:

第二检测模块,用于检测是否已成功对目标参与者的目标资源执行目标操作;

更新模块,用于在检测到已成功对目标参与者的目标资源执行目标操作的情况下,将用于指示目标操作未提交的目标操作提交状态信息更新为用于指示目标操作已提交。

可选地,在本实施例中,在对目标参与者的目标资源执行目标操作之后,还可以根据目标操作的提交状态对目标操作提交状态信息进行更新。例如:如图5所示,参与者p2提交成功后将提交成功的信息发送给事务状态表,事务状态表中将参与者p2的操作提交状态信息由未提交更新为已提交。

可选地,在本实施例中,当事务状态表中一条事务记录的全部参与者的操作提交状态信息均为已提交状态时,可以将本条事务记录删除,以便节省事务状态表占用的空间。或者,也可以保留本条事务记录,以便于对已完成的事务的查询和回溯。或者还可以将本条事务记录从事务状态表中删除,并将其存储到用于存储已完成的事务记录的存储位置,从而既节省了事务状态表的存储空间,也能够方便的查询和回溯已完成的事务。

作为一种可选的方案,获取模块包括:

发送单元,用于向事务状态表发送查询请求,其中,查询请求用于请求查询目标事务的目标参与者对应的操作提交状态信息,事务状态表用于记录具有对应关系的事务、参与者与操作提交状态信息;

第一接收单元,用于接收事务状态表响应查询请求返回的请求响应信息,其中,请求响应信息中携带有目标操作提交状态信息。

可选地,在本实施例中,当检测到目标参与者从离线状态转换到上线状态的情况下,可以通过与事务状态表的交互获取到目标参与者对应的目标操作提交状态信息。

例如:如图6所示,检测到参与者p2由离线状态转换为上线状态并且参与者p2的资源中存在被目标事务锁定的目标资源(如图6中所示锁定数据),则向事务状态表发送查询请求,来请求查询参与者p2在目标事务中对应的操作提交状态信息,事务状态表查询到参与者p2在目标事务中对应的操作提交状态信息为未提交,则将携带有用于指示参与者p2在目标事务中对应的操作提交状态信息为未提交的请求响应信息返回。

作为一种可选的方案,第一检测模块包括:

第二接收单元,用于接收目标事务的协调者发送的提交请求,其中,提交请求用于指示目标参与者对目标资源执行目标操作,目标操作提交状态信息用于指示目标操作未提交;

第一检测单元,用于响应提交请求检测目标参与者的在线状态;

第二检测单元,用于在检测到目标参与者的在线状态为离线状态的情况下,继续检测目标参与者的在线状态是否从离线状态转换为上线状态;

第三检测单元,用于在检测到目标参与者的在线状态从离线状态转换为上线状态的情况下,检测到目标参与者的资源中存在被目标事务锁定的目标资源。

可选地,在本实施例中,可以但不限于由事务协调者来控制事务中的各个参与者提交各自的操作。例如:目标事务的协调者向目标事务的参与者发送提交请求来指示各个参与者提交目标操作,如图7所示,目标参与者接收到协调者发送的提交请求,响应该提交请求检测目标参与者的在线状态,如果在线状态为离线状态,则继续检测目标参与者是否从离线状态转换为上线状态,如果是,则检测目标参与者的资源中是否存在被目标事务锁定的目标资源,从而检测到被目标事务锁定的目标资源。

作为一种可选的方案,上述装置还包括:

接收模块,用于接收协调者发送的资源锁定请求,其中,资源锁定请求用于请求在目标参与者的资源中锁定目标操作所需的资源;

第二处理模块,用于响应资源锁定请求将目标参与者的资源中目标操作所需的资源确定为目标资源,并锁定目标资源。

可选地,在本实施例中,事务协调者可以但不限于控制事务中的各个参与者对事务所需资源进行锁定。例如:目标事务的协调者向目标事务的参与者发送资源锁定请求来请求在目标参与者的资源中锁定目标操作所需的资源,如图8所示,目标参与者接收到协调者发送的资源锁定请求,响应该资源锁定请求将目标参与者的资源中目标操作所需的资源确定为目标资源,并锁定目标资源。

作为一种可选的方案,第二处理模块包括:

第四检测单元,用于响应资源锁定请求检测目标参与者的在线状态是否为上线状态;

第五检测单元,用于在检测到目标参与者的在线状态为上线状态的情况下,检测目标参与者的资源中的可用资源的第一资源量是否大于或者等于目标操作所需的资源的第二资源量;

获取单元,用于在检测到第一资源量大于或者等于第二资源量的情况下,从目标参与者的资源中获取第二资源量的可用资源,并将第二资源量的可用资源确定为目标资源;

处理单元,用于锁定目标资源,并向协调者发送第一锁定信息,其中,第一锁定信息用于指示目标资源锁定成功。

可选地,在本实施例中,在对目标资源进行锁定的过程中,可以首先检测目标参与者的在线状态是否为上线状态,如果是上线状态,则检测目标参与者的资源中的可用资源的资源量是否足够执行目标操作,如果足够,则从可用资源中获取足够资源量的目标资源,并锁定目标资源,同时发送第一锁定信息来通知协调者目标资源已锁定成功。

可选地,在本实施例中,如图9所示,如果目标事务的各个参与者返回给协调者的均是第一锁定信息,则协调者可以将事务状态表中的事务状态信息更新为事务提交中,从而指示该目标事务进入操作的提交阶段。

作为一种可选的方案,上述装置还包括:

发送模块,用于在检测到目标参与者的在线状态为离线状态或者检测到第一资源量小于第二资源量的情况下,向协调者发送第二锁定信息,其中,第二锁定信息用于指示目标资源锁定失败。

可选地,在本实施例中,如果目标参与者的资源中可用资源的资源量不足,或者,目标参与者在资源的锁定阶段处于离线状态,则均会导致目标资源锁定失败,可以向协调者发送第二锁定信息来指示目标资源锁定失败。

可选地,在本实施例中,如图10所示,如果目标事务的各个参与者中有一个或者多个参与者返回给协调者的是第二锁定信息,则协调者可以将事务状态表中记录的该目标事务的事务记录清楚。

本发明实施例的应用环境可以但不限于参照上述实施例中的应用环境,本实施例中对此不再赘述。本发明实施例提供了用于实施上述实时通信的连接方法的一种可选的具体应用示例。

作为一种可选的实施例,上述事务的处理方法可以但不限于应用于如图12所示的对事务进行处理的场景中。在本场景中,提供了一种最终一致性的事务处理框架,该框架包括:最终一致性事务管理器、可持久化锁和事务状态表。最终一致性事务管理器可以部署于事务协调者,其向可持久化锁发布“锁定”命令,向事务状态表发布“状态设置”命令,可持久化锁可以部署于事务参与者,其向事务状态表发布“状态查询”请求,并根据状态查询回复进行相应处理。

可选地,在本实施例中,具体的事务处理过程如下:

在事务发起阶段,事务协调者设置事务状态表中目标事务的处理状态为锁定状态,并在事务状态表中记录事务参与者,同时,事务协调者向所有的参与者发送锁定请求。当事务参与者收到锁定请求后,尝试锁定事务所需的数据,并向协调者回复锁定结果。当所有的事务参与者都回复锁定成功后,协调者设置事务状态表为事务提交中状态,事务进入提交阶段。任意一个参与者返回锁定失败后,事务协调者清除事务状态表中对本次事务的状态记录,向所有的参与者发送事务取消通知,结束本次事务执行流程。

在事务进入提交阶段后,协调者向所有的参与者发送提交请求。若参与者在线,则解锁之前锁定的数据,并执行提交操作,返回提交成功的信息给协调者;若参与者不在线,则直接向协调者返回参与者离线。事务协调者在收到参与者提交成功的通知后,将事务状态表内对应的参与者提交状态设置为已提交;在收到参与者离线通知后,不做任何处理。当事务协调者收到所有参与者的回复(提交成功/参与者离线)或提交阶段超时后,协调者设置事务状态表为事务结束状态,并进入下一个阶段:事务补提交阶段。

在事务补提交阶段,在事务提价阶段后离线的参与者重新上线后,根据之前记录的锁定数据与事务参与数据,向事务状态表发起状态查询请求。若其提交状态是未提交,则参与者执行提交动作,并通知事务状态表,由事务状态表将该参与者的提交状态设置为已提交;否则,若提交状态是已提交,则参与者清除锁定数据及事务参与数据。

根据本发明实施例的又一个方面,还提供了一种用于实施上述事务的处理的电子装置,如图13所示,该电子装置包括:一个或多个(图中仅示出一个)处理器1302、存储器1304、传感器1306、编码器1308以及传输装置1310,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源,其中,目标参与者为目标事务的参与者,目标资源为执行目标事务中的目标操作所需的资源;

s2,从具有对应关系的事务、参与者与操作提交状态信息中获取目标事务的目标参与者对应的目标操作提交状态信息,其中,目标操作提交状态信息用于指示目标参与者对目标操作的提交状态;

s3,在目标操作提交状态指示目标操作未提交的情况下,指示目标参与者对目标资源执行目标操作,或者,在目标操作提交状态指示目标操作已提交的情况下,解除对目标资源的锁定。

可选地,本领域普通技术人员可以理解,图13所示的结构仅为示意,电子装置也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图13其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。

其中,存储器1302可用于存储软件程序以及模块,如本发明实施例中的事务的处理方法和装置对应的程序指令/模块,处理器1304通过运行存储在存储器1302内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的目标组件的控制方法。存储器1302可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1302可进一步包括相对于处理器1304远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1310用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1310包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1310为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1302用于存储应用程序。

本发明的实施例还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,检测到在线状态从离线状态转换为上线状态的目标参与者的资源中存在被目标事务锁定的目标资源,其中,目标参与者为目标事务的参与者,目标资源为执行目标事务中的目标操作所需的资源;

s2,从具有对应关系的事务、参与者与操作提交状态信息中获取目标事务的目标参与者对应的目标操作提交状态信息,其中,目标操作提交状态信息用于指示目标参与者对目标操作的提交状态;

s3,在目标操作提交状态指示目标操作未提交的情况下,指示目标参与者对目标资源执行目标操作,或者,在目标操作提交状态指示目标操作已提交的情况下,解除对目标资源的锁定。

可选地,存储介质还被设置为存储用于执行上述实施例中的方法中所包括的步骤的计算机程序,本实施例中对此不再赘述。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1