一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

目录的处理方法和装置、存储介质及处理器与流程

2022-07-02 14:16:45 来源:中国专利 TAG:


1.本技术涉及分布式文件存储技术领领域,具体而言,涉及一种目录的处理方法和装置、存储介质及处理器。


背景技术:

2.随着网络技术的快速发展,各种网络应用对于存储的需求越来越大。为了提高存储效率,提出了分布式文件系统。linux定义了readdir等接口以读取分布式文件系统的目录内容。在查询目录时,通过目录项的偏移位置来读取目录项。读取目录项的过程一般为:第一次readdir指定偏移位置为0,后续的readdir指定偏移位置为上次返回的最后一个目录项的偏移位置,直到返回的目录项列表为空。对于基于键值存储的文件系统,使用索引节点编号作为目录项的偏移位置。但是这种方式存在一些问题:同一索引节点可能对应着多个目录项,根据索引节点编号,不能准确查询得到想要的目录项。
3.针对相关技术中使用索引节点编号作为目录项的偏移位置,由于同一索引节点编号可能对应着多个目录项,导致读取目录项的准确性较低的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本技术的主要目的在于提供一种目录的处理方法和装置、存储介质及处理器,以解决相关技术中使用索引节点编号作为目录项的偏移位置,由于同一索引节点编号可能对应着多个目录项,导致读取目录项的准确性较低的问题。
5.为了实现上述目的,根据本技术的一个方面,提供了一种目录的处理方法。该方法包括:获取目标文件对应的目标键,其中,所述目标键包括:目录标识符,所述目标文件的目标文件名对应的目标哈希值和所述目标文件名;获取所述目标文件对应的目标目录项,其中,所述目标目录项至少包括:所述目标目录项的目标编号和索引节点编号,所述索引节点编号用于标识所述目标文件;将所述目标哈希值和所述目标编号作为所述目标目录项的目标偏移位置,其中,所述目标偏移位置用于在读取目标目录时对所述目标目录项进行定位;以所述目标键为键,所述目标目录项为值,得到目标键值对,并通过所述目标键值对组建所述目标目录,其中,所述目标目录存储至目标数据库中。
6.进一步地,获取所述目标文件对应的目标目录项包括:查询所述目标哈希值对应的目标键值对的第一目录项,得到查询结果;若所述查询结果为空,则所述目标编号为预设数值一;若所述查询结果非空,则确定所述查询结果中的第一目录项的最大编号;将所述最大编号加一,得到预设数值二,则所述预设数值二为所述目标编号;获取所述索引节点编号,并将所述目标编号和所述索引节点编号作为所述目标目录项。
7.进一步地,获取目标文件对应的目标键,包括:获取所述目标文件的目录标识符,其中,所述目录标识符用于标识所述目标目录;获取所述目标文件的目标文件名,并对所述目标文件名进行哈希计算,得到所述目标哈希值;将所述目录标识符,所述目标哈希值和所
述目标文件名作为所述目标键。
8.进一步地,在通过所述目标键值对组建所述目标目录之后,所述方法还包括:获取所述目标文件的查询请求一,其中,所述查询请求中至少包括:所述目标文件的目标文件名和所述目录标识符;计算所述目标文件名对应的目标哈希值,在所述目录标识符对应的目标目录中查询所述目标哈希值对应的第二目录项;依据所述第二目录项的目标编号对所述第二目录项进行排序,得到目标集合一;将所述目标集合一反馈至目标对象。
9.进一步地,通过所述目标键值对组建所述目标目录之后,所述方法还包括:获取所述目标目录的查询请求二,其中,所述查询请求二中至少包括:所述目录标识符和初始偏移位置,所述初始偏移位置为预设数值三;依据所述目录标识符,在所述目标数据库中查询到所述目标目录;从所述目标目录的第一个键值对中的目录项开始读取,得到目标集合二,其中,所述目标集合二中至少包括:所述目标目录中的所有目录项和所述目标目录中的所有目录项对应的偏移位置;将所述目标集合二反馈至目标对象。
10.进一步地,从所述目标目录的第一个键值对中的目录项开始读取,得到目标集合二包括:从所述目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三目录项和所述第三目录项对应的偏移位置,其中,所述第三目录项对应的偏移位置大于等于所述初始偏移位置;将所述第三目录项中的最后一个目录项对应的偏移位置作为所述初始偏移位置;依据所述初始偏移位置,在所述目标目录中读取目录项,得到预设数量的第四目录项和所述第四目录项对应的偏移位置,其中,所述第四目录项对应的偏移位置大于所述初始偏移位置;继续执行将所述第四目录项中的最后一个目录项对应的偏移位置作为所述初始偏移位置的步骤,直至所述目标目录中的所有目录项均被读取;将所述目标目录中的所有目录项和所述目标目录中的所有目录项对应的偏移位置作为所述目标集合二。
11.进一步地,从所述目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三目录项和所述第三目录项对应的偏移位置包括:依据所述目标目录的第一键值对确定所述第一键值对中的目录项对应的第一偏移位置;判断所述第一偏移位置是否大于等于所述初始偏移位置;若所述第一偏移位置大于等于所述初始偏移位置,则所述第一键值对中的目录项为所述第三目录项;继续执行依据所述目标目录的第二键值对确定所述第二键值对中的目录项对应的第二偏移位置的步骤,直至得到所述预设数量的第三目录项和所述第三目录项对应的偏移位置,或所述目标目录的所有目录项均被读取。
12.为了实现上述目的,根据本技术的另一方面,提供了一种目录的处理装置。该装置包括:第一获取单元,用于获取目标文件对应的目标键,其中,所述目标键包括:目录标识符,所述目标文件的目标文件名对应的目标哈希值和所述目标文件名;第二获取单元,用于获取所述目标文件对应的目标目录项,其中,所述目标目录项至少包括:所述目标目录项的目标编号和索引节点编号,所述索引节点编号用于标识所述目标文件;确定单元,用于将所述目标哈希值和所述目标编号作为所述目标目录项的目标偏移位置,其中,所述目标偏移位置用于在读取目标目录时对所述目标目录项进行定位;组建单元,用于以所述目标键为键,所述目标目录项为值,得到目标键值对,并通过所述目标键值对组建所述目标目录,其中,所述目标目录存储至目标数据库中。
13.进一步地,所述第二获取单元包括:查询模块,用于查询所述目标哈希值对应的目标键值对的第一目录项,得到查询结果;第一确定模块,用于若所述查询结果为空,则所述
目标编号为预设数值一;第二确定模块,用于若所述查询结果非空,则确定所述查询结果中的第一目录项的最大编号;第三确定模块,用于将所述最大编号加一,得到预设数值二,则所述预设数值二为所述目标编号;第一获取模块,用于获取所述索引节点编号,并将所述目标编号和所述索引节点编号作为所述目标目录项。
14.进一步地,所述第一获取单元包括:第二获取模块,用于获取所述目标文件的目录标识符,其中,所述目录标识符用于标识所述目标目录;计算模块,用于获取所述目标文件的目标文件名,并对所述目标文件名进行哈希计算,得到所述目标哈希值;第四确定模块,用于将所述目录标识符,所述目标哈希值和所述目标文件名作为所述目标键。
15.进一步地,所述装置还包括:第三获取单元,用于在通过所述目标键值对组建所述目标目录之后,获取所述目标文件的查询请求一,其中,所述查询请求中至少包括:所述目标文件的目标文件名和所述目录标识符;计算单元,用于计算所述目标文件名对应的目标哈希值,在所述目录标识符对应的目标目录中查询所述目标哈希值对应的第二目录项;排序单元,用于依据所述第二目录项的目标编号对所述第二目录项进行排序,得到目标集合一;第一反馈单元,用于将所述目标集合一反馈至目标对象。
16.进一步地,所述装置还包括:第四获取单元,用于通过所述目标键值对组建所述目标目录之后,获取所述目标目录的查询请求二,其中,所述查询请求二中至少包括:所述目录标识符和初始偏移位置,所述初始偏移位置为预设数值三;查询单元,用于依据所述目录标识符,在所述目标数据库中查询到所述目标目录;读取单元,用于从所述目标目录的第一个键值对中的目录项开始读取,得到目标集合二,其中,所述目标集合二中至少包括:所述目标目录中的所有目录项和所述目标目录中的所有目录项对应的偏移位置;第二反馈单元,用于将所述目标集合二反馈至目标对象。
17.进一步地,所述读取单元包括:第一读取模块,用于从所述目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三目录项和所述第三目录项对应的偏移位置,其中,所述第三目录项对应的偏移位置大于等于所述初始偏移位置;第五确定模块,用于将所述第三目录项中的最后一个目录项对应的偏移位置作为所述初始偏移位置;第二读取模块,用于依据所述初始偏移位置,在所述目标目录中读取目录项,得到预设数量的第四目录项和所述第四目录项对应的偏移位置,其中,所述第四目录项对应的偏移位置大于所述初始偏移位置;执行模块,用于继续执行将所述第四目录项中的最后一个目录项对应的偏移位置作为所述初始偏移位置的步骤,直至所述目标目录中的所有目录项均被读取;第六确定模块,用于将所述目标目录中的所有目录项和所述目标目录中的所有目录项对应的偏移位置作为所述目标集合二。
18.进一步地,所述第一读取模块包括:第一确定子模块,用于依据所述目标目录的第一键值对确定所述第一键值对中的目录项对应的第一偏移位置;判断子模块,用于判断所述第一偏移位置是否大于等于所述初始偏移位置;第二确定子模块,用于若所述第一偏移位置大于等于所述初始偏移位置,则所述第一键值对中的目录项为所述第三目录项;执行子模块继续执行依据所述目标目录的第二键值对确定所述第二键值对中的目录项对应的第二偏移位置的步骤,直至得到所述预设数量的第三目录项和所述第三目录项对应的偏移位置,或所述目标目录的所有目录项均被读取。
19.为了实现上述目的,根据本技术的另一方面,提供了一种计算机可读存储介质,所
述存储介质存储程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的目录的处理方法。
20.为了实现上述目的,根据本技术的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的目录的处理方法。
21.通过本技术,采用以下步骤:获取目标文件对应的目标键,其中,目标键包括:目录标识符,目标文件的目标文件名对应的目标哈希值和目标文件名;获取目标文件对应的目标目录项,其中,目标目录项至少包括:目标目录项的目标编号和索引节点编号,索引节点编号用于标识目标文件;将目标哈希值和目标编号作为目标目录项的目标偏移位置,其中,目标偏移位置用于在读取目标目录时对目标目录项进行定位;以目标键为键,目标目录项为值,得到目标键值对,并通过目标键值对组建目标目录,其中,目标目录存储至目标数据库中,解决了相关技术中使用索引节点编号作为目录项的偏移位置,由于同一索引节点编号可能对应着多个目录项,导致读取目录项的准确性较低的问题。通过目录标识符,目标文件的目标文件名对应的目标哈希值和目标文件名作为目标键,目标目录项作为值,得到目标键值对,并通过目标键值对组建目标目录,然后将目标哈希值和目标编号作为目标目录项的目标偏移位置,在进行目录查询时,可以根据目标偏移位置准确读取目标目录中的目录项,进而达到了提高读取目录项的准确性的效果。
附图说明
22.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
23.图1是根据本技术实施例提供的目录的处理方法的流程图;
24.图2是根据本技术实施例提供的目录的处理装置的示意图。
具体实施方式
25.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
26.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
27.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
28.下面结合优选的实施步骤对本发明进行说明,图1是根据本技术实施例提供的目录的处理方法的流程图,如图1所示,该方法包括如下步骤:
29.步骤s101,获取目标文件对应的目标键,其中,目标键包括:目录标识符,目标文件的目标文件名对应的目标哈希值和目标文件名。
30.具体地,通过目标标识符,目标文件名和目标文件名对应的哈希值构建目标文件对应的目标键。例如,目标文件file1,file1对应的哈希值为file1=》584b61,目录标识符为90b9,所以对应得到的目标键为d90b9 584b61 file1。
31.步骤s102,获取目标文件对应的目标目录项,其中,目标目录项至少包括:目标目录项的目标编号和索引节点编号,索引节点编号用于标识目标文件。
32.具体地,得到目标文件对应的目标目录项,目标目录项需要包括目标目录项的目标编号和索引节点编号。例如,目标目录项的目标编号为0,索引节点编号为0x90ba,那么对应的目标目录项为{serial=0,inode=0x90ba,...}。
33.步骤s103,将目标哈希值和目标编号作为目标目录项的目标偏移位置,其中,目标偏移位置用于在读取目标目录时对目标目录项进行定位。
34.具体地,将上述的目标哈希值和目标编号组建为目标目录项的目标偏移位置。例如,采用24位的目标哈希值和8位的目标编号为目标目录项的目标偏移位置,上述的目标目录项的偏移位置为584b6100。需要说明的是目标哈希值和目标编号的位数可以根据实际情况进行设置。
35.步骤s104,以目标键为键,目标目录项为值,得到目标键值对,并通过目标键值对组建目标目录,其中,目标目录存储至目标数据库中。
36.具体地,以目标键为键,目标目录项为值,组建目标键值对。例如,目标键为d90b9584b61 file1,目标目录项为{serial=0,inode=0x90ba,...},那么对应的目标键值对为d 90b9 584b61 file1
‑‑
》{serial=0,inode=0x90ba,...}。目标目录的键值对是按键的大小排好序的,键可以是任意长度的字符串,某一目录中的键值对如下所示:
37.d 90b9 584b61 file1
‑‑
》{serial=0,inode=0x90ba,...}
38.d 90b9 584b61 filex
‑‑
》{serial=1,inode=0x90c1,...}
39.d 90b9 584c11 file2
‑‑
》{serial=0,inode=0x90bb,...}
40.d 90b9 584cc1 file3
‑‑
》{serial=0,inode=0x90bc,...}
41.d 90b9 584d71 file4
‑‑
》{serial=0,inode=0x90bd,...}。
42.综上所述,通过目录标识符,目标文件的目标文件名对应的目标哈希值和目标文件名作为目标键,目标目录项作为值,得到目标键值对,并通过目标键值对组建目标目录,然后将目标哈希值和目标编号作为目标目录项的目标偏移位置,在进行目录查询时,可以根据目标偏移位置准确读取目标目录中的目录项,提高了读取目录项的准确性。
43.可选地,在本技术实施例提供的目录的处理方法中,获取目标文件对应的目标目录项包括:查询目标哈希值对应的目标键值对的第一目录项,得到查询结果;若查询结果为空,则目标编号为预设数值一;若查询结果非空,则确定查询结果中的第一目录项的最大编号;将最大编号加一,得到预设数值二,则预设数值二为目标编号;获取索引节点编号,并将目标编号和索引节点编号作为目标目录项。
44.具体地,根据目标文件名计算出目标哈希值,然后查询该目标哈希值下当前存在的所有目录项。如果查询结果为空,那么目标目录项的目标编号为0(即上述预设数值一);如果查询结果非空,那么目标目录项的目标编号为已存在的目标编号的最大值 1。然后获
取索引节点编号,并将目标编号和索引节点编号作为目标目录项。通过上述步骤,当哈希值相同的情况下,通过目标编号能够准确区分不同的目录项。
45.可选地,在本技术实施例提供的目录的处理方法中,获取目标文件对应的目标键,包括:获取目标文件的目录标识符,其中,目录标识符用于标识目标目录;获取目标文件的目标文件名,并对目标文件名进行哈希计算,得到目标哈希值;将目录标识符,目标哈希值和目标文件名作为目标键。
46.具体地,目标键的获取包括:获取目标文件的目录标识符,然后通过哈希算法对目标文件名进行哈希计算,得到目标哈希值,然后将目录标识符,目标哈希值和目标文件名作为目标键。哈希算法可以将不固定长度的字符串映射为固定长度的二进制串,这个固定长度的二进制串就是目标哈希值,目标哈希值具有稳定和可靠的特性。
47.可选地,在本技术实施例提供的目录的处理方法中,在通过目标键值对组建目标目录之后,该方法还包括:获取目标文件的查询请求一,其中,查询请求中至少包括:目标文件的目标文件名和目录标识符;计算目标文件名对应的目标哈希值,在目录标识符对应的目标目录中查询目标哈希值对应的第二目录项;依据第二目录项的目标编号对第二目录项进行排序,得到目标集合一;将目标集合一反馈至目标对象。
48.具体地,当需要查询目标文件时,获取目标文件的查询请求一,查询请求一中需要包括目标文件的目标文件名和目录标识符,由目标文件名计算出目标哈希值,然后在目录标识符对应的目标目录中查询目标哈希值对应的键值对中的第二目录项,第二目录项可能是一个,也可能是多个,如果是多个第二目录项,那么根据第二目录项的目标编号对第二目录项进行排序处理,得到目标集合一,再将目标集合一反馈给查询人员(即上述目标对象)。通过上述步骤,能够准确查询得到目标文件。
49.可选地,在本技术实施例提供的目录的处理方法中,该方法还包括:获取目标目录的查询请求二,其中,查询请求二中至少包括:目录标识符和初始偏移位置,初始偏移位置为预设数值三;依据目录标识符,在目标数据库中查询到目标目录;从目标目录的第一个键值对中的目录项开始读取,得到目标集合二,其中,目标集合二中至少包括:目标目录中的所有目录项和目标目录中的所有目录项对应的偏移位置;将目标集合二反馈至目标对象。
50.具体地,当需要查询目标目录中都有哪些目录项时,获取目标目录的查询请求二,查询请求二中需要包括目录标识符和初始偏移位置。在查询时不知道有哪些目录项,也不知道目录项的偏移位置(offset)时,那么就使用offset=0(即上述预设数值三),也就是从目录的第一项开始读取。根据目录标识符找到对应的目标目录,从目标目录的第一键值对中的目录项开进行读取,得到目标集合二,然后将目标集合二反馈给查询人员。例如,目标集合二包括:
51.name=file1 offset=584b6100;
52.name=filex offset=584b6101;
53.name=file2 offset=584c1100;
54.name=file3 offset=584cc100;
55.name=file4 offset=584d7100。
56.通过上述步骤,能够准确查询得到目标目录中的所有目录项。
57.可选地,在本技术实施例提供的目录的处理方法中,从目标目录的第一个键值对
中的目录项开始读取,得到目标集合二包括:从目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三目录项和第三目录项对应的偏移位置,其中,第三目录项对应的偏移位置大于等于初始偏移位置;将第三目录项中的最后一个目录项对应的偏移位置作为初始偏移位置;依据初始偏移位置,在目标目录中读取目录项,得到预设数量的第四目录项和第四目录项对应的偏移位置,其中,第四目录项对应的偏移位置大于初始偏移位置;继续执行将第四目录项中的最后一个目录项对应的偏移位置作为初始偏移位置的步骤,直至目标目录中的所有目录项均被读取;将目标目录中的所有目录项和目标目录中的所有目录项对应的偏移位置作为目标集合二。
58.具体地,以下述目录为例,对得到目标集合二进行说明:
59.d 90b9 584b61 file1
‑‑
》{serial=0,inode=0x90ba,...}
60.d 90b9 584b61 filex
‑‑
》{serial=1,inode=0x90c1,...}
61.d 90b9 584c11 file2
‑‑
》{serial=0,inode=0x90bb,...}
62.d 90b9 584cc1 file3
‑‑
》{serial=0,inode=0x90bc,...}
63.d 90b9 584d71 file4
‑‑
》{serial=0,inode=0x90bd,...}
64.假设一次返回2个目录项,那么读目录的过程如下:
65.第一次调用:
66.客户端:readdir(dirid=90b9,offset=0)
67.服务器:offset=0=》hash_index=0,serial=0
68.从第一个大于等于d90b9000000的键开始读:
69.d 90b9 584b61 file1=》name=file1 offset=584b6100,大于传入的offset,返回该目录项;
70.d 90b9 584b61 filex=》name=filex offset=584b6101,大于传入的offset,返回该目录项;
71.得到第三目录项和第三目录项的偏移位置:
72.name=file1 offset=584b6100
73.name=filex offset=584b6101。
74.第二次调用:
75.客户端:readdir(dirid=90b9,offset=584b6101)//使用上次返回的最后一个文件的offset作为本次调用的offset;
76.服务器:offset=584b6101=》hash_index=584b61,serial=1;
77.从第一个大于等于d90b9584b61的键开始读:
78.d 90b9 584b61 file1=》name=file1 offset=584b6100,小于传入的offset,跳过
79.d 90b9 584b61 filex=》name=filex offset=584b6101,等于传入的offset,跳过
80.d 90b9 584c11 file2=》name=file2 offset=584c1100,大于传入的offset,返回
81.d 90b9 584cc1 file3=》name=file2 offset=584cc100,大于传入的offset,返回
82.得到第四目录项和第四目录项的偏移位置:
83.name=file2 offset=584c1100
84.name=file3 offset=584cc100。
85.第三次调用:
86.客户端:readdir(dirid=90b9,offset=584cc100)
87.服务器:offset=584cc100=》hash_index=584cc1,serial=0
88.从第一个大于等于d90b9584cc1的键开始读:
89.d 90b9 584cc1 file3=》name=file3 offset=584cc100,等于传入的offset,跳过
90.d 90b9 584d71 file4=》name=file4 offset=584d7100,等于传入的offset,返回
91.此时目录中的所有目录项均已被读取,退出;
92.由于只有一个目录项,可以确认已读到目录的结尾,那么对应的目标集合二为:
93.name=file1 offset=584b6100;
94.name=filex offset=584b6101;
95.name=file2 offset=584c1100;
96.name=file3 offset=584cc100;
97.name=file4 offset=584d7100。
98.通过上述过程,通过偏移位置实现对目录项的准确定位,而且当某一目录项被删除后,通过偏移位置仍能够准确地定位到下一条待读取的目录项。
99.可选地,在本技术实施例提供的目录的处理方法中,从目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三目录项和第三目录项对应的偏移位置包括:依据目标目录的第一键值对确定第一键值对中的目录项对应的第一偏移位置;判断第一偏移位置是否大于等于初始偏移位置;若第一偏移位置大于等于初始偏移位置,则第一键值对中的目录项为第三目录项;继续执行依据目标目录的第二键值对确定第二键值对中的目录项对应的第二偏移位置的步骤,直至得到预设数量的第三目录项和第三目录项对应的偏移位置,或目标目录的所有目录项均被读取。
100.具体地,读取第三目录项和第三目录项对应的偏移位置包括:查询到目标目录的第一键值对,然后根据第一键值对确定第一键值对中的目录项对应的第一偏移位置,当第一偏移位置大于等于初始偏移位置时,则第一键值对中的目录项为第三目录项,依据上述的方法得到预设数量的第三目录项和第三目录项对应的偏移位置。
101.本技术实施例提供的目录的处理方法,通过获取目标文件对应的目标键,其中,目标键包括:目录标识符,目标文件的目标文件名对应的目标哈希值和目标文件名;获取目标文件对应的目标目录项,其中,目标目录项至少包括:目标目录项的目标编号和索引节点编号,索引节点编号用于标识目标文件;将目标哈希值和目标编号作为目标目录项的目标偏移位置,其中,目标偏移位置用于在读取目标目录时对目标目录项进行定位;以目标键为键,目标目录项为值,得到目标键值对,并通过目标键值对组建目标目录,其中,目标目录存储至目标数据库中,解决了相关技术中使用索引节点编号作为目录项的偏移位置,由于同一索引节点编号可能对应着多个目录项,导致读取目录项的准确性较低的问题。通过目录
标识符,目标文件的目标文件名对应的目标哈希值和目标文件名作为目标键,目标目录项作为值,得到目标键值对,并通过目标键值对组建目标目录,然后将目标哈希值和目标编号作为目标目录项的目标偏移位置,在进行目录查询时,可以根据目标偏移位置准确读取目标目录中的目录项,进而达到了提高读取目录项的准确性的效果。
102.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
103.本技术实施例还提供了一种目录的处理装置,需要说明的是,本技术实施例的目录的处理装置可以用于执行本技术实施例所提供的用于目录的处理方法。以下对本技术实施例提供的目录的处理装置进行介绍。
104.图2是根据本技术实施例的目录的处理装置的示意图。如图2所示,该装置包括:第一获取单元201,第二获取单元202,确定单元203和组建单元204。
105.第一获取单元201,用于获取目标文件对应的目标键,其中,目标键包括:目录标识符,目标文件的目标文件名对应的目标哈希值和目标文件名。
106.第二获取单元202,用于获取目标文件对应的目标目录项,其中,目标目录项至少包括:目标目录项的目标编号和索引节点编号,索引节点编号用于标识目标文件。
107.确定单元203,用于将目标哈希值和目标编号作为目标目录项的目标偏移位置,其中,目标偏移位置用于在读取目标目录时对目标目录项进行定位。
108.组建单元204,用于以目标键为键,目标目录项为值,得到目标键值对,并通过目标键值对组建目标目录,其中,目标目录存储至目标数据库中。
109.本技术实施例提供的目录的处理装置,通过第一获取单元201获取目标文件对应的目标键,其中,目标键包括:目录标识符,目标文件的目标文件名对应的目标哈希值和目标文件名;第二获取单元202获取目标文件对应的目标目录项,其中,目标目录项至少包括:目标目录项的目标编号和索引节点编号,索引节点编号用于标识目标文件;确定单元203将目标哈希值和目标编号作为目标目录项的目标偏移位置,其中,目标偏移位置用于在读取目标目录时对目标目录项进行定位;组建单元204以目标键为键,目标目录项为值,得到目标键值对,并通过目标键值对组建目标目录,其中,目标目录存储至目标数据库中,解决了相关技术中使用索引节点编号作为目录项的偏移位置,由于同一索引节点编号可能对应着多个目录项,导致读取目录项的准确性较低的问题。通过目录标识符,目标文件的目标文件名对应的目标哈希值和目标文件名作为目标键,目标目录项作为值,得到目标键值对,并通过目标键值对组建目标目录,然后将目标哈希值和目标编号作为目标目录项的目标偏移位置,在进行目录查询时,可以根据目标偏移位置准确读取目标目录中的目录项,进而达到了提高读取目录项的准确性的效果。
110.可选地,在本技术实施例提供的目录的处理装置中,第二获取单元202包括:查询模块,用于查询目标哈希值对应的目标键值对的第一目录项,得到查询结果;第一确定模块,用于若查询结果为空,则目标编号为预设数值一;第二确定模块,用于若查询结果非空,则确定查询结果中的第一目录项的最大编号;第三确定模块,用于将最大编号加一,得到预设数值二,则预设数值二为目标编号;第一获取模块,用于获取索引节点编号,并将目标编号和索引节点编号作为目标目录项。
111.可选地,在本技术实施例提供的目录的处理装置中,第一获取单元包括:第二获取模块,用于获取目标文件的目录标识符,其中,目录标识符用于标识目标目录;计算模块,用于获取目标文件的目标文件名,并对目标文件名进行哈希计算,得到目标哈希值;第四确定模块,用于将目录标识符,目标哈希值和目标文件名作为目标键。
112.可选地,在本技术实施例提供的目录的处理装置中,该装置还包括:第三获取单元,用于在通过目标键值对组建目标目录之后,获取目标文件的查询请求一,其中,查询请求中至少包括:目标文件的目标文件名和目录标识符;计算单元,用于计算目标文件名对应的目标哈希值,在目录标识符对应的目标目录中查询目标哈希值对应的第二目录项;排序单元,用于依据第二目录项的目标编号对第二目录项进行排序,得到目标集合一;第一反馈单元,用于将目标集合一反馈至目标对象。
113.可选地,在本技术实施例提供的目录的处理装置中,该装置还包括:第四获取单元,用于通过目标键值对组建目标目录之后,获取目标目录的查询请求二,其中,查询请求二中至少包括:目录标识符和初始偏移位置,初始偏移位置为预设数值三;查询单元,用于依据目录标识符,在目标数据库中查询到目标目录;读取单元,用于从目标目录的第一个键值对中的目录项开始读取,得到目标集合二,其中,目标集合二中至少包括:目标目录中的所有目录项和目标目录中的所有目录项对应的偏移位置;第二反馈单元,用于将目标集合二反馈至目标对象。
114.可选地,在本技术实施例提供的目录的处理装置中,读取单元包括:第一读取模块,用于从目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三目录项和第三目录项对应的偏移位置,其中,第三目录项对应的偏移位置大于等于初始偏移位置;第五确定模块,用于将第三目录项中的最后一个目录项对应的偏移位置作为初始偏移位置;第二读取模块,用于依据初始偏移位置,在目标目录中读取目录项,得到预设数量的第四目录项和第四目录项对应的偏移位置,其中,第四目录项对应的偏移位置大于初始偏移位置;执行模块,用于继续执行将第四目录项中的最后一个目录项对应的偏移位置作为初始偏移位置的步骤,直至目标目录中的所有目录项均被读取;第六确定模块,用于将目标目录中的所有目录项和目标目录中的所有目录项对应的偏移位置作为目标集合二。
115.可选地,在本技术实施例提供的目录的处理装置中,第一读取模块包括:第一确定子模块,用于依据目标目录的第一键值对确定第一键值对中的目录项对应的第一偏移位置;判断子模块,用于判断第一偏移位置是否大于等于初始偏移位置;第二确定子模块,用于若第一偏移位置大于等于初始偏移位置,则第一键值对中的目录项为第三目录项;执行子模块继续执行依据目标目录的第二键值对确定第二键值对中的目录项对应的第二偏移位置的步骤,直至得到预设数量的第三目录项和第三目录项对应的偏移位置,或目标目录的所有目录项均被读取。
116.所述目录的处理装置包括处理器和存储器,上述第一获取单元201,第二获取单元202,确定单元203和组建单元204等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
117.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现对目录的准确查询。
118.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/
或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
119.本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述目录的处理方法。
120.本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述目录的处理方法。
121.本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取目标文件对应的目标目录项,其中,目标目录项至少包括:目标目录项的目标编号和索引节点编号,索引节点编号用于标识目标文件;将目标哈希值和目标编号作为目标目录项的目标偏移位置,其中,目标偏移位置用于在读取目标目录时对目标目录项进行定位;以目标键为键,目标目录项为值,得到目标键值对,并通过目标键值对组建目标目录,其中,目标目录存储至目标数据库中。
122.可选地,获取目标文件对应的目标目录项包括:查询目标哈希值对应的目标键值对的第一目录项,得到查询结果;若查询结果为空,则目标编号为预设数值一;若查询结果非空,则确定查询结果中的第一目录项的最大编号;将最大编号加一,得到预设数值二,则预设数值二为目标编号;获取索引节点编号,并将目标编号和索引节点编号作为目标目录项。
123.可选地,获取目标文件对应的目标键,包括:获取目标文件的目录标识符,其中,目录标识符用于标识目标目录;获取目标文件的目标文件名,并对目标文件名进行哈希计算,得到目标哈希值;将目录标识符,目标哈希值和目标文件名作为目标键。
124.可选地,在通过目标键值对组建目标目录之后,该方法还包括:获取目标文件的查询请求一,其中,查询请求中至少包括:目标文件的目标文件名和目录标识符;计算目标文件名对应的目标哈希值,在目录标识符对应的目标目录中查询目标哈希值对应的第二目录项;依据第二目录项的目标编号对第二目录项进行排序,得到目标集合一;将目标集合一反馈至目标对象。
125.可选地,在通过目标键值对组建目标目录之后,该方法还包括:获取目标目录的查询请求二,其中,查询请求二中至少包括:目录标识符和初始偏移位置,初始偏移位置为预设数值三;依据目录标识符,在目标数据库中查询到目标目录;从目标目录的第一个键值对中的目录项开始读取,得到目标集合二,其中,目标集合二中至少包括:目标目录中的所有目录项和目标目录中的所有目录项对应的偏移位置;将目标集合二反馈至目标对象。
126.可选地,从目标目录的第一个键值对中的目录项开始读取,得到目标集合二包括:从目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三目录项和第三目录项对应的偏移位置,其中,第三目录项对应的偏移位置大于等于初始偏移位置;将第三目录项中的最后一个目录项对应的偏移位置作为初始偏移位置;依据初始偏移位置,在目标目录中读取目录项,得到预设数量的第四目录项和第四目录项对应的偏移位置,其中,第四目录项对应的偏移位置大于初始偏移位置;继续执行将第四目录项中的最后一个目录项对应的偏移位置作为初始偏移位置的步骤,直至目标目录中的所有目录项均被读取;将目标目录中的所有目录项和目标目录中的所有目录项对应的偏移位置作为目标集合二。
127.可选地,从目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三
目录项和第三目录项对应的偏移位置包括:依据目标目录的第一键值对确定第一键值对中的目录项对应的第一偏移位置;判断第一偏移位置是否大于等于初始偏移位置;若第一偏移位置大于等于初始偏移位置,则第一键值对中的目录项为第三目录项;继续执行依据目标目录的第二键值对确定第二键值对中的目录项对应的第二偏移位置的步骤,直至得到预设数量的第三目录项和第三目录项对应的偏移位置,或目标目录的所有目录项均被读取。本文中的设备可以是服务器、pc、pad、手机等。
128.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取目标文件对应的目标目录项,其中,目标目录项至少包括:目标目录项的目标编号和索引节点编号,索引节点编号用于标识目标文件;将目标哈希值和目标编号作为目标目录项的目标偏移位置,其中,目标偏移位置用于在读取目标目录时对目标目录项进行定位;以目标键为键,目标目录项为值,得到目标键值对,并通过目标键值对组建目标目录,其中,目标目录存储至目标数据库中。
129.可选地,获取目标文件对应的目标目录项包括:查询目标哈希值对应的目标键值对的第一目录项,得到查询结果;若查询结果为空,则目标编号为预设数值一;若查询结果非空,则确定查询结果中的第一目录项的最大编号;将最大编号加一,得到预设数值二,则预设数值二为目标编号;获取索引节点编号,并将目标编号和索引节点编号作为目标目录项。
130.可选地,获取目标文件对应的目标键,包括:获取目标文件的目录标识符,其中,目录标识符用于标识目标目录;获取目标文件的目标文件名,并对目标文件名进行哈希计算,得到目标哈希值;将目录标识符,目标哈希值和目标文件名作为目标键。
131.可选地,在通过目标键值对组建目标目录之后,该方法还包括:获取目标文件的查询请求一,其中,查询请求中至少包括:目标文件的目标文件名和目录标识符;计算目标文件名对应的目标哈希值,在目录标识符对应的目标目录中查询目标哈希值对应的第二目录项;依据第二目录项的目标编号对第二目录项进行排序,得到目标集合一;将目标集合一反馈至目标对象。
132.可选地,该方法还包括:获取目标目录的查询请求二,其中,查询请求二中至少包括:目录标识符和初始偏移位置,初始偏移位置为预设数值三;依据目录标识符,在目标数据库中查询到目标目录;从目标目录的第一个键值对中的目录项开始读取,得到目标集合二,其中,目标集合二中至少包括:目标目录中的所有目录项和目标目录中的所有目录项对应的偏移位置;将目标集合二反馈至目标对象。
133.可选地,从目标目录的第一个键值对中的目录项开始读取,得到目标集合二包括:从目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三目录项和第三目录项对应的偏移位置,其中,第三目录项对应的偏移位置大于等于初始偏移位置;将第三目录项中的最后一个目录项对应的偏移位置作为初始偏移位置;依据初始偏移位置,在目标目录中读取目录项,得到预设数量的第四目录项和第四目录项对应的偏移位置,其中,第四目录项对应的偏移位置大于初始偏移位置;继续执行将第四目录项中的最后一个目录项对应的偏移位置作为初始偏移位置的步骤,直至目标目录中的所有目录项均被读取;将目标目录中的所有目录项和目标目录中的所有目录项对应的偏移位置作为目标集合二。
134.可选地,从目标目录的第一个键值对中的目录项开始读取,得到预设数量的第三
目录项和第三目录项对应的偏移位置包括:依据目标目录的第一键值对确定第一键值对中的目录项对应的第一偏移位置;判断第一偏移位置是否大于等于初始偏移位置;若第一偏移位置大于等于初始偏移位置,则第一键值对中的目录项为第三目录项;继续执行依据目标目录的第二键值对确定第二键值对中的目录项对应的第二偏移位置的步骤,直至得到预设数量的第三目录项和第三目录项对应的偏移位置,或目标目录的所有目录项均被读取。
135.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
136.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
137.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
138.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
139.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
140.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
141.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
142.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包
括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
143.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
144.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献