一种优化目录容量嵌套配额的方法技术

技术编号:39503907 阅读:12 留言:0更新日期:2023-11-24 11:35
本发明专利技术提供一种优化目录容量嵌套配额的方法

【技术实现步骤摘要】
一种优化目录容量嵌套配额的方法、系统、设备和介质


[0001]本专利技术涉及分布式文件系统领域,更具体地,特别是指一种优化目录容量嵌套配额的方法

系统

设备和存储介质


技术介绍

[0002]在分布式文件系统中支持目录容量嵌套配额功能,开启该功能后各个目录的配额的硬阈值受父目录
/
子目录配额硬阈值的约束;子目录的配额统计信息会逐层更新到父目录的配额统计信息中,同样子目录下新增数据时会逐层检查数据总量是否超出父目录的配额值,超过报超额并退出

但在当前分布式文件系统中多线程并发大范围
(
十几
G
以上
)
跳写时存在容量统计不准确的问题


技术实现思路

[0003]有鉴于此,本专利技术实施例的目的在于提出一种优化目录容量嵌套配额的方法

系统

电子设备及计算机可读存储介质,本专利技术通过增加一个互斥锁后使得线程只能等到在先线程写完文件更新文件大小后再向服务端申请配额,很好的解决文件大小统计不准导致未达到硬阈值就提示文件不能写入的问题

[0004]基于上述目的,本专利技术实施例的一方面提供了一种优化目录容量嵌套配额的方法,包括如下步骤:对多个线程预先配置对应的写文件任务,并通过线程申请获取客户端互斥锁;响应于当前线程获取到客户端互斥锁,通过所述当前线程执行对应的写文件任务;响应于所述当前线程完成对应的写文件任务并进行目录容量嵌套配额检查,通过所述当前线程释放所述客户端互斥锁并获取索引节点互斥锁;以及响应于所述当前线程接收到服务端的配额消息,根据完成的写文件任务改变对应目录的配额值并释放所述索引节点互斥锁

[0005]在一些实施方式中,所述对多个线程预先配置对应的写文件任务的步骤包括:配置每个线程写文件的起始位置和终止位置

[0006]在一些实施方式中,所述通过所述当前线程释放所述客户端互斥锁并获取索引节点互斥锁的步骤包括:判断是否存在线程已经获取索引节点互斥锁;以及响应于存在线程已经获取索引节点互斥锁,等待线程释放所述索引节点互斥锁

[0007]在一些实施方式中,所述通过所述当前线程释放所述客户端互斥锁并获取索引节点互斥锁的步骤包括:响应于不存在线程已经获取索引节点互斥锁,获取索引节点互斥锁并向服务端预申请配额

[0008]在一些实施方式中,所述根据完成的写文件任务改变对应目录的配额值并释放所述索引节点互斥锁的步骤包括:确定完成的写文件任务对应的文件所属的第一层级目录,并根据所述文件的大小修改所述第一层级目录的配额值;判断修改后的所述第一层级目录的配额值是否超过所述第一层级目录的配额阈值;响应于修改后的所述第一层级目录的配额值超过所述第一层级目录的配额阈值,进行告警;响应于修改后的所述第一层级目录的配额值未超过所述第一层级目录的配额阈值,判断所述第一层级目录是否存在父目录;以
及响应于所述第一层级目录不存在父目录,等待下一次配额值的修改

[0009]在一些实施方式中,所述根据完成的写文件任务改变对应目录的配额值并释放所述索引节点互斥锁的步骤包括:响应于所述第一层级目录存在父目录,逐层检查当前父目录对应的所有子目录的配额值是否超过当前父目录

[0010]在一些实施方式中,所述逐层检查当前父目录对应的所有子目录的配额值是否超过当前父目录的步骤包括:计算当前父目录对应的所有子目录的配额值的总和,并判断所述所有子目录的配额值的总和是否超过所述当前父目录的配额阈值;响应于所述所有子目录的配额值的总和超过所述当前父目录的配额阈值,停止检查并告警;以及响应于所述所有子目录的配额值的总和未超过所述当前父目录的配额阈值,进行下一层级父目录的检查直到所有的父目录检查完成

[0011]本专利技术实施例的另一方面,提供了一种优化目录容量嵌套配额的系统,包括:配置模块,用于对多个线程预先配置对应的写文件任务,并通过线程申请获取客户端互斥锁;任务模块,用于响应于当前线程获取到客户端互斥锁,通过所述当前线程执行对应的写文件任务;检查模块,用于响应于所述当前线程完成对应的写文件任务并进行目录容量嵌套配额检查,通过所述当前线程释放所述客户端互斥锁并获取索引节点互斥锁;以及执行模块,用于响应于所述当前线程接收到服务端的配额消息,根据完成的写文件任务改变对应目录的配额值并释放所述索引节点互斥锁

[0012]本专利技术实施例的又一方面,还提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤

[0013]本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序

[0014]本专利技术具有以下有益技术效果:通过增加一个互斥锁后使得线程只能等到在先线程写完文件更新文件大小后再向服务端申请配额,很好的解决文件大小统计不准导致未达到硬阈值就提示文件不能写入的问题

附图说明
[0015]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例

[0016]图
1a
为多层目录架构下目录的容量示意图;
[0017]图
1b
为图
1a
中目录
B
新增文件后的各层级目录容量变化示意图;
[0018]图2为本专利技术提供的优化目录容量嵌套配额的方法的实施例的示意图;
[0019]图3为本专利技术提供的优化目录容量嵌套配额的系统的实施例的示意图;
[0020]图4为本专利技术提供的优化目录容量嵌套配额的电子设备的实施例的硬件结构示意图;
[0021]图5为本专利技术提供的优化目录容量嵌套配额的计算机存储介质的实施例的示意图

具体实施方式
[0022]为使本专利技术的目的

技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明

[0023]需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明

[0024]目录容量嵌套配额
:
对有上下层关系的目录设置嵌套配额时,各个目录的配额的硬阈值受父目录
/
子目录配额硬阈值的约束;子目录的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种优化目录容量嵌套配额的方法,其特征在于,包括如下步骤:对多个线程预先配置对应的写文件任务,并通过线程申请获取客户端互斥锁;响应于当前线程获取到客户端互斥锁,通过所述当前线程执行对应的写文件任务;响应于所述当前线程完成对应的写文件任务并进行目录容量嵌套配额检查,通过所述当前线程释放所述客户端互斥锁并获取索引节点互斥锁;以及响应于所述当前线程接收到服务端的配额消息,根据完成的写文件任务改变对应目录的配额值并释放所述索引节点互斥锁
。2.
根据权利要求1所述的优化目录容量嵌套配额的方法,其特征在于,所述对多个线程预先配置对应的写文件任务的步骤包括:配置每个线程写文件的起始位置和终止位置
。3.
根据权利要求1所述的优化目录容量嵌套配额的方法,其特征在于,所述通过所述当前线程释放所述客户端互斥锁并获取索引节点互斥锁的步骤包括:判断是否存在线程已经获取索引节点互斥锁;以及响应于存在线程已经获取索引节点互斥锁,等待线程释放所述索引节点互斥锁
。4.
根据权利要求3所述的优化目录容量嵌套配额的方法,其特征在于,所述通过所述当前线程释放所述客户端互斥锁并获取索引节点互斥锁的步骤包括:响应于不存在线程已经获取索引节点互斥锁,获取索引节点互斥锁并向服务端预申请配额
。5.
根据权利要求1所述的优化目录容量嵌套配额的方法,其特征在于,所述根据完成的写文件任务改变对应目录的配额值并释放所述索引节点互斥锁的步骤包括:确定完成的写文件任务对应的文件所属的第一层级目录,并根据所述文件的大小修改所述第一层级目录的配额值;判断修改后的所述第一层级目录的配额值是否超过所述第一层级目录的配额阈值;响应于修改后的所述第一层级目录的配额值超过所述第一层级目录的配额阈值,进行告警;响应于修改后的所述第一层级目录的配额值未超过所述第一层级目录的配额阈值,判断所述第一层级目录是否存在父目录;以及响应于所述第一层级目录不存在父目...

【专利技术属性】
技术研发人员:吴畄柱
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1