一种基于动态规划的快速数据同步方法

文档序号:8945819阅读:314来源:国知局
一种基于动态规划的快速数据同步方法
【技术领域】
[0001] 本发明涉及一种数据同步方法,尤其是涉及一种基于动态规划的快速数据同步方 法。
【背景技术】
[0002] 在C/S架构系统中,多个客户端都要从服务器获取数据,并保持与服务器的数据 同步。在复杂的网络环境下,从服务器传送数据到一个客户端可能要经过多个网络节点,这 必然就需要对网络传输路径进行规划。
[0003] 按照传统的方式,从服务器到客户端选择传输路径时,往往采取固定的几条路径, 当某一条路径出现故障时,再选择其他的路径,其效率不能保证,并且需要事先选择好固定 的路由,增加了工程实施的工作量。

【发明内容】

[0004] 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于动态规划 的数据同步方法,通过应用该算法解决多阶段最优决策问题,寻找最佳的传输路径,实现数 据的快速同步。
[0005] 本发明的目的可以通过以下技术方案来实现:
[0006] -种基于动态规划的快速数据同步方法,其特征在于,该方法包括以下步骤:
[0007] -种基于动态规划的快速数据同步方法,其特征在于,该方法包括以下步骤:
[0008] (1)数据源节点获取待同步的节点集合{Node。};
[0009](2)数据源节点遍历待同步的节点集合{Node。},向集合中的每一个待同步的节点 发送同步通知,包括时间戳、更新数据包大小和数据的MD5码;
[0010] (3)待同步的节点根据设定周期生成网络拓扑图;
[0011] (4)待同步的节点根据更新数据包大小随机休眠一段时间;
[0012] (5)获取与待同步的节点连通的节点集合{NodeJ;
[0013] (6)遍历集合{NodeJ,找到数据已经同步成功的节点集合{NodeJ;
[0014] (7)遍历集合{NodeJ,对集合中的每一个节点Noder,根据动态规划算法求出代价 函数值;
[0015] (8)代价函数值最小值对应的路径为最短传输路径,根据此路径进行数据传输;
[0016] (9)传输完成后,比对此次传输接收到的MD5码和接收到的同步通知中的MD5码, 若一致则结束本次传输,否则执行步骤(10);
[0017] (10)寻找次优路径进行数据传输,返回步骤(9)。
[0018] 所述的步骤(2)中所述的设定周期根据网络稳定性确定,对于不稳定的网络,周 期设定在〇. 5-5小时之间,对于稳定的网络,周期设定在8-48小时之间。
[0019] 所述的步骤(2)中网络拓扑图包括连通性和带宽信息。
[0020] 所述的步骤⑷中休眠时间sleepTime(单位为秒)与更新数据包大 小dataSize(单位为MB)具体关系为sleepTime=rand() %(unsignedint) (dataSize/10)+l〇
[0021] 所述的步骤(4)中休眠时间的上限为每IOMb-秒。
[0022] 所述的步骤(7)中动态规划算法具体包括以下子步骤:
[0023] (201)设所述的待同步的节点集合{Node。}中的一具体节点为Node。,将所述的已 经同步成功的节点Noc^和Node。之间划分为N个阶段,并将各阶段状态集合记为Si,其中 i= 1,2…N;
[0024] (202)判断i是否等于N,若是则执行步骤(203),否则执行步骤(204);
[0025] (203)计算代价函数值,计算公式为:
[0026
,其中Nodej是状态集合SN中的节点;
[0027] (204)计算代价函数值,计算公式为:
[0028]
,其中Node」是状态集合 Si中的节点;Node15是Node在下一阶段的后继节点。
[0029] 与现有技术相比,本发明具有如下优点:
[0030] (1)在数据同步时,解决了求解最优路径的问题,降低了数据同步的代价,提高了 数据同步的速度;
[0031] ⑵使用本发明的数据同步节点优先会从临近节点同步数据,无形中降低了服务 器的负载;
[0032] (3)当已规划的路径中有节点故障时,系统可以重新生成拓扑,动态跳过故障节 点,从次优路径同步数据。
【附图说明】
[0033] 图1为本发明网络拓扑结构示意图;
[0034] 图2为本发明基于动态规划的快速数据同步方法工作流程图;
[0035] 图3为本发明应用于有轨电车弱电集成系统的结构示意图。
【具体实施方式】
[0036] 下面结合附图和具体实施例对本发明进行详细说明。
[0037] 实施例
[0038] 本发明利用动态规划算法求解各个节点如何找到一条耗时最短的路径来同步数 据。如图1所示,S为数据源节点,节点413233』1、82、(:1、02、0是从节点3上获取数据 的节点。
[0039] 当节点S需要把数据同步到其他各节点时,整个工作流程如图2所示,具体描述如 下:
[0040] 步骤1 :数据源节点S获取待同步的节点集合{Node。}(对于不同的数据内容,待同 步的节点对象可能不同),执行步骤2 ;
[0041]步骤2 :数据源节点S遍历待同步的节点集合{Node。},向集合中的每一个待同步 的节点发送同步通知,包括时间戳、更新数据包大小和数据的MD5码,执行步骤3 ;
[0042] 步骤3:待同步的节点根据设定周期生成网络拓扑图,其中设定周期视网络稳定 性而定,对于不稳定的网络,同步周期可以设定在0. 5-5小时之间,而对于可靠的网络,周 期可以设定在8-48小时之间,网络拓扑图包括连通性和带宽信息等,执行步骤4 ;
[0043] 步骤4 :将待同步节点集合中的一个节点记为Node。,当Node。收到了数据源节点 S发送的同步通知时,待同步的节点根据更新数据包大小随机休眠一段时间,目的是防止所 有节点同时进行同步数据,休眠时间的上限为每IOMb-秒,执行步骤5 ;
[0044]步骤5 :获取与待同步的节点连通的节点集合{NodeJ,执行步骤6 ;
[0045]步骤6 :遍历集合{NodeJ,找到数据已经同步成功的节点集合{NodeJ,执行步骤 7 ;
[0046]步骤7 :遍历集合{NodeJ,对集合中的每一个节点Nodep根据动态规划算法,将 Node。和Node 间划分为4个阶段,并将各阶段状态记SS1,其中i= 1,2…N,执行步骤 8 ;
[0047] 步骤8 :将i赋值为N,执行步骤9 ;
[0048] 步骤9:判断i是否小于N,若是则执行步骤11,否则执行步骤10;
[0049] 步骤10 :计算代价函数值,计算公式为:
[0050
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1