一种云存储数据同步的方法及装置制造方法

文档序号:7815309阅读:170来源:国知局
一种云存储数据同步的方法及装置制造方法
【专利摘要】本发明公开了一种云存储数据同步的方法及装置,包括:用户端监控用户端的同步文件夹中的数据变动,并将数据变动的详细信息保存在用户端;用户端根据监控到的数据变动的详细信息计算同步推迟时间;用户端根据所述计算的同步推迟时间,向云存储服务器发送数据同步传输请求并传输变动数据,以使云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据。通过上述方法解决了现有技术云存储数据同步过程中的流量滥用问题,降低了数据同步过程中的网络开销,提升了用户体验。
【专利说明】—种云存储数据同步的方法及装置

【技术领域】
[0001]本发明涉及互联网与云计算领域,尤其涉及一种云存储数据同步的方法及装置。

【背景技术】
[0002]随着云计算技术的快速发展和互联网带宽的多次提速,电子数据的云端存储与普适访问最近几年终于成为可能。代表性的云存储服务如Dropbox、微软的OneDrive (2014年2 月之前称为 SkyDrive)、谷歌的 Google Drive、Box.com>Ubuntu One和 SugarSync、金山快盘、百度云盘、360云盘、115网盘、新浪微盘和酷盘等。这些服务中仅Dropbox —家就拥有超过I亿用户、日均新增和更新超过10亿个文件,此外由传统互联网巨头所支持的OneDrive、Google Drive、百度云盘和360云盘等则每家都拥有过亿用户。上述统计还不包括依赖于云存储服务的一系列衍生服务。云存储服务使得今天的互联网用户能够方便而可靠地存取和分享数据。不管用户身在何时何地、使用的是什么终端设备,如个人电脑、平板电脑或智能手机等,在云端存放的数据,如文档、图片、音乐或视频等,都能被自动地同步到所有该用户的在线设备和其他共享用户。也就是说,云存储服务提供了电子数据的普适访问,用户所做的数据变动都能自动反馈到云端、并被云端进一步推送到相关设备,从而极大地简化了数据的跨设备管理和一致性维护。
[0003]作为云存储服务的关键技术,数据同步操作通过一系列网络通信行为和本地计算行为、将用户端发生的数据变动自动映射到云端,为数据的可靠备份与灵活分享提供了坚实而便利的支撑。图1为云存储数据同步的原理示意图,如图1所示,在一个云存储服务中,用户通常需要指定一个特殊的文件夹,称为同步文件夹,并安装对应的云存储客户端软件,同步文件夹中发生的任何数据变动,如文件创建、文件删除、文件修改等,都会被客户端监控并同步到云存储服务器。具体来说,数据同步过程涉及到一系列的网络通信行为和本地计算行为,前者包括传输数据索引、数据内容、同步通知、同步状态和统计信息、同步确认等,后者包括数据切分、散列计算、数据比对等。整个数据同步过程中,最关键的开销在于:所有的网络通信行为都会消耗网络流量,我们称之为云存储数据同步流量。如果用户端只是偶尔产生几次数据变动,那么相应的数据同步流量是比较少的,不会给云存储系统带来什么负担。然而,随着云存储服务的不断流行,越来越多的用户端频繁产生数据变动,其出现场景可能是协同文档编辑、日志式文件添加、数据库共享等,那么相应的数据同步流量可能会十分巨大、甚至远远超出用户的预料。以Google Drive为例,如果用户每隔5秒钟向同步文件夹中写入5KB(千字节)的数据,那么在经过约1000秒之后,虽然总的数据变动量只有IMB (兆字节)大小,但是在典型民用网络环境下,所产生的数据同步流量却高达260MB左右!上述现象我们称之为云存储的数据同步流量滥用问题。
[0004]现有技术中,绝大部分现存工业云存储服务,如Dropbox、Box、Ubuntu One等,对上述流量滥用问题都没有采取任何措施,因此极大地损害了用户体验,同时加重了后台云存储系统的流量支出。另一方面,也有小部分工业云存储服务,如Google Drive,OneDrive和SugarSync,已经意识到了上述流量滥用问题,并且已经开发出故意推迟数据同步操作的方法以缓解这一问题。所谓故意推迟数据同步操作,就是说每当客户端发现用户端产生数据变动的时候,客户端并不急于立刻开始同步操作,而是会继续等待一段时间(T秒,称为同步推迟时间)。在这段等待时间内,如果用户端没有继续产生数据变动,那么客户端就开始同步操作;否则,客户端将继续等待T秒。对于Google Drive、OneDrive和SugarSync来说,它们的同步推迟时间并不相等但都是固定值,分别为4.2秒、10.5秒和6.0秒(由于测量环境的不稳定性,可能存在上下0.1秒的误差)。Google Drive的同步推迟时间过短,所以只要用户端的数据变动周期长于4.2秒,流量滥用问题就继续出现。OneDrive的同步推迟时间过长,给用户端带来了较长的同步时延,可能会影响到用户体验。事实上,无论同步推迟时间设定为多少秒,只要它是一个固定值,就不可能在不影响任何一方(云存储提供商以及云存储用户)的前提下很好地解决流量滥用问题。


【发明内容】

[0005]本发明提供一种云存储数据同步的方法及装置,以实现降低云存储数据同步过程中的网络流量开销的目的。
[0006]第一方面,本发明实施例提供了一种云存储数据同步的方法,包括:
[0007]用户端监控用户端的同步文件夹中的数据变动,并将数据变动的详细信息保存在用户端;
[0008]用户端根据监控到的数据变动的详细信息计算同步推迟时间;
[0009]用户端根据所述计算的同步推迟时间,向云存储服务器发送数据同步传输请求并传输变动数据,以使云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据。
[0010]进一步地,所述同步推迟时间不固定,由用户端数据变动频率决定,计算公式为:[0011 ] (Ti = min ( α X Ti^1+ β X Δ tj+ Y , Tmax)
[0012]其中,Ti为第i次同步推迟时间,IV1为第1-ι次同步推迟时间,Ati为第1-ι次数据变动和第i次数据变动之间的时间间隔,Tmax为同步推迟时间的上限;α,β,Y为权重常数,且 α + β = 1,α,β,Y e (O, I)。
[0013]进一步地,所述用户端监控用户端的同步文件夹中的数据变动之前,还包括:
[0014]在所述用户端上配置自适应同步推迟软件和云存储客户端软件,并在用户端开机时启动;
[0015]用户端上的自适应同步推迟软件监控同步文件夹中的数据变动,并实时将数据变动消息汇报给配置在用户端上的云存储服务客户端软件。
[0016]进一步地,所述云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据之前,还包括:
[0017]在云存储服务器上配置守护进程,并在所述云存储服务器开机时启动,用于监听用户端的数据同步传输请求。
[0018]第二方面,本发明实施例还提供了一种云存储数据同步的装置,包括:
[0019]数据变动监控模块,用于监控用户端的同步文件夹中的数据变动,并将数据变动的详细信息保存在用户端;
[0020]同步推迟时间计算模块,用于根据监控到的数据变动的详细信息计算同步推迟时间;
[0021]数据同步执行模块,用于根据所述计算的同步推迟时间,向云存储服务器发送数据同步传输请求并传输变动数据,以使云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据。
[0022]进一步地,所述同步推迟时间计算模块的计算公式为:
[0023](Ti = min ( α X Ti^1+ β X Δ tj+ Y , Tmax)
[0024]其中,Ti为第i次同步推迟时间,IV1为第1-Ι次同步推迟时间,Ati为第1-Ι次数据变动和第i次数据变动之间的时间间隔,Tmax为同步推迟时间的上限;α,β,Y为权重常数,且 α + β = 1,α,β,Y e (0,I)。
[0025]进一步地,所述的云存储数据同步的装置,还包括:
[0026]用户端配置模块,用于配置自适应同步推迟软件和云存储客户端软件,并在用户端开机时启动,自适应同步推迟软件监控同步文件夹中的数据变动,并实时将数据变动消息汇报给配置在用户端上的云存储服务客户端软件。
[0027]进一步地,所述的云存储数据同步的装置,还包括:
[0028]云存储服务器配置模块,用于配置守护进程,并在所述云存储服务器开机时启动,监听用户端的数据同步传输请求。
[0029]本发明通过根据监控到的数据变动的详细信息计算同步推迟时间,不固定同步推迟时间的长短,而是根据用户端数据变动的具体情况,实时自适应地动态调整同步推迟时间,解决了目前云存储服务普遍存在的流量滥用问题,有效降低了云存储数据同步的流量开销。

【专利附图】

【附图说明】
[0030]图1为现有技术云存储数据同步的原理示意图;
[0031]图2为本发明实施例一提供的一种云存储数据同步的方法的流程图;
[0032]图3为本发明实施例一提供的实现云存储数据同步的方法的示意图;
[0033]图4为本发明实施例二中的一种云存储数据同步的装置的结构示意图。

【具体实施方式】
[0034]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0035]实施例一
[0036]图2为本发明实施例一提供的一种云存储数据同步的方法的流程图,本实施例可适用于包括云存储服务器和至少一台用户端的系统架构中。用户端可以是个人电脑、平板电脑或者智能手机,操作系统可以是Windowns、Mac、Linux、1S、Android等。用户端通过数据同步操作将用户端发生的任何数据变动传输给云存储服务器。示例性的,本实施例为基于Linux操作系统下的实施方案,具体包括如下步骤:
[0037]步骤110、用户端监控用户端的同步文件夹中的数据变动,并将数据变动的详细信息保存在用户端;
[0038]具体地,在所述用户端上配置自适应同步推迟软件和云存储客户端软件,并在用户端开机时启动;用户端上的自适应同步推迟软件采用Linux内核文件系统调用inotify监控用户端的同步文件夹中的数据变动,并实时将数据变动消息汇报给配置在用户端上的云存储客户端软件。所述用户端的同步文件夹中的数据变动包括文件创建、文件删除、文件修改等。所述自适应同步推迟软件将每个数据变动的详细信息,包括数据变动的路径、变动发生时间、变动类型等,保存在用户端本地。
[0039]所述自适应同步推迟软件可以封装在相应的云存储服务器客户端中,也可以以中间件形式存在,独立安装在用户端。
[0040]步骤120、用户端根据监控到的数据变动的详细信息计算同步推迟时间;
[0041]所述同步推迟时间不固定,由用户端数据变动频率决定,计算公式为:
[0042]Ti = min ( α X Ti^1+ β X Δ tj+ Y , Tmax)
[0043]其中,Ti为第i次同步推迟时间,IV1为第1-Ι次同步推迟时间,Ati为第1-Ι次数据变动和第i次数据变动之间的时间间隔,Tmax为同步推迟时间的上限;α,β,Y为权重常数,且 α + β = 1,α,β,Y e (0,I)。
[0044]示例性地,所述用户端在第一次数据传输时,设置Ttl = O, At1 = O0为了不损害用户体验,同步推迟时间的上限Tmax设置为10S,权重常数Y的作用是保证Ti在较少的迭代步数中就略微超过数据变动的时间间隔,该实施例中α = β = Y =0.5,即,上次同步推迟时间值与此次用户端数据变动的时间间隔的权重相等,上次同步推迟时间值和此次用户端数据变动的时间间隔对于决定本次同步推迟时间具有同等的重要性。
[0045]具体地,所述配置在用户端上的自适应同步推迟软件根据用户端数据变动详细信息计算数据变动的时间间隔Ati,再根据公式Ti = min( α X Ti^1+β X Δ Y , Tmax)计算同步推迟时间,实时、自适应地调整同步推迟时间。如果用户端数据变动更加频繁,那么同步推迟时间自动缩短;如果用户端数据变动更加稀疏,那么同步推迟时间自动延长,但不会超过同步推迟时间的上限Tmax。
[0046]步骤130、用户端根据所述计算的同步推迟时间,向云存储服务器发送数据同步传输请求并传输变动数据,以使云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据。
[0047]在所述云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据之前,在云存储服务器上配置守护进程,如daemon,并在所述云存储服务器开机时启动,用于监听用户端的数据同步传输请求。
[0048]具体地,配置在所述用户端上的云存储客户端软件根据所述同步推迟时间,向云存储服务器发送数据同步传输请求,在所述云存储服务器接受所述数据同步传输请求后,采用数据同步工具,例如rsync,以差分传输的方式向云端服务器传输变动的数据。云存储服务器接收变动的数据后更新云存储服务器中的原有数据,完成数据同步操作。
[0049]所述差分传输方式是指只传输用户端同步文件夹与云存储服务器中不同的数据块,从而进一步较少了数据同步的流量开销。
[0050]图3为本发明实施例一提供的实现云存储数据同步的方法的原理示意图,如图3所示,该方法通过配置在用户端的自适应同步推迟软件监控本地同步文件夹中的数据变动,并向配置在用户端的云存储客户端软件发送数据变动消息,此时云存储客户端软件并不立即向云存储服务器传输变动数据,而是将数据变动的详细信息存储在用户端本地;所述自适应同步推迟软件根据数据变动的详细信息计算数据变动的时间间隔Ati以及同步推迟时间Ti,配置在用户端的云存储客户端软件根据同步推迟时间向云存储服务器发送数据同步传输请求,在配置在云存储服务器上的守护进程监听到数据同步传输请求并接受该请求后,配置在用户端的云存储客户端软件执行数据同步操作,所述云存储服务器更新存储的原有数据。
[0051]本发明实施例通过根据用户端数据变动的具体情况,实时、自适应地调整同步推迟时间,解决了现有技术中云存储数据同步的流量滥用问题,有效降低了数据同步过程中的网络开销,提升了用户体验。
[0052]实施例二
[0053]图4为本发明实施例二提供的一种云存储数据同步的装置的结构示意图。该装置包括:数据变动监控模块410,同步推迟时间计算模块420,数据同步执行模块430。
[0054]其中,数据变动监控模块410,用于监控用户端的同步文件夹中的数据变动,并将数据变动的详细信息保存在用户端;同步推迟时间计算模块420,用于根据监控到的数据变动的详细信息计算同步推迟时间;数据同步执行模块430,用于根据所述计算的同步推迟时间,向云存储服务器发送数据同步传输请求并传输变动数据,以使云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据。
[0055]所述的云存储数据同步的装置,还包括:用户端配置模块,用于配置自适应同步推迟软件和云存储客户端软件,并在用户端开机时启动,自适应同步推迟软件监控同步文件夹中的数据变动,并实时将数据变动消息汇报给配置在用户端上的云存储服务客户端软件。
[0056]所述的云存储数据同步的装置,还包括:云存储服务器配置模块,用于配置守护进程,并在所述云存储服务器开机时启动,监听用户端的数据同步传输请求。
[0057]具体地,所述同步推迟时间计算模块的计算公式为:
[0058]Ti = min ( α X Ti^1+ β X Δ tj+ Y , Tmax)
[0059]其中,Ti为第i次同步推迟时间,IV1为第1-Ι次同步推迟时间,Ati为第1-Ι次数据变动和第i次数据变动之间的时间间隔,Tmax为同步推迟时间的上限;α,β,Y为权重常数,且 α + β = 1,α,β,Y e (0,I)。
[0060]示例性地,所述用户端在第一次数据传输时,设置Ttl = O, At1 = O0为了不损害用户体验,同步推迟时间的上限Tmax设置为10S,权重常数Y的作用是保证Ti在较少的迭代步数中就略微超过数据变动的时间间隔,该实施例中α = β = Y =0.5,即,上次同步推迟时间值与此次用户端数据变动的时间间隔的权重相等,上次同步推迟时间值和此次用户端数据变动的时间间隔对于决定本次同步推迟时间具有同等的重要性。
[0061]具体地,所述配置在用户端上的自适应同步推迟软件根据用户端数据变动详细信息计算数据变动的时间间隔Ati,再根据公式Ti = min( α X Ti^1+β X Δ Y , Tmax)计算同步推迟时间,实时、自适应地调整同步推迟时间。如果用户端数据变动更加频繁,那么同步推迟时间自动缩短;如果用户端数据变动更加稀疏,那么同步推迟时间自动延长,但不会超过同步推迟时间的上限Tmax。
[0062]本实施了通过数据变动监控模块监控用户端的同步文件夹中的数据变动,并将数据变动的详细信息保存在用户端,同步推迟时间计算模块根据监控到的数据变动的详细信息计算同步推迟时间,数据同步执行模块根据所述计算的同步推迟时间向云存储服务器发送数据同步传输请求并传输变动数据,以使云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据,最终实现了用户端与云存储服务器的数据同步,解决了传统数据同步过程中的流量滥用问题,降低了网络开销,提高了用户体验。
[0063]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【权利要求】
1.一种云存储数据同步的方法,其特征在于,包括: 用户端监控用户端的同步文件夹中的数据变动,并将数据变动的详细信息保存在用户端; 用户端根据监控到的数据变动的详细信息计算同步推迟时间; 用户端根据所述计算的同步推迟时间,向云存储服务器发送数据同步传输请求并传输变动数据,以使云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据。
2.根据权利要求1所述的云存储数据同步的方法,其特征在于,所述同步推迟时间不固定,由用户端数据变动频率决定,计算公式为:
(Ti = min(a X Ti^1+β X Δ tj+y , Tmax) 其中,Ti为第i次同步推迟时间,IV1为第1-Ι次同步推迟时间,Ati为第1-Ι次数据变动和第i次数据变动之间的时间间隔,Tfflax为同步推迟时间的上限;α,β,Y为权重常数,且 α + β = I, α,β,y e (O, I)。
3.根据权利要求1所述的云存储数据同步的方法,其特征在于,所述用户端监控用户端的同步文件夹中的数据变动之前,还包括: 在所述用户端上配置自适应同步推迟软件和云存储客户端软件,并在用户端开机时启动; 用户端上的自适应同步推迟软件监控同步文件夹中的数据变动,并实时将数据变动消息汇报给配置在用户端上的云存储服务客户端软件。
4.根据权利要求1所述的云存储数据同步的方法,其特征在于,所述云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据之前,还包括: 在云存储服务器上配置守护进程,并在所述云存储服务器开机时启动,用于监听用户端的数据同步传输请求。
5.一种云存储数据同步的装置,其特征在于,包括: 数据变动监控模块,用于监控用户端的同步文件夹中的数据变动,并将数据变动的详细信息保存在用户端; 同步推迟时间计算模块,用于根据监控到的数据变动的详细信息计算同步推迟时间;数据同步执行模块,用于根据所述计算的同步推迟时间,向云存储服务器发送数据同步传输请求并传输变动数据,以使云存储服务器监听到数据同步传输请求后更新云存储服务器中的原有数据。
6.根据权利要求5所述的云存储数据同步的装置,其特征在于,所述同步推迟时间计算模块的计算公式为:
(Ti = min(a X Ti^1+β X Δ tj+y , Tmax) 其中,Ti为第i次同步推迟时间,IV1为第1-Ι次同步推迟时间,Ati为第1-Ι次数据变动和第i次数据变动之间的时间间隔,Tfflax为同步推迟时间的上限;α,β,Y为权重常数,且 α + β = I, α,β,y e (O, I)。
7.根据权利要求5所述的云存储数据同步的装置,其特征在于,还包括: 用户端配置模块,用于配置自适应同步推迟软件和云存储客户端软件,并在用户端开机时启动,自适应同步推迟软件监控同步文件夹中的数据变动,并实时将数据变动消息汇报给配置在用户端上的云存储服务客户端软件。
8.根据权利要求5所述的云存储数据同步的装置,其特征在于,还包括:云存储服务器配置模块,用于配置守护进程,并在所述云存储服务器开机时启动,监听用户端的数据同步传输请求。
【文档编号】H04L29/08GK104253868SQ201410496083
【公开日】2014年12月31日 申请日期:2014年9月24日 优先权日:2014年9月24日
【发明者】李振华, 刘云浩 申请人:无锡清华信息科学与技术国家实验室物联网技术中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1