当前位置: 首页 > 专利查询>微软公司专利>正文

用于在本地装置和远程装置间更新对象的方法和系统制造方法及图纸

技术编号:6548701 阅读:195 留言:0更新日期:2012-04-11 18:40
用于在本地装置和远程装置间更新对象的方法和系统。本方法和系统涉及经有限带宽网络更新对象。使用远程差分压缩(RDC)技术在两个或多个计算装置间更新对象,使得所需要的数据传送最少。在一方面中,通过把RDC算法递归地应用到对象自己的元数据中可完成大对象的有效传送;在此情形中可使用单个或多个递归步骤以减少由RDC算法经网络发送的元数据量。通过把边界置于经动态确定的位置上,对象和/或签名以及信息块长度列表可得以拆分。一数学函数可估算相对于可能拆分边界的与水平窗口相关联的散列值。所述方法和系统在各种网络化应用中有用,诸如点对点重复符、电子邮件客户机和服务器、客户机侧高速缓存系统、通用复制实用程序、数据库重复符、入口、软件更新服务、文件/数据同步、以及其它。

【技术实现步骤摘要】

本专利技术一般涉及用有限带宽经网络更新数据对象,尤其涉及使用远程差分压缩 (RDC)方法来进行对象数据的差分传输的系统和方法。可使用RDC方法的递归应用来进一步地使大型对象传送所使用的带宽最小。
技术介绍
诸如内联网、外联网以及互联网的网络盛行已导致共享跨越广泛网络的信息的用户数量有了很大的增长。基于与传输介质以及其它基础设施相关限制相关联的带宽,最大数据传输速率关联于每个物理网络。作为有限网络带宽的结果,用户在网络上取得和传送大量数据时会经历长时间的滞后。数据压缩技术已经变成在具有有限带宽的网络上传送大量数据的普遍方法。通常数据压缩可为无损的或有损的。无损压缩涉及这样的数据集转换,即通过应用解压转换可取得该数据集的精确副本。当需要精确副本时,最常使用无损压缩来压缩数据。在数据对象的接收者已经具有对象先前的或较旧的版本情形下,可使用一种称为远程差分压缩(RDC)的无损压缩方法来确定并仅传送该对象新旧版本间的差异。由于RDC 传送仅涉及传送观察到的新旧版本之间的差异(比如,对于文件情形,文件更改或上次访问日期、文件属性、或对文件内容的较小改变),所传送的数据总量可大大减少。RDC可与本文档来自技高网...

【技术保护点】
1.一种用于将对象拆分成信息块的方法,包括:计算在所述对象中的每个位置处的指纹值;估算与每个可能的拆分点位置相关联的偏移;估算位于所述对象的每个位置周围的界限内的指纹值;响应于所估算的指纹值来标识拆分点位置;以及基于所标识的拆分点位置将对象拆分成信息块。

【技术特征摘要】
2004.04.15 US 10/825,7351.一种用于将对象拆分成信息块的方法,包括计算在所述对象中的每个位置处的指纹值;估算与每个可能的拆分点位置相关联的偏移;估算位于所述对象的每个位置周围的界限内的指纹值;响应于所估算的指纹值来标识拆分点位置;以及基于所标识的拆分点位置将对象拆分成信息块。2.如权利要求1所述的方法,其特征在于,计算在所述对象中的每个位置处的指纹值还包括将指纹函数应用于包含在每个位置周围的小窗口中的对象数据。3.如权利要求2所述的方法,其特征在于,应用所述指纹函数还包括使用下述项中的至少一项=Rabin多项式、Adler散列以及具有循环位移的随机散列。4.如权利要求1所述的方法,其特征在于,进一步包括基于下述项中的至少一项来调整界限的尺寸与所述对象相关联的数据类型、所述对象的大小、环境约束以及与所述对象相关联的使用模型。5.如权利要求2所述的方法,其特征在于,进一步包括基于下述项中的至少一项来调整小窗口的尺寸与所述对象相关联的数据类型、所述对象的大小、环境约束以及与所述对象相关联的使用模型。6.如权利要求1所述的方法,其特征在于,估计位于界限内的指纹值还包括将数学函数应用于所述指纹值,并且当满足所述数学函数时标识拆分点位置。7.如权利要求6所述的方法,其特征在于,应用数学函数还包括使用谓词将指纹值映射到布尔值,把指纹值分成小范围,确定界限的最大值,确定界限的最小值,估算界限内的指纹值之间的差值,以及对界限内的指纹值求和。8.如权利要求2所述的方法,其特征在于,估算位于界限内的指纹值还包括在指纹值上应用数学函数,以及当数学函数在给定偏移达到预定值,并且在预定数目的先前偏移达到其他预定值时,在给定偏移处标识拆分点位置。9.如权利要求8所述的方法,其特征在于,所述数学函数包括下述项中的至少一项谓词以及将指纹值分成适当小范围的函数。10.如权利要求2所述的方法,其特征在于,应用所述数学函数还包括确定界限中的本地最大的指纹值。11.如权利要求10所述的方法,其特征在于,进一步包括分配长度等于界限的第一标志阵列和第二标志阵列,并且初始化标志阵列为布尔假;分配长度等于界限的第一指纹阵列和第二指纹阵列,并且初始化指纹阵列为零;分配长度等于界限的第一偏移阵列和第二偏移阵列,并且初始化偏移阵列为零;初始化索引1为零,初始化索引k为零,并初始化到对象中的当前偏移为零。12.如权利要求11所述的方法,其特征在于,进一步包括以尺寸为h的间隔组遍历对象,在每个间隔中设置到第一标志阵列的第一索引的值为真,设置到第一偏移阵列的第一索引的值为当前间隔组的最后的偏移,设置到指纹阵列的第一索引的值为当前间隔的最后的偏移处的指纹,并确定所述偏移为当前间隔的最后的位置。13.如权利要求12所述的方法,其特征在于,进一步包括只要当前间隔的最后的偏移的当前值大于在索引1处的第二偏移阵列的值加上h的值,则将位置k处的第一标志阵列的值更新为假,在最后的偏移的当前值处提供的指纹值等于位置k处的第一指纹阵列的值,如果最后的偏移的当前值处的指纹值大于位置k处的第一指纹阵列的值,那么,递增k 并将索引k处的第一偏移阵列的值设置为当前的最后的偏移的值,将索引k处的第一标志阵列的值设置为真,并将索引k处的第一散列阵列的值设置为最后的偏移的当前值,并确定所述偏移为当前间隔的最后位置。14.如权利要求12所述的方法,其特征在于,进一步包括只要偏移的当前值不小于到当前间隔的开始处的偏移,则将位置k处的第一标志阵列的值更新为假,在最后的偏移的当前值处提供的指纹值等于位置k处的第一指纹阵列的值,如果最后的偏移的当前值处的指纹值大于位置k处的第一指纹阵列的值,那么,递增k并将索引k处的第一偏移阵列的值设置为当前的最后的偏移的值,将索引k处的第一标志阵列的值设置为真,并将索引k处的第一散列阵列的值设置为最后的偏移的当前值,如果索引1处的第二指纹阵列的值不大于最后的偏移的当前值处的指纹值,则将索引1处的第二标志阵列的值设置为假,并递减到当前间隔的最后位置的偏移。15.如权利要求14所述的方法,其特征在于,进一步包括如果索引k处的第一标志阵列的值已经为假或当存在0到1之间的索引j时,包括索引j处的第二偏移阵列的值加上值h至少与索引k处的第一偏移阵列的值一样大并且索引j处的第二指纹阵列的值至少为索引k处的第一指纹阵列的值,则将索引k处的第一标志阵列的值设置为假。16.如权利要求15所述的方法,其特征在于,进一步包括如果在位置1处的第二标志阵列的值为真,则将索引1处的第二偏移阵列的值设置为拆分点。17.如权利要求16所述的方法,其特征在于,进一步包括在进行下一个间隔之前,交换到第一和第二偏移、指纹阵列和标志阵列的引用。18.如权利要求10所述的方法,其特征在于,进一步包括分配长度等于界限的标志阵列并将标志阵列初始化为布尔假,分配长度等于界限的指纹阵列并将指纹阵列初始化为零,分配长度等于界限的偏移阵列并将偏移阵列初始化为零,初始化最小索引为零,初始化最大索引为零,并将到对象内的当前偏移初始化为零。19.如权利要求18所述的方法,其特征在于,进一步包括当当前偏移值被标识为等于在最大索引处的偏移阵列条目的值加上界限加上1时如果在最大索引处的标志阵列条目的值是布尔真,查找在最大索引处的偏移阵列的值所给定的偏移处的本地最大值;并且将最大索引设置为递减1的最大值模界限确定的值。20.如权利要求19所述的方法,其特征在于,进一步包括当与当前偏移相关联的指纹值小于在最小索引处的指纹阵列条目的值时递减最小索引模界限,设置最小索引处的标志阵列的值为布尔假,设置最小索引处的指纹阵列条目的值为与当前偏移相关联的指纹值,并将最小索引处的偏移阵列条目的值设置为当前偏移。21.如权利要求20所述的方法,其特征在于,进一步包括当与当前偏移相关联的指纹值等于在最小索引处的指纹阵列条目的值时将最小索引处的标志阵列条目的值设置为布尔假,将最小索引处的指纹阵列条目的值设置为与当前偏移相关联的指纹值,并将最小索引处的偏移阵列条目的值设置为当前偏移。22.如权利要求21所述的方法,其特征在于,进一步包括当与当前偏移相关联的指纹值等于在最小索引处的指纹阵列条目的值,并且当所述最小索引不同于所述最大索引时递增最小索引加1模界限。23.如权利要求22所述的方法,其特征在于,进一步包括当与当前偏移相关联的指纹值大于在最小索引处的指纹阵列条目的值,并且当所述最小索引等于所述最大索引时将最小索引处的标志阵列条目设置为布尔真,将最小索引处的指纹阵列条目设置为与当前偏移相关联的指纹值,并且将最小索引处的偏移阵列条目设置为当前偏移。24.如权利要求23所述的方法,其特征在于,进一步包括当完成先前的确定时,递增当前偏移。25.一种具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于将对象拆分成信息块,包括计算在所述对...

【专利技术属性】
技术研发人员:D·特奥多苏N·S·比恩纳P·E·博滋曼Y·谷列维奇
申请(专利权)人:微软公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1