分布式文件系统目录更新方法、装置、设备和介质制造方法及图纸

技术编号:24455700 阅读:27 留言:0更新日期:2020-06-10 15:29
本申请实施例公开了一种分布式文件系统目录更新方法、装置、设备和介质,涉及分布式存储技术,其中,该方法包括:根据创建请求,确定待新建文件或者待新建子目录所属的目标父目录;利用预先设置的加锁程序,将目标父目录标记为支持多个与执行顺序无关的属性更新操作;生成目标父目录的多个属性更新操作,以及生成待新建文件或者待新建子目录的多个新建操作,其中,一个新建操作对应一个属性更新操作;按照属性更新操作与新建操作的对应关系,执行多个属性更新操作和多个新建操作。本申请实施例可以提升分布式文件系统中同目录下并发创建文件或子目录的效率,提升整个文件系统的子目录或文件创建请求的吞吐量,提升目录更新效率。

Directory update methods, devices, devices and media of distributed file system

【技术实现步骤摘要】
分布式文件系统目录更新方法、装置、设备和介质
本申请实施例涉及计算机技术,具体涉及分布式存储技术,尤其涉及一种分布式文件系统目录更新方法、装置、设备和介质。
技术介绍
新一代分布式文件系统为支持超大规模统一目录树,一般选用分布式键值对(Key-Value,KV)系统或者分布式数据库(DataBase,DB)来存储目录树元数据。然而,现有方案中为避免目录树更新过程中的写写冲突,即同时存在针对同一目录的多个更新操作,通常,当父目录下成功创建一个子目录或者文件后,才会进入下一个子目录或者文件的创建过程,这种处理模式使得分布式文件系统的目录更新过程非常缓慢。
技术实现思路
本申请实施例公开一种分布式文件系统目录更新方法、装置、设备和介质,以提升分布式文件系统中同目录下并发创建文件或子目录的效率,提升整个文件系统的子目录或文件创建请求的吞吐量,提升目录更新效率。第一方面,本申请实施例公开了一种分布式文件系统目录更新方法,包括:根据创建请求,确定待新建文件或者待新建子目录所属的目标父目录;利用预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作;生成所述目标父目录的多个属性更新操作,以及生成所述待新建文件或者所述待新建子目录的多个新建操作,其中,一个新建操作对应一个属性更新操作;按照所述属性更新操作与所述新建操作的对应关系,执行所述多个属性更新操作和所述多个新建操作。上述申请中的一个实施例具有如下优点或有益效果:通过对目标父目录添加弱更新锁以及利用目录更新的两阶段处理过程,解决了现有分布式文件系统中同目录下创建文件或子目录的效率较低或者并发创建度较低的问题,提升了分布式文件系统中同目录下并发创建文件或子目录的效率。可选的,所述利用预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作,包括:在生成所述目标父目录的每个属性更新操作之前,利用所述预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作;相应的,在执行每个属性更新操作之后,所述方法还包括:将所述目标父目录的加锁标记状态进行释放。可选的,按照所述属性更新操作与所述新建操作的对应关系,执行所述多个属性更新操作和所述多个新建操作,包括:将每个属性更新操作、以及与之对应的新建操作,作为同一个事务进行提交;基于各个事务的提交时间,执行每个事务中的操作。上述申请中的一个实施例具有如下优点或有益效果:利用事务机制,确保了每个属性更新操作和与之对应的新建操作之间的原子性,保证了异常情况下数据的一致性。可选的,在生成所述待新建文件或者所述待新建子目录的多个新建操作之前,所述方法还包括:按照所述新建操作的生成次数,依次对所述待新建文件或者所述待新建子目录添加更新锁;相应的,在执行每个新建操作之后,所述方法还包括:将所述待新建文件或者所述待新建子目录的更新锁进行释放。可选的,所述目标父目录在加锁标记状态下禁止被删除。上述申请中的一个实施例具有如下优点或有益效果:目标父目录在更新过程中禁止删除操作,确保了目标更新的成功实现。第二方面,本申请实施例还公开了一种分布式文件系统目录更新装置,包括:目标父目录确定模块,用于根据创建请求,确定待新建文件或者待新建子目录所属的目标父目录;父目录加锁模块,用于利用预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作;操作生成模块,用于生成所述目标父目录的多个属性更新操作,以及生成所述待新建文件或者所述待新建子目录的多个新建操作,其中,一个新建操作对应一个属性更新操作;操作执行模块,用于按照所述属性更新操作与所述新建操作的对应关系,执行所述多个属性更新操作和所述多个新建操作。可选的,所述父目录加锁模块具体用于:在生成所述目标父目录的每个属性更新操作之前,利用所述预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作;相应的,所述装置还包括:父目录加锁释放模块,用于在所述操作执行模块执行每个属性更新操作之后,将所述目标父目录的加锁标记状态进行释放。可选的,所述操作执行模块包括:事务提交单元,用于将每个属性更新操作、以及与之对应的新建操作,作为同一个事务进行提交;事务执行单元,用于基于各个事务的提交时间,执行每个事务中的操作。可选的,所述装置还包括:新建文件或子目录加锁模块,用于在所述操作生成模块执行生成所述待新建文件或者所述待新建子目录的多个新建操作之前,按照所述新建操作的生成次数,依次对所述待新建文件或者所述待新建子目录添加更新锁;相应的,所述装置还包括:新建文件或子目录加锁释放模块,用于在所述操作执行模块执行每个新建操作之后,将所述待新建文件或者所述待新建子目录的更新锁进行释放。可选的,所述目标父目录在加锁标记状态下禁止被删除。第三方面,本申请实施例还公开了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请实施例任一所述的分布式文件系统目录更新方法。第四方面,本申请实施例还公开了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请实施例任一所述的分布式文件系统目录更新方法。根据本申请实施例的技术方案,通过利用预先设置的加锁程序,将目标父目录标记为支持多个与执行顺序无关的属性更新操作,在目标父目录的加锁状态下,并发地生成目标父目录的多个属性更新操作以及对应的文件或子目录的新建操作,然后推迟到操作执行阶段逐个执行属性更新操作和新建操作,解决了现有分布式文件系统中同目录下创建文件或子目录的效率较低或者并发创建度较低的问题,提升了分布式文件系统中同目录下并发创建文件或子目录的效率,提升了整个文件系统的子目录或文件创建请求的吞吐量,减少了同目录下创建子目录或文件的延迟,提升了目录更新效率;同时,目标父目录在加锁状态下支持多个与执行顺序无关的属性更新操作,还避免了高并发场景下写写冲突的发生。上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1是根据本申请实施例公开的一种分布式文件系统目录更新方法的流程图;图2是根据本申请实施例公开的另一种分布式文件系统目录更新方法的流程图;图3根据本申请实施例公开的事务生成与提交的一种示意图;图4是根据本申请实施例公开的一种分布式文件系统目录更新装置的结构示意图;图5是根据本申请实施例公开的一种电子设备的框图。具体实施方式以下结合附图对本申请的示本文档来自技高网...

【技术保护点】
1.一种分布式文件系统目录更新方法,其特征在于,包括:/n根据创建请求,确定待新建文件或者待新建子目录所属的目标父目录;/n利用预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作;/n生成所述目标父目录的多个属性更新操作,以及生成所述待新建文件或者所述待新建子目录的多个新建操作,其中,一个新建操作对应一个属性更新操作;/n按照所述属性更新操作与所述新建操作的对应关系,执行所述多个属性更新操作和所述多个新建操作。/n

【技术特征摘要】
1.一种分布式文件系统目录更新方法,其特征在于,包括:
根据创建请求,确定待新建文件或者待新建子目录所属的目标父目录;
利用预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作;
生成所述目标父目录的多个属性更新操作,以及生成所述待新建文件或者所述待新建子目录的多个新建操作,其中,一个新建操作对应一个属性更新操作;
按照所述属性更新操作与所述新建操作的对应关系,执行所述多个属性更新操作和所述多个新建操作。


2.根据权利要求1所述的方法,其特征在于,所述利用预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作,包括:
在生成所述目标父目录的每个属性更新操作之前,利用所述预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作;
相应的,在执行每个属性更新操作之后,所述方法还包括:将所述目标父目录的加锁标记状态进行释放。


3.根据权利要求1所述的方法,其特征在于,按照所述属性更新操作与所述新建操作的对应关系,执行所述多个属性更新操作和所述多个新建操作,包括:
将每个属性更新操作、以及与之对应的新建操作,作为同一个事务进行提交;
基于各个事务的提交时间,执行每个事务中的操作。


4.根据权利要求1所述的方法,其特征在于,在生成所述待新建文件或者所述待新建子目录的多个新建操作之前,所述方法还包括:
按照所述新建操作的生成次数,依次对所述待新建文件或者所述待新建子目录添加更新锁;
相应的,在执行每个新建操作之后,所述方法还包括:
将所述待新建文件或者所述待新建子目录的更新锁进行释放。


5.根据权利要求1所述的方法,其特征在于,所述目标父目录在加锁标记状态下禁止被删除。


6.一种分布式文件系统目录更新装置,其特征在于,包括:
目标父目录确定模块,用于根据创建请求,确定待新建文件或者待新建子目录所属的目标父目录;
父目录加锁模块,用于利用预先设置的加锁程序,将所述目标父目录标记为支持多个与执行顺序无关的属性更新操作;
操作生成模块,用于生成所述目标父...

【专利技术属性】
技术研发人员:吴义东翁晓熠陈志鹏赵文
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1