System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及存储,尤其分布式文件系统的写入方法、装置、电子设备及介质
技术介绍
1、大数据时代的到来,海量的数据产生,分布式文件系统(比如ceph)应用越来越广泛。在分布式文件系统中,元数据由多个元数据服务器(metadataserver mds)共同管理。
2、元数据的现有的持久化机制和缓存机制,导致在执行跨mds的分布式写操作(比如重命名或者硬链接)时非常复杂,造成元数据迁移、请求放大。比如,在进行重命名或者硬链接等分布式写操作时,元数据在缓存中会有多份,并且为了保持副本同步,又要引入复杂的分布式锁机制cap,这就会造成元数据迁移、请求被放大,从而影响系统性能。
技术实现思路
1、有鉴于此,本申请实施例提供分布式文件系统的写入方法、装置、电子设备及介质,以实现减少请求放大、减少元数据迁移,从而保证文件系统性能的目的。
2、本申请实施例提供一种分布式文件系统的写入方法,该方法应用于网络设备,该方法包括:
3、针对待缓存的文件的元数据,若该文件为本文件系统中首次创建的文件,则该文件的元数据的缓存目录项cdentry和缓存索引节点cinode之间互相链接;若当前时刻下该文件正处于被执行指定写入操作的状态,则该文件的元数据的cdentry和cinode之间的链接被断开;
4、针对待持久化的文件的元数据,若缓存中元数据中的cdentry和cinode之间互相链接,则基于元数据对应的桶标识bucketid、索引节点inode的父索引节点的索引节
5、若缓存中元数据中的cdentry和索引节点cinode之间断开链接,则基于元数据对应的bucketid、inode的父索引节点的索引节点号构建dentry的key,以预设的第二类值构建方式dn(l)构建dentry的值value,基于元数据对应的bucketid、inode的索引节点号构建inode的key,基于dn(i)方式构建inode的value,以将dentry和inode分别持久化存储;dn(l)是指以与dentry对应的inode进行持久化时的key构建该dentry的value的方式。
6、本申请实施例还提供一种分布式文件系统的写入装置,该装置应用于网络设备,该装置包括:
7、缓存模块,用于针对待缓存的文件的元数据,若该文件为本文件系统中首次创建的文件,则该文件的元数据的缓存目录项cdentry和缓存索引节点cinode之间互相链接;若当前时刻下该文件正处于被执行指定写入操作的状态,则该文件的元数据的cdentry和cinode之间的链接被断开;
8、第一持久化模块,用于针对待持久化的文件的元数据,若缓存中元数据中的cdentry和cinode之间互相链接,则基于元数据对应的桶标识bucketid、索引节点inode的父索引节点的索引节点号、以及文件名name构建目录项dentry的键key,以预设的第一类值构建方式dn(i)构建dentry的值value,以将dentry和inode持久化;其中,dn(i)是指基于inode的全部信息构建value的方式;任一文件的元数据的bucketid依据元数据打散原则确定;
9、第二持久化模块,用于若缓存中元数据中的cdentry和索引节点cinode之间断开链接,则基于元数据对应的bucketid、inode的父索引节点的索引节点号构建dentry的key,以预设的第二类值构建方式dn(l)构建dentry的值value,基于元数据对应的bucketid、inode的索引节点号构建inode的key,基于dn(i)方式构建inode的value,以将dentry和inode分别持久化存储;dn(l)是指以与dentry对应的inode进行持久化时的key构建该dentry的value的方式;
10、其中,在元数据缓存时,针对本文件系统中首次创建的文件,该文件的元数据的缓存目录项cdentry和缓存索引节点cinode之间互相链接;针对被进行过指定写入操作的文件,该文件的元数据的cdentry和cinode之间的链接被断开。
11、本申请实施例还提供一种电子设备,包括:处理器和用于存储计算机程序指令的计算机可读存储介质,计算机程序指令在被计算机可读存储介质运行时使得处理器执行如上方法的步骤。
12、本申请实施例还提供一种机器可读存储介质,该存储介质存储有计算机程序指令,当该计算机程序指令被执行时,能够实现如上方法的步骤。
13、由以上技术方案可以看出,在本实施例中,在元数据缓存时,针对本文件系统中首次创建的文件,该文件的元数据的缓存目录项cdentry和缓存索引节点cinode之间互相链接;针对被进行过指定写入操作的文件,该文件的元数据的cdentry和cinode之间的链接被断开。这使得元数据在缓存中只有一份,减少了内存资源占用,并且避免了复杂的缓存同步,从而减少了请求放大,保证系统性能。
14、进一步地,在进行元数据持久化时,若缓存中cdentry和cinode之间互相链接,则基于元数据对应的桶标识bucketid、索引节点inode的父索引节点的索引节点号、以及文件名name构建目录项dentry的键key,以预设的第一类值构建方式dn(i)构建dentry的值value,以将dentry和inode持久化,若缓存中元数据中的cdentry和索引节点cinode之间断开链接,则基于元数据对应的bucketid、inode的父索引节点的索引节点号构建dentry的key,以预设的第二类值构建方式dn(l)构建dentry的值value,基于元数据对应的bucketid、inode的索引节点号构建inode的key,基于dn(i)方式构建inode的value,以将dentry和inode分别持久化存储,这种持久化方式一方面能保证可以通过简单的查询获取到所需元数据信息,另一方面,dentry和inode分别持久化,不强行绑定dentry和inode,在发生跨多个mds的重命名或者硬链接操作时,这进一步保证系统性能。
本文档来自技高网...【技术保护点】
1.一种分布式文件系统的写入方法,其特征在于,该方法应用于网络设备,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,判断所述目标目录是否为空包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
10.一种分布式文件系统的写入装置,其特征在于,该装置应用于网络设备,所述装置包括:
11.根据权利要求10所述的装置,其特征在于,每一CDentry都链接到目录项链表mdcache->dentry_lru,没有链接CDentry的每一CInode链接到索引节点链表mdcache->
12.一种电子设备,其特征在于,该电子设备包括:
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如权利要求1至9任一所述方法中的步骤。
...【技术特征摘要】
1.一种分布式文件系统的写入方法,其特征在于,该方法应用于网络设备,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,判断所述目标目录是否为空包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,...
【专利技术属性】
技术研发人员:车香蕾,
申请(专利权)人:新华三信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。