CN115865097B - 一种数据压缩方法、***、设备及计算机可读存储介质 - Google Patents
一种数据压缩方法、***、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115865097B CN115865097B CN202310127875.7A CN202310127875A CN115865097B CN 115865097 B CN115865097 B CN 115865097B CN 202310127875 A CN202310127875 A CN 202310127875A CN 115865097 B CN115865097 B CN 115865097B
- Authority
- CN
- China
- Prior art keywords
- data
- type
- class
- target
- compressed
- 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
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种数据压缩方法、***、设备及计算机可读存储介质,应用于分布式存储***,获取待压缩的目标数据;获取压缩操作的数据大小值;基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据;对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据;对第一类数据和第三类数据进行压缩,得到目标压缩数据。本申请中,分布式存储***将第二类数据处理成大小等于压缩操作的数据大小值的第三类数据,这样对第一类数据和第二类数据进行压缩的话,相当于对大小等于数据大小值的整数倍的数据进行压缩,提高了数据压缩效率。
Description
技术领域
本申请涉及分布式存储***数据压缩技术领域,更具体地说,涉及一种数据压缩方法、***、设备及计算机可读存储介质。
背景技术
当前,数据存储基础设施的部署往往难以一步到位,横向扩展、高可靠、高性能成为数据存储部署基础设施的关键需求。而分布式存储***已经得到普遍应用,分布式存储***为了实现更灵活的扩展性和更大的存储规模,通过内部交换机互联,采用无中心的组网方式,每个存储节点都可以同时提供计算和存储资源,且基于分布式存储软件提供统一的存储资源池,分布式存储集群可以扩展到数千个节点EB级别容量,因此,在海量数据的场景下得到了普遍应用。
然而,在海量数据成为常态的情况下,数据的容量和管理成本持续增长,因此,业界采用了数据压缩技术来降低实际存储的数据量,从而降低存储设施建设的运营成本。数据压缩是指在满足数据完整性的前提下,通过对数据进行组织管理,减少数据量进而缩减存储空间占用,提高存储***的管理、传输效率。在有限的硬件资源条件下,实现更高效的数据压缩来减少存储基础设施的成本,已成为分布式存储***研究领域中的重要方向。
为了在分布式存储***的存储数据实现高的压缩比例和性能之间寻找一个平衡点,可以根据应用需求的不同,对数据压缩方法、存储资源计算能力、性能以及成本进行不断的控制和优化,通常,数据压缩过程,需要多个数据块进行合并压缩,数据压缩范围不可控,会导致数据块在存储设备上存在大量空洞现象,影响压缩效率和性能。特别的,在分布式存储***进行数据压缩时,针对不同的数据大小,特别是覆盖写场景下,小文件覆盖写区域由于不满足分布式最小分配单元空间分配规则,将无法进行高效的压缩处理。
综上所述,如何在分布式存储***中实现高效的数据压缩是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据压缩方法,其能在一定程度上解决如何在分布式存储***中实现高效的数据压缩的技术问题。本申请还提供了一种数据压缩***、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种数据压缩方法,应用于分布式存储***,包括:
获取待压缩的目标数据;
获取压缩操作的数据大小值;
基于所述数据大小值将所述目标数据分类为第一类数据及第二类数据,所述第一类数据为大小等于所述数据大小值的整数倍的数据,所述第二类数据为大小不等于所述数据大小值的整数倍的数据;
对所述第二类数据进行处理,得到大小等于所述数据大小值的整数倍的第三类数据;
对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据。
优选的,所述基于所述数据大小值将所述目标数据分类为第一类数据及第二类数据,包括:
对于所述目标数据中的每个待压缩数据,对所述待压缩数据和所述数据大小值进行取模计算,若取模计算值为0,则将所述待压缩数据分类为所述第一类数据,若所述取模计算值不为0,则将所述待压缩数据分类为所述第二类数据。
优选的,所述对所述第二类数据进行处理,得到大小等于所述数据大小值的整数倍的第三类数据,包括:
对所述第二类数据进行重排,得到大小等于所述数据大小值的整数倍的所述第三类数据。
优选的,所述对所述第二类数据进行处理,得到大小等于所述数据大小值的整数倍的第三类数据,包括:
对所述第二类数据进行字节补齐,得到大小等于所述数据大小值的整数倍的所述第三类数据。
优选的,所述对所述第二类数据进行处理,得到大小等于所述数据大小值的整数倍的第三类数据,包括:
对所述第二类数据进行重排和字节补齐,得到大小等于所述数据大小值的整数倍的所述第三类数据。
优选的,所述对所述第二类数据进行重排和字节补齐,得到大小等于所述数据大小值的整数倍的所述第三类数据,包括:
读取所述第二类数据的数据偏移量和数据长度;
基于所述数据偏移量和所述数据长度对所述第二类数据进行排序,得到排序结果;
对所述排序结果进行字节补齐,得到大小等于所述数据大小值的整数倍的所述第三类数据。
优选的,所述基于所述数据偏移量和所述数据长度对所述第二类数据进行排序,得到排序结果,包括:
在存储块设备中申请目标空间,所述目标空间的大小为所述第二类数据中两个数据块的排序序列之后;
设定指向所述目标空间的偏移量的指针,所述指针的最初位置为两个所述数据块的数据偏移量;
重复执行比较所述指针所指向的所述数据块,并选择所述数据块中相对较小的元素放入所述目标空间,并移动指针至下一位置的操作,直至任一所述指针超出所述数据块的序列尾;
将另一数据块中剩下的元素直接复制到所述目标空间的序列尾,得到所述排序数据。
优选的,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
对所述第一类数据和所述第三类数据进行无损压缩,得到所述目标压缩数据。
优选的,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据,并将所述目标压缩数据写入持久化存储设备中。
优选的,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
将所述第一类数据和所述第三类数据写入持久化存储设备中;
对写入所述持久化存储设备中的所述第一类数据和所述第三类数据进行压缩。
优选的,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
获取所述分布式存储***的性能波动值;
若所述性能波动值超过预设阈值,则将所述第一类数据和所述第三类数据写入持久化存储设备中,并对写入所述持久化存储设备中的所述第一类数据和所述第三类数据进行压缩;
若所述性能波动值未超过预设阈值,则对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据,并将所述目标压缩数据写入持久化存储设备中。
优选的,所述获取所述分布式存储***的性能波动值,包括:
获取所述分布式存储***的带宽波动值。
优选的,所述获取所述分布式存储***的性能波动值,包括:
获取所述分布式存储***的IOPS波动值。
优选的,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
统计所述第一类数据和所述第三类数据中各个数据的重复数据块写入次数;
基于所述重复数据块写入次数确定所述第一类数据和所述第三类数据中各个数据的压缩权重;
基于所述权重对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据。
优选的,所述基于所述重复数据块写入次数确定所述第一类数据和所述第三类数据中各个数据的压缩权重,包括:
按照重复数据块写入次数越多的数据的压缩权重越大的规则,基于所述重复数据块写入次数确定所述第一类数据和所述第三类数据中各个数据的所述压缩权重;
所述基于所述权重对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据,包括:
按照压缩权重越大的数据越先被压缩的规则,基于所述权重对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据。
优选的,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据之后,还包括:
剔除所述目标压缩数据中的补零数据段,得到处理压缩数据。
优选的,所述剔除所述目标压缩数据中的补零数据段,得到处理压缩数据,包括:
读取所述目标压缩数据的元数据,得到所述目标压缩数据的元数据偏移量;
基于所述元数据偏移量确定所述目标压缩数据中的所述补零数据段;
对所述目标压缩数据中的所述补零数据段进行剔除,得到所述处理压缩数据。
一种数据压缩***,应用于分布式存储***,包括:
第一获取模块,用于获取待压缩的目标数据;
第二获取模块,用于获取压缩操作的数据大小值;
第一分类模块,用于基于所述数据大小值将所述目标数据分类为第一类数据及第二类数据,所述第一类数据为大小等于所述数据大小值的整数倍的数据,所述第二类数据为大小不等于所述数据大小值的整数倍的数据;
第一处理模块,用于对所述第二类数据进行处理,得到大小等于所述数据大小值的整数倍的第三类数据;
第一压缩模块,用于对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据。
一种数据压缩设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述数据压缩方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述数据压缩方法的步骤。
本申请提供的一种数据压缩方法,应用于分布式存储***,获取待压缩的目标数据;获取压缩操作的数据大小值;基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据;对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据;对第一类数据和第三类数据进行压缩,得到目标压缩数据。本申请中,分布式存储***可以将第二类数据处理成大小等于压缩操作的数据大小值的第三类数据,这样对第一类数据和第二类数据进行压缩的话,相当于只对大小等于数据大小值的整数倍的数据进行压缩,避免了单独对大小不等于数据大小值的整数倍的数据进行压缩,提高了数据压缩效率。本申请提供的一种数据压缩***、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据压缩方法的第一流程图;
图2为分布式存储***数据存储结构图;
图3为本申请实施例提供的一种数据压缩方法的第二流程图;
图4为分布式存储***数据压缩处理示意图;
图5为本申请实施例提供的一种数据压缩方法的第三流程图;
图6为本申请实施例提供的一种数据压缩方法的第四流程图;
图7为分布式存储***数据压缩权重表处理示意图;
图8为本申请实施例提供的一种数据压缩方法的第五流程图;
图9为分布式存储***数据解决压缩空洞示意图;
图10为本申请实施例提供的一种数据压缩***的结构示意图;
图11为本申请实施例提供的一种数据压缩设备的结构示意图;
图12为本申请实施例提供的一种数据压缩设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当前,数据存储基础设施的部署往往难以一步到位,横向扩展、高可靠、高性能成为数据存储部署基础设施的关键需求。而分布式存储***已经得到普遍应用,分布式存储***为了实现更灵活的扩展性和更大的存储规模,通过内部交换机互联,采用无中心的组网方式,每个存储节点都可以同时提供计算和存储资源,且基于分布式存储软件提供统一的存储资源池,分布式存储集群可以扩展到数千个节点EB级别容量,因此,在海量数据的场景下得到了普遍应用。
然而,在海量数据成为常态的情况下,数据的容量和管理成本持续增长,因此,业界采用了数据压缩技术来降低实际存储的数据量,从而降低存储设施建设的运营成本。数据压缩是指在满足数据完整性的前提下,通过对数据进行组织管理,减少数据量进而缩减存储空间占用,提高存储***的管理、传输效率。根据元数据是否完整分为有损压缩和无损压缩,无损压缩通常是通过对数据中的冗余信息进行处理来减小数据体积的,因此是可逆的。在有限的硬件资源条件下,实现更高效的数据压缩来减少存储基础设施的成本,已成为分布式存储***研究领域中的重要方向。
为了在分布式存储***的存储数据实现高的压缩比例和性能之间寻找一个平衡点,可以根据应用需求的不同,对数据压缩方法、存储资源计算能力、性能以及成本进行不断的控制和优化,通常,数据压缩过程,需要多个数据块进行合并压缩,数据压缩范围不可控,会导致数据块在存储设备上存在大量空洞现象,影响压缩效率和性能。特别的,在分布式存储***进行数据压缩时,针对不同的数据大小,特别是覆盖写场景下,小文件覆盖写区域由于不满足分布式最小分配单元空间分配规则,将无法进行高效的压缩处理。而本申请提供的数据压缩方案可以在分布式存储***中实现高效的数据压缩。
请参阅图1,图1为本申请实施例提供的一种数据压缩方法的第一流程图。
本申请实施例提供的一种数据压缩方法,应用于分布式存储***,可以包括以下步骤:
步骤S101:获取待压缩的目标数据。
实际应用中,分布式存储***可以先获取待压缩的目标数据,具体的,分布式存储***可以将分布式存储对象根据一致性hash算法经过存储池映射到存储块设备中的数据作为待压缩的目标数据等,本申请在此不做具体限定。
需要说明的是,本申请中分布式存储***的结构可以根据实际需要灵活确定,比如可以如图2所示,其中的分布式存储***可以兼容POSIX类型的分布式文件***、swift和S3的对象存储***、以及块设备驱动***。其中,分布式存储***底层存储是以对象为单元进行扁平化存储,分布式存储***将存储的数据,不管是块设备、对象存储数据或文件存储***均转化为底层的对象object,该object包含3个元素data,xattr,omap,其中data是保存对象的数据,xattr是保存对象的扩展属性(key/value值对),每个对象文件都可以设置文件的属性,omap实际上是保存到了key/value值对的数据库levelDB中,与xattr的区别是omap的value值不受限制;对象object经过分布式存储算法计算映射到底层存储服务器OSD进程中,即存储介质设备,该进程以对象形式承载客户端的读写数据。相应的,目标数据的确定过程可以如下:分布式存储客户端分别以对象、块、文件的形式存储在分布式存储***中,该阶段数据为原始数据,分布式存储***根据请求数据的类型,分别指向不同的服务接口,分别是兼容POSIX类型的分布式文件***、swift和S3的对象存储***、以及块RBD设备驱动***,经过统一的、自控的、可扩展的分布式存储***将原始数据按照约定4MB大小进行切片为分布式存储对象object,该对象object根据一致性hash算法经过存储池映射到存储块设备介质中成为待压缩的目标数据,后续也可以在该过程中对存入的对象数据进行压缩处理。
步骤S102:获取压缩操作的数据大小值。
实际应用中,分布式存储***在获取待压缩的目标数据之后,便可以获取压缩操作的数据大小值,该数据大小值也即分布式存储***在进行数据压缩操作时所依据的数据单位值,比如可以为存储底层OSD(Object Storage Device,响应客户端请求返回具体数据的进程)设备的最小分配单元大小等,其值可以根据具体应用场景灵活确定,比如该数据大小值可以为4KB等。
步骤S103:基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据。
实际应用中,分布式存储***在获取压缩操作的数据大小值之后,便可以基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据,以便后续对第一类数据和第二类数据进行相应压缩处理。
步骤S104:对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据。
步骤S105:对第一类数据和第三类数据进行压缩,得到目标压缩数据。
实际应用中,分布式存储***在基于数据大小值将目标数据分类为第一类数据及第二类数据之后,因为小文件覆盖写区域由于不满足分布式最小分配单元空间分配规则,将无法进行高效的压缩处理,为了避免此种情况,分布式存储***可以对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据,也即可以将第二类数据处理成大小等于数据大小值的整数倍的第三类数据,最后便可以对第一类数据和第三类数据进行整数据压缩,得到目标压缩数据,使得不同数据类型均能够进行数据压缩,实现更高的压缩比。
本申请提供的一种数据压缩方法,应用于分布式存储***,获取待压缩的目标数据;获取压缩操作的数据大小值;基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据;对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据;对第一类数据和第三类数据进行压缩,得到目标压缩数据。本申请中,分布式存储***可以将第二类数据处理成大小等于压缩操作的数据大小值的第三类数据,这样对第一类数据和第二类数据进行压缩的话,相当于只对大小等于数据大小值的整数倍的数据进行压缩,避免了单独对大小不等于数据大小值的整数倍的数据进行压缩,提高了数据压缩效率。
请参阅图3,图3为本申请实施例提供的一种数据压缩方法的第二流程图。
本申请实施例提供的一种数据压缩方法,应用于分布式存储***,可以包括以下步骤:
步骤S201:获取待压缩的目标数据。
步骤S202:获取压缩操作的数据大小值。
步骤S203:对于目标数据中的每个待压缩数据,对待压缩数据和数据大小值进行取模计算,若取模计算值为0,则将待压缩数据分类为第一类数据,若取模计算值不为0,则将待压缩数据分类为第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据。
实际应用中,在基于数据大小值将目标数据分类为第一类数据及第二类数据的过程中,可以通过取模运算来快速将目标数据分类为第一类数据及第二类数据,具体的,对于目标数据中的每个待压缩数据,可以对待压缩数据和数据大小值进行取模计算,若取模计算值为0,则将待压缩数据分类为第一类数据,若取模计算值不为0,则将待压缩数据分类为第二类数据。
步骤S204:对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据。
实际应用中,在对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据的过程中,可以对第二类数据进行重排,以快速得到大小等于数据大小值的整数倍的第三类数据,其过程可以如图4所示。
实际应用中,在对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据的过程中,可以对第二类数据进行字节补齐,以快速得到大小等于数据大小值的整数倍的第三类数据。
实际应用中,在对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据的过程中,可以对第二类数据进行重排和字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
具体应用场景中,在对第二类数据进行重排和字节补齐,得到大小等于数据大小值的整数倍的第三类数据的过程中,可以读取第二类数据的数据偏移量和数据长度;基于数据偏移量和数据长度对第二类数据进行排序,得到排序结果;对排序结果进行字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
具体应用场景中,在基于数据偏移量和数据长度对第二类数据进行排序,得到排序结果的过程中,可以在存储块设备中申请目标空间,目标空间的大小为第二类数据中两个数据块的排序序列之后;设定指向目标空间的偏移量的指针,指针的最初位置为两个数据块的数据偏移量;重复执行比较指针所指向的数据块,并选择数据块中相对较小的元素放入目标空间,并移动指针至下一位置的操作,直至任一指针超出数据块的序列尾;将另一数据块中剩下的元素直接复制到目标空间的序列尾,得到排序数据。
步骤S205:对第一类数据和第三类数据进行压缩,得到目标压缩数据。
请参阅图5,图5为本申请实施例提供的一种数据压缩方法的第三流程图。
本申请实施例提供的一种数据压缩方法,应用于分布式存储***,可以包括以下步骤:
步骤S301:获取待压缩的目标数据。
步骤S302:获取压缩操作的数据大小值。
步骤S303:基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据。
步骤S304:对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据。
步骤S305:对第一类数据和第三类数据进行无损压缩,得到目标压缩数据。
实际应用中,在对第一类数据和第三类数据进行压缩,得到目标压缩数据的过程中,为了保证压缩效果,可以对第一类数据和第三类数据进行无损压缩,得到目标压缩数据。
实际应用中,在对第一类数据和第三类数据进行压缩,得到目标压缩数据的过程中,可以先对第一类数据和第三类数据进行压缩,得到目标压缩数据,再将目标压缩数据写入持久化存储设备中。
实际应用中,在对第一类数据和第三类数据进行压缩,得到目标压缩数据的过程中,可以先将第一类数据和第三类数据写入持久化存储设备中;再对写入持久化存储设备中的第一类数据和第三类数据进行压缩。
实际应用中,在对第一类数据和第三类数据进行压缩,得到目标压缩数据的过程中,可以根据分布式存储***的性能波动值来确定相应的压缩方式,也即可以获取分布式存储***的性能波动值;若性能波动值超过预设阈值,则将第一类数据和第三类数据写入持久化存储设备中,并对写入持久化存储设备中的第一类数据和第三类数据进行压缩;若性能波动值未超过预设阈值,则对第一类数据和第三类数据进行压缩,得到目标压缩数据,并将目标压缩数据写入持久化存储设备中。
具体应用场景中,在获取分布式存储***的性能波动值的过程中,可以获取分布式存储***的带宽波动值等。
具体应用场景中,在获取分布式存储***的性能波动值的过程中,可以获取分布式存储***的IOPS波动值等。
请参阅图6,图6为本申请实施例提供的一种数据压缩方法的第四流程图。
本申请实施例提供的一种数据压缩方法,应用于分布式存储***,可以包括以下步骤:
步骤S401:获取待压缩的目标数据。
步骤S402:获取压缩操作的数据大小值。
步骤S403:基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据。
步骤S404:对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据。
步骤S405:统计第一类数据和第三类数据中各个数据的重复数据块写入次数。
步骤S406:基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重。
步骤S407:基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据。
实际应用中,在对第一类数据和第三类数据进行压缩,得到目标压缩数据的过程中,可以统计第一类数据和第三类数据中各个数据的重复数据块写入次数;基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重;基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据。具体的,可以以权重表的形式记录每个数据的权重值信息,比如如图7所示,其中每个压缩对象object,包括逻辑偏移off-n,数据length,重复写入次数R-n字段进行描述,通过对写入数据的重复数据段进行R-n字段统计来得到相应的压缩权重等。
具体应用场景中,在基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重的过程中,可以按照重复数据块写入次数越多的数据的压缩权重越大的规则,基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重;相应的,在基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据的过程中,可以按照压缩权重越大的数据越先被压缩的规则,基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据。以优先对重复数据块最多的数据进行压缩,避免压缩数据标记信息过大造成的内存资源占用过多和存储***性能降低的问题。
请参阅图8,图8为本申请实施例提供的一种数据压缩方法的第五流程图。
本申请实施例提供的一种数据压缩方法,应用于分布式存储***,可以包括以下步骤:
步骤S501:获取待压缩的目标数据。
步骤S502:获取压缩操作的数据大小值。
步骤S503:基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据。
步骤S504:对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据。
步骤S505:对第一类数据和第三类数据进行压缩,得到目标压缩数据。
步骤S506:剔除目标压缩数据中的补零数据段,得到处理压缩数据。
实际应用中,在对第一类数据和第三类数据进行压缩,得到目标压缩数据之后,为了进一步提高分布式存储***的空间利用率,可以剔除目标压缩数据中的补零数据段,得到减少了数据空洞的处理压缩数据,其过程可以如图9所示。
具体应用场景中,剔除目标压缩数据中的补零数据段,得到处理压缩数据的过程中,由于分布式存储***写入数据,每次写完后,立刻调用***函数sync_file_range仅刷新offset,length的数据,不更新元数据,因此,可以读取目标压缩数据的元数据,得到目标压缩数据的元数据偏移量;基于元数据偏移量确定目标压缩数据中的补零数据段;对目标压缩数据中的补零数据段进行剔除,得到处理压缩数据。以助于存储***垃圾数据回收,增加数据压缩比,降低分布式存储***实际存储的数据量,降低存储设施建设的运营成本。
请参阅图10,图10为本申请实施例提供的一种数据压缩***的结构示意图。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,可以包括:
第一获取模块101,用于获取待压缩的目标数据;
第二获取模块102,用于获取压缩操作的数据大小值;
第一分类模块103,用于基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据;
第一处理模块104,用于对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据;
第一压缩模块105,用于对第一类数据和第三类数据进行压缩,得到目标压缩数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一分类模块可以包括:
第一计算单元,用于对于目标数据中的每个待压缩数据,对待压缩数据和数据大小值进行取模计算,若取模计算值为0,则将待压缩数据分类为第一类数据,若取模计算值不为0,则将待压缩数据分类为第二类数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一处理模块可以包括:
第一重排单元,用于对第二类数据进行重排,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一处理模块可以包括:
第一补齐单元,用于对第二类数据进行字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一处理模块可以包括:
第一处理单元,用于对第二类数据进行重排和字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一处理单元可以具体用于:读取第二类数据的数据偏移量和数据长度;基于数据偏移量和数据长度对第二类数据进行排序,得到排序结果;对排序结果进行字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一处理单元可以具体用于:在存储块设备中申请目标空间,目标空间的大小为第二类数据中两个数据块的排序序列之后;设定指向目标空间的偏移量的指针,指针的最初位置为两个数据块的数据偏移量;重复执行比较指针所指向的数据块,并选择数据块中相对较小的元素放入目标空间,并移动指针至下一位置的操作,直至任一指针超出数据块的序列尾;将另一数据块中剩下的元素直接复制到目标空间的序列尾,得到排序数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一压缩模块可以包括:
第一压缩单元,用于对第一类数据和第三类数据进行无损压缩,得到目标压缩数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一压缩模块可以包括:
第二压缩单元,用于对第一类数据和第三类数据进行压缩,得到目标压缩数据,并将目标压缩数据写入持久化存储设备中。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一压缩模块可以包括:
第三压缩单元,用于将第一类数据和第三类数据写入持久化存储设备中;对写入持久化存储设备中的第一类数据和第三类数据进行压缩。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一压缩模块可以包括:
第四压缩单元,用于获取分布式存储***的性能波动值;若性能波动值超过预设阈值,则将第一类数据和第三类数据写入持久化存储设备中,并对写入持久化存储设备中的第一类数据和第三类数据进行压缩;若性能波动值未超过预设阈值,则对第一类数据和第三类数据进行压缩,得到目标压缩数据,并将目标压缩数据写入持久化存储设备中。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第四压缩单元可以具体用于:获取分布式存储***的带宽波动值。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第四压缩单元可以具体用于:获取分布式存储***的IOPS波动值。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一压缩模块可以包括:
第一统计单元,用于统计第一类数据和第三类数据中各个数据的重复数据块写入次数;
第一确定单元,用于基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重;
第五压缩单元,用于基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一确定单元可以具体用于:按照重复数据块写入次数越多的数据的压缩权重越大的规则,基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重;
第五压缩单元可以具体用于:按照压缩权重越大的数据越先被压缩的规则,基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,还可以包括:
第一删除模块,用于第一压缩模块对第一类数据和第三类数据进行压缩,得到目标压缩数据之后,剔除目标压缩数据中的补零数据段,得到处理压缩数据。
本申请实施例提供的一种数据压缩***,应用于分布式存储***,第一剔除模块可以包括:
第一读取单元,用于读取目标压缩数据的元数据,得到目标压缩数据的元数据偏移量;
第二确定单元,用于基于元数据偏移量确定目标压缩数据中的补零数据段;
第一剔除单元,用于对目标压缩数据中的补零数据段进行剔除,得到处理压缩数据。
本申请还提供了一种数据压缩设备及计算机可读存储介质,其均具有本申请实施例提供的一种数据压缩方法具有的对应效果。请参阅图11,图11为本申请实施例提供的一种数据压缩设备的结构示意图。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
获取待压缩的目标数据;
获取压缩操作的数据大小值;
基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据;
对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据;
对第一类数据和第三类数据进行压缩,得到目标压缩数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:对于目标数据中的每个待压缩数据,对待压缩数据和数据大小值进行取模计算,若取模计算值为0,则将待压缩数据分类为第一类数据,若取模计算值不为0,则将待压缩数据分类为第二类数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:对第二类数据进行重排,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:对第二类数据进行字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:对第二类数据进行重排和字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:读取第二类数据的数据偏移量和数据长度;基于数据偏移量和数据长度对第二类数据进行排序,得到排序结果;对排序结果进行字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:在存储块设备中申请目标空间,目标空间的大小为第二类数据中两个数据块的排序序列之后;设定指向目标空间的偏移量的指针,指针的最初位置为两个数据块的数据偏移量;重复执行比较指针所指向的数据块,并选择数据块中相对较小的元素放入目标空间,并移动指针至下一位置的操作,直至任一指针超出数据块的序列尾;将另一数据块中剩下的元素直接复制到目标空间的序列尾,得到排序数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:对第一类数据和第三类数据进行无损压缩,得到目标压缩数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:对第一类数据和第三类数据进行压缩,得到目标压缩数据,并将目标压缩数据写入持久化存储设备中。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:将第一类数据和第三类数据写入持久化存储设备中;对写入持久化存储设备中的第一类数据和第三类数据进行压缩。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取分布式存储***的性能波动值;若性能波动值超过预设阈值,则将第一类数据和第三类数据写入持久化存储设备中,并对写入持久化存储设备中的第一类数据和第三类数据进行压缩;若性能波动值未超过预设阈值,则对第一类数据和第三类数据进行压缩,得到目标压缩数据,并将目标压缩数据写入持久化存储设备中。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取分布式存储***的带宽波动值。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取分布式存储***的IOPS波动值。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:统计第一类数据和第三类数据中各个数据的重复数据块写入次数;基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重;基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:按照重复数据块写入次数越多的数据的压缩权重越大的规则,基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重;按照压缩权重越大的数据越先被压缩的规则,基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:对第一类数据和第三类数据进行压缩,得到目标压缩数据之后,剔除目标压缩数据中的补零数据段,得到处理压缩数据。
本申请实施例提供的一种数据压缩设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:读取目标压缩数据的元数据,得到目标压缩数据的元数据偏移量;基于元数据偏移量确定目标压缩数据中的补零数据段;对目标压缩数据中的补零数据段进行剔除,得到处理压缩数据。
请参阅图12,本申请实施例提供的另一种数据压缩设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现数据压缩设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取待压缩的目标数据;
获取压缩操作的数据大小值;
基于数据大小值将目标数据分类为第一类数据及第二类数据,第一类数据为大小等于数据大小值的整数倍的数据,第二类数据为大小不等于数据大小值的整数倍的数据;
对第二类数据进行处理,得到大小等于数据大小值的整数倍的第三类数据;
对第一类数据和第三类数据进行压缩,得到目标压缩数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:对于目标数据中的每个待压缩数据,对待压缩数据和数据大小值进行取模计算,若取模计算值为0,则将待压缩数据分类为第一类数据,若取模计算值不为0,则将待压缩数据分类为第二类数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:对第二类数据进行重排,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:对第二类数据进行字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:对第二类数据进行重排和字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:读取第二类数据的数据偏移量和数据长度;基于数据偏移量和数据长度对第二类数据进行排序,得到排序结果;对排序结果进行字节补齐,得到大小等于数据大小值的整数倍的第三类数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:在存储块设备中申请目标空间,目标空间的大小为第二类数据中两个数据块的排序序列之后;设定指向目标空间的偏移量的指针,指针的最初位置为两个数据块的数据偏移量;重复执行比较指针所指向的数据块,并选择数据块中相对较小的元素放入目标空间,并移动指针至下一位置的操作,直至任一指针超出数据块的序列尾;将另一数据块中剩下的元素直接复制到目标空间的序列尾,得到排序数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:对第一类数据和第三类数据进行无损压缩,得到目标压缩数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:对第一类数据和第三类数据进行压缩,得到目标压缩数据,并将目标压缩数据写入持久化存储设备中。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:将第一类数据和第三类数据写入持久化存储设备中;对写入持久化存储设备中的第一类数据和第三类数据进行压缩。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取分布式存储***的性能波动值;若性能波动值超过预设阈值,则将第一类数据和第三类数据写入持久化存储设备中,并对写入持久化存储设备中的第一类数据和第三类数据进行压缩;若性能波动值未超过预设阈值,则对第一类数据和第三类数据进行压缩,得到目标压缩数据,并将目标压缩数据写入持久化存储设备中。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取分布式存储***的带宽波动值。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取分布式存储***的IOPS波动值。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:统计第一类数据和第三类数据中各个数据的重复数据块写入次数;基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重;基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照重复数据块写入次数越多的数据的压缩权重越大的规则,基于重复数据块写入次数确定第一类数据和第三类数据中各个数据的压缩权重;按照压缩权重越大的数据越先被压缩的规则,基于权重对第一类数据和第三类数据进行压缩,得到目标压缩数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:对第一类数据和第三类数据进行压缩,得到目标压缩数据之后,剔除目标压缩数据中的补零数据段,得到处理压缩数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:读取目标压缩数据的元数据,得到目标压缩数据的元数据偏移量;基于元数据偏移量确定目标压缩数据中的补零数据段;对目标压缩数据中的补零数据段进行剔除,得到处理压缩数据。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的数据压缩***、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的数据压缩方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种数据压缩方法,其特征在于,应用于分布式存储***,包括:
获取待压缩的目标数据;
获取压缩操作的数据大小值;
基于所述数据大小值将所述目标数据分类为第一类数据及第二类数据,所述第一类数据为大小等于所述数据大小值的整数倍的数据,所述第二类数据为大小不等于所述数据大小值的整数倍的数据;
对所述第二类数据进行处理,得到大小等于所述数据大小值的整数倍的第三类数据;
对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据;
其中,所述对所述第二类数据进行处理,得到大小等于所述数据大小值的整数倍的第三类数据,包括:读取所述第二类数据的数据偏移量和数据长度;在存储块设备中申请目标空间,所述目标空间的大小为所述第二类数据中两个数据块的排序序列之和;设定指向所述目标空间的偏移量的指针,所述指针的最初位置为两个所述数据块的数据偏移量;重复执行比较所述指针所指向的所述数据块,并选择所述数据块中相对较小的元素放入所述目标空间,并移动指针至下一位置的操作,直至任一所述指针超出所述数据块的序列尾;将另一数据块中剩下的元素直接复制到所述目标空间的序列尾,得到排序数据;对所述排序结果进行字节补齐,得到大小等于所述数据大小值的整数倍的所述第三类数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据大小值将所述目标数据分类为第一类数据及第二类数据,包括:
对于所述目标数据中的每个待压缩数据,对所述待压缩数据和所述数据大小值进行取模计算,若取模计算值为0,则将所述待压缩数据分类为所述第一类数据,若所述取模计算值不为0,则将所述待压缩数据分类为所述第二类数据。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
对所述第一类数据和所述第三类数据进行无损压缩,得到所述目标压缩数据。
4.根据权利要求1所述的方法,其特征在于,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据,并将所述目标压缩数据写入持久化存储设备中。
5.根据权利要求1所述的方法,其特征在于,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
将所述第一类数据和所述第三类数据写入持久化存储设备中;
对写入所述持久化存储设备中的所述第一类数据和所述第三类数据进行压缩。
6.根据权利要求1所述的方法,其特征在于,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
获取所述分布式存储***的性能波动值;
若所述性能波动值超过预设阈值,则将所述第一类数据和所述第三类数据写入持久化存储设备中,并对写入所述持久化存储设备中的所述第一类数据和所述第三类数据进行压缩;
若所述性能波动值未超过预设阈值,则对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据,并将所述目标压缩数据写入持久化存储设备中。
7.根据权利要求6所述的方法,其特征在于,所述获取所述分布式存储***的性能波动值,包括:
获取所述分布式存储***的带宽波动值。
8.根据权利要求6所述的方法,其特征在于,所述获取所述分布式存储***的性能波动值,包括:
获取所述分布式存储***的IOPS波动值。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据,包括:
统计所述第一类数据和所述第三类数据中各个数据的重复数据块写入次数;
基于所述重复数据块写入次数确定所述第一类数据和所述第三类数据中各个数据的压缩权重;
基于所述权重对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据。
10.根据权利要求9所述的方法,其特征在于,所述基于所述重复数据块写入次数确定所述第一类数据和所述第三类数据中各个数据的压缩权重,包括:
按照重复数据块写入次数越多的数据的压缩权重越大的规则,基于所述重复数据块写入次数确定所述第一类数据和所述第三类数据中各个数据的所述压缩权重;
所述基于所述权重对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据,包括:
按照压缩权重越大的数据越先被压缩的规则,基于所述权重对所述第一类数据和所述第三类数据进行压缩,得到所述目标压缩数据。
11.根据权利要求1至8任一项所述的方法,其特征在于,所述对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据之后,还包括:
剔除所述目标压缩数据中的补零数据段,得到处理压缩数据。
12.根据权利要求11所述的方法,其特征在于,所述剔除所述目标压缩数据中的补零数据段,得到处理压缩数据,包括:
读取所述目标压缩数据的元数据,得到所述目标压缩数据的元数据偏移量;
基于所述元数据偏移量确定所述目标压缩数据中的所述补零数据段;
对所述目标压缩数据中的所述补零数据段进行剔除,得到所述处理压缩数据。
13.一种数据压缩***,其特征在于,应用于分布式存储***,包括:
第一获取模块,用于获取待压缩的目标数据;
第二获取模块,用于获取压缩操作的数据大小值;
第一分类模块,用于基于所述数据大小值将所述目标数据分类为第一类数据及第二类数据,所述第一类数据为大小等于所述数据大小值的整数倍的数据,所述第二类数据为大小不等于所述数据大小值的整数倍的数据;
第一处理模块,用于对所述第二类数据进行处理,得到大小等于所述数据大小值的整数倍的第三类数据;
第一压缩模块,用于对所述第一类数据和所述第三类数据进行压缩,得到目标压缩数据;
其中,所述第一处理模块包括:
第一处理单元,用于读取所述第二类数据的数据偏移量和数据长度;在存储块设备中申请目标空间,所述目标空间的大小为所述第二类数据中两个数据块的排序序列之和;设定指向所述目标空间的偏移量的指针,所述指针的最初位置为两个所述数据块的数据偏移量;重复执行比较所述指针所指向的所述数据块,并选择所述数据块中相对较小的元素放入所述目标空间,并移动指针至下一位置的操作,直至任一所述指针超出所述数据块的序列尾;将另一数据块中剩下的元素直接复制到所述目标空间的序列尾,得到排序数据;对所述排序结果进行字节补齐,得到大小等于所述数据大小值的整数倍的所述第三类数据。
14.一种数据压缩设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至12任一项所述数据压缩方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12任一项所述数据压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310127875.7A CN115865097B (zh) | 2023-02-17 | 2023-02-17 | 一种数据压缩方法、***、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310127875.7A CN115865097B (zh) | 2023-02-17 | 2023-02-17 | 一种数据压缩方法、***、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115865097A CN115865097A (zh) | 2023-03-28 |
CN115865097B true CN115865097B (zh) | 2023-05-23 |
Family
ID=85658324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310127875.7A Active CN115865097B (zh) | 2023-02-17 | 2023-02-17 | 一种数据压缩方法、***、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115865097B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018153251A1 (zh) * | 2017-02-21 | 2018-08-30 | 中兴通讯股份有限公司 | 一种快照的处理方法及分布式块存储*** |
US10949107B1 (en) * | 2017-07-31 | 2021-03-16 | EMC IP Holding Company LLC | Fragment filling for storage system with in-line compression |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7424482B2 (en) * | 2004-04-26 | 2008-09-09 | Storwize Inc. | Method and system for compression of data for block mode access storage |
US8327050B2 (en) * | 2005-04-21 | 2012-12-04 | International Business Machines Corporation | Systems and methods for compressing files for storage and operation on compressed files |
CN109683817A (zh) * | 2018-12-14 | 2019-04-26 | 浪潮电子信息产业股份有限公司 | 一种数据写入方法、***及电子设备和存储介质 |
CN112817926B (zh) * | 2021-02-22 | 2022-02-22 | 北京安华金和科技有限公司 | 文件处理方法及装置、存储介质及电子装置 |
CN113268459A (zh) * | 2021-05-13 | 2021-08-17 | 江苏拓邮信息智能技术研究院有限公司 | 基于fastq基因大数据的批量分布式压缩方法 |
CN113722150B (zh) * | 2021-07-23 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质 |
-
2023
- 2023-02-17 CN CN202310127875.7A patent/CN115865097B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018153251A1 (zh) * | 2017-02-21 | 2018-08-30 | 中兴通讯股份有限公司 | 一种快照的处理方法及分布式块存储*** |
US10949107B1 (en) * | 2017-07-31 | 2021-03-16 | EMC IP Holding Company LLC | Fragment filling for storage system with in-line compression |
Also Published As
Publication number | Publication date |
---|---|
CN115865097A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109802684B (zh) | 进行数据压缩的方法和装置 | |
CN110347651B (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
US10120588B2 (en) | Sliding-window multi-class striping | |
CN111813813B (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN108089825B (zh) | 一种基于分布式集群的存储*** | |
CN104823184A (zh) | 一种数据处理方法、***及客户端 | |
CN111459885B (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
CN113806300B (zh) | 数据存储方法、***、装置、设备及存储介质 | |
CN110109868A (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
US10013425B1 (en) | Space-efficient persistent block reservation optimized for compression | |
CN113946291A (zh) | 数据访问方法、装置、存储节点及可读存储介质 | |
CN110618790B (zh) | 基于重复数据删除的雾存储数据去冗余方法 | |
CN108132759B (zh) | 一种文件***中管理数据的方法和装置 | |
CN115865097B (zh) | 一种数据压缩方法、***、设备及计算机可读存储介质 | |
CN112711564B (zh) | 合并处理方法以及相关设备 | |
US20170344578A1 (en) | Compressed data layout for optimizing data transactions | |
EP4394575A1 (en) | Data processing method and storage system | |
CN111897784B (zh) | 一种面向键值存储的近数据计算集群*** | |
CN111435332A (zh) | 数据处理方法及设备 | |
CN113568573B (zh) | 数据存储方法、数据存储装置、存储介质及产品 | |
CN109933566B (zh) | 文件读写方法、装置、设备及计算机可读存储介质 | |
CN116661684B (zh) | 一种闪存数据的读取方法、***、设备及介质 | |
WO2024001863A1 (zh) | 一种数据处理方法及相关设备 | |
CN115291804A (zh) | 内存和硬盘集成存储数据处理方法、***、设备及介质 | |
CN117216009A (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 |