文件操作方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:36645595 阅读:19 留言:0更新日期:2023-02-18 13:05
本申请涉及一种文件操作方法、装置、计算机设备和存储介质。所述方法包括:响应于文件操作请求,确定所述文件操作请求指定的目标文件的文件路径;沿所述文件路径的起点向终点逐级查找所述目标文件所属的文件目录;在逐级查找所述目标文件所属的文件目录的过程中,依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理;对所述目标文件进行文件操作;其中,在对所述目标文件进行写操作的过程中,所述目标文件的其它文件操作请求处于等待状态,可以避免目标文件被修改。采用本方法能够提高分布式计算平台中数据的操作效率。操作效率。操作效率。

【技术实现步骤摘要】
文件操作方法、装置、计算机设备和存储介质


[0001]本申请涉及云计算
,特别是涉及一种文件操作方法、装置、计算机设备和存储介质。

技术介绍

[0002]随着计算机存储能力的提升和复杂算法的发展,近年来的数据量成指数型增长,一些分布式计算平台应运而生,以便实现在大量计算机组成的集群中对海量数据进行分布式计算,为大数据的分布式存储和计算提供了有效支撑。
[0003]对于分布式计算平台中的数据操作,传统方案中,分布式计算平台内部存在一把针对目录节点树的全局锁,对属于目录节点树中数据的所有数据操作均需先获取该全局锁,然后才能进行后续的数据操作。然而,若有其它数据操作请求获取该全局锁,则该其它数据操作请求的数据操作会被阻塞,直到该全局锁释放才能进行数据操作,严重制约了分布式计算平台中数据的操作效率。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够提高分布式计算平台中数据的操作效率的文件操作方法、装置、计算机设备和存储介质。
[0005]一种文件操作方法,所述方法包括:
[0006]响应于文件操作请求,确定所述文件操作请求指定的目标文件的文件路径;
[0007]沿所述文件路径的起点向终点逐级查找所述目标文件所属的文件目录;
[0008]在逐级查找所述目标文件所属的文件目录的过程中,依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理;
[0009]对所述目标文件进行文件操作;其中,在对所述目标文件进行写操作的过程中,所述目标文件的其它文件操作请求处于等待状态。
[0010]一种文件操作装置,所述装置包括:
[0011]确定模块,用于响应于文件操作请求,确定所述文件操作请求指定的目标文件的文件路径;
[0012]查找模块,用于沿所述文件路径的起点向终点逐级查找所述目标文件所属的文件目录;
[0013]加锁模块,用于在逐级查找所述目标文件所属的文件目录的过程中,依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理;
[0014]操作模块,用于对所述目标文件进行文件操作;其中,在对所述目标文件进行写操作的过程中,所述目标文件的其它文件操作请求处于等待状态。
[0015]在其中的一个实施例中,所述文件操作请求包括文件读请求;
[0016]所述加锁模块,还用于从锁资源池中分别获取共享锁,或创建所述共享锁;基于不同的所述共享锁依次对逐级查找到的所述文件目录进行加锁处理;依据不同的所述共享锁
对所述目标文件进行加锁处理。
[0017]在其中的一个实施例中,所述文件操作请求包括文件写请求;
[0018]所述加锁模块,还用于从锁资源池中分别获取共享锁和排斥锁,或创建所述共享锁和所述排斥锁;基于不同的所述共享锁依次对逐级查找到的所述文件目录进行加锁处理;依据所述排斥锁对所述目标文件进行加锁处理。
[0019]在其中的一个实施例中,所述文件操作请求包括文件创建请求;
[0020]所述加锁模块,还用于从锁资源池中分别获取共享锁和排斥锁,或创建所述共享锁和所述排斥锁;当逐级查找到的所述文件目录不是所述目标文件的父节点时,基于不同的所述共享锁分别对查找到的所述文件目录进行加锁处理;当逐级查找到的所述文件目录是所述目标文件的父节点时,基于所述排斥锁对查找到的所述文件目录进行加锁处理;基于不同的所述排斥锁对所述目标文件进行加锁处理。
[0021]在其中的一个实施例中,所述共享锁和排斥锁均为不同的且包括引用计数器的锁对象;所述装置还包括:
[0022]调整模块,用于当所述共享锁和所述排斥锁被释放时,分别将被释放的所述共享锁和所述排斥锁中的引用计数器进行计数调整,以使调整后的所述引用计数器中的计数用于表示被释放的所述共享锁和所述排斥锁未被占用;
[0023]存放模块,用于将调整后的所述引用计数器的计数,以及所述共享锁和所述排斥锁的锁标识存放于锁回收池。
[0024]在其中的一个实施例中,所述装置还包括:
[0025]生成模块,用于生成锁超时监控线程;
[0026]监测模块,用于通过所述锁超时监控线程监测所述锁资源池中处于占用状态的锁的占用时长;
[0027]写入模块,用于当所述锁的占用时长达到时长阈值时,通过所述锁超时监控线程将所述锁的锁信息写入日志中;
[0028]显示模块,用于当所述锁资源池中处于占用状态的锁出现异常时,通过锁视图显示所述日志中的锁信息。
[0029]在其中的一个实施例中,所述文件操作请求包括对所述目标文件进行移动的第一移动请求和第二移动请求;所述文件路径包括分别与所述第一移动请求和所述第二移动请求对应的第一文件路径和第二文件路径;
[0030]所述加锁模块,还用于当所述第一文件路径的路径值小于所述第二文件路径的路径值时,依次对所述第一文件路径中逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理,直至所述目标文件被操作完成时,则依次对所述第二文件路径中逐级查找到的所述文件目录进行加锁处理,以及对被操作完成后的所述目标文件进行加锁处理。
[0031]在其中的一个实施例中,所述装置还包括:
[0032]所述加锁模块,还用于在对所述目标文件进行读操作的过程中,若接收到所述目标文件的其它文件读操作请求时,则基于锁资源池中的读锁,依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理;
[0033]所述操作模块,还用于对所述目标文件进行文件读操作。
[0034]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0035]响应于文件操作请求,确定所述文件操作请求指定的目标文件的文件路径;
[0036]沿所述文件路径的起点向终点逐级查找所述目标文件所属的文件目录;
[0037]在逐级查找所述目标文件所属的文件目录的过程中,依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理;
[0038]对所述目标文件进行文件操作;其中,在对所述目标文件进行写操作的过程中,所述目标文件的其它文件操作请求处于等待状态。
[0039]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0040]响应于文件操作请求,确定所述文件操作请求指定的目标文件的文件路径;
[0041]沿所述文件路径的起点向终点逐级查找所述目标文件所属的文件目录;
[0042]在逐级查找所述目标文件所属的文件目录的过程中,依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理;
[0043]对所述目标文件进行文件操作;其中,在对所述目标文件进行写操作的过程中,所述目标文件的其它文件操作请求处于等待状态。
[0044]上述文件操作方法、装置、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件操作方法,其特征在于,所述方法包括:响应于文件操作请求,确定所述文件操作请求指定的目标文件的文件路径;沿所述文件路径的起点向终点逐级查找所述目标文件所属的文件目录;在逐级查找所述目标文件所属的文件目录的过程中,依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理;对所述目标文件进行文件操作;其中,在对所述目标文件进行写操作的过程中,所述目标文件的其它文件操作请求处于等待状态。2.根据权利要求1所述的方法,其特征在于,所述确定所述文件操作请求指定的目标文件的文件路径包括:从所述文件操作请求中读取目标文件的文件路径;或者,从所述文件操作请求中读取目标文件的文件标识,基于所述文件标识查找所述目标文件的文件路径。3.根据权利要求1所述的方法,其特征在于,所述沿所述文件路径的起点向终点逐级查找所述目标文件所属的文件目录包括:获取所述文件操作请求对应的目录节点树;所述文件路径是所述目录节点树中以根目录对应的节点为起点、以所述目标文件对应的节点为终点的分支;在所述目录节点树中,以所述根目录对应的节点为查找的起点沿所述文件路径进行文件目录逐级查找,得到每个层级下的包括所述目标文件的文件目录;所述依次对逐级查找到的所述文件目录进行加锁处理包括:依次对逐级查找到的包括所述目标文件的文件目录进行加锁处理。4.根据权利要求1所述的方法,其特征在于,所述文件操作请求包括文件读请求;所述依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理包括:从锁资源池中分别获取共享锁,或创建所述共享锁;基于不同的所述共享锁依次对逐级查找到的所述文件目录进行加锁处理;依据不同的所述共享锁对所述目标文件进行加锁处理。5.根据权利要求1所述的方法,其特征在于,所述文件操作请求包括文件写请求;所述依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理包括:从锁资源池中分别获取共享锁和排斥锁,或创建所述共享锁和所述排斥锁;基于不同的所述共享锁依次对逐级查找到的所述文件目录进行加锁处理;依据所述排斥锁对所述目标文件进行加锁处理。6.根据权利要求1所述的方法,其特征在于,所述文件操作请求包括文件创建请求;所述依次对逐级查找到的所述文件目录进行加锁处理,以及对所述目标文件进行加锁处理包括:从锁资源池中分别获取共享锁和排斥锁,或创建所述共享锁和所述排斥锁;当逐级查找到的所述文件目录不是所述目标文件的父节点时,基于不同的所述共享锁分别对查找到的所述文件目录进行加锁处理;当逐级查找到的所述文件目录是所述目标文件的父节点时,基于所述排斥锁对查找到
的所述文件目录进行加锁处理;基于不同的所述排斥锁对所述目标文件进行加锁处理。7.根据权利要求4至6中的任一项所述的方法,其特征在于,所述共享锁和排斥锁均为不同的且包括引用计数器的锁对象;所述对所述目标文件进行文件操作之后,所述方法还包括:当所述共享锁和所述排斥锁被释放时,分别将被释放的所述共享锁和所述排斥锁中的引用计数器进行计数调整,以使调整后的所述引用计数器中的计数用于表示被释放的所述共享锁和所述排斥锁未被占用;将调整后的所述引用计数...

【专利技术属性】
技术研发人员:赵明超蒋杰毛宝龙陈怡邵赛赛王杰
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1