CN113326001B - 数据处理方法、装置、设备、系统、介质及程序 - Google Patents
数据处理方法、装置、设备、系统、介质及程序 Download PDFInfo
- Publication number
- CN113326001B CN113326001B CN202110552304.9A CN202110552304A CN113326001B CN 113326001 B CN113326001 B CN 113326001B CN 202110552304 A CN202110552304 A CN 202110552304A CN 113326001 B CN113326001 B CN 113326001B
- Authority
- CN
- China
- Prior art keywords
- data
- compressed
- logical block
- block address
- decompressed
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例提供一种数据处理方法、装置、设备、系统、介质及程序,该方法包括:确定待压缩数据的逻辑块地址;根据逻辑块地址的连续性,对所述待压缩数据进行压缩。本公开实施例的技术方案实现了存储空间利用率的提升。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备、系统、介质及程序。
背景技术
随着存储设备的发展,数据的压缩和解压缩功能逐渐从主机端卸载到了存储设备中,即直接在存储设备内部实现对数据的压缩或解压缩过程。当前,集成了透明数据压缩功能的存储设备已经投入使用。其中,透明数据压缩技术,是一种数据压缩的过程不会被用户发现和察觉的压缩技术,其不仅可以减少数据的体量,节省存储空间,也可以使得数据的压缩/解压缩对上层应用完全透明,从而让应用更专注于业务逻辑。
目前,通过存储设备执行透明数据压缩,是以固定的数据长度为压缩粒度进行压缩的。发明人在研究过程中发现:存储设备以固定的数据长度为压缩粒度进行压缩的实现方式,会导致存储空间的浪费。
发明内容
本公开实施例提供了一种数据处理方法、装置、设备、系统、介质及程序,以提升存储空间利用率。
第一方面,本公开实施例提供了一种数据处理方法,数据处理方法应用于存储设备,数据处理方法包括:
确定待压缩数据的逻辑块地址;
根据逻辑块地址的连续性,对待压缩数据进行压缩。
可选地,根据逻辑块地址的连续性,对待压缩数据进行压缩,包括:确定待压缩数据的逻辑块地址是否连续;若待压缩数据的逻辑块地址是连续的,则根据待压缩数据的数据长度,对待压缩数据进行压缩。
可选地,根据待压缩数据的数据长度,对待压缩数据进行压缩,包括:若待压缩数据的数据长度小于或等于存储设备对应的最大压缩粒度,则对待压缩数据进行压缩;或者,若待压缩数据的数据长度大于存储设备对应的最大压缩粒度,则根据最大数据压缩粒度,对待压缩数据进行切分;以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩。
可选地,根据逻辑块地址的连续性,对待压缩数据进行压缩,包括:确定待压缩数据的逻辑块地址是否连续;若待压缩数据的逻辑块地址是非连续的,则确定待压缩数据中逻辑块地址连续的数据块;根据逻辑块地址连续的数据块的数据长度,对待压缩数据进行压缩。
可选地,根据逻辑块地址连续的数据块的数据长度,对待压缩数据进行压缩,包括:若逻辑块地址连续的数据块的数据长度大于或等于存储设备对应的最大压缩粒度,则根据最大压缩粒度,对待压缩数据进行切分;以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩;或者,若逻辑块地址连续的数据块的数据长度小于或等于存储设备对应的最大压缩粒度,则对逻辑块地址连续的数据块进行压缩。
可选地,确定待压缩数据的逻辑块地址,包括:接收来自主机端发送的写入请求,写入请求携带有待压缩数据及待压缩数据的逻辑块地址;解析写入请求,得到待压缩数据及待压缩数据的逻辑块地址;数据处理方法还包括:将压缩后的数据写入存储介质。
可选地,数据处理方法还包括以下至少一项:
在闪存映射表中记录压缩后的数据的逻辑块地址和压缩粒度;
向与存储设备数据连接的主机端发送写入完毕的信息。
第二方面,本公开实施例还提供了一种数据处理方法,数据处理方法应用于存储设备,数据处理方法包括:
确定待解压缩数据的逻辑块地址;
根据逻辑块地址,确定待解压缩数据对应的压缩数据块;
以压缩数据块对应的压缩粒度,对压缩数据块进行解压缩,压缩数据块对应的压缩粒度为压缩数据块在压缩之前的数据长度。
可选地,根据逻辑块地址,确定待解压缩数据对应的压缩数据块,包括:将在闪存映射表中查找到的包含待解压缩数据的逻辑块地址的压缩数据块确定为待解压缩数据对应的压缩数据块。
可选地,确定待解压缩数据的逻辑块地址,包括:接收来自主机端的读取请求,读取请求包括待解压缩数据的逻辑块地址;解析读取请求,得到待解压缩数据的逻辑块地址。对应地,数据处理方法还包括:将解压缩后的数据发送至主机端。
可选地,将解压缩后的数据发送至主机端,包括:截取解压缩后的数据中逻辑块地址位于待解压缩数据的逻辑块地址范围内的数据;将截取的数据发送至主机端。
可选地,该数据处理方法还包括:响应于接收到主机端发送的清除指令,在闪存映射表中清除目标数据块的逻辑块地址的记录,清除指令中包含目标数据块的标识。
第三方面,本公开实施例提供了一种数据处理装置,数据处理装置应用于存储设备,该数据处理装置包括:
确定模块,用于确定待压缩数据的逻辑块地址;
压缩模块,用于根据逻辑块地址的连续性,对待压缩数据进行压缩。
可选地,压缩模块包括:确定单元,用于确定待压缩数据的逻辑块地址是否连续;第一压缩单元,用于在待压缩数据的逻辑块地址是连续的时,根据待压缩数据的数据长度,对待压缩数据进行压缩。
可选地,第一压缩单元具体用于:在待压缩数据的数据长度小于或等于存储设备对应的最大压缩粒度时,对待压缩数据进行压缩;或者,在待压缩数据的数据长度大于存储设备对应的最大压缩粒度时,根据最大数据压缩粒度,对待压缩数据进行切分;并以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩。
可选地,压缩模块包括:第二压缩单元,用于在待压缩数据的逻辑块地址是非连续的时,确定待压缩数据中逻辑块地址连续的数据块;并根据逻辑块地址连续的数据块的数据长度,对待压缩数据进行压缩。
可选地,第二压缩单元具体用于:在逻辑块地址连续的数据块的数据长度大于或等于存储设备对应的最大压缩粒度时,根据最大压缩粒度,对待压缩数据进行切分;并以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩;或者,在逻辑块地址连续的数据块的数据长度小于或等于存储设备对应的最大压缩粒度时,对逻辑块地址连续的数据块进行压缩。
可选地,确定模块具体用于:接收来自主机端发送的写入请求,写入请求携带有待压缩数据及待压缩数据的逻辑块地址;解析写入请求,得到待压缩数据及待压缩数据的逻辑块地址。对应地,数据处理装置还包括:写入模块,用于将压缩后的数据写入存储介质。
可选地,数据处理装置还包括记录模块和/或发送模块。其中,记录模块,用于在闪存映射表中记录压缩后的数据的逻辑块地址和压缩粒度;发送模块,用于向与存储设备数据连接的主机端发送写入完毕的信息。
第四方面,本公开实施例还提供了一种数据处理装置,该数据处理装置应用于存储设备,数据处理装置包括:
确定模块,用于确定待解压缩数据的逻辑块地址;以及,根据逻辑块地址,确定待解压缩数据对应的压缩数据块;
解压缩模块,用于以压缩数据块对应的压缩粒度,对数据块进行解压缩,压缩数据块对应的压缩粒度为压缩数据块在压缩之前的数据长度。
可选地,确定模块在用于根据逻辑块地址,确定待解压缩数据对应的压缩数据块时,具体用于:将在闪存映射表中查找到的包含待解压缩数据的逻辑块地址的压缩数据块确定为待解压缩数据对应的压缩数据块。
可选地,确定模块在用于确定待解压缩数据的逻辑块地址时,具体用于:接收来自主机端的读取请求,读取请求包括待解压缩数据的逻辑块地址;解析读取请求,得到待解压缩数据的逻辑块地址。对应地,数据处理装置还包括:发送模块,用于将解压缩后的数据发送至主机端。
可选地,发送模块具体用于:截取解压缩后的数据中逻辑块地址位于待解压缩数据的逻辑块地址范围内的数据;将截取的数据发送至主机端。
可选地,该数据处理装置还包括:处理模块,用于响应于接收到主机端发送的清除指令,在闪存映射表中清除目标数据块的逻辑块地址的记录,清除指令中包含目标数据块的标识。
第五方面,本公开实施例提供了一种电子设备,该电子设备包括:
存储器以及处理器;
其中,存储器中存储有计算机程序;
处理器,被配置为执行如本公开第一方面或第二方面任一数据处理方法。
第六方面,本公开实施例提供了一种数据处理系统,该数据处理系统包括:
存储设备和主机端;
存储设备与主机端数据连接,存储设备用于执行如本公开第一方面或第二方面任一数据处理方法。
第七方面,本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如本公开第一方面或第二方面任一数据处理方法。
第八方面,本公开实施例提供了一种计算机程序产品,该计算机程序产品包含计算机程序,计算机程序被处理器执行时用于实现如本公开第一方面或第二方面任一数据处理方法。
本公开实施例提供的数据处理方法、装置、设备、系统、介质及程序,通过获取待压缩数据的逻辑块地址的连续性,并根据连续性对待压缩数据进行压缩。由于本公开实施例是基于待压缩数据的逻辑块地址的连续性对待压缩数据进行压缩,也就是说,对于逻辑块地址连续的待压缩数据,可以作为一个整体进行压缩,充分利用数据的可压缩性,减少数据压缩后存储空间的占用;对于逻辑块地址不连续的待压缩数据,可以跳过待压缩数据中逻辑块地址不包含的部分,只对待压缩数据中逻辑块地址包含的部分进行压缩,由此,能够避免在固定压缩粒度的切分下,将待压缩数据中未包含的逻辑块地址也切入待压缩的数据块中,进而避免了将不属于待压缩数据的逻辑块地址也被压缩处理,从而造成存储压缩后数据的存储空间被浪费,进而减小了存储待压缩数据需要的存储空间,以提升存储空间利用率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本公开实施例提供的数据处理方法的一种应用场景图;
图2为本公开一实施例提供的数据处理方法的流程图;
图3为本公开另一实施例提供的数据处理方法的流程图;
图4为本公开又一实施例提供的数据处理方法的流程图;
图5为本公开又一实施例提供的数据处理方法的流程图;
图6为本公开又一实施例提供的数据处理方法的流程图;
图7为图6实施例中逻辑块地址与物理块地址的对应关系示意图;
图8为本公开又一实施例提供的数据处理方法的流程图;
图9为本公开一实施例提供的数据处理装置的结构示意图;
图10为本公开另一实施例提供的数据处理装置的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
现有写时拷贝文件系统在实现数据的透明压缩时,依托于存储设备实现数据的压缩和解压缩处理。现有的存储设备,都被设计为在压缩数据时采用固定压缩粒度进行压缩。由于固定的压缩粒度通常小于待处理数据的数据长度,无法充分利用待处理数据的可压缩性,从而浪费了存储空间。
为了解决这一问题,本公开实施例提供一种数据处理方法,通过获取待处理数据的逻辑块地址,根据逻辑块地址的连续性设置对应的压缩粒度,从而避免存储空间的浪费,提供了空间利用效率。
下面对本公开实施例的应用场景进行解释:
图1为本公开实施例提供的数据处理方法的一种应用场景图。如图1所示,在进行数据压缩时,存储设备100接收主机端110发送的数据处理请求(例如写入请求或读取请求),进行相应数据处理,示例地,对于写入请求,存储设备对写入请求携带的数据进行压缩并将压缩后的数据写入存储介质101中;对于读取请求,存储设备从存储介质101中读取该读取请求对应的数据,并对其进行解压缩后发送给主机端110。可选地,存储设备中还存储有闪存映射表,以通过闪存映射表保存数据处理的记录。其中,存储设备例如为固态硬盘(英文为solid state disk,简称SSD)。
示例地,闪存映射表记录的内容包括数据的逻辑块地址和物理块地址及其映射关系,逻辑块地址(英文为logical block address,简称LBA)用于表示从主机端能够识别的数据的存储地址,物理块地址(英文为physical block address,简称PBA)用于表示从存储设备端记录的数据实际存储的物理地址。
需说明的是,图1所示场景中存储设备和主机端仅以一个为例进行示例说明,但本公开不以此为限制,也就是说,存储设备和主机端的个数都可以是任意的。
以下通过具体实施例详细说明本公开提供的数据处理方法。
图2为本公开一实施例提供的数据处理方法的流程图。该数据处理方法应用于存储设备。如图2所示,本实施例提供的数据处理方法包括以下步骤:
步骤S201,确定待压缩数据的逻辑块地址。
示例的,确定待压缩数据的逻辑块地址可以具体为:根据存储设备接收到的处理请求,得到待压缩数据的逻辑块地址,其中处理请求例如为写入请求或其他需要对数据进行压缩的相关请求。
其中,待压缩数据不限于一块数据,可以为多块,如2块、3块或更多块数。待压缩数据的数据长度也无限制,可以为大块数据,如64KB、128KB或者更大数据长度,也可以为小块数据,如4KB。
根据数据长度不同,待压缩数据可以包括一个逻辑块,也可以包括多个连续的逻辑块,也可以包括多个不连续的逻辑块;每一个逻辑块分别有对应的逻辑块地址,如LBA10或LBA12。故待压缩数据的逻辑块地址为其所对应的所有逻辑块的地址。
示例性的,一个待压缩数据的逻辑块地址为:LBA10至LBA20,以及LBA22,共包含12个逻辑块。
进一步地,在确定待压缩数据的逻辑块地址后,由于根据逻辑块地址能够得到待压缩数据的数据长度,且能够得到逻辑块地址是否连续,因而确定待压缩数据的逻辑块地址后,也能得到待压缩数据的数据长度和连续性。
步骤S202,根据逻辑块地址的连续性,对待压缩数据进行压缩。
可选的,根据逻辑块地址的连续性,对待压缩数据进行压缩,可以包括:将逻辑块地址连续的待压缩数据,作为一个整体进行压缩,进而充分利用数据的可压缩性,减少数据压缩后占用的存储空间。对于待压缩数据中逻辑块地址非连续的部分,可以跳过待压缩数据的逻辑块地址中不包含的部分,只对待压缩数据中逻辑块地址包含的部分进行压缩,由此能够避免固定压缩粒度切分下,将待压缩数据中未包含的逻辑块地址也切入待压缩的部分,有效避免了将不属于待压缩数据的逻辑块地址也被压缩处理,从而造成的存储压缩后数据的存储空间被浪费。
示例性的,若待压缩数据的逻辑块地址为:LBA1至LBA4,LBA8至LBA9,且每个LBA的数据长度为4KB,若按照现有固定压缩粒度进行压缩,如压缩粒度为12K,则按现有透明压缩方法,需分别对LBA1至LBA3、LBA4至LBA6、LBA8至LBA10进行压缩,显然其中,LBA5、LBA6、LBA10均不是待压缩数据块中的数据,由此导致存储6个LBA的数据需要9个LBA的存储空间。而通过本公开实施例中提供的方法,只需将LBA1至LBA4、LBA8至LBA9这两个连续的部分分别作为一个整体进行压缩,由此,存储6个LBA的数据只需要6个LBA的存储空间。
可选地,存储设备内设置有压缩模块以实现对待压缩数据的压缩,由此能够保证压缩数据的存储。
可选地,压缩后的数据也保存在存储设备内,以方便存储和读取。
本公开实施例提供的数据处理方法,通过确定待压缩数据的逻辑块地址,并根据逻辑块地址的连续性,对待压缩数据进行压缩,以适应不同数据长度和逻辑块地址连续性的待压缩数据,既充分利用了数据的可压缩性,又避免了压缩后的数据中包含不属于待压缩数据的逻辑块地址,降低了压缩数据需要的存储空间,提高了存储空间利用率。
图3为本公开另一实施例提供的数据处理方法的流程图。本实施例提供的数据处理方法是在图2所示实施例的基础上的进一步细化。如图3所示,本实施例提供的数据处理方法包括以下步骤:
步骤S301,确定待压缩数据的逻辑块地址。
步骤S302,确定待压缩数据的逻辑块地址是否连续。
具体的,确定待压缩数据的逻辑块地址是否连续包括以下至少一种:确定待压缩数据的逻辑块地址是否为一个连续的整体、逻辑块地址连续部分的数据长度、逻辑块地址是否存在间断或逻辑块地址间断部分的数据长度。
若待压缩数据的逻辑块地址是连续的,则执行步骤S303;若待压缩数据的逻辑块地址是非连续的,则执行步骤S304和步骤S305。
其中,待压缩数据的逻辑块地址是连续的,是表示待压缩数据所对应的全部逻辑块地址为整体连续,不包含间断,此时待压缩数据的第一块逻辑块与最后一块逻辑块之间全部为待压缩数据。待压缩数据的数据长度可以通过逻辑块地址得到,如通过每个逻辑块对应的数据长度和逻辑块数得到。对于逻辑块地址存在间断的情况,确定待压缩数据的逻辑块地址还包括确定逻辑块地址间断的起始逻辑块地址和结束逻辑块地址。
步骤S303,根据待压缩数据的数据长度,对待压缩数据进行压缩。
可选的,该步骤可以包括:以待压缩数据的数据长度为压缩粒度,对待压缩数据进行压缩。如待压缩数据的数据长度为8LBA,则压缩粒度为8LBA;待压缩数据的数据长度为12LBA,则压缩粒度为12LBA。由于压缩粒度非固定值,因此本公开提供的数据压缩方法为变长压缩粒度的透明压缩方法。
其中,压缩粒度为确定待压缩数据的数据长度后得到的值。
由此,可以将待压缩数据作为一个整块进行压缩,由于待压缩数据的逻辑块地址整体连续,因此压缩后的数据块中不包含非待压缩数据的部分,由此能够显著提升压缩率,从而提高存储空间利用率。
进一步地,根据待压缩数据的数据长度,对待压缩数据进行压缩,可以包括:基于待压缩数据的数据长度与存储设备对应的最大压缩粒度对待压缩数据进行压缩处理。可选地,若待压缩数据的数据长度小于或等于存储设备对应的最大压缩粒度,则对待压缩数据进行压缩;或者,若待压缩数据的数据长度大于存储设备对应的最大压缩粒度,则根据最大数据压缩粒度,对待压缩数据进行切分;以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩。
具体的,当存储设备存在最大压缩粒度时,需要将待压缩数据的数据长度与最大压缩粒度进行比较。
当待压缩数据的数据长度小于或等于存储设备对应的最大压缩粒度,可以直接将待压缩数据的数据长度作为压缩粒度,进行压缩。如最大压缩粒度为32KB,待压缩数据的数据长度为16KB或4LBA(按每个LBA的数据长度为4KB计算),则待压缩数据的压缩粒度为4LBA。
当待压缩数据的数据长度大于最大压缩粒度时,需要将待压缩数据切分为至少两个数据块,使切分后的数据块的数据长度小于或等于最大压缩粒度,再对切分后的数据块进行压缩。如待压缩数据的数据长度为48KB,而最大压缩粒度为32KB,则需要将待压缩数据切分为两个数据块,使每一个数据块的数据长度小于或等于32KB,再对每一个数据块进行分别压缩。
一些实施例中,根据最大压缩粒度,对待压缩数据进行切分,可以包括:根据最大压缩粒度计算待压缩数据需要被切分的最少块数,按照最少块数对待压缩数据进行均分;或者,按照最大压缩粒度对待压缩数据进行逐步切分,直至待压缩数据被完全切分为止。
具体的,根据最大压缩粒度计算待压缩数据需要被切分的最少块数,即计算待压缩数据最少需要被分为多少块,才能保证每一块的数据长度均小于或等于最大压缩粒度。如最大压缩粒度为32KB,待压缩数据为72KB,则最少块数为三块,因为分为两块,必然会存在一个数据块的数据长度大于32KB。
按照最少块数对待压缩数据进行均分,即用待压缩数据的数据长度除以最少块数,得到每一数据块的数据长度,根据得到的每一数据块的数据长度进行切分。如最大压缩粒度为32KB,待压缩数据为72KB,则最少块数为三块,且每一块的数据长度为24KB。
按照最大压缩粒度对待压缩数据进行切分,即从待压缩数据的起始逻辑块地址开始计算,当计算到的数据长度达到最大压缩粒度时,即进行一次切分,直至到达待压缩数据的结束逻辑块地址。如最大压缩粒度为32KB,待压缩数据为72KB,则待压缩数据可以切分为32KB、32KB、8KB,共三块。
步骤S304,确定待压缩数据中逻辑块地址连续的数据块。
具体的,该步骤可以包括:确定每一个逻辑块地址连续的数据块的起始逻辑块地址、结束逻辑块地址和数据长度,及确定待压缩数据中包含的逻辑块地址连续的数据块的数量,以便于进行定位和压缩处理。
步骤S305,根据逻辑块地址连续的数据块的数据长度,对待压缩数据进行压缩。
其中,根据逻辑块地址连续的数据块的数据长度,对待压缩数据进行压缩,包括每一块逻辑块地址连续的数据块,将该数据块的数据长度作为压缩粒度,进行压缩。
示例的,对于逻辑块地址只包含单个逻辑块的数据块,其数据长度即为单个逻辑块地址的数据长度,单个逻辑块地址的数据长度作为压缩粒度进行压缩。
示例性的,待压缩数据的逻辑块地址包括:LBA5、LBA7,则分别以1LBA为压缩粒度,对LBA5和LBA7进行压缩。
进一步地,根据逻辑块地址连续的数据块的数据长度,对待压缩数据进行压缩,可以包括:基于逻辑块地址连续的数据块的数据长度与存储设备对应的最大压缩粒度对待压缩数据进行压缩处理。其中,若逻辑块地址连续的数据块的数据长度大于或等于存储设备对应的最大压缩粒度,则根据最大压缩粒度,对待压缩数据进行切分;以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩;或者,若逻辑块地址连续的数据块的数据长度小于或等于存储设备对应的最大压缩粒度,则对逻辑块地址连续的数据块进行压缩。
具体的,当存储设备存在最大压缩粒度时,需要将待压缩数据的每一个逻辑块地址连续的数据块的数据长度逐一与最大压缩粒度进行比较。
具体比较方法和切分方法与前述步骤中的比较方法和切分方法类似,此处不再赘述。
示例性的,待压缩数据包括两个逻辑块地址连续的数据块,两个数据块的数据长度分别为:48KB、8KB,存储设备的最大压缩粒度为32KB,则待压缩数据的切分方法可以包括:将待压缩数据切分为24KB、24KB和8KB三个部分并分别压缩;或者,将待压缩数据切分为32KB、16KB和8KB三个部分并分别压缩。
补充说明的是,步骤S302至步骤S305是对图2所示实施例中步骤S202的进一步解释说明。
本公开提供的数据处理方法,通过根据待处理数据的逻辑块地址的连续性和存储设备对应的最大压缩粒度,具体选择不同的压缩方法。由于不同压缩方法都是根据待压缩数据的逻辑块地址和连续部分的数据长度选择对应的压缩粒度,既能保证在最大压缩粒度的限制下,对待压缩数据进行压缩,从而在满足设备限制的前提下充分利用数据的可压缩性;又能避免压缩数据过程中,将待压缩数据以外的逻辑块地址对应数据包含入进行压缩处理的数据块中,从而有效保证了存储空间的利用率。
图4为本公开又一实施例提供的数据处理方法的流程图。如图4所示,本实施例提供的数据处理方法包括以下步骤:
步骤S401,接收来自主机端发送的写入请求。
其中,写入请求携带有待压缩数据及待压缩数据的逻辑块地址。
示例的,写入请求的数量不限制为一个,可以为多个。写入请求对应的待压缩数据可以为一个或者多个;不同写入请求所包含的待压缩数据可以相同,也可以不同。
示例性的,存储设备先后接收到两个待处理的写入请求,第一个写入请求携带的待压缩数据包含的逻辑块地址为LBA10~LBA20,第二个写入请求携带的待压缩数据包含的逻辑块地址为LBA10~LBA20和LBA22。此时,第二个写入请求包含有与第一个写入请求相同的待压缩数据,且包含有两个待压缩数据。
步骤S402,解析写入请求,得到待压缩数据及待压缩数据的逻辑块地址。
其中,解析写入请求,可以通过存储设备的控制系统实现。
具体的,得到待压缩数据及待压缩数据的逻辑块地址,包括得到待压缩数据的内容,及待压缩数据的数据长度和逻辑块地址。
可选地,在得到待压缩数据及待压缩数据的逻辑块地址之后,数据处理方法还可以包括:缓存待压缩数据。即将写入请求包含的待压缩数据缓存入存储设备中,以方便进一步地处理,如切分和压缩处理。同时,将待压缩数据放入缓存模块,从而便于将待压缩数据的处理集中在存储设备的完成,而不需要与主机端频繁交互。
补充说明的是,步骤S401与步骤S402是对上述步骤S201的进一步解释说明。
步骤S403,根据逻辑块地址的连续性,对待压缩数据进行压缩。
对于该步骤的描述可参看前述实施例。示例地,可以根据逻辑块地址的范围、连续性和最大压缩粒度,将逻辑块地址连续的待压缩数据作为一个整体,将其逻辑块地址的数据长度作为压缩粒度进行压缩。
可选地,对待压缩数据的压缩通过存储设备内的压缩模块实现,压缩模块支持可变压缩粒度的数据压缩,且存在最大压缩粒度,最大压缩粒度的值可以为32KB、64KB或更大的数据长度。
示例性的,若写入请求对应的待压缩数据的LBA范围为LBA10~LBA19和LBA30~LBA31,且压缩模块对应的最大数据粒度为32KB或8个LBA,则写入的待压缩数据的LBA可以切分为三个数据块:LBA10~LBA17、LBA18~LBA19和LBA30~LBA31,并对每一个数据块分别压缩。
步骤S404、将压缩后的数据写入存储介质。
具体的,当待压缩数据中间存在间断时,每一块逻辑块地址连续的数据块会被单独压缩成为一块压缩数据块,压缩完成后,每一块压缩数据块会根据其逻辑块地址分别写入存储介质中,以方便读取。
进一步地,压缩过程不改变待压缩数据的逻辑块地址,仅改变其物理块地址,因此压缩数据块仍会按照其对应的逻辑块地址进行存储,只是每一个逻辑块所占用的物理块地址减少,如从压缩前某个LBA占用一个PBA的600字节变为压缩后占用另一个PBA的500字节。
可选地,该步骤可以具体为:将压缩后的数据从缓存模块写入存储介质中。
可选地,一种实现中,本公开提供的数据处理方法还包括以下至少一项:
步骤S405、在闪存映射表中记录压缩后的数据的逻辑块地址和压缩粒度。
其中,闪存映射表中记录压缩后的数据的逻辑块地址和物理块地址的映射关系。
进一步地,闪存映射表中对于每个压缩数据块,都包含对应的一个起始逻辑块地址、连续逻辑块地址的个数、一组物理块地址,以及压缩后的数据块在起始物理块地址和结束物理块地址的块内偏移。
示例性的,待压缩数据包括LBA10~LBA17、LBA18~LBA19和LBA30~LBA31共三块,由此,闪存映射表中记录的信息包括:LBA10~LBA17经压缩后占据的物理块地址从PBA30的1000字节处到PBA32的2000字节处,LBA18~LBA19经压缩后占据的物理块地址从PBA32的2000字节处到PBA33的500字节处,LBA30~LBA31经压缩后占据的物理块地址从PBA33的500字节处到3500字节处。
步骤S406、向与存储设备数据连接的主机端发送写入完毕的信息。
进一步地,向主机端发送写入完毕的信息后,数据处理完毕。主机端接收到写入完毕的信息后,即可对写入完毕的数据进行读取。
在本实施例中,存储设备接收来自主机端发送的写入请求,并根据写入请求得到待压缩数据及待压缩数据的逻辑块地址,根据逻辑块地址的连续性进行压缩,并将压缩后的数据写入存储介质中,再将压缩后的结果记录在闪存映射表中,并向主机端发送写入完毕的信息,从而完成一次写入并压缩的数据处理流程。通过根据写入请求得到待压缩数据,对根据待压缩数据的连续性进行压缩,在写入数据过程中,有效提升了存储空间的利用率,通过闪存映射表,有效保证了数据记录,方便主机端随时读取写入的数据,从而提高数据处理效率。
图5为本公开又一实施例提供的数据处理方法的流程图。本公开实施例为数据解压缩流程。如图5所示,该数据处理方法包括:
步骤S501,确定待解压缩数据的逻辑块地址。
示例地,确定待压缩数据的逻辑块地址可以具体为:根据存储设备接收到的处理请求,得到待解压缩数据的逻辑块地址。其中处理请求例如为读取请求或其他需要对数据进行解压缩的相关请求。存储设备根据待解压缩数据的逻辑块地址,找到对应的待解压缩数据并进行解压。
其中,待解压缩数据可以是一块数据,也可以是多块数据,如2块、3块或更多块。且多块数据间可以存在部分重合,如待解压缩数据包括LBA10~LBA15和LBA13~LBA20两块,其中LBA13~LBA15为相互重合的部分。
进一步地,确定待解压缩数据的逻辑块地址包括确定全部待解压缩数据的逻辑块地址,其中包括且不限于起始逻辑块地址、结束逻辑块地址和逻辑块地址的连续性。因此以方便存储系统根据逻辑块地址找到相对应的逻辑块地址的压缩数据块,以进行解压缩。
步骤S502,根据逻辑块地址,确定待解压缩数据对应的压缩数据块。
其中,待解压缩数据和压缩数据块均包含有逻辑块地址。
可选的,确定待解压缩数据对应的压缩数据块,包括:当待解压缩数据的逻辑块地址中包含有一个压缩数据块的全部逻辑块地址时,该压缩数据块为待解压缩数据对应的压缩数据块。或者,当待解压缩数据的逻辑块地址中包含有一个压缩数据块的任意一部分时,该压缩数据块为待解压缩数据对应的压缩数据块。
示例性的,待解压缩数据对应的压缩数据块可以为一个,如待压缩数据的逻辑块地址与压缩数据块的逻辑块地址相同;待解压缩数据对应的压缩数据块也可以包含多个。
示例性的,待解压缩数据的逻辑块地址为LBA19和LBA30,而存储设备中,包含有LBA19和LBA30的压缩数据块分别为LBA17~LBA19和LBA30~LBA31,共两个压缩数据块。则此时待解压缩数据对应的压缩数据块分别为LBA17~LBA19和LBA30~LBA31这两个压缩数据块。
步骤S503、以压缩数据块对应的压缩粒度,对压缩数据块进行解压缩。
其中,压缩数据块对应的压缩粒度为压缩数据块在压缩之前的数据长度。
具体的,解压缩处理中的压缩粒度为在确定对应的压缩数据块后,通过存储设备得到压缩数据块的数据长度,该数据长度即为压缩数据块对应的压缩粒度。如前述LBA17~LBA19和LBA30~LBA31这两个压缩数据块,其解压缩对应的压缩粒度分别为12KB或3LBA、8KB或2LBA。
因此,解压缩处理是基于压缩数据块对应的不同压缩粒度进行解压缩,而非现有解压缩方法中根据固定压缩粒度进行的解压缩。由此,本公开提供的数据处理方法在解压缩处理中也是压缩粒度可变的解压缩过程。
在本实施例中,存储设备通过确定待解压缩数据的逻辑块地址,根据逻辑块地址确定对应的压缩数据块,通过压缩数据块得到压缩数据块对应的压缩粒度,并根据压缩粒度进行解压缩,由此,可以对不同压缩粒度的压缩数据块进行解压缩,充分扩展了解压缩处理中的灵活性,适用于具有不同压缩粒度的存储系统,既能有效利用存储空间,又能保证数据解压缩的完整性。
图6为本公开又一实施例提供的数据处理方法的流程图。如图6所示,该数据处理方法可以包括:
步骤S601,接收来自主机端的读取请求。
其中,读取请求包括待解压缩数据的逻辑块地址
示例的,读取请求的数量不限制为一个,可以为多个。读取请求对应的待解压缩数据可以为一个或者多个。不同读取请求所包含的待解压缩数据可以相同,也可以不同。
示例性的,存储设备先后接收到两个待处理的读取请求,第一个读取请求携带的待解压缩数据包含的逻辑块地址为LBA10~LBA20,第二个读取请求携带的待解压缩数据包含的逻辑块地址为LBA10~LBA20和LBA22。此时,第二个读取请求包含有与第一个读取请求相同的待解压缩数据,且包含有两个待解压缩数据。
步骤S602,解析读取请求,得到待解压缩数据的逻辑块地址。
可选的,得到待解压缩数据的逻辑块地址,包括得到待解压缩数据的全部逻辑块地址,以便根据逻辑块地址确定对应的压缩数据块。
本公开实施例中,步骤S601和步骤S602是对步骤S501的进一步说明;步骤S603是对步骤S502的进一步说明。
步骤S603,在闪存映射表中查找到包含待解压缩数据的逻辑块地址的压缩数据块,将该压缩数据块确定为待解压缩数据对应的压缩数据块。
可选地,该步骤可以具体为:根据得到的待解压缩数据的逻辑块地址,在闪存映射表中找到所有包含有待解压缩数据的逻辑块地址的压缩数据块,并同时读取闪存映射表中记录的压缩数据块对应的压缩粒度和物理块地址。
示例性的,若读取请求包含的LBA为LBA19和LBA30,则包含这两个LBA的压缩数据块所对应的LBA范围为LBA17~LBA19以及LBA30到LBA31,压缩粒度分别为12KB或3LBA、8KB或2LBA,所对应的PBA范围为PBA32~PBA33。
步骤S604,以压缩数据块对应的压缩粒度,对压缩数据块进行解压缩。
其中,压缩数据块对应的压缩粒度为压缩数据块在压缩之前的数据长度。
可选地,根据压缩数据块对应的压缩粒度进行解压缩,包括:根据闪存映射表中与压缩数据块逻辑块地址对应的物理块地址找到存储设备的存储介质中的对应数据进行解压缩。
步骤S605,将解压缩后的数据发送至主机端。
一些实施例中,将解压缩后的数据发送至主机端,可以包括:将解压缩后的数据写入存储设备的缓存模块,并通过缓存模块发送至主机端。由此,仅有发送数据部分为通过缓存模块与存储设备外的主机端存在交互,以减少读取数据过程中,主机端与存储设备的互动频率,提高处理效率。
可选地,将解压缩后的数据发送至主机端,可以包括:截取解压缩后的数据中逻辑块地址位于待解压缩数据的逻辑块地址范围内的数据;将截取的数据发送至主机端。具体的,对于解压缩的压缩数据块中除了待解压缩数据外,还包含其他数据的情况,需要对解压缩后的压缩数据块进行截取操作,将逻辑块地址位于待解压缩数据对应的逻辑块地址以外的数据去掉,将剩下的数据及其逻辑块地址发送至前述缓存模块,再通过缓存模块发送至主机端。
进一步地,截取操作基于逻辑块地址对应的物理块地址实现。
示例性的,如图7所示,图7为本实施例中逻辑块地址与物理块地址的对应关系示意图。图7中,读取请求包含的LBA为LBA19和LBA30,对应的压缩数据块的LBA范围为LBA18~LBA19以及LBA30到LBA31时,解压后需要将LBA18、LBA31的数据均截去(截去用于表示将截取操作得到的数据以外的其他部分数据去掉的操作),根据LBA和PBA的地址映射关系,两个压缩数据块对应的物理地址为PBA32中2000字节处到PBA33中500字节处,以及PBA33内500字节处到3500字节处。在两个压缩数据块进行解压缩处理后,进行相应的数据截取操作,并返回读取请求所需的LBA19和LBA30对应的数据。
可选地,一些实施例中,本公开提供的数据处理方法还可以包括:响应于接收到主机端发送的清除指令,在闪存映射表中清除目标数据块的逻辑块地址的记录,清除指令中包含目标数据块的标识。进一步地,目标数据块可以为一个或多个,也可以为闪存映射表中的全部数据块。目标数据块的标识,包含目标数据块的物理块地址、物理块地址与逻辑块地址的映射信息及目标数据块的项目记录。如执行清除指令后,将目标数据块所对应的项目全部清除并重置目标数据块对应部分的闪存映射表。从而方便及时更新闪存映射表,避免闪存映射表中记录溢出,影响使用。
本实施例中,存储设备通过接收来自主机端的读取请求,并解析得到待解压缩数据的逻辑块地址,根据逻辑块地址找到对应的压缩数据块,并得到压缩数据块的压缩粒度,通过根据压缩数据块对应的压缩粒度对压缩数据块进行解压缩和截取,得到读取请求对应的数据,并将数据发送至主机端,从而完成读取请求的相应操作,本实施例提供的数据处理方法,在执行读取请求中,通过得到压缩数据块后再确定对应的压缩粒度以进行解压,从而适应不同压缩粒度的数据,避免解压缩过程中的数据损失,同时能保证返回的读取请求对应数据的准确性。
图8为本公开一实施例提供的数据处理装置。本公开提供的数据处理装置应用于存储设备,如图8所示,该数据处理装置700包括确定模块710和压缩模块720。
其中,确定模块710用于确定待压缩数据的逻辑块地址;压缩模块720用于根据逻辑块地址的连续性,对待压缩数据进行压缩。
进一步地,确定模块710与主机端数据连接,以接收主机端发送的写入请求,并根据主机端的请求得到对应的待压缩数据。
一些实施例中,压缩模块720包括:确定单元(未示出),用于确定待压缩数据的逻辑块地址是否连续;第一压缩单元(未示出),用于在待压缩数据的逻辑块地址是连续的时,根据待压缩数据的数据长度,对待压缩数据进行压缩。
可选地,第一压缩单元具体用于:在待压缩数据的数据长度小于或等于存储设备对应的最大压缩粒度时,对待压缩数据进行压缩;或者,在待压缩数据的数据长度大于存储设备对应的最大压缩粒度时,根据最大数据压缩粒度,对待压缩数据进行切分;并以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩。
进一步地,压缩模块720还可以包括:第二压缩单元,用于在待压缩数据的逻辑块地址是非连续的时,确定待压缩数据中逻辑块地址连续的数据块;并根据逻辑块地址连续的数据块的数据长度,对待压缩数据进行压缩。
可选地,第二压缩单元具体用于:在逻辑块地址连续的数据块的数据长度大于或等于存储设备对应的最大压缩粒度时,根据最大压缩粒度,对待压缩数据进行切分;并以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩;或者,在逻辑块地址连续的数据块的数据长度小于或等于存储设备对应的最大压缩粒度时,对逻辑块地址连续的数据块进行压缩。
其中,第一压缩单元和第二压缩单元可以是相互独立的,也可以集成为一个压缩单元,具体视实际需求进行设置。
可选地,确定模块710具体用于:接收来自主机端发送的写入请求,写入请求携带有待压缩数据及待压缩数据的逻辑块地址;解析写入请求,得到待压缩数据及待压缩数据的逻辑块地址。对应地,数据处理装置还包括:写入模块,用于将压缩后的数据写入存储介质。
示例地,确定模块710可以包括:通讯单元(未示出),用于接收主机端发送的写入请求;解析单元(未示出),用于解析接入请求,以得到对应的待压缩数据及待压缩数据的逻辑块地址。
在上述基础上,数据处理装置700还可以包括记录模块(未示出)和/或发送模块(未示出)。其中,记录模块,用于在闪存映射表中记录压缩后的数据的逻辑块地址和压缩粒度;发送模块,用于向与存储设备数据连接的主机端发送写入完毕的信息。
本实施例中,数据处理装置根据接收到的写入请求,得到对应的待压缩数据,对待压缩数据进行压缩并写入存储设备,其中压缩过程基于待压缩数据的逻辑块地址连续性,对待压缩数据进行压缩,以适应不同数据长度和逻辑块地址连续性的待压缩数据,而非基于固定的压缩粒度,既能充分利用数据的可压缩性,又能避免压缩后的数据中包含不属于待压缩数据的逻辑块地址,进而避免了浪费存储空间,提升存储空间利用效率。
图9为本公开另一实施例提供的数据处理装置。本公开实施例提供的数据处理装置应用于存储设备。如图9所示,该数据处理装置800包括确定模块810和解压缩模块820。
其中,确定模块810,用于确定待解压缩数据的逻辑块地址;以及,根据逻辑块地址,确定待解压缩数据对应的压缩数据块;解压缩模块820,用于以压缩数据块对应的压缩粒度,对数据块进行解压缩;其中,压缩数据块对应的压缩粒度为压缩数据块在压缩之前的数据长度。
一些实施例中,确定模块810在用于根据逻辑块地址,确定待解压缩数据对应的压缩数据块时,具体用于:将在闪存映射表中查找到的包含待解压缩数据的逻辑块地址的压缩数据块确定为待解压缩数据对应的压缩数据块。
一些实施例中,确定模块810在用于确定待解压缩数据的逻辑块地址时,具体用于:接收来自主机端的读取请求,读取请求包括待解压缩数据的逻辑块地址;解析读取请求,得到待解压缩数据的逻辑块地址。对应地,数据处理装置800还包括:发送模块(未示出),用于将解压缩后的数据发送至主机端。
示例地,确定模块810可以包括:通讯单元(未示出),用于接收主机端发送的读取请求;解析单元(未示出),用于解析读取请求,以得到对应的待解压缩数据的逻辑块地址。
进一步地,发送模块可以具体用于:截取解压缩后的数据中逻辑块地址位于待解压缩数据的逻辑块地址范围内的数据;将截取的数据发送至主机端。
示例地,发送模块可以包括:截取单元,用于根据逻辑块地址,从解压缩后的数据中截取读取请求对应的待解压缩数据;发送单元,用于将截取的数据发送至主机端。
可选地,该数据处理装置800还包括:处理模块(未示出),用于响应于接收到主机端发送的清除指令,在闪存映射表中清除目标数据块的逻辑块地址的记录,清除指令中包含目标数据块的标识。
本实施例中,数据处理装置通过根据接收到的读取请求,得到对应的待解压缩数据的逻辑块地址,由此找到对应的压缩数据块及对应的压缩粒度,并根据该压缩粒度对压缩数据块进行解压和截取,最后将得到的数据返回,从而实现对待读取数据的解压缩和读取,且解压缩过程基于压缩数据块的压缩粒度,而非基于固定的压缩粒度,可以对不同压缩粒度的压缩数据块进行解压缩,充分扩展了解压缩处理中的灵活性,适用于具有不同压缩粒度的存储系统,既能有效利用存储空间,又能保证数据解压缩的完整性。
图10为本公开一个实施例提供的电子设备的结构示意图。如图10所示,该控制设备包括:存储器910和处理器920。
其中,存储器910存储有可被至少一个处理器920执行的计算机程序。该算机程序被至少一个处理器920执行,以使控制设备实现如上任一实施例中提供的数据处理方法。
其中,存储器910和处理器920可以通过总线930连接。
相关说明可以对应参见方法实施例所对应的相关描述和效果进行理解,此处不予赘述。
本公开实施例还提供一种数据处理系统。该数据处理系统包括:主机端和存储设备,例如如图1所示。
其中,存储设备与主机端数据连接,存储设备用于执行如上任一方法实施例中存储设备执行的步骤。
可选地,存储设备包括存储介质,存储设备根据主机端的写入请求将写入请求对应数据压缩并写入存储介质;或,存储设备根据主机端的读取请求,从存储介质中将读取请求对应的数据从压缩数据块中解压缩并发送至主机端,从而实现数据处理的流程。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现本公开方法实施例中任一实施例提供的数据处理方法。
其中,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开实施例还提供一种计算机程序产品,其包含计算机执行指令,该计算机执行指令被处理器执行时用于实现如上述方法实施例中的数据处理方法。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (15)
1.一种数据处理方法,其特征在于,应用于存储设备,所述数据处理方法包括:
确定待压缩数据的逻辑块地址,所述逻辑块地址用于确定所述待压缩数据的数据长度和连续性;
根据所述逻辑块地址,对所述待压缩数据进行压缩;
所述根据所述逻辑块地址,对所述待压缩数据进行压缩,包括:
根据所述逻辑块地址,确定所述待压缩数据的逻辑块地址是否连续;
若所述待压缩数据的逻辑块地址是连续的,则根据所述待压缩数据的数据长度,对所述待压缩数据进行压缩;
所述根据所述待压缩数据的数据长度,对所述待压缩数据进行压缩,包括:
若所述待压缩数据的数据长度小于或等于所述存储设备对应的最大压缩粒度,则对所述待压缩数据进行压缩;
或者,若所述待压缩数据的数据长度大于所述存储设备对应的最大压缩粒度,则根据所述最大压缩粒度,对所述待压缩数据进行切分;以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩。
2.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述逻辑块地址的连续性,对所述待压缩数据进行压缩,包括:
确定所述待压缩数据的逻辑块地址是否连续;
若所述待压缩数据的逻辑块地址是非连续的,则确定所述待压缩数据中逻辑块地址连续的数据块;
根据所述逻辑块地址连续的数据块的数据长度,对所述待压缩数据进行压缩。
3.根据权利要求2所述的数据处理方法,其特征在于,所述根据所述逻辑块地址连续的数据块的数据长度,对所述待压缩数据进行压缩,包括:
若所述逻辑块地址连续的数据块的数据长度大于或等于所述存储设备对应的最大压缩粒度,则根据所述最大压缩粒度,对所述待压缩数据进行切分;以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩;
或者,若所述逻辑块地址连续的数据块的数据长度小于或等于所述存储设备对应的最大压缩粒度,则对所述逻辑块地址连续的数据块进行压缩。
4.根据权利要求1至3中任一所述的数据处理方法,其特征在于,所述确定待压缩数据的逻辑块地址,包括:
接收来自主机端发送的写入请求,所述写入请求携带有所述待压缩数据及所述待压缩数据的逻辑块地址;
解析所述写入请求,得到所述待压缩数据及所述待压缩数据的逻辑块地址;
所述数据处理方法还包括:将压缩后的数据写入存储介质。
5.根据权利要求4所述的数据处理方法,其特征在于,还包括以下至少一项:
在闪存映射表中记录所述压缩后的数据的逻辑块地址和压缩粒度;
向与所述存储设备数据连接的主机端发送写入完毕的信息。
6.一种数据处理方法,其特征在于,应用于存储设备,所述数据处理方法包括:
确定待解压缩数据的逻辑块地址,所述逻辑块地址用于确定所述待解压缩数据的压缩粒度;
根据所述逻辑块地址,确定待解压缩数据对应的压缩数据块;
以所述压缩数据块对应的压缩粒度,对所述压缩数据块进行解压缩,所述压缩数据块对应的压缩粒度为所述压缩数据块在压缩之前的数据长度;
所述以所述压缩数据块对应的压缩粒度,对所述压缩数据块进行解压缩,包括:根据闪存映射表中与压缩数据块逻辑块地址对应的物理块地址找到存储设备的存储介质中的对应数据进行解压缩。
7.根据权利要求6所述的数据处理方法,其特征在于,所述根据所述逻辑块地址,确定待解压缩数据对应的压缩数据块,包括:
将在闪存映射表中查找到的包含所述待解压缩数据的逻辑块地址的压缩数据块确定为所述待解压缩数据对应的压缩数据块。
8.根据权利要求6或7所述的数据处理方法,其特征在于,所述确定待解压缩数据的逻辑块地址,包括:
接收来自主机端的读取请求,所述读取请求包括所述待解压缩数据的逻辑块地址;
解析所述读取请求,得到所述待解压缩数据的逻辑块地址;
所述数据处理方法还包括:将解压缩后的数据发送至所述主机端。
9.根据权利要求8所述的数据处理方法,其特征在于,所述将解压缩后的数据发送至所述主机端,包括:
截取所述解压缩后的数据中逻辑块地址位于所述待解压缩数据的逻辑块地址范围内的数据;
将截取的数据发送至所述主机端。
10.根据权利要求6或7所述的数据处理方法,其特征在于,还包括:
响应于接收到主机端发送的清除指令,在闪存映射表中清除目标数据块的逻辑块地址的记录,所述清除指令中包含所述目标数据块的标识。
11.一种数据处理装置,其特征在于,应用于存储设备,所述数据处理装置包括:
确定模块,用于确定待压缩数据的逻辑块地址,所述逻辑块地址用于确定所述待压缩数据的数据长度和连续性;
压缩模块,用于根据所述逻辑块地址的连续性,对所述待压缩数据进行压缩;
所述压缩模块包括:
确定单元,用于根据所述逻辑块地址,确定待压缩数据的逻辑块地址是否连续;
第一压缩单元,用于在所述待压缩数据的所述逻辑块地址是连续的时,根据所述待压缩数据的数据长度,对所述待压缩数据进行压缩;
在所述待压缩数据的所述逻辑块地址是连续的时,所述第一压缩单元具体用于:在待压缩数据的数据长度小于或等于存储设备对应的最大压缩粒度时,对待压缩数据进行压缩;或者,在待压缩数据的数据长度大于存储设备对应的最大压缩粒度时,根据最大压缩粒度,对待压缩数据进行切分;并以切分后的数据块的数据长度为压缩粒度,对切分后的数据块进行压缩。
12.一种数据处理装置,其特征在于,应用于存储硬件控制系统,所述数据处理装置包括:
确定模块,用于确定待解压缩数据的逻辑块地址,所述逻辑块地址用于确定所述待解压缩数据的压缩粒度;以及,根据所述逻辑块地址,确定待解压缩数据对应的压缩数据块;
解压缩模块,用于以所述压缩数据块对应的压缩粒度,对所述数据块进行解压缩,所述压缩数据块对应的压缩粒度为所述压缩数据块在压缩之前的数据长度;
所述解压缩模块,具体用于:根据闪存映射表中与压缩数据块逻辑块地址对应的物理块地址找到存储设备的存储介质中的对应数据进行解压缩。
13.一种电子设备,其特征在于,包括:存储器以及处理器;
其中,所述存储器中存储有计算机程序;
所述处理器,被配置为执行如权利要求1至10中任一项所述的数据处理方法。
14.一种数据处理系统,其特征在于,包括:
存储设备和主机端;
所述存储设备与所述主机端数据连接,所述存储设备用于执行如权利要求1至10中任一项所述的数据处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至10任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110552304.9A CN113326001B (zh) | 2021-05-20 | 2021-05-20 | 数据处理方法、装置、设备、系统、介质及程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110552304.9A CN113326001B (zh) | 2021-05-20 | 2021-05-20 | 数据处理方法、装置、设备、系统、介质及程序 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113326001A CN113326001A (zh) | 2021-08-31 |
CN113326001B true CN113326001B (zh) | 2023-08-01 |
Family
ID=77416094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110552304.9A Active CN113326001B (zh) | 2021-05-20 | 2021-05-20 | 数据处理方法、装置、设备、系统、介质及程序 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326001B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516369A (zh) * | 2013-06-20 | 2014-01-15 | 易乐天 | 一种自适应数据压缩和解压缩的方法和系统及存储装置 |
WO2015162755A1 (ja) * | 2014-04-24 | 2015-10-29 | 株式会社日立製作所 | データを圧縮して格納するストレージ装置 |
CN112486852A (zh) * | 2020-12-01 | 2021-03-12 | 合肥大唐存储科技有限公司 | 一种固态硬盘及其地址映射方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1894677A (zh) * | 2003-04-16 | 2007-01-10 | 皇家飞利浦电子股份有限公司 | 采用对存储在存储器中的数据进行压缩的数据处理装置 |
EP2742429A4 (en) * | 2011-08-09 | 2015-03-25 | Lsi Corp | I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST |
US10133500B2 (en) * | 2013-03-06 | 2018-11-20 | Ab Initio Technology Llc | Managing operations on stored data units |
US9959070B2 (en) * | 2013-03-06 | 2018-05-01 | Ab Initio Technology Llc | Managing operations on stored data units |
CN105204781B (zh) * | 2015-09-28 | 2019-04-12 | 华为技术有限公司 | 压缩方法、装置和设备 |
US10216415B2 (en) * | 2016-05-18 | 2019-02-26 | Intel Corporation | Computer program product, system, and method for dynamically increasing the capacity of a storage device |
CN107526743B (zh) * | 2016-06-21 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 用于压缩文件系统元数据的方法和设备 |
EP3296996B1 (en) * | 2016-06-24 | 2019-08-28 | Huawei Technologies Co., Ltd. | Method for processing data, storage apparatus, solid state disk and storage system |
WO2018058604A1 (zh) * | 2016-09-30 | 2018-04-05 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
CN108848383A (zh) * | 2018-06-16 | 2018-11-20 | 武汉宝辉科技有限公司 | 一种视频、图像数据的压缩方法 |
CN110784225A (zh) * | 2018-07-31 | 2020-02-11 | 华为技术有限公司 | 数据压缩、解压方法及相关装置、电子设备、系统 |
CN112306974A (zh) * | 2019-07-30 | 2021-02-02 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112346666B (zh) * | 2020-11-30 | 2022-02-15 | 华中科技大学 | 基于ocssd的键值存储系统的写、块粒度压缩合并方法和系统 |
-
2021
- 2021-05-20 CN CN202110552304.9A patent/CN113326001B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516369A (zh) * | 2013-06-20 | 2014-01-15 | 易乐天 | 一种自适应数据压缩和解压缩的方法和系统及存储装置 |
WO2015162755A1 (ja) * | 2014-04-24 | 2015-10-29 | 株式会社日立製作所 | データを圧縮して格納するストレージ装置 |
CN112486852A (zh) * | 2020-12-01 | 2021-03-12 | 合肥大唐存储科技有限公司 | 一种固态硬盘及其地址映射方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113326001A (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9779023B1 (en) | Storing inline-compressed data in segments of contiguous physical blocks | |
US8417901B2 (en) | Combining write commands to overlapping addresses or to a specific page | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
EP3296996A1 (en) | Method for processing data, storage apparatus, solid state disk and storage system | |
US9311002B1 (en) | Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity | |
US20180203637A1 (en) | Storage control apparatus and storage control program medium | |
CN109802684B (zh) | 进行数据压缩的方法和装置 | |
EP3229444B1 (en) | Server and method for compressing data by server | |
US10853199B2 (en) | Techniques for managing context information for a storage device while maintaining responsiveness | |
CN107947799B (zh) | 一种数据压缩方法及装置 | |
CN110532201B (zh) | 一种元数据处理方法及装置 | |
KR101730151B1 (ko) | 플래시 메모리 장치에 데이터를 기록하는 방법, 플래시 메모리 장치, 및 저장 시스템 | |
CN111813813B (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN106201652B (zh) | 一种数据处理方法及虚拟机 | |
US9983826B2 (en) | Data storage device deferred secure delete | |
WO2017132797A1 (zh) | 数据整理方法、存储设备、存储控制器以及存储阵列 | |
CN109814809B (zh) | 数据压缩方法及装置 | |
KR20170010810A (ko) | 플래시 메모리 내에 데이터를 판독/기록하기 위한 방법, 장치 및 사용자 장비 | |
US20170177602A1 (en) | Compressed data layout with variable group size | |
JPWO2017006675A1 (ja) | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム | |
CN116257460B (zh) | 基于固态硬盘的Trim命令处理方法及固态硬盘 | |
CN116340198B (zh) | 固态硬盘的数据写入方法、其装置及固态硬盘 | |
CN113326001B (zh) | 数据处理方法、装置、设备、系统、介质及程序 | |
US10761762B2 (en) | Relocating compressed extents using batch-hole list | |
US20230142948A1 (en) | Techniques for managing context information for a storage device |
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 |