一种大小写不敏感优化方法、介质及系统与流程

文档序号:24181849发布日期:2021-03-09 12:17阅读:82来源:国知局
一种大小写不敏感优化方法、介质及系统与流程

1.本发明涉及存储技术领域,特别是涉及一种大小写不敏感优化方法、介质及系统。


背景技术:

2.大小写不敏感的意思是对大写和小写是区分的,windows对文件名的大小写不敏感,linux系统对文件系统的大小写敏感,为了适应不同客户的需求,提高产品竞争力,开发了大小写不敏感的功能;
3.目前大小写不敏感功能在现场和测试过程中存在较多的问题,其中最突出的问题是内存占用过多的问题,现有申请号为201911121494.8,名称为一种基于大小写不敏感的目录分片方法、装置及存储介质,解决的问题是提高分片查找的效率,对大小写不敏感的优化仍然不够完善。


技术实现要素:

4.本发明主要解决的技术问题是提供一种大小写不敏感优化方法、介质及系统,能够解决大小写不敏感功能在现场和测试过程中的内存占用过多问题。
5.为解决上述技术问题,本发明采用的一个技术方案是:提供一种大小写不敏感优化方法,包括:
6.设置目录加载端和数据老化端;
7.根据目录加载端和数据老化端进行老化机制;
8.所述老化机制为所述数据老化端检测所述目标加载端是否设置状态标志位;
9.设置目录分片过程与分片查找过程;根据目录分片过程中设置的索引节点,判断目录是否为新建目录,若为新建目录,则通过分片查找过程计算大写目录名的哈希值,根据哈希值查找到对应的目录分片。
10.进一步,所述老化机制包括以下步骤:
11.s101,目录加载端设置状态标志位;
12.s102,目录加载端加载目录下所有目录项到命名组中,并设置完成标志;
13.s103,若所述数据老化端检测到所述目标加载端未设置状态标志位,则进行数据老化步骤;若所述数据老化端检测到所述目标加载端设置状态标志位,则在目录加载端的命名组中查找所有目录项的目录名;
14.s104,目录加载端删除状态标志位。
15.进一步,所述数据老化步骤为将加载到命名组中的目录项删除并取消完成标志。
16.进一步,所述目录分片过程包括:
17.s201,新建目录并在索引节点中增加字段;
18.s202,判断目录分片中大写相同的目录项的个数;
19.s203,目录项的目录名全部转化为大写,并对大写目录名使用哈希算法进行目录分片。
20.进一步,所述目录分片查找过程包括以下步骤:
21.s301,根据索引节点中的增加的字段判断是否为新建目录,如果不是新建目录,则加载索引节点下所有目录分片;
22.s302,若是新建目录,则计算大写目录名的哈希值;
23.s303,根据哈希值查找到对应的目录分片,并加载;
24.s304,返回查找结果,如果存在剩余的目录名,将剩余的目录名插入到命名组中。
25.一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特征在于:计算机程序被处理器执行时实现如上述所述的一种大小写不敏感优化方法的步骤。
26.一种大小写不敏感优化系统,包括:目录加载单元、数据老化单元、目录分片单元和分片查找单元;
27.所述目录加载单元设置状态标志位,并加载目录下的所有目录项到命名组中,加载完成后设置完成标志,在命名组中查找所有目录项的目录名,查找结束删除标志位;
28.所述数据老化单元检测所述目录加载单元是否设置标志位,若所述目录加载单元未设置标志位则将加载到命名组中的目录项删除,取消完成标志。
29.所述目录分片单元新建目录并在该系统索引节点中增加字段标识,判断该系统索引节点下目录分片中大写相同的目录项个数,根据目录项个数将目录项名字转化为大写,对大写的目录项名字使用哈希进行分片;
30.所述分片查找单元根据所述目录分片单元增加的字段标识判断是否为新建目录,若是,则计算大写名称的哈希值,根据哈希值得到对应的目录分片并加载。
31.本发明的有益效果是:本发明通过大小写不敏感功能中增加老化机制、并且和目录分片相结合的方法,弥补了之前优化方法的不足,降低了大小写不敏感功能对内存的占用,与之前的优化方法相比,提高了查找效率和正确性,增强了系统的稳定性,提高了产品的竞争力。
附图说明
32.图1是本发明一种大小写不敏感优化方法一较佳实施例的流程图;
33.图2是本发明一种大小写不敏感优化系统架构图。
具体实施方式
34.下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
35.本发明实施例包括:
36.见图1,一种大小写不敏感优化方法,包括:
37.设置目录加载端和数据老化端;
38.目录加载端和数据老化端进行老化机制,老化机制保证加载到内存中的inode等信息,在查找完成之后会定期的衰减;
39.同时将大小写不敏感功能和目录分片功能结合,在加载目录时,通过dname得到对应的目录分片,只需加载dname对应的目录分片即可。
40.老化机制包括以下步骤:
41.s101,在目录加载端设置标志位cdir:state_cannot_delete_lsit;
42.s102,在目录加载端加载目录下的所有目录项到name_iteams,设置完成标志complite;
43.s102步骤中,加载目录下的所有目录项到name_iteams,先加载才能够查找,如果不加载,可能找不到,与实际结果不符;加载就是从硬盘加载到内存,内存中的数据会按照一定规则删除。
44.s103,在数据老化端检测标志位cdir:state_cannot_delete_lsit,如果未检测标志位cdir:state_cannot_delete_lsit,则将加载到name_iteams中的目录项删除;取消complite标志,并重新进行s101步骤;如果检测到标志位cdir:state_cannot_delete_lsit,则在目录加载端的name_iteams中查找所有目录项的dname;
45.s104,查找结束后,目录加载端删除标志位cdir:state_cannot_delete_lsit。
46.将大小写不敏感功能和目录分片功能结合包括目录分片过程、目录分片查找过程,目录分片过程包括以下步骤:
47.s201,新建目录采用新的分片方式,老版本目录采用老的分片方式,并在inode中增加字段,区分新旧版本;
48.s202,进行目录分片之前,判断目录分片中大写相同的目录项的个数;比如:abc、abc、abc,将为大写相同的目录项,abc、abc、abc转化为大写都为abc,所以叫大写相同的目录项;
49.s203,进行目录分片,dname全部转化为大写,dname全部转化为大写时,比如说目录下有文件abc,此时如果再在目录下创建文件abc是不成功的,创建之前客户端首先会向mds发送消息,进行查找是否有abc,如果有,就不再创建了;对大写dname使用hash进行分片。
50.目录分片查找过程包括以下步骤:
51.s301,判断inode中的版本标识是否为新建目录,如果不是,则加载inode下的所有分片;
52.s302,若是,则计算大写dname的hash值;
53.s303,根据hash值得到对应的目录分片,并加载;
54.s304,返回查找结果,如果存在剩余的dname,插入到name_iteam中。
55.其中,name_iteam指新增一个文件时,会将大写文件名作为key,文件名插入到value中,value为set容器;
56.name_iteam是一个map对象,比如创建文件abc,abc,name_iteam<abc,set<abc和abc>>,stl容器map中,abc叫做key,set叫做value,set里面包含两个对象abc和abc;
57.dname为目录项的名字;
58.inode为文件系统中的一个索引节点,包含相关的属性(mtime、ctime等)和扩展属性信息;
59.hash为哈希值;
60.mds_bal_size_again为目录分片参数,目录下目录项的个数达到mds_bal_size_again时,则进行目录分片;比如目录下有9500个目录项,mds_bal_size_again=1000,则该目录会分为10个目录分片,每个目录分片下大约有950个目录项。
61.一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述大小写不敏感优化方法的步骤。
62.见图2,基于与前述实施例中一种大小写不敏感优化方法同样的发明构思,本说明书实施例还提供一种大小写不敏感优化系统,包括:目录加载单元、数据老化单元、目录分片单元和分片查找单元;
63.所述目录加载单元设置状态标志位,并加载目录下的所有目录项到命名组中,加载完成后设置完成标志,在命名组中查找所有目录项的目录名,查找结束删除标志位;
64.所述数据老化单元检测所述目录加载单元是否设置标志位,若所述目录加载单元未设置标志位则将加载到命名组中的目录项删除,取消完成标志。
65.所述目录分片单元新建目录并在该系统索引节点中增加字段标识,判断该系统索引节点下目录分片中大写相同的目录项个数,根据目录项个数将目录项名字转化为大写,对大写的目录项名字使用哈希进行分片;
66.所述分片查找单元根据所述目录分片单元增加的字段标识判断是否为新建目录,若是,则计算大写名称的哈希值,根据哈希值得到对应的目录分片并加载。
67.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1