[发明专利]基于重删技术的写方法、读方法、写装置和读装置有效
申请号: | 201410083572.0 | 申请日: | 2014-03-07 |
公开(公告)号: | CN103810297B | 公开(公告)日: | 2017-02-01 |
发明(设计)人: | 曹立勋;黄焰;叶林睿 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F3/06;G06F12/06 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 技术 方法 装置 | ||
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种基于重删技术的写方法、读方法、写装置和读装置。
背景技术
重复数据删除技术也称为重删是一种数据缩减技术,通常用于基于磁盘的备份系统,旨在减少存储系统所占用的存储容量。该重删技术对待存储数据进行分块处理后获得各数据块,进而仅保留相互重复的数据块中的一个数据块,其余则用指针替代。在此过程中,为了进一步提高数据缩减率,在将重复的数据块用指针替代之后,还采用压缩算法对保留的数据块进行压缩存储,获得单一实例块。
但由于现有技术中采用了压缩算法对单一实例块进行压缩存储,因此,在对待写数据块执行重删写流程中,需要在根据待写数据块的哈希值进行查重,获得该待写数据块对应的单一实例块之后,进一步将查询到的单一实例块进行解压后,才能将上述待写数据块与解压后的单一实例块进行逐字节比对,以确定该待写数据块是否与上述单一实例块重复。相应的,在对已写数据块执行重删读流程中,也需要对已写数据块中的指示符所指示的单一实例块进行解压后,才能对已写数据块进行读取。导致在重删写流程和重删读流程中,频繁对单一实例块执行解压操作,处理效率较低。
发明内容
本发明实施例提供一种基于重删技术的写方法、读方法、写装置和读装置,用于避免频繁执行解压操作,提高处理效率。
第一个方面是提供一种基于重删技术的写方法,包括:
对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一实例块;
若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;
根据预先存储的解压后的所述单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作。
在第一方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
在第一方面的第二种可能的实现方式中,所述单一实例块存储于内存中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压后的所述单一实例块;利用解压后的所述单一实例块替换所述内存中所存储的单一实例块,以存储在设置于所述内存中的目标存储空间中。
在第一方面的第三种可能的实现方式中,所述根据预先存储的解压后的所述单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执行写操作,包括:若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块重复,则将指向所述单一实例块的指针作为所述待写数据块,对所述待写数据块执行写操作;若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据块不重复,则对所述待写数据块压缩后执行写操作。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式和第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述预设阈值是以对所述引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。
第二个方面是提供一种基于重删技术的读方法,包括:对已写数据块进行读取,获得指向单一实例块的指针;若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在所述已写数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;对预先存储的解压后的所述单一实例块执行读操作。
在第二方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中,所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的所述引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压后的所述单一实例块;将解压后的所述单一实例块存储在设置于高速缓存中的所述目标存储空间中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410083572.0/2.html,转载请声明来源钻瓜专利网。