CN102193780A - 事务实现方法以及事务实现设备 - Google Patents
事务实现方法以及事务实现设备 Download PDFInfo
- Publication number
- CN102193780A CN102193780A CN2010101220301A CN201010122030A CN102193780A CN 102193780 A CN102193780 A CN 102193780A CN 2010101220301 A CN2010101220301 A CN 2010101220301A CN 201010122030 A CN201010122030 A CN 201010122030A CN 102193780 A CN102193780 A CN 102193780A
- Authority
- CN
- China
- Prior art keywords
- affairs
- order
- ordering
- execution
- contrary
- 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
Images
Abstract
本发明实施例公开了一种执行效率较高的事务实现方法,包括:第一设备接收提交事务的请求;按第一预定顺序依次执行所述事务的每个正命令;获取并保存每个正命令对应的逆命令,在正命令被执行后执行其对应的逆命令能使第一设备恢复为该正命令被执行前的配置状态;若事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。本发明实施例还提供相应的事务实现设备。本发明实施例中,仅仅通过执行逆命令,即可实现事务回滚功能,无需从备份的历史数据库中重新加载配置状态,时间开销较小,执行效率较高。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种事务实现方法以及事务实现设备。
背景技术
嵌入式设备都支持用户通过各种命令对其进行配置。在配置过程中,用户往往希望一组命令具有事务的原子性,即这组命令要么在设备上同时生效、要么同时失败,设备将这组命令看作一次事务。
为了实现事务的原子性,设备在提交一次事务之前,首先将存储着自身当前配置状态的数据库备份成历史数据库,再按照预定顺序依次执行本次事务中的各个命令并检查它们返回的执行情况;若检查到命令成功执行,则继续执行下一个命令,否则删除当前数据库后将当前数据库切换成之前备份的历史数据库,并重新从切换后的当前数据库中加载配置状态,从而覆盖掉本次事务中已成功执行的命令对设备当前配置状态造成的更改,即实现事务回滚功能。
在对现有技术的研究和实践过程中,本发明的发明人发现,为了实现事务回滚功能,在事务提交失败时,需要从备份的历史数据库中重新加载配置状态,需要耗费较多的时间开销。由此可见,现有技术中的事务实现方法的执行效率较低。
发明内容
本发明实施例提供一种执行效率较高的事务实现方法以及事务实现设备。
本发明实施例提供了一种事务实现方法,包括:
接收提交事务的请求;
依次执行所述事务的每个正命令,执行所述事务的正命令的顺序为第一预定顺序;
获取并保存每个正命令对应的逆命令,所述逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;
若所述事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。
本发明实施例还提供了一种事务实现设备,包括:
第一接收模块,用于接收提交事务的请求;
第一执行模块,用于依次执行所述事务的每个正命令,执行所述事务的正命令的顺序为第一预定顺序;
获取保存模块,用于获取并保存每个正命令对应的逆命令,所述逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;
第二执行模块,用于若所述事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。
从以上技术方案可以看出,本发明实施例具有如下有益效果:
本发明实施例中,在提交事务的过程中,获取并保存事务的每个正命令对应的逆命令,当提交事务失败时,可以按与第一预定顺序相反的顺序依次执行事务中已成功执行的正命令对应的逆命令,从而还原到提交事务之前的配置状态,实现事务回滚功能,相对现有技术,本发明实施例中,仅仅通过执行逆命令,即可实现事务回滚功能,无需从备份的历史数据库中重新加载配置状态,时间开销较小,执行效率较高。
附图说明
图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)、磁盘或光盘等。
以上对本发明实施例所提供的事务实现方法以及事务实现设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种事务实现方法,其特征在于,包括:
接收提交事务的请求;
依次执行所述事务的每个正命令,执行所述事务的正命令的顺序为第一预定顺序;
获取并保存每个正命令对应的逆命令,所述逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;
若所述事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。
2.根据权利要求1所述的事务实现方法,其特征在于,执行所述事务中已成功执行的正命令对应的逆命令,具体包括:
按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令。
3.根据权利要求2所述的事务实现方法,其特征在于:在执行每个正命令之前,根据该正命令的处理逻辑推导获得并保存该正命令对应的逆命令。
4.根据权利要求3所述的事务实现方法,其特征在于,所述若事务的至少一个正命令执行失败,则按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令,具体包括:
当执行完一个正命令时,判断是否成功执行该正命令;
若否,则停止执行下一个正命令,并按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令。
5.根据权利要求1至4中任一项所述的事务实现方法,其特征在于,所述方法还包括:
在成功执行完事务的所有正命令之后,更新数据库中保存的历史配置状态为第一设备的当前配置状态。
6.根据权利要求1所述的事务实现方法,其特征在于,所述方法还包括:
接收回退指令,所述回退指令要求回到提交点甲生成时的配置状态;
获取从当前提交点至所述提交点甲的后一提交点的各提交点对应的事务提交时保存的逆命令;
执行获取的逆命令。
7.一种事务实现设备,其特征在于,包括:
第一接收模块,用于接收提交事务的请求;
第一执行模块,用于依次执行所述事务的每个正命令,执行所述事务的正命令的顺序为第一预定顺序;
获取保存模块,用于获取并保存每个正命令对应的逆命令,所述逆命令为在正命令被成功执行后,能使配置恢复为该正命令被执行前的状态的对应命令;
第二执行模块,用于若所述事务的至少一个正命令执行失败,则执行所述事务中已成功执行的正命令对应的逆命令。
8.根据权利要求7所述的事务实现设备,其特征在于,第二执行模块包括:
第一判断单元,用于判断第一执行模块是否失败执行所述事务的至少一个正命令,若是,则触发第一执行单元执行相关操作;
第一执行单元,用于按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令。
9.根据权利要求7所述的事务实现设备,其特征在于,获取保存模块在第一执行模块执行正命令之前,根据该正命令的处理逻辑推导获取并保存该正命令对应的逆命令,并触发第一执行模块执行该正命令。
10.根据权利要求9所述的事务实现设备,其特征在于,第二执行模块包括:
第二判断单元,用于当第一执行模块执行完一个正命令时,判断是否成功执行该正命令,若是,则触发获取保存模块根据下一个正命令的处理逻辑推导获得并保存该正命令对应的逆命令,否则触发第二执行单元执行相关操作;
第二执行单元,用于按与第一预定顺序相反的顺序依次执行所述事务中已成功执行的正命令对应的逆命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101220301A CN102193780A (zh) | 2010-03-08 | 2010-03-08 | 事务实现方法以及事务实现设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101220301A CN102193780A (zh) | 2010-03-08 | 2010-03-08 | 事务实现方法以及事务实现设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102193780A true CN102193780A (zh) | 2011-09-21 |
Family
ID=44601903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101220301A Pending CN102193780A (zh) | 2010-03-08 | 2010-03-08 | 事务实现方法以及事务实现设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102193780A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521023A (zh) * | 2011-11-21 | 2012-06-27 | 华为软件技术有限公司 | 一种多系统的事务集成处理方法及系统 |
CN103838780A (zh) * | 2012-11-27 | 2014-06-04 | 阿里巴巴集团控股有限公司 | 数据库的数据恢复方法及相关的设备 |
CN105117304A (zh) * | 2015-07-29 | 2015-12-02 | 北京京东尚科信息技术有限公司 | 一种基于MariaDB的数据库恢复的系统和方法 |
CN107273059A (zh) * | 2017-07-06 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种存储命令的配置方法及系统 |
WO2017219775A1 (zh) * | 2016-06-22 | 2017-12-28 | 中兴通讯股份有限公司 | 一种配置状态回退方法、装置和计算机存储介质 |
CN110413447A (zh) * | 2019-06-27 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种大数据集群复位重装方法及系统 |
CN110765144A (zh) * | 2019-10-11 | 2020-02-07 | 口碑(上海)信息技术有限公司 | 分布式异构数据库数据处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1423192A (zh) * | 2001-12-05 | 2003-06-11 | 微软公司 | 利用配置管理器的回滚与安全特性在移动计算设备上安装软件 |
CN101197698A (zh) * | 2006-12-06 | 2008-06-11 | 中兴通讯股份有限公司 | 一种简单网络管理协议管理应用层事务回滚方法 |
-
2010
- 2010-03-08 CN CN2010101220301A patent/CN102193780A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1423192A (zh) * | 2001-12-05 | 2003-06-11 | 微软公司 | 利用配置管理器的回滚与安全特性在移动计算设备上安装软件 |
CN101197698A (zh) * | 2006-12-06 | 2008-06-11 | 中兴通讯股份有限公司 | 一种简单网络管理协议管理应用层事务回滚方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521023A (zh) * | 2011-11-21 | 2012-06-27 | 华为软件技术有限公司 | 一种多系统的事务集成处理方法及系统 |
CN103838780A (zh) * | 2012-11-27 | 2014-06-04 | 阿里巴巴集团控股有限公司 | 数据库的数据恢复方法及相关的设备 |
CN105117304A (zh) * | 2015-07-29 | 2015-12-02 | 北京京东尚科信息技术有限公司 | 一种基于MariaDB的数据库恢复的系统和方法 |
WO2017219775A1 (zh) * | 2016-06-22 | 2017-12-28 | 中兴通讯股份有限公司 | 一种配置状态回退方法、装置和计算机存储介质 |
CN107528709A (zh) * | 2016-06-22 | 2017-12-29 | 中兴通讯股份有限公司 | 一种配置状态回退方法和装置 |
CN107273059A (zh) * | 2017-07-06 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种存储命令的配置方法及系统 |
CN110413447A (zh) * | 2019-06-27 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种大数据集群复位重装方法及系统 |
CN110765144A (zh) * | 2019-10-11 | 2020-02-07 | 口碑(上海)信息技术有限公司 | 分布式异构数据库数据处理方法及装置 |
CN110765144B (zh) * | 2019-10-11 | 2022-02-18 | 口碑(上海)信息技术有限公司 | 分布式异构数据库数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102193780A (zh) | 事务实现方法以及事务实现设备 | |
KR102006513B1 (ko) | 공유 볼륨의 어플리케이션 일관된 스냅샷 기법 | |
CN100550766C (zh) | 预定任务执行方法和管理任务执行方法、及其终端设备 | |
CN102902561B (zh) | 数据存储方法及数据存储系统 | |
CN103581225A (zh) | 分布式系统中的节点处理任务的方法 | |
CN102098182B (zh) | 分布式设备的配置恢复方法及分布式设备 | |
GB2507604A (en) | Rack and method thereof for simultaneously updating basic input output systems | |
CN106469069B (zh) | 一种版本升级方法及系统 | |
CN115562911B (zh) | 虚拟机数据备份方法及装置、系统、电子设备、存储介质 | |
CN103369660A (zh) | 网元数据同步方法和网元设备 | |
CN110716793A (zh) | 一种分布式事务的执行方法、装置、设备及存储介质 | |
CN103440204B (zh) | 一种更新文件系统的方法和存储设备 | |
CN109324549B (zh) | 一种双主控设备配置方法及双主控设备 | |
CN109508261B (zh) | 一种基于大数据的电网数据节点备份方法及备份系统 | |
US11604635B2 (en) | Online program updating method | |
CN104753992A (zh) | 一种数据存储、虚拟平台故障恢复的方法、设备和系统 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
US8819481B2 (en) | Managing storage providers in a clustered appliance environment | |
CN110247937B (zh) | 弹性存储系统共享文件管理、访问方法及相关设备 | |
US20180246788A1 (en) | Method and apparatus for recovering in-memory data processing system | |
CN103714059A (zh) | 一种更新数据的方法及装置 | |
CN106204031A (zh) | 卡应用处理方法及装置 | |
CN113590049B (zh) | 一种存储卷跨节点克隆的方法、装置、设备及可读介质 | |
US20230062858A1 (en) | Volume remote copy based on application priority | |
CN106250266B (zh) | 一种系统的修复方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110921 |