System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及大数据,尤其涉及一种目录路径解析方法、装置、设备及介质。
技术介绍
1、在计算机存储系统中,目录路径解析是访问文件或目录时不可或缺的一环。然而,随着存储系统规模的不断扩大和复杂度的增加,路径解析面临着诸多挑战。
2、首先,目录路径解析时延增长问题日益突出。传统的目录路径解析方法需要从根目录逐级访问到目标目录项的权限等属性,对于n级目录结构,需要发起n-1次的路径解析请求。随着目录深度的增加,这种逐级解析的方式导致时延呈线性增长,严重影响了存储系统的访问效率。其次,近根热点问题也不容忽视。由于目录路径解析需要逐级请求,高层目录(如根目录)的访问频率极高,成为后端访问的热点。这不仅加剧了系统负载,还可能导致资源分配不均和性能瓶颈。综上,亟需一种可以解决目录路径解析时延增长、近根热点问题的方法。
技术实现思路
1、本申请实施例的目的在于提出一种目录路径解析方法、装置、设备及介质,以解决现有的目录路径解析时延增长、近根热点问题。
2、为了解决上述技术问题,本申请实施例提供一种目录路径解析方法,采用了如下的技术方案:
3、获取文件系统的目录信息,在元数据客户端内部创建元数据缓存,元数据缓存用于存放目录信息;接收目录路径解析请求,基于目录信息,判断目录路径解析请求所访问的目录是否存在于元数据缓存中;若目录路径解析请求所访问的目录存在于元数据缓存中,则从元数据缓存中获取目录对应的实体标识符;将实体标识符发送给元数据服务端,以通过元数据服务端从键值数据
4、进一步的,在元数据客户端内部创建元数据缓存的步骤,具体包括:
5、从配置中心获取元数据客户端配置信息,根据元数据客户端配置信息,创建元数据缓存。
6、进一步的,目录信息采用哈希表结构存储于元数据缓存中;基于目录信息,判断目录路径解析请求所访问的目录是否存在于元数据缓存中的步骤,具体包括:
7、获取目录路径解析请求中目录路径的各级目录名称;基于目录信息,以目录名称作为检索键,通过哈希查找,判断目录路径的各级目录是否存在于元数据缓存中。
8、进一步的,基于目录信息,以目录名称作为检索键,通过哈希查找,判断目录路径的各级目录是否存在于元数据缓存中的步骤,具体包括:
9、将目录名称作为检索键,对检索键与目录信息的目录名称键进行匹配;若检索键与目录名称键相匹配,则判定目录路径的各级目录存在于元数据缓存中;若检索键与目录名称键不相匹配,则判定目录路径的各级目录不存在于元数据缓存中。
10、进一步的,从元数据缓存中获取目录对应的实体标识符的步骤,具体包括:
11、基于目录路径的目录路径信息,采用哈希算法对目录路径进行哈希运算,得到目录路径的哈希值;根据目录路径的哈希值,在元数据缓存中查找对应的缓存条目;若在元数据缓存中找到目录路径对应的缓存条目,则从缓存条目中获取目录对应的实体标识符。
12、进一步的,在基于目录信息,判断目录路径解析请求所访问的目录是否存在于元数据缓存中的步骤之后,具体还包括:
13、若目录路径解析请求所访问的目录不存在于元数据缓存中,则从键值数据库中查询与目录路径对应的目标结果数据;返回目录路径解析请求对应的目标结果数据,并基于目标结果数据更新元数据缓存。
14、进一步的,在将实体标识符发送给元数据服务端,以通过元数据服务端从键值数据库中查询到目录对应的结果数据的步骤之后,还包括:
15、当监测到元数据服务端的目录更新操作时,获取元数据服务端的主节点广播的目录更新操作消息;对目录更新操作消息进行解析,得到修改的目录路径和修改的目标版本号,将修改的目录路径添加到缓存失效列表中;接收元数据客户端发起的缓存检查请求,获取缓存检查请求中携带的缓存版本号和访问文件路径,缓存检查请求由目录更新操作消息所触发;将缓存版本号与目标版本号进行比较,若缓存版本号小于目标版本号,则判断访问文件路径是否存在于缓存失效列表中;若存在,则向元数据客户端返回包含缓存失效列表的响应消息,以使元数据客户端根据缓存失效列表,将元数据缓存中对应的缓存条目进行失效处理。
16、为了解决上述技术问题,本申请实施例还提供一种目录路径解析装置,采用了如下的技术方案:
17、信息获取模块,用于获取文件系统的目录信息,在元数据客户端内部创建元数据缓存,元数据缓存用于存放目录信息;
18、请求接收模块,用于接收目录路径解析请求,基于目录信息,判断目录路径解析请求所访问的目录是否存在于元数据缓存中;
19、标识符获取模块,用于若目录路径解析请求所访问的目录存在于元数据缓存中,则从元数据缓存中获取目录对应的实体标识符;
20、发送模块,用于将实体标识符发送给元数据服务端,以通过元数据服务端从键值数据库中查询到目录对应的结果数据;
21、返回模块,用于返回目录路径解析请求对应的结果数据。
22、为了解决上述技术问题,本申请实施例还提供一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,处理器执行计算机可读指令时实现如上述目录路径解析方法的步骤。
23、为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可读指令,计算机可读指令可被至少一个处理器执行,以使至少一个处理器执行如上述目录路径解析方法的步骤。
24、与现有技术相比,本申请实施例主要有以下有益效果:通过引入元数据缓存机制(元数据缓存),在元数据客户端内部对文件系统的目录信息进行缓存,从而显著优化了目录路径解析的流程。当接收到目录路径解析请求时,可以迅速在元数据缓存中查找目录,避免了传统方法中逐级访问目录项的繁琐过程。若目录存在于元数据缓存中,即可直接获取其对应的实体标识符,并快速向元数据服务端发起查询请求,进而从键值数据库中检索到所需的结果数据。这一创新设计不仅大幅降低了目录路径解析的时延,还有效解决了近根热点的问题。由于元数据缓存中存储了目录信息,对于频繁访问的近根目录,可以迅速响应,无需重复进行路径解析。
本文档来自技高网...【技术保护点】
1.一种目录路径解析方法,其特征在于,包括下述步骤:
2.根据权利要求1所述的方法,其特征在于,所述目录信息采用哈希表结构存储于所述元数据缓存中;
3.根据权利要求2所述的方法,其特征在于,所述基于所述目录信息,以所述目录名称作为检索键,通过哈希查找,判断所述目录路径的各级目录是否存在于所述元数据缓存中的步骤,具体包括:
4.根据权利要求2所述的方法,其特征在于,所述从所述元数据缓存中获取所述目录对应的实体标识符的步骤,具体包括:
5.根据权利要求2所述的方法,其特征在于,在所述基于所述目录信息,判断所述目录路径解析请求所访问的目录是否存在于所述元数据缓存中的步骤之后,具体还包括:
6.根据权利要求1所述的方法,其特征在于,所述在元数据客户端内部创建元数据缓存的步骤,具体包括:
7.根据权利要求1所述的方法,其特征在于,在所述将所述实体标识符发送给元数据服务端,以通过所述元数据服务端从键值数据库中查询到所述目录对应的结果数据的步骤之后,还包括:
8.一种目录路径解析装置,其特征在于,包括:
...【技术特征摘要】
1.一种目录路径解析方法,其特征在于,包括下述步骤:
2.根据权利要求1所述的方法,其特征在于,所述目录信息采用哈希表结构存储于所述元数据缓存中;
3.根据权利要求2所述的方法,其特征在于,所述基于所述目录信息,以所述目录名称作为检索键,通过哈希查找,判断所述目录路径的各级目录是否存在于所述元数据缓存中的步骤,具体包括:
4.根据权利要求2所述的方法,其特征在于,所述从所述元数据缓存中获取所述目录对应的实体标识符的步骤,具体包括:
5.根据权利要求2所述的方法,其特征在于,在所述基于所述目录信息,判断所述目录路径解析请求所访问的目录是否存在于所述元数据缓存中的步骤之后,具体还包括:
6.根据权利要求1所述的方法,其特...
【专利技术属性】
技术研发人员:余宇,
申请(专利权)人:平安科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。