CN110765073A - 分布式存储系统的文件管理方法、介质、设备及装置 - Google Patents
分布式存储系统的文件管理方法、介质、设备及装置 Download PDFInfo
- Publication number
- CN110765073A CN110765073A CN201910858586.8A CN201910858586A CN110765073A CN 110765073 A CN110765073 A CN 110765073A CN 201910858586 A CN201910858586 A CN 201910858586A CN 110765073 A CN110765073 A CN 110765073A
- Authority
- CN
- China
- Prior art keywords
- file
- directory
- node
- path
- storage system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Abstract
本发明公开了一种分布式存储系统的文件管理方法、介质、设备及装置,其中方法包括:获取待存储文件在分布式存储系统中的存储全路径;对存储全路径进行分割,以获取对应待存储文件的次级目录路径和文件名;判断是否存在索引信息为次级目录路径的第一目录节点;如果是,则根据父目录节点的目录名对第一目录节点进行查询;判断第一目录节点中是否存在目录名与待存储文件父目录节点的目录名相同的第二目录节点;如果是,则根据文件名新建待存储文件对应的文件节点,并构建文件节点与第二目录节点之间的映射关系;能够只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高对于文件的存储效率和查询效率。
Description
技术领域
本发明涉及分布式存储技术领域,特别涉及一种分布式存储系统的文件管理方法、一种计算机可读存储介质、一种计算机设备和一种分布式存储系统的文件管理装置。
背景技术
分布式存储系统,是将数据分散存储在多台独立的设备上,与传统的存储方式不同,分布式存储系统消除了存储服务器对于系统性能提升的瓶颈,提高了数据可靠性和安全性。
相关技术中,在对文件进行管理时,大多采用以目录的全路径为索引进行文件的存储和查询,在文件的存储数据量较大时,这种方式将导致索引文件的信息量大,并且,使得分布式存储系统对于文件的存储和查询的效率较低。
发明内容
本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种分布式存储系统的文件管理方法,能够只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
本发明的第二个目的在于提出一种计算机可读存储介质。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种分布式存储系统的管理装置。
为达到上述目的,本发明第一方面实施例提出了一种分布式存储系统的管理方法,包括以下步骤:获取待存储文件在分布式存储系统中的存储全路径;对所述存储全路径进行分割,以获取对应所述待存储文件的次级目录路径和文件名;判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第一目录节点;如果是,则根据待存储文件父目录节点的目录名对所述第一目录节点进行查询;判断所述第一目录节点中是否存在目录名与所述待存储文件父目录节点的目录名相同的第二目录节点;如果是,则根据所述文件名新建所述待存储文件对应的文件节点,并构建所述文件节点与所述第二目录节点之间的映射关系。
根据本发明实施例的分布式存储系统的管理方法,获取待存储文件在分布式存储系统中的存储全路径;对所述存储全路径进行分割,以获取对应所述待存储文件的次级目录路径和文件名;判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第一目录节点;如果是,则根据待存储文件父目录节点的目录名对所述第一目录节点进行查询;判断所述第一目录节点中是否存在目录名与所述待存储文件父目录节点的目录名相同的第二目录节点;如果是,则根据所述文件名新建所述待存储文件对应的文件节点,并构建所述文件节点与所述第二目录节点之间的映射关系;从而实现只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
另外,根据本发明上述实施例提出的分布式存储系统的文件管理方法还可以具有如下附加的技术特征:
可选地,获取待存储文件在分布式存储系统中的存储全路径,之后,还包括:根据所述存储全路径判断所述待存储文件的父目录节点是否为根目录节点;如果是,则新建所述待存储文件对应的文件节点,并构建该文件节点与所述根目录之间的映射关系。
可选地,如果所述分布式存储系统中不存在索引信息为所述次级目录路径的第一目录节点,则根据所述存储全路径中目录节点的排序新建缺失的目录节点,并根据所述存储全路径中目录节点的排序构建每个新建目录节点与该新建目录节点的上一层目录节点之间的映射关系。
可选地,还包括:获取待查询文件对应的查询路径;对所述查询路径进行分割,以获取对应所述待查询文件的次级目录路径和文件名;判断所述分布式存储系统中是否存在与所述待查询文件具有相同文件名的文件节点;如果是,则根据所述查询文件的次级目录路径对所述分布式存储系统进行查询;判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第三目录节点;如果是,则对所述次级目录路径、所述第三目录节点的目录名和所述待查询文件的文件名进行拼接,以生成预选查询路径;判断所述查询路径和所述预选查询路径是否一致;如果是,则调用该预选查询路径所对应的文件节点。
为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有分布式存储系统的文件管理程序,该分布式存储系统的文件管理程序被处理器执行时实现如上述的分布式存储系统的文件管理方法。
根据本发明实施例的计算机可读存储介质,通过存储分布式存储系统的文件管理程序,以使得处理器在执行该程序时实现如上述的分布式存储系统的文件管理方法,从而实现只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
为达到上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述的分布式存储系统的文件管理方法。
根据本发明实施例的计算机设备,通过存储器存储计算机程序,以使得处理器在执行该程序时,实现如上述的分布式存储系统的文件管理方法,从而实现只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
为达到上述目的,本发明实施例还提出了一种分布式存储系统的文件管理装置,包括:获取模块,所述获取模块用于获取待存储文件在分布式存储系统中的存储全路径;分割模块,所述分割模块用于对所述存储全路径进行分割,以获取对应所述待存储文件的次级目录路径和文件名;第一判断模块,所述第一判断模块用于判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第一目录节点;第二判断模块,所述第二判断模块用于根据待存储文件父目录节点的目录名对所述第一目录节点进行查询,以根据查询结果判断所述第一目录节点中是否存在目录名与所述待存储文件父目录节点的目录名相同的第二目录节点;构建模块,所述构建模块用于在所述第一目录节点中存在目录名与所述待存储文件父目录节点的目录名相同的第二目录节点时,新建所述待存储文件对应的文件节点,并构建所述文件节点与所述第二目录节点之间的映射关系。
根据本发明实施例的分布式存储系统的文件管理装置,设置获取模块对待存储文件在分布式存储系统中的存储全路径进行获取,即获取用户待存储的文件对应的完整路径,并通过分隔模块对存储全路径进行分割,以获取该待存储文件的次级目录路径(即父目录的上一级目录所对应的路径)和文件名,通过第一判断模块判断分布式存储系统中是否存在有索引信息为该次级目录路径的第一目录节点;当判断结果为存在时,通过第二判断模块根据待存储文件父目录节点的目录名对第一目录节点进行查询,以根据查询结果判断第一目录节点中是否存在目录名与待存储文件父目录节点的目录名相同的第二目录节点,如果存在,则通过构建模块根据所述文件名新建待存储文件所对应的文件节点,并构建新建的文件节点与第二目录节点之间的映射关系,从而实现只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
另外,根据本发明上述实施例提出的分布式存储系统的文件管理装置还可以具有如下附加的技术特征:
可选地,所述第一判断模块还用于在获取待存储文件在分布式存储系统中的存储全路径,之后,根据所述存储全路径判断所述待存储文件的父目录节点是否为根目录节点;所述构建模块还用于在所述待存储文件的父目录节点为根目录节点时,新建所述待存储文件对应的文件节点,并构建该文件节点与所述根目录之间的映射关系。
可选地,如果所述分布式存储系统中不存在索引信息为所述次级目录路径的第一目录节点,则根据所述存储全路径中目录节点的排序新建缺失的目录节点,并根据所述存储全路径中目录节点的排序构建每个新建目录节点与该新建目录节点的上一层目录节点之间的映射关系。
可选地,所述获取模块还用于获取待查询文件对应的查询路径;所述分割模块还用于对所述查询路径进行分割,以获取对应所述待查询文件的次级目录路径和文件名;所述第一判断模块还用于判断所述分布式存储系统中是否存在与所述待查询文件具有相同文件名的文件节点;所述第二判断模块还用于在所述分布式存储系统中存在与所述待查询文件具有相同文件名的文件节点时,根据所述查询文件的次级目录路径对所述分布式存储系统进行查询,并判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第三目录节点;还包括,拼接模块和调用模块,所述拼接模块用于在所述分布式存储系统中存在索引信息为所述次级目录路径的第三目录节点时,对所述次级目录路径、所述第三目录节点的目录名和所述待查询文件的文件名进行拼接,以生成预选查询路径,所述调用模块用于判断所述查询路径和所述预选查询路径是否一致,并在判断所述查询路径和所述预选查询路径一致时,调用该预选查询路径所对应的文件节点。
附图说明
图1为根据本发明实施例的分布式存储系统的文件管理方法的流程示意图;
图2为根据本发明实施例的分布式存储系统的文件管理方法的文件查询流程示意图;
图3为根据本发明另一实施例的分布式存储系统的文件管理方法的流程示意图;
图4为根据本发明实施例的分布式存储系统的文件管理装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
现有的分布式存储系统中,在索引信息中需要对目录的全路径进行存储,导致索引文件的信息量过大,影响分布式存储系统的存储和查询效率。根据本发明实施例的分布式存储系统的管理方法,获取待存储文件在分布式存储系统中的存储全路径;对所述存储全路径进行分割,以获取对应所述待存储文件的次级目录路径和文件名;判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第一目录节点;如果是,则根据待存储文件父目录节点的目录名对所述第一目录节点进行查询;判断所述第一目录节点中是否存在目录名与所述待存储文件父目录节点的目录名相同的第二目录节点;如果是,则新建所述待存储文件对应的文件节点,并构建所述文件节点与所述第二目录节点之间的映射关系;从而实现只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
图1为根据本发明实施例的分布式存储系统的文件管理方法的流程示意图,如图1所示,该分布式存储系统的文件管理方法包括以下步骤:
S101,获取待存储文件在分布式存储系统中的存储全路径。
也就是说,对待存储文件在分布式存储系统中的完整存储路径进行获取。
作为一种示例,当用户待存储文件的文件名为UUID1.jpg时,通过获取用户输入的待存储文件所对应的存储全路径:/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0888/UUID1.jpg,其中,(/闽DH0888)即为待存储文件的父目录节点,(/2019)即为待存储文件的次级目录节点。
在一些实施例中,为了进一步提高本发明实施例提出的分布式存储系统的文件管理方法对于文件的存储效率,在获取待存储文件在分布式存储系统中的存储全路径,之后,本方法还包括:
根据存储全路径判断待存储文件的父目录节点是否为根目录节点;
如果是,则新建待存储文件对应的文件节点,并构建该文件节点与根目录之间的映射关系。
也就是说,在获取到待存储文件所对应的存储全路径之后,根据获取到的存储全路径判断待存储文件所要存储入的父目录节点是否为根目录节点,如果是,则直接新建待存储文件所对应的文件节点,并构建该新建的文件节点与根目录之间的映射关系,从而完成待存储文件的存储。
S102,对存储全路径进行分割,以获取对应待存储文件的次级目录路径和文件名。
也就是说,在获取到用户发送的待存储文件在分布式存储系统中的存储全路径之后,对获取到的存储全路径进行分割,以获取对应该待存储文件的次级目录路径和文件名。
作为一种示例,当获取到的待存储文件在分布式存储系统中的存储全路径为/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0888/UUID1.jpg时,对该存储全路径进行分割,可知,待存储文件的次级目录路径为/home/hadoop/xmgps/yfzx/taxi/card/2019,待存储文件的文件名为UUID1.jpg。
S103,判断分布式存储系统中是否存在索引信息为次级目录路径的第一目录节点。
也就是说,在分布式存储系统的目录节点中,存储有当前目录节点上一层目录的存储全路径,以将上一层目录的存储全路径作为索引信息,从而,在获取到待存储文件所对应的次级目录路径时,可以根据该次级目录路径判断是否存在相应的第一目录节点。
作为一种示例,当次级目录路径为/home/hadoop/xmgps/yfzx/taxi/card/2019时,根据该次级目录路径对分布式存储系统中目录节点的索引信息进行查询,其中,分布是存储系统中的每个目录节点存储有自身所对应的上一层目录节点的存储全路径,从而,根据该次级目录路径可以检索得到相应的目录节点,具体地,根据/home/hadoop/xmgps/yfzx/taxi/card/2019进行检索时,检索得到的结果包括:三个目录节点:/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0888;/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0777;/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0666
在一些实施例中,如果分布式存储系统中不存在索引信息为待存储文件的次级目录路径的第一目录节点,则根据存储全路径中目录节点的排序新建缺失的目录节点,并根据存储全路径中目录节点的排序构建每个新建目录节点与该新建目录节点的上一层目录节点之间的映射关系。
作为一种示例,首先,预设PATH=当前待查询目录节点的DIR值,PNAME=当前待查询目录节点的目录名,然后,在获取到待存储文件在分布式存储系统中的全路径/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0888/UUID1.jpg之后,更新PATH=该待存储文件的次级目录节点路径(/home/hadoop/xmgps/yfzx/taxi/card/2019),PNAME=闽DH0888,根据PATH对分布式存储系统中目录节点的索引信息进行查询,如果查询结果为空,则新建目录名为“闽DH0888”的目录节点,并更新索引信息为“/home/hadoop/xmgps/yfzx/taxi/card/2019”,以建立该新建的目录节点与上一层目录节点之间的映射关系;接着,待该目录节点新建完成之后,更新PATH=/home/hadoop/xmgps/yfzx/taxi/card,PNAME=2019,根据当前PATH对分布式存储系统中目录节点的索引信息进行查询,如果查询结果为存在索引信息为“/home/hadoop/xmgps/yfzx/taxi/card”的目录节点,则进一步在查询结果中寻找是否存在目录节点的名称=当前PNAME(即2019),如果否,则新建目录名为“2019”的目录节点,并更新索引信息为当前PATH值“/home/hadoop/xmgps/yfzx/taxi”,以建立该新建的目录节点与上一层目录节点之间的映射关系。
需要说明的是,上述过程仅是对目录节点构建过程的概述,可以理解,在对上述过程进行迭代之后,可以对分布式存储系统中缺失的目录节点进行有效地补充,并构建新建的目录节点与上一层目录节点之间的映射关系。
S104,如果是,则根据待存储文件父目录节点的目录名对第一目录节点进行查询。
S105,判断第一目录节点中是否存在目录名与待存储文件父目录节点的目录名相同的第二目录节点。
也就是说,如果分布式存储系统中存在索引信息为待存储文件次级目录路径的目录节点,则在这些目录节点中进行查询,以判断这些目录节点中是否存在目录名为待存储文件父目录名的目录节点。
作为一种示例,当存在三个目录节点:/闽DH0888、闽DH0777和闽DH0666的索引信息与待存储文件的次级目录路径一直,均为(/home/hadoop/xmgps/yfzx/taxi/card/2019),则进一步地,根据待存储文件的父目录节点的目录名“/闽DH0888”在结果中进行查询,从而,根据查询结果可知,结果中存在目录名一致的目录节点,即言,待存储文件需要进行存储的目录节点已经存在。
S106,如果是,则根据文件名新建待存储文件对应的文件节点,并构建文件节点与第二目录节点之间的映射关系。
也就是说,如果待存储文件的父目录节点存在的话,则根据待存储文件的文件名进行待存储文件所对应的文件节点的新建,并构建该文件节点与已存在的父目录节点之间的映射关系,从而,完成待存储文件的存储。
可以理解,通过上述分布式存储系统的文件管理方法,可以在保证文件可正常存储、查询和读取的前提下,使得分布式存储系统中只需要对目录节点的索引信息进行存储,而不需要存储文件节点对应的索引信息进行存储,从而可以大幅度地降低分布式存储系统中索引信息的存储量;特别是在海量的数据存储过程当中,往往目录节点数量较小,而文件节点的数量巨大,通过这种方式可以大幅降低索引信息的数据量,同时,提高分布式存储系统的存储效率和查询效率。
在一些实施例中,如图2所示,为了提高分布式存储系统的文件管理方法对于文件的调用效率,该分布式存储系统的文件管理方法还包括:
S201,获取待查询文件对应的查询路径。
也就是说,获取用户的查询指令,以根据用户的查询指令获取待查询文件所对应的查询路径。
S202,对查询路径进行分割,以获取对应待查询文件的次级目录路径和文件名。
也就是说,在获取到文件的查询路径之后,对获取到的查询路径进行分割,以获取对应该待查询文件的次级目录路径(即该文件父目录的上一层目录)和文件名。
S203,判断分布式存储系统中是否存在与待查询文件具有相同文件名的文件节点。
S204,如果是,则根据查询文件的次级目录路径对分布式存储系统进行查询。
作为一种示例,当获取到的查询路径为/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0888/UUID1.jpg,首先,对查询路径进行分割,以获得其次级目录路径“/home/hadoop/xmgps/yfzx/taxi/card/2019/”和文件名“UUID1.jpg”,然后,根据待查询文件的文件名“UUID1.jpg”查询分布式存储系统中每个文件节点的文件名,以判断是否存在与该文件名“UUID1.jpg”文件名相同的文件节点。
作为另一种示例,在获取到查询路径为/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0888/UUID1.jpg之后,也可以将查询路径分割为父目录路径/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0888和文件名UUID1.jpg,从而,后续根据父目录路径的DIR值(索引信息,即当前目录的上一层目录的全路径)获取次级目录路径。
S205,判断分布式存储系统中是否存在索引信息为次级目录路径的第三目录节点;
S206,如果是,则对次级目录路径、第三目录节点的目录名和待查询文件的文件名进行拼接,以生成预选查询路径;
S207,判断查询路径和预选查询路径是否一致;
S208,如果是,则调用该预选查询路径所对应的文件节点。
作为一种示例,如果分布式存储系统中不存在与文件名“UUID1.jpg”相同的文件节点,则认为分布式存储系统中不存在该文件,返回结果;如果分布式存储系统中存在与文件名“UUID1.jpg”相同的文件节点,则进一步地,根据次级目录路径“/home/hadoop/xmgps/yfzx/taxi/card/2019”对分布式存储系统中的目录节点的索引信息进行查询,具体地,查询结果中为存在这样的目录节点,并且,查询结果为多个,分别为目录名为DH0888、闽DH0777、闽DH0666的目录节点,接着,根据查询结果进行全存储路径(待查询文件的次级目录路径+查询结果中任意一个目录节点的目录名+待查询文件的文件名)的拼接,拼接获得三个全存储路径,分别为/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0888/UUID1.jpg;/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0777/UUID1.jpg;/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0666/UUID1.jpg;然后根据拼接结果与待查询文件的查询路径(/home/hadoop/xmgps/yfzx/taxi/card/2019/闽DH0888/UUID1.jpg)进行比对,如果拼接结果与待查询文件的查询路径均不一致,则认为分布式存储系统中不存在该待查询文件,如果一致,则对该文件进行调用。
在本发明的具体实施例中,如图3所示,本发明实施例提出的分布式存储系统的文件管理方法包括以下步骤:
S301,获取待存储文件在分布式存储系统中的存储全路径。
S302,判断待存储文件判断待存储文件的父目录节点是否为根目录节点,如果是,则执行步骤S303,如果否,则执行步骤S304。
S303,新建待存储文件对应的文件节点,并构建该文件节点与根目录之间的映射关系。
S304,对存储全路径进行分割,以获取对应待存储文件的次级目录路径和文件名。
S305,赋值PATH=次级目录路径,并赋值PNAME=父目录目录名;
S306,判断分布式存储系统中是否存在DIR值=PATH的目录节点,如果是,则执行步骤S309,如果否,则执行步骤S307。
S307,新建文件名为当前PNAME值的目录节点,并更新该新建目录节点的DIR值为PATH的值。
S308,将PATH更新为上一层目录路径,并将PNAME更新为上一层目录节点的目录名,并返回步骤S306。
S309,判断存在DIR值=PATH的目录节点中是否包含目录名=PNAME的目录节点;如果是,则执行步骤S310,如果否,则返回步骤S307,迭代步骤S306-S309,直至将缺失的目录节点补全。
S310,建立新建目录节点与上一目录节点之间的映射关系。
S311,新建待存储文件所对应的文件节点,并构建该文件节点与父目录节点知之间的映射关系。
根据本发明实施例的分布式存储系统的管理方法,获取待存储文件在分布式存储系统中的存储全路径;对所述存储全路径进行分割,以获取对应所述待存储文件的次级目录路径和文件名;判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第一目录节点;如果是,则根据待存储文件父目录节点的目录名对所述第一目录节点进行查询;判断所述第一目录节点中是否存在目录名与所述待存储文件父目录节点的目录名相同的第二目录节点;如果是,则根据所述文件名新建所述待存储文件对应的文件节点,并构建所述文件节点与所述第二目录节点之间的映射关系;从而实现只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
为了实现上述实施例,本发明实施例还提出了一种计算机可读存储介质,其上存储有分布式存储系统的文件管理程序,该分布式存储系统的文件管理程序被处理器执行时实现如上述的分布式存储系统的文件管理方法。
根据本发明实施例的计算机可读存储介质,通过存储分布式存储系统的文件管理程序,以使得处理器在执行该程序时实现如上述的分布式存储系统的文件管理方法,从而实现只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
为了实现上述实施例,本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述的分布式存储系统的文件管理方法。
根据本发明实施例的计算机设备,通过存储器存储计算机程序,以使得处理器在执行该程序时,实现如上述的分布式存储系统的文件管理方法,从而实现只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
为了实现上述实施例,本发明实施例还提出了一种分布式存储系统的文件管理装置,如图4所示,该分布式存储系统的文件管理装置包括:获取模块10、分割模块20、第一判断模块30、第二判断模块40和构建模块50。
其中,获取模块10用于获取待存储文件在分布式存储系统中的存储全路径;
分割模块20用于对存储全路径进行分割,以获取对应待存储文件的次级目录路径和文件名;
第一判断模块30用于判断分布式存储系统中是否存在索引信息为次级目录路径的第一目录节点;
第二判断模块40用于根据待存储文件父目录节点的目录名对第一目录节点进行查询,以根据查询结果判断第一目录节点中是否存在目录名与待存储文件父目录节点的目录名相同的第二目录节点;
构建模块50用于在第一目录节点中存在目录名与待存储文件父目录节点的目录名相同的第二目录节点时,根据文件名新建待存储文件对应的文件节点,并构建文件节点与第二目录节点之间的映射关系。
在一些实施例中,第一判断模块30还用于在获取待存储文件在分布式存储系统中的存储全路径,之后,根据存储全路径判断待存储文件的父目录节点是否为根目录节点;
构建模块50还用于在待存储文件的父目录节点为根目录节点时,新建待存储文件对应的文件节点,并构建该文件节点与根目录之间的映射关系。
在一些实施例中,如果所述分布式存储系统中不存在索引信息为所述次级目录路径的第一目录节点,则根据所述存储全路径中目录节点的排序新建缺失的目录节点,并根据所述存储全路径中目录节点的排序构建每个新建目录节点与该新建目录节点的上一层目录节点之间的映射关系。
在一些实施例中,获取模块还用于获取待查询文件对应的查询路径;
分割模块20还用于对查询路径进行分割,以获取对应待查询文件的次级目录路径和文件名;
第一判断模块30还用于判断分布式存储系统中是否存在与待查询文件具有相同文件名的文件节点;
第二判断模块40还用于在分布式存储系统中存在与待查询文件具有相同文件名的文件节点时,根据查询文件的次级目录路径对分布式存储系统进行查询,并判断分布式存储系统中是否存在索引信息为次级目录路径的第三目录节点;
还包括,拼接模块和调用模块(图中未示出),拼接模块用于在分布式存储系统中存在索引信息为次级目录路径的第三目录节点时,对次级目录路径、第三目录节点的目录名和待查询文件的文件名进行拼接,以生成预选查询路径,调用模块用于判断查询路径和预选查询路径是否一致,并在判断查询路径和预选查询路径一致时,调用该预选查询路径所对应的文件节点。
需要说明的是,上述关于图1中分布式存储系统的文件管理方法的描述同样适用于该分布式存储系统的文件管理装置,在此不做赘述。
综上所述,根据本发明实施例的分布式存储系统的文件管理装置,设置获取模块对待存储文件在分布式存储系统中的存储全路径进行获取,即获取用户待存储的文件对应的完整路径,并通过分隔模块对存储全路径进行分割,以获取该待存储文件的次级目录路径(即父目录的上一级目录所对应的路径)和文件名,通过第一判断模块判断分布式存储系统中是否存在有索引信息为该次级目录路径的第一目录节点;当判断结果为存在时,通过第二判断模块根据待存储文件父目录节点的目录名对第一目录节点进行查询,以根据查询结果判断第一目录节点中是否存在目录名与待存储文件父目录节点的目录名相同的第二目录节点,如果存在,则通过构建模块根据所述文件名新建待存储文件所对应的文件节点,并构建新建的文件节点与第二目录节点之间的映射关系,从而实现只存储目录节点索引不存储文件节点索引,有效降低分布式存储系统中的索引文件存储数据量,提高分布式存储系统对于文件的存储效率和查询效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种分布式存储系统的文件管理方法,其特征在于,包括以下步骤:
获取待存储文件在分布式存储系统中的存储全路径;
对所述存储全路径进行分割,以获取对应所述待存储文件的次级目录路径和文件名;
判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第一目录节点;
如果是,则根据待存储文件父目录节点的目录名对所述第一目录节点进行查询;
判断所述第一目录节点中是否存在目录名与所述待存储文件父目录节点的目录名相同的第二目录节点;
如果是,则根据所述文件名新建所述待存储文件对应的文件节点,并构建所述文件节点与所述第二目录节点之间的映射关系。
2.如权利要求1所述的分布式存储系统的文件管理方法,其特征在于,获取待存储文件在分布式存储系统中的存储全路径,之后,还包括:
根据所述存储全路径判断所述待存储文件的父目录节点是否为根目录节点;
如果是,则新建所述待存储文件对应的文件节点,并构建该文件节点与所述根目录之间的映射关系。
3.如权利要求1所述的分布式存储系统的文件管理方法,其特征在于,如果所述分布式存储系统中不存在索引信息为所述次级目录路径的第一目录节点,则根据所述存储全路径中目录节点的排序新建缺失的目录节点,并根据所述存储全路径中目录节点的排序构建每个新建目录节点与该新建目录节点的上一层目录节点之间的映射关系。
4.如权利要求1-3任一项中所述的分布式存储系统的文件管理方法,其特征在于,还包括:
获取待查询文件对应的查询路径;
对所述查询路径进行分割,以获取对应所述待查询文件的次级目录路径和文件名;
判断所述分布式存储系统中是否存在与所述待查询文件具有相同文件名的文件节点;
如果是,则根据所述查询文件的次级目录路径对所述分布式存储系统进行查询;
判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第三目录节点;
如果是,则对所述次级目录路径、所述第三目录节点的目录名和所述待查询文件的文件名进行拼接,以生成预选查询路径;
判断所述查询路径和所述预选查询路径是否一致;
如果是,则调用该预选查询路径所对应的文件节点。
5.一种计算机可读存储介质,其特征在于,其上存储有分布式存储系统的文件管理程序,该分布式存储系统的文件管理程序被处理器执行时实现如权利要求1-4中任一项所述的分布式存储系统的文件管理方法。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1-4中任一项所述的分布式存储系统的文件管理方法。
7.一种分布式存储系统的文件管理装置,其特征在于,包括:
获取模块,所述获取模块用于获取待存储文件在分布式存储系统中的存储全路径;
分割模块,所述分割模块用于对所述存储全路径进行分割,以获取对应所述待存储文件的次级目录路径和文件名;
第一判断模块,所述第一判断模块用于判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第一目录节点;
第二判断模块,所述第二判断模块用于根据待存储文件父目录节点的目录名对所述第一目录节点进行查询,以根据查询结果判断所述第一目录节点中是否存在目录名与所述待存储文件父目录节点的目录名相同的第二目录节点;
构建模块,所述构建模块用于在所述第一目录节点中存在目录名与所述待存储文件父目录节点的目录名相同的第二目录节点时,根据所述文件名新建所述待存储文件对应的文件节点,并构建所述文件节点与所述第二目录节点之间的映射关系。
8.如权利要求7所述的分布式存储系统的文件管理装置,其特征在于,所述第一判断模块还用于在获取待存储文件在分布式存储系统中的存储全路径,之后,根据所述存储全路径判断所述待存储文件的父目录节点是否为根目录节点;
所述构建模块还用于在所述待存储文件的父目录节点为根目录节点时,新建所述待存储文件对应的文件节点,并构建该文件节点与所述根目录之间的映射关系。
9.如权利要求7所述的分布式存储系统的文件管理装置,其特征在于,如果所述分布式存储系统中不存在索引信息为所述次级目录路径的第一目录节点,则根据所述存储全路径中目录节点的排序新建缺失的目录节点,并根据所述存储全路径中目录节点的排序构建每个新建目录节点与该新建目录节点的上一层目录节点之间的映射关系。
10.如权利要求7-9中任一项所述的分布式存储系统的文件管理装置,其特征在于,
所述获取模块还用于获取待查询文件对应的查询路径;
所述分割模块还用于对所述查询路径进行分割,以获取对应所述待查询文件的次级目录路径和文件名;
所述第一判断模块还用于判断所述分布式存储系统中是否存在与所述待查询文件具有相同文件名的文件节点;
所述第二判断模块还用于在所述分布式存储系统中存在与所述待查询文件具有相同文件名的文件节点时,根据所述查询文件的次级目录路径对所述分布式存储系统进行查询,并判断所述分布式存储系统中是否存在索引信息为所述次级目录路径的第三目录节点;
还包括,拼接模块和调用模块,所述拼接模块用于在所述分布式存储系统中存在索引信息为所述次级目录路径的第三目录节点时,对所述次级目录路径、所述第三目录节点的目录名和所述待查询文件的文件名进行拼接,以生成预选查询路径,所述调用模块用于判断所述查询路径和所述预选查询路径是否一致,并在判断所述查询路径和所述预选查询路径一致时,调用该预选查询路径所对应的文件节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910858586.8A CN110765073B (zh) | 2019-09-11 | 2019-09-11 | 分布式存储系统的文件管理方法、介质、设备及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910858586.8A CN110765073B (zh) | 2019-09-11 | 2019-09-11 | 分布式存储系统的文件管理方法、介质、设备及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110765073A true CN110765073A (zh) | 2020-02-07 |
CN110765073B CN110765073B (zh) | 2022-06-07 |
Family
ID=69329404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910858586.8A Active CN110765073B (zh) | 2019-09-11 | 2019-09-11 | 分布式存储系统的文件管理方法、介质、设备及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110765073B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148680A (zh) * | 2020-09-27 | 2020-12-29 | 极道科技(北京)有限公司 | 一种基于分布式图数据库的文件系统元数据管理方法 |
CN113010476A (zh) * | 2021-03-15 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 元数据查找方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202367A (zh) * | 2016-07-07 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种对象信息的处理方法及装置 |
US20170139951A1 (en) * | 2015-11-12 | 2017-05-18 | Microsoft Technology Licensing, Llc | File system with distributed entity state |
US20170147602A1 (en) * | 2015-11-24 | 2017-05-25 | Red Hat, Inc. | Allocating file system metadata to storage nodes of distributed file system |
CN108491549A (zh) * | 2018-04-09 | 2018-09-04 | 深圳市茁壮网络股份有限公司 | 一种分布式存储系统中文件目录的创建方法及装置 |
CN108920631A (zh) * | 2018-06-29 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种文件查询方法、装置、设备及可读存储介质 |
-
2019
- 2019-09-11 CN CN201910858586.8A patent/CN110765073B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170139951A1 (en) * | 2015-11-12 | 2017-05-18 | Microsoft Technology Licensing, Llc | File system with distributed entity state |
US20170147602A1 (en) * | 2015-11-24 | 2017-05-25 | Red Hat, Inc. | Allocating file system metadata to storage nodes of distributed file system |
CN106202367A (zh) * | 2016-07-07 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种对象信息的处理方法及装置 |
CN108491549A (zh) * | 2018-04-09 | 2018-09-04 | 深圳市茁壮网络股份有限公司 | 一种分布式存储系统中文件目录的创建方法及装置 |
CN108920631A (zh) * | 2018-06-29 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种文件查询方法、装置、设备及可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148680A (zh) * | 2020-09-27 | 2020-12-29 | 极道科技(北京)有限公司 | 一种基于分布式图数据库的文件系统元数据管理方法 |
CN112148680B (zh) * | 2020-09-27 | 2024-04-05 | 极道科技(北京)有限公司 | 一种基于分布式图数据库的文件系统元数据管理方法 |
CN113010476A (zh) * | 2021-03-15 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 元数据查找方法、装置、设备及计算机可读存储介质 |
CN113010476B (zh) * | 2021-03-15 | 2023-12-22 | 腾讯云计算(北京)有限责任公司 | 元数据查找方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110765073B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10496627B2 (en) | Consistent ring namespaces facilitating data storage and organization in network infrastructures | |
CN110347651B (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
US10068033B2 (en) | Graph data query method and apparatus | |
CN107015985B (zh) | 一种数据存储与获取方法及装置 | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
CN103229173A (zh) | 元数据管理方法及系统 | |
EP3125501A1 (en) | File synchronization method, server, and terminal | |
CN110765073B (zh) | 分布式存储系统的文件管理方法、介质、设备及装置 | |
CN105426375A (zh) | 一种关系网络的计算方法及装置 | |
CN105991478A (zh) | 服务器资源分配方法及其系统 | |
CN108920105B (zh) | 基于社区结构的图数据分布式存储方法及装置 | |
CN111782134A (zh) | 数据处理方法、装置、系统和计算机可读存储介质 | |
CN111399761B (zh) | 存储资源分配方法、装置及设备、存储介质 | |
CN109189343B (zh) | 一种元数据落盘方法、装置、设备及计算机可读存储介质 | |
CN107818113B (zh) | 文件访问位置的确定方法及装置 | |
CN108304555A (zh) | 分布式地图数据处理方法 | |
CN113656438B (zh) | 数据树的数据查询方法及装置 | |
CN107643959B (zh) | 镜像文件处理方法和装置 | |
CN115473895A (zh) | 泛在环境下的数字对象仓库节点共识组划分方法和装置 | |
CN115391341A (zh) | 分布式图数据处理系统、方法、装置、设备及存储介质 | |
CN110502480B (zh) | 分布式存储数据检索方法、系统、装置及可读存储介质 | |
CN108959300A (zh) | 文件存储方法和存储装置 | |
CN111722783B (zh) | 数据存储方法及装置 | |
CN115221360A (zh) | 树形结构配置方法和系统 | |
CN112131226A (zh) | 索引获得方法、数据查询方法、及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |