一种数据操作的方法和设备技术

技术编号:9596536 阅读:69 留言:0更新日期:2014-01-23 02:04
本发明专利技术提供一种数据操作的方法和设备,涉及存储领域,能够保证物理存储空间的连续性,提高存储存储设备的读写性能;通过查找树形结构中根节点和间接节点所在的数据块,在预分配空间里分配并释放存储空间,查询目的地址在存储空间中的连续块;当查询到连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以连续块为单位将操作后的数据写入存储设备,本发明专利技术用于对数据进行操作。

【技术实现步骤摘要】
【专利摘要】本专利技术提供一种数据操作的方法和设备,涉及存储领域,能够保证物理存储空间的连续性,提高存储存储设备的读写性能;通过查找树形结构中根节点和间接节点所在的数据块,在预分配空间里分配并释放存储空间,查询目的地址在存储空间中的连续块;当查询到连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以连续块为单位将操作后的数据写入存储设备,本专利技术用于对数据进行操作。【专利说明】一种数据操作的方法和设备
本专利技术涉及存储领域,尤其涉及一种数据操作的方法和设备。
技术介绍
当前在进行重复文件删除时,重复文件删除时,会通过特定的算法找到相同的文件数据块,然后将指向相同数据块的重删元数据写入存放文件的树中。虽然单个重删元数据比单个数据块占用空间要小,但相对带来的重删元数据的个数大得多,如何存储元数据以及优化读取和写入性能存在很大挑战。B+树(B+Tree)作为ー种常见的树形数据结构,由于能够保持存储数据的稳定性,同时其操作的时间复杂度也很稳定,因此B+树通常被用在数据库和操作系统的文件系统中,用于保存关键词信息。但是B+树主要适用于随机文件的复写操作,不适用于对顺序文件的读写操作,另外,现有的B+树的插入和删除算法会造成数据结构中大量的间接节点的分裂和合并,会造成间接节点的不断释放和分配,最終造成物理存储空间的不连续,从而无法为间接节点分配连续空间,降低了数据的读写性能。
技术实现思路
本专利技术的实施例提供一种数据操作的方法和设备,能够保证物理存储空间的连续性,提高存储存储设备的读写性能。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供一种数据操作的方法,所述方法包括:查找树形结构中根节点和间接节点所在的数据块;在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块;当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。在第一种可能的实现方式中,结合第一方面,所述方法还包括:对所述树形结构中每层的间接节点和根节点都分配连续的缓存,并且所述连续的缓存都与所述间接节点所在的连续物理空间相对应。在第二种可能的实现方式中,结合第一方面,所述当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备:所述插入操作为对文件的追加写操作,当所述待操作的数据的逻辑位置值,同前一个数据的逻辑位置值与自身数据长度的和相等时,则直接在所述前ー个数据的相邻位置进行所述待操作数据的插入;所述插入操作为对文件的空洞写操作,当所述待操作的数据的逻辑位置值,大于前一个数据的逻辑位置值与自身数据长度的和时,则在所述待操作的数据前添加第一数据块,并在所述第一数据块相邻的位置插入所述待操作的数据,其中所述第一数据块中的逻辑位置值与所述前ー个数据的逻辑位置值与自身数据长度的和相等,并且所述第一数据块的大小为所述待操作的数据的逻辑信道值与所述第一数据块的逻辑位置值的差值;所述插入操作为对文件的覆盖写操作,当所述待操作的数据为多个数据块时,则将于所述待操作的数据中的逻辑位置值对应的数据块删除,并将所述待操作的数据插入到已删除的数据块的位置。在第三种可能的实现方式中,结合第一方面,所述当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备包括:所述删除操作为覆盖写删除操作,将同一个间接节点下相邻的数据块删除成新的数据块,所述新的数据块中的逻辑位置值为所述相邻的数据块中第一个数据块的逻辑位置值,所述新的数据块的大小为所述相邻的数据块大小的和;所述删除操作为文件截短操作,则直接将被截断的数据块中的值清零。第二方面,提供一种数据操作的设备,所述设备包括:数据块查找单元,用于查找树形结构中根节点和间接节点所在的数据块;连续块查询单元,用于在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块;执行单元,用于当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。在第一种可能的实现方式中,结合第二方面,在所述设备中:对所述树形结构中每层的间接节点和根节点都分配连续的缓存,并且所述连续的缓存都与所述间接节点所在的连续物理空间相对应。在第二种可能的实现方式中,结合第二方面,所述执行单元具体用于:所述插入操作为对文件的追加写操作,当所述待操作的数据的逻辑位置值,同前一个数据的逻辑位置值与自身数据长度的和相等时,则直接在所述前ー个数据的相邻位置进行所述待操作数据的插入;所述插入操作为对文件的空洞写操作,当所述待操作的数据的逻辑位置值,大于前一个数据的逻辑位置值与自身数据长度的和时,则在所述待操作的数据前添加第一数据块,并在所述第一数据块相邻的位置插入所述待操作的数据,其中所述第一数据块中的逻辑位置值与所述前ー个数据的逻辑位置值与自身数据长度的和相等,并且所述第一数据块的大小为所述待操作的数据的逻辑信道值与所述第一数据块的逻辑位置值的差值;所述插入操作为对文件的覆盖写操作,当所述待操作的数据为多个数据块时,则将于所述待操作的数据中的逻辑位置值对应的数据块删除,并将所述待操作的数据插入到已删除的数据块的位置。在第三种可能的实现方式中,结合第二方面,所述执行単元还用于:所述删除操作为覆盖写删除操作,将同一个间接节点下相邻的数据块删除成新的数据块,所述新的数据块中的逻辑位置值为所述相邻的数据块中第一个数据块的逻辑位置值,所述新的数据块的大小为所述相邻的数据块大小的和;所述删除操作为文件截短操作,则直接将被截断的数据块中的值清零。本专利技术实施例提供的一种数据操作的方法和设备,通过查找树形结构中根节点和间接节点所在的数据块,在预分配空间里分配并释放存储空间,查询目的地址在存储空间中的连续块;当查询到连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以连续块为单位将操作后的数据写入存储设备,能够保证物理存储空间的连续性,提高存储存储设备的读写性能。【专利附图】【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供一种数据操作的方法的流程图;图2为本专利技术实施例提供一种数据操作的方法中追加写操作的示意图;图3为本专利技术实施例提供一种数据操作的方法中空洞写操作的示意图;图4为本专利技术实施例提供一种数据操作的方法中覆盖写操作的示意图;图5为本专利技术实施例提供一种数据操作的方法中覆盖写操作的结果示意图;图6为本专利技术实施例提供一种数据操作的方法中覆盖写操作的示意图;图7为本专利技术实施例提供一种数据操作的方法中文件截短操作的示意图;图8为本专利技术实施例提供一种数据操作的设备的结构示意图;图9为本文档来自技高网...

【技术保护点】
一种数据操作的方法,其特征在于,所述方法包括:查找树形结构中根节点和间接节点所在的数据块;在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块;当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨小锋
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1