本发明涉及分布式文件系统,具体涉及路径信息落盘方法、装置、计算机设备、介质及程序产品。
背景技术:
1、在分布式文件系统中,一般可以使用路径信息(backtrace)保存每一个节点(inode)对应的文件名和目录结构。
2、每当新增节点或者对节点的路径信息进行修改时,需要将该节点记录在待更新路径信息的节点列表中。在日志定时刷新或获取到命令刷新时,可以先扫描该节点列表,获取到该节点列表中每一个节点的路径信息。然后,可以将该节点以及该节点对应的路径信息记录在待落盘的路径信息列表中。最后,可以对该路径信息列表中的每一个节点进行遍历,每遍历到一个节点,调用目标调用函数,对该节点的路径信息进行落盘。
3、由于每次调用目标调用函数时实际上是调用一次对象存储设备(object storagedevice,osd)的接口,也即每存储一个节点的路径信息都需要进行一次消息交互,每次消息交互都涉及序列化和反序列化处理,会浪费较长时间。这样,在存储大量路径信息时,交互次数频繁,会给网络层带来比较大的压力。
技术实现思路
1、有鉴于此,本发明提供了一种路径信息落盘方法、装置、计算机设备、介质及程序产品,以解决落盘路径信息时间较长且网络压力较大的问题。
2、第一方面,本发明提供了一种路径信息落盘方法,所述方法应用于分布式文件系统,所述方法包括:
3、获取待落盘的路径信息列表,其中,所述路径信息列表中包括多个节点,以及与每一个所述节点对应的待落盘路径信息;
4、对所述路径信息列表中的每一个节点进行遍历,每遍历到一个节点,获取遍历到的节点的节点号和待落盘路径信息;
5、根据预设对象划分参数和所述遍历到的节点的节点号,确定与所述遍历到的节点对应的归属对象,并将所述遍历到的节点的节点号和待落盘路径信息存储到与之对应的归属对象中;
6、确定每一个所述归属对象中包括的节点的节点数量;
7、根据目标归属对象中包括的节点的节点数量和预设数量阈值,确定与所述目标归属对象对应的数据处理轮次数,以及与每一数据处理轮次对应的处理节点数量,其中,所述目标归属对象为任一归属对象;
8、根据与所述目标归属对象对应的数据处理轮次数,以及与每一数据处理轮次对应的处理节点数量,对所述目标归属对象中包括的每一个节点的待落盘路径信息进行落盘操作。
9、本发明提供的一种路径信息落盘方法,具有如下优点:
10、通过将路径信息列表中的节点划分到相应的归属对象中,并且对于每一个归属对象,根据归属对象实际包括的节点的节点数量,确定数据处理轮次数,可以分多轮将归属对象中的待落盘路径信息进行落盘操作。这样,每一数据处理轮次调用一次对象存储设备的接口,相比于一条落盘路径信息调用一次接口,调用对象存储设备的接口的次数大大降低。进一步,可以减少交互次数,大大降低给网络层带来的压力,也避免了序列化和反序列化处理浪费时间较长的问题。
11、在一种可选的实施方式中,所述预设对象划分参数为预设移动位数;
12、所述根据预设对象划分参数和所述遍历到的节点的节点号,确定与所述遍历到的节点对应的归属对象,并将所述遍历到的节点的节点号和待落盘路径信息存储到与之对应的归属对象中,包括:
13、将所述遍历到的节点的节点号右移所述预设移动位数,对右移后空出的左边高位用零补齐,以及对右移后多出的右边低位进行删除,得到与所述遍历到的节点对应的归属对象标识;
14、根据所述归属对象标识,确定是否存在与所述归属对象标识对应的归属对象;
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、第五方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的路径信息落盘方法。
1.一种路径信息落盘方法,其特征在于,所述方法应用于分布式文件系统,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述预设对象划分参数为预设移动位数;
3.根据权利要求1所述的方法,其特征在于,所述根据目标归属对象中包括的节点的节点数量和预设数量阈值,确定与所述目标归属对象对应的数据处理轮次数,以及与每一数据处理轮次对应的处理节点数量,包括:
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据与所述目标归属对象对应的数据处理轮次数,以及与每一数据处理轮次对应的处理节点数量,对所述目标归属对象中包括的每一个节点的待落盘路径信息进行落盘操作,包括:
5.根据权利要求1至3任一项所述的方法,其特征在于,所述获取待落盘的路径信息列表之前,所述方法还包括:
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
7.一种路径信息落盘装置,其特征在于,所述装置应用于分布式文件系统,所述装置包括:
8.一种计算机设备,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至6中任一项所述的路径信息落盘方法。
10.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1至6中任一项所述的路径信息落盘方法。
