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

文档序号:6514818阅读:173来源:国知局
一种数据操作的方法和设备的制作方法
【专利摘要】本发明提供一种数据操作的方法和设备,涉及存储领域,能够保证物理存储空间的连续性,提高存储存储设备的读写性能;通过查找树形结构中根节点和间接节点所在的数据块,在预分配空间里分配并释放存储空间,查询目的地址在存储空间中的连续块;当查询到连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以连续块为单位将操作后的数据写入存储设备,本发明用于对数据进行操作。
【专利说明】一种数据操作的方法和设备
【技术领域】
[0001]本发明涉及存储领域,尤其涉及一种数据操作的方法和设备。
【背景技术】
[0002]当前在进行重复文件删除时,重复文件删除时,会通过特定的算法找到相同的文件数据块,然后将指向相同数据块的重删元数据写入存放文件的树中。虽然单个重删元数据比单个数据块占用空间要小,但相对带来的重删元数据的个数大得多,如何存储元数据以及优化读取和写入性能存在很大挑战。
[0003]B+树(B+Tree)作为ー种常见的树形数据结构,由于能够保持存储数据的稳定性,同时其操作的时间复杂度也很稳定,因此B+树通常被用在数据库和操作系统的文件系统中,用于保存关键词信息。但是B+树主要适用于随机文件的复写操作,不适用于对顺序文件的读写操作,另外,现有的B+树的插入和删除算法会造成数据结构中大量的间接节点的分裂和合并,会造成间接节点的不断释放和分配,最終造成物理存储空间的不连续,从而无法为间接节点分配连续空间,降低了数据的读写性能。

【发明内容】

[0004]本发明的实施例提供一种数据操作的方法和设备,能够保证物理存储空间的连续性,提高存储存储设备的读写性能。
[0005]为达到上述目的,本发明的实施例采用如下技术方案:
[0006]第一方面,提供一种数据操作的方法,所述方法包括:
[0007]查找树形结构中根节点和间接节点所在的数据块;
[0008]在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块;
[0009]当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。
[0010]在第一种可能的实现方式中,结合第一方面,所述方法还包括:
[0011]对所述树形结构中每层的间接节点和根节点都分配连续的缓存,并且所述连续的缓存都与所述间接节点所在的连续物理空间相对应。
[0012]在第二种可能的实现方式中,结合第一方面,所述当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备:
[0013]所述插入操作为对文件的追加写操作,当所述待操作的数据的逻辑位置值,同前一个数据的逻辑位置值与自身数据长度的和相等时,则直接在所述前ー个数据的相邻位置进行所述待操作数据的插入;
[0014]所述插入操作为对文件的空洞写操作,当所述待操作的数据的逻辑位置值,大于前一个数据的逻辑位置值与自身数据长度的和时,则在所述待操作的数据前添加第一数据块,并在所述第一数据块相邻的位置插入所述待操作的数据,其中所述第一数据块中的逻辑位置值与所述前ー个数据的逻辑位置值与自身数据长度的和相等,并且所述第一数据块的大小为所述待操作的数据的逻辑信道值与所述第一数据块的逻辑位置值的差值;
[0015]所述插入操作为对文件的覆盖写操作,当所述待操作的数据为多个数据块时,则将于所述待操作的数据中的逻辑位置值对应的数据块删除,并将所述待操作的数据插入到已删除的数据块的位置。
[0016]在第三种可能的实现方式中,结合第一方面,所述当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备包括:
[0017]所述删除操作为覆盖写删除操作,将同一个间接节点下相邻的数据块删除成新的数据块,所述新的数据块中的逻辑位置值为所述相邻的数据块中第一个数据块的逻辑位置值,所述新的数据块的大小为所述相邻的数据块大小的和;
[0018]所述删除操作为文件截短操作,则直接将被截断的数据块中的值清零。
[0019]第二方面,提供一种数据操作的设备,所述设备包括:
[0020]数据块查找单元,用于查找树形结构中根节点和间接节点所在的数据块;
[0021]连续块查询单元,用于在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块;
[0022]执行单元,用于当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。
[0023]在第一种可能的实现方式中,结合第二方面,在所述设备中:
[0024]对所述树形结构中每层的间接节点和根节点都分配连续的缓存,并且所述连续的缓存都与所述间接节点所在的连续物理空间相对应。
[0025]在第二种可能的实现方式中,结合第二方面,所述执行单元具体用于:
[0026]所述插入操作为对文件的追加写操作,当所述待操作的数据的逻辑位置值,同前一个数据的逻辑位置值与自身数据长度的和相等时,则直接在所述前ー个数据的相邻位置进行所述待操作数据的插入;
[0027]所述插入操作为对文件的空洞写操作,当所述待操作的数据的逻辑位置值,大于前一个数据的逻辑位置值与自身数据长度的和时,则在所述待操作的数据前添加第一数据块,并在所述第一数据块相邻的位置插入所述待操作的数据,其中所述第一数据块中的逻辑位置值与所述前ー个数据的逻辑位置值与自身数据长度的和相等,并且所述第一数据块的大小为所述待操作的数据的逻辑信道值与所述第一数据块的逻辑位置值的差值;
[0028]所述插入操作为对文件的覆盖写操作,当所述待操作的数据为多个数据块时,则将于所述待操作的数据中的逻辑位置值对应的数据块删除,并将所述待操作的数据插入到已删除的数据块的位置。
[0029]在第三种可能的实现方式中,结合第二方面,所述执行単元还用于:
[0030]所述删除操作为覆盖写删除操作,将同一个间接节点下相邻的数据块删除成新的数据块,所述新的数据块中的逻辑位置值为所述相邻的数据块中第一个数据块的逻辑位置值,所述新的数据块的大小为所述相邻的数据块大小的和;[0031]所述删除操作为文件截短操作,则直接将被截断的数据块中的值清零。
[0032]本发明实施例提供的一种数据操作的方法和设备,通过查找树形结构中根节点和间接节点所在的数据块,在预分配空间里分配并释放存储空间,查询目的地址在存储空间中的连续块;当查询到连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以连续块为单位将操作后的数据写入存储设备,能够保证物理存储空间的连续性,提高存储存储设备的读写性能。
【专利附图】

【附图说明】
[0033]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]图1为本发明实施例提供一种数据操作的方法的流程图;
[0035]图2为本发明实施例提供一种数据操作的方法中追加写操作的示意图;
[0036]图3为本发明实施例提供一种数据操作的方法中空洞写操作的示意图;
[0037]图4为本发明实施例提供一种数据操作的方法中覆盖写操作的示意图;
[0038]图5为本发明实施例提供一种数据操作的方法中覆盖写操作的结果示意图;
[0039]图6为本发明实施例提供一种数据操作的方法中覆盖写操作的示意图;
[0040]图7为本发明实施例提供一种数据操作的方法中文件截短操作的示意图;
[0041]图8为本发明实施例提供一种数据操作的设备的结构示意图;
[0042]图9为本发明提供一种数据操作的装置的结构示意图。
【具体实施方式】
[0043]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]本发明实施例提供一种数据操作的方法,如图1所示,该方法包括:
[0045]101、查找树形结构中根节点和间接节点所在的数据块。
[0046]102、在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块。
[0047]103、当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。
[0048]本发明实施例提供的一种数据操作的方法,通过查找树形结构中根节点和间接节点所在的数据块,在预分配空间里分配并释放存储空间,查询目的地址在存储空间中的连续块;当查询到连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以连续块为单位将操作后的数据写入存储设备,能够保证物理存储空间的连续性,提高存储存储设备的读写性能。
[0049]本发明实施例提供一种数据操作的方法,该方法包括:[0050]201、查找树形结构中根节点和间接节点所在的数据块。
[0051]202、在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块。
[0052]203、当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。
[0053]其中,对所述树形结构中每层的间接节点和根节点都分配连续的缓存,并且所述连续的缓存都与所述间接节点所在的连续物理空间相对应。
[0054]进ー步的,在步骤203中,当待操作为插入操作时,具体分为以下三种情况:
[0055]所述插入操作为对文件的追加写操作,当所述待操作的数据的逻辑位置值,同前一个数据的逻辑位置值与自身数据长度的和相等时,则直接在所述前ー个数据的相邻位置进行所述待操作数据的插入。
[0056]示例性的,具体的追加写操作如图2所示,在图2中,B+树共有三层,分别为叶子节点LevelO以及间接节点Levell和Level2,当前待插入的数据块的逻辑位置值为12291,因此,在执行该追加写操作时,首先由上层节点分配与前ー个间接节点1000相邻的新的间接节点1001,并在间接节点1001的叶子节点位置进行新的数据块的插入。
[0057]确定在新分配的数据块1001的叶子节点处添加新的数据块后,经过计算得知,前一个间接节点的最后ー个叶子节点中的逻辑位置值和自身长度的和为12291,与待添加的数据块的逻辑位置值正好相等,因此,本次数据插入操作就为追加写操作。
[0058]同样的,插入操作为对文件的空洞写操作,当所述待操作的数据的逻辑位置值,大于前ー个数据的逻辑位置值与自身数据长度的和时,则在所述待操作的数据前添加第一数据块,并在所述第一数据块相邻的位置插入所述待操作的数据,其中所述第一数据块中的逻辑位置值与所述前ー个数据的逻辑位置值与自身数据长度的和相等,并且所述第一数据块的大小为所述待操作的数据的逻辑信道值与所述第一数据块的逻辑位置值的差值。
[0059]示例性的,如图3所示,在图3中,原本存在的数据块仅为数据块1000及其三个叶子节点,当前待添加的数据块的逻辑位置值是16387,而原间接节点1000的最后ー个叶子节点的逻辑位置值与数据长度的和仅为12291,与待添加的数据块的逻辑位置值是16387的数值并不相等,如果此次仅仅将待添加的数据块直接在前一个间接节点后直接添加,就不能保证存储数据的连续性。
[0060]在这种情况下,为了保证存储数据的连续性,在原间接节点的上层添加数据块100作为间接节点,并添加数据块1001与原间接节点1000 —同作为数据块100的间接节点,接着,为间接节点1001添加与与间接节点1000的最后ー个叶子节点相连的伪叶子节点,并在此叶子节点后再将待插入的逻辑位置值16387的数据块进行插入。
[0061]其中,添加的伪叶子节点的逻辑位置值为间接节点1000的最后ー个叶子节点的逻辑位置值与自身长度的和12291,而此伪叶子节点的长度为待添加的数据块的逻辑位置值16387同间接节点1000的最后ー个叶子节点的逻辑位置值与自身长度的和12291的差值4096。由于添加的伪叶子节点并不是真正等待添加的数据块,为了表明这一点,在伪叶子节点中添加ー个标识值,并将此标志值赋值为空,以此来表明该数据块不是真正根据用户指令添加的数据块。
[0062]所述插入操作为对文件的覆盖写操作,当所述待操作的数据为多个数据块时,则将于所述待操作的数据中的逻辑位置值对应的数据块删除,并将所述待操作的数据插入到已删除的数据块的位置。
[0063]示例性的,如图4所示,当前需要将两个新的数据块与原有B+树中的第一个叶子节点进行替换,即将原B+树中的第一个叶子节点的位置上将被两个新的数据块代替,替换后的结果如图5所示,原叶子节点已经被两个新的叶子节点所代替,同时原间接节点1000也被新的间接节点900代替。
[0064]进ー步的,覆盖写的过程具体为:将被替换的数据块删除,并将已删除的叶子节点对应的间接节点同时删除,由上层节点重新分配ー个间接节点,该新分配的间接节点的长度为已删除间接节点的长度与待添加的数据块长度的和,之后,在已删除叶子的节点的位置将待添加的数据块插入。
[0065]相対的,在步骤203中,当待操作为删除操作时,具体分以下两种情况:
[0066]所述删除操作为覆盖写合并操作,将逻辑位置值相邻的数据合并成一个新的数据,从而生成一个逻辑位置值与合并前第一个数据的逻辑位置值相同的、数据长度为所有被合并的数据长度和的新数据,接着令生成的数据代替原有数据的位置,同时在新数据生成后,删除原有的数据。
[0067]示例性的,具体的覆盖写合并操作如图6所示,在图6中,间接节点数据块100连接有四个叶子节点,若需要将叶子节点中前两个数据块合并,也就是覆盖的数据是逻辑位置值为0和2048的数据块,在对上述两个数据块进行覆盖写合并的操作后,会生成ー个新的数据块,该数据块的逻辑位置值为合并前的第一个数据块的逻辑位置值也就是0,而合并后数据块的数据长度则为合并前两个数据块长度的和也就是2048+2048=4096,生成合并后的数据块后,需要将合并前的两个数据块删除,之后将新生成的数据块存储于合并前数据块的位置。
[0068]同样的,当删除操作为文件截短操作时,直接将截短位置的数据块删除。
[0069]示例性的,如图7所示,待删除数据为图中虚线框中的逻辑值为16387的数据块,当进行文件截短操作时,直接将待删除数据块中的数据清空。
[0070]本发明实施例提供的一种数据操作的方法,通过查找树形结构中根节点和间接节点所在的数据块,在预分配空间里分配并释放存储空间,查询目的地址在存储空间中的连续块;当查询到连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以连续块为单位将操作后的数据写入存储设备,能够保证物理存储空间的连续性,提高存储存储设备的读写性能。
[0071]本发明实施例提供一种数据操作的设备3,如图8所示,该设备3包括:
[0072]数据块查找单元31,用于查找树形结构中根节点和间接节点所在的数据块。
[0073]连续块查询单元32,用于在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块。
[0074]执行单元33,用于当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。
[0075]进ー步的,在设备3中,对所述树形结构中姆层的间接节点和根节点都分配连续的缓存,并且所述连续的缓存都与所述间接节点所在的连续物理空间相对应。[0076]其中,执行单元33具体用于:
[0077]所述插入操作为对文件的追加写操作,当所述待操作的数据的逻辑位置值,同前一个数据的逻辑位置值与自身数据长度的和相等时,则直接在所述前ー个数据的相邻位置进行所述待操作数据的插入;
[0078]所述插入操作为对文件的空洞写操作,当所述待操作的数据的逻辑位置值,大于前一个数据的逻辑位置值与自身数据长度的和时,则在所述待操作的数据前添加第一数据块,并在所述第一数据块相邻的位置插入所述待操作的数据,其中所述第一数据块中的逻辑位置值与所述前ー个数据的逻辑位置值与自身数据长度的和相等,并且所述第一数据块的大小为所述待操作的数据的逻辑信道值与所述第一数据块的逻辑位置值的差值;
[0079]所述插入操作为对文件的覆盖写操作,当所述待操作的数据为多个数据块时,则将于所述待操作的数据中的逻辑位置值对应的数据块删除,并将所述待操作的数据插入到已删除的数据块的位置。
[0080]类似的,执行单元33还用于:
[0081]所述删除操作为覆盖写删除操作,将同一个间接节点下相邻的数据块删除成新的数据块,所述新的数据块中的逻辑位置值为所述相邻的数据块中第一个数据块的逻辑位置值,所述新的数据块的大小为所述相邻的数据块大小的和;
[0082]所述删除操作为文件截短操作,则直接将被截断的数据块中的值清零。
[0083]本发明实施例提供的一种数据操作的设备,通过查找树形结构中根节点和间接节点所在的数据块,在预分配空间里分配并释放存储空间,查询目的地址在存储空间中的连续块;当查询到连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以连续块为单位将操作后的数据写入存储设备,能够保证物理存储空间的连续性,提高存储存储设备的读写性能。
[0084]本发明提供一种数据操作的装置4,如图9所示,该装置4包括:总线41 ;以及连接到总线41上的处理器42,、存储器43、接收器44和发射器45,其中存储器用于存储相关指令,该处理器42执行相关指令用于查找树形结构中根节点和间接节点所在的数据块;该处理器42执行相关指令用于在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块;该处理器42执行相关指令用于当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。
[0085]在本发明实施例中,可选的,该处理器42还用于对所述树形结构中每层的间接节点和根节点都分配连续的缓存,并且所述连续的缓存都与所述间接节点所在的连续物理空间相对应。
[0086]在本发明实施例中,可选的,该处理器42执行相关指令用于当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备包括:
[0087]所述插入操作为对文件的追加写操作,当所述待操作的数据的逻辑位置值,同前一个数据的逻辑位置值与自身数据长度的和相等时,则直接在所述前ー个数据的相邻位置进行所述待操作数据的插入;
[0088]所述插入操作为对文件的空洞写操作,当所述待操作的数据的逻辑位置值,大于前一个数据的逻辑位置值与自身数据长度的和时,则在所述待操作的数据前添加第一数据块,并在所述第一数据块相邻的位置插入所述待操作的数据,其中所述第一数据块中的逻辑位置值与所述前ー个数据的逻辑位置值与自身数据长度的和相等,并且所述第一数据块的大小为所述待操作的数据的逻辑信道值与所述第一数据块的逻辑位置值的差值;
[0089]所述插入操作为对文件的覆盖写操作,当所述待操作的数据为多个数据块时,则将于所述待操作的数据中的逻辑位置值对应的数据块删除,并将所述待操作的数据插入到已删除的数据块的位置。
[0090]在本发明实施例中,可选的,该处理器42执行相关指令用于当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备包括:
[0091]所述删除操作为覆盖写删除操作,将同一个间接节点下相邻的数据块删除成新的数据块,所述新的数据块中的逻辑位置值为所述相邻的数据块中第一个数据块的逻辑位置值,所述新的数据块的大小为所述相邻的数据块大小的和;
[0092]所述删除操作为文件截短操作,则直接将被截断的数据块中的值清零。
[0093]因此本发明实施例提供的一种数据操作的装置,通过查找树形结构中根节点和间接节点所在的数据块,在预分配空间里分配并释放存储空间,查询目的地址在存储空间中的连续块;当查询到连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以连续块为单位将操作后的数据写入存储设备,能够保证物理存储空间的连续性,提高存储存储设备的读写性能。
[0094]在本申请所提供的几个实施例中,应该理解到,所揭露的方法,装置,和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另ー个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过ー些接ロ,装置或単元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0095]所述作为分离部件说明的単元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理単元,即可以位于ー个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0096]另外,在本发明各个实施例中的各功能単元可以集成在一个处理単元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能単元的形式实现。
[0097]上述以软件功能単元的形式实现的集成的単元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在ー个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0098]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种数据操作的方法,其特征在于,所述方法包括: 查找树形结构中根节点和间接节点所在的数据块; 在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块; 当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 对所述树形结构中每层的间接节点和根节点都分配连续的缓存,并且所述连续的缓存都与所述间接节点所在的连续物理空间相对应。
3.根据权利要求1所述的方法,其特征在于,所述当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为単位将所述操作后的数据写入存储设备: 所述插入操作为对文件的追加写操作,当所述待操作的数据的逻辑位置值,同前ー个数据的逻辑位置值与自身数据长度的和相等时,则直接 在所述前ー个数据的相邻位置进行所述待操作数据的插入; 所述插入操作为对文件的空洞写操作,当所述待操作的数据的逻辑位置值,大于前一个数据的逻辑位置值与自身数据长度的和时,则在所述待操作的数据前添加第一数据块,并在所述第一数据块相邻的位置插入所述待操作的数据,其中所述第一数据块中的逻辑位置值与所述前ー个数据的逻辑位置值与自身数据长度的和相等,并且所述第一数据块的大小为所述待操作的数据的逻辑信道值与所述第一数据块的逻辑位置值的差值; 所述插入操作为对文件的覆盖写操作,当所述待操作的数据为多个数据块时,则将于所述待操作的数据中的逻辑位置值对应的数据块删除,并将所述待操作的数据插入到已删除的数据块的位置。
4.根据权利要求1所述的方法,其特征在于,所述当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为単位将所述操作后的数据写入存储设备包括: 所述删除操作为覆盖写删除操作,将同一个间接节点下相邻的数据块删除成新的数据块,所述新的数据块中的逻辑位置值为所述相邻的数据块中第一个数据块的逻辑位置值,所述新的数据块的大小为所述相邻的数据块大小的和; 所述删除操作为文件截短操作,则直接将被截断的数据块中的值清零。
5.一种数据操作的设备,其特征在于,所述设备包括: 数据块查找单元,用于查找树形结构中根节点和间接节点所在的数据块; 连续块查询单元,用于在预分配空间里分配并释放存储空间,查询目的地址在所述存储空间中的连续块; 执行单元,用于当查询到所述连续块时,将待操作的数据在缓存中存储,进行读取、插入和删除的操作,并得到操作后的数据,以所述连续块为单位将所述操作后的数据写入存储设备。
6.根据权利要求5所述的设备,其特征在于,在所述设备中: 对所述树形结构中每层的间接节点和根节点都分配连续的缓存,并且所述连续的缓存都与所述间接节点所在的连续物理空间相对应。
7.根据权利要求5所述的设备,其特征在于,所述执行単元具体用于: 所述插入操作为对文件的追加写操作,当所述待操作的数据的逻辑位置值,同前ー个数据的逻辑位置值与自身数据长度的和相等时,则直接在所述前ー个数据的相邻位置进行所述待操作数据的插入; 所述插入操作为对文件的空洞写操作,当所述待操作的数据的逻辑位置值,大于前一个数据的逻辑位置值与自身数据长度的和时,则在所述待操作的数据前添加第一数据块,并在所述第一数据块相邻的位置插入所述待操作的数据,其中所述第一数据块中的逻辑位置值与所述前ー个数据的逻辑位置值与自身数据长度的和相等,并且所述第一数据块的大小为所述待操作的数据的逻辑信道值与所述第一数据块的逻辑位置值的差值; 所述插入操作为对文件的覆盖写操作,当所述待操作的数据为多个数据块时,则将于所述待操作的数据中的逻辑位置值对应的数据块删除,并将所述待操作的数据插入到已删除的数据块的位置。
8.根据权利要求5所述的设备,其特征在于,所述执行単元还用于: 所述删除操作为覆盖写删除操作,将同一个间接节点下相邻的数据块删除成新的数据块,所述新的数据块中的逻辑位置值为所述相邻的数据块中第一个数据块的逻辑位置值,所述新的数据块的大小为所述相邻的数据块大小的和; 所述删除操作为文件截短操作`,则直接将被截断的数据块中的值清零。
【文档编号】G06F3/06GK103530067SQ201310468322
【公开日】2014年1月22日 申请日期:2013年10月9日 优先权日:2013年10月9日
【发明者】杨小锋 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1