移动互联网快速数据同步方法与流程

文档序号:29791608发布日期:2022-04-23 17:47阅读:152来源:国知局
移动互联网快速数据同步方法与流程

1.本发明涉及一种数据同步方法,尤其涉及一种移动互联网快速数据同步方 法。


背景技术:

2.在移动互联网时代,移动终端的普及和人们对信息共享的需求极大地促进 了移动云下载、远程固件/程序包更新等技术的发展。但是,移动终端电池供 电,受电池容量限制,现有的数据同步算法常常导致大量的带宽和流量需求, 使得耗能过大。
3.现有技术中,对于客户终端和服务器终端的文件进行同步主要采用快速同 步算法,快速数据同步算法主要包括rsync算法及其改进算法。该算法由andrewtridgell在1996年提出,已经被集成到linux系统中,用于同步更新两处计 算机的档案与目录,其思路是利用差分编码以减少数据传输。前期研究表明, 对于内容相似性基本上与存储字节的相似性无关的文件(例如rar和exe), rsync算法的存在性能退化问题。
4.因此,为了解决上述技术问题,亟需提出一种新的技术手段。


技术实现要素:

5.有鉴于此,本发明的目的是提供一种移动互联网快速数据同步方法,能够 使得客户终端和服务器终端之间进行良好的数据同步,在同步过程中有效降低 终端的计算量,从而降低同步过程中的流量,并且具有较高的同步效率。
6.本发明提供的一种移动互联网快速数据同步方法,包括服务器终端和客户 终端,包括以下步骤:
7.s1.客户终端为待同步文件创建校验缓存表ta,并由客户终端向服务器终 端发起对待同步文件的同步请求;
8.s2.服务器终端接收同步请求,并根据待同步文件创建校验码表tb,服务 器终端将校验码表tb反馈至客户终端;
9.s3.客户终端接收校验码表tb,并根据校验缓存表ta和校验码表tb生成 差异校验表tc,且客户终端将差异校验表发送至服务器终端;
10.s4.服务器终端接收差异校验表tc,并查找差异校验表tc所对应的数据, 并将所查找到的数据发送至客户终端,完成同步。
11.进一步,对待同步文件的同步请求中须包括数据分块尺寸z。
12.进一步,校验缓存表ta按照如下方法创建:
13.客户终端将待同步文件按照数据分块尺寸z分割成若干个数据块;
14.计算每个数据块的校验码,并判断各数据块的校验码是否在客户端中存在, 如不存在,则将该校验码添加至校验缓存表ta中。
15.进一步,校验码表tb按照如下方法创建:
16.服务器终端将自身存储的最新版本的文件按照数据分块尺寸z分割成若干 个数据块;
17.计算每个数据块的校验码并将校验码添加至校验码表tb中。
18.进一步,校验码包括数据块的哈希值、校验值以及数据块在文件中的偏移 位置。
19.进一步,差异校验表tc按照如下方法生成:
20.客户终端获取校验码表tb中每个校验码的哈希值;
21.客户终端以校验码表tb中的校验码的哈希值作为关键字在校验缓存表ta 中搜索,如果校验缓存表ta中存有对应的哈希值,则不处理,否则,将该哈希 值所对应的校验码存入差异校验表tc中。
22.进一步,还包括步骤s5:
23.客户终端接收服务器终端发送的同步数据;
24.客户终端将同步数据更新至本地数据库中,并更新校验缓存表ta。
25.本发明的有益效果:通过本发明,能够使得客户终端和服务器终端之间进 行良好的数据同步,在同步过程中有效降低终端的计算量,从而降低同步过程 中的流量,并且具有较高的同步效率。
附图说明
26.下面结合附图和实施例对本发明作进一步描述:
27.图1为本发明的流程图。
具体实施方式
28.以下结合说明书附图对本发明做出进一步详细说明:
29.本发明提供的一种移动互联网快速数据同步方法,包括服务器终端和客户 终端,包括以下步骤:
30.s1.客户终端为待同步文件创建校验缓存表ta,并由客户终端向服务器终 端发起对待同步文件的同步请求;同步请求中须包括数据分块尺寸z;
31.s2.服务器终端接收同步请求,并根据待同步文件创建校验码表tb,服务 器终端将校验码表tb反馈至客户终端;
32.s3.客户终端接收校验码表tb,并根据校验缓存表ta和校验码表tb生成 差异校验表tc,且客户终端将差异校验表发送至服务器终端;
33.s4.服务器终端接收差异校验表tc,并查找差异校验表tc所对应的数据, 并将所查找到的数据发送至客户终端,完成同步。其中,校验缓存表ta和校验 码表tb均为校验码组成,其中,校验码包括数据块的哈希值、校验值以及数据 块在文件中的偏移位置,即校验码cd=《hashidi,checki,offseti》,其中,i表 示第i个数据块,offseti是第i个数据块在文件中的偏移位置,checki为第i个 数据块的校验值,hashidi为第i个数据块的哈希值,其中,校验值采用校验函 数计算,比如md5函数,当然,其它现有的校验函数也可;哈希值采用哈希函 数计算,比如线性探查哈希函数hash(x)=(x+11)mod199,当然,现有的其 他哈希函数也可以用于本发明中;通过上述方法,能够使得客户终端和服务器 终端之间进行良好的数据同步,在同步过程中有效降低终端的计算量,即不会 重复计算校验码,并且校验码在传输过程中传输次数大大减少,减少重复数据 的传输,从而降低同步过程中的流量,并且具有较高的同步效率,实现高效、 快速的数据同步。
34.本实施例中,校验缓存表ta按照如下方法创建:
35.客户终端将待同步文件按照数据分块尺寸z分割成若干个数据块;
36.计算每个数据块的校验码,并判断各数据块的校验码是否在客户端中存在, 如不存在,则将该校验码添加至校验缓存表ta中。
37.校验码表tb按照如下方法创建:
38.服务器终端将自身存储的最新版本的文件按照数据分块尺寸z分割成若干 个数据块;
39.计算每个数据块的校验码并将校验码添加至校验码表tb中。
40.差异校验表tc按照如下方法生成:
41.客户终端获取校验码表tb中每个校验码的哈希值;
42.客户终端以校验码表tb中的校验码的哈希值作为关键字在校验缓存表ta 中搜索,如果校验缓存表ta中存有对应的哈希值,则不处理,否则,将该哈希 值所对应的校验码存入差异校验表tc中。通过上述方法,利于数据同步,并且 基于哈希值进行数据检索,能够提升检索速度以及效率,并且降低数据同步过 程中不必要的数据传输,从而降低同步数据的流量使用以及数据所占用的带宽 资源。
43.本实施例中,还包括步骤s5:
44.客户终端接收服务器终端发送的同步数据;
45.客户终端将同步数据更新至本地数据库中,并更新校验缓存表ta,通过该 方法,利于下次同步操作。
46.下面采用一个实例对本发明做出进一步详细说明:
47.设定客户端上有一个文件大小为108bit。设定服务器上的有该文件的一个 新版本,与客户端上文件的大小相同,但存在一个数据块内容有差异。客户端 按(z=106bit)对本地文件进行分割,得到100个数据块,分别计算校验码, 则本地校验缓存表ta中包含100个项。客户端向服务器请求同步时,校验码表 tb包含100项校验码。根据假设,差异校验表tc中只包含1项校验码。服务 器按照差异校验表tc向客户端发送相应的1项数据块,客户端接收该数据块, 更新到本地文件中,并更新校验缓存表,为下次同步做好准备。
48.从上述实例可以看出,客户端与服务器端为传输校验码表tb和差异校验表 tc的通信开销为101*128bit=140,928bit。服务器发送的1项数据块通信开销 为106bit。所述的快速数据同步方法节省的通信开销约为1
‑ꢀ
(140,928bit+106bit)/108bit≈98.9%。
49.最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管 参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解, 可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的 宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1