首页> 中国专利> 基于重删技术的写方法、读方法、写装置和读装置

基于重删技术的写方法、读方法、写装置和读装置

摘要

本发明提供一种基于重删技术的写方法、读方法、写装置和读装置,通过在写方法中对待写数据块进行查重获得单一实例块之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,根据该解压后的单一实例块与待写数据块的逐字节比对结果,对待写数据块执行写操作,以及在读方法中通过对已写数据块进行读取,获得指向单一实例块的指针之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,对预先存储的所述解压后的单一实例块执行读操作,从而避免了对单一实例块频繁执行解压操作,提高了处理效率。

著录项

  • 公开/公告号CN103810297A

    专利类型发明专利

  • 公开/公告日2014-05-21

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201410083572.0

  • 发明设计人 曹立勋;黄焰;叶林睿;

    申请日2014-03-07

  • 分类号G06F17/30(20060101);G06F3/06(20060101);G06F12/06(20060101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人刘芳

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2024-02-20 00:11:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-01

    授权

    授权

  • 2014-06-25

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140307

    实质审查的生效

  • 2014-05-21

    公开

    公开

说明书

技术领域

本发明实施例涉及数据处理技术,尤其涉及一种基于重删技术的写方法、 读方法、写装置和读装置。

背景技术

重复数据删除技术也称为重删是一种数据缩减技术,通常用于基于磁盘 的备份系统,旨在减少存储系统所占用的存储容量。该重删技术对待存储数 据进行分块处理后获得各数据块,进而仅保留相互重复的数据块中的一个数 据块,其余则用指针替代。在此过程中,为了进一步提高数据缩减率,在将 重复的数据块用指针替代之后,还采用压缩算法对保留的数据块进行压缩存 储,获得单一实例块。

但由于现有技术中采用了压缩算法对单一实例块进行压缩存储,因此, 在对待写数据块执行重删写流程中,需要在根据待写数据块的哈希值进行查 重,获得该待写数据块对应的单一实例块之后,进一步将查询到的单一实例 块进行解压后,才能将上述待写数据块与解压后的单一实例块进行逐字节比 对,以确定该待写数据块是否与上述单一实例块重复。相应的,在对已写数 据块执行重删读流程中,也需要对已写数据块中的指示符所指示的单一实例 块进行解压后,才能对已写数据块进行读取。导致在重删写流程和重删读流 程中,频繁对单一实例块执行解压操作,处理效率较低。

发明内容

本发明实施例提供一种基于重删技术的写方法、读方法、写装置和读装 置,用于避免频繁执行解压操作,提高处理效率。

第一个方面是提供一种基于重删技术的写方法,包括:

对待写数据块进行查重,获得与所述待写数据块具有相同哈希值的单一 实例块;

若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预 先存储了解压后的所述单一实例块;所述引用次数为在已写数据块中,与所 述单一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所 述引用次数大于所述预设阈值的所述单一实例块;

根据预先存储的解压后的所述单一实例块与所述待写数据块的逐字节比 对结果,对所述待写数据块执行写操作。

在第一方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中, 所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预 先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的引用 次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获 得解压后的所述单一实例块;将解压后的所述单一实例块存储在设置于高速 缓存中的所述目标存储空间中。

在第一方面的第二种可能的实现方式中,所述单一实例块存储于内存中, 所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预 先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的引用 次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获 得解压后的所述单一实例块;利用解压后的所述单一实例块替换所述内存中 所存储的单一实例块,以存储在设置于所述内存中的目标存储空间中。

在第一方面的第三种可能的实现方式中,所述根据预先存储的解压后的 所述单一实例块与所述待写数据块的逐字节比对结果,对所述待写数据块执 行写操作,包括:若所述逐字节比对结果为解压后的所述单一实例块与所述 待写数据块重复,则将指向所述单一实例块的指针作为所述待写数据块,对 所述待写数据块执行写操作;若所述逐字节比对结果为解压后的所述单一实 例块与所述待写数据块不重复,则对所述待写数据块压缩后执行写操作。

结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种 可能的实现方式和第一方面的第三种可能的实现方式,在第一方面的第四种 可能的实现方式中,所述预设阈值是以对所述引用次数大于预设阈值的各单 一实例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所 述目标存储空间为依据,计算获得的。

第二个方面是提供一种基于重删技术的读方法,包括:对已写数据块进 行读取,获得指向单一实例块的指针;若所述单一实例块的引用次数大于预 设阈值,则确定目标存储空间中预先存储了解压后的所述单一实例块;所述 引用次数为在所述已写数据块中,与所述单一实例块重复的数据块的个数; 所述目标存储空间用于存储解压后的所述引用次数大于所述预设阈值的所述 单一实例块;对预先存储的解压后的所述单一实例块执行读操作。

在第二方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中, 所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预 先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的所述 引用次数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压, 获得解压后的所述单一实例块;将解压后的所述单一实例块存储在设置于高 速缓存中的所述目标存储空间中。

在第二方面的第二种可能的实现方式中,所述单一实例块存储于内存中, 所述若所述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预 先存储了解压后的所述单一实例块之前,还包括:当所述单一实例块的所述 引用次数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压, 获得解压后的单一实例块;将解压后的所述单一实例块替换所述内存中所存 储的单一实例块,存储在设置于所述内存中的所述目标存储空间中。

结合第二方面、第二方面的第一种可能的实现方式和第二方面的第二种 可能的实现方式,在第二方面的第三种可能的实现方式中,所述预设阈值是 以对所述引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进 行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。

第三个方面是提供一种基于重删技术的写装置,包括:

查重模块,用于对待写数据块进行查重,获得与所述待写数据块具有相 同哈希值的单一实例块;

确定模块,用于若所述单一实例块的引用次数大于预设阈值,则确定目 标存储空间中预先存储了解压后的所述单一实例块;所述引用次数为在已写 数据块中,与所述单一实例块重复的数据块的个数;所述目标存储空间用于 存储解压后的所述引用次数大于所述预设阈值的所述单一实例块;

写模块,用于根据预先存储的解压后的所述单一实例块与所述待写数据 块的逐字节比对结果,对所述待写数据块执行写操作。

在第三方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中, 所述写装置,还包括:第一解压模块,用于当所述单一实例块的引用次数大 于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得解压 后的所述单一实例块;第一存储模块,用于将解压后的所述单一实例块存储 在设置于高速缓存中的所述目标存储空间中。

在第三方面的第二种可能的实现方式中,所述单一实例块存储于内存中, 所述写装置,还包括:第二解压模块,用于当所述单一实例块的引用次数大 于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得解压 后的所述单一实例块;第二存储模块,用于利用解压后的所述单一实例块替 换所述内存中所存储的单一实例块,以存储在设置于所述内存中的目标存储 空间中。

在第三方面的第三种可能的实现方式中,所述写模块,包括:第一写单 元,用于若所述逐字节比对结果为解压后的所述单一实例块与所述待写数据 块重复,则将指向所述单一实例块的指针作为所述待写数据块,对所述待写 数据块执行写操作;第二写单元,用于若所述逐字节比对结果为解压后的所 述单一实例块与所述待写数据块不重复,则对所述待写数据块压缩后执行写 操作。

结合第三方面、第三方面的第一种可能的实现方式、第三方面的第二种 可能的实现方式和第三方面的第三种可能的实现方式,在第三方面的第四种 可能的实现方式中,所述预设阈值是以对引用次数大于预设阈值的各单一实 例块解压后所占用的存储空间进行累加,所获得的总存储空间不大于所述目 标存储空间为依据,计算获得的。

第四个方面是提供一种基于重删技术的读装置,包括:获得模块,用于 对已写数据块进行读取,获得指向单一实例块的指针;确定模块,用于若所 述单一实例块的引用次数大于预设阈值,则确定目标存储空间中预先存储了 解压后的所述单一实例块;所述引用次数为在所述已写数据块中,与所述单 一实例块重复的数据块的个数;所述目标存储空间用于存储解压后的所述引 用次数大于所述预设阈值的所述单一实例块;读模块,用于对预先存储的解 压后的所述单一实例块执行读操作。

在第四方面的第一种可能的实现方式中,所述单一实例块存储于磁盘中, 所述读装置,还包括:第一解压模块,用于当所述单一实例块的所述引用次 数大于所述预设阈值时,对存储于磁盘中的所述单一实例块进行解压,获得 解压后的所述单一实例块;第一存储模块,用于将解压后的所述单一实例块 存储在设置于高速缓存中的所述目标存储空间中。

在第四方面的第二种可能的实现方式中,所述单一实例块存储于内存中, 所述读装置,还包括:第二解压模块,用于当所述单一实例块的所述引用次 数大于所述预设阈值时,对存储于内存中的所述单一实例块进行解压,获得 解压后的单一实例块;第二存储模块,用于将解压后的所述单一实例块替换 所述内存中所存储的单一实例块,存储在设置于所述内存中的所述目标存储 空间中。

结合第四方面、第四方面的第一种可能的实现方式和第四方面的第二种 可能的实现方式,在第四方面的第三种可能的实现方式中,所述预设阈值是 以对所述引用次数大于预设阈值的各单一实例块解压后所占用的存储空间进 行累加,所获得的总存储空间不大于所述目标存储空间为依据,计算获得的。

本发明实施例提供的基于重删技术的写方法、读方法、写装置和读装置, 通过在写方法中对待写数据块进行查重获得单一实例块之后,当根据单一实 例块的引用次数是否大于预设阈值,确定出目标存储空间中预先存储了解压 后的单一实例块时,根据该解压后的单一实例块与待写数据块的逐字节比对 结果,对待写数据块执行写操作,以及在读方法中通过对已写数据块进行读 取,获得指向单一实例块的指针之后,当根据单一实例块的引用次数是否大 于预设阈值,确定出目标存储空间中预先存储了解压后的单一实例块时,对 预先存储的所述解压后的单一实例块执行读操作,从而避免了对单一实例块 频繁执行解压操作,提高了处理效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下 面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在 不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图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 Standard  Architecture,简称为ISA)总线、外部设备互连(Peripheral Component, 简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard  Architecture,简称为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 Standard  Architecture,简称为ISA)总线、外部设备互连(Peripheral Component, 简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard  Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总 线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有 一根总线或一种类型的总线。

可选的,在具体实现上,如果通信接口81、处理器82和存储器83集成 在一块芯片上实现,则通信接口81、处理器82和存储器83可以通过内部接 口完成相同间的通信。

本实施例提供的装置的各功能模块可用于执行图2所示的读方法的流 程,其具体工作原理不再赘述,详见方法实施例的描述。

本实施例中,通过对已写数据块进行读取,获得指向单一实例块的指针 之后,当根据单一实例块的引用次数是否大于预设阈值,确定出目标存储空 间中预先存储了解压后的单一实例块时,对预先存储的所述解压后的单一实 例块执行读操作,从而避免了对单一实例块频繁执行解压操作,提高了处理 效率。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可 读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而 前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的 介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号