CN100336343C - 分布式***中保持多个数据副本一致性的方法 - Google Patents
分布式***中保持多个数据副本一致性的方法 Download PDFInfo
- Publication number
- CN100336343C CN100336343C CNB2004100804697A CN200410080469A CN100336343C CN 100336343 C CN100336343 C CN 100336343C CN B2004100804697 A CNB2004100804697 A CN B2004100804697A CN 200410080469 A CN200410080469 A CN 200410080469A CN 100336343 C CN100336343 C CN 100336343C
- Authority
- CN
- China
- Prior art keywords
- mouth
- succedaneum
- manager
- data
- control unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种分布式***中保持多个数据副本一致性的方法,通过扩充定义管理者与代理者之间的Qx接口和规定代理者的运行机制,实现后台管理者和位于设备侧的代理者、微控制单元之间的信息交流、协调,进而保证整个信息交互过程中、尤其在执行过程中有失败存在时的数据副本的一致性。本发明的核心在于代理者先缓存历史数据副本,待执行成功后再删除缓存的副本,如果执行失败,则根据缓存的数据副本进行一致性回滚处理。本发明所述的方法,从原理上完善了现有技术中一对多命令消息应答机制中存在的不足,避免了网管***与设备侧存在的数据副本不一致问题,从而避免了设备由于分布式***命令传递机制不完善而造成的网络运行安全隐患,保证了设备稳定可靠运行。
Description
技术领域
本发明涉及分布式通讯***,尤其涉及具有复杂的前后台分工的、前台必须依赖于后台的配置进行工作的分布式通讯***。
背景技术
传送网络(包括网管***)是一个复杂的大型分布式***,其典型的网络结构模型如图1所示,分为网管侧和设备侧两大部分;网管侧包括GUI(图形用户接口)、MANAGER(管理者)两部分,设备侧包括AGENT(代理者)、MCU(微控制单元)两部分;其中MANAGER同AGENT之间是一对多的关系,AGENT同MCU之间也是一对多的关系。在该分布式***中,GUI-MANAGER之间通过F口操作传递消息,MANAGER-AGENT之间通过Qx口操作传递消息,而AGENT同各个MCU(微控制单元)在同一背板上通过S口命令进行通讯。
传送网络根据网管***的配置进行工作,同时为了能脱离网管***而工作,网络在AGENT(代理者)和MCU(微控制单元)都保存有配置数据的副本,这样一来,***中实际上有三份网络配置数据,分别保存在网管侧的MANAGER(管理者)、AGENT(代理者)和MCU(微控制单元)。保证这三份数据的一致性是整个传送网络稳定可靠工作的基本前提。
最初网管和设备侧的工作过程为:图形用户接口将F口操作下发给管理者;管理者进行分析后将对应的一条或者多条Qx口操作下发给代理者并进行配置数据副本的保存;代理者收到Qx操作后进行分析,分别将对应的S口命令下发给微控制单元,并刷新自己的配置数据副本;微控制单元同样根据代理者下发的命令进行执行并刷新数据副本。这种方式我们称之为无应答工作方式。
无应答工作方式的特点是各个功能实体之间的操作消息传递不需要应答,只要命令发送了便认为是成功。优点是实现简单;最大的缺点是上游不知道下游的执行情况。由于在实际的网络配置过程中,导致的某个环节执行失败的异常情况不可能完全避免,因此往往会造成数据的不一致。为了改进这个缺点,现在网管和设备侧的工作过程一般为应答工作方式。
这种工作方式的特点是应答式的,即上游实体只有在收到正确的应答后才刷新命令对应的配置数据并下发下一条命令,而如果收到的是错误的应答,则停止进一步执行,并认为整个命令是失败的;只有当所有分解的命令都执行成功后才认为整个命令是成功的。应答的工作方式一定程度上保证了上下游信息的一致性。
仔细分析应答的工作方式,还是存在着设计上的先天不足:当图形用户接口下发给管理者的一个F口操作同时对应管理者下发给代理者的多个Qx口操作时,如果代理者执行过程中其中的一条Qx操作失败,管理者则认为整个F口操作失败;但是我们可以发现失败前代理者执行的Qx操作和对应的微控制单元执行的S口命令实际上已经成功了,那么对应的数据副本也得到了刷新;而管理者由于认为F口操作失败所以未进行任何的数据副本更新,所以导致了管理者、代理者、微控制单元的数据副本之间产生了部分不一致的现象。这种部分成功部分失败而导致的数据不一致情况在工程实际中是一个很大的安全隐患,可能会造成严重的不良影响。
发明内容
本发明的所要解决的问题就是现有技术中分布式***命令执行过程中部分成功部分失败而导致的各个数据副本数据不一致的问题,提出一种分布式***中保持多个数据副本一致性的方法。
分布式***中保持多个数据副本一致性的方法,包括下列处理过程:
管理者的处理过程:
步骤一、图形用户接口下发F口操作给管理者;
步骤二、管理者接收后进行分析,将该操作分拆成一条或多条到代理者的Qx口操作;
步骤三、管理者将带有序列号的Qx口操作依次下发给代理者;
步骤四、代理者依次接收并执行Qx口操作,每执行完毕一条Qx口操作后均向管理者反馈操作应答信息;
步骤五、如果管理者接收到代理者的操作失败应答,则返回错误的报文给图形用户接口,并结束本次F口操作;
步骤六、否则在收到本次F口操作的全部操作成功应答后更新本次F口操作在管理者处对应的数据副本,并返回执行成功的应答给图形用户接口,结束本次F口操作;
代理者的处理过程:
步骤A、代理者接收管理者下发的Qx口操作;
步骤B、代理者执行该Qx口操作之前,缓存本次Qx口操作会更改的数据的副本;
步骤C、代理者分析该Qx口操作,并拆分成相应的一条或者多条S口命令;
步骤D、代理者将S口命令依次下发给微控制单元;
步骤E、微控制单元依次接收并执行S口命令,每执行完毕一条S口命令后均向代理者反馈执行应答信息;
步骤F、如果代理者接收到本次Qx口操作所第对应的全部S口命令执行成功应答,则更新本次Qx口操作在代理者处对应的数据副本,向管理者返回本次Qx口操作成功应答;
步骤G、如果本次F口操作所对应的全部Qx口操作均在代理者处操作成功,则删除代理者缓存的数据副本;
步骤H、如果代理者接收到微控制单元的执行失败应答,则
H1:代理者向管理者返回本次Qx口操作失败应答;
H2:根据本次Qx口操作的序列号,确定本次F口操作在代理者所对应的所有Qx口操作,并确定代理者在本次F口操作过程中所缓存的所有数据副本;
H3:代理者恢复缓存的所有Qx口操作数据副本为实际的数据副本;
H4:代理者根据缓存的数据副本,构造对应的S口命令,并下发给微控制单元,恢复微控制单元的数据副本为本次F口操作之前的状态;
H5:代理者删除缓存的数据副本;
微控制单元的处理过程:
步骤I:微控制单元接收代理者下发的S口命令;
步骤II:微控制单元对接收到的S口命令进行分析,根据分析结果对设备执行相应的操作;
步骤III:如果执行成功,则更新命令所对应数据副本,向代理者返回执行成功的应答,结束本次S口命令执行;
步骤IV:如果执行失败,则向代理者返回执行失败的应答,结束本次S口命令执行。
上述的序列号在Qx口操作的报文头中进行标识。
本发明所述的方法,从原理上完善了现有技术中一对多命令消息应答机制中存在的不足,避免了网管***与设备侧存在的数据副本不一致问题,从而避免了设备由于分布式***命令传递机制不完善而造成的网络运行安全隐患,保证了设备稳定可靠运行。显然本发明也不局限于传送网络领域,本发明所述的方法还可应用于具有类似性质的其他分布式***中。
附图说明
图1是分布式传送网络的***结构示意图;
图2是本发明提出方法中管理者的处理流程图;
图3是本发明提出方法中代理者的处理流程图;
图4是本发明中代理者在S口命令执行异常时的工作流程图;
图5是本发明提出方法中微控制单元的处理流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。
图1是分布式传送网络的***结构示意图。如图1所示,分布式传送网络***包括图形用户接口、管理者、代理者、微控制单元四部分;其中管理者同代理者之间是一对多关系,代理者同微控制单元之间也是一对多的关系。一般地,称图形用户接口、管理者两部分为后台网管***,代理者、微控制单元两部分则是通讯设备的主体,数据副本分别保存在管理者、代理者和微控制单元三个部分。
图2是本发明提出方法中管理者的处理流程图。如图2所示,管理者的处理过程包括:1、图形用户接口下发一F口操作给管理者;2、管理者进行分析,将该命令分拆成一条或者多条到代理者的Qx口操作;3、管理者将Qx口操作依次下发给代理者,并在Qx操作报文中标明该操作的序列号,对最后一条命令,序列号为0xfefe;4、首先判断是否所有的Qx口操作都发送结束?5、如果没有结束,则将下一条Qx操作发送给代理者;6、如果全部结束,则更新本F口操作在管理者处对应的数据副本,并返回执行成功的应答给图形用户接口,结束本次F口操作。7、管理者收到代理者的应答;1)如果是成功的应答,则到步骤4;2)如果是失败的应答,则直接返回错误的报文给图形用户接口,并结束本次F口操作。其中,序列号可以在Qx口操作的报文头中进行标识,现有技术中Qx接口命令描述格式为:
命令源地址 | 命令目的地址 | 命令代码 | 命令唯一标识 | 命令执行结果 | 命令体长度 | 命令体 |
本发明中标识了序列号后的Qx接口命令描述格式为:
命令源地址 | 命令目的地址 | 命令代码 | 命令唯一标识 | 操作序列号 | 命令执行结果 | 命令体长度 | 命令体 |
图3是本发明提出方法中代理者的处理流程图。如图3所示,代理者的处理过程包括:1、代理者接收到管理者下发的Qx口操作;2、代理者执行该Qx口操作之前,首先缓存该Qx口操作会更改的数据的副本;3、代理者分析该Qx口操作,并拆分成相应的一条或者多条S口命令;4、代理者将S口命令依次发送给微控制单元;5、首先判断是否所有的S口操作都发送结束?6、如果没有结束,则将下一条S口命令发送给微控制单元;7、如果全部结束,则更新本Qx口操作在代理者处对应的数据副本,然后返回执行成功的应答给管理者;8、如果F口操作对应的全部Qx口操作都结束,则删除代理者缓存的Qx操作对应的数据。9、如果代理者接收到微控制单元的执行失败应答,则执行如图4所示的S口命令执行异常时的工作流程:1、首先返回管理者执行本Qx口操作失败的应答;2、根据Qx操作报文中的操作序列号,确定本次F口操作在代理者所对应的所有Qx操作,并确定代理者在本次F口操作过程中所缓存的所有数据副本;3、代理者恢复缓存的所有Qx口操作数据副本为***实际的数据副本;4、代理者根据缓存的数据副本,构造对应的S口命令,并下发给微控制单元,以恢复微控制单元的数据副本为本次F口操作之前的状态;5、代理者删除缓存的数据。
图5是本发明提出方法中微控制单元的处理流程图。如图5所示,微控制单元的处理过程包括:1、微控制单元接收到代理者下发的S口命令;2、微控制单元对S口命令进行分析,根据分析结果对设备进行相应的操作;3、如果执行成功,则更新命令对应数据副本,并返回成功的应答给代理者,结束本次S口明执行。4、如果执行失败,则返回失败的应答给代理者,并结束本次S口命令执行。
下面结合一个具体的实施例来说明本发明所述方法的详细实现。
结合图1所示的传送网络***,以一条图形用户接口下发的F口操作对应于三条管理者下发给代理者的Qx口操作,每一Qx口操作又对应于三条S口命令为假设,为了保证在异常发生时前后台数据副本的一致性,本发明的主要工作过程如下:
1、图形用户接口下发一F口配置操作到管理者,管理者进行分析,拆分、转换成三条到代理者的Qx操作;
2、管理者将操作的序列号在报文头中进行标识,并下发第一条Qx操作给代理者;
3、代理者收到管理者下发的Qx操作,(假设该Qx操作对应的数据副本为A,本次操作执行之前该数据副本为A1),首先缓存A1;
4、对该Qx操作进行分析,拆分、转换成三条到微控制单元的S口命令;
5、代理者按照顺序将第一条S口命令下发给对应的微控制单元;
6、对应的微控制单元收到代理者下发的S口命令进行执行,成功后更改自己的数据副本并返回给代理者成功的应答;
7、代理者收到微控制单元返回的成功应答,继续第二条S口命令的下发;
8、微控制单元收到第二条S口命令执行成功更新数据副本并返回成功;
9、代理者收到微控制单元返回的成功应答,继续第三条S口命令的下发;
10、微控制单元收到第三条S口命令执行成功更新数据副本并返回成功;
11、代理者收到微控制单元返回的成功应答,判断本次Qx操作对应的三条S口命令都执行成功,刷新自己的数据副本,则数据副本由A1更新为A2;然后上报管理者成功的应答,并结束本次Qx操作;
12、管理者收到代理者的第一条Qx操作成功应答,则继续下发第二条Qx口操作给代理者;
13、代理者收到管理者下发的第二条Qx操作,(假设该Qx操作对应的代理者处数据副本为B,本次操作执行之前该数据副本为B1),首先缓存B1;
14、第二条Qx操作同样对应三条S口命令;代理者发送第一条S口命令给微控制单元,微控制单元执行成功,更新数据副本并返回成功应答;
15、代理者收到成功的应答,发送第二条S口命令给对应的微控制单元;
16、微控制单元执行S口命令,由于设备的故障,该命令执行失败,于是返回错误的应答给代理者;
17、代理者收到微控制单元执行错误的应答,返回第二条Qx操作执行失败的应答给管理者;同时进行保证数据副本一致性的回滚处理:
1)代理者将第一条Qx口操作对应的数据由副本A2回滚为执行之前的A1;
2)以数据A1为基础,构造第一条Qx口操作对应的三条S口命令,并全部下发给微控制单元,以便恢复微控制单元上的数据副本为本次F口操作之前的状态;
3)以第二条Qx口对应的数据副本B1为基础,构造对应的S口命令,并将第一条下发给对应的微控制单元,恢复微控制单元上的数据副本;
18、管理者收到代理者的执行错误的应答信息,则不做任何数据的更新,直接将F口操作视为执行失败,返回给图形用户接口。
Claims (2)
1、分布式***中保持多个数据副本一致性的方法,其特征在于包括下列处理过程:
管理者的处理过程:
步骤一、图形用户接口下发F口操作给管理者;
步骤二、管理者接收后进行分析,将该操作分拆成一条或多条到代理者的Qx口操作;
步骤三、管理者将带有序列号的Qx口操作依次下发给代理者;
步骤四、代理者依次接收并执行Qx口操作,每执行完毕一条Qx口操作后均向管理者反馈操作应答信息;
步骤五、如果管理者接收到代理者的操作失败应答,则返回错误的报文给图形用户接口,并结束本次F口操作;
步骤六、否则在收到本次F口操作的全部操作成功应答后更新本次F口操作在管理者处对应的数据副本,并返回执行成功的应答给图形用户接口,结束本次F口操作;
代理者的处理过程:
步骤A、代理者接收管理者下发的Qx口操作;
步骤B、代理者执行该Qx口操作之前,缓存本次Qx口操作会更改的数据的副本;
步骤C、代理者分析该Qx口操作,并拆分成相应的一条或者多条S口命令;
步骤D、代理者将S口命令依次下发给微控制单元;
步骤E、微控制单元依次接收并执行S口命令,每执行完毕一条S口命令后均向代理者反馈执行应答信息;
步骤F、如果代理者接收到本次Qx口操作所第对应的全部S口命令执行成功应答,则更新本次Qx口操作在代理者处对应的数据副本,向管理者返回本次Qx口操作成功应答;
步骤G、如果本次F口操作所对应的全部Qx口操作均在代理者处操作成功,则删除代理者缓存的数据副本;
步骤H、如果代理者接收到微控制单元的执行失败应答,则
H1:代理者向管理者返回本次Qx口操作失败应答;
H2:根据本次Qx口操作的序列号,确定本次F口操作在代理者所对应的所有Qx口操作,并确定代理者在本次F口操作过程中所缓存的所有数据副本;
H3:代理者恢复缓存的所有Qx口操作数据副本为实际的数据副本;
H4:代理者根据缓存的数据副本,构造对应的S口命令,并下发给微控制单元,恢复微控制单元的数据副本为本次F口操作之前的状态;
H5:代理者删除缓存的数据副本;
微控制单元的处理过程:
步骤I:微控制单元接收代理者下发的S口命令;
步骤II:微控制单元对接收到的S口命令进行分析,根据分析结果对设备执行相应的操作;
步骤III:如果执行成功,则更新命令所对应数据副本,向代理者返回执行成功的应答,结束本次S口命令执行;
步骤IV:如果执行失败,则向代理者返回执行失败的应答,结束本次S口命令执行。
2、根据权利要求1所述的方法,其特征在于:所述的序列号在Qx口操作的报文头中进行标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100804697A CN100336343C (zh) | 2004-10-10 | 2004-10-10 | 分布式***中保持多个数据副本一致性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100804697A CN100336343C (zh) | 2004-10-10 | 2004-10-10 | 分布式***中保持多个数据副本一致性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1758604A CN1758604A (zh) | 2006-04-12 |
CN100336343C true CN100336343C (zh) | 2007-09-05 |
Family
ID=36703806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100804697A Expired - Fee Related CN100336343C (zh) | 2004-10-10 | 2004-10-10 | 分布式***中保持多个数据副本一致性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100336343C (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2260627B1 (en) | 2008-02-27 | 2012-01-11 | Nokia Corp. | Transport independent architecture |
CN101960792B (zh) | 2008-02-27 | 2014-05-28 | 诺基亚公司 | 用于多传输方式架构的缓冲器控制的方法、设备和*** |
CN102033786B (zh) * | 2010-11-04 | 2013-02-06 | 曙光信息产业股份有限公司 | 一种对象存储***中修复副本一致性的方法 |
CN102055799B (zh) * | 2010-12-09 | 2014-02-12 | 北京世纪互联宽带数据中心有限公司 | 内容刷新*** |
CN102317901B (zh) * | 2011-07-25 | 2013-09-11 | 华为技术有限公司 | 对象调整方法、装置及*** |
CN102347866A (zh) * | 2011-11-08 | 2012-02-08 | 迈普通信技术股份有限公司 | 网络管理中的数据配置***及配置方法 |
CN102609454B (zh) * | 2012-01-12 | 2013-09-18 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件***中的副本管理方法 |
CN103294787A (zh) * | 2013-05-21 | 2013-09-11 | 成都市欧冠信息技术有限责任公司 | 分布式数据库***的多副本存储方法和*** |
CN105550230B (zh) * | 2015-12-07 | 2019-07-23 | 北京奇虎科技有限公司 | 分布式存储***节点故障的侦测方法和装置 |
CN106375416B (zh) * | 2016-08-30 | 2019-08-09 | 北京航空航天大学 | 分布式数据存储***中一致性动态调整方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970488A (en) * | 1997-05-05 | 1999-10-19 | Northrop Grumman Corporation | Real-time distributed database system and method |
CN1482764A (zh) * | 2002-09-12 | 2004-03-17 | 深圳市中兴通讯股份有限公司 | 一种主备后台网管数据同步的方法 |
CN1503535A (zh) * | 2002-11-20 | 2004-06-09 | 华为技术有限公司 | 简单网络管理协议中数据包传送的可靠性保证方法 |
US20040186861A1 (en) * | 2003-01-17 | 2004-09-23 | Phatak Shirish Hemant | Method and system for use of storage caching with a distributed file system |
-
2004
- 2004-10-10 CN CNB2004100804697A patent/CN100336343C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970488A (en) * | 1997-05-05 | 1999-10-19 | Northrop Grumman Corporation | Real-time distributed database system and method |
CN1482764A (zh) * | 2002-09-12 | 2004-03-17 | 深圳市中兴通讯股份有限公司 | 一种主备后台网管数据同步的方法 |
CN1503535A (zh) * | 2002-11-20 | 2004-06-09 | 华为技术有限公司 | 简单网络管理协议中数据包传送的可靠性保证方法 |
US20040186861A1 (en) * | 2003-01-17 | 2004-09-23 | Phatak Shirish Hemant | Method and system for use of storage caching with a distributed file system |
Also Published As
Publication number | Publication date |
---|---|
CN1758604A (zh) | 2006-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100336343C (zh) | 分布式***中保持多个数据副本一致性的方法 | |
CN1859125A (zh) | 集中远程自动升级软件的***及其方法 | |
US20150277965A1 (en) | Incremental Parallel Processing of Data | |
CN1741492A (zh) | 控制组播数据转发的设备及方法 | |
CN108255621A (zh) | 一种基于binlog的MySQL增量消息解析方法 | |
CN106817253A (zh) | 日志文件的实时监控及报警的方法和*** | |
CN111737355A (zh) | 基于MongoDB元数据管理的异构数据源同步的方法及*** | |
CN1863080A (zh) | 一种告警管理方法和*** | |
CN103297477B (zh) | 一种数据采集上报***及数据处理方法和代理服务器 | |
CN1885786A (zh) | 一种数据更新***及方法 | |
CN102340537A (zh) | 一种分布式事务处理方法和装置 | |
CN105553685A (zh) | 一种监控网络设备是否在线的***和方法 | |
CN105933216A (zh) | 一种猪场消息管理*** | |
CN101060431A (zh) | 一种数据配置方法、***及操作维护中心 | |
CN1921443A (zh) | 多人协作同时排版的方法及*** | |
CN103810564A (zh) | 质检Addon管理*** | |
CN101046757A (zh) | 一种备份方法 | |
CN117082148A (zh) | 一种管理平台的数据接入方法及*** | |
WO2009147066A4 (en) | Synchronizing device error information among nodes | |
CN1835449A (zh) | 一种故障定位和故障排除方法和*** | |
CN106113045A (zh) | 可远程管理的画像机器人及其操作方法 | |
CN1825985A (zh) | 分布式管理***的消息跟踪方法 | |
CN113641758A (zh) | 一种基于实时数仓作数据采集的风控统计方法及装置 | |
CN107908370A (zh) | 数据存储方法及装置 | |
CN1819532A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070905 Termination date: 20131010 |