通过服务器端去副本的有效数据传输的方法和系统的制作方法

文档序号:7718619阅读:99来源:国知局
专利名称:通过服务器端去副本的有效数据传输的方法和系统的制作方法
技术领域
本发明 一 般涉及去除冗余数据,更具体地,涉及服务器端去副本(de-duplication)的减少数据传输。
背景技术
去副本将分区数据对象处理成更小的部分(称为"区块(chunk)")并在区块目录(存储库)中仅保留唯一的区块。为了能够重构对象,存储唯一区块的哈希(hash)列表(索引或元数据)代替原始对象。通常在由各种去副本产品的销售商报告的去副本压縮比中忽略哈希列表。即典型地,销售商仅报告该唯一的区块数据大小与原始大小。
当使用较小的区块时哈希列表相对较大。较小的区块更可能进行匹配并可以用于实现更高的压縮比。已知的去副本系统通过使用大区块尺寸来尝试减少索引元数据的重要性,因此接受了较低的总压縮比。应用于哈希列表的标准压縮方法(LZ、 Gzip、压縮、Bzip2等)也执行不善。 为了减少从客户到服务器的带宽需求,必须在客户端执行(基于哈希)的去副本。客户端数据去副本具有以下不足1)由于客户端数据去副本需要更紧密地与现有的应用和系统结合,所以难以部署;2)当在客户端数据去副本中使用哈希方法时难以直接比较,并且delta差分需要大的本地高速缓存,其在资源有限的客户端中可能无法获得。
当客户端数据去副本不可能时,可选的是在服务器执行数据去副本。在服务器端数据去副本中,在从客户端到服务器的链路中进行去副本之前传输数据。

发明内容
本发明提供一种用于减少冗余数据块(block)的方法和系统。所述方法包括将具有第一长度的第一数据块编码为具有第二长度的位流;将所述位流传输到服务器;以及通过从第一多个数据块和所述位流解码所述第一数据块来减少冗余数据块,其中所述第一多个数据块中的每个块的长度等于所述第一长度。 在本发明的一个实施例中,使用Sl印ian-Wolf解码器执行所述解码。在本发明的另外的实施例中,当对于全部所述第一长度解码成功时,对所述第一数据块执行去副本。在本发明的另外的实施例中,当对于全部所述第一长度解码不成功时,向客户请求所述第一数据块的进一步信息。本发明的这个实施例还提供将具有所述第一长度的所述第一数据块编码为具有所述第二长度和第三长度中之一的另一位流;将所述另一位流传输到所述服务器;通过从第二多个数据块和所述另一位流解码所述第一数据块来减少冗余数据块,其中所述第二多个数据块中的每个块的长度等于所述第一长度。在本发明的另外的实施例中,通过所述解码执行去副本。在本发明的一个实施例中,对于预定冲突速率使用可变长度执行所述解码。在本发明的另外的实施例中,所述传输的传输速率可变以满足预定冲突速率。 本发明另外提供一种用于减少冗余数据块的系统,包括客户端设备,包括编码器
4模块,所述编码器模块被配置为将数据块编码为位流;服务器设备,包括解码器模块,所述 解码器模块被配置为使用所述服务器设备上的之前存储的多个数据块来解码所述位流;以 及去副本模块,耦合到所述解码器模块,所述去副本模块被配置为对所述数据块的成功解 码部分进行去副本。 本发明的一个实施例还包括耦合到所述服务器设备的数据存储器设备。本发明 的另外的实施例还包括至少另一客户端设备。在本发明的另外的实施例中,所述编码器模 块执行S1印ian-Wo 1 f编码。在本发明另外的实施例中,所述解码器模块执行S1印ian-Wo 1 f 解码。在本发明的一个实施例中,所述去副本模块还包括序列标识符模块,被配置为标识数
据对象的区块部分标识符的序列;索引模块,被配置为基于序列类型将索引应用于区块部
分的标识;以及编码模块,被配置为使用第一编码处理编码第一重复序列,和使用第二编码
处理编码第二重复序列,其中避免了对区块部分标识符的重复序列的存储。 本发明的另外的实施例提供一种用于在去副本之前减少冗余数据传输的计算机
程序产品。当由处理器执行时所述计算机程序产品将具有第一长度的第一数据块编码为
具有第二长度的位流;将所述位流传输至服务器;以及通过从第一多个数据块和所述位流
解码所述第一数据块来减少冗余数据块,其中所述第一多个数据块中的每个块的长度等于
所述第一长度。 在本发明的一个实施例中,使用Sl印ian-Wolf解码器执行所述解码。在本发明的 另外的实施例中,当对于全部所述第一长度解码成功时,对所述第一数据块执行去副本。在 本发明的另外的实施例中,当对于全部所述第一长度解码不成功时,从客户请求所述第一 数据块的进一步信息。本发明的另外的实施例还使得计算机将具有所述第一长度的所述 第一数据块编码为具有所述第二长度和第三长度中之一的另一位流;将所述另一位流传输 到所述服务器;通过从第二多个数据块和所述另一位流解码所述第一数据块来减少冗余数 据块,其中所述第二多个数据块中的每个块的长度等于所述第一长度。在本发明的一个实 施例中,所述传输的传输速率可变以满足预定冲突速率。 在本发明的另外的实施例中,提供一种方法,包括使用Sl印ian-Wolf编码处理
将具有第一长度的第一数据块编码为具有第二长度的位流;将所述位流传输至服务器设 备;以及使用Sl印ian-Wolf解码处理通过从第一多个数据块和所述位流解码所述第一数 据块,在去副本之前减少冗余数据块,其中所述第一多个数据块中的每个块的长度等于所 述第一长度。 在本发明的一个实施例中,当对于全部所述第一长度解码不成功时,从客户端请 求所述第一数据块的进一步信息。在本发明的另外的实施例中,所述方法还包括将具有所 述第一长度的所述第一数据块编码为具有所述第二长度和第三长度中之一的另一位流;将 所述另一位流传输到所述服务器;通过从第二多个数据块和所述另一位流解码所述第一数 据块来减少冗余数据块,其中所述第二多个数据块中的每个块的长度等于所述第一长度。
本发明的另外的实施例提供了一种用于减少冗余数据块的传输的系统。所述系统 包括客户端设备,包括Sl印ian-Wolf编码器模块,所述Sl印ian-Wolf编码器模块被配置 为将数据块编码为位流;服务器设备,包括Sl印ian-Wolf解码器模块,所述Sl印ian-Wolf 解码器模块被配置为使用所述服务器设备上的之前存储的多个数据块来解码所述位流;以 及去副本模块,耦合到所述解码器模块,所述去副本模块被配置为对所述数据块的成功解
5码部分进行去副本。 在本发明的一个实施例中,所述Sl印ian-Wolf解码器被配置为在去副本之前减少冗余数据块。 结合附图,根据下面通过实例例示了本发明的原理的详细的说明,本发明的其他方面和优点将变得显而易见。


结合附图,参考以下详细的说明,可以对本发明的特点、优点以及优选模式的应用具有更充分的理解,其中 图1例示了根据本发明的一个实施例的用于在去副本之前减少需要传输到服务器设备的冗余数据的系统; 图2例示了根据本发明的一个实施例的用于在去副本之前减少需要传输到服务器的冗余数据的处理的框图;以及 图3例示了根据本发明的一个实施例的如图1所示的系统的去副本模块。
具体实施例方式
为了例示本发明的一般原理而进行下述说明,其并不意指限制在此请求的创造性理念。此外,在此描述的具体特征可以结合在各个可能的组合和变形中的每个所描述的特征来使用。除非在此特别限定,所有术语将给出其最广泛的可能解释,包括说明书中隐含的含义以及本领域技术人员理解的和/或在词典、条约等中定义的含义。 本说明可以公开用于在去副本之前减少冗余数据块的几个优选实施例及其操作和/或组件部分。尽管为了清楚起见,在本发明的环境中根据去副本减少处理和设备来进行下面的描述,应该紧记,在此的教导可以在所有类型的系统、设备和应用中具有广泛的应用。 本发明提供了一种用于减少冗余数据块的方法和系统。所述方法包括将具有第一长度的第一数据块编码为具有第二长度的位流;将所述位流传输到服务器设备;以及通过从第一多个数据块和所述位流解码所述第一数据块来减少冗余数据块,其中所述第一多个数据块中的每个块的长度等于所述第一长度。 图1例示了根据一个实施例的用于在去副本之前减少冗余数据块传输的系统100的框图。正如所示的那样,系统100包括客户端设备1到N 150,其包含编码器模块160。在本发明的一个实施例中,该编码器使用Sl印ian-Wolf编码(David Sl印ian和J. K. Wolf的〃 Noiseless Coding ofCorrelated Information Sources" ;IEEE Transactions onInformationTheory ;1973年7月;第471-480页;vol. 19)。应注意,Sl印ian-Wolf涉及彼此不进行通信的两个或多个物理上分离的源的输出的压縮(分布式编码)。这些源将他们的压縮的输出发送到中央点(例如,服务器设备110)以进行联合解码。本发明的其他实施例使用其他已知的分布式编码技术以进行编码和解码。 客户端设备150通过网络、无线连接、有线连接等连接到服务器设备。该服务器设备包括解码器模块120和去副本模块130。耦接到该服务器设备的是数据存储器设备140。在本发明的一个实施例中,该解码器模块使用Sl印ian-Wolf解码来执行解码。在本发明的一个实施例中,客户端设备150包括数据源,例如上传/下载文件(例如数据文件、视频/音频文件、流媒体等),其可以驻留在或非驻留在客户端设备150。在本发明的实施例中,该数据源从诸如例如互联网、局域网(LAN)、广域网(WAN)的网络、盘、盘驱动、闪存卡、存储器等下载。 在本发明的一个实施例中,编码器模块160使用长度n的Sl印ian-Wolf编码器将具有长度n的二进制数据块X编码为m位的位流Z,其中m《n (m和n是大于0的整数)。客户端设备150将Z传输或路由到服务器设备110。服务器设备IIO使用与客户端设备150的编码器模块160所用相同的Sl印ian-Wolf码的解码器模块120,以从Z和在数据存储器设备140上存储的一组N个数据块中解码X,在该组中的每个数据块具有长度n {Y (i)}_U=1} A M 。如果对于i = N的(Z, Y」)解码是成功的,那么将X转发到去副本模块130以进行去副本。如果解码失败并且i = N,则服务器设备110发送关于X的更多信息的请求到客户端设备150。当客户端设备150接收到关于X的更多信息的服务器设备110的请求时,编码器模块160使用相同的或不同的Sl印ian-Wolf码来生成另外的m'位的位流Z',其中m+m'《n,并将Z'传输或路由到服务器设备110,以便解码器120进行另外的解码,其中对于该解码,Z = (Z, Z')。在本发明的一个实施例中,指定m和Sl印ian-Wolf码以满足所要的冲突速率。 图2例示了去副本模块130。去副本模块130执行在数据存储设备140中的解码数据块的去副本。在一个实施例中,元数据包括说明、参数、优先级、日期、时间和关于区块化的对象部分的其它相关信息。哈希是字符(例如元数据)串到代表原始串的较短的固定长度值或键的转换。在一个实施例中,哈希处理用于索引和检索在数据存储设备140中的区块部分。应注意,使用较短的哈希元数据发现区块部分比使用原始的值发现区块部分更快。在一个实施例中,哈希函数用于创建数据对象的区块部分的代表值的索引版本。即,哈希函数用于索引原始的值,于是之后每次当检索到与所述值关联的数据时就使用该函数。在一个实施例中,使用已知的哈希函数,例如除数余数法(division-remainder method)、折叠法(folding)、进制转换(radix transformation)、数字重排(digit rearrangement)等。在另外的实施例中,使用加密的哈希函数,例如MD2,MD4,MD5,安全哈希算法(SHA)等。
在本发明的一个实施例中,去副本模块130包括分区块模块141、搜索模块142、序列标识符模块143、索引模块144、编码模块145和去除模块146。在本发明的另外的实施例中,包括在去副本模块130中的各个模块可以是软件处理、硬件模块或软件和硬件的组合。在本发明的一个实施例中,去副本模块130减少在去副本中的区块部分的索引标识符,其中这些标识符是对象的元数据哈希。分区块模块141被配置为根据从数据分区块器接收的区块创建更小的区块部分。在本发明的另外的实施例中,分区块模块141通过以下中的一个或多个来对较大的区块的输入流执行分区块以便将区块部分的输入流减少到更小的区块部分固定大小分区块、滑动窗分区块、可变大小分区块、内容从属分区块。
在本发明的一个实施例中,搜索模块142对数据存储器设备140进行搜索以发现块针对最初目的为数据存储器设备140的区块的匹配区块。在本发明的一个实施例中,序列标识符模块143进行操作以标识数据对象的区块部分标识符的序列。根据本发明的一个实施例,索引模块144进行操作以基于区块重复序列类型将索引应用于区块部分的标识。在本发明的另外的实施例中,所存储的区块部分的标识(例如哈希元数据)包括以时间发生顺序链接新增的区块部分的标识的时序指针。 在本发明的一个实施例中,编码模块145连接到索引模块144,编码模块145操作 以使用第一编码处理来编码第一重复区块序列,以及使用第二编码处理来编码第二重复区 块序列,从存储器中去除区块部分标识符的重复序列以减少存储器使用。根据本发明的一 个实施例,第二编码处理标识了区块部分的第一重复序列的第一外观。在本发明的另外的 实施例中,第二编码处理包括从重复区块部分的第一外观到重复区块部分的第二外观的距 离偏移。在本发明的实施例中,基于重复区块标识的长度来分配序列类型。在本发明的一 个实施例中,可选的去除模块146从数据存储器设备140除去重复区块部分以减少在数据 存储器设备140中所存储的区块部分。 在本发明的一个实施例中,要从客户端设备150传输或路由到服务器设备110的 数据量的减少使得传输时间得到了减少和/或降低了带宽需求。由于编码器模块160包括 Sl印ian-Wolf编码,其在实现上是简单的、在计算上是有效的,本发明的实施例可以容易地 集成到现有的应用和系统中。 相对于非哈希值服务器端去副本来说,使用本发明的实施例的一个优点是与在 使用去副本有效情况下的无损耗压縮相比显著减少要传输的数据量。对于具有在服务器存 储的复制副本的数据,可以在一个回合中使用Sl印ian-Wolf解码来执行去副本,然而使用 无损耗压縮则必须在两个回合中依次执行解压縮和去副本。相对于哈希值服务器端数据 去副本来说,使用本发明的实施例的其他优点是在当数据的完全副本在服务器不可用而 存在其细微改变时(在这种情况下,不能发现要传输的数据的哈希值的准确匹配,因此,需 要传输原始的数据),在仍然可以实现重点压縮的意义上,本发明的实施例相对于哈希值服 务器端数据去副本更灵活和高效[对于Sl印ian-Wolf情况,如果所存储的未压縮数据与 Sl印ian-Wolf解码数据之间的区别很小,则可以在解码之后执行第二层级去副本以进一步 压縮所存储的数据];与在有限范围内仅发送哈希值相比,本发明的实施例允许灵活调整 传输速率以满足所要的冲突速率。 图3例示了用于减少从客户端设备到服务器设备的数据传输的处理300的框图。 处理300以框310开始,其中在客户端设备上,使用Sl印ian-Wolf解码器将具有长度n的 数据块X编码为m位的位流Z。在框320,将位流Z传输或路由至服务器设备。在框330,通 过将i设置为一 ("1")初始化Sl印ian-Wolf解码器,其中i是用于解码位流Z中的第i 个数据块的索引。在框340,对于第i个数据块(其为当前i = 1),将位流Z解码为X。
框350确定是否成功解码第i个数据块。如果成功解码所有数据块(即i = 1至 n),则处理300继续进行到框355,其中在服务器设备上对于解码数据块X执行数据去副本。 如果没有成功解码第i个数据块,则处理300继续到框360。在框360,确定i是否小于n(i < n)。如果i小于n,则处理300继续到框365,其中使i增加1 (i = i+l)并且处理300继 续进行到框340。如果确定i不小于1,则处理300继续到框370,其中从服务器设备发送关 于数据块X的更多信息的请求到客户端设备。处理300继续到框380,其中客户端设备使用 相同或不同的Sl印ian-Wolf编码器将具有长度为n的数据块X编码为在客户端设备上的 m'位的位流Z'(其中m+m'《n)。于是设置Z为(Z, Z'),处理300继续进行到框320。 处理300继续进行直到恢复数据块X以进行服务器设备上的去副本。 本发明的实施例可以使用完全硬件实现、完全软件实现或包括硬件和软件元素的实现的形式。在优选的实施例中,本发明以软件实现,其包括但是不限于固件、常驻软件、微码等。 此外,本发明的实施例可以使用从计算机可用或计算机可读介质可访问的计算机 程序产品,该介质提供程序代码以通过或连接于计算机、处理设备、任何指令执行系统使 用。为了说明的目的,计算机可用或计算机可读介质可以是可以包含、存储、通信、或传输该 程序的设备以通过或连接于指令执行系统、设备或组织使用。 该介质可以是电子的、磁性的、光学的或半导体系统(或设备或装置)。计算机可 读介质的实例包括但是不限于半导体或固态存储器、磁带、可移动计算机磁盘、RAM、只读存 储器(R0M)、刚性磁盘、光学盘等。光学盘的现有的实例包括光盘只读存储器(CD-ROM)、光 盘读/写(CD-R/W)和DVD。 1/0设备(包括但不限于键盘、显示器、定点设备等)可以直接连接到该系统,也可
以通过中间控制器连接到该系统。网络适配器也可以连接到该系统以支持该数据处理系统
通过中间的私有或公共网络连接到其它数据处理系统或远程打印机或存储器设备。调制解
调器、有线调制解调器和以太网卡仅仅是一些当前可用的网络适配器的类型。 在上述说明中,阐述了许多具体细节。然而,应理解,可以实现本发明的实施例而
无需这些具体细节。例如,可以代替熟知的等同组件和部件以代替在此描述的细节,类似
的,可以代替熟知的等同技术以代替在此公开的特定技术。在其它实例中,没有详细示出熟
知的结构和技术以避免使对本说明的理解变得不清楚。 在说明书中提及的"实施例"、"一个实施例"、"一些实施例"或"其它实施例"指结 合实施例描述的具体特征、结构或特性包括在至少一些实施例中,但是不必是所有实施例。 出现的"实施例"、"一个实施例"、"一些实施例"的不必都指相同的实施例。如果说明书陈述 "可以"、"可"或"能够"包括组件、特征、结构或特性,则不必要求包括该特定的组件、特征、 结构或特性。如果说明书或权利要求书涉及"一个"部件,其不是指仅存在一个部件。如果 说明书或权利要求书涉及"一个附加的"部件,这并不排除存在多于一个的附加的部件。
虽然在附图中描述和示出了 一些示例性实施例,但是应理解,这样的实施例仅仅 是例示而非对本发明的广泛性进行限制,以及本发明并不限于所示的和描述的具体结构和 排列,因为本领域技术人员可以想到各种其它改变。
9
权利要求
一种方法,包括将具有第一长度的第一数据块编码为具有第二长度的位流;将所述位流传输到服务器;以及通过从第一多个数据块和所述位流解码所述第一数据块来减少冗余数据块,其中所述第一多个数据块中的每个块的长度等于所述第一长度。
2. 如权利要求1所述的方法,其中使用Sl印ian-Wolf解码器执行所述解码。
3. 如权利要求1所述的方法,其中当对于全部所述第一长度成功解码时,对所述第一 数据块执行去副本。
4. 如权利要求1所述的方法,其中当对于全部所述第一长度解码不成功时,从客户端 请求所述第一数据块的进一步信息。
5. 如权利要求4所述的方法,还包括将具有所述第一长度的所述第一数据块编码为具有所述第二长度和第三长度中之一 的另一位流;将所述另一位流传输到所述服务器;通过从第二多个数据块和所述另一位流解码所述第一数据块来减少冗余数据块,其中 所述第二多个数据块中的每个块的长度等于所述第一长度。
6. 如权利要求1所述的方法,其中通过所述解码执行去副本。
7. 如权利要求1所述的方法,其中对于预定冲突速率使用可变长度执行所述解码。
8. 如权利要求1所述的方法,其中所述传输的传输速率可变以满足预定冲突速率。
9. 一种用于减少冗余数据块的系统,包括客户端设备,包括编码器模块,所述编码器模块被配置为将数据块编码为位流; 服务器设备,包括解码器模块,所述解码器模块被配置为使用所述服务器设备上的之前存储的多个数据块来解码所述位流;以及去副本模块,耦合到所述解码器模块,所述去副本模块被配置为对所述数据块的成功解码部分进行去副本。
10. 如权利要求9所述的系统,还包括耦合到所述服务器设备的数据存储器设备。
11. 如权利要求9所述的系统,还包括至少另一客户端设备。
12. 如权利要求9所述的系统,其中所述编码器模块执行Sl印ian-Wolf编码。
13. 如权利要求9所述的系统,其中所述解码器模块执行Sl印ian-Wolf解码。
14. 一种计算机系统,包括用于执行如权利要求1-8中任一项的所述的方法的装置。
15. —种包括计算机可用介质的计算机程序制品,所述介质包括计算机可读程序,其中 当在计算机上执行所述计算机可读程序时使得所述计算机执行将具有第一长度的第一数据块编码为具有第二长度的位流; 将所述位流传输至服务器;以及通过从第一多个数据块和所述位流解码所述第一数据块来减少冗余数据块,其中所述 第一多个数据块中的每个块的长度等于所述第一长度。
16. —种方法,包括使用Sl印ian-Wolf编码处理将具有第一长度的第一数据块编码为具有第二长度的位流;将所述位流传输至服务器设备;以及使用Sl印ian-Wolf解码处理通过从第一多个数据块和所述位流解码所述第一数据 块,在去副本之前减少冗余数据块,其中所述第一多个数据块中的每个块的长度等于所述第一长度。
17. 如权利要求16所述的方法,其中当对于全部所述第一长度解码不成功时,从客户 端请求所述第一数据块的进一步信息。
18. 如权利要求17所述的方法,还包括将具有所述第一长度的所述第一数据块编码为具有所述第二长度和第三长度中之一 的另一位流;将所述另一位流传输到所述服务器;通过从第二多个数据块和所述另一位流解码所述第一数据块来减少冗余数据块,其中 所述第二多个数据块中的每个块的长度等于所述第一长度。
19. 一种用于减少冗余数据块的传输的系统,包括客户端设备,包括Sl印ian-Wolf编码器模块,所述Sl印ian-Wolf编码器模块被配置为 将数据块编码为位流;服务器设备,包括Sl印ian-Wolf解码器模块,所述Sl印ian-Wolf解码器模块被配置为 使用所述服务器设备上的之前存储的多个数据块来解码所述位流;以及去副本模块,耦合到所述解码器模块,所述去副本模块被配置为对所述数据块的成功 解码部分进行去副本。
20. 如权利要求19所述的系统,其中所述Sl印ian-Wolf解码器被配置为在去副本之前 减少冗余数据块。
全文摘要
本发明涉及通过服务器端去副本的有效数据传输的方法和系统。在本发明实施例中公开一种用于减少冗余数据块的方法和系统。所述方法包括将具有第一长度的第一数据块编码为具有第二长度的位流;将所述位流传输到服务器;以及通过从第一多个数据块和所述位流解码所述第一数据块来减少冗余数据块,其中所述第一多个数据块中的每个块的长度等于所述第一长度。
文档编号H04L29/06GK101741838SQ20091022244
公开日2010年6月16日 申请日期2009年11月13日 优先权日2008年11月18日
发明者D·何, V·舍伊宁 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1