CN107665093A - 数据存储方法及装置 - Google Patents
数据存储方法及装置 Download PDFInfo
- Publication number
- CN107665093A CN107665093A CN201610616083.6A CN201610616083A CN107665093A CN 107665093 A CN107665093 A CN 107665093A CN 201610616083 A CN201610616083 A CN 201610616083A CN 107665093 A CN107665093 A CN 107665093A
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- comentropy
- global
- sample
- 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
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
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
本发明公开了一种数据存储方法,该方法流程包括:在接收到写数据请求时,对所述写数据请求对应的待存储数据进行采样处理获取样本数据,计算所述样本数据的信息熵,并根据计算得到的所述信息熵判断所述待存储数据是否可压缩;若根据所述信息熵判定所述待存储数据可压缩,则将所述待存储数据进行压缩处理后写入到存储系统;若根据所述信息熵判定所述待存储数据不可压缩,则将所述待存储数据直接写入到所述存储系统。本发明还提出一种数据存储装置。本发明解决了在数据压缩存储时,由于数据压缩效率低、系统的CPU负担大,导致I/O延时的问题。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种数据存储方法及装置。
背景技术
压缩算法已经被广泛地应用于计算机系统中来有效地节省存储空间,特别是对于超融合一体机虚拟机来说,经常通过压缩算法来节省存储空间。
现有的数据处理方式,在将数据从内存写入到存储系统中时,对数据进行压缩处理,但是其压缩处理速度参差不齐,这是由于不同数据的可压缩性不同,压缩算法对于那些已经压缩过的数据、随机化数据等可压缩性低的数据的处理速度很慢,而在压缩过程中,会对所有的待存储数据都进行同样的压缩处理,就会造成在压缩处理一些可压缩性低的待存储数据时,压缩处理占用的时间长,造成数据压缩效率低、系统的CPU负担大,导致I/O(Input/Output,输入/输出)延时。
发明内容
本发明提供一种数据存储方法及装置,其主要目的在于解决在数据存储时,由于数据压缩效率低、系统的CPU负担大,导致I/O延时的问题。
为实现上述目的,本发明提供一种数据存储方法,该数据存储方法包括:
在接收到写数据请求时,对所述写数据请求对应的待存储数据进行采样处理获取样本数据,计算所述样本数据的信息熵,并根据计算得到的所述信息熵判断所述待存储数据是否可压缩;
若根据所述信息熵判定所述待存储数据可压缩,则将所述待存储数据进行压缩处理后写入到存储系统;
若根据所述信息熵判定所述待存储数据不可压缩,则将所述待存储数据写入到所述存储系统。
可选地,所述对所述写数据请求对应的待存储数据进行采样处理获取样本数据,计算所述样本数据的信息熵,并根据计算得到的所述信息熵判断所述待存储数据是否可压缩的步骤包括:
对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
判断所述全局样本数据的信息熵是否小于第一预设阈值,其中,当所述全局样本数据的信息熵小于所述第一预设阈值时,判定所述待存储数据可压缩。
可选地,所述对所述写数据请求对应的待存储数据进行采样处理获取样本数据,计算所述样本数据的信息熵,并根据计算得到的所述信息熵判断所述待存储数据是否可压缩的步骤包括:
对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
当所述全局样本数据的信息熵小于第一预设阈值时,从所述待存储数据中抽取一段连续的数据作为局部样本数据,计算所述局部样本数据的信息熵;
判断所述局部样本数据的信息熵是否小于第二预设阈值,其中,当所述局部样本数据的信息熵小于所述第二预设阈值时,判定所述待存储数据可压缩。
可选地,所述对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵的步骤包括:
按照预设采样间隔对所述待存储数据进行全局采样处理,获取全局样本数据;
计算获取到的所述全局样本数据中各个字节的出现频度,并根据所述各个字节的出现频度计算所述全局样本数据的所述信息熵。
可选地,所述预设采样间隔包括多个不同的间隔值,在按照预设采样间隔从所述待存储数据中取样的过程中,每相邻两次抽取样本数据时使用的所述间隔值不同。
此外,为实现上述目的,本发明还提供一种数据存储装置,该数据存储装置包括:
样本采集模块,用于在接收到写数据请求时,对所述写数据请求对应的待存储数据进行采样处理获取样本数据;
信息熵计算模块,用于计算所述样本数据的信息熵;
压缩判断模块,用于根据计算得到的所述信息熵判断所述待存储数据是否可压缩;
数据存储模块,用于若根据所述信息熵判定所述待存储数据可压缩,则将所述待存储数据进行压缩处理后写入到存储系统;
所述数据存储模块,还用于若根据所述信息熵判定所述待存储数据不可压缩,则将所述待存储数据写入到所述存储系统。
可选地,所述信息熵计算模块还用于:对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
所述压缩判断模块还用于:判断所述全局样本数据的信息熵是否小于第一预设阈值,其中,当所述全局样本数据的信息熵小于所述第一预设阈值时,判定所述待存储数据可压缩。
可选地,所述信息熵计算模块还用于:对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
所述样本采集模块还用于:当所述全局样本数据的信息熵小于第一预设阈值时,从所述待存储数据中抽取一段连续的数据作为局部样本数据,计算所述局部样本数据的信息熵;
所述压缩判断模块还用于:判断所述局部样本数据的信息熵是否小于第二预设阈值,其中,当所述局部样本数据的信息熵小于所述第二预设阈值时,判定所述待存储数据可压缩。
可选地,所述样本采集模块还用于:按照预设采样间隔对所述待存储数据进行全局采样处理,获取全局样本数据;
所述信息熵计算模块还用于计算获取到的所述全局样本数据中各个字节的出现频度,并根据所述各个字节的出现频度计算所述全局样本数据的所述信息熵。
可选地,所述预设采样间隔包括多个不同的间隔值,在所述样本采集模块按照预设采样间隔从所述待存储数据中取样的过程中,每相邻两次抽取样本数据时使用的所述间隔值不同。
本发明提出的数据存储方法及装置,在接收到写数据请求时,对该写数据请求对应的待存储数据进行采样处理获取样本数据,并计算出得到的样本数据的信息熵,并根据得到的信息熵判断待存储数据是否可压缩,由于一个数据的信息熵能够体现出该数据所携带的信息量,而信息量的大小能够体现出该数据的可压缩程度,进而体现出数据是否可压缩,因此,在获取到数据的信息熵后,能够根据信息熵判断该数据是否可压缩,若该数据可压缩,则将待存储数据进行压缩处理后写入到存储系统,对于不可压缩的待存储数据,则不进行压缩,直接写入到存储系统中,本发明的方法及装置能够提高待存储数据的压缩效率,减小系统的CPU负担,进而极大地减少压缩处理造成的I/O延时,保证了系统能够快速的进行压缩处理,同时能够达到节省存储空间的目的。
附图说明
图1为本发明数据存储方法第一实施例的流程图;
图2为本发明数据存储方法第一实施例中全局取样的示意图;
图3为本发明数据存储方法第一实施例的局部取样的示意图;
图4为本发明数据存储方法第二实施例中取样并计算信息熵的步骤的细化流程示意图;
图5为本发明数据存储方法第三实施例中取样并计算信息熵的步骤的细化流程示意图;
图6为本发明数据存储装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据存储方法。参照图1所示,为本发明数据存储方法第一实施例的流程图。
在本实施例中,该数据存储方法包括:
步骤S10,在接收到写数据请求时,对所述写数据请求对应的待存储数据进行采样处理获取样本数据,计算所述样本数据的信息熵,并根据计算得到的所述信息熵判断所述待存储数据是否可压缩;
需要说明的是,本发明提出的数据存储方法适用于各种计算机系统的数据存储,例如,融合系统的数据存储,以下以超级融合一体机为例进行说明,但本发明并不局限于此。
超级融合一体机是一种将虚拟化管理软件、虚拟存储、虚拟网络等基础部件融合到一起,采用标准X86服务器硬件承载虚拟化管理软件、虚拟存储、虚拟网络等软件的IT基础设施部件。其存储系统采用分布式的存储构架,使用前需要先组建集群,集群中所有一体机的物理磁盘被虚拟成存储资源池,再向虚拟化管理软件提供存储服务。
虚拟化管理程序是一种能够将一台物理的计算机模拟成多台虚拟的计算机,并在虚拟化的环境里面运行操作系统的软件。通过虚拟化管理软件,可以让虚拟机共享同一台物理计算机,但对虚拟机来说,它运行在虚拟化管理软件模拟出来的硬件系统里面,好像独占了整个计算机一样。
对于超级融合一体机的虚拟化存储系统来说,对于待存储的数据包进行分片处理后,得到多个数据块,在本实施例中,数据块即为所述待存储数据,分片后的待存储数据缓存在内存中,然后再从内存中读取后,写入到存储系统中,虚拟化管理软件在接收到写数据请求时,对写数据请求对应的待存储数据进行采样处理获取样本数据,并计算样本数据的信息熵。
关于对待存储数据进行采样处理,可以有多种实现方式,例如,对数据块进行全局采样处理,对分片后得到的数据块进行间隔采样,得到样本数据,并统计样本数据中各个字节的出现频度,在进行全局采样时,可以每间隔一定数量的字节抽取一个字节作为样本数据,参照图2所示,或者,进一步地,每两个样本数据之间的间隔值可以不一样;或者,作为一种实施方式,参照图3所示,也可以对数据块进行局部采样处理,从数据块中随机的连续抽取少量的数据,例如,连续采样1KB、2KB的数据作为样本数据。
在获取到样本数据后,计算样本数据的信息熵,信息熵是信息论中用于度量信息量的一个概念,它阐明了信息出现的概率或者说是不确定性与信息冗余度的关系:任何信息都存在着冗余数据,冗余数据的大小与信息中每个符号的出现概率或者说不确定性有关,例如数字、字母或单词等,把信息中排除了冗余后的平均信息量称为信息熵,信息熵的熵值反映了一串信息的真正的信息量,也反映了一个随机信息变量的可压缩性。数据的信息熵越低,其信息量越低,数据可以压缩的程度越高;数据的信息熵越高,其信息量也越高,数据可以压缩的程度越低。在本实施例中,当数据的可压缩程度低于一定程度时,则认为其不可压缩。
样本数据的信息熵可以按照以下公式计算:
其中,E为样本数据的信息熵,n为取样得到样本数据中的样本个数,P(xi)为各个样本字节出现的频率,b表示样本数据使用的基本编码的位数,例如,如果使用二进制编码,则b=2,使用十六进制编码,则b=16。
参照图2所示,抽样的样本个数为4,则n=4,出现的样本字节分别为:0x00、0x7D、0xA3,其概率分别为:P(0x00)=1/2,P(0x7D)=1/4,P(0xA3)=1/4,则可以根据这些数据计算出样本数据的信息熵E。
一般而言,文本文件的压缩率比较高,其中部分字节值(用于文本编码)出现的频度会很高,信息熵值会很低。压缩文件或者多媒体文件的压缩率比较低,其采用统计的字节值和出现频率会分布比较均匀,信息熵值会比较高。
步骤S20,若根据所述信息熵判定所述待存储数据可压缩,则将所述待存储数据进行压缩处理后写入到存储系统;
步骤S30,若根据所述信息熵判定所述待存储数据不可压缩,则将所述待存储数据写入到所述存储系统。
在计算得到信息熵之后,根据信息熵判断该待存储数据是否可压缩。由于数据的信息熵越大,则其信息量也越大,其可压缩程度越低,因此,可以预先设置一个信息熵阈值,当计算得到的信息熵小于该阈值时,则判定其可压缩,将待存储数据压缩处理后写入到存储系统;若大于或者等于该阈值时,则判定其不可压缩,也就是说,这些数据即使进行压缩处理,不仅其压缩率非常低,其压缩也会占用大量的时间,因此对这些数据不作压缩处理,将其直接写入到存储系统中。关于信息熵阈值,其具体数值可以通过大量的负载学习训练获取。
本实施例提出的数据存储方法,在接收到写数据请求时,对该写数据请求对应的待存储数据进行采样处理获取样本数据,并计算出得到的样本数据的信息熵,并根据得到的信息熵判断待存储数据是否可压缩,由于一个数据的信息熵能够体现出该数据所携带的信息量,而信息量的大小能够体现出该数据的可压缩程度,进而体现出数据是否可压缩,因此,在获取到数据的信息熵后,能够根据信息熵判断该数据是否可压缩,若该数据可压缩,则将待存储数据进行压缩处理后写入到存储系统,对于不可压缩的待存储数据,在保障数据压缩率的前提下,将压缩效果差的数据过滤掉,不进行压缩,直接写入到存储系统中,本发明的方法能够提高待存储数据的压缩效率,减小系统的CPU负担,进而极大地减少压缩处理造成的I/O延时,保证了系统能够快速的进行压缩处理,同时能够达到节省存储空间的目的。
基于第一实施例提出本发明数据存储方法的第二实施例。参照图4所示,在本实施例中,步骤S10包括以下细化步骤:
步骤S11,对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
步骤S12,判断所述全局样本数据的信息熵是否小于第一预设阈值,其中,当所述全局样本数据的信息熵小于所述第一预设阈值时,判定所述待存储数据可压缩。
具体地,全局样本数据的计算方法参照以下细化步骤:按照预设采样间隔对所述待存储数据进行全局采样处理,获取全局样本数据;计算获取到的所述全局样本数据中各个字节的出现频度,并根据所述各个字节的出现频度计算所述全局样本数据的所述信息熵。其中,获取到样本数据中各个字节的出现频度后,可以结合样本个数和出现频度计算各个样本字节出现的频率。
在本实施例中使用全局采样的方式从待存储数据中抽取全局样本数据,参照图2所示,从待存储数据的字节流中进行全局取样。计算得到的全局样本数据的信息熵,并判定其信息熵是否小于第一预设阈值,其中,第一预设阈值由超融合一体机对大量的数据进行负载学习得到。如果全局样本数据的信息熵小于第一预设阈值,则判定待存储数据可压缩。
进一步地,作为一种实施方式,预设采样间隔可以是固定值,即可以每间隔固定间隔获取一个样本字节;或者,在其他的实施例中,预设采样间隔包括多个不同的间隔值,在按照预设采样间隔从所述待存储数据中取样的过程中,每相邻两次抽取样本数据时使用的所述间隔值不同。也就是说,每相邻两次取样的样本字节之间的间隔值是不相同的,例如,预设采样间隔可以为N+i,其中N为固定值,例如8-16,变量i为按照取值范围为从0到7循环递增,可以采用间隔值循环递增的方式进行取样,以N=8为例,采样时每次跳过8+i个字节,第一次跳过8个字节,第二次跳过9个字节,第三次跳过10个字节,依次类推,第八次跳过15个字节,则第九次跳过8个字节,如此循环往复地获取间隔值,进行取样。该实施方式中的取样方法可以规避字节对齐的问题,避免采样误差高的问题。
基于第一实施例提出本发明数据存储方法的第三实施例。参照图5所示,在本实施例中,步骤S10包括以下细化步骤:
步骤S13,对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
步骤S14,当所述全局样本数据的信息熵小于第一预设阈值时,从所述待存储数据中抽取一段连续的数据作为局部样本数据,计算所述局部样本数据的信息熵;
步骤S15,判断所述局部样本数据的信息熵是否小于第二预设阈值,其中,当所述局部样本数据的信息熵小于所述第二预设阈值时,判定所述待存储数据可压缩。
在本实施例中,为了进一步增加数据可压缩性判断的准确性,在全局样本数据的信息熵小于第一预设阈值时,再对待存储数据进行局部采样处理获取局部样本数据,计算局部样本数据的信息熵,并根据局部样本的信息熵判断待存储数据是否可压缩,在局部样本数据的信息熵小于第二预设阈值时,判定待存储数据可压缩。在获取局部样本数据时,参照图3所示,关于局部样本数据的信息熵的计算方法与全局样本数据的信息熵的计算方法相同,在此不再赘述。可选地,作为一种实施方式,第一预设阈值大于第二预设阈值。
本实施例提出的数据存储方法,在将待存储数据写入到存储系统之前,结合全局采样处理和局部采样处理,判断数据是否可压缩,能够快速识别出压缩效果差的数据,在保障数据压缩率的前提下,将压缩效果差的数据过滤掉,不进行压缩处理,直接存储到存储系统,有效地提高和保障数据可压缩性判断的精准性,减少了压缩过程中的CPU负担,通过对压缩效果差的数据过滤,减少在I/O关键路径上压缩带来的数据压缩延迟,减少I/O毛刺率。
本发明还提出一种数据存储装置。
参照图6所示,为本发明数据存储装置第一实施例的功能模块示意图。
在该实施例中,该数据存储装置包括:
样本采集模块10,用于在接收到写数据请求时,对所述写数据请求对应的待存储数据进行采样处理获取样本数据;
信息熵计算模块20,用于计算所述样本数据的信息熵;
压缩判断模块30,用于根据计算得到的所述信息熵判断所述待存储数据是否可压缩;
需要说明的是,本发明提出的数据存储装置适用于各种计算机系统的数据存储,例如,融合系统的数据存储,以下以超级融合一体机为例进行说明,但本发明并不局限于此。
超级融合一体机是一种将虚拟化管理软件、虚拟存储、虚拟网络等基础部件融合到一起,采用标准X86服务器硬件承载虚拟化管理软件、虚拟存储、虚拟网络等软件的IT基础设施部件。其存储系统采用分布式的存储构架,使用前需要先组建集群,集群中所有一体机的物理磁盘被虚拟成存储资源池,再向虚拟化管理软件提供存储服务。
虚拟化管理程序是一种能够将一台物理的计算机模拟成多台虚拟的计算机,并在虚拟化的环境里面运行操作系统的软件。通过虚拟化管理软件,可以让虚拟机共享同一台物理计算机,但对虚拟机来说,它运行在虚拟化管理软件模拟出来的硬件系统里面,好像独占了整个计算机一样。
对于超级融合一体机的虚拟化存储系统来说,对于待存储的数据包进行分片处理后,得到多个数据块,在本实施例中,数据块即为所述待存储数据,分片后的待存储数据缓存在内存中,然后再从内存中读取后,写入到存储系统中,虚拟化管理软件在接收到写数据请求时,对写数据请求对应的待存储数据进行采样处理获取样本数据,并计算样本数据的信息熵。
关于对待存储数据进行采样处理,可以有多种实现方式,例如,样本采集模块10对数据块进行全局采样处理,对分片后得到的数据块进行间隔采样,得到样本数据,并统计样本数据中各个字节的出现频度,在进行全局采样时,样本采集模块10可以每间隔一定数量的字节抽取一个字节作为样本数据,参照图2所示,或者,进一步地,每两个样本数据之间的间隔值可以不一样;或者,作为一种实施方式,参照图3所示,样本采集模块10也可以对数据块进行局部采样处理,从数据块中随机的连续抽取少量的数据,例如,连续采样1KB、2KB的数据作为样本数据。
在获取到样本数据后,信息熵计算模块20计算样本数据的信息熵,信息熵是信息论中用于度量信息量的一个概念,它阐明了信息出现的概率或者说是不确定性与信息冗余度的关系:任何信息都存在着冗余数据,冗余数据的大小与信息中每个符号的出现概率或者说不确定性有关,例如数字、字母或单词等,把信息中排除了冗余后的平均信息量称为信息熵,信息熵的熵值反映了一串信息的真正的信息量,也反映了一个随机信息变量的可压缩性。数据的信息熵越低,其信息量越低,数据可以压缩的程度越高;数据的信息熵越高,其信息量也越高,数据可以压缩的程度越低。在本实施例中,当数据的可压缩程度低于一定程度时,则认为其不可压缩。
样本数据的信息熵可以按照以下公式计算:
其中,E为样本数据的信息熵,n为取样得到样本数据中的样本个数,P(xi)为各个样本字节出现的频率,b表示样本数据使用的基本编码的位数,例如,如果使用二进制编码,则b=2,使用十六进制编码,则b=16。
参照图2所示,抽样的样本个数为4,则n=4,出现的样本字节分别为:0x00、0x7D、0xA3,其概率分别为:P(0x00)=1/2,P(0x7D)=1/4,P(0xA3)=1/4,则可以根据这些数据计算出样本数据的信息熵E。
一般而言,文本文件的压缩率比较高,其中部分字节值(用于文本编码)出现的频度会很高,信息熵值会很低。压缩文件或者多媒体文件的压缩率比较低,其采用统计的字节值和出现频率会分布比较均匀,信息熵值会比较高。
数据存储模块40,用于若根据所述信息熵判定所述待存储数据可压缩,则将所述待存储数据进行压缩处理后写入到存储系统;
数据存储模块40,还用于若根据所述信息熵判定所述待存储数据不可压缩,则将所述待存储数据写入到所述存储系统。
在计算得到信息熵之后,压缩判断模块30根据信息熵判断该待存储数据是否可压缩。由于数据的信息熵越大,则其信息量也越大,其可压缩程度越低,因此,可以预先设置一个信息熵阈值,当计算得到的信息熵小于该阈值时,则判定其可压缩,数据存储模块40将待存储数据压缩处理后写入到存储系统;若大于或者等于该阈值时,则判定其不可压缩,也就是说,这些数据即使进行压缩处理,不仅其压缩率非常低,其压缩也会占用大量的时间,因此对这些数据不作压缩处理,数据存储模块40将其直接写入到存储系统中。关于信息熵阈值,其具体数值可以通过大量的负载学习训练获取。
本实施例提出的数据存储装置,在接收到写数据请求时,对该写数据请求对应的待存储数据进行采样处理获取样本数据,并计算出得到的样本数据的信息熵,并根据得到的信息熵判断待存储数据是否可压缩,由于一个数据的信息熵能够体现出该数据所携带的信息量,而信息量的大小能够体现出该数据的可压缩程度,进而体现出数据是否可压缩,因此,在获取到数据的信息熵后,能够根据信息熵判断该数据是否可压缩,若该数据可压缩,则将待存储数据进行压缩处理后写入到存储系统,对于不可压缩的待存储数据,在保障数据压缩率的前提下,将压缩效果差的数据过滤掉,不进行压缩,直接写入到存储系统中,本发明的装置能够提高待存储数据的压缩效率,减小系统的CPU负担,进而极大地减少压缩处理造成的I/O延时,保证了系统能够快速的进行压缩处理,同时能够达到节省存储空间的目的。
基于第一实施例提出本发明数据存储装置的第二实施例。在本实施例中,信息熵计算模块20还用于:对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
压缩判断模块30还用于:判断所述全局样本数据的信息熵是否小于第一预设阈值,其中,当所述全局样本数据的信息熵小于所述第一预设阈值时,判定所述待存储数据可压缩。
具体地,样本采集模块10还用于:按照预设采样间隔对所述待存储数据进行全局采样处理,获取全局样本数据;信息熵计算模块20还用于计算获取到的所述全局样本数据中各个字节的出现频度,并根据所述各个字节的出现频度计算所述全局样本数据的所述信息熵。其中,获取到样本数据中各个字节的出现频度后,可以结合样本个数和出现频度计算各个样本字节出现的频率。
在本实施例中使用全局采样的方式从待存储数据中抽取全局样本数据,参照图2所示,从待存储数据的字节流中进行全局取样。计算得到的全局样本数据的信息熵,并判定其信息熵是否小于第一预设阈值,其中,第一预设阈值由超融合一体机对大量的数据进行负载学习得到。如果全局样本数据的信息熵小于第一预设阈值,则判定待存储数据可压缩。
进一步地,作为一种实施方式,预设采样间隔可以是固定值,即可以每间隔固定间隔获取一个样本字节;或者,在其他的实施例中,预设采样间隔包括多个不同的间隔值,在样本采集模块10按照预设采样间隔从所述待存储数据中取样的过程中,每相邻两次抽取样本数据时使用的所述间隔值不同。也就是说,每相邻两次取样的样本字节之间的间隔值是不相同的,例如,预设采样间隔可以为N+i,其中N为固定值,例如8-16,变量i为按照取值范围为从0到7循环递增,可以采用间隔值循环递增的方式进行取样,以N=8为例,采样时每次跳过8+i个字节,第一次跳过8个字节,第二次跳过9个字节,第三次跳过10个字节,依次类推,第八次跳过15个字节,则第九次跳过8个字节,如此循环往复地获取间隔值,进行取样。该实施方式中的取样方式可以规避字节对齐的问题,避免采样误差高的问题。
基于第一实施例提出本发明数据存储装置的第三实施例。在本实施例中,信息熵计算模块20还用于:对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
样本采集模块10还用于:当所述全局样本数据的信息熵小于第一预设阈值时,从所述待存储数据中抽取一段连续的数据作为局部样本数据,计算所述局部样本数据的信息熵;
压缩判断模块30还用于:判断所述局部样本数据的信息熵是否小于第二预设阈值,其中,当所述局部样本数据的信息熵小于所述第二预设阈值时,判定所述待存储数据可压缩。
在本实施例中,为了进一步增加数据可压缩性判断的准确性,在全局样本数据的信息熵小于第一预设阈值时,样本采集模块10对待存储数据进行局部采样处理获取局部样本数据,信息熵计算模块20计算局部样本数据的信息熵,压缩判断模块30根据局部样本的信息熵判断待存储数据是否可压缩,在局部样本数据的信息熵小于第二预设阈值时,压缩判断模块30判定待存储数据可压缩。在获取局部样本数据时,参照图3所示,关于局部样本数据的信息熵的计算装置与全局样本数据的信息熵的计算装置相同,在此不再赘述。可选地,作为一种实施方式,第一预设阈值大于第二预设阈值。
本实施例提出的数据存储装置,在将待存储数据写入到存储系统之前,结合全局采样处理和局部采样处理,判断数据是否可压缩,能够快速识别出压缩效果差的数据,在保障数据压缩率的前提下,将压缩效果差的数据过滤掉,不进行压缩处理,直接存储到存储系统,有效地提高和保障数据可压缩性判断的精准性,减少了压缩过程中的CPU负担,通过对压缩效果差的数据过滤,减少在I/O关键路径上压缩带来的数据压缩延迟,减少I/O毛刺率。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据存储方法,其特征在于,所述数据存储方法包括:
在接收到写数据请求时,对所述写数据请求对应的待存储数据进行采样处理获取样本数据,计算所述样本数据的信息熵,并根据计算得到的所述信息熵判断所述待存储数据是否可压缩;
若根据所述信息熵判定所述待存储数据可压缩,则将所述待存储数据进行压缩处理后写入到存储系统;
若根据所述信息熵判定所述待存储数据不可压缩,则将所述待存储数据写入到所述存储系统。
2.根据权利要求1所述的数据存储方法,其特征在于,所述对所述写数据请求对应的待存储数据进行采样处理获取样本数据,计算所述样本数据的信息熵,并根据计算得到的所述信息熵判断所述待存储数据是否可压缩的步骤包括:
对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
判断所述全局样本数据的信息熵是否小于第一预设阈值,其中,当所述全局样本数据的信息熵小于所述第一预设阈值时,判定所述待存储数据可压缩。
3.根据权利要求1所述的数据存储方法,其特征在于,所述对所述写数据请求对应的待存储数据进行采样处理获取样本数据,计算所述样本数据的信息熵,并根据计算得到的所述信息熵判断所述待存储数据是否可压缩的步骤包括:
对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
当所述全局样本数据的信息熵小于第一预设阈值时,从所述待存储数据中抽取一段连续的数据作为局部样本数据,计算所述局部样本数据的信息熵;
判断所述局部样本数据的信息熵是否小于第二预设阈值,其中,当所述局部样本数据的信息熵小于所述第二预设阈值时,判定所述待存储数据可压缩。
4.根据权利要求2或3所述的数据存储方法,其特征在于,所述对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵的步骤包括:
按照预设采样间隔对所述待存储数据进行全局采样处理,获取全局样本数据;
计算获取到的所述全局样本数据中各个字节的出现频度,并根据所述各个字节的出现频度计算所述全局样本数据的所述信息熵。
5.根据权利要求4所述的数据存储方法,其特征在于,所述预设采样间隔包括多个不同的间隔值,在按照预设采样间隔从所述待存储数据中取样的过程中,每相邻两次抽取样本数据时使用的所述间隔值不同。
6.一种数据存储装置,其特征在于,所述数据存储装置包括:
样本采集模块,用于在接收到写数据请求时,对所述写数据请求对应的待存储数据进行采样处理获取样本数据;
信息熵计算模块,用于计算所述样本数据的信息熵;
压缩判断模块,用于根据计算得到的所述信息熵判断所述待存储数据是否可压缩;
数据存储模块,用于若根据所述信息熵判定所述待存储数据可压缩,则将所述待存储数据进行压缩处理后写入到存储系统;
所述数据存储模块,还用于若根据所述信息熵判定所述待存储数据不可压缩,则将所述待存储数据写入到所述存储系统。
7.根据权利要求6所述的数据存储装置,其特征在于,所述信息熵计算模块还用于:对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
所述压缩判断模块还用于:判断所述全局样本数据的信息熵是否小于第一预设阈值,其中,当所述全局样本数据的信息熵小于所述第一预设阈值时,判定所述待存储数据可压缩。
8.根据权利要求6所述的数据存储装置,其特征在于,所述信息熵计算模块还用于:对所述写数据请求对应的待存储数据进行全局采样处理获取全局样本数据,计算所述全局样本数据的信息熵;
所述样本采集模块还用于:当所述全局样本数据的信息熵小于第一预设阈值时,从所述待存储数据中抽取一段连续的数据作为局部样本数据,计算所述局部样本数据的信息熵;
所述压缩判断模块还用于:判断所述局部样本数据的信息熵是否小于第二预设阈值,其中,当所述局部样本数据的信息熵小于所述第二预设阈值时,判定所述待存储数据可压缩。
9.根据权利要求7或8所述的数据存储装置,其特征在于,所述样本采集模块还用于:按照预设采样间隔对所述待存储数据进行全局采样处理,获取全局样本数据;
所述信息熵计算模块还用于计算获取到的所述全局样本数据中各个字节的出现频度,并根据所述各个字节的出现频度计算所述全局样本数据的所述信息熵。
10.根据权利要求9所述的数据存储装置,其特征在于,所述预设采样间隔包括多个不同的间隔值,在所述样本采集模块按照预设采样间隔从所述待存储数据中取样的过程中,每相邻两次抽取样本数据时使用的所述间隔值不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610616083.6A CN107665093A (zh) | 2016-07-29 | 2016-07-29 | 数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610616083.6A CN107665093A (zh) | 2016-07-29 | 2016-07-29 | 数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107665093A true CN107665093A (zh) | 2018-02-06 |
Family
ID=61115888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610616083.6A Pending CN107665093A (zh) | 2016-07-29 | 2016-07-29 | 数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107665093A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558085A (zh) * | 2018-12-03 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种压缩方法、系统、设备及计算机可读存储介质 |
KR20190135158A (ko) * | 2018-05-28 | 2019-12-06 | 삼성에스디에스 주식회사 | 데이터 엔트로피 기반의 데이터 프로세싱 방법 |
CN110851409A (zh) * | 2019-11-06 | 2020-02-28 | 南京星环智能科技有限公司 | 一种日志压缩、解压缩方法、设备及存储介质 |
CN111104053A (zh) * | 2018-10-26 | 2020-05-05 | 伊姆西Ip控股有限责任公司 | 存储数据的方法、装置和计算机程序产品 |
CN111191258A (zh) * | 2019-12-20 | 2020-05-22 | 中思博安科技(北京)有限公司 | 基于保护原始数据的数据处理方法、装置、设备和介质 |
CN112181919A (zh) * | 2019-07-05 | 2021-01-05 | 深信服科技股份有限公司 | 一种压缩方法、系统及电子设备和存储介质 |
CN112446639A (zh) * | 2020-12-11 | 2021-03-05 | 华能(大连)热电有限责任公司 | 一种基于gis的智慧供热控制方法 |
CN112582063A (zh) * | 2019-09-30 | 2021-03-30 | 长沙昱旻信息科技有限公司 | Bmi预测方法、装置、系统及计算机存储介质、电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477554A (zh) * | 2003-07-25 | 2004-02-25 | 中国科学院计算技术研究所 | 一种自适应网络数据采集方法 |
JP2006065424A (ja) * | 2004-08-25 | 2006-03-09 | Nec Corp | データ記憶システム、データ記憶装置及びそれに用いる類似ファイル記録方法並びにそのプログラム |
CN103929185A (zh) * | 2013-01-10 | 2014-07-16 | 国际商业机器公司 | 实时减少数据压缩的中央处理单元开销的方法和系统 |
CN104516824A (zh) * | 2013-10-01 | 2015-04-15 | 国际商业机器公司 | 数据存储系统中的存储管理方法和系统 |
US20150149739A1 (en) * | 2013-11-25 | 2015-05-28 | Research & Business Foundation Sungkyunkwan University | Method of storing data in distributed manner based on technique of predicting data compression ratio, and storage device and system using same |
CN105320669A (zh) * | 2014-06-19 | 2016-02-10 | 腾讯科技(深圳)有限公司 | 数据存储、读取方法及数据存储、读取装置 |
-
2016
- 2016-07-29 CN CN201610616083.6A patent/CN107665093A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477554A (zh) * | 2003-07-25 | 2004-02-25 | 中国科学院计算技术研究所 | 一种自适应网络数据采集方法 |
JP2006065424A (ja) * | 2004-08-25 | 2006-03-09 | Nec Corp | データ記憶システム、データ記憶装置及びそれに用いる類似ファイル記録方法並びにそのプログラム |
CN103929185A (zh) * | 2013-01-10 | 2014-07-16 | 国际商业机器公司 | 实时减少数据压缩的中央处理单元开销的方法和系统 |
CN104516824A (zh) * | 2013-10-01 | 2015-04-15 | 国际商业机器公司 | 数据存储系统中的存储管理方法和系统 |
US20150149739A1 (en) * | 2013-11-25 | 2015-05-28 | Research & Business Foundation Sungkyunkwan University | Method of storing data in distributed manner based on technique of predicting data compression ratio, and storage device and system using same |
CN105320669A (zh) * | 2014-06-19 | 2016-02-10 | 腾讯科技(深圳)有限公司 | 数据存储、读取方法及数据存储、读取装置 |
Non-Patent Citations (1)
Title |
---|
梁逸曾 等: "《分析化学计量学》", 31 August 2004, 重庆大学出版社 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190135158A (ko) * | 2018-05-28 | 2019-12-06 | 삼성에스디에스 주식회사 | 데이터 엔트로피 기반의 데이터 프로세싱 방법 |
KR102552833B1 (ko) | 2018-05-28 | 2023-07-06 | 삼성에스디에스 주식회사 | 데이터 엔트로피 기반의 데이터 프로세싱 방법 |
CN111104053A (zh) * | 2018-10-26 | 2020-05-05 | 伊姆西Ip控股有限责任公司 | 存储数据的方法、装置和计算机程序产品 |
CN111104053B (zh) * | 2018-10-26 | 2023-08-29 | 伊姆西Ip控股有限责任公司 | 存储数据的方法、装置和计算机程序产品 |
CN109558085A (zh) * | 2018-12-03 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种压缩方法、系统、设备及计算机可读存储介质 |
CN112181919A (zh) * | 2019-07-05 | 2021-01-05 | 深信服科技股份有限公司 | 一种压缩方法、系统及电子设备和存储介质 |
CN112582063A (zh) * | 2019-09-30 | 2021-03-30 | 长沙昱旻信息科技有限公司 | Bmi预测方法、装置、系统及计算机存储介质、电子设备 |
CN110851409A (zh) * | 2019-11-06 | 2020-02-28 | 南京星环智能科技有限公司 | 一种日志压缩、解压缩方法、设备及存储介质 |
CN111191258A (zh) * | 2019-12-20 | 2020-05-22 | 中思博安科技(北京)有限公司 | 基于保护原始数据的数据处理方法、装置、设备和介质 |
CN111191258B (zh) * | 2019-12-20 | 2022-10-04 | 中思博安科技(北京)有限公司 | 基于保护原始数据的数据处理方法、装置、设备和介质 |
CN112446639A (zh) * | 2020-12-11 | 2021-03-05 | 华能(大连)热电有限责任公司 | 一种基于gis的智慧供热控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665093A (zh) | 数据存储方法及装置 | |
JP6521403B2 (ja) | サービスとしての効率的なデータ圧縮及び分析 | |
CN104199927B (zh) | 数据处理方法及数据处理装置 | |
Shao et al. | Improving performance of graph processing on FPGA-DRAM platform by two-level vertex caching | |
CN104125458B (zh) | 内存数据无损压缩方法及装置 | |
KR20120084180A (ko) | 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치 | |
CN104205035B (zh) | 文件映射压缩 | |
CN104144081A (zh) | 一种通用应用日志管理方法、装置和系统 | |
CN112165331A (zh) | 数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备 | |
CN110008192A (zh) | 一种数据文件压缩方法、装置、设备及可读存储介质 | |
CN113238912B (zh) | 一种网络安全日志数据的聚合处理方法 | |
CN110995273A (zh) | 电力数据库的数据压缩方法、装置、设备及介质 | |
CN103078647A (zh) | 一种lz77压缩算法的硬件解码实现系统及方法 | |
CN104408178A (zh) | Web控件加载装置和方法 | |
CN114356581A (zh) | 一种内存的清理方法及相关设备 | |
US11403017B2 (en) | Data compression method, electronic device and computer program product | |
CN110032432B (zh) | 实例的压缩方法和装置、实例的解压方法和装置 | |
CN111124851A (zh) | 存储设备历史性能数据处理方法、系统、终端及存储介质 | |
US10841405B1 (en) | Data compression of table rows | |
WO2018077059A1 (zh) | 一种条形码的识别方法和装置 | |
Choi et al. | Fast parallel implementation for random network coding on embedded sensor nodes | |
US9135009B2 (en) | Apparatus and method for compressing instructions and a computer-readable storage media therefor | |
CN112054805A (zh) | 一种模型数据压缩方法、系统及相关设备 | |
CN105468603A (zh) | 数据选择方法及装置 | |
US10678511B1 (en) | Generating pseudo-random numbers using cellular automata |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180206 |
|
RJ01 | Rejection of invention patent application after publication |