System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及分步式存储领域,具体涉及一种目录索引节点的存储方法、装置、设备及存储介质。
技术介绍
1、分布式文件系统需要支持海量文件的处理需求,因此,要求不同文件和目录需要打散拆分到不同的mds(元数据服务器,简称mds)节点,并以此来进行负载均衡。当前常见的处理方式为:将目录元数据分为access(访问元数据)和content(内容元数据),其中access元数据负责id(identity,身份标识号码)、permission(权限认证信息),content元数据负责timestamp(时间戳)、link(链接)等,然后将每个目录的content元数据哈希到不同的mds,子目录的access元数据存在父目录的content元数据中,最后将所有元数据信息由mds持久化到底层的分布式kv存储系统中。
2、对于上述处理方式,文件语义要求修改access或者link等任意元数据,也要同步更新其timestamp,而把timestamp放到content,则会导致对access的修改请求也需要通过跨mds请求由access元数据所在mds同步发送到content所在的mds,因此会增加一次网络交互从而影响元数据的请求效率。
技术实现思路
1、本申请提供一种目录索引节点的存储方法、装置、设备及存储介质,能够有效提升元数据的修改请求效率。
2、第一方面,本申请实施例提供一种目录索引节点的存储方法,所述目录索引节点的存储方法包括:
3、在目录的access元数据
4、将本地时钟的当前值赋值给version字段,并更新timestamp字段;
5、将更新后的timestamp字段和access元数据写入kv,实现元数据的写入。
6、结合第一方面,在一种实施方式中,
7、所述version字段的值通过各mds的本地时钟确定,且各mds间建立时钟同步服务以进行version字段的值的保序;
8、进行拼接操作时根据version字段的值,保留较大值version字段所在元数据的timestamp字段。
9、结合第一方面,在一种实施方式中,所述元数据的写入包括文件客户端发起的修改目录access元数据的请求。
10、结合第一方面,在一种实施方式中,对于文件客户端发起的修改目录access元数据的请求,具体为:
11、文件客户端发起修改目录access元数据的请求;
12、mds将本地时钟的当前值赋值给access元数据中的version字段,且mds更新timestamp字段;
13、mds将更新后的timestamp字段和access元数据以事务方式写入kv,从而实现元数据的写入。
14、结合第一方面,在一种实施方式中,
15、当实现元数据的写入之后,还包括:进行元数据的读取;
16、所述进行元数据的读取,具体步骤包括:
17、文件客户端向access元数据所在mds发起读取全部元数据的请求;
18、基于读取全部元数据的请求,access元数据所在mds向content mds发起获取content元数据的请求;
19、access元数据所在mds进行access元数据和content元数据的拼接;
20、access元数据所在mds将拼接完成的目录元数据返回至文件客户端。
21、结合第一方面,在一种实施方式中,当access元数据所在mds进行access元数据和content元数据的拼接时,对于access元数据和content元数据中的version字段,具体为:
22、进行access元数据和content元数据中version字段的值的大小比对,并基于比对结果,舍弃较小值version字段所在元数据的timestamp字段,保留较大值version字段所在元数据的timestamp字段。
23、第二方面,本申请实施例提供一种目录索引节点的存储装置,所述目录索引节点的存储装置包括:
24、增加模块,其用于在目录的access元数据和content元数据中均增加timestamp字段,以及获取目录元数据进行拼接操作时决定timestamp字段是否保留的version字段;
25、更新模块,其用于将本地时钟的当前值赋值给version字段,并更新timestamp字段;
26、写入模块,其用于将更新后的timestamp字段和access元数据写入kv,实现元数据的写入。
27、结合第二方面,在一种实施方式中,
28、所述version字段的值通过各mds的本地时钟确定,且各mds间建立时钟同步服务以进行version字段的值的保序;
29、进行拼接操作时根据version字段的值,保留较大值version字段所在元数据的timestamp字段。
30、第三方面,本申请实施例提供一种目录索引节点的存储设备,所述目录索引节点的存储设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的目录索引节点的存储程序,其中所述目录索引节点的存储程序被所述处理器执行时,实现上述所述的目录索引节点的存储方法的步骤。
31、第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有目录索引节点的存储程序,其中所述目录索引节点的存储程序被处理器执行时,实现上述所述的目录索引节点的存储方法的步骤。
32、本申请实施例提供的技术方案带来的有益效果包括:
33、通过在目录的access元数据和content元数据中均增加timestamp字段,以及获取目录元数据进行拼接操作时决定timestamp字段是否保留的version字段,针对修改access元数据会产生跨mds请求的问题,本申请利用timestamp多版本机制,将timestamp和access元数据进行一并处理,且为了解决多副本timestamp多版本决策问题,对timestamp字段引入version字段来进行管理,并利用各mds节点经过时钟同步的本地时钟来确定version字段,且本申请可以避免access元数据修改时的跨mds请求,有效减少access元数据修改的开销,有效提升元数据的修改请求效率。
本文档来自技高网...【技术保护点】
1.一种目录索引节点的存储方法,其特征在于,所述目录索引节点的存储方法包括:
2.如权利要求1所述的一种目录索引节点的存储方法,其特征在于:
3.如权利要求1所述的一种目录索引节点的存储方法,其特征在于:所述元数据的写入包括文件客户端发起的修改目录access元数据的请求。
4.如权利要求3所述的一种目录索引节点的存储方法,其特征在于,对于文件客户端发起的修改目录access元数据的请求,具体为:
5.如权利要求1所述的一种目录索引节点的存储方法,其特征在于:
6.如权利要求5所述的一种目录索引节点的存储方法,其特征在于,当access元数据所在MDS进行access元数据和content元数据的拼接时,对于access元数据和content元数据中的version字段,具体为:
7.一种目录索引节点的存储装置,其特征在于,所述目录索引节点的存储装置包括:
8.如权利要求7所述的一种目录索引节点的存储装置,其特征在于:
9.一种目录索引节点的存储设备,其特征在于,所述目录索引节点的存储
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有目录索引节点的存储程序,其中所述目录索引节点的存储程序被处理器执行时,实现如权利要求1至7中任一项所述的目录索引节点的存储方法的步骤。
...【技术特征摘要】
1.一种目录索引节点的存储方法,其特征在于,所述目录索引节点的存储方法包括:
2.如权利要求1所述的一种目录索引节点的存储方法,其特征在于:
3.如权利要求1所述的一种目录索引节点的存储方法,其特征在于:所述元数据的写入包括文件客户端发起的修改目录access元数据的请求。
4.如权利要求3所述的一种目录索引节点的存储方法,其特征在于,对于文件客户端发起的修改目录access元数据的请求,具体为:
5.如权利要求1所述的一种目录索引节点的存储方法,其特征在于:
6.如权利要求5所述的一种目录索引节点的存储方法,其特征在于,当access元数据所在mds进行access元数据和content元数据的拼接时,对于access元数据和content...
【专利技术属性】
技术研发人员:刘源,
申请(专利权)人:中电云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。