一种数据压缩方法及服务器技术

技术编号:31225707 阅读:30 留言:0更新日期:2021-12-08 09:30
本申请实施例公开了一种数据压缩方法及服务器,可以用于数据主存,容灾备份或复制等场景。本申请实施例方法包括:获取已压缩的第一目标数据块,第一目标数据块中包括已经过编码的第一编码块;然后对第一目标数据块中未经过编码的第一字符串进行编码以得到第二编码块,并复用第一编码块,得到第二目标数据块;该第二目标数据块为对已经过压缩的第一目标数据块直接进行再次压缩后的数据块;本申请实施例中,对获取到的第一目标数据块直接进行数据缩减,节省解压流程的开销,并且在对第二目标数据块的压缩过程中,可以直接复用第一目标数据块中已经包含的第一编码块,从而节省匹配字符串的开销;本申请实施例中还提供了一种服务器。器。器。

【技术实现步骤摘要】
一种数据压缩方法及服务器


[0001]本申请涉及数据压缩
,尤其涉及一种数据压缩方法及服务器。

技术介绍

[0002]数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少数据存储空间,提高数据传输、存储和处理效率的一种技术方法。
[0003]传统的数据压缩方法包括对数据的实时压缩方法,例如,在线流程写入的数据,数据中心接收到该数据,可以实时对该数据进行压缩。但是随着信息化的高速发展,数据量的快速增长,数据压缩对数据中心的算力要求也越来越高,这种实时数据压缩方式的压缩性能可能无法满足需求。此种情况下,通常将对数据的在线实时压缩方法和离线非实时压缩方法相结合。例如,可以在数据中心计算性能处于较为空闲状态下,开启后台压缩线程,对数据进行非实时的压缩,不仅能节省在线实时压缩的计算开销,而且压缩率可以满足性能需求。
[0004]当前对数据进行实时压缩和非实时压缩的结合方法,可以参阅图1进行理解,在线写入的数据通过压缩模块进行压缩,将压缩后的数据写入持久化的存储器。在进行后台数据缩减时,数据缩减模块会从持久化的存储器读取已经压缩的数据,并通过解压模块将该已经压缩的数据恢复到原来的数据,之后再对解压缩后的数据进行进一步的数据缩减过程。当前技术中,在后台数据缩减的过程中,需要先对已经压缩的数据进行解压,再对恢复之后的数据进行压缩,解压流程带来了额外的系统开销。

技术实现思路

[0005]本申请实施例提供了一种数据压缩方法,该方法应用于一种通信系统,通信系统包括客户端和服务器,客户端为装载在终端上的各种应用,该应用可以用于从特定的信息系统中提取需要被压缩的数据,客户端将待压缩的数据发送给服务器,服务器接收客户端发送的数据,对接收到的数据进行至少两次数据压缩,分别为实时压缩阶段及对实时压缩后的数据进行离线非实时压缩阶段。与传统的数据压缩方法相比,本申请中的数据压缩方法,在离线非实时压缩阶段获取到的数据块并不是解压之后的数据,而是直接从持久化的存储器获取到的压缩后的数据块,对压缩后的数据块再次进行数据缩减,以节省解压流程带来的系统开销。
[0006]第一方面,本申请实施例提供了一种数据压缩方法,该方法的执行主体可以为服务器,服务器获取已压缩的第一目标数据块,第一目标数据块中包括已经过编码的第一编码块;然后,对第一目标数据块中未经过编码的第一字符串进行编码以得到第二编码块,并复用第一编码块,从而得到第二目标数据块,该第二目标数据块至少包括第一编码块和第二编码块;该第二目标数据块为对第一目标数据块进行再次压缩的数据块,最后输出第二目标数据块;本实施例中,对获取到的第一目标数据块直接进行数据缩减,节省解压流程的开销,并且在对第二目标数据块的压缩过程中,可以直接复用第一目标数据块中已经包含
的第一编码块,节省了对第一编码块进行匹配字符串的开销。
[0007]在一个可选的实现方式中,可以采用delta压缩方式对第一目标数据块进行数据缩减;进一步的,服务器获取参考数据块,该参考数据块为第一目标数据块的相似数据块,参考数据块包括第二字符串;然后进一步将第一字符串和第二字符串进行匹配;对第一字符串中匹配成功的第一子串进行编码以得到第二编码块;本实施例中,可以采用delta压缩方式对第一目标数据块进行数据缩减,以提高压缩率。
[0008]在一个可选的实现方式中,将第一字符串和第二字符串进行匹配可以具体包括:计算第一字符串中第一子串对应的第一哈希值;若第二字符串中第二子串具有对应的第二哈希值,表明在实时压缩阶段(如实时压缩阶段通过自压缩进行数据缩减),通过自压缩寻找匹配串的过程中已经计算过哈希值,并已创建哈希表,在这种情况下,直接复用该第二子串的第二哈希值即可,不需要重复计算第二子串的第二哈希值,可以减少由于计算哈希值的开销;进一步的将第一哈希值与第二哈希值匹配;当第一哈希值与第二哈希值匹配时,对第一哈希值所对应的第一子串进行编码以得到第二编码块;本实施中,可以通过哈希值的匹配来寻找第一目标数据块与参考数据块中相匹配的子串;并且在与参考数据块进行匹配的过程中,可以复用参考数据块在实时压缩阶段已经计算的哈希值,不需要重复计算参考数据块中子串的哈希值,从而节省计算哈希值的计算开销,降低离线数据缩减过程进行delta压缩时的计算量,降低离线数据缩减对系统性能的影响。
[0009]在一个可选的实现方式中,该第二字符串还包括第三子串,该第三子串无对应的哈希值;计算第三子串的第三哈希值以得到哈希值表,哈希值表至少包括第三哈希值和第二哈希值;进一步的,将第一哈希值与哈希值表中的第二哈希值和第三哈希值匹配;本示例中,若第二字符串中仅有部分子串(如第二子串)具有哈希值,而另一部分子串(如第三子串)可能不具有哈希值,这种情况下,不需要计算第二子串的哈希值,可以直接复用第二子串的哈希值,只需要计算第三子串的第三哈希值即可,以节省计算哈希值的开销。
[0010]在一个可选的实现方式中,对第一目标数据块中未经过编码的第一字符串采用第一编码方式进行编码以得到第二编码块;第一目标数据块中包括已经过第一编码方式进行编码的第一编码块,例如,该第一编码方式可以为LZ77编码方式。
[0011]在一个可选的实现方式中,第一目标数据块包括多个目标子块,每个目标子块具有对应的第一哈希值(或称为第一指纹);参考数据块包括多个参考子块,每个参考子块具有对应的第二哈希值(或称为第二指纹);多个目标子块包括第一目标子块,多个参考子块包括第一参考子块;由于第一目标数据块和参考数据块是相似数据块,那么第一目标数据块中有部分目标子块和参考数据块中的部分参考子块是相同的数据块(或称为匹配的数据块);若第一目标子块的第一哈希值与第一参考子块的第二哈希值匹配,则可以确定第一目标子块和第一参考子块为相同的数据子块,那么在进行字符串匹配的过程中,可以不再对第一目标子块中的字符串和第一参考子块中的字符串进行匹配,在对字符串的匹配过程中,并不需要按字节的进行匹配,可以跨过第一目标子块和第一参考子块,不再对第一目标子块和第一参考子块进行匹配,即第一字符串可以不包含第一目标子块,第二字符串不包含第一参考子块,以节省匹配字符串的开销。
[0012]第二方面,本申请实施例中提供了一种服务器,该服务器具有实现上述第一方面服务器所执行的功能;该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现;该
硬件或软件包括一个或多个与上述功能相对应的模块。
[0013]第三方面,本申请实施例提供一种服务器,处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得服务器执行如上述第一方面中任一项的方法。
[0014]第四方面,本申请实施例提供了计算机可读介质,用于储存计算机程序或指令,计算机程序或指令被执行时使得计算机执行如上述第一方面中任一项的方法。
[0015]第五方面,本申请提供了一种芯片,该芯片包括处理器和通信接口,处理器用于读取指令以执行上述第一方面中任一项的方法。
附图说明
[0016]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据压缩方法,其特征在于,包括:获取已压缩的第一目标数据块,所述第一目标数据块中包括已经过编码的第一编码块;对所述第一目标数据块中未经过编码的第一字符串进行编码以得到第二编码块,并复用所述第一编码块,得到第二目标数据块,所述第二目标数据块至少包括所述第一编码块和第二编码块;输出所述第二目标数据块。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取参考数据块,所述参考数据块包括第二字符串;所述对所述目标数据块中未经过编码的第一字符串进行编码以得到第二编码块,包括:将所述第一字符串和所述第二字符串进行匹配;对所述第一字符串中匹配成功成功的第一子串进行编码以得到第二编码块。3.根据权利要求2所述的方法,其特征在于,所述将所述第一字符串和所述第二字符串进行匹配,包括:计算所述第一字符串中第一子串对应的第一哈希值;若所述第二字符串中第二子串具有对应的第二哈希值;将所述第一哈希值与所述第二哈希值匹配;当所述第一哈希值与所述第二哈希值匹配时,所述对所述第一字符串中匹配成功的第一子串进行编码以得到第二编码块,包括:对所述第一哈希值所对应的第一子串进行编码以得到所述第二编码块。4.根据权利要求3所述的方法,其特征在于,所述第二字符串还包括第三子串,所述第三子串无对应的哈希值,所述方法还包括:计算所述第三子串的第三哈希值以得到哈希值表,所述哈希值表至少包括所述第三哈希值和所述第二哈希值;所述将所述第一哈希值与所述第二哈希值匹配,包括:将所述第一哈希值与所述哈希值表中的所述第二哈希值和所述第三哈希值匹配。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述对所述第一目标数据块中未经过编码的第一字符串进行编码以得到第二编码块,包括:对所述第一目标数据块中未经过编码的第一字符串采用第一编码方式进行编码以得到第二编码块;所述第一目标数据块中包括已经过所述第一编码方式进行编码的第一编码块。6.一种服务器,其特征在于,包括:获取模块,用于获取已压缩的第一目标数据块,所述第一目标数据块中包括已经过编码的第一编码块;处理模块,用于对所述获取模块...

【专利技术属性】
技术研发人员:黄增士潘浩刘中全王晨
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1