含冗余的数据压缩与解压缩的系统和方法

文档序号:9326869阅读:501来源:国知局
含冗余的数据压缩与解压缩的系统和方法
【专利说明】含冗余的数据压缩与解压缩的系统和方法
[0001]本申请要求2013年12月7日提交的美国临时专利申请号N0.61/913,295的优先权,以上申请的内容以引用方式全文并入于此。
技术领域
[0002]本发明涉及数据压缩与解压缩技术领域,特别涉及含冗余的数据压缩与解压缩。
【背景技术】
[0003]通常通过计算机网络或在存储设备之间通过I/O(输入/输出)界面转存海量数据。例如,用户可将整个主目录从硬盘驱动器转存至非易失性存储器(如闪存驱动器)以对硬盘驱动器进行定期备份,或者可通过因特网转存大文档文件。转存数据可包括冗余数据,即接收者已经处理的数据,例如,用户在闪存驱动器上生成硬盘驱动器定期备份的情况下,将要传输至闪存驱动器的备份数据通常包括闪存驱动器中已经存在的数据。同样地,用户通过因特网转存文档文件的情况下,用户可从网络源(如一个服务器)下载文件、修正该文件并将该文件上传回该网络源,如果该文档文件未完全修正,上传文件版本和下载文件版本之间亦可存在公用数据。传输同时存储于源和目标地的冗余数据会导致I/o界面及因特网带宽的低效利用。现有压缩与解压缩方法未能利用这种数据冗余的优势,因为在千兆字节到兆兆字节数据存储上定位冗余数据通常被认为费时且低效益。
[0004]因此,需要一种高效、冗余高定位概率的含巨量数据的冗余数据查找技术,该技术可最小化冗余数据的传输并可提高I/o界面以及因特网有限带宽的利用。

【发明内容】

[0005]本发明实施方式的附加方面及优点在以下说明书中给出并清楚描述,或从本发明实施方式的实施中得到。
[0006]根据一些实施方式,一种装置包括存储第一历史数据的存储器;以及至少一个处理器,该处理器设置成接收输入数据,判定所述第一历史数据和所述输入数据的一个或多个部分之间的关系,生成反映所述关系的一个或多个引用令牌,并传输所述一个或多个引用令牌至接收设备。在一些实施方式中,所述引用令牌允许所述输入数据的所述一个或多个部分在所述接收设备中重建。在一些实施方式中,响应于所述输入数据的第一部分与所述第一历史数据的任一部分不相匹配的判定,所述至少一个处理器设置成传输所述输入数据的第一部分至所述接收设备。
[0007]根据一些实施方式,所述第一历史数据包括一个或多个第一数据块,其中每一第一数据块关联一个或多个第一签名,所述一个或多个第一数据块包含工作数据块。在一些实施方式中,对所述第一历史数据与所述输入数据的所述一个或多个部分之间的所述关系的所述判定进一步包含:将一个或多个第二签名关联所述输入数据;以及判定至少一个与所述工作数据块关联的第一签名是否与至少一个所述第二签名相匹配。在某些实施方式中,响应于所述工作数据块的至少一个第一签名与至少一个所述第二签名相匹配的判定,将与所述第二签名相匹配的所述第一签名同所述工作数据块的一部分相关联起来,将所述第二签名同所述输入数据的一部分相关联起来,所述至少一个处理器进一步设置成:判定所述工作数据块的所述关联部分与所述输入数据的所述关联部分一致;以及判定关于所述工作数据块的所述关联部分的位置及大小的信息,其中,生成第一引用令牌,所述第一引用令牌包含关于所述工作数据块的所述关联部分的位置及大小的信息。在一些实施方式中,所述第一引用令牌还包括与所述工作数据块关联的识别码。
[0008]在一些实施方式中,所述装置进一步包括存储一个或多个第二数据块的数据存储设备,每一第二数据块与一个或多个第三签名关联。所述至少一个处理器进一步设置成:响应于无所述第一签名与任一所述第二签名相匹配的判定,判定是否至少一个所述第三签名与至少一个所述第二签名相匹配。如果至少一个所述第三签名与至少一个所述第二签名相匹配,所述至少一个处理器进一步设置成:从所述数据存储设备中获取与所述第三签名关联的所述第二数据块,该第三签名与所述第一签名相匹配,使获取的所述第二数据块成为工作历史数据块。
[0009]根据一些实施方式,所述工作数据块进一步包含一个或多个数据区块,其中至少一个所述第一签名与至少一个所述数据区块关联,并具有第一偏移,该第一偏移反映所述工作数据块中的至少一个数据区块的位置。在一些实施方式中,对关于所述工作数据块的所述关联部分的位置及大小的信息的所述判定包含:在所述工作数据块中,相对于所述第一偏移所反映的位置正向和/或反向查找与所述输入数据的一个或多个部分相匹配的数据。在一些实施方式中,至少一个所述第一签名从诸多子签名中生成,每一子签名从至少一个所述数据区块的一部分中生成。在一些实施方式中,每一所述第一数据块与时间戳关联,所述工作数据块基于与所述工作数据块关联的所述时间戳指定。
[0010]根据一些实施方式,一种用于处理数据的计算机实现的方法包括:接收输入数据;接收第一历史数据;判定所述第一历史数据与所述输入数据的一个或多个部分之间的关系;生成反映所述关系的一个或多个引用令牌;以及传输所述一个或多个引用令牌至接收设备。在一些实施方式中,响应于所述输入数据的第一部分与所述第一历史数据的任一部分不相匹配的判定,该方法进一步包括传输所述输入数据的所述第一部分至所述接收设备。
[0011]根据一些实施方式,一种装置包括:存储历史数据的存储器;以及至少一个处理器。该至少一个处理器设置成:接收输入数据;生成一个或多个引用令牌,该引用令牌包含关于与所述输入数据相关联的所述历史数据的至少一部分的信息;以及传输所述一个或多个引用令牌以及不在所述历史数据中的所述输入数据的至少一部分至接收设备。在一些实施方式中,所述关于所述历史数据的一部分的信息包含所述第一历史数据的一部分的位置以及所述历史数据的一部分的大小。
【附图说明】
[0012]体现本发明申请实施例的附图的参考说明,其中:
[0013]图1示出本发明的实施方式的示例网络系统的框图。
[0014]图2示出本发明的实施方式的示例系统的框图。
[0015]图3A-3C示出根据本发明的实施方式的便于历史数据查找的示例数据结构的框图。
[0016]图4A示出根据本发明的实施方式的示例压缩模块的框图。
[0017]图4B示出根据本发明的实施方式的示例解压缩模块的框图。
[0018]图5示出根据本发明的实施方式,与数据片段相关联的块签名生成示例方法的流程图。
[0019]图6示出根据本发明的实施方式,压缩数据示例方法的流程图。
[0020]图7示出根据本发明的实施方式,解压缩数据示例方法的流程图。
【具体实施方式】
[0021]下面结合附图对本发明的【具体实施方式】进行详细描述,不论何时,同样的引用数字在整个附图中用于表示相同或相近的特征。
[0022]实施方式的描述仅为示例性描述,并不起限定作用。为描述目的,本发明和权利要求书中引用数字“第一”、“第二”以及“第三”,本领域的普通技术人员应当理解,它们不表示或不是指“特定的第一”、“特定的第二”或“特定的第三”。
[0023]根据一些实施方式,此中描述的运算、技术和/或要素可通过电子设备实现,该电子设备可包含一个或多个特殊用途计算设备。这些计算设备之间可以为硬连接以执行此中描述的运算、技术和/或要素;或可包含数字电子设备,例如:一个或多个特定用途集成电路((ASICs)或可现场编程门阵列(FPGAs),他们持续运行以执行此中描述的运算、技术和/或要素;或可包含一个或多个硬件处理器,运行该硬件处理器根据固件、存储器、其他存储件或他们的组合中的程序指令执行本发明的这些特征。这些特殊用途计算设备亦可将定制硬连接逻辑、特定用途集成电路或可现场编程门阵列与定制程序联合来完成本发明的技术和其他特征。特殊用途计算设备可以为台式计算机系统、手提计算机系统、手持设备、网络设备或并入硬连接和/或程序逻辑以实现本发明的技术或其他特征的任何其他设备。
[0024]一个或多个特殊用途计算设备通常可被运算系统软件控制或协调,例如因特网操作系统、安卓、黑莓、谷歌操作系统、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 服务器、Windows CE、Unix、Linux、SunOS、Solaris、VxWorks 或其他兼容操作系统。在其他实施方式中,计算设备可被专用操作系统控制。操作系统控制安排计算机执行过程,执行存储管理,提供文件系统、网络化及1/0/服务,并在其他项中为用户提供界面功能,例如:图形用户界面(GUI)。
[0025]图1示出实施方式描述中使用的示例系统100的框图。如图1所示,系统100包含第一计算机系统110、网络130以及第二计算机系统140。第一计算机系统110包含一个或多个处理器112、存储器114、存储设备116以及网络界面118,所有这些部件可通过总线120相互通信,第一计算机系统110可通过网络130与第二计算机系统140交换数据。第二计算机系统140也包含一个或多个处理器142、存储器144、存储设备146以及网络界面148,所有这些部件可通过总线150相互通信。
[0026]存储器114和144均可为用于存储分别由处理器112和142执行的信息和指令的随机存取存储器(
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1