CN103516369B - 一种自适应数据压缩和解压缩的方法和系统及存储装置 - Google Patents
一种自适应数据压缩和解压缩的方法和系统及存储装置 Download PDFInfo
- Publication number
- CN103516369B CN103516369B CN201310246176.0A CN201310246176A CN103516369B CN 103516369 B CN103516369 B CN 103516369B CN 201310246176 A CN201310246176 A CN 201310246176A CN 103516369 B CN103516369 B CN 103516369B
- Authority
- CN
- China
- Prior art keywords
- compression
- data
- parameter
- storage
- algorithm
- 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.)
- Active
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种自适应数据压缩和解压缩的方法和系统及存储装置,该方法的步骤为:(1)压缩:根据存储系统设定的压缩率目标、存储控制器的负载情况为需要压缩的数据段自适应选择对应的数据压缩算法、参数进行数据压缩;(2)解压缩:获取需要解压缩数据段的压缩算法、参数,并使用与所获得的压缩算法、参数对应的解压缩算法为相应的数据段解压缩。该系统为用来实施上述方法的系统。该存储装置包括存储控制器和存储介质,所述存储控制器包括上述自适应数据压缩和解压缩系统。本发明能够根据存储系统预设压缩率、存储控制器负载情况,自适应选择对应压缩算法和压缩参数,既能满足存储系统的压缩率要求又能减少存储控制器负载,从而大大提高存储系统性能。
Description
技术领域
本发明主要涉及到数据存储领域,特指一种存储系统的自适应数据压缩和解压缩方法和系统及存储装置。
背景技术
随着数据量的爆发式增长,存储系统中存储的数据量越来越多,根据IDC的统计,2012年全球数据总量达到上万亿GB,超过95%的数据为非结构化数据;在许多以数据为核心的计算中心里,每天新产生的数据量已经达到100GB甚至1TB。与此同时,新型存储介质及其技术,如闪存(flash memory)、相变存储(phase change memory)等,也在不断发展。现有的很多计算机系统均利用数据压缩技术对存储数据进行压缩,有效地降低系统的存储成本,并能潜在减少对存储介质的写操作,提高存储介质的寿命和系统的访问性能。
从压缩技术的层次区分,数据压缩技术的应用主要分为两种:基于传输的数据压缩和基于存储的数据压缩。
基于传输的数据压缩技术主要是发送端在进行数据传输之前,将数据分段并进行压缩,接收端收到数据之后,进行解压缩,并传递给用户。由于解压缩后的数据不要求被存储在永久介质中,在传输结束之后,数据的压缩元数据即可丢弃。由于基于传输的压缩技术不考虑数据在永久存储介质中的索引,因此,难以应用于存储系统中。
基于存储的数据压缩技术通常实现在存储系统内。传统的基于存储的数据压缩技术方法为存储系统在接收到写入的数据流时,将该数据流分割为多个数据段,然后对每个数据段进行压缩,最终数据以数据压缩段的形式存储在存储设备或者存储介质中。基于存储的数据压缩技术改变了存储数据段的大小,用户读取数据的地址也因此被改变,为了建立原始数据到压缩后数据的地址映射,基于存储的数据压缩技术为数据压缩段建立元数据索引结构。当一段数据被读取时,存储系统通常先访问该元数据索引结构,将数据的地址映射到压缩数据的地址。
尽管已有的一些存储系统具有一定程度的压缩能力,但是这些已有技术通常存在以下问题: 传统的基于存储的数据压缩技术通常只能在存储系统运行过程中固定地使用一种压缩算法、参数,无法做到在线变更其压缩算法、参数;然而压缩算法的压缩率(本文中所提到的压缩率均为数据压缩后的物理大小与压缩前的物理大小的比值)和存储控制器负载需求成反比关系,即在降低压缩率的同时会很大程度提高存储控制器的负载,这样讲造成传统的基于存储的数据压缩技术无法兼顾提高压缩率和减轻存储控制器负载两个指标。当采用压缩率高的压缩算法时,不断的数据压缩工作会让存储系统负载超荷,当采用低压缩率的压缩算法时,闲置的系统负载能力又无法提高数据的压缩率。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种能够根据存储系统预设压缩率、存储控制器负载情况,自适应选择对应压缩算法和压缩参数,既能满足存储系统的压缩率要求又能减少存储控制器负载,从而提高存储系统性能的自适应数据压缩和解压缩方法和系统及存储装置。
为了解决上述技术问题,本发明采用以下技术方案:
一种自适应数据压缩和解压缩的方法,其步骤为:
(1)压缩:根据存储系统设定的压缩率目标、存储控制器的负载情况为需要压缩的数据段自适应选择对应的数据压缩算法、参数进行数据压缩;将压缩后的数据段和压缩算法、参数一并写入存储设备或者存储介质中;
(2)解压缩:获取需要解压缩数据段的压缩算法、参数,并使用与所获得的压缩算法、参数对应的解压缩算法为相应的数据段解压缩。
作为本发明的进一步改进:
所述步骤(1)中进行压缩的具体流程为:
(1.1)存储控制器为每个已存储数据段或已存储数据压缩段与每个卷或文件的逻辑数据段之间建立映射关系,为所有映射关系建立索引结构,并将该索引结构写入存储设备或存储介质中;
(1.2)存储控制器接收主机端的写入数据流,将该写入数据流分成一个或者多个写入数据段;所述存储控制器根据存储系统设定的压缩率目标、存储控制器当前的负载情况为每一个写入数据段自适应选择对应的压缩算法、参数进行数据压缩,产生压缩数据段;
(1.3)将所述压缩数据段写入存储设备或存储介质,并更新所述索引结构,将该索引结构的更新部分写入存储设备或存储介质中。
所述步骤(1.1)的索引结构中每一个所述数据段或者所述数据压缩段与一个索引段一一映射;每一个所述索引段表示为 :版本、逻辑起始地址、逻辑长度、物理起始地址、物理长度和压缩类型;其中,所述逻辑起始地址表示所述数据段或者所述数据压缩段在逻辑卷或文件中的逻辑起始地址,所述逻辑长度则表示该数据段或者数据压缩段非压缩状态下的原始数据的长度;所述物理地址表示所述数据段或者数据压缩段存储在存储设备或者存储介质上的物理起始地址,所述物理长度表示该数据段或者数据压缩段在存储设备或者存储介质上所占据的长度大小;所述压缩类型表示将一个数据段压缩成为一个所述数据压缩段时,使用的压缩算法以及参数;所述版本是记录所述索引段写入的版本号,该版本号在每次所述索引段被更新时依次递增。
所述索引结构采用平衡树索引结构或者哈希表索引结构。
所述步骤(1.2)中,将写入数据流分成一个或者多个写入数据段的分段方法采用固定划分方法,即从所述写入的数据流的开始位置,以固定大小将所述写入的数据流分割为具有固定大小的所述写入数据段,如果所述写入数据流小于该固定大小,则整个所述写入的数据流作为一个所述数据段。
所述步骤(1.2)中为每一个写入数据段自适应选择对应的具体压缩算法、参数进行数据压缩的方法具体包括以下方法(1.2.1)~(1.2.3)中的一个或多个:
(1.2.1)根据压缩率目标自适应选择对应的具体压缩算法、参数进行数据压缩:存储控制器从默认压缩算法、参数开始,逐个使用每个存储控制器中可选的压缩算法、参数对所述写入数据段进行数据压缩,直到使用其中一种压缩算法、参数获得的压缩数据段的压缩率小于压缩率目标,则将该压缩算法、参数设置为默认压缩算法、参数,该压缩数据段为步骤(1.2)结果;如果在存储控制器中的全部压缩算法、参数中,都不存在一种压缩算法、参数满足压缩率目标要求,则选取其中压缩率最低的压缩算法、参数为默认压缩算法、参数,使用该压缩算法、参数产生的压缩数据段为步骤(1.2)结果;
(1.2.2)根据存储控制器负载状况自适应选择对应的具体压缩算法、参数进行数据压缩:将所有存储控制器中可选的压缩算法、参数按照存储控制器负载需求分组,根据当前存储控制器负载情况从对应组别中随机选取一个压缩算法、参数对所述写入数据段进行压缩,产生的数据压缩段为步骤(1.2)结果;
(1.2.3)根据压缩率目标和存储控制器负载状况自适应选择对应的具体压缩算法、参数进行数据压缩:所有存储控制器中可选的压缩算法、参数按照存储控制器负载需求分组,根据当前存储控制器负载情况从对应组别中逐个选取每个组内可选的压缩算法、参数对所述写入数据段进行数据压缩,直到使用其中一种压缩算法、参数获得的压缩数据段的压缩率小于压缩率目标,该压缩数据段为步骤(1.2)结果;如果在该组别内的全部压缩算法、参数中,都不存在一种压缩算法、参数满足压缩率目标要求,则选取其中压缩率最低的压缩算法、参数,使用该压缩算法、参数产生的压缩数据段为步骤(1.2)结果。
所述步骤(2)中进行解压缩的具体流程为:
(2.1)接收所述主机端的读请求;
(2.2)查询存储控制器中的索引结构,获得所述读请求对应的索引段;
(2.3)检查所述索引段中的压缩类型,如果压缩类型表示该数据未经过压缩,则进入步骤(2.4),否则,进入步骤(2.5);
(2.4)读取所述索引段中的物理起始地址和物理长度表示的存储设备或存储介质上的数据,并将该数据返回给所述主机端,结束解压缩操作;
(2.5)读取所述索引段中的物理起始地址和物理长度表示的存储设备或存储介质上的数据,并根据所述索引段中的压缩类型表示的压缩算法、参数,用该压缩算法、参数对应的解压缩方法将该数据解压缩,返回给所述主机端,结束解压缩操作。
在对存储设备或者存储介质写数据时均采用顺序写方法。
本发明进一步提供一种用来实施上述自适应数据压缩和解压缩方法的系统,包括:
压缩单元,用来根据存储系统设定的压缩率目标、存储控制器的负载情况为需要压缩的数据段自适应选择对应的数据压缩算法、参数进行数据压缩;将压缩后的数据段和压缩算法、参数一并写入存储设备或者存储介质中;
解压缩单元,用来获取需要解压缩数据段的压缩算法、参数,并使用与所获得的压缩算法、参数对应的解压缩算法为相应的数据段解压缩。
本发明进一步提供一种存储装置,包括存储控制器和存储介质,所述存储控制器包括上述自适应数据压缩和解压缩系统。
与现有技术相比,本发明的优点在于:
1. 本发明提供的自适应数据压缩和解压缩方法能够根据存储系统预设压缩率、存储控制器负载情况,自适应选择对应压缩算法和压缩参数,既能满足存储系统的压缩率要求又能减少存储控制器负载,从而极大优化了存储系统性能。
2.本发明提出的自适应数据压缩和解压缩的方法对存储设备或者存储介质写数据时均采用顺序写方法,减少了对存储设备或者存储介质的随机写操作,提高了存储系统的读写访问性能及使用寿命。
3. 本发明提出的自适应数据压缩和解压缩的方法利用当前CPU的多核和多线程特点,实现并发数据压缩操作,提高了存储系统系能。
附图说明
图1为一种使用了采用本发明方法后的存储系统的原理示意图。
图2为本发明进行自适应数据压缩方法的流程示意图。
图3为本发明在具体实施例中所采用的一种索引结构的原理示意图。
图4为本发明在具体实施例中存储设备上的空间管理示意图。
图5为采用本发明的方法后进行读操作时的流程示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
本发明的自适应数据压缩和解压缩的方法,其步骤为:
(1)压缩:根据存储系统设定的压缩率目标、存储控制器的负载情况为需要压缩的数据段自适应选择对应的数据压缩算法、参数进行数据压缩;将压缩后的数据段和压缩算法、参数一并写入存储设备或者存储介质中;
(2)解压缩:获取需要解压缩数据段的压缩算法、参数,并使用与所获得的压缩算法、参数对应的解压缩算法为相应的数据段解压缩。
如图1所示,为本发明在一个具体应用实例中实施后的存储系统结构原理示意图,以下将以该实例描述本发明的具体实现原理。其中,主机端101是发送读写操作的源主机。存储系统102使用了本发明的自适应数据压缩和解压缩方法,该存储系统包括存储控制器群104、存储设备或存储介质群105。其中,存储控制器群104中可以包括1个或多个存储控制器,存储设备或者存储介质群105可以包括例如硬盘、磁带驱动器、半导体存储器等单个存储设备或存储介质,也可以包括冗余阵列系统(例如独立磁盘冗余阵列RAID)等多个存储设备组成的装置或者网络附属连接存储系统等网络存储装置。主机端101与存储系统102之间通过网络103连接,网络103可以为局域网、广域网、无线网络、IB网络、光纤网络和以太网络或者实现网络通信的其他任何网络。通过网络103相互连接之后,主机端101与存储系统102之间互发消息,完成数据读写的操作。
如图2所示,为本发明的自适应数据压缩和解压缩方法的流程示意图。
自适应数据压缩过程包括如下步骤:
2.1存储控制器为每个已存储数据段或已存储数据压缩段与每个卷或文件的逻辑数据段之间建立映射关系,为所有映射关系建立索引结构,并将该索引结构写入存储设备或存储介质中;
2.2存储控制器接收主机端101的写入数据流,将该写入数据流分成一个或者多个写入数据段,该存储控制器根据存储系统设定的压缩率目标、当前的负载情况,为每一个写入数据段自适应选择对应的压缩算法、参数进行数据压缩,产生压缩数据段;
2.3将压缩数据段写入存储设备或存储介质,更新索引结构,将该索引结构的更新部分写入存储设备或存储介质中。
如图3所示,为一种应用实例中的索引结构,以此为例,自适应数据压缩的过程具体包括以下几个步骤:
2.1)存储系统初始化步骤:
首先,存储控制器为每个已存储数据段或已存储数据压缩段与每个卷或文件的逻辑数据段之间建立映射关系。如图3所示,存储控制器为逻辑卷201中的第一逻辑数据段204、第二逻辑数据段205、第三逻辑数据段206、第四逻辑数据段207分别和存储设备208中的第一数据压缩段210、第二数据压缩段211、第三数据压缩段212、第四数据段213建立映射关系。其中,存储在存储设备208中的数据压缩段和数据段大小为该存储设备最小访问单元209的整数倍。
然后,为上述所有映射关系建立索引结构。在索引结构中,每一个数据段或者数据压缩段与一个索引段一一映射。每一个索引段表示为 <版本、逻辑起始地址、逻辑长度、物理起始地址、物理长度和压缩类型>,其中,逻辑起始地址表示数据段或者数据压缩段在逻辑卷或文件中的逻辑起始地址,逻辑长度则表示该数据段或者数据压缩段非压缩状态下的原始数据的长度;物理地址表示数据段或者数据压缩段存储在存储设备或者存储介质上的物理起始地址,物理长度表示该数据段或者数据压缩段在存储设备或者存储介质上所占据的长度大小;压缩类型表示将一个数据段压缩成为一个数据压缩段时,使用的压缩算法以及参数;版本是记录索引段写入的版本号,该版本号在每次索引段被更新时依次递增。
上述索引结构可以根据实际需要采用平衡树索引结构或者哈希表索引结构。如为平衡树索引结构,则以已存储数据段在卷或文件中的逻辑起始地址为键值,叶子节点中包含多个索引段。如为哈希表索引结构,则每个索引对中,键值为已存储数据段在卷或文件中的逻辑起始地址,值为索引段。
如图4所示,为本实施例中所采用的索引结构的示意图。在本实施例中,索引结构采用的是平衡树索引结构,每一个卷或文件都有一个平衡树索引结构,用于查询该卷或文件的一个已存储的逻辑数据段在存储设备上的物理地址。本实例的平衡树是一个B+树结构。
关键字301为数据段的逻辑起始地址。地址指针302与关键字301对应,保存了一个关键字对应的子节点的物理位置。根节点303 、中间节点304存储了多个关键字和地址指针。该B+树的叶节点中保存着多个索引段,如叶节点305包括索引段306等。在本实施例中,每个索引段表示为<版本、逻辑起始地址、逻辑长度、物理起始地址、物理长度和压缩类型>,一个索引段标示了存储设备上一段连续的物理地址范围,而且还表示了卷或者文件上的一段连续的逻辑地址范围,因此,索引段描述了一段连续的逻辑地址范围和一段连续的物理地址范围之间的映射关系。
最后,将上述索引结构写入存储设备中。如图3所示,索引结构记录了所有卷或文件的逻辑数据段和所有已存储数据段或者已存储数据压缩段的映射关系。
在本实例中,将索引结构写入存储设备,采用顺序写的方式,以充分开发存储设备的顺序写访问性能。
在本发明提供的数据自适应数据压缩和解压缩方法中,数据压缩过程的步骤2.1)为存储系统初始化步骤,在使用本发明提供的数据自适应数据压缩和解压缩方法的存储系统中,只需要执行一遍该步骤,即可使该存储系统具备使用本发明提供的数据自适应数据压缩和解压缩的前提条件。当该存储系统的存储设备更换时,该步骤需要重新执行一次。
2.2)产生压缩数据段:
首先,存储控制器接收主机端101的写入数据流,将该写入数据流分成一个或者多个写入数据段。
将该写入数据流分成一个或者多个写入数据段的分段方法可采用固定划分方法,即从写入的数据流的开始位置,以固定大小(如64KB)将写入的数据流分割为具有固定大小的写入数据段;如果写入数据流小于该固定大小,则整个写入的数据流作为一个数据段。在分段方法中,划分的写入数据段的大小下限为存储设备或存储介质的存储单元大小。比如,对于闪存介质来说,存储单元大小的下限为一个闪存页大小(通常为4KB-256KB)。
如图3所示,写入数据流217被存储控制器分为第一写入数据段214、第二写入数据段215、第三写入数据段216,每个写入数据段大小为5个存储设备208的存储单元大小,如数据块203所示。写入数据段流在分出第一写入数据段214和第二写入数据段215后,其大小小于5个存储单元大小,则其剩余部分直接作为第三写入数据段216。
然后,该存储控制器根据存储系统设定的压缩率目标、当前的负载情况,为每一个写入数据段自适应选择对应的压缩算法、参数进行数据压缩,产生压缩数据段。其中,为每一个写入数据段自适应选择对应的具体压缩算法、参数进行数据压缩的方法具体包括以下方法中的一个或几个:
1、根据压缩率目标自适应选择对应的具体压缩算法、参数进行数据压缩:存储控制器从默认压缩算法、参数开始,逐个使用每个存储控制器中可选的压缩算法、参数对所述写入数据段进行数据压缩,直到使用其中一种压缩算法、参数获得的压缩数据段的压缩率小于压缩率目标,则将该压缩算法、参数设置为默认压缩算法、参数,该压缩数据段为步骤2.2结果;如果在存储控制器中的全部压缩算法、参数中,都不存在一种压缩算法、参数满足压缩率目标要求,则选取其中压缩率最小的压缩算法、参数为默认压缩算法、参数,使用该压缩算法、参数产生的压缩数据段为步骤2.2)结果;
2、根据存储控制器负载状况自适应选择对应的具体压缩算法、参数进行数据压缩:将所有存储控制器中可选的压缩算法、参数按照存储控制器负载需求分组,根据当前存储控制器负载情况从对应组别中随机选取一个压缩算法、参数对所述写入数据段进行压缩,产生的数据压缩段为步骤2.2)结果;
3、根据压缩率目标和存储控制器负载状况自适应选择对应的具体压缩算法、参数进行数据压缩:所有存储控制器中可选的压缩算法、参数按照存储控制器负载需求分组,根据当前存储控制器负载情况从对应组别中逐个选取每个组内可选的压缩算法、参数对所述写入数据段进行数据压缩,直到使用其中一种压缩算法、参数获得的压缩数据段的压缩率小于压缩率目标,该压缩数据段为步骤2.2)结果;如果在该组别内的全部压缩算法、参数中,都不存在一种压缩算法、参数满足压缩率目标要求,则选取其中压缩率最低的压缩算法、参数,使用该压缩算法、参数产生的压缩数据段为步骤2.2)结果。
上述具体压缩算法包括任意可减小所述数据段大小的压缩算法,如LZ算法、用于pkzip和gzip的DEFLATE、PNG压缩算法、LZW、LZR等任何针对特定或通用数据类型设计的压缩算法。对同一种压缩算法选用不同的压缩参数也视为不同的所述具体压缩算法。比如,gzip能够通过调整压缩参数产生gzip-1和gzip-9(其中gzip-1通常比gzip-9的压缩速率更快,但压缩率却相对较低)两种不同的所述具体压缩算法。
在本实例中,采用根据压缩率目标和存储控制器负载状况自适应选择对应的具体压缩算法、参数进行数据压缩,设定的压缩目标为50%。如图3所示,存储控制器根据当前负载情况和压缩目标,在已按负载需求分好的压缩算法组别中,选取了gzip压缩算法并根据参数选择了具体的压缩算法gzip-9,将第一写入数据段214、第二写入数据段215、第三写入数据段216压缩成为第一数据压缩段221、第二数据压缩段222、第三数据压缩段223,其中第一数据压缩段221的压缩率为20%,第二数据压缩段222的压缩率为40%,达到了压缩率目标,直接成为本步骤所要求的数据压缩段。
而第三数据压缩段223压缩率为100%,并没有满足要求,于是存储控制器更换压缩算法继续对第三写入数据段216进行压缩。最终,在所述压缩算法组别中,所有压缩算法、参数对第三数据段216压缩的结果均是压缩率为100%,则采取压缩率最小的gzip-9为压缩算法、参数对其进行压缩,第三数据压缩段223为本步骤所要求的数据压缩段。
2.3)写入压缩数据段并更新索引结构:
将压缩数据段写入存储设备或存储介质,更新索引结构,将该索引结构的更新部分写入存储设备或存储介质中。
如图3所示,就是将第一数据压缩段221、第二数据压缩段222、第三数据压缩段223写入存储设备208中,更新索引结构,向索引结构中插入新的索引段。
如图5所示,为上述实例中自适应数据压缩过程的具体流程,包括如下步骤:
3.1接收所述主机端101的读请求;
3.2查询存储控制器中的索引结构,获得读请求对应的索引段;
3.3检查索引段中的压缩类型,如果压缩类型表示该数据未经过压缩,则进入步骤3.4,否则,进入步骤3.5;
3.4读取索引段中的物理起始地址和物理长度表示的存储设备或存储介质上的数据,并将该数据返回给主机端101,结束解压缩操作;
3.5读取索引段中的物理起始地址和物理长度表示的存储设备或存储介质上的数据,并根据索引段中的压缩类型表示的压缩算法、参数,用该压缩算法、参数对应的解压缩方法将该数据解压缩,返回给主机端101,结束解压缩操作。
本实例中,自适应数据压缩和解压缩的方法利用了当前CPU的多核和多线程特点,实现并发数据压缩操作,多个数据段被分给到多个不同的CPU计算线程,由不同的计算线程并发地执行数据压缩操作。
本实例中,自适应数据压缩和解压缩的方法中对存储设备或者存储介质写数据时均采用顺序写方法。
本发明进一步提供一种用来实施上述自适应数据压缩和解压缩方法的系统,它包括:
压缩单元,用来根据存储系统设定的压缩率目标、存储控制器的负载情况为需要压缩的数据段自适应选择对应的数据压缩算法、参数进行数据压缩;将压缩后的数据段和压缩算法、参数一并写入存储设备或者存储介质中。
解压缩单元,用来获取需要解压缩数据段的压缩算法、参数,并使用与所获得的压缩算法、参数对应的解压缩算法为相应的数据段解压缩。
本发明进一步提供一种存储装置,包括存储控制器和存储介质,所述存储控制器包括上述自适应数据压缩和解压缩系统。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (5)
1.一种自适应数据压缩和解压缩的方法,其特征在于,其步骤为:
(1)压缩:根据存储系统设定的压缩率目标、存储控制器的负载情况为需要压缩的数据段自适应选择对应的数据压缩算法、参数进行数据压缩;将压缩后的数据段和压缩算法、参数一并写入存储设备或者存储介质中;
(2)解压缩:获取需要解压缩数据段的压缩算法、参数,并使用与所获得的压缩算法、参数对应的解压缩算法为相应的数据段解压缩;
所述步骤(1)中进行压缩的具体流程为:
(1.1)存储控制器为每个已存储数据段或已存储数据压缩段与每个卷或文件的逻辑数据段之间建立映射关系,为所有映射关系建立索引结构,并将该索引结构写入存储设备或存储介质中;
(1.2)存储控制器接收主机端的写入数据流,将该写入数据流分成一个或者多个写入数据段;所述存储控制器根据存储系统设定的压缩率目标、存储控制器当前的负载情况为每一个写入数据段自适应选择对应的压缩算法、参数进行数据压缩,产生压缩数据段;
(1.3)将所述压缩数据段写入存储设备或存储介质,并更新所述索引结构,将该索引结构的更新部分写入存储设备或存储介质中;
所述步骤(1.2)中为每一个写入数据段自适应选择对应的具体压缩算法、参数进行数据压缩的方法具体包括以下方法(1.2.1)~(1.2.3)中的一个或多个:
(1.2.1)根据压缩率目标自适应选择对应的具体压缩算法、参数进行数据压缩:存储控制器从默认压缩算法、参数开始,逐个使用每个存储控制器中可选的压缩算法、参数对所述写入数据段进行数据压缩,直到使用其中一种压缩算法、参数获得的压缩数据段的压缩率小于压缩率目标,则将该压缩算法、参数设置为默认压缩算法、参数,该压缩数据段为步骤(1.2)结果;如果在存储控制器中的全部压缩算法、参数中,都不存在一种压缩算法、参数满足压缩率目标要求,则选取其中压缩率最低的压缩算法、参数为默认压缩算法、参数,使用该压缩算法、参数产生的压缩数据段为步骤(1.2)结果;
(1.2.2)根据存储控制器负载状况自适应选择对应的具体压缩算法、参数进行数据压缩:将所有存储控制器中可选的压缩算法、参数按照存储控制器负载需求分组,根据当前存储控制器负载情况从对应组别中随机选取一个压缩算法、参数对所述写入数据段进行压缩,产生的数据压缩段为步骤(1.2)结果;
(1.2.3)根据压缩率目标和存储控制器负载状况自适应选择对应的具体压缩算法、参数进行数据压缩:所有存储控制器中可选的压缩算法、参数按照存储控制器负载需求分组,根据当前存储控制器负载情况从对应组别中逐个选取每个组内可选的压缩算法、参数对所述写入数据段进行数据压缩,直到使用其中一种压缩算法、参数获得的压缩数据段的压缩率小于压缩率目标,该压缩数据段为步骤(1.2)结果;如果在该组别内的全部压缩算法、参数中,都不存在一种压缩算法、参数满足压缩率目标要求,则选取其中压缩率最低的压缩算法、参数,使用该压缩算法、参数产生的压缩数据段为步骤(1.2)结果。
2.根据权利要求1所述自适应数据压缩和解压缩的方法,其特征在于,所述步骤(2)中进行解压缩的具体流程为:
(2.1)接收所述主机端的读请求;
(2.2)查询存储控制器中的索引结构,获得所述读请求对应的索引段;
(2.3)检查所述索引段中的压缩类型,如果压缩类型表示该数据未经过压缩,则进入步骤(2.4),否则,进入步骤(2.5);
(2.4)读取所述索引段中的物理起始地址和物理长度表示的存储设备或存储介质上的数据,并将该数据返回给所述主机端,结束解压缩操作;
(2.5)读取所述索引段中的物理起始地址和物理长度表示的存储设备或存储介质上的数据,并根据所述索引段中的压缩类型表示的压缩算法、参数,用该压缩算法、参数对应的解压缩方法将该数据解压缩,返回给所述主机端,结束解压缩操作。
3.根据权利要求1所述自适应数据压缩和解压缩的方法,其特征在于,在对存储设备或者存储介质写数据时均采用顺序写方法。
4.一种用来实施权利要求1至3任一项所述的自适应数据压缩和解压缩方法的系统,其特征在于,包括:
压缩单元,用来根据存储系统设定的压缩率目标、存储控制器的负载情况为需要压缩的数据段自适应选择对应的数据压缩算法、参数进行数据压缩;将压缩后的数据段和压缩算法、参数一并写入存储设备或者存储介质中;
解压缩单元,用来获取需要解压缩数据段的压缩算法、参数,并使用与所获得的压缩算法、参数对应的解压缩算法为相应的数据段解压缩。
5.一种存储装置,包括存储控制器和存储介质,其特征在于,所述存储控制器包括权利要求4所述的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310246176.0A CN103516369B (zh) | 2013-06-20 | 2013-06-20 | 一种自适应数据压缩和解压缩的方法和系统及存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310246176.0A CN103516369B (zh) | 2013-06-20 | 2013-06-20 | 一种自适应数据压缩和解压缩的方法和系统及存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103516369A CN103516369A (zh) | 2014-01-15 |
CN103516369B true CN103516369B (zh) | 2016-12-28 |
Family
ID=49898504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310246176.0A Active CN103516369B (zh) | 2013-06-20 | 2013-06-20 | 一种自适应数据压缩和解压缩的方法和系统及存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103516369B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109802684A (zh) * | 2018-12-26 | 2019-05-24 | 华为技术有限公司 | 进行数据压缩的方法和装置 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187370B (zh) * | 2015-06-05 | 2019-11-12 | 北京奇虎科技有限公司 | 数据处理方法和系统 |
CN105094709A (zh) * | 2015-08-27 | 2015-11-25 | 浪潮电子信息产业股份有限公司 | 一种固态盘存储系统的动态数据压缩方法 |
CN106919617B (zh) * | 2015-12-25 | 2020-09-04 | 北京奇虎科技有限公司 | 一种压缩存储方法和装置 |
CN105718538B (zh) * | 2016-01-18 | 2019-05-14 | 中国科学院计算技术研究所 | 一种分布式文件系统的自适应压缩方法及系统 |
CN107341113B (zh) * | 2016-04-29 | 2020-05-26 | 龙芯中科技术有限公司 | Cache的压缩方法和装置 |
CN107179884A (zh) * | 2017-07-30 | 2017-09-19 | 长沙曙通信息科技有限公司 | 一种服务器存储新型数据压缩实现方法 |
WO2019119336A1 (zh) * | 2017-12-21 | 2019-06-27 | 深圳大学 | 一种通用数据gz格式的多线程压缩与解压方法及装置 |
CN109995373B (zh) * | 2018-01-03 | 2023-08-15 | 上海艾拉比智能科技有限公司 | 一种整数数组的混合打包压缩方法 |
CN110557124B (zh) * | 2018-05-30 | 2021-06-22 | 华为技术有限公司 | 一种数据压缩方法及装置 |
CN109088636B (zh) * | 2018-07-25 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种数据处理方法、系统及电子设备和存储介质 |
CN109614043A (zh) * | 2018-12-04 | 2019-04-12 | 郑州云海信息技术有限公司 | 一种数据压缩方法、装置、系统及计算机可读存储介质 |
CN111384965B (zh) * | 2018-12-28 | 2022-06-17 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据解压方法 |
CN111384961B (zh) * | 2018-12-28 | 2022-07-26 | 上海寒武纪信息科技有限公司 | 数据压缩解压装置和数据压缩方法 |
CN109802683B (zh) * | 2018-12-20 | 2023-04-14 | 深圳科安达电子科技股份有限公司 | 一种基于参数识别的轨道电路监测数据压缩方法和处理系统 |
CN113094292B (zh) | 2020-01-09 | 2022-12-02 | 上海宝存信息科技有限公司 | 数据存储装置以及非挥发式存储器控制方法 |
CN112286450A (zh) * | 2020-10-19 | 2021-01-29 | 苏州浪潮智能科技有限公司 | 一种数据远程复制方法及系统 |
CN113326001B (zh) * | 2021-05-20 | 2023-08-01 | 锐掣(杭州)科技有限公司 | 数据处理方法、装置、设备、系统、介质及程序 |
CN115480692A (zh) * | 2021-06-16 | 2022-12-16 | 华为技术有限公司 | 一种数据压缩方法及装置 |
CN113568573B (zh) * | 2021-07-14 | 2023-12-22 | 锐掣(杭州)科技有限公司 | 数据存储方法、数据存储装置、存储介质及产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070109156A1 (en) * | 1998-12-11 | 2007-05-17 | Fallon James J | Data compression system and methods |
CN101237301A (zh) * | 2008-02-22 | 2008-08-06 | 深圳市深信服电子科技有限公司 | 动态数据压缩技术 |
-
2013
- 2013-06-20 CN CN201310246176.0A patent/CN103516369B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070109156A1 (en) * | 1998-12-11 | 2007-05-17 | Fallon James J | Data compression system and methods |
CN101237301A (zh) * | 2008-02-22 | 2008-08-06 | 深圳市深信服电子科技有限公司 | 动态数据压缩技术 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109802684A (zh) * | 2018-12-26 | 2019-05-24 | 华为技术有限公司 | 进行数据压缩的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103516369A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103516369B (zh) | 一种自适应数据压缩和解压缩的方法和系统及存储装置 | |
US11232075B2 (en) | Selection of hash key sizes for data deduplication | |
US10956370B2 (en) | Techniques for improving storage space efficiency with variable compression size unit | |
KR101505263B1 (ko) | 데이터 중복 제거 방법 및 장치 | |
CN103514250B (zh) | 一种全局重复数据删除的方法和系统及存储装置 | |
US9569454B2 (en) | Selective compression of objects in a storage compute device | |
US11748322B2 (en) | Utilizing different data compression algorithms based on characteristics of a storage system | |
CN103688248B (zh) | 一种存储阵列的管理方法、装置和控制器 | |
CN111949621B (zh) | 一种基于场景切换的文件压缩存储方法及终端 | |
CN107807794A (zh) | 一种数据存储方法和装置 | |
CN104956312A (zh) | 存储装置及存储装置的控制方法 | |
CN104516824B (zh) | 数据存储系统中的存储管理方法和系统 | |
CN108008918A (zh) | 数据处理方法、存储节点及分布式存储系统 | |
US10296229B2 (en) | Storage apparatus | |
US7500054B2 (en) | Adaptive grouping in object RAID | |
US9405761B1 (en) | Technique to determine data integrity for physical garbage collection with limited memory | |
WO2015097756A1 (ja) | ストレージシステム及び重複排除制御方法 | |
CN102467458B (zh) | 建立数据区块的索引方法 | |
CN108780420A (zh) | 在基于处理器的系统中的存储器中的经压缩存储器线的基于优先级的存取 | |
US20140114936A1 (en) | Method for generating data in storage system having compression function | |
CN105677252B (zh) | 读数据的方法、数据处理方法及相关存储设备 | |
US8335904B1 (en) | Identifying active and inactive data in storage systems | |
KR20150035876A (ko) | 데이터 중복 제거 방법 및 장치 | |
US11221991B2 (en) | Techniques for selectively activating and deactivating entropy computation | |
US20110289273A1 (en) | Disk array device and method for controlling disk array device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |