CN105721526A - 一种终端、服务器文件同步的方法及装置 - Google Patents
一种终端、服务器文件同步的方法及装置 Download PDFInfo
- Publication number
- CN105721526A CN105721526A CN201410728306.9A CN201410728306A CN105721526A CN 105721526 A CN105721526 A CN 105721526A CN 201410728306 A CN201410728306 A CN 201410728306A CN 105721526 A CN105721526 A CN 105721526A
- Authority
- CN
- China
- Prior art keywords
- server
- data block
- stripping
- terminal
- identifier
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种终端、服务器文件同步的方法及装置,包括根据当前网络可用带宽以及终端的冗余清除能力和处理开销从终端的切块方案列表中选取切块方案;根据切块方案将待同步的文件切分成多个数据块;对每个数据块创建标识符,并将该标识符发送至服务器;服务器接收该标识符,将其与其上各数据块对应的标识符进行比较,确定该标识符对应的数据块是否存在于服务器中,将确定结果反馈至终端;终端根据反馈将待同步文件同步至服务器。采用本发明实施例提供的技术方案,动态的选择切块方案对待同步文件切分,确保了数据同步时间最短,提高了同步效率。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种终端、服务器文件同步的方法及装置。
背景技术
现在的智能终端处理能力越来越强,用户也越来越多的使用智能终端,这就使得在不同的终端上存放了大量的个人信息。随着个人用户越来越注重个人数据的管理和迁移,设备间数据的交互显得越来越重要,传统的网盘服务已不能够适应新的要求和新的发展。
个人云存储服务,例如Dropbox,OneDrive以及GoogleDrive,为用户提供了一种方便快捷的同步多个设备上数据的方式,能够提供不同的终端之间的数据管理和交互,本地数据和云端的同步保证了用户账户数据的一致性。
在个人云存储服务中,同步效率是一个非常重要的问题。同步效率指的是文件变更(文件添加、删除或被修改等)从本地被同步到云端的快慢程度。现有的提高同步效率的方法往往运用于计算、存储资源丰富的大型服务器之间。而个人终端的计算能力和存储能力都远不如大型服务器,这就使得现有的针对大型服务器的云同步技术方案并不适用于资源受限的个人终端。
现有技术的不足在于:现有技术中缺乏面向个人终端的较高同步效率的实现数据同步的技术方案。
发明内容
本发明实施例中所解决的技术问题在于提供了一种终端、服务器文件同步的方法及装置,用以解决个人终端数据同步时同步效率不高的问题。
本发明实施例中提供了一种终端文件同步的方法,包括步骤:
根据当前网络可用带宽以及终端的冗余清除能力和处理开销从终端的切块方案列表中选取切块方案,所述切块方案列表与服务器侧的切块方案列表相同;
根据切块方案将待同步的文件切分成多个数据块;
针对所述多个数据块中的每一个分别创建标识符;
将每个数据块对应的标识符发送至服务器;
在接收到服务器的反馈后,根据所述反馈将待同步文件同步至服务器。
本发明实施例中提供了一种终端文件同步的装置,包括:
切块方案选取模块,用于根据当前网络可用带宽以及终端的冗余清除能力和处理开销从终端的切块方案列表中选取切块方案,所述切块方案列表与服务器侧的切块方案列表相同;
切分模块,用于根据切块方案将待同步的文件切分成多个数据块;
标识符创建模块,用于针对所述多个数据块中的每一个分别创建标识符;
发送模块,用于将每个数据块对应的标识符发送至服务器;
同步模块,用于在接收到服务器的反馈后,根据所述反馈将待同步文件同步至服务器。
本发明实施例中提供了一种服务器文件同步的方法,包括步骤:
接收终端发送的多个标识符,所述多个标识符分别与多个数据块一一对应,所述数据块是终端根据切块方案对待同步文件进行切分得到的;
将所述多个标识符分别与服务器中的标识符进行比较,所述服务器中的标识符分别与服务器中的多个数据块一一对应,所述服务器中的多个数据块是服务器根据切块方案对服务器中存储的文件进行切分得到的,所述切块方案与终端侧的切块方案相同;
确定所述多个标识符对应的数据块是否存在于服务器中;
将确定结果反馈至终端;
根据终端的同步得到同步文件。
本发明实施例中提供了一种服务器文件同步的装置,包括:
接收模块,用于接收终端发送的多个标识符,所述多个标识符分别与多个数据块一一对应,所述数据块是终端根据切块方案对待同步文件进行切分得到的;
比较模块,用于将所述多个标识符分别与服务器中的标识符进行比较,所述服务器中的标识符分别与服务器中的多个数据块一一对应,所述服务器中的多个数据块是服务器根据切块方案对服务器中存储的文件进行切分得到的,所述切块方案与终端侧的切块方案相同;
确定模块,用于确定所述多个标识符对应的数据块是否存在于服务器中;
反馈模块,用于将确定结果反馈至终端;
文件同步模块,用于根据终端的同步得到同步文件。
本发明的有益效果是:
本发明实施例提供的技术方案中,根据当前网络可用带宽以及终端的冗余清除能力和处理开销动态地从终端的切块方案列表中选取切块方案,按照切块方案将待同步的文件切分成数据块,将代表数据块的标识符发送至服务器,最后根据服务器反馈进行文件同步。利用本发明实施例提供的切块方式能够确保数据同步时间最短,提高了同步效率。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1为本发明实施例中终端、服务器文件同步方法实施的示意图;
图2为本发明实施例中终端文件同步方法的流程示意图;
图3为本发明实施例中数据块的结构示意图;
图4为本发明实施例中终端文件同步的装置的结构示意图;
图5为本发明实施例中服务器文件同步方法的流程示意图;
图6为本发明实施例中服务器文件同步的装置的结构示意图;
图7为本发明实施例中文件同步实例的流程示意图。
具体实施方式
为了使本发明实施例中的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
针对现有技术的不足,本发明实施例中提供了一种终端、服务器文件同步的方法及装置,来实现以较高的同步效率实现个人终端与服务器间的数据同步。下面进行说明。
图1为本发明实施例中终端、服务器文件同步方法实施的示意图,如图所示,当用户对终端上同步文件夹中的文件进行添加、修改等操作时,即同步文件夹中的文件发生了改变,此时需要将同步文件夹中改变的文件同步至服务器。通过分块器对待同步文件进行切分,索引器创建数据块对应的索引,终端将索引信息发送至服务器,服务器比对后将比对结果反馈至终端,终端将待同步文件同步至服务器。上述仅为本发明实施例中终端、服务器文件同步方法的简单示意,具体的过程下面进行描述。
图2为本发明实施例中终端文件同步方法实施的流程示意图,如图所示,可以包括步骤:
步骤201、根据当前网络可用带宽以及终端的冗余清除能力和处理开销从终端的切块方案列表中选取切块方案,所述切块方案列表与服务器侧的切块方案列表相同;
步骤202、根据切块方案将待同步的文件切分成多个数据块;
步骤203、针对所述多个数据块中的每一个分别创建标识符;
步骤204、将每个数据块对应的标识符发送至服务器;
步骤205、在接收到服务器的反馈后,根据所述反馈将待同步文件同步至服务器。
本发明实施例提供的技术方案中,根据当前网络可用带宽以及终端的冗余清除能力和处理开销动态地从终端的切块方案列表中选取切块方案,按照切块方案将待同步的文件切分成数据块,将代表数据块的标识符发送至服务器,最后根据服务器反馈进行文件同步。利用本发明实施例提供的切块方式能够确保数据同步时间最短,提高了同步效率。
具体实施中,在执行步骤201之前,终端和服务器上分别事先维护一个相同的切块方案列表chunking_list={l1,l2,l3,…,ln}。其中li代表第i套切块方案的平均切块大小。对于不同的切块方案来说,平均切块大小越小,意味着找出冗余数据块的能力越强,但是对应的产生的索引信息也越多,计算开销也越大。相反地,平均切块大小越大,鉴别冗余的能力越低,但开销也小。
同时,终端和服务器上还维护一个冗余消除能力列表deduplication_capability={β1,β2,β3,…βn}。定义第i套切块的冗余消除能力βi为利用切块方案li时,冗余数据块的总大小除以所有数据块的总大小。
本发明实施例中冗余消除能力βi即“冗余率”,可以是一个基于大量样本的统计值。通常情况下,按照以往的研究表明,一个切块方案能够达到的冗余消除效果,跟这个方案的平均分块大小有关。在终端和服务器上事先维护冗余消除能力列表,可以包含相应的切块方案在处理大量数据时的经验值。
在具体实施过程中,冗余消除能力列表首先可以在服务器上生成,然后将其发送至终端侧。如果服务器上重新计算了这个值的话,在同步开始之前可以把更新后的列表发送给终端。
终端上根据自身的计算能力,创建一个处理开销列表computation_cost={t1,t2,t3,…tn},其中ti代表第i套切块方案在当前设备上对长度为C字节的数据进行切分,所消耗的时间。
在有待同步文件需要被同步时,终端首先会根据自身所处的网络可用带宽以及计算能力,即终端的冗余清除能力和处理开销,从终端的切块方案列表中选取切块方案,使得同步所耗费的时间最短。
具体实施中,在执行步骤203时,针对所述多个数据块中的每一个分别创建标识符,标识符可以是根据基于具体数据内容来创建的,那么相同内容的数据块,它们的标识符可以是一样的。在创建标识符时,可以利用Hash算法,例如MD5,SHA-1算法。
本发明实施例中的标识符仅用于标识数据块,并不限制采用何种方式进行标识。只要能够实现标识的目的即可,实施过程中可以结合实践需要来确定相应的方式。例如,创建索引是现有技术中较为常用的方式,是易于本领域技术人员使用/理解的,从理论上来说,用其他的方式也是可以的。索引中可以包含该数据块所属文件的路径、文件名等信息,以及可以唯一标识该数据块的标识符。在这种方式下,在执行步骤204时,可以利用各数据块对应的索引创建标识符列表,将该标识符列表发送至服务器。
实施中,在根据所述反馈将待同步文件同步至服务器时,可以进一步包括:
确定接收到的服务器的反馈中是否包含标识符;
若包含,则将所述标识符对应的数据块同步至服务器,服务器整合所述同步的数据块与待同步文件中已存在于服务器中的数据块,得到同步文件;
若不包含,则服务器整合待同步文件中已存在于服务器中的数据块,得到同步文件。
具体实施中,当终端将切分的数据块对应的标识符发送至服务器,服务器进行比对后确定有部分或全部数据块需要上传时,反馈需要上传的数据块对应的标识符至终端,终端将这些标识符对应的数据块同步至服务器,服务器整合同步的数据块与待同步文件夹中已存在于服务器中的数据块而得到同步文件;
若服务器进行比对后确定待上传文件切分得到的数据块都已存在于服务器,此时,也是可以发送反馈的,可以反馈一个空集,目的在于,告诉终端待同步文件所有的数据块服务器上都有了,终端不需要上传数据块至至服务器了,服务器将待同步文件已经存在与服务器中的数据块进行整合而得到同步文件。
在具体实施中,反馈中包含的内容,可以就是需要传输的数据块的标识符。
利用终端仅上传服务器中未保存的数据块而得到同步文件,这样的方式大大的减少了传输过程中需要传送的数据量,从而降低网络开销。
比较上述两种情形,待上传文件切分获得的数据块均存在于服务器上的情形是实现文件同步所耗费的同步时间最短、所占带宽最少,是同步效率最高的一种情形。
实施中,可以按下述方式确定终端当前网络可用带宽:
Segment_size为当前网络连接中传输控制协议TCP报文长度;
cwnd为传输控制协议TCP报文拥塞窗口大小;
RoundTripTime为当前网络中的数据延迟时间;
Available_BW为当前网络可用带宽。
实施中,可以选取满足的使同步时间最短的方案为切块方案,其中:
ti为终端的处理开销列表中第i套切块方案对处理数据量为C的数据进行切块的处理时间;
βi为终端的冗余消除能力列表中第i套切块方案的冗余率;
Index_sizei为第i套切块方案所产生的索引信息的数据量。
具体实施中,切块方案列表chunking_list={l1,l2,l3,…,ln}中li表示第i套切块方案的平均切块大小。平均切块大小越小,找出冗余数据的能力越强。但是对应的计算开销也越大,生成的标识符的数据量也越多。
的目的是要让整体的同步时间最短。整体的同步时间包括切块所消耗的计算时间,以及传输数据块和标识符的时间。这里的Index_Size就是索引信息(标识符)的数据量。
最小的切块大小不一定会得到最短的同步时间,因为还和终端的计算能力,当时的实时网络可用带宽有关。
实施中,数据块构可以为包括虚实位部分、位置信息部分以及数据内容部分,如图3所示为本发明实施例中数据块结构示意图,其中:
虚实位部分,用于表示所述数据块是否包含真实数据;
位置信息部分,用于表示当前数据块在原文件中的偏移量以及当前数据块的长度;
数据内容部分,用于存放当前数据块中的真实数据。
具体实施中,由于服务端不需要保存用户真实数据的多个备份,因此设置数据块的结构可以包括三部分:1)虚实位,表征当前数据块是否包含用户的真实数据;2)位置信息,包含当前块在原始文件中的偏移量以及块的长度;3)数据内容,如果虚实位为1,则该部分包含实际的用户数据;若虚实位为0,该部分为空。
每当有用户数据被同步到云端,服务器对新上传的文件按照切块方案列表中的其它方案对文件进行二次切分,并创建索引。二次切分产生的数据块虚实位都标记为0,也就是不需要存储这些块的实际内容,避免了保存同一个文件在多套切块方案下的多个备份,节约的存储空间。
基于同一发明构思,本发明实施例中还提供了一种终端文件同步的装置,由于装置解决问题的原理与一种终端文件同步的方法似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
图4为本发明实施例中终端文件同步的装置的结构示意图,如图所示,可以包括:
切块方案选取模块401,用于根据当前网络可用带宽以及终端的冗余清除能力和处理开销从终端的切块方案列表中选取切块方案,所述切块方案列表与服务器侧的切块方案列表相同;
切分模块402,用于根据切块方案将待同步的文件切分成多个数据块;
标识符创建模块403,用于针对所述多个数据块中的每一个分别创建标识符;
发送模块404,用于将每个数据块对应的标识符发送至服务器;
同步模块405,用于在接收到服务器的反馈后,根据所述反馈将待同步文件同步至服务器。
实施中,同步模块405可以进一步用于在根据所述反馈将待同步文件同步至服务器时,确定接收到的服务器的反馈中是否包含标识符;
若包含,则将所述标识符对应的数据块同步至服务器,服务器整合所述同步的数据块与待同步文件中已存在于服务器中的数据块,得到同步文件;
若不包含,则服务器整合待同步文件中已存在于服务器中的数据块,得到同步文件。
实施中,切分模块402可以进一步用于按下述方式确定终端当前网络可用带宽:
Segment_size为当前网络连接中传输控制协议TCP报文长度;
cwnd为传输控制协议TCP报文拥塞窗口大小;
RoundTripTime为当前网络中的数据延迟时间;
Available_BW为当前网络可用带宽。
实施中,切分模块402还可以进一步用于选取满足的使同步时间最短的方案为切块方案,其中:
ti为终端的处理开销列表中第i套切块方案对处理数据量为C的数据进行切块的处理时间;
βi为终端的冗余消除能力列表中第i套切块方案的冗余率;
Index_sizei为第i套切块方案所产生的索引信息的数据量。
实施中,还可以进一步包括:
数据块设置模块406,用于设置数据块包括虚实位部分、位置信息部分、以及数据内容部分以用于表明数据块状态,其中:
虚实位部分,用于表示所述数据块是否包含真实数据;
位置信息部分,用于表示当前数据块在原文件中的偏移量以及当前数据块的长度;
数据内容部分,用于存放当前数据块中的真实数据。
图5为本发明实施例中服务器文件同步方法实施的流程示意图,如图所示,可以包括步骤:
步骤501、接收终端发送的多个标识符,所述多个标识符分别与多个数据块一一对应,所述数据块是终端根据切块方案对待同步文件进行切分得到的;
步骤502、将所述多个标识符分别与服务器中的标识符进行比较,所述服务器中的标识符分别与服务器中的多个数据块一一对应,所述服务器中的多个数据块是服务器根据切块方案对服务器中存储的文件进行切分得到的,所述切块方案与终端侧的切块方案相同;
步骤503、确定所述多个标识符对应的数据块是否存在于服务器中;
步骤504、将确定结果反馈至终端;
步骤505、根据终端的同步得到同步文件。
具体实施中,在接收终端发送的多个标识符之前,服务器中存储的文件均已按照与终端侧相同的切块方案切分为数据块并创建了与数据块一一对应的标识符。在接收到终端发送的多个标志符后,将终端发送的标识符与服务器中的标识符进行比较,确定有哪些标识符是服务器中没有的,进而确定这些服务器中不存在的数据块,将不存在于服务器中的数据块对应的标识符反馈至终端,终端按照反馈同步文件。通过增加了标识符比较的步骤,能够在待同步文件中的部分数据块已存在于服务器中时,仅上传服务器中未保存的数据块而得到同步文件,这样的方式大大的减少了传输过程中需要传送的数据量,从而降低网络开销。
实施中,在将确定结果反馈至终端时,若所述多个标识符对应的数据块中有数据块未存在于服务器,则可以将未存在于服务器中的数据块对应的标识符反馈至终端;
若所述多个标识符对应的数据块均已存在于服务器,则反馈空集至终端。
具体实施中,假如终端选择使用i方案进行切块,当终端将切分的数据块对应的标识符发送至服务器,服务端接收到终端按照i方案切块所产生的标识符集合之后,可以到i方案下的标识符数据库(所谓标识符数据库,可以理解成为服务器上已经存储的数据,切块以后,所有的数据块的标识符都存在于这个数据库中)中去寻找。本发明实施例中可以不到其它切块方案的标识符数据库中寻找。
服务器进行比对后确定有部分或全部数据块需要上传时,反馈需要上传的数据块对应的标识符至终端,终端将这些标识符对应的数据块同步至服务器,服务器整合同步的数据块与待同步文件夹中已存在于服务器中的数据块而得到同步文件;
若服务器进行比对后确定待上传文件切分得到的数据块都已存在于服务器,此时,终端不需要将数据块上传至服务器,服务器将待同步文件已存在于其上的数据块进行得到同步文件。
不论是上传待同步文件的部分数据块、全部数据块、抑或不需要上传任何数据块,在服务器侧都能够得到同步文件,实现终端侧与服务器侧的文件的同步。
实施中,数据块可以与终端的数据块相同,可以包括虚实位部分、位置信息部分、以及数据内容部分,其中:
虚实位部分,用于表示所述数据块是否包含真实数据;
位置信息部分,用于表示当前数据块在原文件中的偏移量以及当前数据块的长度;
数据内容部分,用于存放当前数据块中的真实数据。
实施中,在根据终端的同步得到同步文件时,可以根据接收到的标识符与数据块结构将同步至服务器的数据块和/或已存在于服务器的数据块进行整合,得到同步文件。
实施中,在服务器得到同步文件之后,可以进一步包括:按照与终端上相同的切块方案列表中未被选取的切块方案对所述同步文件进行二次切分,并针对所述多个数据块中的每一个分别创建标识符。
具体实施中,每当有用户数据被同步到云端,服务器对新上传的文件按照切块方案列表中的其它方案对文件进行二次切分,并创建索引。二次切分的目的在于确保下一个待同步文件不论采用何种切分方案进行切分,服务器都能保证有效的比较数据块对应的标识符,进而传输最少的数据来实现文件同步。
实施中,在服务器对同步文件按照切块方案列表中未被选取的切块方案进行二次切分后,可以设置所述二次切分获得的多个数据块中每一个数据块的虚实位部分为不包含真实数据、数据内容部分为空。
具体实施中,二次切分产生的数据块虚实位可以标记为0,也就是不需要存储这些块的实际内容,避免了保存同一个文件在多套切块方案下的多个备份,节约的存储空间。
实施中,在接收终端发送的多个标识符之前,可以进一步包括:确定服务器上已保存的文件都已按照与终端上相同的切块方案列表中的所有切块方案切分成多个数据块,并已针对所述多个数据块中的每一个分别创建标识符。
具体实施中,终端和服务器上分别事先维护一个相同的切块方案列表chunking_list={l1,l2,l3,…,ln},其中li代表第i套切块方案的平均切块大小,在终端选取切块方案后,可以将已经选取该切块方案的消息告知服务器,服务器进行二次切分的时候,选择该切块方案以外的其他方案进行切分;也可以终端将标识符发送至服务器后,服务器根据标识符判断终端选取的是哪个切块方案,进而选择该切块方案以外的其他方案进行切分,除上述两种方式外,本发明实施例中不限制采用其他方式使服务器知晓终端选取的切块方案。
基于同一发明构思,本发明实施例中还提供了一种服务器文件同步的装置,由于装置解决问题的原理与一种服务器文件同步的方法似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
图6为本发明实施例中服务器文件同步的装置的结构示意图,如图所示,可以包括:
接收模块601,用于接收终端发送的多个标识符,所述多个标识符分别与多个数据块一一对应,所述数据块是终端根据切块方案对待同步文件进行切分得到的;
比较模块602,用于将所述多个标识符分别与服务器中的标识符进行比较,所述服务器中的标识符分别与服务器中的多个数据块一一对应,所述服务器中的多个数据块是服务器根据切块方案对服务器中存储的文件进行切分得到的,所述切块方案与终端侧的切块方案相同;
确定模块603,用于确定所述多个标识符对应的数据块是否存在于服务器中;
反馈模块604,用于将确定结果反馈至终端;
文件同步模块605,用于根据终端的同步得到同步文件。
实施中,反馈模块604在将确定结果反馈至终端时,若所述多个标识符对应的数据块中有数据块未存在于服务器,则可以将未存在于服务器中的数据块对应的标识符反馈至终端;
若所述多个标识符对应的数据块均已存在于服务器,则反馈空集至终端。
实施中,还可以包括:数据块设置模块606,用于设置数据块包括虚实位部分、位置信息部分、以及数据内容部分以用于表明数据块状态,其中:
虚实位部分,用于表示所述数据块是否包含真实数据;
位置信息部分,用于表示当前数据块在原文件中的偏移量以及当前数据块的长度;
数据内容部分,用于存放当前数据块中的真实数据。
实施中,文件同步模块605在根据终端的同步得到同步文件时,可以根据接收到的标识符与数据块结构将同步至服务器的数据块和/或已存在于服务器的数据块进行整合,得到同步文件。
实施中,还可以包括:切分模块607,用于在服务器得到同步文件之后,按照与终端上相同的切块方案列表中未被选取的切块方案对所述同步文件进行二次切分,并针对所述切分模块切分得到的多个数据块中的每一个分别创建标识符。
实施中,数据块设置模块606还可以用于在服务器对同步文件按照切块方案列表中未被选取的切块方案进行二次切分后,设置所述二次切分获得的多个数据块中每一个数据块的虚实位部分为不包含真实数据、数据内容部分为空。
实施中,确定模块603还可以用于在接收终端发送的多个标识符之前,确定服务器上已保存的文件都已按照与终端上相同的切块方案列表中的所有切块方案切分成多个数据块,并确定切分模块607已针对多个数据块中的每一个分别创建标识符。
下面再以实例对实施例提供的终端、服务器文件同步方法和装置的使用进行说明。
图7为本发明实施例中文件同步实例的流程示意图,如图所示,可以包括以下步骤:
步骤701、需要进行文件同步的双方建立连接;
具体实施中,建立终端与服务器的连接。
步骤702、确定终端上是否有数据/文件需要传输;
具体实施中,终端的同步服务软件检测同步文件夹中是否有新的文件,新的文件可以是被修改的文件,也可以是原来同步文件夹中不存在的文件。
若否,则执行步骤703,结束同步;
若是,则执行步骤704,根据当前网络状况和终端自身的计算能力,即冗余消除能力和处理开销能力,从切块方案列表中选取合适的切块方案;
具体实施中,首先,根据当前网络连接中观察到的TCP报文段长度Segment_size,当前网络环境中的数据往返时间RoundTripTime(RTT)以及TCP的拥塞窗口大小cwnd,估算当前网络环境下的可用带宽Available_BW:
然后,根据切块方案列表(chunking_list)中的方案,以及对应的冗余消除能力(deduplication_capability)和计算开销(computation_cost),选择使得以下式子取得最小值的那个切块方案,即从chunking_list中选择方案使得有:
其中,ti为第i套切块方案处理C大小的数据的处理时间,βi为第i套方案的冗余率,即冗余数据量所占总数据量的百分比,Index_sizei为方案i所产生的索引信息的总大小。
步骤705,对需要同步的文件按照所选的切块方案进行切分,并创建索引,利用索引信息创建标识符列表,标识符列表中包含每一个数据块对应的标识符,并将该标识符列表发送至服务器;
步骤706、服务器根据接收到的标识符列表,查找哪些标识符对应的数据块已经存在于服务器,哪些不存在,最终服务器将不存在于其上的数据块的标识符反馈至终端;
步骤707、终端接收反馈,并发送那些服务器上还不存在的数据块至服务器;
步骤708、服务器接收到新的数据块后,按照事先维护的切块方案列表中未被选取的切块方案对新接收的数据进行二次切分,并创建索引;
具体实施中,在二次切分中,可以只创建索引信息,并且将新切分出的数据块的虚实位置为0,具体内容置为空,并可以不保存实际的用户数据。
步骤709、服务器向终端确认收到的数据块。
具体实施中,还可以包括终端检查是否还有待同步文件,如果已经同步完所有文件,则结束同步。
为了描述的方便,以上所述装置的各部分以功能分为各种部件或单元分别描述。当然,在实施本发明时可以把各部件或单元的功能在同一个或多个软件或硬件中实现。
本发明实施例提供的终端、服务器文件同步的方法及装置,根据当前网络可用带宽以及终端的冗余清除能力和处理开销从终端的切块方案列表中选取切块方案;根据切块方案将待同步的文件切分成多个数据块;对每个数据块创建标识符,并将该标识符发送至服务器;服务器接收该标识符,将其与其上各数据块对应的标识符进行比较,确定该标识符对应的数据块是否存在于服务器中,将确定结果反馈至终端;终端根据反馈将待同步文件同步至服务器。采用本发明实施例提供的技术方案,能够动态的选择切块方案对待同步文件切分,确保了数据同步时间最短,提高了同步效率,同时,仅将未保存于服务器的数据块上传,大大的减少了传输过程中传送的数据量,从而降低网络开销。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (24)
1.一种终端文件同步的方法,其特征在于,包括如下步骤:
根据当前网络可用带宽以及终端的冗余清除能力和处理开销从终端的切块方案列表中选取切块方案,所述切块方案列表与服务器侧的切块方案列表相同;
根据切块方案将待同步的文件切分成多个数据块;
针对所述多个数据块中的每一个分别创建标识符;
将每个数据块对应的标识符发送至服务器;
在接收到服务器的反馈后,根据所述反馈将待同步文件同步至服务器。
2.如权利要求1所述的方法,其特征在于,在根据所述反馈将待同步文件同步至服务器时,进一步包括:
确定接收到的服务器的反馈中是否包含标识符;
若包含,则将所述标识符对应的数据块同步至服务器,服务器整合所述同步的数据块与待同步文件中已存在于服务器中的数据块,得到同步文件;
若不包含,则服务器整合待同步文件中已存在于服务器中的数据块,得到同步文件。
3.如权利要求1或2所述的方法,其特征在于,按下述方式确定终端当前网络可用带宽:
Segment_size为当前网络连接中传输控制协议TCP报文长度;
cwnd为传输控制协议TCP报文拥塞窗口大小;
RoundTripTime为当前网络中的数据延迟时间;
Available_BW为当前网络可用带宽。
4.如权利要求3所述的方法,其特征在于,选取满足 的使同步时间最短的方案为切块方案,其中:
ti为终端的处理开销列表中第i套切块方案对处理数据量为C的数据进行切块的处理时间;
βi为终端的冗余消除能力列表中第i套切块方案的冗余率;
Index_sizei为第i套切块方案所产生的索引信息的数据量。
5.如权利要求1至4任一所述的方法,其特征在于,所述数据块包括虚实位部分、位置信息部分以及数据内容部分,其中:
虚实位部分,用于表示所述数据块是否包含真实数据;
位置信息部分,用于表示当前数据块在原文件中的偏移量以及当前数据块的长度;
数据内容部分,用于存放当前数据块中的真实数据。
6.一种服务器文件同步的方法,其特征在于,包括如下步骤:
接收终端发送的多个标识符,所述多个标识符分别与多个数据块一一对应,所述数据块是终端根据切块方案对待同步文件进行切分得到的;
将所述多个标识符分别与服务器中的标识符进行比较,所述服务器中的标识符分别与服务器中的多个数据块一一对应,所述服务器中的多个数据块是服务器根据切块方案对服务器中存储的文件进行切分得到的,所述切块方案与终端侧的切块方案相同;
确定所述多个标识符对应的数据块是否存在于服务器中;
将确定结果反馈至终端;
根据终端的同步得到同步文件。
7.如权利要求6所述的方法,其特征在于,所述将确定结果反馈至终端时,若所述多个标识符对应的数据块中有数据块未存在于服务器,则将未存在于服务器中的数据块对应的标识符反馈至终端;
若所述多个标识符对应的数据块均已存在于服务器,则反馈空集至终端。
8.如权利要求6或7所述的方法,其特征在于,所述数据块与终端的数据块相同,包括虚实位部分、位置信息部分、以及数据内容部分,其中:
虚实位部分,用于表示所述数据块是否包含真实数据;
位置信息部分,用于表示当前数据块在原文件中的偏移量以及当前数据块的长度;
数据内容部分,用于存放当前数据块中的真实数据。
9.如权利要求8所述的方法,其特征在于,所述在根据终端的同步得到同步文件时,是根据接收到的标识符与数据块结构将同步至服务器的数据块和/或已存在于服务器的数据块进行整合,得到同步文件。
10.如权利要求9所述的方法,其特征在于,在服务器得到同步文件之后,进一步包括:
按照与终端上相同的切块方案列表中未被选取的切块方案对所述同步文件进行二次切分,并针对所述多个数据块中的每一个分别创建标识符。
11.如权利要求10所述的方法,其特征在于,所述在服务器对同步文件按照切块方案列表中未被选取的切块方案进行二次切分后,设置所述二次切分获得的多个数据块中每一个数据块的虚实位部分为不包含真实数据、数据内容部分为空。
12.如权利要求6至11任一所述的方法,其特征在于,在接收终端发送的多个标识符之前,进一步包括:
确定服务器上已保存的文件都已按照与终端上相同的切块方案列表中的所有切块方案切分成多个数据块,并已针对所述多个数据块中的每一个分别创建标识符。
13.一种终端文件同步的装置,其特征在于,包括:
切块方案选取模块,用于根据当前网络可用带宽以及终端的冗余清除能力和处理开销从终端的切块方案列表中选取切块方案,所述切块方案列表与服务器侧的切块方案列表相同;
切分模块,用于根据切块方案将待同步的文件切分成多个数据块;
标识符创建模块,用于针对所述多个数据块中的每一个分别创建标识符;
发送模块,用于将每个数据块对应的标识符发送至服务器;
同步模块,用于在接收到服务器的反馈后,根据所述反馈将待同步文件同步至服务器。
14.如权利要求13所述的装置,其特征在于,同步模块进一步用于在根据所述反馈将待同步文件同步至服务器时,确定接收到的服务器的反馈中是否包含标识符;
若包含,则将所述标识符对应的数据块同步至服务器,服务器整合所述同步的数据块与待同步文件中已存在于服务器中的数据块,得到同步文件;
若不包含,则服务器整合待同步文件中已存在于服务器中的数据块,得到同步文件。
15.如权利要求13或14所述的装置,其特征在于,切分模块进一步用于按下述方式确定终端当前网络可用带宽:
Segment_size为当前网络连接中传输控制协议TCP报文长度;
cwnd为传输控制协议TCP报文拥塞窗口大小;
RoundTripTime为当前网络中的数据延迟时间;
Available_BW为当前网络可用带宽。
16.如权利要求15所述的装置,其特征在于,切分模块进一步用于选取满足的使同步时间最短的方案为切块方案,其中:
ti为终端的处理开销列表中第i套切块方案对处理数据量为C的数据进行切块的处理时间;
βi为终端的冗余消除能力列表中第i套切块方案的冗余率;
Index_sizei为第i套切块方案所产生的索引信息的数据量。
17.如权利要求13至16任一所述的装置,其特征在于,进一步包括:
数据块设置模块,用于设置数据块包括虚实位部分、位置信息部分、以及数据内容部分,其中:
虚实位部分,用于表示所述数据块是否包含真实数据;
位置信息部分,用于表示当前数据块在原文件中的偏移量以及当前数据块的长度;
数据内容部分,用于存放当前数据块中的真实数据。
18.一种服务器文件同步的装置,其特征在于,包括:
接收模块,用于接收终端发送的多个标识符,所述多个标识符分别与多个数据块一一对应,所述数据块是终端根据切块方案对待同步文件进行切分得到的;
比较模块,用于将所述多个标识符分别与服务器中的标识符进行比较,所述服务器中的标识符分别与服务器中的多个数据块一一对应,所述服务器中的多个数据块是服务器根据切块方案对服务器中存储的文件进行切分得到的,所述切块方案与终端侧的切块方案相同;
确定模块,用于确定所述多个标识符对应的数据块是否存在于服务器中;
反馈模块,用于将确定结果反馈至终端;
文件同步模块,用于根据终端的同步得到同步文件。
19.如权利要求18所述的装置,其特征在于,反馈模块在将确定结果反馈至终端时,若所述多个标识符对应的数据块中有数据块未存在于服务器,则将未存在于服务器中的数据块对应的标识符反馈至终端;
若所述多个标识符对应的数据块均已存在于服务器,则反馈空集至终端。
20.如权利要求18或19所述的装置,其特征在于,进一步包括:
数据块设置模块,用于设置数据块包括虚实位部分、位置信息部分、以及数据内容部分,其中:
虚实位部分,用于表示所述数据块是否包含真实数据;
位置信息部分,用于表示当前数据块在原文件中的偏移量以及当前数据块的长度;
数据内容部分,用于存放当前数据块中的真实数据。
21.如权利要求20所述的装置,其特征在于,文件同步模块在根据终端的同步得到同步文件时,是根据接收到的标识符与数据块结构将同步至服务器的数据块和/或已存在于服务器的数据块进行整合,得到同步文件。
22.如权利要求21所述的装置,其特征在于,进一步包括:
切分模块,用于在服务器得到同步文件之后,按照与终端上相同的切块方案列表中未被选取的切块方案对所述同步文件进行二次切分,并针对所述切分模块切分得到的多个数据块中的每一个分别创建标识符。
23.如权利要求22所述的装置,其特征在于,数据块设置模块进一步用于在服务器对同步文件按照切块方案列表中未被选取的切块方案进行二次切分后,设置所述二次切分获得的多个数据块中每一个数据块的虚实位部分为不包含真实数据、数据内容部分为空。
24.如权利要求18至23任一所述的装置,其特征在于,
确定模块进一步用于在接收终端发送的多个标识符之前,确定服务器上已保存的文件都已按照与终端上相同的切决方案列表中的所有切块方案切分成多个数据块,并确定切分模块已针对所述多个数据块中的每一个分别创建标识符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410728306.9A CN105721526B (zh) | 2014-12-04 | 2014-12-04 | 一种终端、服务器文件同步的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410728306.9A CN105721526B (zh) | 2014-12-04 | 2014-12-04 | 一种终端、服务器文件同步的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105721526A true CN105721526A (zh) | 2016-06-29 |
CN105721526B CN105721526B (zh) | 2019-05-14 |
Family
ID=56143192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410728306.9A Active CN105721526B (zh) | 2014-12-04 | 2014-12-04 | 一种终端、服务器文件同步的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105721526B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109190094A (zh) * | 2018-09-05 | 2019-01-11 | 盈嘉互联(北京)科技有限公司 | 基于ifc标准的建筑信息模型文件切分方法 |
CN110297812A (zh) * | 2019-06-13 | 2019-10-01 | 深圳市比比赞科技有限公司 | 文件存储方法、文件同步的方法、计算机设备及存储介质 |
CN110851440A (zh) * | 2019-09-29 | 2020-02-28 | 深圳市华力特电气有限公司 | 一种数据同步方法和装置 |
CN112148793A (zh) * | 2020-09-17 | 2020-12-29 | 睿住科技有限公司 | 数据同步方法、系统及存储介质 |
CN112835972A (zh) * | 2019-11-22 | 2021-05-25 | 北京中电普华信息技术有限公司 | 非结构化数据的同步方法及系统 |
CN114003219A (zh) * | 2021-12-31 | 2022-02-01 | 北京金茂教育科技有限公司 | 多终端的文本展示方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
CN102915325A (zh) * | 2012-08-11 | 2013-02-06 | 深圳市极限网络科技有限公司 | 基于md5哈希列表的文件分解与组合技术 |
CN103561056A (zh) * | 2013-10-12 | 2014-02-05 | 北京奇虎科技有限公司 | 文件传输方法、设备及系统 |
CN103686206A (zh) * | 2014-01-02 | 2014-03-26 | 中安消技术有限公司 | 一种云环境下的视频转码方法和系统 |
CN104166606A (zh) * | 2014-08-29 | 2014-11-26 | 华为技术有限公司 | 文件备份方法和主存储设备 |
-
2014
- 2014-12-04 CN CN201410728306.9A patent/CN105721526B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
CN102915325A (zh) * | 2012-08-11 | 2013-02-06 | 深圳市极限网络科技有限公司 | 基于md5哈希列表的文件分解与组合技术 |
CN103561056A (zh) * | 2013-10-12 | 2014-02-05 | 北京奇虎科技有限公司 | 文件传输方法、设备及系统 |
CN103686206A (zh) * | 2014-01-02 | 2014-03-26 | 中安消技术有限公司 | 一种云环境下的视频转码方法和系统 |
CN104166606A (zh) * | 2014-08-29 | 2014-11-26 | 华为技术有限公司 | 文件备份方法和主存储设备 |
Non-Patent Citations (1)
Title |
---|
SHUPENG LI,ET AL.,: ""TCP-Jersey over high speed downlink packet acess"", 《IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE,2005》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109190094A (zh) * | 2018-09-05 | 2019-01-11 | 盈嘉互联(北京)科技有限公司 | 基于ifc标准的建筑信息模型文件切分方法 |
CN109190094B (zh) * | 2018-09-05 | 2023-03-10 | 盈嘉互联(北京)科技有限公司 | 基于ifc标准的建筑信息模型文件切分方法 |
CN110297812A (zh) * | 2019-06-13 | 2019-10-01 | 深圳市比比赞科技有限公司 | 文件存储方法、文件同步的方法、计算机设备及存储介质 |
CN110851440A (zh) * | 2019-09-29 | 2020-02-28 | 深圳市华力特电气有限公司 | 一种数据同步方法和装置 |
CN110851440B (zh) * | 2019-09-29 | 2023-10-13 | 深圳市华力特电气有限公司 | 一种数据同步方法和装置 |
CN112835972A (zh) * | 2019-11-22 | 2021-05-25 | 北京中电普华信息技术有限公司 | 非结构化数据的同步方法及系统 |
CN112835972B (zh) * | 2019-11-22 | 2024-04-16 | 北京中电普华信息技术有限公司 | 非结构化数据的同步方法及系统 |
CN112148793A (zh) * | 2020-09-17 | 2020-12-29 | 睿住科技有限公司 | 数据同步方法、系统及存储介质 |
CN112148793B (zh) * | 2020-09-17 | 2024-02-20 | 广东睿住智能科技有限公司 | 数据同步方法、系统及存储介质 |
CN114003219A (zh) * | 2021-12-31 | 2022-02-01 | 北京金茂教育科技有限公司 | 多终端的文本展示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105721526B (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2255277B1 (en) | File folder transmission on network | |
CN105721526A (zh) | 一种终端、服务器文件同步的方法及装置 | |
JP4829316B2 (ja) | 中断された同期プロセスに対処してデータを同期させる方法、装置、システム | |
US20150237113A1 (en) | Method and system for file transmission | |
WO2017215646A1 (zh) | 数据传输方法和装置 | |
CN102571788B (zh) | 一种样本收集方法及系统 | |
CN106354865B (zh) | 一种同步主从数据库的方法、装置和系统 | |
US11265182B2 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
CN107347062A (zh) | 一种日志数据处理的方法、电子设备和可读存储介质 | |
US11212342B2 (en) | Merge trees for collaboration | |
EP2817947A1 (en) | Method, apparatus, and system for resource sharing | |
EP4221233A1 (en) | Data download method and apparatus, computer device and storage medium | |
CN105743951A (zh) | 一种数据发送、接收的方法及装置 | |
CN105721520A (zh) | 一种文件同步方法及装置 | |
CN104079623A (zh) | 多级云存储同步控制方法及系统 | |
CN104217171B (zh) | 一种密码破解方法、装置及系统 | |
CN107422980B (zh) | 物联网数据文件存储系统及其数据文件存储方法 | |
CN105635227A (zh) | 一种基于串口服务器的点对点通信方法及系统 | |
CN113900990A (zh) | 文件分片存储方法、装置、设备及存储介质 | |
EP3408989A1 (en) | Detecting malware on spdy connections | |
CN101483653A (zh) | 网络设备向应用层提供应用层数据的方法、设备和系统 | |
Shial et al. | Techniques for file synchronization: a survey | |
CN105516349A (zh) | 一种文件传输方法和系统 | |
Fang et al. | EDTS: An Extensible Data Transmission Service for the Internet | |
TW201132084A (en) | Method, apparatus and system for file transfer based on file directory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |