CN114816222A - 数据压缩方法、电子设备和计算机程序产品 - Google Patents

数据压缩方法、电子设备和计算机程序产品 Download PDF

Info

Publication number
CN114816222A
CN114816222A CN202110088559.4A CN202110088559A CN114816222A CN 114816222 A CN114816222 A CN 114816222A CN 202110088559 A CN202110088559 A CN 202110088559A CN 114816222 A CN114816222 A CN 114816222A
Authority
CN
China
Prior art keywords
data
compressed
determining
storage system
compression level
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.)
Pending
Application number
CN202110088559.4A
Other languages
English (en)
Inventor
陈涛
韩耕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN202110088559.4A priority Critical patent/CN114816222A/zh
Priority to US17/182,724 priority patent/US11435956B2/en
Publication of CN114816222A publication Critical patent/CN114816222A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3091Data deduplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例提供了一种数据压缩方法、电子设备和计算机程序产品,该方法包括:确定存储系统中的待压缩数据的数量;基于待压缩数据的数量,确定用于压缩待压缩数据的目标压缩级别;以及根据目标压缩级别,对待压缩数据进行压缩。以此方式,能够利用与待压缩数据的数量相应的压缩级别对待压缩数据进行压缩,改进存储系统进行数据压缩的效率。

Description

数据压缩方法、电子设备和计算机程序产品
技术领域
本公开的实施例涉及计算机领域,并且更具体地,涉及数据压缩方法、电子设备和计算机程序产品。
背景技术
在大数据时代,海量数据的存在与有限的存储系统的存储空间之间的矛盾提出了对数据存储的压缩需求。可以理解的是,针对数据的压缩率越低,经压缩的数据将占用的存储数据越小,压缩效果也就越佳。较佳的压缩率意味着较大的逻辑容量,较多可缓存到SSD缓存中的数据、以及较佳的还原性能。然而,随着针对数据的压缩率的降低,存储系统所需要进行的计算将相应地提高,进而相同的时间内所能够压缩的数据的数量也将相应地减少。也即,在传统的存储系统中,数据压缩的效率较低。
发明内容
本公开的实施例提供了用于数据压缩的方案。
在本公开的第一方面中,提供了一种数据压缩方法,该方法包括确定存储系统中的待压缩数据的数量。该方法还包括基于待压缩数据的数量,确定用于压缩待压缩数据的目标压缩级别。该方法还包括根据目标压缩级别,对待压缩数据进行压缩。
在本公开的第二方面中,提供了一种电子设备,包括处理器;以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使电子设备执行动作,动作包括:确定存储系统中的待压缩数据的数量;基于待压缩数据的数量,确定用于压缩待压缩数据的目标压缩级别;以及根据目标压缩级别,对待压缩数据进行压缩。
在本公开的第三方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法的任意步骤。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。在附图中:
图1示出了根据本公开的实施例的示例性环境的示意图;
图2示出了与压缩级别有关的各种指标的各种图表的示意图;
图3示出了根据本公开的实施例的数据压缩的过程的流程图;
图4示出了根据本公开的实施例的确定目标压缩级别的过程的流程图
图5根据本公开的实施例的在数据存储的任务中,用于数据压缩的过程的示意图;
图6示出了根据本公开的实施例的在数据回收处理的任务中,用于数据压缩的过程的示意图;以及
图7示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“一组示例实施例”。术语“另一实施例”表示“一组另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所讨论的,在存储系统中,压缩率是指经压缩的数据的大小与原始数据的大小的比率。针对数据的压缩率越小,经压缩的数据所占的空间越少,但压缩所消耗的计算资源也相应越多,因此,在单位时间内,例如由于硬件条件的限制而具有有限的计算资源的存储系统能够压缩的数据的数量也就越少,反之亦然。为了平衡单位时间内存储系统能够压缩的数据的数量(在本文中有时也被称为数据吞吐量,或吞吐量,throughput)以及压缩率,在存储系统中,通常选取一个固定的压缩级别对数据进行压缩,以满足上述二者所提出的要求。(该压缩级别处,利用相同的硬件设备对数据段大小相同的数据进行压缩所获得压缩数据将具有一个大致固定的压缩率。然而,由于数据吞吐量随时间可以是实时变化的,对于数据吞吐量的峰值可能较大的存储系统而言,压缩级别通常不能选取过高,这将导致在实时的数据吞吐量较小的情况下,对数据的压缩并不够充分而导致存储空间和/或计算资源的浪费。
为了至少部分地解决上述缺点,本公开的实施例提供了一种数据压缩方案,以用于实现根据待压缩数据的数量来自适应地确定压缩级别以用于数据压缩。该方案能够实时确定待压缩数据的数量,并选择与该待压缩数据的数量相匹配的压缩级别来进行压缩。
基于这样的数据压缩方案,由于存储系统所采用的压缩级别是与待压缩数据的数量相适应的,因此,能够改进对数据的整体压缩率,从而改进对存储系统的存储空间和/或计算资源的利用效率
图1示出了根据本公开实施例的示例性环境100的示意图,在该示例环境中,根据本公开实施例的设备和/或方法可以被实施。如图1所示,如图1所示,示例性环境可以包括存储系统150。存储系统150可以包括计算设备105,以用于处理针对数据存储的各种操作,包括但不限于数据压缩和解压缩、数据去重、数据存储、数据备份和恢复。
存储系统150可以包括未示出的用于存储数据的(多个)存储盘。存储盘可以是各种类型的具有存储功能的设备,包括但不限于,硬盘(HDD)、固态盘(SSD)、可移除盘、任何其他磁性存储设备和任何其他光学存储设备、或它们的任何组合。
计算设备105可以被配置为对待压缩数据110进行压缩,以获取经压缩数据130。经压缩数据130可以被存储在存储盘中,以节省存储盘的存储空间。
在一些实施例中,存储系统150可以是用于数据备份的存储系统,其配置有重复数据删除(在本文中有时候也被去重或数据去重)器,以对数据中的重复部分进行去除而仅存储非重复部分,从而实现对存储空间的高效利用。存储系统150可以对经去重的数据进行进一步的压缩。在一些实施例中,存储系统150可以通过诸如QuickAssist加速压缩技术(QAT)的各种压缩技术,而利用对应的协处理器来对数据进行压缩。在一些实施例中,存储系统150可以被设置为采用各种压缩技术所提供的各种压缩级别来对数据进行压缩。
可以理解的是,在一些情况中,待压缩数据110的数量可以随时间而不同。例如,在对非第一次备份的数据进行存储的情况中,经去重的数据的数量(换言之,待压缩数据的数量)较原始数据的数量少得多。因此,如果存储系统能提供的计算资源相同,则可以采用较佳压缩级别对这样的情况中的数据进行压缩,以实现利用较高压缩率的各种益处,诸如逻辑容量,较多可缓存到SSD缓存中的数据、以及较佳的还原性能等。
因此,存储系统150(例如,存储系统的计算设备150)可以根据与待压缩数据110的数量相匹配的目标压缩级别130,对待压缩数据110进行压缩,以使得经压缩数据130尽可能地小,同时确保满足数据处理操作的延时要求。
下文将结合图2至图6详细描述根据本公开实施例的过程。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。可以理解,以下描述的实施例还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
图2示出了与压缩级别有关的各种指标的多个表的示意图200。应注意的是,图2仅示出在同一种硬件配置下,与QAT压缩技术所提供的各个压缩级别相对应的各种指标的图表。可以理解的是,在采取不同的其他硬件配置和/或采取其他压缩技术的情况下,类似的图表可以由本领域技术人员通过对存储系统的测试而获得。
表210示出根据本公开的实施例的单位时间内(秒,s)在各种压缩级别处,存储系统能够压缩的数据的数量,即吞吐量(GB/s)。压缩和/或解压缩可以分为动态类型和静态类型两种类型,其可以分别指代动态霍夫曼(huffman)数据压缩和/或解压缩、以及静态霍夫曼数据压缩和/或解压缩。
例如,QAT压缩技术可以提供动态压缩级别1至动态压缩级别4(本文中有时也被简称为动态级别)、以及静态压缩级别1至静态压缩级别4(本文中有时也被简称为静态级别)。在不同的压缩级别处,吞吐量各不相同。附加地,数据段大小,例如1K、4K、8K、16K、64K(单位:比特B),也可能影响吞吐量。
表220示出了根据本公开的实施例的在各种压缩级别处,存储系统所压缩的数据与数据大小的比率,即压缩率。从表220可以看出,对于相同的数据而言,较佳的压缩级别能够提供较低的压缩率,换言之,经压缩的数据所需要的存储空间更小。
从表210和表220可以看出,较佳的压缩级别所对应的吞吐量较低,换言之,单位时间内存储系统能够压缩的数据的数量较少。如果在待压缩数据的数量较大的情况下,仍然采用较佳的压缩级别,则可能导致存储系统的数据压缩的整体延时。因此压缩延迟可能因压缩级别而显著变化。
表230示出了根据本公开的实施例的单位时间内(秒,s)存储系统能够解压缩的根据各种压缩级别压缩过的数据的数量,即吞吐量(GB/s)。从表230可以看出,在不同的压缩级别处,存储系统能够解压缩的数据的数量差异不大,因此解压缩延迟将不会因压缩级别而显著变化。在解压缩延迟基本相同的情况下,在单位时间内,对较高的压缩级别压缩过的数据进行解压缩能够获得更多的数据。
可以理解的是,在采取不同的其他硬件配置和/或采取其他压缩技术的情况下,类似于上述图表所示出的指标的各种指标的确切值可以变化,但其之间的关系与上面参考上述图表所描述的那些类似。
图3示出了根据本公开的实施例的数据压缩的过程300的流程图。过程300可以在图1中示出的计算设备105处实现。
在302,计算设备105可以确定存储系统150中的待压缩数据110的数量。
具体地,待压缩数据是期望采用各种压缩技术或算法而进行压缩处理的数据。在一些实施例中,待压缩数据可以是存储系统中待存储(例如,待备份)数据。在一些实施例中,待压缩数据还可以是上述待存储数据经过数据去重处理后所获得的数据。上述数据经过压缩处理后可以被存储到存储盘中,以用于后续取回。
在另一些实施例中,已经被存储在存储盘中的已存储数据,在例如执行诸如垃圾回收(garbage collection)等数据回收处理的情况下,也期望采用各种压缩技术或算法而进行压缩处理,待压缩数据也可以是待进行回收的数据。
数据的数量可以采取各种方式而获得。在一些实施例中,这可以通过利用存储器的各种监控器来实现,以实时监控数据的数量大小的参数,并且附加地或备选地,利用这样的参数来计算待压缩数据的数量。例如,对于待存储数据,这可以通过检测输入到存储系统中的数据的流量或网络带宽来实现。
在304,计算设备105可以基于待压缩数据110的数量,确定用于压缩待压缩数据110的目标压缩级别120。
可以理解的是,压缩级别越佳,则压缩率越高,进而经压缩数据所需的存储空间较少。但存储系统处理数据通常需要满足一定的延时要求。在一些情况中,对于单位时间内较大数量的待压缩数据,采用例如最佳的压缩级别很可能会导致存储系统进行数据处理的时间过长,进而达不到预定的延时要求。在另一些情况中,对于单位时间内较小数量的待压缩数据,采用例如最差的压缩级别虽然能满足预定的延时要求,但很可能导致对存储空间不必要的占用。
因此,计算设备可以根据待压缩数据的数量选取与待压缩数据的数量相适应的最优压缩级别,使得预定的延时要求能够被满足,同时使得经压缩数据的压缩率最高。
在306,计算设备105可以根据目标压缩级别120,对待压缩数据进行压缩。经压缩数据130可以进一步存储在存储盘中。
以此方式,计算设备能够确定并利用与待压缩数据的数量相应的压缩级别对待压缩数据进行压缩,从而改进存储系统中对数据的压缩效率。
可以理解的是,计算设备105可以随着待压缩数据的数量的变化,而动态地调整目标压缩级别,以使所使用的压缩级别能够及时地对待压缩数据进行压缩而不造成过大的延迟。在一些实施例中,计算设备105可以响应于存储系统中可用于压缩待压缩数据的计算资源和/或待压缩数据的数量的改变,以例如再次执行上述步骤302-204来更新目标压缩级别。
在例如单位时间内待压缩的数据的数量减少和/或存储系统能够用于压缩数据的计算资源增加的情况下,计算设备可以确定是否要采用更高的压缩级别来进行数据的压缩,以获取对数据的更高的压缩率从而节省存储空间;而在例如单位时间内待压缩的数据的数量增加和/或存储系统能够用于压缩数据的计算资源增减少的情况下,计算设备可以确定是否要采用更低的压缩级别来进行数据的压缩,以通过降低对数据的压缩率而增加存储系统利用有限的计算资源所能够处理的数据的数量。以此方式,能够实现对压缩率的自适应调节,最大化对存储系统的计算资源的利用率,改进存储系统进行数据压缩的效率,并节省存储空间。
图4示出了根据本公开的实施例的确定目标压缩级别的过程400的流程图。过程400可以在图1中示出的计算设备105处实现。
在402,计算设备105可以确定存储系统150中可用于压缩待压缩数据110的计算资源。
具体地,在存储系统的硬件配置不变的情况下,其所能够提供的总计算资源将是固定的,该总计算资源例如与专用于压缩操作的协处理器的硬件配置和/或操作参数相关联。然而,可能存在并非全部计算资源均用于压缩数据的情况。因此,存储系统根据各个压缩级别所能够压缩的数据的数量也可能随时间而改变。
在一些实施例中,计算设备可以检测存储系统的可利用的部分计算资源占存储系统的总计算资源的比率(在本文中有时被称为利用率)。计算设备可以基于总计算资源以及上述比率,确定可用于压缩待压缩数据的计算资源。上述比率可以例如通过利用率监控器而获得。
在404,计算设备105可以基于上述计算资源,确定存储系统150根据多个候选压缩级别中的每个候选压缩级别能够压缩的数据的第一数量。
可以理解的是,由于根据各个压缩级别进行对相同量的数据进行压缩所消耗的计算资源并不相同。因此,可以确定基于所分配的计算资源,与各个候选压缩级别相对应的吞吐量,以用于目标压缩级别的确定。
在一些实施例中,计算设备可以获取与存储系统的总计算资源相关联的压缩级别映射表。压缩级别映射表可以包括多个候选压缩级别与多个第二数量之间的对应关系,每个第二数量是存储系统根据对应的候选压缩级别能够压缩的数据的数量(即,吞吐量)。例如,下面的表1展示了用于128KB的数据段压缩的压缩级别映射表的一个示例。
表1
Figure BDA0002911862280000081
Figure BDA0002911862280000091
压缩级别映射表中的数据可以基于对存储系统的测试而获取。在上面表1的示例中,其数据是从上面图2所展示的表中对应。可以理解的是,压缩级别映射表中所包括的候选压缩级别可以根据各种压缩技术的各个压缩级别所提供的压缩效果而选取,以使得针对每种范围的吞吐量并且附加地或备选地针对每种数据段的大小,压缩率均能得到优化。
计算设备可以基于压缩级别映射表以及确定的计算资源,确定对应于每个候选压缩级别的第一数量。
例如,如果确定的计算资源占总计算资源的比率为50%,则可以根据诸如上述表1的压缩级别映射表,确定根据静态级别1、动态级别1、动态级别2、动态级别3、动态级别4能够压缩的数据的数量分别是52.5、43、24.5、18以及12.5。
在406,计算设备105可以从多个候选压缩级别中选择目标压缩级别120,使得待压缩数据110的数量与对应于目标压缩级别120的第一数量相匹配。
所选择的目标压缩级别可以是能够满足存储系统延时要求,同时提供最优压缩率的压缩级别。更具体地,在所选择的目标压缩级别处,存储系统所能够压缩的待压缩数据的数量恰好大于或等于待压缩数据的数量。
举例而言,如果确定所有的计算资源均可用于压缩,并且待压缩数据的数量为40GB/s,则可以选取与该数量相匹配的动态级别2用于压缩待压缩数据。
如果确定所有的计算资源均可用于压缩,并且待压缩数据的数量例如因为去重率的改变而改变为20GB/s,则可以选取与该数量相匹配的动态级别4用于压缩待压缩数据。
如果确定可利用的计算资源占总计算资源的比率改变为50%,并且待压缩数据的数量为20GB/s,则可以选取与该数量相匹配的动态级别2用于压缩待压缩数据。
在一些实施例中,计算设备可以根据待压缩数据的数据段的大小,选择与该数据段大小相匹配的包括多个候选压级别的压缩级别映射表,并从中选取与待压缩数据的数量、以及其中数据段的大小均相匹配的目标压缩级别。
以此方式,计算设备能够选择最优的压缩级别对待压缩数据进行压缩,以使得经压缩的数据所占的存储空间被节省。
图5根据本公开的实施例的在数据存储的任务中,用于数据压缩的过程500的示意图。过程500可以在图1中示出的计算设备105处实现。
计算设备105可以确定将要向存储系统存储的待存储数据的数量。例如,计算设备105可以配置有数据量监控器512,用于待存储数据502的量进行统计以确定待存储数据的数量514。
计算设备105可以确定针对待存储数据的去重率。对于待存储数据502,计算设备可以例如配置有去重器504,以对待存储数据502中与已存储数据重复的部分进行删除。经去重的待存储数据可以作为待压缩数据510。
计算设备可以配置有去重率监控器506,以例如实时监控去重器504的操作,以确定针对待存储数据502的去重率506。
计算设备105可以基于待存储数据的数量以及去重率,确定待压缩数据510的数量。例如,如果待存储数据的数量为100GB/s,而去重率是60%,则待压缩数据的数量可以被确定为等于100×(1-60%)=40GB/s。待压缩数据的数量的上述确定过程可以例如被配置在计算设备105的控制器525处执行。
以此方式,在选取用于数据压缩的压缩级别时,可以将去重率的影响考虑在内,以更准确地选择目标压缩级别,改进存储系统进行数据压缩的效率。
计算设备还可以包括利用率监控器522,被配置为实时监控可用于压缩的计算资源占总计算资源的比率,并将其确定为利用率524。在一些实施例中,利用率监控器522可以针对同时进行的不同任务中的每个任务来确定利用率524。例如,利用率监控器522可以确定与待存储数据有关的压缩任务的利用率、与待进行回收处理数据(下文将更详细描述)有关的压缩任务的利用率以及其他任务(例如,解压缩任务)的利用率。
控制器525还可以被配置为基于预先确定的压缩级别映射表526、待压缩数据的数量、待压缩数据的数据段的大小信息、利用率524和/或存储系统的总计算资源等,确定待压缩数据的数量并据此选择合适的目标压缩级别520。目标压缩级别520的选取过程在上文参考图3和图4已描述过,在此不再赘述。
利用所选择的目标压缩级别520,计算设备105的压缩器515可以在待压缩数据510上执行压缩算法,以获取经压缩数据530。在一些实施例中,压缩器515可以由采用QAT技术的协处理器来实现。
图6示出了根据本公开的实施例的在数据回收处理的任务中,用于数据压缩的过程600的示意图。过程600可以在图1中示出的计算设备105处实现。
数据回收处理有时也被称为垃圾回收(Garbage Collection,GC)处理。可以理解的是,在存储系统中,数据回收处理并不是时时刻刻都在执行的,并且通常在存储系统空闲(即,存储系统的计算资源并不是全部被利用)时而执行。
数据回收处理涉及解压缩和再次压缩以重新组织存储盘上的数据。可期望的是,在数据回收处理中,利用较佳的压缩级别来重新压缩最初以较差压缩级别所压缩的数据,以使得存储盘上的存储空间进一步被节省。可以理解的是,在数据回收处理的过程中,同样需要满足系统的吞吐量要求。
计算设备105可以确定在存储系统中待进行回收处理的数据602的数量。这可以例如通过计算设备中的GC监控器612来实现。GC监控器被配置为实时对待进行回收处理的数据602的量进行统计,以确定待进行回收处理的数据的数量614。
计算设备105可以基于待进行回收处理的数据的数量614,确定待压缩数据的数量。这可以例如被配置在计算设备105的控制器625处执行。
计算设备105可以包括用于确定利用率624(例如,与待进行回收处理数据有关的压缩任务的利用率)的利用率监控器622。利用率监控器622与参考图5描述过的利用率监控器522类似,在此不再赘述。
控制器625还可以被配置为基于预先确定的压缩级别映射表626、待压缩数据的数量、待压缩数据的数据段的大小信息、利用率624和/或存储系统的总计算资源等,确定待压缩数据的数量并据此来选择合适的目标压缩级别620。目标压缩级别620的选取过程在上文参考图3和图4已描述过,在此不再赘述。
待进行回收处理的数据602在解压缩后可以作为待压缩数据610以进行重新压缩而具有更佳的压缩率。
利用所选择的目标压缩级别620,计算设备105的压缩器615可以在待压缩数据610上执行压缩算法,以获取经压缩数据630。在一些实施例中,压缩器615可以由采用QAT技术的协处理器来实现。
以此方式,能够为待进行回收处理的数据选择最优的压缩级别,使得经回收处理的数据压缩率更高,节省存储空间,改进存储系统的存储效率。
图7示出了可以用来实现本公开的实施例的示例电子设备700的示意性框图。例如,电子设备700可被用于实现图1中所示的计算设备105。如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元701执行上文所描述的各个方法和处理,例如过程300至600中的任一个。例如,在一些实施例中,过程300至600中的任一个可以被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由CPU 701执行时,可以执行上文描述的过程300至600中的任何过程中的一个或多个步骤。备选地,在其他实施例中,CPU 701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程300至600中的任一个。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、任意的非暂时性存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (15)

1.一种数据压缩方法,包括:
确定存储系统中的待压缩数据的数量;
基于所述待压缩数据的数量,确定用于压缩所述待压缩数据的目标压缩级别;以及
根据所述目标压缩级别,对所述待压缩数据进行压缩。
2.根据权利要求1所述的方法,其中确定所述待压缩数据的数量包括:
确定将要向所述存储系统存储的待存储数据的数量;
确定针对所述待存储数据的去重率;以及
基于所述待存储数据的数量以及所述去重率,确定所述待压缩数据的数量。
3.根据权利要求1所述的方法,其中确定所述待压缩数据的数量包括:
确定在所述存储系统中待进行回收处理的数据的数量;以及
基于所述待进行回收处理的数据的数量,确定所述待压缩数据的数量。
4.根据权利要求1所述的方法,其中确定所述目标压缩级别包括:
确定所述存储系统中可用于压缩所述待压缩数据的计算资源;
基于所述计算资源,确定所述存储系统根据多个候选压缩级别中的每个候选压缩级别能够压缩的数据的第一数量;以及
从所述多个候选压缩级别中选择所述目标压缩级别,使得所述待压缩数据的数量与对应于所述目标压缩级别的所述第一数量相匹配。
5.根据权利要求4所述的方法,其中确定所述计算资源包括:
检测所述存储系统的可利用的部分计算资源占所述存储系统的总计算资源的比率;以及
基于所述总计算资源以及所述比率,确定所述计算资源。
6.根据权利要求4所述的方法,其中确定所述存储系统根据每个候选压缩级别能够压缩的数据的第一数量包括:
获取与所述存储系统的总计算资源相关联的压缩级别映射表,所述压缩级别映射表包括所述多个候选压缩级别与多个第二数量之间的对应关系,每个第二数量是所述存储系统根据对应的候选压缩级别能够压缩的数据的数量;以及
基于所述压缩级别映射表以及确定的所述计算资源,确定对应于每个候选压缩级别的所述第一数量。
7.根据权利要求1所述的方法,其中确定所述目标压缩级别包括:
响应于以下至少一项的改变,更新所述目标压缩级别:
所述存储系统中可用于压缩所述待压缩数据的计算资源;以及
所述待压缩数据的数量。
8.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述电子设备执行动作,所述动作包括:
确定存储系统中的待压缩数据的数量;
基于所述待压缩数据的数量,确定用于压缩所述待压缩数据的目标压缩级别;以及
根据所述目标压缩级别,对所述待压缩数据进行压缩。
9.根据权利要求8所述的电子设备,其中确定所述待压缩数据的数量包括:
确定将要向所述存储系统存储的待存储数据的数量;
确定针对所述待存储数据的去重率;以及
基于所述待存储数据的数量以及所述去重率,确定所述待压缩数据的数量。
10.根据权利要求8所述的电子设备,其中确定所述待压缩数据的数量包括:
确定在所述存储系统中待进行回收处理的数据的数量;以及
基于所述待进行回收处理的数据的数量,确定所述待压缩数据的数量。
11.根据权利要求8所述的电子设备,其中确定所述目标压缩级别包括:
确定所述存储系统中可用于压缩所述待压缩数据的计算资源;
基于所述计算资源,确定所述存储系统根据多个候选压缩级别中的每个候选压缩级别能够压缩的数据的第一数量;以及
从所述多个候选压缩级别中选择所述目标压缩级别,使得所述待压缩数据的数量与对应于所述目标压缩级别的所述第一数量相匹配。
12.根据权利要求11所述的电子设备,其中确定所述计算资源包括:
检测所述存储系统的可利用的部分计算资源占所述存储系统的总计算资源的比率;以及
基于所述总计算资源以及所述比率,确定所述计算资源。
13.根据权利要求11所述的电子设备,其中确定所述存储系统根据每个候选压缩级别能够压缩的数据的第一数量包括:
获取与所述存储系统的总计算资源相关联的压缩级别映射表,所述压缩级别映射表包括所述多个候选压缩级别与多个第二数量之间的对应关系,每个第二数量是所述存储系统根据对应的候选压缩级别能够压缩的数据的数量;以及
基于所述压缩级别映射表以及确定的所述计算资源,确定对应于每个候选压缩级别的所述第一数量。
14.根据权利要求8所述的电子设备,其中确定所述目标压缩级别包括:
响应于以下至少一项的改变,更新所述目标压缩级别:
所述存储系统中可用于压缩所述待压缩数据的计算资源;以及
所述待压缩数据的数量。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至7中任一项所述的方法。
CN202110088559.4A 2021-01-22 2021-01-22 数据压缩方法、电子设备和计算机程序产品 Pending CN114816222A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110088559.4A CN114816222A (zh) 2021-01-22 2021-01-22 数据压缩方法、电子设备和计算机程序产品
US17/182,724 US11435956B2 (en) 2021-01-22 2021-02-23 Method, electronic device, and computer program product for data compression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110088559.4A CN114816222A (zh) 2021-01-22 2021-01-22 数据压缩方法、电子设备和计算机程序产品

Publications (1)

Publication Number Publication Date
CN114816222A true CN114816222A (zh) 2022-07-29

Family

ID=82494177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110088559.4A Pending CN114816222A (zh) 2021-01-22 2021-01-22 数据压缩方法、电子设备和计算机程序产品

Country Status (2)

Country Link
US (1) US11435956B2 (zh)
CN (1) CN114816222A (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051152B1 (en) * 2002-08-07 2006-05-23 Nvidia Corporation Method and system of improving disk access time by compression
JP5104740B2 (ja) * 2008-12-10 2012-12-19 富士通株式会社 データ転送装置、データ転送方法及びデータ転送プログラム
WO2013160969A1 (en) * 2012-04-27 2013-10-31 Hitachi, Ltd. Storage apparatus and data management method
US9626373B2 (en) * 2012-10-01 2017-04-18 Western Digital Technologies, Inc. Optimizing data block size for deduplication
JP6451359B2 (ja) * 2015-02-03 2019-01-16 富士通株式会社 通信記録装置、通信記録システム、通信記録プログラムおよび通信記録方法
US10833701B2 (en) * 2018-05-02 2020-11-10 EMC IP Holding Company LLC Process aware data compression
US20200356292A1 (en) * 2019-05-10 2020-11-12 Dell Products, Lp System and Method for Performance Based Dynamic Optimal Block Size Data Deduplication
CN110505484A (zh) * 2019-08-12 2019-11-26 深圳市华星光电技术有限公司 数据压缩装置及压缩方法

Also Published As

Publication number Publication date
US11435956B2 (en) 2022-09-06
US20220236922A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
CN108427539B (zh) 缓存设备数据的离线去重压缩方法、装置及可读存储介质
US9733854B2 (en) Dynamic adaptive compression in network storage device
RU2626334C2 (ru) Способ и устройство обработки объекта данных
US9048862B2 (en) Systems and methods for selecting data compression for storage data in a storage system
CN111857550B (zh) 用于数据去重的方法、设备以及计算机可读介质
CN110737399B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN112748863B (zh) 用于处理数据的方法、电子设备和计算机程序产品
US20150095553A1 (en) Selective software-based data compression in a storage system based on data heat
US10817178B2 (en) Compressing and compacting memory on a memory device wherein compressed memory pages are organized by size
CN104239518A (zh) 重复数据删除方法和装置
CN108984103B (zh) 用于去重的方法和设备
CN112835740A (zh) 用于管理数据备份的方法、电子设备和计算机程序产品
CN111143231A (zh) 用于数据处理的方法、设备和计算机程序产品
US11341055B2 (en) Method, electronic device, and computer program product for storage management
CN114065704A (zh) 数据压缩方法、电子设备和计算机程序产品
US10341467B2 (en) Network utilization improvement by data reduction based migration prioritization
US10637969B2 (en) Data transmission method and data transmission device
CN114816222A (zh) 数据压缩方法、电子设备和计算机程序产品
US10620863B2 (en) Managing data reduction in storage systems using machine learning
CN114780501A (zh) 数据处理方法、电子设备和计算机程序产品
CN103885859A (zh) 一种基于全局统计的去碎片方法及系统
CN115225094A (zh) 数据压缩方法、电子设备和计算机程序产品
KR102195239B1 (ko) 대역폭을 고려한 하둡의 데이터 압축 전송 방법, 이를 수행하기 위한 기록 매체 및 장치
CN113568573B (zh) 数据存储方法、数据存储装置、存储介质及产品
US20240004839A1 (en) Data compression method and apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination