CN113568573A - 数据存储方法、数据存储装置、存储介质及产品 - Google Patents

数据存储方法、数据存储装置、存储介质及产品 Download PDF

Info

Publication number
CN113568573A
CN113568573A CN202110797858.5A CN202110797858A CN113568573A CN 113568573 A CN113568573 A CN 113568573A CN 202110797858 A CN202110797858 A CN 202110797858A CN 113568573 A CN113568573 A CN 113568573A
Authority
CN
China
Prior art keywords
data block
size
buffer
space
data
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.)
Granted
Application number
CN202110797858.5A
Other languages
English (en)
Other versions
CN113568573B (zh
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.)
Ruizhe Hangzhou Technology Co ltd
Original Assignee
Ruizhe Hangzhou Technology Co ltd
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 Ruizhe Hangzhou Technology Co ltd filed Critical Ruizhe Hangzhou Technology Co ltd
Priority to CN202110797858.5A priority Critical patent/CN113568573B/zh
Publication of CN113568573A publication Critical patent/CN113568573A/zh
Application granted granted Critical
Publication of CN113568573B publication Critical patent/CN113568573B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • 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
    • 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/0656Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据存储方法、数据存储装置、存储介质及产品。该方法包括:接收主机端设备发送的数据写入请求,并将所述数据写入请求对应的待写入初始数据块进行压缩获得压缩数据块;根据初始数据块的大小和压缩数据块的大小确定数据压缩率;根据所述压缩率从预设的多个流缓冲中确定匹配的流缓冲,并将所述压缩数据块写入匹配的流缓冲对应的缓冲空间中;将所述对应的缓冲空间中的压缩数据块存储至对应的存储空间内。本发明的方法,基于数据压缩率将数据进行分类,将数据压缩率相同或相近的数据分配至相应的流缓冲中,进而存储至相应的存储空间,不需要对应用或者文件系统内核的写入路径进行修改,使得分类存储过程更加便捷。

Description

数据存储方法、数据存储装置、存储介质及产品
技术领域
本发明涉及计算机存储技术领域,尤其涉及一种数据存储方法、数据存储装置、存储介质及产品。
背景技术
随着计算机技术和互联网技术的快速发展,各行各业对存储设备的容量和性能要求越来越高。固态硬盘经过多年的发展,其容量和性价比都在不断提升,在很多系统中已逐渐代替传统的磁盘,成为主流的存储设备。固态硬盘一般是以闪存(NAND Flash)作为永久性存储介质。闪存由于其固有的物理特性,使得固态硬盘需要垃圾回收机制对空间进行回收。目前提高垃圾回收效率通常会进行分类存储,由主机提供ID信息,存储设备根据ID信息将数据分类存放。
上述基于ID信息进行分类存储的过程中需要对应用、文件系统进行修改,使得整个过程操作复杂,不够便捷。
发明内容
本发明提供一种数据存储方法、数据存储装置、存储介质及产品,用以解决现有的分类存储流程操作复杂,不够便捷的问题。
第一方面,本发明提供一种数据存储方法,包括:
接收主机端设备发送的数据写入请求,并将所述数据写入请求对应的待写入初始数据块进行压缩获得压缩数据块;
根据初始数据块的大小和压缩数据块的大小确定数据压缩率;
根据所述压缩率从预设的多个流缓冲中确定匹配的流缓冲,并将所述压缩数据块写入匹配的流缓冲对应的缓冲空间中;
将所述对应的缓冲空间中的压缩数据块存储至对应的存储空间内。
第二方面,本发明提供一种数据存储装置,包括:
数据压缩单元,用于接收主机端设备发送的数据写入请求,并将所述数据写入请求对应的初始数据块进行压缩获得压缩数据块;
计算单元,用于根据初始数据块的大小和压缩数据块的大小确定数据压缩率;
流分配单元,用于根据所述压缩率从多个流缓冲中确定匹配的流缓冲,并将所述压缩数据块写入匹配的流缓冲对应的缓冲空间中;
数据写入单元,用于将所述对应的缓冲空间中的压缩数据块存储至对应的存储空间内。
第三方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
第四方面,本发明实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所述的方法。
本发明提供的一种数据存储方法、数据存储装置、存储介质及产品,通过接收主机端设备发送的数据写入请求,将数据写入请求对应的待写入初始数据块进行压缩处理,获得压缩数据块,根据初始数据块的大小和压缩数据块的大小计算数据压缩率,进一步根据数据压缩率从预设的多个流缓冲中确定匹配的流缓冲,将压缩数据块写入匹配的流缓冲对应的缓冲空间中,之后将对应的缓冲空间中的压缩数据块存储至对应的存储空间内。由于不同类型的数据,数据压缩率往往也是有区别的。基于数据压缩率可将数据进行分类,将数据压缩率相同或相近的数据分配至相应的流缓冲中,进而存储至相应的存储空间,能够将不同类型的数据存储到不同的存储空间,不需要对应用或者文件系统内核的写入路径进行修改,使得分类存储过程更加便捷。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本发明提供的数据存储方法的网络架构示意图;
图2是本发明实施例一提供的数据存储方法的流程示意图;
图3是本发明流缓冲和存储空间示意图;
图4是本发明实施例二提供的数据存储方法的流程示意图;
图5是本发明实施例四提供的数据存储方法的流程示意图;
图6是本发明实施例五提供的数据存储方法的流程示意图;
图7是本发明实施例六提供的数据存储方法的流程示意图;
图8是本发明实施例七提供的数据存储方法的流程示意图;
图9是本发明缓冲空间示意图;
图10是本发明实施例八提供的数据存储方法的流程示意图;
图11是本发明一实施例提供的数据存储装置的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
现有技术中,固态硬盘一般是以闪存作为永久性存储介,闪存由于其物理特性,写入其中的数据无法进行原址更新,因而如果旧的数据进行更新,需要将更新的数据写入新的地址,所以固态硬盘需要垃圾回收机制对旧空间进行回收。现有的存储系统将数据压缩后写入存储设备中,这些数据包括元数据、用户数据、应用程序的日志等。为了提升垃圾回收的效率,通常会对写入的数据进行分类存储,现有的分类存储主要是由主机提供信息例如数据对应的ID信息,存储设备根据ID信息将存储数据分开存储。
而现有技术中,基于ID信息将写入的数据分离存储的过程中,需要对应用或者文件系统内核的写入路径进行修改,因此并不适用于大量的存储业务,整个过程操作复杂,不够便捷。
所以针对现有技术中的分类存储流程操作复杂,不够便捷的技术问题,发明人在研究中发现,压缩算法固定的情况下,对于不同类型的数据,压缩情况也是不同,例如文件系统的元数据,不易压缩压缩性能差,有些容易压缩的数据压缩性能好,通过计算压缩前后的数据压缩率,数据压缩率相同或者相近可认为是相同类型的数据,将相同类型的数据写入与压缩率匹配的流缓冲对应的缓冲空间中,进一步存储至与流缓冲对应的存储空间内,基于数据压缩率将压缩数据块分类存储,相同类型的数据生命周期相近,即数据更新频率近似,将数据压缩率相同或相近的数据分配至相应的流缓冲中,进而存储至相应的存储空间,不需要对应用或者文件系统内核的写入路径进行修改,使得分类存储过程更加便捷。
所以发明人基于上述的创造性发现,提出了本发明实施例的技术方案。下面对本发明实施例提供的数据存储方法的网络架构及应用场景进行介绍。
如图1所示,本发明实施例提供的数据存储方法对应的网络架构中包括:压缩存储设备1及主机端设备2,压缩存储设备1为主机端设备2的外存,压缩存储设备1与主机端设备2可通过总线连接。主机端设备2预先安装有数据存储方法对应的客户端,用户在客户端的操作界面中选择数据存储的链接或者图标,触发数据写入请求,主机端设备2接收数据写入请求,并将数据写入请求发送至压缩存储设备1。压缩存储设备1解析写入请求,获得待写入初始数据块,压缩存储设备1将初始数据块进行压缩处理,获得压缩数据块,进一步根据初始数据块的大小和压缩数据块的大小计算数据压缩率,并根据数据压缩率从预设的多个流缓冲中确定匹配的流缓冲,进一步将压缩数据块写入匹配的流缓冲对应的缓冲空间中,最后,压缩存储设备1将对应的缓冲空间中的压缩数据块存储至流缓冲对应的存储空间内。基于数据压缩率将压缩数据块分类存储,相同类型的数据生命周期相近,即数据更新频率近似,将数据压缩率相同或相近的数据分配至相应的流缓冲中,进而存储至相应的存储空间,不需要对应用或者文件系统内核的写入路径进行修改,使得分类存储过程更加便捷。
实施例一
图2是本发明实施例一提供的数据存储方法的流程示意图,如图2所示,本实施例提供的数据存储方法的执行主体为数据存储装置,本实施例提供的数据存储方法包括以下步骤:
步骤101,接收主机端设备发送的数据写入请求,并将数据写入请求对应的待写入初始数据块进行压缩获得压缩数据块。
本实施例中,数据存储装置接收主机端设备发送的数据写入请求,解析数据写入请求,获得待写入初始数据块,将数据写入请求对应的待写入初始数据块进行压缩处理,参见图3,数据存储装置设置有压缩单元,初始数据块由压缩单元进行压缩,得到压缩数据块,对数据进行压缩处理可节约存储空间。
其中,初始数据块是指未经过压缩处理的数据块,压缩数据块指经过压缩处理的数据块。
步骤102,根据初始数据块的大小和压缩数据块的大小确定数据压缩率。
本实施例中,获取初始数据块的大小以及压缩数据块的大小,根据初始数据块的大小和压缩数据块的大小计算得到数据压缩率,具体地,计算初始数据块的大小与压缩数据块的大小的比值,该比值为数据压缩率。
其中,初始数据块的大小大于或等于压缩数据块的大小。
步骤103,根据压缩率从预设的多个流缓冲中确定匹配的流缓冲,并将压缩数据块写入匹配的流缓冲对应的缓冲空间中。
本实施例中,预先在数据存储装置中设置多个流缓冲,每个流缓冲对应不同的压缩率范围,压缩率总范围为[0,1],将压缩率总范围拆分为多个压缩率范围,例如,参见图3,预先在数据存储装置中设置3个流缓冲,分别为流缓冲1、流缓冲2和流缓冲3,流缓冲1对应的压缩率范围为[0,0.3),流缓冲2对应的压缩率范围为[0.3,0.7),流缓冲3对应的压缩率范围为[0.7,1]。数据存储装置设置有流分配单元,由流分配单元为压缩数据块确定匹配的流缓冲。
需要说明的是,各流缓冲对应的压缩率范围可根据实际实用情况进行调整。
本实施例中,同类型的数据具有相似的压缩性采用相同的压缩算法,压缩之后得到的数据块大小与初始数据块的大小呈正相关,因此可根据初始数据块的大小与压缩数据块的大小的比值为压缩数据块分配对应的流缓冲,即根据数据压缩率从多个预设的流缓冲中确定匹配的流缓冲,例如,某数据压缩率为0.5,预先设置3个流缓冲,流缓冲1、流缓冲2和流缓冲3分别对应的压缩率范围为[0,0.3),[0.3,0.7)和[0.7,1],将数据压缩率0.5与3个流缓冲对应的压缩率进行匹配,0.5属于[0.3,0.7),匹配的流缓冲为流缓冲2。
本实施例中,每个流缓冲都有各自对应的缓冲空间,在确定匹配的流缓冲后,将压缩数据块写入匹配的流缓冲对应的缓冲空间。
其中,缓冲空间为缓冲区,是压缩数据块的临时存储区。
步骤104,将对应的缓冲空间中的压缩数据块存储至对应的存储空间内。
本实施例中,将压缩数据块暂时存放至缓冲空间,待缓冲空间被压缩数据块占满时,将缓冲空间中的压缩数据块一同存储至存储空间。如图3所示,流缓冲1、流缓冲2和流缓冲3分别对应存储空间A、存储空间B和存储空间C。
本实施例中,预先设置多个流缓冲,根据数据压缩率为对应的压缩数据块匹配流缓冲,将压缩数据块写入匹配的流缓冲对应的缓冲空间中,将对应的缓冲空间的压缩数据块一同存储至存储空间内,实际上,匹配流缓冲就是为了将生命周期相差不大的数据存储在一起,基于压缩率的不同,匹配对应的流缓冲,将生命周期相差较大的数据分开存储,不需要对应用或者文件系统内核的写入路径进行修改,使得分类存储过程更加便捷。
实施例二
图4是本发明实施例二提供的数据存储方法的流程示意图,如图4所示,在本发明实施例一提供的数据存储方法的基础上,对步骤101中将数据写入请求对应的待写入初始数据块进行压缩获得压缩数据块,包括以下步骤:
步骤1011,获取压缩存储设备对应的压缩粒度和初始数据块的大小。
本实施例中,压缩存储设备包括固态硬盘,获取压缩存储设备对应的压缩粒度和初始数据块的大小,初始数据块很大时需要对初始数据块进行分块处理,分成多个小的初始数据块。
步骤1012,根据压缩粒度和初始数据块的大小确定是否对初始数据块进行分块处理。若否,则执行步骤1013;若是,则执行步骤1014。
本实施例中,将压缩存储设备的压缩粒度和初始数据块的大小进行比较,根据比较结果确定是否对初始数据块进行分块处理,分块处理需要将较大的初始数据块分成多个小的初始数据块,初始数据块的大小可根据属性信息中的大小确定。
步骤1013,对初始数据块进行压缩获得压缩数据块。
本实施例中,若确定不需要对初始数据块进行分块处理,则对初始数据块直接进行压缩处理,获得压缩数据块。
步骤1014,对初始数据块进行分块处理获得多个对应的初始数据块,对多个对应的初始数据块进行压缩获得多个对应的压缩数据块。
本实施例中,若确定需要对初始数据块进行分块处理,则对初始数据块进行切分,获得多个对应的初始数据块,并对多个初始数据块进行压缩获得多个对应的压缩数据块,根据各压缩数据块对应的数据压缩率从多个预设流缓冲中确定匹配的流缓冲,并将压缩数据块写入匹配的流缓冲对应的缓冲空间中,进一步将缓冲空间中的压缩数据块存储至对应的存储空间内。
实施例三
在本发明实施例二提供的数据存储方法的基础上,对步骤1012进一步的细化,包括以下步骤:
步骤1012a,将初始数据块的大小与压缩粒度进行比较。
本实施例中,压缩存储设备对应的压缩粒度为预先设置的,例如,压缩粒度为4KB,那么只能压缩等于4KB或小于4KB的数据,等于4KB或小于4KB的数据可直接进行压缩处理,大于4KB的数据需要先进行分块处理,再进行压缩处理。将初始数据块的大小与压缩粒度进行比较,根据比较结果确定初始数据块是否需要进行分块处理。
步骤1012b,若初始数据块的大小等于或小于压缩粒度,则确定初始数据块无需进行分块处理。
本实施例中,若初始数据块的大小等于或小于压缩粒度,例如,初始数据块的大小为2KB,压缩粒度为4KB,该初始数据块的大小小于压缩粒度,该初始数据块不需要进行分块处理,可直接进行压缩处理。
步骤1012c,若初始数据块的大小大于压缩粒度,则确定初始数据块需进行分块处理。
本实施例中,若初始数据的大小大于压缩粒度,例如,初始数据块的大小为12KB,压缩粒度为4KB,该初始数据块的大小大于压缩粒度,远超出压缩能力,该初始数据块需要进行分块处理,再进行压缩处理。
需要说明的是,压缩粒度不限于4KB,还可是其他适合的数值。
实施例四
图5是本发明实施例四提供的数据存储方法的流程示意图,如图5所示,在本发明实施例二提供的数据存储方法的基础上,对步骤1014进一步的细化,包括以下步骤:
步骤1014a,根据压缩粒度和初始数据块的大小计算分块数。
本实施例中,若初始数据块需要进行分块处理,进一步确定分块数,计算初始数据块的大小与压缩粒度的比值,根据该比值确定分块数,例如,初始数据块的大小为13KB,压缩粒度为4KB,比值为3.25,该比值需要取整数,对应的分块数为4。
步骤1014b,按照分块数对初始数据块进行分块处理获得多个对应的初始数据块。
本实施例中,按计算得到的分块数对初始数块进行分块处理,每4KB的数据切分为一块初始数据块,不满4B的数据也切分为一块初始数据块,由此得到多个对应的初始数据块。
需要说明的是,上述压缩粒度不仅限于4KB,还可是其他适合的数值。
实施例五
图6是本发明实施例五提供的数据存储方法的流程示意图,如图6所示,在本发明实施例一提供的数据存储方法的基础上,对步骤102进一步的细化,包括以下步骤:
步骤1021,计算压缩数据块的大小与初始数据块的大小的比值。
本实施例中,根据公式计算压缩数据块的大小与初始数据块的大小的比值,公式如下:
Figure BDA0003163442200000081
其中,Z为比值,X为初始数据块的大小,Y为压缩数据块的大小。
步骤1022,将比值确定为数据压缩率。
本实施例中,将计算得到的压缩数据块的大小与初始数据块的大小的比值确定为数据压缩率。
实施例六
图7是本发明实施例六提供的数据存储方法的流程示意图,如图7所示,在本发明实施例一提供的数据存储方法的基础上,对步骤103中的根据压缩率从预设的多个流缓冲中确定匹配的流缓冲进一步的细化,包括以下步骤:
步骤1031,获取多个流缓冲对应的预设压缩率范围。
本实施例中,预先在数据存储装置中设置多个流缓冲,每个流缓冲对应压缩率范围都不同,压缩率总范围为[0,1],将压缩率总范围拆分为多个压缩率范围,例如,参见图3,预先在数据存储装置中设置3个流缓冲,分别为流缓冲1、流缓冲2和流缓冲3,流缓冲1对应的压缩率范围为[0,0.3),流缓冲2对应的压缩率范围为[0.3,0.7),流缓冲1对应的压缩率范围为[0.7,1]。
步骤1032,将数据压缩率与多个预设压缩率范围进行匹配,并将匹配的压缩率范围对应的流缓冲确定为匹配的流缓冲。
本实施例中,由流分配单元对压缩数据块进行分配,根据压缩数据块的压缩率为该压缩数据块分配适合的流缓冲,具体地,将压缩数据块的数据压缩率与多个预设预设范围进行匹配,例如,某压缩数据块的数据压缩率为0.5,将该压缩率与多个预设压缩率范围进行匹配,0.5属于[0.3,0.7),并将匹配的压缩率范围对应的流缓冲2确定为匹配的流缓冲。
本实施例中,基于数据压缩率将压缩数据块分类存储,相同类型的数据生命周期相近,压缩性也相近,将数据压缩率相同或相近的数据分配至相应的流缓冲中,进而存储至相应的存储空间,能够将不同类型的数据存储到不同的存储空间,不需要对应用或者文件系统内核的写入路径进行修改,使得分类存储过程更加便捷。
实施例七
图8是本发明实施例七提供的数据存储方法的流程示意图,如图8所示,在本发明实施例一提供的数据存储方法的基础上,对步骤103中的将压缩数据块写入匹配的流缓冲对应的缓冲空间中进一步的细化,包括以下步骤:
步骤103a,获取匹配的流缓冲对应的当前缓冲空间的可用空间大小。
本实施例中,根据流缓冲对应的当前缓冲空间的空间大小和当前缓冲空间的已用空间大小得到当前缓冲空间的可用空间大小,具体地,计算当前缓冲空间的空间大小与当前缓冲空间的已用空间大小的差值,将差值确定为当前缓冲空间的可用空间大小。
步骤103b,将可用空间大小与压缩数据块的大小进行比较。
本实施例中,将当前缓冲空间的可用空间大小与压缩数据块的大小进行比较,根据比较结果将压缩数据块写入对应的缓冲空间中。
步骤103c,若可用空间大小大于或等于压缩数据块的大小,则将压缩数据块写入匹配的流缓冲对应的当前缓冲空间内。
本实施例中,若当前缓冲空间的可用空间大小大于或等于压缩数据块的大小,说明当前缓冲空间可容纳该压缩数据块,可将压缩数据块写入匹配的流缓冲对应的当前缓冲空间内。
步骤103d,若可用空间大小小于压缩数据块的大小,则为匹配的流缓冲创建新的缓冲空间,并将压缩数据块写入新的缓冲空间内。
本实施例中,若当前缓冲空间的可用空间大小小于压缩数据块的大小,说明当前缓冲空间无法容纳该压缩数据块,为匹配的流缓冲创建新的缓冲空间,并将压缩数据块写入新的缓冲空间内。
需要说明的是,参见图9,当前缓冲空间的空间大小为16KB,当前缓冲空间的已用空间大小为15KB,计算得到的当前缓冲空间的可用空间大小为1KB,压缩数据块的大小为2KB,2KB大于1KB,不能将压缩数据块写入当前缓冲空间中,此时可建立新的缓冲空间,将压缩数据块写入新的缓冲空间中。而当前的缓冲空间中X部分代表填充数据,用填充数据将当前缓冲空间可用空间占满,使得当前缓冲空间的可用空间为0,并将当前缓冲空间中的全部压缩数据块存储至对应的存储空间中。或者,在可用空间大小小于压缩数据块的大小时,将压缩数据块进行分块处理,如图9所示,当前缓冲空间的可用空间大小为1KB,压缩数据块的大小为2KB,将压缩数据块分成2块,每块压缩数据块的大小为1KB,用拆分后的压缩数据块的1KB数据将当前缓冲空间的可用空间占满,使得当前缓冲空间的可用空间为0,并将当前缓冲空间中的全部压缩数据块存储至对应的存储空间中,同时,建立新的缓冲空间,将拆分的压缩数据块的1KB数据写入新的缓冲空间中。
实施例八
图10是本发明实施例八提供的数据存储方法的流程示意图,如图10所示,在本发明实施例一提供的数据存储方法的基础上,对步骤104进一步的细化,包括以下步骤:
步骤1041,判断对应的缓冲空间是否有可用空间;若否,则执行步骤1042;若是,则执行步骤1043。
本实施例中,判断匹配的流缓冲对应的缓冲空间是否有可用空间,具体地,计算流缓冲对应的缓冲空间的空间大小和缓冲空间的已用空间大小得到缓冲空间的可用空间大小,若可用空间大小大于0,说明还有剩余空间,确定匹配的流缓冲对应的缓冲空间存在可用空间;若可用空间大小为0,说明无剩余空间,确定匹配的流缓冲对应的缓冲空间不存在可用空间。
步骤1042,将对应的缓冲空间中的全部压缩数据块存储至对应的存储空间内。
本实施例中,若匹配的流缓冲对应的缓冲空间不存在可用空间,进一步将缓冲空间的全部压缩数据块存储至对应的存储空间内。
步骤1043,待对应的缓冲空间无可用空间后,将对应的缓冲空间中的全部压缩数据块存储至对应的存储空间内。
本实施例中,若匹配的流缓冲对应的缓冲空间存在可用空间,待该缓冲空间无可用空间后,将对应的缓冲空间中的全部压缩数据块存储至对应的存储空间内。
可选地,将对应的缓冲空间中的全部压缩数据块存储至对应的存储空间内,包括以下步骤:
步骤100,将对应的缓冲空间中的全部压缩数据块存储至与该缓冲空间对应的流缓冲对应的存储空间内。
本实施例中,数据压缩率决定压缩数据块应该分配至哪个流缓冲,预先为每个流缓冲建立对应的存储空间,将数据压缩率相同或相近的压缩数据块存储到相同的存储空间,压缩率相同或相近的压缩数据块在某些实际应用场景中可认为是相同类型的数据,即将缓冲空间中的全部压缩数据块存储至该缓冲空间对应的流缓冲对应的存储空间内,相同类型的数据有着相似的生命周期,不需要对应用或者文件系统内核的写入路径进行修改,使得分类存储过程更加便捷。
图11是本发明一实施例提供的数据存储装置300的结构示意图,如图11所示,本实施例提供的数据存储装置包括数据压缩单元301,计算单元302,流分配单元303和数据写入单元304。
其中,数据压缩单元301,用于接收主机端设备发送的数据写入请求,并将数据写入请求对应的待写入初始数据块进行压缩获得压缩数据块。计算单元302,用于根据初始数据块的大小和压缩数据块的大小确定数据压缩率。流分配单元303,用于根据压缩率从预设的多个流缓冲中确定匹配的流缓冲,并将压缩数据块写入匹配的流缓冲对应的缓冲空间中。数据写入单元304,用于将对应的缓冲空间中的压缩数据块存储至对应的存储空间内。
可选地,数据压缩单元301,还用于获取压缩存储设备对应的压缩粒度和初始数据块的大小;根据压缩粒度和初始数据块的大小确定是否对初始数据块进行分块处理;若否,则对初始数据块进行压缩获得压缩数据块;若是,则对初始数据块进行分块处理获得多个对应的初始数据块,对多个对应的初始数据块进行压缩获得多个对应的压缩数据块。
可选地,数据压缩单元301,还用于将初始数据块的大小与压缩粒度进行比较;若初始数据块的大小等于或小于压缩粒度,则确定初始数据块无需进行分块处理;若初始数据块的大小大于压缩粒度,则确定初始数据块需进行分块处理。
可选地,数据压缩单元301,还用于根据压缩粒度和初始数据块的大小计算分块数;
按照分块数对初始数据块进行分块处理获得多个对应的初始数据块。
可选地,计算单元302,还用于计算压缩数据块的大小与初始数据块的大小的比值;将比值确定为数据压缩率。
可选地,流分配单元303,还用于获取多个流缓冲对应的预设压缩率范围;将数据压缩率与多个预设压缩率范围进行匹配,并将匹配的压缩率范围对应的流缓冲确定为匹配的流缓冲。
可选地,流分配单元303,还用于获取匹配的流缓冲对应的当前缓冲空间的可用空间大小;将可用空间大小与压缩数据块的大小进行比较;
若可用空间大小大于或等于压缩数据块的大小,则将压缩数据块写入匹配的流缓冲对应的当前缓冲空间内;若可用空间大小小于压缩数据块的大小,则为匹配的流缓冲创建新的缓冲空间,并将压缩数据块写入新的缓冲空间内。
可选地,数据写入单元304,还用于判断对应的缓冲空间是否有可用空间;若否,则将对应的缓冲空间中的全部压缩数据块存储至对应的存储空间内;若是,则待对应的缓冲空间无可用空间后,将对应的缓冲空间中的全部压缩数据块存储至对应的存储空间内。
可选地,数据写入单元304,还用于将对应的缓冲空间中的全部压缩数据块存储至与该缓冲空间对应的流缓冲对应的存储空间内。
在示例性实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述任一实施例的方法。
在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述任一实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。

Claims (12)

1.一种数据存储方法,其特征在于,所述方法包括:
接收主机端设备发送的数据写入请求,并将所述数据写入请求对应的待写入初始数据块进行压缩获得压缩数据块;
根据初始数据块的大小和压缩数据块的大小确定数据压缩率;
根据所述压缩率从预设的多个流缓冲中确定匹配的流缓冲,并将所述压缩数据块写入匹配的流缓冲对应的缓冲空间中;
将所述对应的缓冲空间中的压缩数据块存储至对应的存储空间内。
2.根据权利要求1所述的方法,其特征在于,所述将所述数据写入请求对应的待写入初始数据块进行压缩获得压缩数据块,包括:
获取压缩存储设备对应的压缩粒度和所述初始数据块的大小;
根据所述压缩粒度和所述初始数据块的大小确定是否对所述初始数据块进行分块处理;
若否,则对所述初始数据块进行压缩获得压缩数据块;
若是,则对所述初始数据块进行分块处理获得多个对应的初始数据块,对所述多个对应的初始数据块进行压缩获得多个对应的压缩数据块。
3.根据权利要求2所述的方法,其特征在于,所述根据所述压缩粒度和所述初始数据块的大小确定是否对所述初始数据块进行分块处理,包括:
将所述初始数据块的大小与所述压缩粒度进行比较;
若所述初始数据块的大小等于或小于所述压缩粒度,则确定所述初始数据块无需进行分块处理;
若所述初始数据块的大小大于所述压缩粒度,则确定所述初始数据块需进行分块处理。
4.根据权利要求2所述的方法,其特征在于,所述对所述初始数据块进行分块处理获得多个对应的初始数据块,包括:
根据所述压缩粒度和所述初始数据块的大小计算分块数;
按照所述分块数对所述初始数据块进行分块处理获得多个对应的初始数据块。
5.根据权利要求1所述的方法,其特征在于,所述根据初始数据块的大小和压缩数据块的大小确定数据压缩率,包括:
计算所述压缩数据块的大小与所述初始数据块的大小的比值;
将所述比值确定为所述数据压缩率。
6.根据权利要求1所述的方法,其特征在于,所述根据所述压缩率从预设的多个流缓冲中确定匹配的流缓冲,包括:
获取所述多个流缓冲对应的预设压缩率范围;
将所述数据压缩率与所述多个预设压缩率范围进行匹配,并将匹配的压缩率范围对应的流缓冲确定为匹配的流缓冲。
7.根据权利要求1所述的方法,其特征在于,所述将所述压缩数据块写入匹配的流缓冲对应的缓冲空间中,包括:
获取匹配的流缓冲对应的当前缓冲空间的可用空间大小;
将所述可用空间大小与所述压缩数据块的大小进行比较;
若所述可用空间大小大于或等于所述压缩数据块的大小,则将所述压缩数据块写入匹配的流缓冲对应的当前缓冲空间内;
若所述可用空间大小小于所述压缩数据块的大小,则为匹配的流缓冲创建新的缓冲空间,并将所述压缩数据块写入所述新的缓冲空间内。
8.根据权利要求1所述的方法,其特征在于,所述将所述对应的缓冲空间中的压缩数据块存储至对应的存储空间内,包括:
判断所述对应的缓冲空间是否有可用空间;
若否,则将所述对应的缓冲空间中的全部压缩数据块存储至对应的存储空间内;
若是,则待所述对应的缓冲空间无可用空间后,将所述对应的缓冲空间中的全部压缩数据块存储至对应的存储空间内。
9.根据权利要求8所述的方法,其特征在于,所述将所述对应的缓冲空间中的全部压缩数据块存储至对应的存储空间内,包括:
将所述对应的缓冲空间中的全部压缩数据块存储至与该缓冲空间对应的流缓冲对应的存储空间内。
10.一种数据存储装置,其特征在于,所述装置包括:
数据压缩单元,用于接收主机端设备发送的数据写入请求,并将所述数据写入请求对应的待写入初始数据块进行压缩获得压缩数据块;
计算单元,用于根据初始数据块的大小和压缩数据块的大小确定数据压缩率;
流分配单元,用于根据所述压缩率从预设的多个流缓冲中确定匹配的流缓冲,并将所述压缩数据块写入匹配的流缓冲对应的缓冲空间中;
数据写入单元,用于将所述对应的缓冲空间中的压缩数据块存储至对应的存储空间内。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-9中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-9中任一项所述的方法。
CN202110797858.5A 2021-07-14 2021-07-14 数据存储方法、数据存储装置、存储介质及产品 Active CN113568573B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110797858.5A CN113568573B (zh) 2021-07-14 2021-07-14 数据存储方法、数据存储装置、存储介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110797858.5A CN113568573B (zh) 2021-07-14 2021-07-14 数据存储方法、数据存储装置、存储介质及产品

Publications (2)

Publication Number Publication Date
CN113568573A true CN113568573A (zh) 2021-10-29
CN113568573B CN113568573B (zh) 2023-12-22

Family

ID=78164891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110797858.5A Active CN113568573B (zh) 2021-07-14 2021-07-14 数据存储方法、数据存储装置、存储介质及产品

Country Status (1)

Country Link
CN (1) CN113568573B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008155523A2 (en) * 2007-06-19 2008-12-24 Sony Computer Entertainment Europe Limited Method and apparatus for compressing and decompressing data
CN103516369A (zh) * 2013-06-20 2014-01-15 易乐天 一种自适应数据压缩和解压缩的方法和系统及存储装置
CN104881240A (zh) * 2014-02-27 2015-09-02 群联电子股份有限公司 数据写入方法、存储器存储装置及存储器控制电路单元
US9208098B1 (en) * 2011-11-30 2015-12-08 Emc Corporation System and method for improving cache performance
US20170228188A1 (en) * 2016-02-09 2017-08-10 Samsung Electronics Co., Ltd. Automatic i/o stream selection for storage devices
US20170336981A1 (en) * 2016-05-18 2017-11-23 Intel Corporation Computer program product, system, and method for dynamically increasing the capacity of a storage device
CN108287663A (zh) * 2017-12-21 2018-07-17 北京京存技术有限公司 一种基于emmc的数据存储方法和装置
WO2020032816A1 (en) * 2018-08-09 2020-02-13 Huawei Technologies Co., Ltd Device and method for compacting compressed and uncompressed data blocks
US20200201570A1 (en) * 2018-12-20 2020-06-25 Samsung Electronics Co., Ltd. Method of writing data in storage device, storage device performing the same and storage system including the same
CN111625191A (zh) * 2020-05-21 2020-09-04 苏州浪潮智能科技有限公司 一种数据读写方法、装置及电子设备和存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008155523A2 (en) * 2007-06-19 2008-12-24 Sony Computer Entertainment Europe Limited Method and apparatus for compressing and decompressing data
US9208098B1 (en) * 2011-11-30 2015-12-08 Emc Corporation System and method for improving cache performance
CN103516369A (zh) * 2013-06-20 2014-01-15 易乐天 一种自适应数据压缩和解压缩的方法和系统及存储装置
CN104881240A (zh) * 2014-02-27 2015-09-02 群联电子股份有限公司 数据写入方法、存储器存储装置及存储器控制电路单元
US20170228188A1 (en) * 2016-02-09 2017-08-10 Samsung Electronics Co., Ltd. Automatic i/o stream selection for storage devices
US20170336981A1 (en) * 2016-05-18 2017-11-23 Intel Corporation Computer program product, system, and method for dynamically increasing the capacity of a storage device
CN108287663A (zh) * 2017-12-21 2018-07-17 北京京存技术有限公司 一种基于emmc的数据存储方法和装置
WO2020032816A1 (en) * 2018-08-09 2020-02-13 Huawei Technologies Co., Ltd Device and method for compacting compressed and uncompressed data blocks
US20200201570A1 (en) * 2018-12-20 2020-06-25 Samsung Electronics Co., Ltd. Method of writing data in storage device, storage device performing the same and storage system including the same
CN111625191A (zh) * 2020-05-21 2020-09-04 苏州浪潮智能科技有限公司 一种数据读写方法、装置及电子设备和存储介质

Also Published As

Publication number Publication date
CN113568573B (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
US7676626B2 (en) Non-volatile memory system storing data in single-level cell or multi-level cell according to data characteristics
US9946462B1 (en) Address mapping table compression
KR101657561B1 (ko) 클러스터 시스템에서의 데이터 처리 방법 및 장치
KR20170054299A (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
CN111079917B (zh) 张量数据分块存取的方法及装置
CN110209348B (zh) 数据存储方法、装置、电子设备及存储介质
US9977598B2 (en) Electronic device and a method for managing memory space thereof
CN110399096B (zh) 分布式文件系统元数据缓存重删的方法、装置以及设备
CN112306974A (zh) 一种数据处理方法、装置、设备及存储介质
CN104823184A (zh) 一种数据处理方法、系统及客户端
US20150370822A1 (en) Method and system for hash key memory reduction
CN111930923B (zh) 布隆过滤器系统及过滤方法
CN112579595A (zh) 数据处理方法、装置、电子设备及可读存储介质
CN114936188A (zh) 数据处理方法、装置、电子设备及存储介质
CN112070652A (zh) 数据压缩、解压方法、可读存储介质和电子设备
CN111930924A (zh) 基于布隆过滤器的数据查重系统及方法
CN115712500A (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
CN109445693A (zh) 一种数据压缩方法和装置
CN113867627A (zh) 一种存储系统性能优化方法及系统
CN113568573B (zh) 数据存储方法、数据存储装置、存储介质及产品
CN115964002A (zh) 一种电能表终端档案管理方法、装置、设备及介质
CN113326262B (zh) 基于键值数据库的数据处理方法、装置、设备及介质
CN111722802B (zh) 一种元数据lsa卷的存储空间分配方法、装置及设备
CN108234552B (zh) 一种数据存储方法及装置
CN107783990B (zh) 一种数据压缩方法及终端

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
GR01 Patent grant
GR01 Patent grant