CN103810297A - 基于重删技术的写方法、读方法、写装置和读装置 - Google Patents
基于重删技术的写方法、读方法、写装置和读装置 Download PDFInfo
- Publication number
- CN103810297A CN103810297A CN201410083572.0A CN201410083572A CN103810297A CN 103810297 A CN103810297 A CN 103810297A CN 201410083572 A CN201410083572 A CN 201410083572A CN 103810297 A CN103810297 A CN 103810297A
- Authority
- CN
- China
- Prior art keywords
- instance piece
- decompress
- ion
- instance
- piece
- 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
Links
Images
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于重删技术的写方法、读方法、写装置和读装置,通过在写方法中对待写数据块进行查重获得单一实例块之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,根据该解压后的单一实例块与待写数据块的逐字节比对结果,对待写数据块执行写操作,以及在读方法中通过对已写数据块进行读取,获得指向单一实例块的指针之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,对预先存储的所述解压后的单一实例块执行读操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
Description
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种基于重删技术的写方法、读方法、写装置和读装置。
背景技术
重复数据删除技术也称为重删是一种数据缩减技术,通常用于基于磁盘的备份系统,旨在减少存储系统所占用的存储容量。该重删技术对待存储数据进行分块处理后获得各数据块,进而仅保留相互重复的数据块中的一个数据块,其余则用指针替代。在此过程中,为了进一步提高数据缩减率,在将重复的数据块用指针替代之后,还采用压缩算法对保留的数据块进行压缩存储,获得单一实例块。
但由于现有技术中采用了压缩算法对单一实例块进行压缩存储,因此,在对待写数据块执行重删写流程中,需要在根据待写数据块的哈希值进行查重,获得该待写数据块对应的单一实例块之后,进一步将查询到的单一实例块进行解压后,才能将上述待写数据块与解压后的单一实例块进行逐字节比对,以确定该待写数据块是否与上述单一实例块重复。相应的,在对已写数据块执行重删读流程中,也需要对已写数据块中的指示符所指示的单一实例块进行解压后,才能对已写数据块进行读取。导致在重删写流程和重删读流程中,频繁对单一实例块执行解压操作,处理效率较低。
发明内容
本发明实施例提供一种基于重删技术的写方法、读方法、写装置和读装置,用于避免频繁执行解压操作,提高处理效率。
第一个方面是提供一种基于重删技术的写方法,包括:
对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块;
若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;
根据预先存储的解压后的所述单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作。
在第一方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
在第一方面的第二种可能的实现方式中,所述单一实例块存储于内存中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的所述单一实例块;利用解压后的所述单一实例块替换所述内存中所存储的单一实例块,以存储在设置于所述内存中的目标存储空间中。
在第一方面的第三种可能的实现方式中,所述根据预先存储的解压后的所述单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作,包括:若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块重复,则将指向所述单一实例块的指针作为所述待写数据块,对所述待写数据块执行写操作;若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块不重复,则对所述待写数据块压缩后执行写操作。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式和第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述预设阈值是以对所述引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
第二个方面是提供一种基于重删技术的读方法,包括:对已写数据块进行读取,获得指向单一实例块的指针;若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在所述已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;对预先存储的解压后的所述单一实例块执行读操作。
在第二方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的所述引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
在第二方面的第二种可能的实现方式中,所述单一实例块存储于内存中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的所述引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的单一实例块;将解压后的所述单一实例块替换所述内存中所存储的单一实例块,存储在设置于所述内存中的所述目标存储空间中。
结合第二方面、第二方面的第一种可能的实现方式和第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述预设阈值是以对所述引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
第三个方面是提供一种基于重删技术的写装置,包括:
查重模块,用于对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块;
确定模块,用于若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;
写模块,用于根据预先存储的解压后的所述单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作。
在第三方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中,所述写装置,还包括:第一解压模块,用于当所述单一实例块的引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;第一存储模块,用于将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
在第三方面的第二种可能的实现方式中,所述单一实例块存储于内存中,所述写装置,还包括:第二解压模块,用于当所述单一实例块的引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的所述单一实例块;第二存储模块,用于利用解压后的所述单一实例块替换所述内存中所存储的单一实例块,以存储在设置于所述内存中的目标存储空间中。
在第三方面的第三种可能的实现方式中,所述写模块,包括:第一写单元,用于若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块重复,则将指向所述单一实例块的指针作为所述待写数据块,对所述待写数据块执行写操作;第二写单元,用于若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块不重复,则对所述待写数据块压缩后执行写操作。
结合第三方面、第三方面的第一种可能的实现方式、第三方面的第二种可能的实现方式和第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述预设阈值是以对引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
第四个方面是提供一种基于重删技术的读装置,包括:获得模块,用于对已写数据块进行读取,获得指向单一实例块的指针;确定模块,用于若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在所述已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;读模块,用于对预先存储的解压后的所述单一实例块执行读操作。
在第四方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中,所述读装置,还包括:第一解压模块,用于当所述单一实例块的所述引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;第一存储模块,用于将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
在第四方面的第二种可能的实现方式中,所述单一实例块存储于内存中,所述读装置,还包括:第二解压模块,用于当所述单一实例块的所述引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的单一实例块;第二存储模块,用于将解压后的所述单一实例块替换所述内存中所存储的单一实例块,存储在设置于所述内存中的所述目标存储空间中。
结合第四方面、第四方面的第一种可能的实现方式和第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述预设阈值是以对所述引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
本发明实施例提供的基于重删技术的写方法、读方法、写装置和读装置,通过在写方法中对待写数据块进行查重获得单一实例块之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,根据该解压后的单一实例块与待写数据块的逐字节比对结果,对待写数据块执行写操作,以及在读方法中通过对已写数据块进行读取,获得指向单一实例块的指针之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,对预先存储的所述解压后的单一实例块执行读操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种基于重删技术的写方法的流程示意图;
图2为本发明一实施例提供的另一种基于重删技术的读方法的流程示意图;
图3为本发明另一实施例提供的一种基于重删技术的写装置的结构示意图;
图4为本发明另一实施例提供的另一种基于重删技术的写装置的结构示意图;
图5为本发明另一实施例提供的一种基于重删技术的读装置的结构示意图;
图6为本发明另一实施例提供的另一种基于重删技术的读装置的结构示意图;
图7为本发明又一实施例提供的一种基于重删技术的写装置的结构示意图;
图8为本发明又一实施例提供的一种基于重删技术的读装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的一种基于重删技术的写方法的流程示意图,如图1所示,本实施例包括:
101、对待写数据块进行查重,从已写数据块中获得与待写数据块具有相同哈希值的单一实例块。
可选的,基于弱哈希算法或强哈希算法计算待写数据块的哈希值,将该待写数据块的哈希值与哈希桶中存储的各已写数据块的哈希值进行比较,确定出已写数据块中,与待写数据块具有相同哈希值的单一实例块。
需要说明的是,哈希桶中存储的单一实例块的哈希值是对数据块压缩存储获得单一实例块之前,对该数据块进行哈希计算获得的。
102、若单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块。
其中,引用次数为在已写数据块中,与该单一实例块重复的数据块的个数。
可选的,若单一实例块存储于磁盘中,当单一实例块的引用次数大于预设阈值时,对单一实例块进行解压,获得解压后的单一实例块;将解压后的单一实例块存储在目标存储空间中,其中,目标存储空间为高速缓存。从而若单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块。
或者可选的,若单一实例块存储于内存中,当单一实例块的引用次数大于预设阈值时,对单一实例块进行解压,获得解压后的单一实例块;将解压后的单一实例块替换所述内存中所存储的单一实例块,存储在设置于内存的目标存储空间中。从而若单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块。
进一步,预设阈值是以对引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
103、根据预先存储的解压后的单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作。
可选的,若逐字节比对结果为解压后的单一实例块与待写数据块重复,则将指向所述单一实例块的指针作为所述待写数据块,对所述待写数据块执行写操作;若逐字节比对结果为所述解压后的单一实例块与所述待写数据块不重复,则对待写数据块压缩后执行写操作。
进一步,若逐字节比对结果为解压后的单一实例块与待写数据块重复,则将指向所述单一实例块的指针作为所述待写数据块,对所述待写数据块执行写操作之后,根据待写数据块的个数,更新该单一实例块的引用计数。例如:若该待写数据块个数为一个,则更新该单一实例块的引用计数为原引用计数加一。
本实施例中,通过对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,根据预先存储的解压后的单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
图2为本发明一实施例提供的另一种基于重删技术的读方法的流程示意图,如图2所示,本实施例包括:
201、对已写数据块进行读取,获得指向单一实例块的指针。
可选的,由于在对待写数据块执行如上一实施例的写方法时,该待写数据块与解压后的单一实例块的逐字节比对结果为两者重复,则将指向该单一实例块的指针作为该待写数据块,对该待写数据块执行写操作,获得已写数据块。因此,在对该已写数据块进行读取时,获得的是指向该单一实例块的指针。
202、若单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块。
其中,引用次数为在已写数据块中,与所述单一实例块重复的数据块的个数。
可选的,若单一实例块存储于磁盘中,当单一实例块的引用次数大于预设阈值时,对单一实例块进行解压,获得解压后的单一实例块;将解压后的单一实例块存储在目标存储空间中,其中,目标存储空间为高速缓存。从而若单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块。
或者可选的,若单一实例块存储于内存中,当单一实例块的引用次数大于所述预设阈值时,对所述单一实例块进行解压,获得解压后的单一实例块;将所述解压后的单一实例块替换所述内存中所存储的单一实例块,存储在设置于所述内存的目标存储空间中。从而若单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块。
进一步,预设阈值是以对引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
203、对预先存储的所述解压后的单一实例块执行读操作。
本实施例中,通过对已写数据块进行读取,获得指向单一实例块的指针之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,对预先存储的所述解压后的单一实例块执行读操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
图3为本发明另一实施例提供的一种基于重删技术的写装置的结构示意图,如图3所示,本实施例中的写装置包括:查重模块31、确定模块32和写模块33。
查重模块31,用于对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块。
确定模块32,与查重模块31连接,用于若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块。
其中,引用次数为在已写数据块中,与所述单一实例块重复的数据块的个数。预设阈值是以对引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
写模块33,与确定模块32连接,用于根据预先存储的解压后的单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作。
本实施例中,通过对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,根据预先存储的解压后的单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
图4为本发明另一实施例提供的另一种基于重删技术的写装置的结构示意图,如图4所示,本实施例中的写装置,在上一实施例的基础上,写模块33进一步包括:第一写单元331和第二写单元332。
第一写单元331,用于若所述逐字节比对结果为所述解压后的单一实例块与所述待写数据块重复,则将指向所述单一实例块的指针作为所述待写数据块,对所述待写数据块执行写操作;
第二写单元332,与第一写单元331连接,用于若所述逐字节比对结果为所述解压后的单一实例块与所述待写数据块不重复,则对所述待写数据块压缩后执行写操作。
进一步,若单一实例块存储于磁盘中,所述写装置,还包括:第一解压模块34和第一存储模块35。
第一解压模块34,用于当所述单一实例块的引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的单一实例块。
第一存储模块35,与第一解压模块34和写模块33连接,用于将所述解压后的单一实例块存储在设置于高速缓存的目标存储空间中。
进一步,若单一实例块存储于内存中,所述写装置,还包括:第二解压模块36和第二存储模块37。
第二解压模块36,用于当所述单一实例块的引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的单一实例块;
第二存储模块37,与第二解压模块36和写模块33连接,用于将所述解压后的单一实例块替换所述内存中所存储的单一实例块,存储在设置于所述内存的目标存储空间中。
本实施例中,通过对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,根据预先存储的解压后的单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
本实施例提供的装置的各功能模块可用于执行图1所示的写方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
图5为本发明另一实施例提供的一种基于重删技术的读装置的结构示意图,如图5所示,本实施例中的读装置包括:获得模块51、确定模块52和读模块53。
获得模块51,用于对已写数据块进行读取,获得指向单一实例块的指针。
确定模块52,与获得模块51连接,用于若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块。
其中,引用次数为在所述已写数据块中,与所述单一实例块重复的数据块的个数。
读模块53,与确定模块52连接,用于对预先存储的所述解压后的单一实例块执行读操作。
本实施例中,通过对已写数据块进行读取,获得指向单一实例块的指针之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,对预先存储的所述解压后的单一实例块执行读操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
图6为本发明另一实施例提供的另一种基于重删技术的读装置的结构示意图,如图6所示,在上一实施例的基础上,若单一实例块存储于磁盘中,则本实施例中的读装置进一步包括:第一解压模块54和第一存储模块55。
第一解压模块54,用于当所述单一实例块的引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的单一实例块;
第一存储模块55,与第一解压模块54和读模块53连接,用于将所述解压后的单一实例块存储在设置于高速缓存中的目标存储空间中。
进一步,若单一实例块存储于内存中,读装置,还包括:第二解压模块56和第二存储模块57。
第二解压模块56,用于当所述单一实例块的引用次数大于所述预设阈值时,对所述单一实例块进行解压,获得解压后的单一实例块。
第二存储模块57,与第二解压模块56和读模块53连接,用于将所述解压后的单一实例块替换所述内存中所存储的单一实例块,存储在设置于所述内存中的目标存储空间中。
本实施例提供的装置的各功能模块可用于执行图2所示的读方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例中,通过对已写数据块进行读取,获得指向单一实例块的指针之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,对预先存储的所述解压后的单一实例块执行读操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
图7为本发明又一实施例提供的一种基于重删技术的写装置的结构示意图,如图7所示,本实施例中的写装置包括:通信接口71、处理器72和存储器73。
存储器73,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器73可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
通信接口71,用于接收待写数据块。
处理器72,用于执行存储器73存放的程序,以用于:对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块;若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块;所述引用次数为在已写数据块中,与所述单一实例块重复的数据块的个数;根据预先存储的解压后的单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作。
处理器72可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
可选的,在具体实现上,如果通信接口71、处理器72和存储器73独立实现,则通信接口71、处理器72和存储器73可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口71、处理器72和存储器73集成在一块芯片上实现,则通信接口71、处理器72和存储器73可以通过内部接口完成相同间的通信。
本实施例提供的装置的各功能模块可用于执行图1所示的写方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例中,通过对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,根据预先存储的解压后的单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
图8为本发明又一实施例提供的一种基于重删技术的读装置的结构示意图,如图8所示,本实施例中的读装置包括:通信接口81、处理器82和存储器83。
存储器83,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器83可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
通信接口81,用于接收对已写数据块进行读取的指令。
处理器82,用于执行存储器83存放的程序,以用于:根据通信接口81接收到的指令,对已写数据块进行读取,获得指向单一实例块的指针;若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的单一实例块;所述引用次数为在所述已写数据块中,与所述单一实例块重复的数据块的个数;对预先存储的所述解压后的单一实例块执行读操作。
处理器82可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
可选的,在具体实现上,如果通信接口81、处理器82和存储器83独立实现,则通信接口81、处理器82和存储器83可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口81、处理器82和存储器83集成在一块芯片上实现,则通信接口81、处理器82和存储器83可以通过内部接口完成相同间的通信。
本实施例提供的装置的各功能模块可用于执行图2所示的读方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例中,通过对已写数据块进行读取,获得指向单一实例块的指针之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,对预先存储的所述解压后的单一实例块执行读操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (18)
1.一种基于重删技术的写方法,其特征在于,包括:
对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块;
若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;
根据预先存储的解压后的所述单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作。
2.根据权利要求1所述的写方法,其特征在于,所述单一实例块存储于磁盘中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:
当所述单一实例块的引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;
将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
3.根据权利要求1所述的写方法,其特征在于,所述单一实例块存储于内存中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:
当所述单一实例块的引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的所述单一实例块;
利用解压后的所述单一实例块替换所述内存中所存储的单一实例块,以存储在设置于所述内存中的目标存储空间中。
4.根据权利要求1所述的写方法,其特征在于,所述根据预先存储的解压后的所述单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作,包括:
若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块重复,则将指向所述单一实例块的指针作为所述待写数据块,对所述待写数据块执行写操作;
若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块不重复,则对所述待写数据块压缩后执行写操作。
5.根据权利要求1-4任一项所述的写方法,其特征在于,所述预设阈值是以对所述引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
6.一种基于重删技术的读方法,其特征在于,包括:
对已写数据块进行读取,获得指向单一实例块的指针;
若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在所述已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;
对预先存储的解压后的所述单一实例块执行读操作。
7.根据权利要求6所述的读方法,其特征在于,所述单一实例块存储于磁盘中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:
当所述单一实例块的所述引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;
将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
8.根据权利要求6所述的读方法,其特征在于,所述单一实例块存储于内存中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:
当所述单一实例块的所述引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的单一实例块;
将解压后的所述单一实例块替换所述内存中所存储的单一实例块,存储在设置于所述内存中的所述目标存储空间中。
9.根据权利要求6-8任一项所述的写方法,其特征在于,所述预设阈值是以对所述引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
10.一种基于重删技术的写装置,其特征在于,包括:
查重模块,用于对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块;
确定模块,用于若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;
写模块,用于根据预先存储的解压后的所述单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作。
11.根据权利要求10所述的写装置,其特征在于,所述单一实例块存储于磁盘中,所述写装置,还包括:
第一解压模块,用于当所述单一实例块的引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;
第一存储模块,用于将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
12.根据权利要求10所述的写装置,其特征在于,所述单一实例块存储于内存中,所述写装置,还包括:
第二解压模块,用于当所述单一实例块的引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的所述单一实例块;
第二存储模块,用于利用解压后的所述单一实例块替换所述内存中所存储的单一实例块,以存储在设置于所述内存中的目标存储空间中。
13.根据权利要求10所述的写装置,其特征在于,所述写模块,包括:
第一写单元,用于若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块重复,则将指向所述单一实例块的指针作为所述待写数据块,对所述待写数据块执行写操作;
第二写单元,用于若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块不重复,则对所述待写数据块压缩后执行写操作。
14.根据权利要求10-13任一项所述的写装置,其特征在于,所述预设阈值是以对引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
15.一种基于重删技术的读装置,其特征在于,包括:
获得模块,用于对已写数据块进行读取,获得指向单一实例块的指针;
确定模块,用于若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在所述已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;
读模块,用于对预先存储的解压后的所述单一实例块执行读操作。
16.根据权利要求15所述的读装置,其特征在于,所述单一实例块存储于磁盘中,所述读装置,还包括:
第一解压模块,用于当所述单一实例块的所述引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;
第一存储模块,用于将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
17.根据权利要求15所述的读装置,其特征在于,所述单一实例块存储于内存中,所述读装置,还包括:
第二解压模块,用于当所述单一实例块的所述引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的单一实例块;
第二存储模块,用于将解压后的所述单一实例块替换所述内存中所存储的单一实例块,存储在设置于所述内存中的所述目标存储空间中。
18.根据权利要求15-17任一项所述的写装置,其特征在于,所述预设阈值是以对所述引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410083572.0A CN103810297B (zh) | 2014-03-07 | 2014-03-07 | 基于重删技术的写方法、读方法、写装置和读装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410083572.0A CN103810297B (zh) | 2014-03-07 | 2014-03-07 | 基于重删技术的写方法、读方法、写装置和读装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103810297A true CN103810297A (zh) | 2014-05-21 |
CN103810297B CN103810297B (zh) | 2017-02-01 |
Family
ID=50707067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410083572.0A Active CN103810297B (zh) | 2014-03-07 | 2014-03-07 | 基于重删技术的写方法、读方法、写装置和读装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810297B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106662981A (zh) * | 2014-06-27 | 2017-05-10 | 日本电气株式会社 | 存储设备、程序和信息处理方法 |
CN106775501A (zh) * | 2017-02-14 | 2017-05-31 | 华南师范大学 | 基于非易失内存设备的数据去冗余方法及系统 |
CN107870740A (zh) * | 2016-09-28 | 2018-04-03 | 爱思开海力士有限公司 | 用于控制存储器的设备和方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220197643A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Speculative decompression within processor core caches |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100565512C (zh) * | 2006-07-10 | 2009-12-02 | 腾讯科技(深圳)有限公司 | 消除文件存储系统中冗余文件的系统及方法 |
CN101814045B (zh) * | 2010-04-22 | 2011-09-14 | 华中科技大学 | 一种用于备份服务的数据组织方法 |
CN102323958A (zh) * | 2011-10-27 | 2012-01-18 | 上海文广互动电视有限公司 | 重复数据删除方法 |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及系统 |
CN103365745A (zh) * | 2013-06-07 | 2013-10-23 | 上海爱数软件有限公司 | 一种基于内容地址存储的块级备份方法及系统 |
-
2014
- 2014-03-07 CN CN201410083572.0A patent/CN103810297B/zh active Active
Non-Patent Citations (1)
Title |
---|
谢平: "存储系统重复数据删除技术研究综述", 《计算机科学》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106662981A (zh) * | 2014-06-27 | 2017-05-10 | 日本电气株式会社 | 存储设备、程序和信息处理方法 |
CN106662981B (zh) * | 2014-06-27 | 2021-01-26 | 日本电气株式会社 | 存储设备、程序和信息处理方法 |
CN107870740A (zh) * | 2016-09-28 | 2018-04-03 | 爱思开海力士有限公司 | 用于控制存储器的设备和方法 |
CN107870740B (zh) * | 2016-09-28 | 2021-01-08 | 爱思开海力士有限公司 | 用于控制存储器的设备和方法 |
CN106775501A (zh) * | 2017-02-14 | 2017-05-31 | 华南师范大学 | 基于非易失内存设备的数据去冗余方法及系统 |
CN106775501B (zh) * | 2017-02-14 | 2019-06-11 | 华南师范大学 | 基于非易失内存设备的数据去冗余系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103810297B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427538B (zh) | 全闪存阵列的存储数据压缩方法、装置、及可读存储介质 | |
US10719254B2 (en) | Merging data from single-level cell block to multiple-level cell block based on sudden power off event and valid page count in single-level cell block | |
US9645750B2 (en) | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory | |
CN106409344B (zh) | 数据储存设备及其操作方法 | |
US9678827B2 (en) | Access counts for performing data inspection operations in data storage device | |
CN103425589A (zh) | 控制装置、存储装置以及存储控制方法 | |
WO2016048599A1 (en) | Caching technologies employing data compression | |
US10203899B2 (en) | Method for writing data into flash memory apparatus, flash memory apparatus, and storage system | |
CN103870514A (zh) | 重复数据删除方法和装置 | |
CN105321571B (zh) | 数据储存装置及其操作方法 | |
CN104239518A (zh) | 重复数据删除方法和装置 | |
CN104699417A (zh) | 数据储存装置以及其数据存取方法 | |
CN103810297A (zh) | 基于重删技术的写方法、读方法、写装置和读装置 | |
CN103745753A (zh) | 基于闪存的纠错方法与系统 | |
KR102507140B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11567860B2 (en) | Memory system for updating mapping information | |
CN103955440A (zh) | 一种非易失存储设备及其进行数据操作的方法 | |
CN109582507B (zh) | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm | |
CN104699622A (zh) | 数据储存装置以及其数据抹除方法 | |
US9430327B2 (en) | Data access method, memory control circuit unit and memory storage apparatus | |
CN101763220B (zh) | 一种数据更新的方法、控制器及存储系统 | |
US20170024333A1 (en) | High performance host queue monitor for pcie ssd controller | |
CN103984506A (zh) | 闪存存储设备数据写的方法和系统 | |
CN106802837B (zh) | 一种更新错误检测和纠正ecc码的方法及装置 | |
CN103229150B (zh) | 数据控制方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |