实现配置事务的方法及设备技术

技术编号:2830827 阅读:238 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种实现配置事务的方法,该方法包括:创建候选数据库;控制候选数据库逐条执行配置事务的操作命令,如果操作命令执行失败,则删除候选数据库;如果成功执行配置事务的所有操作命令,则控制候选数据库用完成的配置事务更新运行数据库中的配置事务。本发明专利技术实施例还公开了一种实现配置事务的设备。本发明专利技术实施例方案实现了配置事务过程中的快速回退。

【技术实现步骤摘要】

本专利技术涉及操作与维护技术,尤其涉及实现配置事务的方法及设备
技术介绍
为了简化通讯设备的运行维护复杂度,并同时支持不同的应用场景和业 务发放,通讯设备的数据配置都要求能够支持配置事务机制。配置事务是客 户端发起的一系列配置操作的集合,该集合包括了为设备配置的数据,完成 配置事务后,便可将完成的配置事务应用到通讯设备生效。 一个配置事务由一条以上操作命令组成,每条操作命令包括对配置对象的增(Create)、删 (Delete)或改(Set)。运行数据库中保存当前通讯设备生效的配置事务的 数据, 一个配置事务内包含一个以上的数据库表。配置事务具有以下特点配置事务包括的所有操作命令要么全部执行成 功,要么全部不执行,例如,在执行配置事务的操作命令的过程中,如果某 一条操作命令执行失败,则该配置事务的执行全部失败,配置事务的这种特 性称为原子性;执行配置事务时,并行的各个配置事务是相互隔离的, 一个 配置事务内的操作及操作的数据不被其他配置事务感知,不受其他配置事务 的影响,配置事务的这种特性称为独立性。参见图1,为现有技术中实现配置事务的设备结构示意图,该设备包括 配置(CFG, Configuration)模块、运行数据库和緩存数据结构。CFG模块 用于接收客户端输入的配置事务的操作命令,控制运行数据库逐条执行操作 命令,所述操作命令为增/删/改(Create/Delete/Set)配置事务的数据库表中的 数据。配置事务的所有操作命令执行完毕后,CFG模块控制运行数据库将完 成的配置事务提交给应用设备,CFG模块控制应用设备在通讯设备上应用配置事务。在通讯设备中实现配置事务还通常采用基于逆操作的补偿事务机制。操作命令包括CREATE、 SET和DELETE3种,下面对这3种操作命令的逆操 作进行举例-说明。1.CREATE的逆操作以A对象的CREATE为例,假设A对象创建的属性值为al、 a2,表示 为[A, CREATE, al, a2 ]。则CREATE的逆操作为删除A对象创建的属性值al 、 a2,恢复到A对 象的原始状态,表示为[A, DELETE]。2.SET的逆才喿作以A对象的SET为例,假设A对象的原始属性值为al、 a2,将其修 改为新的属性值,a3、 a4,表示为[A, SET, a3, a4]。则SET的逆操作为将A对象的属性值a3、 a4 ,恢复到A对象的原始 属性值,al、 a2,表示为[A, SET, al, a2]。3.DELETE的逆才喿作以A对象的DELETE为例,嘴£设A对象删除之前的属性值为al, a2, 将其删除,表示为[A, DELETE]。则DELETE的逆操作为创建A对象的属性值al, a2,以恢复到A对象 的原始状态,表示为[A, CREATE, al,a2]。具体地,基于逆操作的补偿事务机制包括CFG模块控制运行数据库 从配置事务的第一条操作命令开始执行,如果某一条操作命令执行失败,则 需要将该配置事务的所有操作命令都进行回退操作,使运行数据库的配置事 务恢复到之前的原有状态,所述回退操作也就是逆操作。所述基于逆操作的补偿事务机制的实现过程为CFG模块控制运行数 据库逐条执行操作命令的同时,还控制緩存数据结构保存相应的操作命令以 及逆操作列表,所述逆操作列表中包括了各条操作命令执行前运行数据库中 保存的数据和执行后运行数据库中保存的数据之间的对应关系。进行回退操作时,根据逆操作列表中保存的对应关系,CFG模块控制运行数据库倒序逐条执行与緩存数据结构中保存的操作命令相逆的操作,将运行数据库中的数 据恢复到原有状态。所述倒序,也就是从缓存数据结构保存的逆操作列表中最后一条的数据对应关系指向第 一条数据对应关系的顺序。CFG模块控制运 行数据库将配置事务提交给应用设备后,将控制緩存数据结构删除保存的逆 操作列表以及相应的操作命令。下面举例对回退操作进行说明。假设配置事务为cmdl,包括以下的操作命令1. A对象创建属性值al 、 a2,该操作命令表示为[A, CREATE, al, a2]。 CFG模块控制运行数据库执行上述操作命令时,在运行数据库中A对象创建属性值al、 a2,同时,CFG模块控制逆操作列表中保存操作命令、 原始数据以及执行操作命令后的数据之间的对应关系,所述操作命令为 CREATE,所述原始数据为空,所述执行操作命令后的数据为al, a2。相应 地,其逆操作表示为[A, DELETE]。2. B对象将原始的属性值修改为bl、 b2, B对象原始的属性值为b3、 b4, 该操作命令表示为:[B, SET, bl, b2]。CFG模块控制运行数据库执行上述操作命令时,在运行数据库中B对 象将原始的属性值b3、 b4修改为bl、 b2,同时,CFG模块控制逆操作列表 中保存操作命令、原始数据以及执行操作命令后的数据之间的对应关系,所 述操作命令为SET,所述原始数据为b3、 b4,所述执行操作命令后的数据 为bl、 b2。相应地,其逆操作表示为[B, SET, b3, b4]。3. C对象将原始的属性值删除,C对象原始的属性值为cl、 c2,该操作 命令表示为[C,DELETE]。CFG模块控制运行数据库执行上述操作命令时,在运行数据库中C对 象将原始的属性值为cl、 c2删除,同时CFG模块控制逆操作列表中保存操 作命令、原始数据以及执行操作命令后的数据之间的对应关系,所述操作命 令为SET,所述原始数据为cl、 c2,所述执行操作命令后的数据为空。相应地,其逆操作表示为[C, CREATE, cl,c2]。 即,该配置事务包括下述3条操作命令1. [A, CREATE, al,a2],其逆操作为[A, DELETE]。2. [B, SET, bl,b2],其逆操作为[B, SET, b3, b4]。3. [C, DELETE],其逆操作为[C, CREATE, cl, c2]。 在逐条执行上述操作命令的过程中,若某条操作执行失败,则根据緩存数据结构中保存的逆操作列表,CFG模块控制运行数据库倒序逐条执行与緩 存数据结构中保存的操作命令相逆的操作,将运行数据库中的数据恢复到原 有状态。假设执行第一条操作命令[A, CREATE, al, a2]失败,则无需执行逆操作。假设执行第二条操作命令[B, SET, bl, b2]失败,则CFG模块控制运行数 据库执行第一条操作命令的逆操作,也就是[A, DELETE],在运行数据库 中A对象将创建的属性值al、 a2删除,运行数据库中的数据恢复到原有状 态。假设执行第三条操作命令[C, DELETE]失败,则CFG模块控制运行数据 库先执行第二条操作命令的逆操作,也就是[B, SET,b3,b4],在运行数据 库中B对象将原始的属性值bl、 b2修改为原始属性值b3、 b4;然后再执行 第一条操作命令的逆操作,也就是[A,DELETE],在运行数据库中A对象 将创建的属性值al、 a2删除,运行数据库中的数据恢复到原有状态。现有的配置事务补偿机制只能倒序逐条执行逆操作,以还原运行数据库 的原有状态,执行逆操作的时间与执行操作命令的时间相等,这导致了回退 速度慢,在很多应用环境下无法满本文档来自技高网...

【技术保护点】
一种实现配置事务的方法,其特征在于,该方法包括:创建候选数据库;控制候选数据库逐条执行配置事务的操作命令,如果操作命令执行失败,则删除候选数据库;如果成功执行配置事务的所有操作命令,则控制候选数据库用完成的配置事务更新运行数 据库中的配置事务。

【技术特征摘要】
1、一种实现配置事务的方法,其特征在于,该方法包括创建候选数据库;控制候选数据库逐条执行配置事务的操作命令,如果操作命令执行失败,则删除候选数据库;如果成功执行配置事务的所有操作命令,则控制候选数据库用完成的配置事务更新运行数据库中的配置事务。2、 如权利要求l所述的方法,其特征在于,所述控制候选数据库用完成的 配置事务更新运行数据库中的配置事务包括控制候选数据库用候选数据库中完成的配置事务替换运行数据库中的配置 事务;或者,控制候选数据库根据完成的配置事务,更新运行数据库保存的配置事务中 与候选数据库的配置事务中不同的数据。3、 如权利要求1或2所述的方法,其特征在于,所述控制候选数据库逐条 执行配置事务的操作命令之前,该方法包括控制运行数据库将保存的配置事务拷贝到候选数据库中。4、 如权利要求1或2所述的方法,其特征在于,所述在候选数据库中逐条 执行配置事务的操作命令之前,该方法包括根据客户端访问配置事务中的数据库表的规则,对配置事务中的数据库表 进行分类;将与客户端指定的配置事务中的数据库表类型对应的数据库表拷贝到候选 数据库中。5、 如权利要求l所述的方法,其特征在于,所述候选数据库中完成的配置 事务为两个以上候选数据库中分别完成的配置事务,所述控制候选数据库用完 成的配置...

【专利技术属性】
技术研发人员:侯越
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1