一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式文件系统中的目录处理方法和装置与流程

2022-07-30 21:45:35 来源:中国专利 TAG:
1.本技术涉及互联网
技术领域
:,具体涉及一种分布式文件系统中的目录处理方法和装置,本技术同时提供一种电子设备和计算机存储介质。
背景技术
::2.在分布式文件系统的场景中对于文件目录的操作有着强一致性的操作要求。3.在现有的技术方案中,目录树以级联的数据结构形式保存在拥有单节点元数据服务(namenode)的机器内存中。在文件客户端对分布式文件系统中的目录树进行操作的过程中,文件系统的元数据服务会对文件系统的目录树进行锁操作,以避免其他客户端或者其他线程对目录树的修改操作与本次操作相冲突。但随着集群规模的扩大,单节点数据服务存储模式严重影响整个分布式文件系统的数据吞吐。4.因此,如何在保证分布式文件系统数据吞吐量的前提下,保证针对文件目录的处理操作具备强一致性成为本领域技术人员亟需解决的技术问题。技术实现要素:5.本技术提供一种分布式文件系统中的目录处理方法和装置,以解决上述技术问题。6.本技术提供的分布式文件系统中的目录处理方法,包括:7.获得云端数据库发送的待处理目录的处理条件,其中,所述待处理目录的处理条件用于使得对所述待处理目录的修改或创建操作未被重复执行;8.根据所述待处理目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待处理目录的节点编号;9.根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,对所述待处理目录进行操作处理。10.可选的,所述目录树中包括至少一级子目录,任意一级子目录的键值对的键包括所述任意一级子目录的节点名称和所述任意一级子目录对应节点的父节点编号,所述任意一级子目录的键值对的值包括所述任意一级子目录的节点编号。11.可选的,所述根据所述待处理目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待处理目录的节点编号,包括:12.获取所述目录树的根节点编号;13.根据所述根目录的根节点编号和所述根目录的第一级子目录的节点名称,获得所述第一级子目录键值对中的键;查询本地数据库,获得与所述第一级子目录键值对中的键相匹配的所述第一级子目录的节点编号;14.从所述第一级子目录开始,依次根据第n级子目录的节点编号和所述根目录的第n 1级子目录的节点名称,获得所述第n 1级子目录键值对中的键;查询所述本地缓存,获得与所述第n 1级子目录键值对中的键相匹配的所述第n 1级子目录的节点编号;直至获得所述待处理目录的键值对中的键,其中,n为自然数;15.对所述待处理目录的键值对中的键进行编码,并将编码获得的编码值作为所述待处理目录的节点编号。16.可选的,所述获得云端数据库发送的所述待处理目录的处理条件,包括:获得所述云端数据库发送的待处理目录的创建条件信息,所述创建条件信息包括:当所述待处理目录的节点编号不存在时,执行对所述待处理目录的创建操作。17.可选的,所述根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,通过节点操作模块对所述待处理目录进行处理,包括:18.获得所述待处理目录的键值对中的键;19.查询本地数据库,判断所述本地数据库是否存在与所述待处理目录的键值对中的键相匹配的所述待处理目录的节点编号;20.若不存在与所述待处理目录的键值对中的键匹配的所述待处理目录的节点编号,则调用用于创建目录的应用程序编程接口,根据针对所述待处理目录预设的目录属性信息和所述待处理目录的节点编号,创建所述待处理目录。21.可选的,所述获得云端数据库发送的待处理目录的处理条件,包括:获得云端数据库发送的待处理目录的重命名条件信息,所述重命名条件信息包括:删除所述待处理目录的节点编号,并完成对所述待处理目录的重命名操作。22.可选的,所述根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,通过节点操作模块对所述待处理目录进行处理,包括:23.创建所述待处理目录的重命名后的第一节点编号和所述待处理目录的重命名后的重命名名称;24.调用用于完成目录重命名操作的应用程序编程接口,执行以下操作:25.删除所述待处理目录的节点编号,并且根据所述第一节点编号和所述待处理目录的重命名名称,创建所述待处理目录的第二键值对,基于所述第二键值对完成所述待处理目录的重命名操作。26.可选的,所述获得云端数据库发送的所述待处理目录的处理条件,包括:获得所述云端数据库发送的待处理目录的属性更新条件信息,所述属性更新条件信息,包括:在用于更新所述待处理目录的节点属性信息与云端数据库中存储的所述待处理目录的节点属性信息相同的情况下,根据所述用于更新所述待处理目录的节点属性信息,对所述待处理目录的属性进行更新。27.可选的,所述根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,通过节点操作模块对所述待处理目录进行处理,包括:28.判断所述用于更新所述待处理目录的节点属性信息与所述云端数据库中存储的所述待处理目录的节点属性信息是否相同;29.若所述用于更新所述待处理目录的节点属性信息与所述云端数据库中存储的所述待处理目录的节点属性信息相同,则调用用于完成目录属性更新操作的应用程序编程接口,对所述待处理目录的进行属性更新,其中,属性更新后的所述待处理目录的键值对包括所述待处理目录的节点编号和所述用于更新所述待处理目录的节点属性信息。30.本技术同时提供一种分布式文件系统中的目录处理装置,包括:31.获得单元,用于获得云端数据库发送的待处理目录的处理条件,其中,所述待处理目录的处理条件用于使得对所述待处理目录的修改或创建操作未被重复执行;32.解析单元,用于根据所述待处理目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待处理目录的节点编号;33.处理单元,用于根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,对所述待处理目录进行操作处理。34.本技术同时提供一种分布式文件系统中的目录创建方法,包括:35.获得云端数据库发送的待创建目录的处理条件,其中,所述待创建目录的处理条件用于使得对待创建目录的创建操作未被重复执行;36.根据所述待创建目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待创建目录的节点编号;37.根据所述待创建目录的节点编号,判断所述待创建目录是否满足所述待创建目录的处理条件,并在所述待创建目录满足所述待创建目录的处理条件时,对所述待创建目录进行创建操作。38.本技术同时提供一种分布式文件系统的目录重命名方法,包括:39.获得云端数据库发送的待重命名目录的处理条件,其中,所述待重命名目录的处理条件用于使得重命名后的所述待重命名目录未被重复命名;40.根据所述待重命名目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待重命名目录的节点编号;41.根据所述待重命名目录的节点编号,判断所述待重命名目录是否满足所述待重命名的处理条件,并在所述待重命名目录满足所述待重命名目录的处理条件时,对所述待重命名目录进行重命名操作。42.本技术同时提供一种分布式文件系统的目录更新方法,包括:43.获得云端数据库发送的待更新目录的处理条件,其中,所述待更新目录的处理条件用于使得更新后的所述待更新目录不包含更新前的目录属性;44.根据所述待更新目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待更新目录的节点编号;45.根据所述待更新目录的节点编号,判断所述待更新目录是否满足所述待更新目录的处理条件,并在所述待更新目录满足所述待更新目录的处理条件时,对所述待更新目录进行属性更新。46.本技术同时提供一种用于分布式文件系统中的目录处理系统,包括:客户端、云端数据库,其中,所述客户端包括:本地数据库和目录树节点操作单元;47.所述本地数据库,用于存储目录树中各级子目录的键值对;48.所述云端数据库,用于向所述目录树节点操作单元发送待处理目录的处理条件,其中,所述待处理目录的处理条件用于使得对所述待处理目录的修改或创建操作未被重复执行;49.所述目录树节点操作单元,用于根据所述待处理目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待处理目录的节点编号;根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,对所述待处理目录进行操作处理。50.本技术同时提供一种电子设备,包括:51.处理器;52.存储器,用于存储方法的程序,所述程序在被处理读取执行时,执行上述任意一种方法。53.本技术同时提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述程序在被执行时执行上述任意一种方法。54.与现有技术相比,本技术具有以下优点:55.所述一种分布式文件系统中的目录处理方法,包括:获得云端数据库发送的待处理目录的处理条件,其中,所述待处理目录的处理条件用于使得对所述待处理目录的修改或创建操作未被重复执行;根据所述待处理目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待处理目录的节点编号;根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,对所述待处理目录进行操作处理。56.本技术提供的目录处理方法,通过解析所述待处理目录的键值对,确定所述待处理目录的节点编号,并通过云端调用用于使得对所述待处理目录的处理操作未被重复执行的所述待处理目录的处理条件,结合所述待处理目录的节点编号和所述待处理目录的处理条件,保证了所述待处理目录的处理操作具备强一致性操作要求。附图说明57.图1为本技术场景实施例提供的分布式文件系统中的目录处理系统结构示意图;58.图2为本技术第一实施例提供的分布式文件系统中的目录处理方法流程图;59.图3为本技术第二实施例提供的分布式文件系统中的目录处理装置结构示意图;60.图4为本技术第三实施例提供的分布式文件系统中的目录创建方法流程图;61.图5为本技术第四实施例提供的分布式文件系统的目录重命名方法流程图;62.图6为本技术第五实施例提供的分布式文件系统的目录更新方法流程图;63.图7为本技术第六实施例提供的电子设备结构示意图。具体实施方式64.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是,本技术能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此,本技术不受下面公开的具体实施例的限制。65.请参考图1,其为本技术场景实施例提供的分布式文件系统中的目录处理系统结构示意图。66.所述目录处理系统,包括:客户端101、云端数据库102,其中,客户端101包括:本地数据库103和目录树节点操作单元104。67.其中,本地数据库103,用于存储目录树中各级子目录的键值对,具体的,本地数据库以表格存储(tablestore)的形式存储用于确定待处理目录在目录树中的节点编号的键值对,其中所述目录树的任意一级子目录的键值对的键包括所述任意一级子目录的节点名称和所述任意一级子目录对应节点的父节点编号,所述任意一级子目录的键值对的值包括所述任意一子目录的节点编号。68.目录树节点操作单元104,用于根据所述待处理目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待处理目录的节点编号;根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,对所述待处理目录进行操作处理;69.所述云端数据库102,用于向所述目录树节点操作单元发送待处理目录的处理条件,其中,所述待处理目录的处理条件用于使得对所述待处理目录的修改或创建操作未被重复执行。70.具体的,本技术第一实施例针对所述目录处理系统,提供一种分布式文件系统中的目录处理方法。具体的,通过上述系统完成上述对目录的处理操作的过程请参考本技术第一实施例提供的分布式文件系统中的目录处理方法,此处不再赘述。71.请参考图2,其为本技术第一实施例提供的分布式文件系统中的目录处理方法流程图,该方法包括:步骤s201至步骤s203。72.步骤s201,获得云端数据库发送的待处理目录的处理条件,其中,所述待处理目录的处理条件用于使得对所述待处理目录的修改或创建操作未被重复执行。73.在本技术实施例中,所述待处理目录的处理条件与所述待处理目录的处理操作类型相对应,其中,所述待处理目录的操作类型包括:对所述待处理目录的创建操作、对所述待处理目录的重命名操作以及对所述待处理目录的属性更新操作等。74.具体的,在对所述待处理目录进行创建操作时,所述待处理目录的处理条件具体为:当所述待处理目录的节点编号不存在时,执行对所述待处理目录的创建操作;75.在对所述待处理目录进行重命名操作时,所述待处理目录的处理条件具体为:删除所述待处理目录的节点编号,并完成对所述待处理目录的重命名操作;76.在对所述待处理目录进行属性更新操作时,所述待处理目录的处理条件具体为:获得所述云端数据库发送的待处理目录的属性更新条件信息,所述属性更新条件信息,包括:在用于更新所述待处理目录的节点属性信息与云端数据库中存储的所述待处理目录的节点属性信息相同的情况下,根据所述用于更新所述待处理目录的节点属性信息,对所述待处理目录的属性进行更新。77.在本技术实施例中,所述待处理目录的处理条件具体用于避免其他客户端或者其他线程对目录树的修改操作与本次操作相冲突,以使得所述待处理目录对应的目录树的强一致性。78.步骤s202,根据所述待处理目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待处理目录的节点编号。79.在本技术实施例中,所述目录树中包括至少一级子目录,任意一级子目录的键值对的键包括所述任意一级子目录的节点名称和所述任意一级子目录对应节点的父节点编号,所述任意一级子目录的键值对的值包括所述任意一子目录的节点编号。80.在计算机领域中,键值对是一种基本的数据表示方式,一般以《key,value》的形式存在,其中,key为所述键值对的键,value为所述键值对的值。通过所述键值对的键能够直接寻找到该键对应的值。81.在本技术实施例中,所述键值对的具体形式为《目录节点名称 目录的父节点编号,目录的节点编号》,即通过该级目录键值对中的键,能够直接找到该键值对的节点编号。82.所述目录的节点可以理解为该目录的索引节点,在计算机领域,一个目录树的不同层级的目录都存在一个索引节点,索引节点是unix/linux文件系统中用来存储文件元信息的区域其中包含的文件元数据,即,除目录的文件名称之外的其他信息全部都存储于所述索引节点中,其中就包括所述节点编号。83.比如说,对于层级关系为/user/hive/warehouse/file1的目录树,最下级的子目录的目录名称为file1(文件夹1),该文件夹下的除目录名称外的其他数据都存储于该目录的对应的索引节点中。84.步骤s203,根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,对所述待处理目录进行操作处理。85.为了便于理解本技术提供的所述分布式文件系统中的目录处理方法,本技术第一实施例分别结合目录的创建、重命名以及对目录的属性更新对上述步骤s202和步骤s203进行详细介绍86.首先,为了便于理解本技术提供的分布式文件系统中的目录处理方法,以下以创建“/user/hive/warehouse/file1”为例,对步骤s202和步骤s203进行介绍。87.具体的,所述步骤s202包括通过以下步骤s1至步骤s4根据所述待处理目录对应的目录树的各级子目录的键值对,逐级解析所述目录树,进而获得所述待处理目录的节点编号:88.步骤s1,获取所述目录树的根节点编号。89.根目录是指逻辑驱动器的最上一级目录,它是相对于目录树中的不同节点的目录而言的。比如说,打开计算机中的“我的电脑”,双击c盘就进入c盘的根目录,双击d盘就进入d盘的根目录。进一步的,在形式为“/user/hive/warehouse/file1”的目录树结构中,“/user”中的“/”为该目录树的根目录;可以理解的,上述例子中所示的根目录只是众多根目录中的一种形式,在其他实施例中,根目录也可以有其他的表现形式,比如说,在形式为“abc/file2/3.txt”的目录树结构中,其根目录为“abc/”。90.步骤s2,根据所述根目录的根节点编号和所述根目录的第一级子目录的节点名称,获得所述第一级子目录键值对中的键;查询本地数据库,获得与所述第一级子目录键值对中的键相匹配的所述第一级子目录的节点编号。91.所述根目录的第一级子目录具体的“user”,假设所述根目录树的根节点编号为0,则拼接所述目录树的根节点编号和所述根目录的第一级子目录的节点名称后能够获得所述第一级子目录键值对中的键“0user”,通过遍历本地缓存,确定与“0user”相匹配的键值对,获得所述第一级子目录的节点编号(为了便于描述,本技术实施例中假设所述第一级子目录的节点编号为100)。92.步骤s3,从所述第一级子目录开始,依次根据第n级子目录的节点编号和所述根目录的第n 1级子目录的节点名称,获得所述第n 1级子目录键值对中的键;查询所述本地缓存,获得与所述第n 1级子目录键值对中的键相匹配的所述第n 1级子目录的节点编号;直至获得所述待处理目录的键值对中的键,其中,n为自然数。93.在本技术第一实施例中,所述待处理目录即为“file1”(文件夹1)。94.即,上述步骤s3具体为:95.拼接第一级子目录的节点编号(100)和第二级子目录的节点名称“hive”,获得所述第二级子目录键值对中的键“100hive”。96.遍历本地缓存,确定与“100hive”相匹配的键值对,获得所述第二级子目录的节点编号(为了便于描述,本技术实施例中假设所述第二级子目录的节点编号为101)。97.拼接第二级子目录的节点编号(101)和第三级子目录的节点名称(warehouse),获得所述第三级子目录键值对中的键“101warehouse”。98.遍历本地缓存,确定与“101warehouse”相匹配的键值对,获得所述第三级子目录的节点编号(为了便于描述,本技术实施例中假设所述第三级子目录的节点编号为(102)。99.拼接第三级子目录的节点编号(102)和第四级子目录的节点名称“file1”(即,拼接第三级子目录的节点id和待创建子目录的节点名称),获得所述待处理目录键值对中的键“102file1”。100.步骤s4,对所述待处理目录的键值对中的键进行编码,并将编码获得的编码值作为所述待处理目录的节点编号。101.在本技术第一实施例中,由于所述待处理目录还未创建,因此,所述待处理目录(file1)并不存在对应的键值对,也即无法根据上述步骤s202中得到的所述待处理目录的键值对中的键直接找到所述待处理目录的键值对中的值。因此,需要对所述待处理目录的键值对中的键进行编码,确定所述待处理目录的节点id,以便于创建所述待处理目录(此处,假设对所述待处理目录的键值对中的键进行编码后获得的编码值为103,即,所述待处理目录的节点编号为103)。102.步骤s203,根据所述待处理目录的节点编号和预设的目录属性信息,创建所述待处理目录。在完成对所述待处理目录的创建过程中,客户端首先会假设所述待处理目录的节点不存在,但在实施目录创建的过程中,也可能存在重复创建的问题。103.为了避免上述重复创建目录的问题,本技术的步骤s203包括以下步骤s5至步骤s8:104.步骤s5,获得所述待处理目录的键值对中的键;105.即,获得形式为“102file1”的键。106.步骤s6,查询本地数据库,判断所述本地数据库中是否存在与所述待处理目录的键值对中的键匹配的所述待处理目录的节点编号;107.步骤s7,若不存在与所述待处理目录的键值对中的键匹配的所述待处理目录的节点编号,则调用用于创建目录的应用程序编程接口,根据针对所述待处理目录预设的目录属性信息和所述待处理目录的节点编号,创建所述待处理目录。108.即,判断所述本地数据库中是否已经存在所述待处理目录,如果所述本地数据库中存在所述待处理目录,则确定该目录已被创建,为保证目录树的强一致性,无法对所述待处理目录进行创建;若不存在该目录,则执行目录创建指令。109.在本技术实施例中,所述目录的属性信息即为所述待创建目录中的元数据信息,这一部分信息存储于所述待创建目录的索引节点中,可以包括:文件的创建/更新时间以及文件的所有权人等信息。具体的,所述待处理目录预设的目录属性信息可以根据实际情况进行设定,对此,本技术不做限制。110.在本技术的一种可选实施方式中,所述本地数据库可以是一种用于存储结构化数据的serverlessnosql多模型数据库,该数据库能够提供兼容hbase(一种分布式的、面向列的开源数据库)的widecolumn模型、消息模型以及时空模型,可提供pb级的数据存储、千万级的数据吞吐量和毫秒级数据延时服务能力,以减小数据传输的延迟,提高系统稳定性。111.在本技术的另一中可选实施方式中,上述目录处理方法还可以应用于嵌套目录的创建。112.假设已经存在了目录“/user/hive”,在此基础上,还想要进一步创建目录“/warehouse/dir1”,即,创建结构为“/user/hive/warehouse/dir1”的目录。上述嵌套创建目录过程与上述待处理目录的创建过程基本相同。即,确定所述待处理目录的目录树层级关系之后,按照键值对解析所述目录树,获得所述待处理目录的节点编号。113.此处,所述待处理目录的节点编号指的是子目录“warehouse”。114.之后,执行步骤s202和步骤s203完成对目录“/user/hive/warehouse”的创建。115.即,获取所述目录树的根节点“/”的节点id(此处,仍假设所述目录树根节点的编号为0)。116.拼接所述目录树的根节编号和所述根节点的第一级子目录的节点名称“user”,获得所述第一级子目录键值对中的键“0user”,查询本地缓存,获得与所述第一级子目录键值对中的键匹配的所述第一级子目录的节点编号(此处,仍假设所述第一级子目录的节点编号为100)。117.拼接所述第一级子目录的节点编号(100)和第二级子目录的节点名称“hive”,获得所述第二级子目录键值对中的键“100hive”。118.遍历本地缓存,确定与“100hive”相匹配的键值对,获得所述第二级子目录的节点id(此处,仍假设所述第二级子目录的节点编号为101)。119.拼接所述第二级子目录的节点编号(101)和第一个待处理目录的节点名称(warehouse),获得所述第一个待处理目录键值对中的键“101warehouse”。120.进一步的,由于该目录还未创建,因此对所述第一个待处理目录键值对中的键“101warehouse”进行编码,获得第一个待处理目录的节点编号(此处,假设所述第一个待处理目录的节点编号为102)。121.查询本地数据库,判断所述本地数据库中是否存在与所述第一个待处理目录键值对中的键相匹配的所述第一个待创建目录的节点编号。122.若所述判断结果为否,则创建键值对为《102,预设的第一节点属性信息》的第一子目录。123.若所述判断结果为是,则向用于完成所述待处理目录创建的客户端返回创建冲突的提示信息。124.待所述第一个待创建目录创建成功后,进一步创建第二个待创建目录“file1”。125.此时,为了便于描述,以下将完成创建的所述第一个待处理目录称为第三级子目录。126.拼接所述第三级子目录的节点编号(102)第二个待处理目录的节点名称(file1),获得所述第二个待处理目录键值对中的键(102file1)。127.进一步的,由于该目录还未创建,因此对所述第二个待处理目录键值对中的键“102file1”进行编码,获得第二个待处理目录的节点编号(此处,假设所述第一个待处理目录的节点编号为103)。128.查询本地数据库,判断所述本地数据库中是否存在与所述第二个待处理目录键值对中的键相匹配的所述第二个待处理目录的节点编号。129.若所述判断结果为否,则创建键值对为《103,预设的第二节点属性信息》的第二子目录。130.若所述判断结果为是,则向用于完成所述待创建的子目录创建的客户端返回创建冲突的提示信息。131.进一步的,本技术第一实施例同时结合目录的重命名过程,对上述步骤s202和步骤s203进行介绍。132.以下以将目录“/user/hive/warehouse/file1”重命名为“/user/hive/warehouse/file2”为例对本技术第二实施例提供的目录的重命名方法进行介绍。133.与上述目录的创建过程类似的,上述步骤s202包括以下步骤s9至步骤s12:134.步骤s9,获取所述目录树的根节点编号;135.步骤s10,根据所述根目录的根节点编号和所述根目录的第一级子目录的节点名称,获得所述第一级子目录键值对中的键;查询本地数据库,获得与所述第一级子目录键值对中的键相匹配的所述第一级子目录的节点编号;136.步骤s11,从所述第一级子目录开始,依次根据第n级子目录的节点编号和所述根目录的第n 1级子目录的节点名称,获得所述第n 1级子目录键值对中的键;查询所述本地缓存,获得与所述第n 1级子目录键值对中的键相匹配的所述第n 1级子目录的节点编号;直至获得所述待处理目录的键值对中的键,其中,n为自然数;137.所述步骤s9至步骤s11与本技术第一实施例中的步骤s1至步骤s3基本相同。因此,不再对上述步骤进行赘述,相关之处请参考本技术第一实施例步骤s1至s3的说明即可,138.步骤s12,对所述待处理目录的键值对中的键进行编码,并将编码获得的编码值作为所述待处理目录的节点编号。139.在步骤s12中,待处理目录的键值对中的键具体的“102file1”,为了便于描述,此处,假设对其编码后的编码值为“103”,即所述待处理目录的原始节点编号为103。140.进一步的,上述步骤s203包括以下步骤s13至步骤s14:141.步骤s13,创建所述待处理目录的重命名后的第一节点编号和所述待处理目录的重命名后的重命名名称;142.具体的,所述待处理目录的重命名后的第一节点编号即为对所述待处理目录进行重命名后该节点的id,比如说,所述待处理目录的键值对中的键“102file1”,其编码后的编码值本应为103,此处,所述重命名的节点id即为对该键进行重新编码后获得的编码值,在本技术中,为了便于描述将所述重新编码后获得的编码值设置104,在本技术实施例中,将所述重新编码后获得的编码值称为第一节点编号。143.进一步的,为了保证同一个子目录只存在一个索引节点,还需要调用用于完成目录重命名操作的应用程序编程接口,执行以下步骤:144.步骤s14,删除所述待处理目录的节点编号,并且根据所述第一节点编号和所述待处理目录的重命名名称,创建所述待处理目录的第二键值对,基于所述第二键值对完成所述待处理目录的重命名操作。145.也就是说,在对所述待处理目录进行重命名的同时,需要同时保证原始节点编码被删除。146.在本技术的一种可选实施中,可以通过条件更新的方式实现对所述待处理目录的重命名,即,在重命名的过程中,设置atomicbatch(原子批处理)为true,并对所述待处理目录进行重命名。其中,设置atomicbatch(原子批处理)为true即代表在创建键值对为《104,待处理目录的内容》的新目录的同时,删除所述待处理目录的原始节点编号(103)。147.进一步的,本技术第一实施例同时结合目录的属性更新过程,对上述步骤s202和步骤s203进行介绍。148.与上述目录的创建过程类似的,上述步骤s202包括以下步骤s15至步骤s18:149.步骤s15,获取所述目录树的根节点编号;150.步骤s16,根据所述根目录的根节点编号和所述根目录的第一级子目录的节点名称,获得所述第一级子目录键值对中的键;查询本地数据库,获得与所述第一级子目录键值对中的键相匹配的所述第一级子目录的节点编号;151.步骤s17,从所述第一级子目录开始,依次根据第n级子目录的节点编号和所述根目录的第n 1级子目录的节点名称,获得所述第n 1级子目录键值对中的键;查询所述本地缓存,获得与所述第n 1级子目录键值对中的键相匹配的所述第n 1级子目录的节点编号;直至获得所述待处理目录的键值对中的键,其中,n为自然数;152.所述步骤s15至步骤s17与本技术第一实施例中的步骤s1至步骤s3基本相同。因此,此处不再对上述步骤进行赘述,相关之处请参考本技术第一实施例步骤s1至s3的说明即可,153.步骤s18,对所述待处理目录的键值对中的键进行编码,并将编码获得的编码值作为所述待处理目录的节点编号。154.在步骤s18中,待更新的子目录的键值对中的键具体为“102file1”,为了便于描述,此处,假设对其编码后的编码值为“103”,即所述待处理目录的节点编号为103。155.进一步的,上述步骤s203主要包括以下步骤s19和步骤s20:156.步骤s19,判断所述用于更新所述待处理目录的节点属性信息与所述云端数据库中存储的所述待处理目录的节点属性信息是否相同;157.步骤s20,若所述用于更新所述待处理目录的节点属性信息与所述云端数据库中存储的所述待处理目录的节点属性信息相同,则调用用于完成目录属性更新操作的应用程序编程接口,对所述待处理目录的进行属性更新,其中,属性更新后的所述待处理目录的键值对包括所述待处理目录的节点编号和所述用于更新所述待处理目录的节点属性信息。158.本技术第二实施例提供一种目录的处理装置,由于该装置实施例基本相似于本申请第一实施例,所以描述的比较简单,相关之处参见上述对本技术第一实施例的部分说明即可,此处不再赘述。159.请参考图3,其为本技术第二实施例提供的分布式文件系统中的目录处理装置结构示意图。160.该装置包括:161.获得单元301,用于获得云端数据库发送的待处理目录的处理条件,其中,所述待处理目录的处理条件用于使得对所述待处理目录的修改或创建操作未被重复执行;162.解析单元302,用于根据所述待处理目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待处理目录的节点编号;163.处理单元303,用于根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,对所述待处理目录进行操作处理。164.可选的,所述目录树中包括至少一级子目录,任意一级子目录的键值对的键包括所述任意一级子目录的节点名称和所述任意一级子目录对应节点的父节点编号,所述任意一级子目录的键值对的值包括所述任意一子目录的节点编号。165.可选的,所述根据所述待处理目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待处理目录的节点编号,包括:166.获取所述目录树的根节点编号;167.根据所述根目录的根节点编号和所述根目录的第一级子目录的节点名称,获得所述第一级子目录键值对中的键;查询本地数据库,获得与所述第一级子目录键值对中的键相匹配的所述第一级子目录的节点编号;168.从所述第一级子目录开始,依次根据第n级子目录的节点编号和所述根目录的第n 1级子目录的节点名称,获得所述第n 1级子目录键值对中的键;查询所述本地缓存,获得与所述第n 1级子目录键值对中的键相匹配的所述第n 1级子目录的节点编号;直至获得所述待处理目录的键值对中的键,其中,n为自然数;169.对所述待处理目录的键值对中的键进行编码,并将编码获得的编码值作为所述待处理目录的节点编号。170.可选的,所述获得云端数据库发送的所述待处理目录的处理条件,包括:获得所述云端数据库发送的待处理目录的创建条件信息,所述创建条件信息包括:当所述待处理目录的节点编号不存在时,执行对所述待处理目录的创建操作。171.可选的,所述根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,通过节点操作模块对所述待处理目录进行处理,包括:172.获得所述待处理目录的键值对中的键;173.查询本地数据库,判断所述本地数据库是否存在与所述待处理目录的键值对中的键相匹配的所述待处理目录的节点编号;174.若不存在与所述待处理目录的键值对中的键匹配的所述待处理目录的节点编号,则调用用于创建目录的应用程序编程接口,根据针对所述待处理目录预设的目录属性信息和所述待处理目录的节点编号,创建所述待处理目录。175.可选的,所述获得云端数据库发送的待处理目录的处理条件,包括:获得云端数据库发送的待处理目录的重命名条件信息,所述重命名条件信息包括:删除所述待处理目录的节点编号,并完成对所述待处理目录的重命名操作。176.可选的,所述根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,通过节点操作模块对所述待处理目录进行处理,包括:177.创建所述待处理目录的重命名后的第一节点编号和所述待处理目录的重命名后的重命名名称;178.调用用于完成目录重命名操作的应用程序编程接口,执行以下操作:179.删除所述待处理目录的节点编号,并且根据所述第一节点编号和所述待处理目录的重命名名称,创建所述待处理目录的第二键值对,基于所述第二键值对完成所述待处理目录的重命名操作。180.可选的,所述获得云端数据库发送的所述待处理目录的处理条件,包括:获得所述云端数据库发送的待处理目录的属性更新条件信息,所述属性更新条件信息,包括:在用于更新所述待处理目录的节点属性信息与云端数据库中存储的所述待处理目录的节点属性信息相同的情况下,根据所述用于更新所述待处理目录的节点属性信息,对所述待处理目录的属性进行更新。181.可选的,所述根据所述待处理目录的节点编号,判断所述待处理目录是否满足所述待处理目录的处理条件,并在所述待处理目录满足所述待处理目录的处理条件时,通过节点操作模块对所述待处理目录进行处理,包括:182.判断所述用于更新所述待处理目录的节点属性信息与所述云端数据库中存储的所述待处理目录的节点属性信息是否相同;183.若所述用于更新所述待处理目录的节点属性信息与所述云端数据库中存储的所述待处理目录的节点属性信息相同,则调用用于完成目录属性更新操作的应用程序编程接口,对所述待处理目录的进行属性更新,其中,属性更新后的所述待处理目录的键值对包括所述待处理目录的节点编号和所述用于更新所述待处理目录的节点属性信息184.本技术第三实施例同时提供一种分布式文件系统中的目录创建方法,由于该方法实施例基本相似与上述第一实施例,所以描述的比较简单,相关之处,请参考上述对本技术第一实施例的介绍即可,以下对本技术第三实施例的介绍仅仅是示意性的。185.请参考图4,其为本技术第三实施例提供的分布式文件系统中的目录创建方法流程图。186.如图4所示,该方法包括以下步骤s401至步骤s403:187.步骤s401,获得云端数据库发送的待创建目录的处理条件,其中,所述待创建目录的处理条件用于使得对待创建目录的创建操作未被重复执行;188.步骤s402,根据所述待创建目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待创建目录的节点编号;189.步骤s403,根据所述待创建目录的节点编号,判断所述待创建目录是否满足所述待创建目录的处理条件,并在所述待创建目录满足所述待创建目录的处理条件时,对所述待创建目录进行创建操作。190.可选的,所述目录树中包括至少一级子目录,任意一级子目录的键值对的键包括所述任意一级子目录的节点名称和所述任意一级子目录对应节点的父节点编号,所述任意一级子目录的键值对的值包括所述任意一级子目录的节点编号。191.可选的,所述根据所述待创建目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待创建目录的节点编号,包括:192.获取所述目录树的根节点编号;193.根据所述根目录的根节点编号和所述根目录的第一级子目录的节点名称,获得所述第一级子目录键值对中的键;查询本地数据库,获得与所述第一级子目录键值对中的键相匹配的所述第一级子目录的节点编号;194.从所述第一级子目录开始,依次根据第n级子目录的节点编号和所述根目录的第n 1级子目录的节点名称,获得所述第n 1级子目录键值对中的键;查询所述本地缓存,获得与所述第n 1级子目录键值对中的键相匹配的所述第n 1级子目录的节点编号;直至获得所述待创建目录的键值对中的键,其中,n为自然数;195.对所述待创建目录的键值对中的键进行编码,并将编码获得的编码值作为所述待创建目录的节点编号。196.可选的,所述获得云端数据库发送的待创建目录的处理条件,包括:获得所述云端数据库发送的待创建目录的创建条件信息,所述创建条件信息包括:当所述待创建目录的节点编号不存在时,执行对所述待创建目录的创建操作。197.可选的,所述根据所述待创建目录的节点编号,判断所述待创建目录是否满足所述待创建目录的处理条件,并在所述待创建目录满足所述待创建目录的处理条件时,对所述待创建目录进行创建操作,包括:198.获得所述待创建目录的键值对中的键;199.查询本地数据库,判断所述本地数据库是否存在与所述待创建目录的键值对中的键相匹配的所述待创建目录的节点编号;200.若不存在与所述待创建目录的键值对中的键匹配的所述待创建目录的节点编号,则调用用于创建目录的应用程序编程接口,根据针对所述待创建目录预设的目录属性信息和所述待创建目录的节点编号,创建所述待创建目录。201.本技术第四实施例同时提供一种分布式文件系统的目录重命名方法,由于该方法实施例基本相似与上述第一实施例,所以描述的比较简单,相关之处,请参考上述对本技术第一实施例的介绍即可,以下对本技术第四实施例的介绍仅仅是示意性的。202.请参考图5,其为本技术第四实施例提供的分布式文件系统的目录重命名方法流程图。203.如图5所示,该方法包括以下步骤s501至步骤s503:204.步骤s501,获得云端数据库发送的待重命名目录的处理条件,其中,所述待重命名目录的处理条件用于使得重命名后的所述待重命名目录未被重复命名;205.步骤s502,根据所述待重命名目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待重命名目录的节点编号;206.步骤s503,根据所述待重命名目录的节点编号,判断所述待重命名目录是否满足所述待重命名的处理条件,并在所述待重命名目录满足所述待重命名目录的处理条件时,对所述待重命名目录进行重命名操作。207.可选的,所述目录树中包括至少一级子目录,任意一级子目录的键值对的键包括所述任意一级子目录的节点名称和所述任意一级子目录对应节点的父节点编号,所述任意一级子目录的键值对的值包括所述任意一级子目录的节点编号。208.可选的,所述根据所述待重命名目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待重命名目录的节点编号,包括:209.获取所述目录树的根节点编号;210.根据所述根目录的根节点编号和所述根目录的第一级子目录的节点名称,获得所述第一级子目录键值对中的键;查询本地数据库,获得与所述第一级子目录键值对中的键相匹配的所述第一级子目录的节点编号;211.从所述第一级子目录开始,依次根据第n级子目录的节点编号和所述根目录的第n 1级子目录的节点名称,获得所述第n 1级子目录键值对中的键;查询所述本地缓存,获得与所述第n 1级子目录键值对中的键相匹配的所述第n 1级子目录的节点编号;直至获得所述待重命名目录的键值对中的键,其中,n为自然数;212.对所述待重命名目录的键值对中的键进行编码,并将编码获得的编码值作为所述待重命名目录的节点编号。213.可选的,所述获得云端数据库发送的待重命名目录的处理条件,包括:获得云端数据库发送的待重命名目录的重命名条件信息,所述重命名条件信息包括:删除所述待重命名目录的节点编号,并完成对所述待重命名目录的重命名操作。214.可选的,所述根据所述待重命名目录的节点编号,判断所述待重命名目录是否满足所述待重命名的处理条件,并在所述待重命名目录满足所述待重命名目录的处理条件时,对所述待重命名目录进行重命名操作,包括:215.创建所述待重命名目录的重命名后的第一节点编号和所述待重命名目录的重命名后的重命名名称;216.调用用于完成目录重命名操作的应用程序编程接口,执行以下操作:217.删除所述待重命名目录的节点编号,并且根据所述第一节点编号和所述待重命名目录的重命名名称,创建所述待重命名目录的第二键值对,基于所述第二键值对完成所述待重命名目录的重命名操作。218.本技术第五实施例同时提供一种分布式文件系统的目录更新方法,由于该方法实施例基本相似与上述第一实施例,所以描述的比较简单,相关之处,请参考上述对本技术第一实施例的介绍即可,以下对本技术第五实施例的介绍仅仅是示意性的。219.请参考图6,其为本技术第五实施例提供的分布式文件系统的目录更新方法流程图。220.如图6所示,该方法包括以下步骤s601至步骤s603:221.步骤s601,获得云端数据库发送的待更新目录的处理条件,其中,所述待更新目录的处理条件用于使得更新后的所述待更新目录不包含更新前的目录属性;222.步骤s602,根据所述待更新目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待更新目录的节点编号;223.步骤s603,根据所述待更新目录的节点编号,判断所述待更新目录是否满足所述待更新目录的处理条件,并在所述待更新目录满足所述待更新目录的处理条件时,对所述待更新目录进行属性更新。224.可选的,所述目录树中包括至少一级子目录,任意一级子目录的键值对的键包括所述任意一级子目录的节点名称和所述任意一级子目录对应节点的父节点编号,所述任意一级子目录的键值对的值包括所述任意一级子目录的节点编号。225.可选的,所述根据所述待更新目录对应的目录树的各级子目录的键值对,解析所述目录树,获得所述待更新目录的节点编号,包括:226.获取所述目录树的根节点编号;227.根据所述根目录的根节点编号和所述根目录的第一级子目录的节点名称,获得所述第一级子目录键值对中的键;查询本地数据库,获得与所述第一级子目录键值对中的键相匹配的所述第一级子目录的节点编号;228.从所述第一级子目录开始,依次根据第n级子目录的节点编号和所述根目录的第n 1级子目录的节点名称,获得所述第n 1级子目录键值对中的键;查询所述本地缓存,获得与所述第n 1级子目录键值对中的键相匹配的所述第n 1级子目录的节点编号;直至获得所述待更新目录的键值对中的键,其中,n为自然数;229.对所述待更新目录的键值对中的键进行编码,并将编码获得的编码值作为所述待更新目录的节点编号。230.可选的,所述获得云端数据库发送的待更新目录的处理条件,包括:获得所述云端数据库发送的待更新目录的属性更新条件信息,所述属性更新条件信息,包括:在用于更新所述待更新目录的节点属性信息与云端数据库中存储的所述待更新目录的节点属性信息相同的情况下,根据所述用于更新所述待更新目录的节点属性信息,对所述待更新目录的属性进行更新。231.可选的,所述根据所述待更新目录的节点编号,判断所述待更新目录是否满足所述待更新目录的处理条件,并在所述待更新目录满足所述待更新目录的处理条件时,对所述待更新目录进行属性更新,包括:232.判断所述用于更新所述待更新目录的节点属性信息与所述云端数据库中存储的所述待更新目录的节点属性信息是否相同;233.若所述用于更新所述待更新目录的节点属性信息与所述云端数据库中存储的所述待更新目录的节点属性信息相同,则调用用于完成目录属性更新操作的应用程序编程接口,对所述待更新目录的进行属性更新,其中,属性更新后的所述待更新目录的键值对包括所述待更新目录的节点编号和所述用于更新所述待更新目录的节点属性信息。234.本技术第六实施例提供一种电子设备,由于该电子设备实施例基本相似于上述方法实施例,所以描述的比较简单,相关之处参见上述对本技术方法实施例的说明即可,此处不再赘述。235.请参考图7,其为本技术第六实施例提供的电子设备结构示意图。236.该电子设备包括:237.处理器701;238.存储器702,用于存储方法的程序,所述程序在被处理读取执行时,执行上述方法实施例所述的方法。239.本技术实施例同时提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述程序在被执行时执行所述实施例的任意一种方法。240.需要说明的是,本技术实施例提供的计算机存储介质的详细描述,可以参考本技术提供的上述方法实施例的相关描述,不再赘述。241.本技术虽然以较佳实施例公开如上,但其并不是用来限定本技术,任何本领域技术人员在不脱离本技术的精神和范围内,都可以做出可能的变动和修改,因此本技术的保护范围应当以本技术权利要求所界定的范围为准。242.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。243.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。244.1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。245.2、本领域技术人员应明白,本技术的实施例可提供为系统或电子设备。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献