事务实现方法以及事务实现设备.pdf

上传人:a*** 文档编号:5865166 上传时间:2019-03-26 格式:PDF 页数:15 大小:532.46KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010122030.1

申请日:

2010.03.08

公开号:

CN102193780A

公开日:

2011.09.21

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 9/40申请公布日:20110921|||实质审查的生效IPC(主分类):G06F 9/40申请日:20100308|||公开

IPC分类号:

G06F9/40

主分类号:

G06F9/40

申请人:

华为技术有限公司

发明人:

杨苏; 吕浩松

地址:

518129 广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

深圳市深佳知识产权代理事务所(普通合伙) 44285

代理人:

彭愿洁;李文红

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种执行效率较高的事务实现方法,包括:第一设备接收提交事务的请求;按第一预定顺序依次执行所述事务的每个正命令;获取并保存每个正命令对应的逆命令,在正命令被执行后执行其对应的逆命令能使第一设备恢复为该正命令被执行前的配置状态;若事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。本发明实施例还提供相应的事务实现设备。本发明实施例中,仅仅通过执行逆命令,即可实现事务回滚功能,无需从备份的历史数据库中重新加载配置状态,时间开销较小,执行效率较高。

权利要求书

1.一种事务实现方法,其特征在于,包括:接收提交事务的请求;依次执行所述事务的每个正命令,执行所述事务的正命令的顺序为第一预定顺序;获取并保存每个正命令对应的逆命令,所述逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;若所述事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。2.根据权利要求1所述的事务实现方法,其特征在于,执行所述事务中已成功执行的正命令对应的逆命令,具体包括:按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令。3.根据权利要求2所述的事务实现方法,其特征在于:在执行每个正命令之前,根据该正命令的处理逻辑推导获得并保存该正命令对应的逆命令。4.根据权利要求3所述的事务实现方法,其特征在于,所述若事务的至少一个正命令执行失败,则按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令,具体包括:当执行完一个正命令时,判断是否成功执行该正命令;若否,则停止执行下一个正命令,并按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令。5.根据权利要求1至4中任一项所述的事务实现方法,其特征在于,所述方法还包括:在成功执行完事务的所有正命令之后,更新数据库中保存的历史配置状态为第一设备的当前配置状态。6.根据权利要求1所述的事务实现方法,其特征在于,所述方法还包括:接收回退指令,所述回退指令要求回到提交点甲生成时的配置状态;获取从当前提交点至所述提交点甲的后一提交点的各提交点对应的事务提交时保存的逆命令;执行获取的逆命令。7.一种事务实现设备,其特征在于,包括:第一接收模块,用于接收提交事务的请求;第一执行模块,用于依次执行所述事务的每个正命令,执行所述事务的正命令的顺序为第一预定顺序;获取保存模块,用于获取并保存每个正命令对应的逆命令,所述逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;第二执行模块,用于若所述事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。8.根据权利要求7所述的事务实现设备,其特征在于,第二执行模块包括:第一判断单元,用于判断第一执行模块是否失败执行所述事务的至少一个正命令,若是,则触发第一执行单元执行相关操作;第一执行单元,用于按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令。9.根据权利要求7所述的事务实现设备,其特征在于,获取保存模块在第一执行模块执行正命令之前,根据该正命令的处理逻辑推导获取并保存该正命令对应的逆命令,并触发第一执行模块执行该正命令。10.根据权利要求9所述的事务实现设备,其特征在于,第二执行模块包括:第二判断单元,用于当第一执行模块执行完一个正命令时,判断是否成功执行该正命令,若是,则触发获取保存模块根据下一个正命令的处理逻辑推导获得并保存该正命令对应的逆命令,否则触发第二执行单元执行相关操作;第二执行单元,用于按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令。

说明书

事务实现方法以及事务实现设备

技术领域

本发明涉及通信技术领域,具体涉及一种事务实现方法以及事务实现设备。

背景技术

嵌入式设备都支持用户通过各种命令对其进行配置。在配置过程中,用户往往希望一组命令具有事务的原子性,即这组命令要么在设备上同时生效、要么同时失败,设备将这组命令看作一次事务。

为了实现事务的原子性,设备在提交一次事务之前,首先将存储着自身当前配置状态的数据库备份成历史数据库,再按照预定顺序依次执行本次事务中的各个命令并检查它们返回的执行情况;若检查到命令成功执行,则继续执行下一个命令,否则删除当前数据库后将当前数据库切换成之前备份的历史数据库,并重新从切换后的当前数据库中加载配置状态,从而覆盖掉本次事务中已成功执行的命令对设备当前配置状态造成的更改,即实现事务回滚功能。

在对现有技术的研究和实践过程中,本发明的发明人发现,为了实现事务回滚功能,在事务提交失败时,需要从备份的历史数据库中重新加载配置状态,需要耗费较多的时间开销。由此可见,现有技术中的事务实现方法的执行效率较低。

发明内容

本发明实施例提供一种执行效率较高的事务实现方法以及事务实现设备。

本发明实施例提供了一种事务实现方法,包括:

接收提交事务的请求;

依次执行所述事务的每个正命令,执行所述事务的正命令的顺序为第一预定顺序;

获取并保存每个正命令对应的逆命令,所述逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;

若所述事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。

本发明实施例还提供了一种事务实现设备,包括:

第一接收模块,用于接收提交事务的请求;

第一执行模块,用于依次执行所述事务的每个正命令,执行所述事务的正命令的顺序为第一预定顺序;

获取保存模块,用于获取并保存每个正命令对应的逆命令,所述逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;

第二执行模块,用于若所述事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。

从以上技术方案可以看出,本发明实施例具有如下有益效果:

本发明实施例中,在提交事务的过程中,获取并保存事务的每个正命令对应的逆命令,当提交事务失败时,可以按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令,从而还原到提交事务之前的配置状态,实现事务回滚功能,相对现有技术,本发明实施例中,仅仅通过执行逆命令,即可实现事务回滚功能,无需从备份的历史数据库中重新加载配置状态,时间开销较小,执行效率较高。

附图说明

图1是本发明实施例中事务实现方法的一个实施例的示意图;

图2是本发明实施例中事务实现方法的另一实施例的示意图;

图3是图2所示实施例的一具体应用场景的示意图;

图4是图1所示实施例中实现事务回退功能的一个实施例的示意图;

图5是本发明实施例中事务实现设备的一个实施例的示意图;

图6是本发明实施例中事务实现设备的另一实施例的示意图;

图7是图6所示实施例的一具体应用场景中设备对数据库的使用示意图。

具体实施方式

本发明实施例提供一种事务实现方法以及事务实现设备。以下分别进行详细说明。

请参阅图1,本发明实施例中事务实现方法的一个实施例包括:

110、第一设备接收提交事务的请求;

在执行110之前,用户首先在第一设备上启用一次事务,并向该事务下发若干操作或配置命令(在本发明实施例中称为正命令),用户在下发完正命令后向第一设备发送提交该事务的请求。

此处需要说明的是,不仅可以由用户向第一设备发送提交事务的请求,还可以由其它设备向第一设备发送提交事务的请求,或者由第一设备内部的一个模块产生提交事务的请求。

120、依次执行事务的每个正命令,执行事务的正命令的顺序为第一预定顺序;

本发明实施例中,将设备执行每次事务的各个正命令的顺序统称为第一预定顺序。

设备在接收提交事务的请求后提交事务,即按第一预定顺序依次执行事务的每个正命令。若成功执行事务的所有正命令,则提交事务成功,否则提交事务失败。

在执行步骤110之后执行步骤120。

130、获取并保存每个正命令对应的逆命令,逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;

本发明实施例中提出逆命令的概念,即在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令。例如,若正命令为创建端口A,则逆命令可以为删除端口A;若正命令为将参数B(初始为1)修改为4,则逆命令可以为将参数B设置为1。

可以在执行正命令之前,第一设备根据该正命令的处理逻辑推导获得并保存该正命令对应的逆命令;也可以先保存第一设备在执行正命令之前的配置状态,在成功执行正命令之后,根据执行正命令之前的配置状态以及正命令的处理逻辑推导获得并保存该正命令对应的逆命令;也可以通过查找预置的映射表的方式获得,该映射表包括正命令与逆命令的对应关系,例如,第一设备在执行正命令之前,根据正命令查找映射表获得其对应的逆命令。

此处需要说明的是,可以获取并保存事务的每个正命令对应的逆命令,也可以只获取并保存事务中已成功执行的正命令对应的逆命令,而不获取事务中执行失败的正命令对应的逆命令。由此可见,在每一次提交事务成功时,都会保存该事务的所有正命令对应的逆命令。

140、若事务的至少一个正命令执行失败,则按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令。

步骤140具体可以为:当执行完一个正命令时,判断是否成功执行该正命令,若未成功执行,则停止执行下一个正命令,并按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令,从而还原到提交事务之前的配置状态。若在执行完一个正命令时,判定成功执行该正命令,则按第一预定顺序执行下一个正命令。

步骤140具体也可以为:当执行完事务的所有正命令之后,判断是否失败执行事务的至少一个正命令,若是,则按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令。若在执行完事务的所有正命令之后,判定成功执行事务的所有正命令,则结束操作。

此处需要说明的是,在事务的各个逆命令之间不相依赖的情况下,可以乱序执行事务中已成功执行的正命令对应的逆命令,而不需要按与第一预定顺序相反的顺序依次执行。例如,事务中已成功执行的正命令对应的逆命令包括两个,分别为删除文件A和删除文件B,而文件A和文件B是相互独立的两个文件,那么删除文件A和删除文件B可以没有执行的先后顺序。

本发明实施例中,可以保证逆命令的执行不存在部分成功的情况,即逆命令具有原子性。

本实施例中,在提交事务的过程中,获取并保存事务的每个正命令对应的逆命令,当提交事务失败时,可以按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令,从而还原到提交事务之前的配置状态,实现事务回滚功能,而无需从备份的历史数据库中重新加载配置状态,时间开销较小,是一种执行效率较高的事务实现方法。

请参阅图2,本发明实施例中事务实现方法的另一实施例包括:

210、第一设备接收提交事务的请求;

220、按第一预定顺序,根据事务的第一个正命令的处理逻辑推导获得并保存该正命令对应的逆命令;

此处的第一个正命令即按第一预定顺序依次执行的,事务的所有正命令中第一个被执行的正命令。

本实施例中,在执行正命令之前,根据该正命令的处理逻辑推导获得并保存该正命令对应的逆命令。

此处需要说明的是,逆命令也可以根据其对应的正命令查表获得,若在执行正命令之后再根据该正命令查表获得其对应的逆命令,则在提交事务之前需要保存第一设备当前的配置状态。

230、按第一预定顺序执行事务的第一个正命令;

240、判断是否成功执行事务的第一个正命令,若是,执行步骤250,否则执行步骤260;

本实施例中,在成功执行完一个正命令之后,按第一预定顺序,根据下一个正命令的处理逻辑推导获得并保存该正命令对应的逆命令,并执行该下一个正命令;在执行失败完一个正命令之后,按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令,从而还原到提交事务之前的配置状态。若成功执行完事务的最后一个正命令,则结束操作。

可以理解的是,在执行失败完一个正命令之后,也可以根据第一预定顺序继续执行下一个正命令,直到执行完事务的所有正命令之后,再按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令,即跳过事务中已执行失败的正命令对应的逆命令,从而还原到提交事务之前的配置状态。

250、根据事务的下一个正命令的处理逻辑推导获得并保存该正命令对应的逆命令;

执行步骤250之后,按第一预定顺序执行事务的下一个正命令,判断是否成功执行该正命令,若是,则执行步骤250,否则执行步骤260。

本发明实施例中,均由第一设备获取逆命令。由于在一些情况下,一个正命令对应的逆命令的处理逻辑可以与另一个正命令的处理逻辑完全相同,也可以是其它多个正命令的处理逻辑的组合,因此,逆命令的软硬件实现可以直接采用第一设备上支持的正命令的处理逻辑,而无需再进行逆命令的软硬件设置,使得第一设备支持的正命令的处理逻辑可以最大限度地得到重用。

260、按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令。

第一设备可以在接收提交事务的请求之后,且在按第一预定顺序执行事务的第一个正命令之前,或者,在成功执行完事务的所有正命令之后,更新数据库中保存的第一设备的历史配置状态为第一设备的当前配置状态,以便于第一设备在掉电重启后能够恢复提交事务之前的配置状态。

本实施例中,在提交事务失败时,无需从备份的历史数据库中重新加载配置状态,而仅仅通过执行逆命令即可使设备还原到提交事务之前的配置状态,时间开销较小,使得事务机制的执行效率较高。并且,相对现有技术,本实施例中,设备无须在提交每次事务之前,备份存储着自身当前配置状态的数据库,而只须保存每次事务的所有正命令对应的逆命令,存储的数据量较小,更容易在诸如嵌入式设备等存储资源有限的系统环境下实现事务机制。

为便于理解,下面以一具体应用场景对图2所示实施例进行详细说明。请参阅图3,图2所示实施例的一具体应用场景的流程包括:

310、用户向第一设备发送启用事务的命令;

320、用户向第一设备依次发送第一正命令、第二正命令、第三正命令以及第四正命令,第一设备将第一正命令、第二正命令、第三正命令以及第四正命令添加到事务中;

330、用户向设备发送提交事务的请求;

340、第一设备根据第一正命令的处理逻辑推导获得并保存第一正命令对应的逆命令,并执行第一正命令;

350、第一设备判定成功执行第一正命令之后,根据第二正命令的处理逻辑推导获得并保存第二正命令对应的逆命令,并执行第二正命令;

360、第一设备判定成功执行第二正命令之后,根据第三正命令的处理逻辑推导获得并保存第三正命令对应的逆命令,并执行第三正命令;

370、第一设备判定执行失败第三正命令之后,向用户发送提交失败响应消息,并依次执行第二正命令对应的逆命令和第一正命令对应的逆命令。

可以理解的是,第一设备在判定执行失败第三正命令之后,也可以根据第四正命令的处理逻辑推导获得并保存第四正命令对应的逆命令,并执行第四正命令;若成功执行第四正命令,则向用户发送提交失败响应消息,并依次执行第四正命令对应的逆命令、第二正命令对应的逆命令和第一正命令对应的逆命令;若第四正命令执行失败,则向用户发送提交失败响应消息,并依次执行第二正命令对应的逆命令和第一正命令对应的逆命令。

现有技术中,用户在维护设备的过程中也希望能够通过回退指令让设备直接回到之前某一次提交事务后的配置状态,设备在收到回退指令后,将从之前备份的多个历史数据库中找到相应的数据库并重新加载其中存储的配置状态信息,从而实现事务回退功能。而本发明实施例中,可以通过执行逆命令实现事务回退功能,而无需从备份的历史数据库中重新加载配置状态。下面,对本发明实施例中实现事务回退功能的方法进行详细说明。

请参阅图4,图1所示实施例中实现事务回退功能的一个实施例包括:

410、第一设备接收回退指令,该回退指令要求回到提交点甲生成时的配置状态;

提交点指每提交成功一次事务时在逻辑上生成的提交点。当前提交点指产生出当前配置状态的事务提交后在逻辑上生成的提交点。

420、获取第一提交点段的各提交点对应的事务提交时保存的逆命令,第一提交点段为从当前提交点至提交点甲的后一提交点的提交点段;

第一提交点段包括当前提交点、提交点甲的后一提交点、以及前两者之间的提交点。

由图1所示实施例可知,在每一次提交成功事务时,都会保存该事务的所有正命令对应的逆命令,只要在提交一次事务后,按与第一预定顺序相反的顺序依次执行该事务的所有逆命令,即可将第一设备回退到提交本次事务之前的配置状态。因此,要回退到提交点甲生成时的配置状态,只需要获取从当前提交点至提交点甲的后一提交点的各提交点对应的事务提交时保存的逆命令,并按从当前提交点至提交点甲的后一提交点的顺序、以及与第一预定顺序相反的顺序依次执行获取的逆命令即可。

430、按从当前提交点至提交点甲的后一提交点的顺序、以及与各提交点对应的事务的第一预定顺序相反的顺序依次执行获取的逆命令。

例如,第一设备按时间先后顺序依次生成提交点1、2、3和4,那么,第一设备的当前提交点为提交点4,若回退指令要求回到提交点2生成时的配置状态,则要获取提交点4和提交点3对应的事务提交成功时保存的逆命令,并先按与提交点4对应的事务的第一预定顺序相反的顺序执行提交点4对应的事务提交时保存的逆命令,再按与提交点3对应的事务的第一预定顺序相反的顺序执行提交点3对应的事务提交时保存的逆命令。

此处需要说明的是,在从当前提交点至提交点甲的后一提交点的各提交点对应的事务的各个逆命令之间不相依赖的情况下,可以乱序执行步骤420中获取的逆命令,而不需要按从当前提交点至提交点甲的后一提交点的顺序、以及与第一预定顺序相反的顺序依次执行。

此处需要说明的是,第一设备执行步骤430之后,还可以更新数据库中保存的第一设备的历史配置状态为第一设备的当前配置状态,以便于第一设备在掉电重启后能够恢复回退之后的配置状态。

本实施例中,通过在当前配置状态的基础上执行多个提交点对应的事务提交时保存的逆命令,即可实现多次事务回退功能,而现有技术中,需要从备份的历史数据库中重新加载配置状态,时间开销较大,因此,本实施例耗费较少的时间开销即可实现多次事务回退功能,事务机制执行效率较高。并且,现有技术中,为了实现多次事务回退机制,需要备份多个历史数据库,而本实施例中,可以不需要备份历史数据库,只需要保存每次事务提交时获取的逆命令即可,更容易在诸如嵌入式设备等存储资源有限的系统环境下实现事务机制。

为便于理解,下面以实现两次回退的具体应用场景对图4所示实施例实现事务回退功能的方法进行详细说明,该具体应用场景的流程包括:

(1)第一设备接收用户发送的回退指令,该回退指令要求由当前提交点(提交点5)回退到提交点3生成时的配置状态;

(2)获取从提交点5至提交点4的各提交点对应的事务提交时保存的逆命令;

(3)按从提交点5至提交点4的顺序、以及与各提交点对应的事务的第一预定顺序相反的顺序依次执行获取的逆命令。

假设提交点5对应的事务提交时按第一预定顺序执行的正命令依次为正命令51、52,正命令51、52对应的逆命令分别为逆命令53、54,提交点4对应的事务提交时按第一预定顺序执行的正命令依次为正命令41、42,正命令41、42对应的逆命令分别为逆命令43、44,那么,步骤530则为依次执行逆命令54、53、44、43。

下面对本发明实施例中的相关设备进行详细说明。

请参阅图5,本发明实施例中事务实现设备的一个实施例包括:

第一接收模块510,用于接收提交事务的请求;

第一执行模块520,用于依次执行事务的每个正命令,执行事务的正命令的顺序为第一预定顺序;

获取保存模块530,用于获取并保存每个正命令对应的逆命令,逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;

第二执行模块540,用于若事务的至少一个正命令执行失败,则执行事务中已成功执行的正命令对应的逆命令。

第二执行模块540可以包括:

第一判断单元,用于判断第一执行模块是否失败执行事务的至少一个正命令,若是,则触发第一执行单元执行相关操作;

第一执行单元,用于按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令。

获取保存模块530可以在第一执行模块520执行正命令之前,根据该正命令的处理逻辑推导获取并保存该正命令对应的逆命令,并触发第一执行模块520执行该正命令。

获取保存模块530也可以先保存第一执行模块520执行正命令之前的第一设备的配置状态,再在第一执行模块520成功执行正命令之后,根据执行正命令之前的配置状态以及正命令的处理逻辑推导获得并保存该正命令对应的逆命令。

逆命令也可以通过查找预置的映射表的方式获得,该映射表包括正命令与逆命令的对应关系,获取保存模块530也可以在第一执行模块520执行正命令之前,根据第一接收模块510接收的正命令查找映射表获得其对应的逆命令。

第二执行模块540具体可以包括:

第二判断单元,用于当第一执行模块520执行完一个正命令时,判断是否成功执行该正命令,若是,则触发获取保存模块530根据下一个正命令的处理逻辑推导获得并保存该正命令对应的逆命令,否则触发第二执行单元执行相关操作;

第二执行单元,用于按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令。

或者,第二执行模块540具体也可以包括:

第三判断单元,用于当第一执行模块520依次执行完事务的所有正命令之后,判断是否失败执行事务的至少一个正命令,若是,则触发第二执行单元执行相关操作;

第三执行单元,用于按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令。

进一步地,本实施例中的事务实现设备还可以包括:

第一更新模块,用于在第一执行模块520成功执行完事务的所有正命令之后,更新数据库中保存的第一设备的历史配置状态为第一设备的当前配置状态,以便于设备在掉电重启后能够恢复提交事务之前的配置状态。

本实施例中,在提交事务的过程中,获取并保存事务的每个正命令对应的逆命令,当提交事务失败时,可以按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令,从而还原到提交事务之前的配置状态。相对现有技术,本实施例在提交事务失败时,无需从备份的历史数据库中重新加载配置状态,而仅仅通过执行逆命令即可使设备还原到提交事务之前的配置状态,时间开销较小,使得事务机制的执行效率较高。

请参阅图6,图6为本发明实施例中事务实现设备的另一实施例的示意图,相对于图5所示实施例,本实施例中进一步包括:

第二接收模块610,用于接收回退指令,该回退指令要求回到提交点甲生成时的配置状态;

获取模块620,用于获取第一提交点段的各提交点对应的事务提交时保存的逆命令,第一提交点段为从当前提交点至提交点甲的后一提交点的提交点段;

第三执行模块630,用于按从当前提交点至提交点甲的后一提交点的顺序、以及与各提交点对应的事务的第一预定顺序相反的顺序依次执行获取模块获取的逆命令。

进一步地,本实施例中的设备还可以包括:

第二更新模块,用于在第三执行模块依次执行获取模块获取的逆命令之后,更新数据库中保存的第一设备的历史配置状态为第一设备的当前配置状态,以便于设备在掉电重启后能够恢复配置状态。

本实施例中,为了实现多次事务回退机制,只需要保存每次事务提交时获取的逆命令即可,即使要进一步地使设备在掉电重启后能够恢复配置状态,也只需要在每次提交事务之前,将设备当前的配置状态更新到数据库中,因此,数据库中只需要保存设备的一份配置状态和多次事务对应的逆命令,存储开销相对现有技术较小。

请参阅图7,图7为图6所示实施例的一具体应用场景中设备对数据库的使用示意图,如图7所示:

710、用户向设备发送提交事务1的请求;

720、设备存储事务1的正命令对应的逆命令到数据库;

730、在成功提交事务1后,设备更新数据库中保存的设备的历史配置状态为设备的当前配置状态;

740、用户向设备发送提交事务2的请求;

750、设备存储事务2的正命令对应的逆命令到数据库;

760、在成功提交事务2后,设备更新数据库中保存的设备的历史配置状态为设备的当前配置状态;

770、用户向设备发送提交事务3的请求;

780、设备存储事务3的正命令对应的逆命令到数据库;

790、在成功提交事务3后,设备更新数据库中保存的设备的历史配置状态为设备的当前配置状态。

本实施例在图5实施例的基础上,通过在当前配置状态的基础上执行多个提交点对应的事务提交时保存的逆命令,即可实现多次事务回退功能,而现有技术中,需要从备份的历史数据库中重新加载配置状态,时间开销较大,因此,本实施例耗费较少的时间开销即可实现多次事务回退功能,事务机制执行效率较高。并且,现有技术中,为了实现多次事务回退机制,需要备份多个历史数据库,而本实施例中,可以不需要备份历史数据库,只需要保存每次事务提交时获取的逆命令即可,更容易在诸如嵌入式设备等存储资源有限的系统环境下实现事务机制。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。

以上对本发明实施例所提供的事务实现方法以及事务实现设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

事务实现方法以及事务实现设备.pdf_第1页
第1页 / 共15页
事务实现方法以及事务实现设备.pdf_第2页
第2页 / 共15页
事务实现方法以及事务实现设备.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《事务实现方法以及事务实现设备.pdf》由会员分享,可在线阅读,更多相关《事务实现方法以及事务实现设备.pdf(15页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102193780 A (43)申请公布日 2011.09.21 CN 102193780 A *CN102193780A* (21)申请号 201010122030.1 (22)申请日 2010.03.08 G06F 9/40(2006.01) (71)申请人 华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人 杨苏 吕浩松 (74)专利代理机构 深圳市深佳知识产权代理事 务所 ( 普通合伙 ) 44285 代理人 彭愿洁 李文红 (54) 发明名称 事务实现方法以及事务实现设备 (57) 摘要 本发明实施例公开了一种执行效。

2、率较高的事 务实现方法, 包括 : 第一设备接收提交事务的请 求 ; 按第一预定顺序依次执行所述事务的每个正 命令 ; 获取并保存每个正命令对应的逆命令, 在 正命令被执行后执行其对应的逆命令能使第一设 备恢复为该正命令被执行前的配置状态 ; 若事务 的至少一个正命令执行失败, 则执行所述事务中 已成功执行的正命令对应的逆命令。本发明实施 例还提供相应的事务实现设备。 本发明实施例中, 仅仅通过执行逆命令, 即可实现事务回滚功能, 无 需从备份的历史数据库中重新加载配置状态, 时 间开销较小, 执行效率较高。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 。

3、权利要求书 2 页 说明书 8 页 附图 4 页 CN 102193787 A1/2 页 2 1. 一种事务实现方法, 其特征在于, 包括 : 接收提交事务的请求 ; 依次执行所述事务的每个正命令, 执行所述事务的正命令的顺序为第一预定顺序 ; 获取并保存每个正命令对应的逆命令, 所述逆命令为在正命令被成功执行后, 能使配 置恢复为该正命令被执行前的状态的对应命令 ; 若所述事务的至少一个正命令执行失败, 则执行所述事务中已成功执行的正命令对应 的逆命令。 2. 根据权利要求 1 所述的事务实现方法, 其特征在于, 执行所述事务中已成功执行的 正命令对应的逆命令, 具体包括 : 按与第一预定顺。

4、序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命 令。 3. 根据权利要求 2 所述的事务实现方法, 其特征在于 : 在执行每个正命令之前, 根据该 正命令的处理逻辑推导获得并保存该正命令对应的逆命令。 4. 根据权利要求 3 所述的事务实现方法, 其特征在于, 所述若事务的至少一个正命令 执行失败, 则按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应 的逆命令, 具体包括 : 当执行完一个正命令时, 判断是否成功执行该正命令 ; 若否, 则停止执行下一个正命令, 并按与第一预定顺序相反的顺序依次执行所述事务 中已成功执行的正命令对应的逆命令。 5. 根据权利要求 。

5、1 至 4 中任一项所述的事务实现方法, 其特征在于, 所述方法还包括 : 在成功执行完事务的所有正命令之后, 更新数据库中保存的历史配置状态为第一设备 的当前配置状态。 6. 根据权利要求 1 所述的事务实现方法, 其特征在于, 所述方法还包括 : 接收回退指令, 所述回退指令要求回到提交点甲生成时的配置状态 ; 获取从当前提交点至所述提交点甲的后一提交点的各提交点对应的事务提交时保存 的逆命令 ; 执行获取的逆命令。 7. 一种事务实现设备, 其特征在于, 包括 : 第一接收模块, 用于接收提交事务的请求 ; 第一执行模块, 用于依次执行所述事务的每个正命令, 执行所述事务的正命令的顺序 。

6、为第一预定顺序 ; 获取保存模块, 用于获取并保存每个正命令对应的逆命令, 所述逆命令为在正命令被 成功执行后, 能使配置恢复为该正命令被执行前的状态的对应命令 ; 第二执行模块, 用于若所述事务的至少一个正命令执行失败, 则执行所述事务中已成 功执行的正命令对应的逆命令。 8. 根据权利要求 7 所述的事务实现设备, 其特征在于, 第二执行模块包括 : 第一判断单元, 用于判断第一执行模块是否失败执行所述事务的至少一个正命令, 若 是, 则触发第一执行单元执行相关操作 ; 第一执行单元, 用于按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的 权 利 要 求 书 CN 10219378。

7、0 A CN 102193787 A2/2 页 3 正命令对应的逆命令。 9. 根据权利要求 7 所述的事务实现设备, 其特征在于, 获取保存模块在第一执行模块 执行正命令之前, 根据该正命令的处理逻辑推导获取并保存该正命令对应的逆命令, 并触 发第一执行模块执行该正命令。 10. 根据权利要求 9 所述的事务实现设备, 其特征在于, 第二执行模块包括 : 第二判断单元, 用于当第一执行模块执行完一个正命令时, 判断是否成功执行该正命 令, 若是, 则触发获取保存模块根据下一个正命令的处理逻辑推导获得并保存该正命令对 应的逆命令, 否则触发第二执行单元执行相关操作 ; 第二执行单元, 用于按与。

8、第一预定顺序相反的顺序依次执行所述事务中已成功执行的 正命令对应的逆命令。 权 利 要 求 书 CN 102193780 A CN 102193787 A1/8 页 4 事务实现方法以及事务实现设备 技术领域 0001 本发明涉及通信技术领域, 具体涉及一种事务实现方法以及事务实现设备。 背景技术 0002 嵌入式设备都支持用户通过各种命令对其进行配置。在配置过程中, 用户往往希 望一组命令具有事务的原子性, 即这组命令要么在设备上同时生效、 要么同时失败, 设备将 这组命令看作一次事务。 0003 为了实现事务的原子性, 设备在提交一次事务之前, 首先将存储着自身当前配置 状态的数据库备份成。

9、历史数据库, 再按照预定顺序依次执行本次事务中的各个命令并检查 它们返回的执行情况 ; 若检查到命令成功执行, 则继续执行下一个命令, 否则删除当前数据 库后将当前数据库切换成之前备份的历史数据库, 并重新从切换后的当前数据库中加载配 置状态, 从而覆盖掉本次事务中已成功执行的命令对设备当前配置状态造成的更改, 即实 现事务回滚功能。 0004 在对现有技术的研究和实践过程中, 本发明的发明人发现, 为了实现事务回滚功 能, 在事务提交失败时, 需要从备份的历史数据库中重新加载配置状态, 需要耗费较多的时 间开销。由此可见, 现有技术中的事务实现方法的执行效率较低。 发明内容 0005 本发明。

10、实施例提供一种执行效率较高的事务实现方法以及事务实现设备。 0006 本发明实施例提供了一种事务实现方法, 包括 : 0007 接收提交事务的请求 ; 0008 依次执行所述事务的每个正命令, 执行所述事务的正命令的顺序为第一预定顺 序 ; 0009 获取并保存每个正命令对应的逆命令, 所述逆命令为在正命令被成功执行后, 能 使配置恢复为该正命令被执行前的状态的对应命令 ; 0010 若所述事务的至少一个正命令执行失败, 则执行所述事务中已成功执行的正命令 对应的逆命令。 0011 本发明实施例还提供了一种事务实现设备, 包括 : 0012 第一接收模块, 用于接收提交事务的请求 ; 0013。

11、 第一执行模块, 用于依次执行所述事务的每个正命令, 执行所述事务的正命令的 顺序为第一预定顺序 ; 0014 获取保存模块, 用于获取并保存每个正命令对应的逆命令, 所述逆命令为在正命 令被成功执行后, 能使配置恢复为该正命令被执行前的状态的对应命令 ; 0015 第二执行模块, 用于若所述事务的至少一个正命令执行失败, 则执行所述事务中 已成功执行的正命令对应的逆命令。 0016 从以上技术方案可以看出, 本发明实施例具有如下有益效果 : 说 明 书 CN 102193780 A CN 102193787 A2/8 页 5 0017 本发明实施例中, 在提交事务的过程中, 获取并保存事务的。

12、每个正命令对应的逆 命令, 当提交事务失败时, 可以按与第一预定顺序相反的顺序依次执行事务中已成功执行 的正命令对应的逆命令, 从而还原到提交事务之前的配置状态, 实现事务回滚功能, 相对现 有技术, 本发明实施例中, 仅仅通过执行逆命令, 即可实现事务回滚功能, 无需从备份的历 史数据库中重新加载配置状态, 时间开销较小, 执行效率较高。 附图说明 0018 图 1 是本发明实施例中事务实现方法的一个实施例的示意图 ; 0019 图 2 是本发明实施例中事务实现方法的另一实施例的示意图 ; 0020 图 3 是图 2 所示实施例的一具体应用场景的示意图 ; 0021 图 4 是图 1 所示实。

13、施例中实现事务回退功能的一个实施例的示意图 ; 0022 图 5 是本发明实施例中事务实现设备的一个实施例的示意图 ; 0023 图 6 是本发明实施例中事务实现设备的另一实施例的示意图 ; 0024 图 7 是图 6 所示实施例的一具体应用场景中设备对数据库的使用示意图。 具体实施方式 0025 本发明实施例提供一种事务实现方法以及事务实现设备。以下分别进行详细说 明。 0026 请参阅图 1, 本发明实施例中事务实现方法的一个实施例包括 : 0027 110、 第一设备接收提交事务的请求 ; 0028 在执行 110 之前, 用户首先在第一设备上启用一次事务, 并向该事务下发若干操 作或配。

14、置命令 ( 在本发明实施例中称为正命令 ), 用户在下发完正命令后向第一设备发送 提交该事务的请求。 0029 此处需要说明的是, 不仅可以由用户向第一设备发送提交事务的请求, 还可以由 其它设备向第一设备发送提交事务的请求, 或者由第一设备内部的一个模块产生提交事务 的请求。 0030 120、 依次执行事务的每个正命令, 执行事务的正命令的顺序为第一预定顺序 ; 0031 本发明实施例中, 将设备执行每次事务的各个正命令的顺序统称为第一预定顺 序。 0032 设备在接收提交事务的请求后提交事务, 即按第一预定顺序依次执行事务的每个 正命令。若成功执行事务的所有正命令, 则提交事务成功, 否。

15、则提交事务失败。 0033 在执行步骤 110 之后执行步骤 120。 0034 130、 获取并保存每个正命令对应的逆命令, 逆命令为在正命令被成功执行后, 能 使配置恢复为该正命令被执行前的状态的对应命令 ; 0035 本发明实施例中提出逆命令的概念, 即在正命令被成功执行后, 能使配置恢复为 该正命令被执行前的状态的对应命令。例如, 若正命令为创建端口 A, 则逆命令可以为删除 端口 A ; 若正命令为将参数 B( 初始为 1) 修改为 4, 则逆命令可以为将参数 B 设置为 1。 0036 可以在执行正命令之前, 第一设备根据该正命令的处理逻辑推导获得并保存该正 命令对应的逆命令 ; 。

16、也可以先保存第一设备在执行正命令之前的配置状态, 在成功执行正 说 明 书 CN 102193780 A CN 102193787 A3/8 页 6 命令之后, 根据执行正命令之前的配置状态以及正命令的处理逻辑推导获得并保存该正命 令对应的逆命令 ; 也可以通过查找预置的映射表的方式获得, 该映射表包括正命令与逆命 令的对应关系, 例如, 第一设备在执行正命令之前, 根据正命令查找映射表获得其对应的逆 命令。 0037 此处需要说明的是, 可以获取并保存事务的每个正命令对应的逆命令, 也可以只 获取并保存事务中已成功执行的正命令对应的逆命令, 而不获取事务中执行失败的正命令 对应的逆命令。 由。

17、此可见, 在每一次提交事务成功时, 都会保存该事务的所有正命令对应的 逆命令。 0038 140、 若事务的至少一个正命令执行失败, 则按与第一预定顺序相反的顺序依次执 行事务中已成功执行的正命令对应的逆命令。 0039 步骤 140 具体可以为 : 当执行完一个正命令时, 判断是否成功执行该正命令, 若未 成功执行, 则停止执行下一个正命令, 并按与第一预定顺序相反的顺序依次执行事务中已 成功执行的正命令对应的逆命令, 从而还原到提交事务之前的配置状态。若在执行完一个 正命令时, 判定成功执行该正命令, 则按第一预定顺序执行下一个正命令。 0040 步骤 140 具体也可以为 : 当执行完事。

18、务的所有正命令之后, 判断是否失败执行事 务的至少一个正命令, 若是, 则按与第一预定顺序相反的顺序依次执行事务中已成功执行 的正命令对应的逆命令。若在执行完事务的所有正命令之后, 判定成功执行事务的所有正 命令, 则结束操作。 0041 此处需要说明的是, 在事务的各个逆命令之间不相依赖的情况下, 可以乱序执行 事务中已成功执行的正命令对应的逆命令, 而不需要按与第一预定顺序相反的顺序依次执 行。例如, 事务中已成功执行的正命令对应的逆命令包括两个, 分别为删除文件 A 和删除文 件 B, 而文件 A 和文件 B 是相互独立的两个文件, 那么删除文件 A 和删除文件 B 可以没有执 行的先后。

19、顺序。 0042 本发明实施例中, 可以保证逆命令的执行不存在部分成功的情况, 即逆命令具有 原子性。 0043 本实施例中, 在提交事务的过程中, 获取并保存事务的每个正命令对应的逆命令, 当提交事务失败时, 可以按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命 令对应的逆命令, 从而还原到提交事务之前的配置状态, 实现事务回滚功能, 而无需从备份 的历史数据库中重新加载配置状态, 时间开销较小, 是一种执行效率较高的事务实现方法。 0044 请参阅图 2, 本发明实施例中事务实现方法的另一实施例包括 : 0045 210、 第一设备接收提交事务的请求 ; 0046 220、 按第一。

20、预定顺序, 根据事务的第一个正命令的处理逻辑推导获得并保存该正 命令对应的逆命令 ; 0047 此处的第一个正命令即按第一预定顺序依次执行的, 事务的所有正命令中第一个 被执行的正命令。 0048 本实施例中, 在执行正命令之前, 根据该正命令的处理逻辑推导获得并保存该正 命令对应的逆命令。 0049 此处需要说明的是, 逆命令也可以根据其对应的正命令查表获得, 若在执行正命 令之后再根据该正命令查表获得其对应的逆命令, 则在提交事务之前需要保存第一设备当 说 明 书 CN 102193780 A CN 102193787 A4/8 页 7 前的配置状态。 0050 230、 按第一预定顺序执。

21、行事务的第一个正命令 ; 0051 240、 判断是否成功执行事务的第一个正命令, 若是, 执行步骤 250, 否则执行步骤 260 ; 0052 本实施例中, 在成功执行完一个正命令之后, 按第一预定顺序, 根据下一个正命令 的处理逻辑推导获得并保存该正命令对应的逆命令, 并执行该下一个正命令 ; 在执行失败 完一个正命令之后, 按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对 应的逆命令, 从而还原到提交事务之前的配置状态。 若成功执行完事务的最后一个正命令, 则结束操作。 0053 可以理解的是, 在执行失败完一个正命令之后, 也可以根据第一预定顺序继续执 行下一个正命令, 。

22、直到执行完事务的所有正命令之后, 再按与第一预定顺序相反的顺序依 次执行事务中已成功执行的正命令对应的逆命令, 即跳过事务中已执行失败的正命令对应 的逆命令, 从而还原到提交事务之前的配置状态。 0054 250、 根据事务的下一个正命令的处理逻辑推导获得并保存该正命令对应的逆命 令 ; 0055 执行步骤 250 之后, 按第一预定顺序执行事务的下一个正命令, 判断是否成功执 行该正命令, 若是, 则执行步骤 250, 否则执行步骤 260。 0056 本发明实施例中, 均由第一设备获取逆命令。 由于在一些情况下, 一个正命令对应 的逆命令的处理逻辑可以与另一个正命令的处理逻辑完全相同, 也。

23、可以是其它多个正命令 的处理逻辑的组合, 因此, 逆命令的软硬件实现可以直接采用第一设备上支持的正命令的 处理逻辑, 而无需再进行逆命令的软硬件设置, 使得第一设备支持的正命令的处理逻辑可 以最大限度地得到重用。 0057 260、 按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的 逆命令。 0058 第一设备可以在接收提交事务的请求之后, 且在按第一预定顺序执行事务的第一 个正命令之前, 或者, 在成功执行完事务的所有正命令之后, 更新数据库中保存的第一设备 的历史配置状态为第一设备的当前配置状态, 以便于第一设备在掉电重启后能够恢复提交 事务之前的配置状态。 0059 本实。

24、施例中, 在提交事务失败时, 无需从备份的历史数据库中重新加载配置状态, 而仅仅通过执行逆命令即可使设备还原到提交事务之前的配置状态, 时间开销较小, 使得 事务机制的执行效率较高。并且, 相对现有技术, 本实施例中, 设备无须在提交每次事务之 前, 备份存储着自身当前配置状态的数据库, 而只须保存每次事务的所有正命令对应的逆 命令, 存储的数据量较小, 更容易在诸如嵌入式设备等存储资源有限的系统环境下实现事 务机制。 0060 为便于理解, 下面以一具体应用场景对图 2 所示实施例进行详细说明。请参阅图 3, 图 2 所示实施例的一具体应用场景的流程包括 : 0061 310、 用户向第一设。

25、备发送启用事务的命令 ; 0062 320、 用户向第一设备依次发送第一正命令、 第二正命令、 第三正命令以及第四正 命令, 第一设备将第一正命令、 第二正命令、 第三正命令以及第四正命令添加到事务中 ; 说 明 书 CN 102193780 A CN 102193787 A5/8 页 8 0063 330、 用户向设备发送提交事务的请求 ; 0064 340、 第一设备根据第一正命令的处理逻辑推导获得并保存第一正命令对应的逆 命令, 并执行第一正命令 ; 0065 350、 第一设备判定成功执行第一正命令之后, 根据第二正命令的处理逻辑推导获 得并保存第二正命令对应的逆命令, 并执行第二正命。

26、令 ; 0066 360、 第一设备判定成功执行第二正命令之后, 根据第三正命令的处理逻辑推导获 得并保存第三正命令对应的逆命令, 并执行第三正命令 ; 0067 370、 第一设备判定执行失败第三正命令之后, 向用户发送提交失败响应消息, 并 依次执行第二正命令对应的逆命令和第一正命令对应的逆命令。 0068 可以理解的是, 第一设备在判定执行失败第三正命令之后, 也可以根据第四正命 令的处理逻辑推导获得并保存第四正命令对应的逆命令, 并执行第四正命令 ; 若成功执行 第四正命令, 则向用户发送提交失败响应消息, 并依次执行第四正命令对应的逆命令、 第二 正命令对应的逆命令和第一正命令对应的。

27、逆命令 ; 若第四正命令执行失败, 则向用户发送 提交失败响应消息, 并依次执行第二正命令对应的逆命令和第一正命令对应的逆命令。 0069 现有技术中, 用户在维护设备的过程中也希望能够通过回退指令让设备直接回到 之前某一次提交事务后的配置状态, 设备在收到回退指令后, 将从之前备份的多个历史数 据库中找到相应的数据库并重新加载其中存储的配置状态信息, 从而实现事务回退功能。 而本发明实施例中, 可以通过执行逆命令实现事务回退功能, 而无需从备份的历史数据库 中重新加载配置状态。下面, 对本发明实施例中实现事务回退功能的方法进行详细说明。 0070 请参阅图 4, 图 1 所示实施例中实现事务。

28、回退功能的一个实施例包括 : 0071 410、 第一设备接收回退指令, 该回退指令要求回到提交点甲生成时的配置状态 ; 0072 提交点指每提交成功一次事务时在逻辑上生成的提交点。 当前提交点指产生出当 前配置状态的事务提交后在逻辑上生成的提交点。 0073 420、 获取第一提交点段的各提交点对应的事务提交时保存的逆命令, 第一提交点 段为从当前提交点至提交点甲的后一提交点的提交点段 ; 0074 第一提交点段包括当前提交点、 提交点甲的后一提交点、 以及前两者之间的提交 点。 0075 由图 1 所示实施例可知, 在每一次提交成功事务时, 都会保存该事务的所有正命 令对应的逆命令, 只要。

29、在提交一次事务后, 按与第一预定顺序相反的顺序依次执行该事务 的所有逆命令, 即可将第一设备回退到提交本次事务之前的配置状态。 因此, 要回退到提交 点甲生成时的配置状态, 只需要获取从当前提交点至提交点甲的后一提交点的各提交点对 应的事务提交时保存的逆命令, 并按从当前提交点至提交点甲的后一提交点的顺序、 以及 与第一预定顺序相反的顺序依次执行获取的逆命令即可。 0076 430、 按从当前提交点至提交点甲的后一提交点的顺序、 以及与各提交点对应的事 务的第一预定顺序相反的顺序依次执行获取的逆命令。 0077 例如, 第一设备按时间先后顺序依次生成提交点 1、 2、 3 和 4, 那么, 第。

30、一设备的当 前提交点为提交点 4, 若回退指令要求回到提交点 2 生成时的配置状态, 则要获取提交点 4 和提交点 3 对应的事务提交成功时保存的逆命令, 并先按与提交点 4 对应的事务的第一预 定顺序相反的顺序执行提交点 4 对应的事务提交时保存的逆命令, 再按与提交点 3 对应的 说 明 书 CN 102193780 A CN 102193787 A6/8 页 9 事务的第一预定顺序相反的顺序执行提交点 3 对应的事务提交时保存的逆命令。 0078 此处需要说明的是, 在从当前提交点至提交点甲的后一提交点的各提交点对应的 事务的各个逆命令之间不相依赖的情况下, 可以乱序执行步骤 420 中。

31、获取的逆命令, 而不 需要按从当前提交点至提交点甲的后一提交点的顺序、 以及与第一预定顺序相反的顺序依 次执行。 0079 此处需要说明的是, 第一设备执行步骤 430 之后, 还可以更新数据库中保存的第 一设备的历史配置状态为第一设备的当前配置状态, 以便于第一设备在掉电重启后能够恢 复回退之后的配置状态。 0080 本实施例中, 通过在当前配置状态的基础上执行多个提交点对应的事务提交时保 存的逆命令, 即可实现多次事务回退功能, 而现有技术中, 需要从备份的历史数据库中重新 加载配置状态, 时间开销较大, 因此, 本实施例耗费较少的时间开销即可实现多次事务回退 功能, 事务机制执行效率较高。

32、。 并且, 现有技术中, 为了实现多次事务回退机制, 需要备份多 个历史数据库, 而本实施例中, 可以不需要备份历史数据库, 只需要保存每次事务提交时获 取的逆命令即可, 更容易在诸如嵌入式设备等存储资源有限的系统环境下实现事务机制。 0081 为便于理解, 下面以实现两次回退的具体应用场景对图 4 所示实施例实现事务回 退功能的方法进行详细说明, 该具体应用场景的流程包括 : 0082 (1) 第一设备接收用户发送的回退指令, 该回退指令要求由当前提交点 ( 提交点 5) 回退到提交点 3 生成时的配置状态 ; 0083 (2) 获取从提交点 5 至提交点 4 的各提交点对应的事务提交时保存。

33、的逆命令 ; 0084 (3)按从提交点5至提交点4的顺序、 以及与各提交点对应的事务的第一预定顺序 相反的顺序依次执行获取的逆命令。 0085 假设提交点 5 对应的事务提交时按第一预定顺序执行的正命令依次为正命令 51、 52, 正命令 51、 52 对应的逆命令分别为逆命令 53、 54, 提交点 4 对应的事务提交时按第一预 定顺序执行的正命令依次为正命令 41、 42, 正命令 41、 42 对应的逆命令分别为逆命令 43、 44, 那么, 步骤 530 则为依次执行逆命令 54、 53、 44、 43。 0086 下面对本发明实施例中的相关设备进行详细说明。 0087 请参阅图 5。

34、, 本发明实施例中事务实现设备的一个实施例包括 : 0088 第一接收模块 510, 用于接收提交事务的请求 ; 0089 第一执行模块 520, 用于依次执行事务的每个正命令, 执行事务的正命令的顺序为 第一预定顺序 ; 0090 获取保存模块 530, 用于获取并保存每个正命令对应的逆命令, 逆命令为在正命令 被成功执行后, 能使配置恢复为该正命令被执行前的状态的对应命令 ; 0091 第二执行模块 540, 用于若事务的至少一个正命令执行失败, 则执行事务中已成功 执行的正命令对应的逆命令。 0092 第二执行模块 540 可以包括 : 0093 第一判断单元, 用于判断第一执行模块是否。

35、失败执行事务的至少一个正命令, 若 是, 则触发第一执行单元执行相关操作 ; 0094 第一执行单元, 用于按与第一预定顺序相反的顺序依次执行事务中已成功执行的 正命令对应的逆命令。 说 明 书 CN 102193780 A CN 102193787 A7/8 页 10 0095 获取保存模块 530 可以在第一执行模块 520 执行正命令之前, 根据该正命令的处 理逻辑推导获取并保存该正命令对应的逆命令, 并触发第一执行模块 520 执行该正命令。 0096 获取保存模块530也可以先保存第一执行模块520执行正命令之前的第一设备的 配置状态, 再在第一执行模块 520 成功执行正命令之后,。

36、 根据执行正命令之前的配置状态 以及正命令的处理逻辑推导获得并保存该正命令对应的逆命令。 0097 逆命令也可以通过查找预置的映射表的方式获得, 该映射表包括正命令与逆命令 的对应关系, 获取保存模块530也可以在第一执行模块520执行正命令之前, 根据第一接收 模块 510 接收的正命令查找映射表获得其对应的逆命令。 0098 第二执行模块 540 具体可以包括 : 0099 第二判断单元, 用于当第一执行模块 520 执行完一个正命令时, 判断是否成功执 行该正命令, 若是, 则触发获取保存模块 530 根据下一个正命令的处理逻辑推导获得并保 存该正命令对应的逆命令, 否则触发第二执行单元。

37、执行相关操作 ; 0100 第二执行单元, 用于按与第一预定顺序相反的顺序依次执行事务中已成功执行的 正命令对应的逆命令。 0101 或者, 第二执行模块 540 具体也可以包括 : 0102 第三判断单元, 用于当第一执行模块 520 依次执行完事务的所有正命令之后, 判 断是否失败执行事务的至少一个正命令, 若是, 则触发第二执行单元执行相关操作 ; 0103 第三执行单元, 用于按与第一预定顺序相反的顺序依次执行事务中已成功执行的 正命令对应的逆命令。 0104 进一步地, 本实施例中的事务实现设备还可以包括 : 0105 第一更新模块, 用于在第一执行模块 520 成功执行完事务的所有。

38、正命令之后, 更 新数据库中保存的第一设备的历史配置状态为第一设备的当前配置状态, 以便于设备在掉 电重启后能够恢复提交事务之前的配置状态。 0106 本实施例中, 在提交事务的过程中, 获取并保存事务的每个正命令对应的逆命令, 当提交事务失败时, 可以按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命 令对应的逆命令, 从而还原到提交事务之前的配置状态。 相对现有技术, 本实施例在提交事 务失败时, 无需从备份的历史数据库中重新加载配置状态, 而仅仅通过执行逆命令即可使 设备还原到提交事务之前的配置状态, 时间开销较小, 使得事务机制的执行效率较高。 0107 请参阅图 6, 图 6 。

39、为本发明实施例中事务实现设备的另一实施例的示意图, 相对于 图 5 所示实施例, 本实施例中进一步包括 : 0108 第二接收模块 610, 用于接收回退指令, 该回退指令要求回到提交点甲生成时的配 置状态 ; 0109 获取模块 620, 用于获取第一提交点段的各提交点对应的事务提交时保存的逆命 令, 第一提交点段为从当前提交点至提交点甲的后一提交点的提交点段 ; 0110 第三执行模块 630, 用于按从当前提交点至提交点甲的后一提交点的顺序、 以及与 各提交点对应的事务的第一预定顺序相反的顺序依次执行获取模块获取的逆命令。 0111 进一步地, 本实施例中的设备还可以包括 : 0112 。

40、第二更新模块, 用于在第三执行模块依次执行获取模块获取的逆命令之后, 更新 数据库中保存的第一设备的历史配置状态为第一设备的当前配置状态, 以便于设备在掉电 说 明 书 CN 102193780 A CN 102193787 A8/8 页 11 重启后能够恢复配置状态。 0113 本实施例中, 为了实现多次事务回退机制, 只需要保存每次事务提交时获取的逆 命令即可, 即使要进一步地使设备在掉电重启后能够恢复配置状态, 也只需要在每次提交 事务之前, 将设备当前的配置状态更新到数据库中, 因此, 数据库中只需要保存设备的一份 配置状态和多次事务对应的逆命令, 存储开销相对现有技术较小。 0114。

41、 请参阅图7, 图7为图6所示实施例的一具体应用场景中设备对数据库的使用示意 图, 如图 7 所示 : 0115 710、 用户向设备发送提交事务 1 的请求 ; 0116 720、 设备存储事务 1 的正命令对应的逆命令到数据库 ; 0117 730、 在成功提交事务 1 后, 设备更新数据库中保存的设备的历史配置状态为设备 的当前配置状态 ; 0118 740、 用户向设备发送提交事务 2 的请求 ; 0119 750、 设备存储事务 2 的正命令对应的逆命令到数据库 ; 0120 760、 在成功提交事务 2 后, 设备更新数据库中保存的设备的历史配置状态为设备 的当前配置状态 ; 01。

42、21 770、 用户向设备发送提交事务 3 的请求 ; 0122 780、 设备存储事务 3 的正命令对应的逆命令到数据库 ; 0123 790、 在成功提交事务 3 后, 设备更新数据库中保存的设备的历史配置状态为设备 的当前配置状态。 0124 本实施例在图 5 实施例的基础上, 通过在当前配置状态的基础上执行多个提交点 对应的事务提交时保存的逆命令, 即可实现多次事务回退功能, 而现有技术中, 需要从备份 的历史数据库中重新加载配置状态, 时间开销较大, 因此, 本实施例耗费较少的时间开销即 可实现多次事务回退功能, 事务机制执行效率较高。并且, 现有技术中, 为了实现多次事务 回退机制。

43、, 需要备份多个历史数据库, 而本实施例中, 可以不需要备份历史数据库, 只需要 保存每次事务提交时获取的逆命令即可, 更容易在诸如嵌入式设备等存储资源有限的系统 环境下实现事务机制。 0125 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成, 该程序可以存储于一计算机可读存储介质中, 存储 介质可以包括 : 只读内存 (ROM, Read-Only Memory)、 随机存取存储器 (RAM, Random Access Memory)、 磁盘或光盘等。 0126 以上对本发明实施例所提供的事务实现方法以及事务实现设备进行了详细介绍, 。

44、本文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施例的说明只是用 于帮助理解本发明的方法及其核心思想 ; 同时, 对于本领域的一般技术人员, 依据本发明的 思想, 在具体实施方式及应用范围上均会有改变之处, 综上所述, 本说明书内容不应理解为 对本发明的限制。 说 明 书 CN 102193780 A CN 102193787 A1/4 页 12 图 1 图 2 说 明 书 附 图 CN 102193780 A CN 102193787 A2/4 页 13 图 3 说 明 书 附 图 CN 102193780 A CN 102193787 A3/4 页 14 图 4 图 5 图 6 说 明 书 附 图 CN 102193780 A CN 102193787 A4/4 页 15 图 7 说 明 书 附 图 CN 102193780 A 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1