CN117435559A - 元数据分层管理方法、装置、存储介质及电子设备 - Google Patents

元数据分层管理方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN117435559A
CN117435559A CN202311756634.5A CN202311756634A CN117435559A CN 117435559 A CN117435559 A CN 117435559A CN 202311756634 A CN202311756634 A CN 202311756634A CN 117435559 A CN117435559 A CN 117435559A
Authority
CN
China
Prior art keywords
metadata
file
target
attribute information
index table
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
Application number
CN202311756634.5A
Other languages
English (en)
Other versions
CN117435559B (zh
Inventor
臧林劼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311756634.5A priority Critical patent/CN117435559B/zh
Publication of CN117435559A publication Critical patent/CN117435559A/zh
Application granted granted Critical
Publication of CN117435559B publication Critical patent/CN117435559B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种元数据分层管理方法、装置、存储介质及电子设备,涉及计算机技术领域,该方法包括:在客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对元数据请求进行解析,确定元数据请求对应的目标操作,并将目标操作转发至事务处理单元;事务处理单元基于目标操作管理文件存储组件中存储的文件属性信息表,和/或,事务处理单元基于目标操作管理数据库存储组件中的元数据索引表。本申请提供的元数据分层管理方法、装置、存储介质及电子设备,用于通过将元数据信息中的文件属性信息与其他元数据中的其他层次结构信息分开处理,来降低高并发下分布式锁的开销,从而提高元数据的访问效率。

Description

元数据分层管理方法、装置、存储介质及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种元数据分层管理方法、装置、存储介质及电子设备。
背景技术
分布式文件系统是一种将文件存储在多个不同的物理节点上,而不是在单个节点上的方法。这样可以提高文件的可用性、可靠性、性能和扩展性。分布式文件系统通常有一个或多个中心节点,负责管理文件的元数据,即文件的名称、大小、位置、权限等信息。客户端通过访问元数据节点,来找到文件所在的数据节点,然后直接与数据节点进行文件的读写操作。
然而,相关技术中的元数据访问负载不均衡,且由于分布式锁的存在,导致在高并发访问下,分布式锁的开销剧增,进一步影响元数据访问的效率。
发明内容
本申请的目的是提供一种元数据分层管理方法、装置、存储介质及电子设备,用于通过将元数据信息中的文件属性信息与其他元数据中的其他层次结构信息分开处理,来降低高并发下分布式锁的开销,从而提高元数据的访问效率。
本申请提供一种元数据分层管理方法,包括:
在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作; 基于所述目标操作管理所述分布式文件系统的文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表;其中,所述元数据索引表中记录有文件与目录、目录与目录之间的关联关系,以及目录的目录属性信息;所述文件属性信息表用于存储所述元数据索引表中所包含的各个文件的文件属性信息;所述元数据索引表以及所述文件属性信息表用于实现对文件元数据信息的分层管理。
可选地,所述元数据索引表包括:主键部分和区域部分;所述主键部分包括:分片编号,描述字符串;所述分片编号用于表示元数据所属分片的分片编号;所述描述字符串用于记录数据对象的名称;所述区域部分包括:对象编号,对象类型;所述对象编号用于表示数据对象的编号;所述对象类型用于表示数据对象的类型;所述数据对象的类型包括:文件对象,目录对象;所述文件属性信息表中以键值对的形式存储所述元数据索引表中文件对象的文件属性信息;所述键值对的键为对象编号,所述键值对的值为对象的文件属性信息。
可选地,所述区域部分还包括:用于记录目录属性信息的目标字段;在目标数据信息的描述字符串的内容为预设字符串的情况下,所述目标数据信息用于表征对应目录对象的目录属性信息。
可选地,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:在所述目标操作为第一操作的情况下,基于所述第一操作所携带的第一对象编号从所述元数据索引表的对象编号中筛选出与所述第一对象编号相匹配的第一数据信息,并将所述第一数据信息指示的对象类型确定为所述第一操作所要访问的第一目标对象的对象类型;其中,所述第一操作为属性获取操作。
可选地,在所述目标操作为第一操作的情况下,基于所述第一操作所携带的第一对象编号从所述元数据索引表的对象编号中筛选出与所述第一对象编号相同的目标信息,并将所述目标信息指示的对象类型确定为所述第一操作所要访问的第一目标对象的对象类型之后,所述方法还包括:在所述第一目标对象的对象类型为文件对象的情况下, 基于所述第一目标对象的对象编号从所述文件属性信息表中获取所述第一目标对象的文件属性信息。
可选地,在所述目标操作为第一操作的情况下,基于所述第一操作所携带的第一对象编号从所述元数据索引表的对象编号中筛选出与所述第一对象编号相同的目标信息,并将所述目标信息指示的对象类型确定为所述第一操作所要访问的第一目标对象的对象类型之后,所述方法还包括:在所述第一目标对象的对象类型为目录的情况下, 基于所述第一目标对象的所述第一对象编号从所述元数据索引表的分片编号中筛选出分片编号与所述第一对象编号相匹配、且描述字符串为所述预设字符串的第二数据信息,并从所述第二数据信息的目标字段对应的内容中提取出所述第一目标对象的目录属性信息。
可选地,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:在所述目标操作为第二操作的情况下,基于所述第二操作创建第二目标对象,并基于所述第二目标对象的对象编号以及所述第二目标对象的父目录的对象编号,在所述元数据索引表中添加所述第二目标对象的目录属性信息,以及基于所述第二目标对象的父目录的对象编号更新所述元数据索引表中所述第二目标对象的父目录的目录属性信息;其中,所述第二操作为目录创建操作。
可选地,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:在所述目标操作为第三操作的情况下,基于所述第三操作指示的第三对象编号从所述元数据索引表的对象编号中筛选出与所述第三对象编号相匹配的第三数据信息,并基于所述第三数据信息确定所述第三操作对应的第三目标对象的父目录的第一分片编号;删除所述元数据索引表中分片标号为第一分片编号、且描述字符串为所述第三目标对象的对象名称的数据信息,并更新所述第三目标对象的父目录的目录属性信息;其中,所述第三操作为文件删除操作。
可选地,所述删除所述元数据索引表中分片标号为第一分片编号、且描述字符串为所述第三目标对象的对象名称的数据信息,并更新所述第三目标对象的父目录的目录属性信息之后,所述方法还包括:在所述文件属性信息表的键值对中筛选出对象编号与所述第三对象编号相匹配的第三数据信息,并将所述第三数据信息从所述文件属性信息表的键值对中删除。
可选地,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:在所述目标操作为第四操作的情况下,基于所述第四操作在所述文件属性信息表的键值对中添加所述第四操作对应的第四目标对象的文件属性信息;基于所述第四目标对象的对象编号以及所述第四目标对象的父目录的对象编号在所述元数据索引表中添加所述第四目标对象对应的数据信息,并基于所述第四目标对象的父目录的对象编号,更新所述元数据索引表中所述第四目标对象的父目录的目录属性信息;其中,所述第四操作为文件创建操作。
可选地,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:在所述目标操作为第五操作的情况下,基于所述第五操作指示的第五目标对象的第五对象编号、所述第五目标对象的父目录的对象编号所述第五目标对象更新后的对象名称,在所述元数据索引表中添加所述第五目标对象的数据信息,并从所述元数据索引表中筛选出对象编号与所述第五对象编号相匹配、且对象类型为文件的第五数据信息,并将所述第五数据信息删除;其中,所述第五操作为文件重命名操作。
可选地,所述从所述元数据索引表中筛选出对象编号与所述第五对象编号相匹配、且对象类型为文件的第五数据信息,并将所述第五数据信息删除之后,所述方法还包括:在所述文件属性信息表的键值对中筛选出对象编号与所述第五对象编号相匹配的第五数据信息,并将所述第五数据信息从所述文件属性信息表的键值对中删除。
本申请还提供一种元数据分层管理装置,包括:
请求接收模块,用于在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作; 数据处理模块,用于基于所述目标操作管理所述分布式文件系统的文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表;其中,所述元数据索引表中记录有文件与目录、目录与目录之间的关联关系,以及目录的目录属性信息;所述文件属性信息表用于存储所述元数据索引表中所包含的各个文件的文件属性信息;所述元数据索引表以及所述文件属性信息表用于实现对文件元数据信息的分层管理。
可选地,所述元数据索引表包括:主键部分和区域部分;所述主键部分包括:分片编号,描述字符串;所述分片编号用于表示元数据所属分片的分片编号;所述描述字符串用于记录数据对象的名称;所述区域部分包括:对象编号,对象类型;所述对象编号用于表示数据对象的编号;所述对象类型用于表示数据对象的类型;所述数据对象的类型包括:文件对象,目录对象;所述文件属性信息表中以键值对的形式存储所述元数据索引表中文件对象的文件属性信息;所述键值对的键为对象编号,所述键值对的值为对象的文件属性信息。
可选地,所述区域部分还包括:用于记录目录属性信息的目标字段;在目标数据信息的描述字符串的内容为预设字符串的情况下,所述目标数据信息用于表征对应目录对象的目录属性信息。
可选地,所述数据处理模块,具体用于在所述目标操作为第一操作的情况下,基于所述第一操作所携带的第一对象编号从所述元数据索引表的对象编号中筛选出与所述第一对象编号相匹配的第一数据信息,并将所述第一数据信息指示的对象类型确定为所述第一操作所要访问的第一目标对象的对象类型;其中,所述第一操作为属性获取操作。
可选地,所述数据处理模块,具体还用于在所述第一目标对象的对象类型为文件对象的情况下, 基于所述第一目标对象的对象编号从所述文件属性信息表中获取所述第一目标对象的文件属性信息。
可选地,所述数据处理模块,具体用于在所述第一目标对象的对象类型为目录的情况下, 基于所述第一目标对象的所述第一对象编号从所述元数据索引表的分片编号中筛选出分片编号与所述第一对象编号相匹配、且描述字符串为所述预设字符串的第二数据信息,并从所述第二数据信息的目标字段对应的内容中提取出所述第一目标对象的目录属性信息。
可选地,所述数据处理模块,具体用于在所述目标操作为第二操作的情况下,基于所述第二操作创建第二目标对象,并基于所述第二目标对象的对象编号以及所述第二目标对象的父目录的对象编号,在所述元数据索引表中添加所述第二目标对象的目录属性信息,以及基于所述第二目标对象的父目录的对象编号更新所述元数据索引表中所述第二目标对象的父目录的目录属性信息;其中,所述第二操作为目录创建操作。
可选地,所述数据处理模块,具体用于在所述目标操作为第三操作的情况下,基于所述第三操作指示的第三对象编号从所述元数据索引表的对象编号中筛选出与所述第三对象编号相匹配的第三数据信息,并基于所述第三数据信息确定所述第三操作对应的第三目标对象的父目录的第一分片编号;所述数据处理模块,具体还用于删除所述元数据索引表中分片标号为第一分片编号、且描述字符串为所述第三目标对象的对象名称的数据信息,并更新所述第三目标对象的父目录的目录属性信息;其中,所述第三操作为文件删除操作。
可选地,所述数据处理模块,具体用于在所述文件属性信息表的键值对中筛选出对象编号与所述第三对象编号相匹配的第三数据信息,并将所述第三数据信息从所述文件属性信息表的键值对中删除。
可选地,所述数据处理模块,具体用于在所述目标操作为第四操作的情况下,基于所述第四操作在所述文件属性信息表的键值对中添加所述第四操作对应的第四目标对象的文件属性信息;所述数据处理模块,具体用于基于所述第四目标对象的对象编号以及所述第四目标对象的父目录的对象编号在所述元数据索引表中添加所述第四目标对象对应的数据信息,并基于所述第四目标对象的父目录的对象编号,更新所述元数据索引表中所述第四目标对象的父目录的目录属性信息;其中,所述第四操作为文件创建操作。
可选地,所述数据处理模块,具体用于在所述目标操作为第五操作的情况下,基于所述第五操作指示的第五目标对象的第五对象编号、所述第五目标对象的父目录的对象编号所述第五目标对象更新后的对象名称,在所述元数据索引表中添加所述第五目标对象的数据信息,并从所述元数据索引表中筛选出对象编号与所述第五对象编号相匹配、且对象类型为文件的第五数据信息,并将所述第五数据信息删除;其中,所述第五操作为文件重命名操作。
可选地,所述数据处理模块,具体用于在所述文件属性信息表的键值对中筛选出对象编号与所述第五对象编号相匹配的第五数据信息,并将所述第五数据信息从所述文件属性信息表的键值对中删除。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述任一种所述元数据分层管理方法的步骤。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述元数据分层管理方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述元数据分层管理方法的步骤。
本申请提供的元数据分层管理方法、装置、存储介质及电子设备,包括:在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作;事务处理单元基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表。如此,通过将元数据信息中的文件属性信息与其他元数据中的其他层次结构信息分开处理,来降低高并发下分布式锁的开销,从而提高元数据的访问效率。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的分布式文件系统元数据分层管理的架构示意图;
图2是本申请提供的数据库存储组件与文件存储组件之间的元数据组织管理结构示意图;
图3是本申请提供的元数据分层管理方法的流程示意图;
图4是本申请提供的元数据分层管理装置的结构示意图;
图5是本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
分布式文件系统是一种将文件存储在多个不同的物理节点上,而不是在单个节点上的方法。这样可以提高文件的可用性、可靠性、性能和扩展性。分布式文件系统通常有一个或多个中心节点,负责管理文件的元数据,即文件的名称、大小、位置、权限等信息。客户端通过访问元数据节点,来找到文件所在的数据节点,然后直接与数据节点进行文件的读写操作。随着海量业务数据的不断增加,元数据的负载能力、性能和扩展性对分布式文件系统至关重要。
分布式存储文件系统,元数据的性能、均衡性、可扩展性具有重要意义,据统计,海量业务文件系统数据场景中,如智能分析,高性能计算,数据运算演练等,元数据密集型业务模型占比65%,元数据处理请求量远远超过了对数据本身的处理,元数据操作量比数据操作量高出近30倍。
相关技术中,分布式文件系统存储集群通常会将元数据与数据进行分离处理,使用不同的存储介质进行独立存储,目的是提高元数据存储输入输出(Input/Output,IO)性能,分布式存储节点根据元数据管理策略分配元数据服务 (MetaData Server,MDS)或存储元数据服务器等角色。通过这种分离存储设置,客户端在数据访问之前首先需要先与MDS元数据服务进行交互。随着海量数据业务不断增加,元数据的性能和可扩展性受到了分布式一致性的限制,原因是分布式文件系统为了兼容性和可移植性,需要满足POSIX语义,并发访问文件数据时,需要一致性保护防止冲突,相关技术中,均会使用分布式锁进行文件访问保护防止冲突,使分布式访问过程具有强一致性,据统计,分布式锁在无冲突的情况下,锁的开销占元数据请求处理的40%,而在高并发锁保护的元数据请求工作负载下,锁开销高达90%,导致访问文件数据阻塞卡住,制约分布式存储文件系统服务的性能、扩展性和均衡性。元数据和数据分离的架构,元数据管理普遍采用目录子树分片导出导入的方式进行均匀分布式的元数据存储,但是,由于在创建元数据时会根据MDS元数据服务确定其存储物理位置,会导致元数据负载不均衡,同时客户端跨分片访问数据时,会加剧分布式锁的开销。
因此,制约分布式文件系统存储性能、扩展性和均衡性有如下几点:
1、分布式文件系统需要遵循POSIX标准协议接口,保证并发访问的数据一致性,满足事务性,需要分布式锁进行防冲突,这种细粒度元数据分布式锁开销严重影响分布式存储集群整体的IO性能。2、分布式存储元数据分离存储架构中,在创建元数据时会根据MDS元数据服务计算确定其存储物理位置,热点数据访问会导致元数据负载不均衡,同时客户端跨分片访问数据时,会加剧分布式锁的开销。3、在高负载特殊情况下,分布式锁机制会将所有事务序列化到一个分片上,将导致元数据的整体性能下降。
针对相关技术中存在的上述技术问题,本申请实施例提供了一种分布式文件系统的元数据分层管理方法,一种具有可扩展的、兼容POSIX语义的分布式文件系统元数据优化方法,通过新型目录结构分片管理方法来减少分布式锁开销,避免元数据管理性能瓶颈问题。
首先,本申请实施例提供的元数据分层管理方法采用元数据分层管理组织方式,通过目录结构分片和元数据索引方法,减少跨元数据节点目录分片的分布式一致性锁开销,本申请实施例提供的元数据分层管理方法在数据库层创建基于单个分片的一致性事务处理方法,每个事务将读写多个元数据进行分组转换为一个命令,以便在元数据单个分片中快速执行。
其次,通过使用分离元数据语义进一步提升元数据分片的性能,缩短元数据请求时延和不必要的锁冲突;一致性事务处理方法可以让元数据请求并行执行,无需获取分布式锁,因此,扩展了分布式文件系统元数据并发处理的性能。
最后,本申请实施例提供的元数据分层管理方法提出了可扩展、负载均衡、低时延的客户端元数据解析方法。将元数据的检索解析功能合并到客户端中,检索和解析不再由元数据服务MDS进行管理,可以减少MDS服务对分布式节点内存资源的占用,这种分层处理结构有助于客户端针对性进行元数据解析管理,提出了分布式文件系统的可扩展、负载均衡和性能。
本申请实施例提供的元数据分层管理方法对分布式文件系统元数据进行分层管理,提高分布式集群的性能、负载均衡性、可扩展性,并且遵循可移植操作系统接口(Portable Operating System Interface,POSIX)语义的元数据管理方法;本申请实施例提供的元数据分层管理方法在相关技术元数据和数据分离架构下进行完善,并提出对元数据请求进行组织管理方法,以减少分布式锁的开销,同时不违背元数据的一致性,多并发请求不发生冲突。
本申请实施例提供的元数据分层管理方法,采用元数据分层管理组织方式,大量并发访问元数据时能够负载均衡,减少元数据跨分片请求访问;本申请实施例提出对文件的属性信息和元数据其他层次结构信息进行扩展分区管理,这两种元数据在分层存储中进行管理,其中,本申请实施例方法将文件的属性信息存储在数据存储中,同时,采用分布式数据库层来管理元数据其他层次结构信息。该方法减少了分布式数据库层的负载压力,并采用局部性原理对元数据其他层次结构信息进行划分层次来减少跨分片数据一致性带来的分布式锁开销;本申请实施例通过基于Hash的分区存储管理方法将文件的属性信息映射为数据存储,避免了热点数据访问元数据负载不均衡的问题。
本申请实施例提供的元数据分层管理方法,在数据库层创建基于单个分片的一致性事务处理方法,每个事务将读写多个元数据进行分组转换为一个命令,以便在元数据单个分片中快速执行。为了满足这种元数据请求转换,本申请实施例将这种一致性事务处理方法设计为参数化的功能函数,可以使用不同的参数作为变量进行处理。与此同时,在保证分布式存储一致性访问的过程可以减少元数据并发请求分布式锁之间的冲突,一致性事务处理方法可以让元数据请求并行执行,无需获取分布式锁,因此,扩展了分布式文件系统元数据并发处理的性能。
本申请实施例提供的元数据分层管理方法,对相关技术中分布式文件系统存储架构进行了改进,将数据和元数据分离架构进行了调整,本申请实施例将元数据的检索解析功能合并到客户端中,检索和解析不再由元数据服务MDS进行管理,可以减少MDS服务对分布式节点内存资源的占用,这种分层处理结构有助于客户端针对性进行元数据解析管理,提出了分布式文件系统的可扩展、负载均衡和性能。
本申请实施例提供的元数据分层管理方法,对分布式文件系统元数据进行分层管理,提高分布式集群的性能、负载均衡性、可扩展性,并且遵循POSIX语义的元数据管理方法;本申请实施例在相关技术元数据和数据分离架构下进行完善,并提出对元数据请求进行组织管理方法,以减少分布式锁的开销,同时不违背元数据的一致性,多并发请求不发生冲突。
本申请实施例提供的元数据分层管理方法,对分布式存储文件系统的元数据对象进行组织管理,满足不同的访问模式和元数据信息扩展功能,将元数据请求处理动作从跨存储节点分片转换为到单个分片处理,避免分布式锁处理对存储系统性能的消耗;根据分布式文件系统业务模型统计,绝大多数的元数据请求操作主要集中在对文件数据的属性获取,查询,如getattr,lookup,readdir等,这种元数据请求有利于进行扁平化组织管理,可以和数据操作请求进行合并访问。其他元数据操作,对文件目录的create和unlink、rename,rmdir等元数据请求,这些操作需要对其父目录元数据信息进行修改,对于这种请求的组织管理,需要对其元数据信息保留层次结构,需要将父目录的元数据和子目录的元数据一起管理。因此,本申请实施例将元数据组织管理划分为两个解耦合,相互分离的层,其中元数据其他层次结构信息由具有POSIX语义的分布式数据库层处理,而文件的属性信息通过Hash映射组织,Key-Value接口进行管理。
本申请实施例提供的元数据分层管理方法,对元数据请求的关键部分进行划分并组织管理,同时保障元数据请求的一致性、事务性,并遵循POSIX标准语义。在元数据分层组织管理中,通过序列化的执行顺序避免发生文件元数据更新异常;进一步缩小单个目录元数据事务的组织范围,将跨分布式多个节点的元数据分片进行组织合并,并一次性执行,从而降低事务的处理时延和分布式锁开销,此外,通过元数据的并发更新来避免元数据信息失败问题。
如图1所示,为本申请实施例提供的分布式文件系统元数据分层管理的架构示意图,该分布式系统包括:客户端元数据组件,文件存储组件,数据库存储组件。所述数据库存储组件中包括:元数据索引表;所述元数据索引表中记录有文件与目录、目录与目录之间的关联关系,以及目录的目录属性信息;所述文件存储组件用于存储所述元数据索引表中所包含的各个文件的文件属性信息。本申请实施例提供的分布式系统,将元数据分为两部分:文件属性信息部分和元数据其他层次结构信息。
如图1所示,分布式文件系统通过客户端组件对外提供访问接口,这些接口向业务客户端应用程序提供基于POSIX语义的元数据请求操作,如getattr、lookup,create ,mkdir,rename等和文件数据操作请求open、close,read和write。本申请实施例中的客户端元数据组件缓存数据库存储层和文件存储层的元数据信息,实现了在客户端层进行元数据解析,缩短了业务客户应用程序请求处理的时延。文件存储组件,用于对分布式文件系统存储集群的数据块进行存储,每个存储节点在文件存储组件之上通过RocksDB(一种嵌入式的持久化键值存储库,用于快速存储)对磁盘对象存储设备(Disk Object Storage Device,OSD)进行管理,本申请实施例文件存储组件采用RocksDB通过直接写入(Redirect onwrite,ROW)的方式来进行数据写入,ROW 是指当数据需要覆盖写入时,将数据写到新的位置,然后更新元数据索引,因此在该写入模式下,日志数据只需要维护元数据的一致性即可保证数据的一致性。后端存储模块以数据库表结构键值对Key-Value的形式存储元数据信息,在存储这些元数据信息首先进行预写日志(write-ahead log,WAL)作用是当发生故障时,可以使用 WAL 来完全恢复数据,这对于将数据库恢复到原始状态是必要的。数据库存储组件,负责处理元数据其他层次结构信息,例如对文件目录的creat和unlink、rename,rmdir等元数据请求处理。本申请实施例通过设计一致性事务处理方法来管理分布式数据库中除文件的属性信息之外的元数据其他层次结构。
基于图1,如图2所示,为如图2所示,为数据库存储组件与文件存储组件之间的元数据组织管理结构,在数据库存储组件中,本申请实施例将除了元数据属性之外的文件系统元数据属性信息设计一个索引(inode)表,该表包括主键key,作为元数据索引表中的属性组,用于唯一地确定一个元组,包括keyID和keyString文件描述信息文件或目录等,其中keyID表示元数据的范围分片id;元数据索引表还包括区域部分分别存储元数据id,类型type,子目录,连接数、大小、时间等等信息。索引表中记录的目录与目录之间、目录以文件之间的层级关系,与文件系统命名空间中的目录树指示的目录与目录之间、目录以文件之间的层级关系相对应。本申请实施例元数据索引表与相关技术不同之处在于,相关技术中是将元数据信息放在多个表中,本申请实施例为一个统一的索引表的设计方法,避免了维护元数据操作的跨表一致性的分布式元数据锁开销和处理逻辑复杂性。
如图2所示,本申请实施例中,索引表的二元组形式为<keyID,keyString>,其中keyID 表示索引id表示元数据的范围分片id, keyString表示一个字符串字段表示描述信息文件或目录等。对于每个目录或文件id记录, keyID 和 keyString 的值分别是其父目录或文件名。其中针对目录的属性信息,把对应的索引id设置为 keyID ,并将其属性信息ATTR设置为keyString。此外,索引表的每个记录信息设置可选的字段列表区域部分,包含文件或目录的id、类型、子目录、链接数、大小、时间等,未使用的字段默认为空NULL。本申请实施例对keyId的值进行范围分区,将索引表划分为一组分片作为数据库中的元数据存储单元,并在后端存储服务器上映射分布式进行存储。元数据管理组织方式和基于索引表的范围分区方式的结合,通过将目录的属性及其所有子目录的索引id放置在一个元数据分片上来保持局部性。针对单个目录具有数百万个文件的大目录,本申请实施例将文件的属性信息存储到文件存储组件,经实施例统计,每个文件的属性信息占用约0.1千字节(Kilobyte,KB)的存储空间,百万级的大目录元数据不会超过单个数据库存储组件分片的存储容量。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的元数据分层管理方法进行详细地说明。
如图3所示,本申请实施例提供的一种应用于如图1所示的分布式文件系统的元数据分层管理方法,该方法可以包括下述步骤301和步骤302:
步骤301、在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作。
示例性地,上述元数据请求为客户端设备基于POXIS标准发送的请求。本申请实施例中的元数据分层管理方法,通过虚拟文件系统映射层进行优化保持POXIS语义,首先,POSIX文件系统接口映射到分布式底层文件系统函数,将用户级POSIX函数调用转发到分布式内部元数据或数据操作中,例如POISX write接口写入存储文件数据,客户端元数据组件层首先在文件存储层发出查找lookup请求以确认写入的文件是否存在,然后在修改时间与缓存时间不同时执行写入write请求写入数据。
示例性地,如图1所示,客户端元数据组件在接收到客户度设备发送的元数据请求后,通过其内部设置的元数据解析程序进行语义解析,得到该元数据请求对应的目标操作。上述语义可以包括:文件数据语义,文件元数据语义以及命名空间语义。
示例性地,上述目标操作可以包括:属性获取操作getattr,目录创建操作mkdir,文件删除操作unlink,文件创建操作create,文件重命名操作rename等。
步骤302、基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表。
示例性地,事务处理单元在接收到客户端元数据组件转发的目标操作后,可以执行该目标操作,访问对应的元数据。
示例性地,如图2所示,所述元数据索引表包括:主键部分和区域部分;所述主键部分包括:分片编号(即上述keyID),描述字符串(即上述keyString);所述分片编号用于表示元数据所属分片的分片编号;所述描述字符串用于记录数据对象的名称;所述区域部分包括:对象编号(即上述索引id),对象类型(即上述type);所述对象编号用于表示数据对象的编号;所述对象类型用于表示数据对象的类型;所述数据对象的类型包括:文件对象,目录对象;所述文件存储组件中以键值对的形式存储所述元数据索引表中文件对象的文件属性信息;所述键值对的键为对象编号,所述键值对的值为对象的文件属性信息。
示例性地,如图2所示,所述区域部分还包括:用于记录目录属性信息的目标字段;该目标字段包括:Child,Links等用于记录目录属性的字段;在目标数据信息的描述字符串的内容为预设字符串的情况下,所述目标数据信息用于表征对应目录对象的目录属性信息。
示例性地,将文件的属性信息存储到文件存储组件能够有效的避免相关技术中因元数据映射固定导致的数据负载不均衡问题和分布式存储热点数据访问性能逐渐变慢的问题,将文件的属性信息存储在分布式存储的节点后台存储引擎中,即文件存储组件,设计每个存储引擎通过一个RocksDB实例进行存储,将文件属性信息以键值对的形式进行存储,其中key是inode id,而value是由文件属性信息。将文件属性信息和对应的数据均匀地分布到后端存储引擎中的数据存储节点上,目的是允许多个数据可以在存储节点并行进行数据IO,即使在大目录情况下也能实现负载均衡。在这种情况下,相关技术会受到热点数据访问压力的影响,这是因为相关技术中为了保持局部分区方法,将共享目录下的文件属性信息放置在了单个元数据分片上,相反,本申请实施例通过设计组织元数据的层次结构和文件属性信息的访问模式,分配适当的分区方法,避免了热点数据对分布式存储的影响。
示例性地,针对分布式存储的事务性,数据库组件和文件存储组件的元数据需要协同组织管理分布式事务,以实现分布式请求的原子性。为了消除这种协同组织管理元数据的分布式锁开销,本申请实施例设计了元数据请求处理逻辑,按照确定的序列化进行执行,在故障场景下,能够保障数据的一致性。进一步,所述的元数据请求逻辑,是将任何创建元数据请求之后再对文件系统命名空间层次结构进行更新,针对删除操作,首先更新空间层次结构。
具体地,在目标操作为属性获取操作的情况下,上述步骤302,可以包括以下步骤302a1和步骤302a2:
步骤302a1、在所述目标操作为第一操作的情况下,基于所述第一操作所携带的第一对象编号从所述元数据索引表的对象编号中筛选出与所述第一对象编号相匹配的第一数据信息,并将所述第一数据信息指示的对象类型确定为所述第一操作所要访问的第一目标对象的对象类型。
步骤302a2、在所述第一目标对象的对象类型为文件对象的情况下, 基于所述第一目标对象的对象编号从所述文件存储组件中获取所述第一目标对象的文件属性信息。
其中,所述第一操作为属性获取操作。
示例性地,当上述目标操作为第一操作,即属性获取操作时,事务处理单元可以根据第一对象编号从元数据索引表的对象编号(即上述索引id)中筛选出与该第一对象编号相匹配的第一数据信息(即元数据索引表中索引id与第一对象编号相同的数据)。
示例性地,在筛选出第一数据信息后,便可以基于该第一数据信息,确定目标操作对应的操作对象的对象类型,即基于该第一数据信息中Type字段记载的内容,确定该操作对象的对象类型。
举例说明,如图2所示,若目标操作需要获取索引id为3的对象的属性信息,则根据Type字段中记载的内容file,可以确定该索引id为3的对象为文件对象,此时,需要从文件存储组件中查找该对象的文件属性信息。
需要说明的是,在元数据索引表中,每条数据记录的对象编号唯一,即各个数据之间记录的对象编号均不相同(空值除外)。
示例性地,若该目标操作用于获取文件对象的文件属性信息的操作,则在获取到该第一数据信息后,可以从文件存储组件的键值对中匹配对应的文件属性信息。
举例说名,如图2所示,若该目标操作需要获取索引id为3的文件对象的属性信息,则可以从文件存储组件中键值对中查找键为3的键值对的value值,并将其作为索引id为3的文件对象的文件属性信息反馈给客户端设备。
示例性地,若目标操作对应的操作对象的对象类型为目录对象,则上述步骤302a1之后,上述步骤302还可以包括以下步骤302a3:
步骤302a3、在所述第一目标对象的对象类型为目录的情况下, 基于所述第一目标对象的第二对象编号从所述元数据索引表的分片编号中筛选出分片编号与所述第二对象编号相匹配、且描述字符串为所述预设字符串的第二数据信息,并从所述第二数据信息的目标字段对应的内容中提取出所述第一目标对象的目录属性信息。
示例性地,若该目标操作用于获取目录对象的目录属性信息的操作,则在获取到该第一数据信息后,可以从元数据索引表中查找分片编号与第一对象编号相同、且描述字符串为“ATTR”(即上述预设字符串)的第二数据信息。
示例性地,在确定第二数据信息后,便可以从该第二数据信息的目标字段对应的内容中提取出该第一目标对象的目录属性信息。
具体地,在上述目标操作为目录创建操作的情况下,上述步骤302,还可以包括以下步骤302b:
步骤302b、在所述目标操作为第二操作的情况下,基于所述第二操作创建第二目标对象,并基于所述第二目标对象的对象编号以及所述第二目标对象的父目录的对象编号,在所述元数据索引表中添加所述第二目标对象的目录属性信息,以及基于所述第二目标对象的父目录的对象编号更新所述元数据索引表中所述第二目标对象的父目录的目录属性信息。
其中,所述第二操作为目录创建操作。
示例性地,在接收到目标操作的情况下,事务处理单元首先在文件系统命名空间中的指定路径下创建一个目录,并为其分配一个分片编号,之后,事务处理单元基于该目标的分片编号以及该目录的父目录的分片编号,在元数据索引表中插入两条信息,一条为包含该目标的父目录的分片编号、该目录的名称、该目录的对象编号以及该目录的对象类型的数据信息,另一条为包含该目录的分片编号、预设字符串以及该目录的目录属性的数据信息。
具体地,在上述目标操作为文件删除操作的情况下,上述步骤302,还可以包括以下步骤302c1至步骤302c3:
步骤302c1、在所述目标操作为第三操作的情况下,基于所述第三操作指示的第三对象编号从所述元数据索引表的对象编号中筛选出与所述第三对象编号相匹配的第三数据信息,并基于所述第三数据信息确定所述第三操作对应的第三目标对象的父目录的第一分片编号。
步骤302c2、删除所述元数据索引表中分片标号为第一分片编号、且描述字符串为所述第三目标对象的对象名称的信息,并更新所述第三目标对象的父目录的目录属性信息。
步骤302c3、在所述文件存储组件的键值对中筛选出对象编号与所述第三对象编号相匹配的第三数据信息,并将所述第三数据信息从所述文件存储组件的键值对中删除。
其中,所述第三操作为文件删除操作。
示例性地,该目标操作可以通过以下数据库查询语言来实现:
#删除inode并更新父目录元数据信息
DELETE (keyID=@parent_id, keyString=@name) WITH UPDATE inode_tableSET (children-=1, mtime=@now, ...) WHERE (keyID=@parent_id, keyString="/_ATTR", type=dir) FileStore.Delete (key=@id) -- Remove file attribute
上述数据库查询语言的含义为:删除inode_table表(即上述元数据索引表)中满足条件的一行,条件是keyID等于@parent_id,keyString等于@name,这两个变量是事先定义的参数,表示要删除的文件或目录的父目录的ID和名称。在删除的同时,更新inode_table表中的另一行,条件是keyID等于@parent_id,keyString等于"/_ATTR",type等于dir,这表示要删除的文件或目录的父目录的属性信息。更新的内容是将children字段减一,表示父目录的子目录或子文件的数量减少了一个,以及将mtime字段设为@now,表示父目录的修改时间更新为当前时间。在删除和更新完成后,调用FileStore.Delete方法,参数是@id,这是一个事先定义的参数,表示要删除的文件或目录的ID。这个方法的作用是从FileStore中删除对应的文件或目录的数据,FileStore是一个分布式文件系统的数据存储层,负责存储文件或目录的实际内容。
具体地,在上述目标操作为文件创建操作的情况下,上述步骤302,还可以包括以下步骤302d1至步骤302d3:
步骤302d1、在所述目标操作为第四操作的情况下,基于所述第四操作在所述文件存储组件的键值对中添加所述第四操作对应的第四目标对象的文件属性信息。
步骤302d2、基于所述第四目标对象的对象编号以及所述第四目标对象的父目录的对象编号在所述元数据索引表中添加所述第四目标对象对应的数据信息,并基于所述第四目标对象的父目录的对象编号,更新所述元数据索引表中所述第四目标对象的父目录的目录属性信息。
其中,所述第四操作为文件创建操作。
示例性地,该目标操作可以通过以下数据库查询语言来实现:
#插入文件属性信息到分布式存储后端
FileStore.Put(key=@id, value={links=1, children=0, ...})
#插入inode记录到数据库组件并更新父目录属性信息
INSERT (keyID=@parent_id, keyString=@name, id=@id) WITH UPDATE inode_table SET (children+=1, mtime=@now, ...) WHERE (keyID=@parent_id, keyString="/_ATTR", type=dir)
上述数据库查询语言的含义为:
调用FileStore.Put方法,参数是key=@id, value={links=1, children=0, …},这个方法的作用是向FileStore中插入一个文件或目录的数据,FileStore是一个分布式文件系统的数据存储层,负责存储文件或目录的实际内容。key是一个事先定义的参数,表示要插入的文件或目录的ID,value是一个字典,表示要插入的文件或目录的属性,如链接数,子目录或子文件数等。在插入的同时,插入一行到inode_table表中,这个表是一个分布式文件系统的元数据管理层,负责存储文件或目录的元信息,如文件名,文件类型,文件位置等。插入的内容是(keyID=@parent_id, keyString=@name, id=@id),这三个都是事先定义的参数,分别表示要插入的文件或目录的父目录的ID,要插入的文件或目录的名称,要插入的文件或目录的ID。在插入的同时,更新inode_table表中的另一行,条件是(keyID=@parent_id, keyString=“/_ATTR”, type=dir),这表示要插入的文件或目录的父目录的属性信息。更新的内容是(children+=1, mtime=@now, …),这几个都是事先定义的参数,分别表示将父目录的子目录或子文件的数量加一,将父目录的修改时间更新为当前时间。
具体地,在上述目标操作为文件重命名操作的情况下,上述步骤302,还可以包括以下步骤302e1和步骤302e2:
步骤302e1、在所述目标操作为第五操作的情况下,基于所述第五操作指示的第五目标对象的第五对象编号、所述第五目标对象的父目录的对象编号所述第五目标对象更新后的对象名称,在所述元数据索引表中添加所述第五目标对象的数据信息,并从所述元数据索引表中筛选出对象编号与所述第五对象编号相匹配、且对象类型为文件的第五数据信息,并将所述第五数据信息删除。
步骤302e2、在所述文件属性信息表的键值对中筛选出对象编号与所述第五对象编号相匹配的第五数据信息,并将所述第五数据信息从所述文件属性信息表的键值对中删除。
其中,所述第五操作为文件重命名操作。
示例性地,该目标操作可以通过以下数据库查询语言来实现:
#删除A的inode,并向数据库组件插入一个新的inode编号,同时更新parent属性
INSERT (keyID=@parent_id, keyString="B", id=@A_id) WITH DELETE (keyID=@parent_id, keyString="A", type=file),(keyID=@parent_id, keyString="B", type=file, if exist) WITH UPDATE inode_table SET (children-=NULL, mtime=@now,...) WHERE (keyID=@parent_id, keyString="/_ATTR")
#删除B的元数据信息
FileStore.Delete (key=@B_id)
上述数据库查询语言的含义为:
删除inode_table表中满足条件的两行,条件是keyID等于@parent_id,keyString分别等于"A"和"B",type分别等于file,这两个变量是事先定义的参数,表示要删除的两个文件的父目录的ID和名称,type表示文件的类型。在删除的同时,插入一行到inode_table表中,内容是(keyID=@parent_id, keyString=“B”, id=@A_id),这三个都是事先定义的参数,分别表示要插入的文件的父目录的ID,要插入的文件的名称,要插入的文件的ID,这里将文件A的ID赋给了文件B,相当于重命名了文件A为文件B。在删除和插入的同时,更新inode_table表中的另一行,条件是(keyID=@parent_id, keyString=“/_ATTR”),这表示要删除和插入的文件的父目录的属性信息。更新的内容是(children-=NULL, mtime=@now,…),这几个都是事先定义的参数,分别表示将父目录的子目录或子文件的数量设为NULL,表示不确定,将父目录的修改时间更新为当前时间。在删除和插入和更新完成后,调用FileStore.Delete方法,参数是@B_id,这是一个事先定义的参数,表示要删除的文件B的ID。这个方法的作用是从FileStore中删除对应的文件B的数据,FileStore是一个分布式文件系统的数据存储层,负责存储文件的实际内容。
需要说明的是,为了进一步减少元数据并发访问的分布式锁开销,针对许多元数据请求在并发读取或修改父目录的属性时包含不必要的锁竞争,在create操作中,在同一个目录下的两个并发的create请求都会更新inode表中的子目录、链接数、大小、时间等字段,这些属性信息可进行合并处理,其中,链接数,子目录个数,大小均为数字,会根据请求进行更新,对于其他属性信息例如时间和文件目录权限字段,其最终的value值是由最后的修改者决定,从全局角度协定组织管理具有顺序性。
本申请实施例提供的元数据分层管理方法,是一种可扩展的、完全兼容POSIX的分布式文件系统元数据分层管理方法,针对不同类型的元数据信息进行组织,分区通过不同存储组件进行管理。主要致力于提高分布式存储的元数据的性能,避免不必要的分布式锁开销,采用具有局部性元数据表消除分布式事务性对锁的依赖,分层组织管理提高元数据负载平衡,在高并发、大目录情况下,本申请实施例对于分布式存储文件系统的性能具有重要意义。
本申请实施例提供的元数据分层管理方法,包括:在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作;事务处理单元基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表。如此,通过将元数据信息中的文件属性信息与其他元数据中的其他层次结构信息分开处理,来降低高并发下分布式锁的开销,从而提高元数据的访问效率。
需要说明的是,本申请实施例提供的元数据分层管理方法,执行主体可以为元数据分层管理装置,或者该元数据分层管理装置中的用于执行元数据分层管理方法的数据处理单元。本申请实施例中以元数据分层管理装置执行元数据分层管理方法为例,说明本申请实施例提供的元数据分层管理装置。
需要说明的是,本申请实施例中,上述各个方法附图所示的。元数据分层管理方法均是以结合本申请实施例中的一个附图为例示例性的说明的。具体实现时,上述各个方法附图所示的元数据分层管理方法还可以结合上述实施例中示意的其它可以结合的任意附图实现,此处不再赘述。
下面对本申请提供的元数据分层管理装置进行描述,下文描述的与上文描述的元数据分层管理方法可相互对应参照。
如图4所示,为本申请实施例还提供了一种元数据分层管理装置,该装置包括:
请求接收模块401,用于在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作; 数据处理模块402,用于基于所述目标操作管理所述分布式文件系统的文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表;其中,所述元数据索引表中记录有文件与目录、目录与目录之间的关联关系,以及目录的目录属性信息;所述文件属性信息表用于存储所述元数据索引表中所包含的各个文件的文件属性信息;所述元数据索引表以及所述文件属性信息表用于实现对文件元数据信息的分层管理。
可选地,所述元数据索引表包括:主键部分和区域部分;所述主键部分包括:分片编号,描述字符串;所述分片编号用于表示元数据所属分片的分片编号;所述描述字符串用于记录数据对象的名称;所述区域部分包括:对象编号,对象类型;所述对象编号用于表示数据对象的编号;所述对象类型用于表示数据对象的类型;所述数据对象的类型包括:文件对象,目录对象;所述文件属性信息表中以键值对的形式存储所述元数据索引表中文件对象的文件属性信息;所述键值对的键为对象编号,所述键值对的值为对象的文件属性信息。
可选地,所述区域部分还包括:用于记录目录属性信息的目标字段;在目标数据信息的描述字符串的内容为预设字符串的情况下,所述目标数据信息用于表征对应目录对象的目录属性信息。
可选地,所述数据处理模块402,具体用于在所述目标操作为第一操作的情况下,基于所述第一操作所携带的第一对象编号从所述元数据索引表的对象编号中筛选出与所述第一对象编号相匹配的第一数据信息,并将所述第一数据信息指示的对象类型确定为所述第一操作所要访问的第一目标对象的对象类型;其中,所述第一操作为属性获取操作。
可选地,所述数据处理模块402,具体还用于在所述第一目标对象的对象类型为文件对象的情况下, 基于所述第一目标对象的对象编号从所述文件属性信息表中获取所述第一目标对象的文件属性信息。
可选地,所述数据处理模块402,具体用于在所述第一目标对象的对象类型为目录的情况下, 基于所述第一目标对象的所述第一对象编号从所述元数据索引表的分片编号中筛选出分片编号与所述第一对象编号相匹配、且描述字符串为所述预设字符串的第二数据信息,并从所述第二数据信息的目标字段对应的内容中提取出所述第一目标对象的目录属性信息。
可选地,所述数据处理模块402,具体用于在所述目标操作为第二操作的情况下,基于所述第二操作创建第二目标对象,并基于所述第二目标对象的对象编号以及所述第二目标对象的父目录的对象编号,在所述元数据索引表中添加所述第二目标对象的目录属性信息,以及基于所述第二目标对象的父目录的对象编号更新所述元数据索引表中所述第二目标对象的父目录的目录属性信息;其中,所述第二操作为目录创建操作。
可选地,所述数据处理模块402,具体用于在所述目标操作为第三操作的情况下,基于所述第三操作指示的第三对象编号从所述元数据索引表的对象编号中筛选出与所述第三对象编号相匹配的第三数据信息,并基于所述第三数据信息确定所述第三操作对应的第三目标对象的父目录的第一分片编号;所述数据处理模块402,具体还用于删除所述元数据索引表中分片标号为第一分片编号、且描述字符串为所述第三目标对象的对象名称的数据信息,并更新所述第三目标对象的父目录的目录属性信息;其中,所述第三操作为文件删除操作。
可选地,所述数据处理模块402,具体用于在所述文件属性信息表的键值对中筛选出对象编号与所述第三对象编号相匹配的第三数据信息,并将所述第三数据信息从所述文件属性信息表的键值对中删除。
可选地,所述数据处理模块402,具体用于在所述目标操作为第四操作的情况下,基于所述第四操作在所述文件属性信息表的键值对中添加所述第四操作对应的第四目标对象的文件属性信息;所述数据处理模块402,具体用于基于所述第四目标对象的对象编号以及所述第四目标对象的父目录的对象编号在所述元数据索引表中添加所述第四目标对象对应的数据信息,并基于所述第四目标对象的父目录的对象编号,更新所述元数据索引表中所述第四目标对象的父目录的目录属性信息;其中,所述第四操作为文件创建操作。
可选地,所述数据处理模块402,具体用于在所述目标操作为第五操作的情况下,基于所述第五操作指示的第五目标对象的第五对象编号、所述第五目标对象的父目录的对象编号所述第五目标对象更新后的对象名称,在所述元数据索引表中添加所述第五目标对象的数据信息,并从所述元数据索引表中筛选出对象编号与所述第五对象编号相匹配、且对象类型为文件的第五数据信息,并将所述第五数据信息删除;其中,所述第五操作为文件重命名操作。
可选地,所述数据处理模块402,具体用于在所述文件属性信息表的键值对中筛选出对象编号与所述第五对象编号相匹配的第五数据信息,并将所述第五数据信息从所述文件属性信息表的键值对中删除。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线550,其中,处理器510,通信接口520,存储器530通过通信总线550完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行元数据分层管理方法,该方法包括:在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作;基于所述目标操作管理所述分布式文件系统的文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表;其中,所述元数据索引表中记录有文件与目录、目录与目录之间的关联关系,以及目录的目录属性信息;所述文件属性信息表用于存储所述元数据索引表中所包含的各个文件的文件属性信息;所述元数据索引表以及所述文件属性信息表用于实现对文件元数据信息的分层管理。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的元数据分层管理方法,该方法包括:在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作; 基于所述目标操作管理所述分布式文件系统的文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表;其中,所述元数据索引表中记录有文件与目录、目录与目录之间的关联关系,以及目录的目录属性信息;所述文件属性信息表用于存储所述元数据索引表中所包含的各个文件的文件属性信息;所述元数据索引表以及所述文件属性信息表用于实现对文件元数据信息的分层管理。
又一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的元数据分层管理方法,该方法包括:在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作; 基于所述目标操作管理所述分布式文件系统的文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表;其中,所述元数据索引表中记录有文件与目录、目录与目录之间的关联关系,以及目录的目录属性信息;所述文件属性信息表用于存储所述元数据索引表中所包含的各个文件的文件属性信息;所述元数据索引表以及所述文件属性信息表用于实现对文件元数据信息的分层管理。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (15)

1.一种元数据分层管理方法,其特征在于,应用于分布式文件系统,所述方法包括:
在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作;
基于所述目标操作管理所述分布式文件系统的文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的元数据索引表;
其中,所述元数据索引表中记录有文件与目录、目录与目录之间的关联关系,以及目录的目录属性信息;所述文件属性信息表用于存储所述元数据索引表中所包含的各个文件的文件属性信息;所述元数据索引表以及所述文件属性信息表用于实现对文件元数据信息的分层管理。
2.根据权利要求1所述的方法,其特征在于,所述元数据索引表包括:主键部分和区域部分;所述主键部分包括:分片编号,描述字符串;所述分片编号用于表示元数据所属分片的分片编号;所述描述字符串用于记录数据对象的名称;所述区域部分包括:对象编号,对象类型;所述对象编号用于表示数据对象的编号;所述对象类型用于表示数据对象的类型;所述数据对象的类型包括:文件对象,目录对象;所述文件属性信息表中以键值对的形式存储所述元数据索引表中文件对象的文件属性信息;所述键值对的键为对象编号,所述键值对的值为对象的文件属性信息。
3.根据权利要求2所述的方法,其特征在于,所述区域部分还包括:用于记录目录属性信息的目标字段;在目标数据信息的描述字符串的内容为预设字符串的情况下,所述目标数据信息用于表征对应目录对象的目录属性信息。
4.根据权利要求3所述的方法,其特征在于,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:
在所述目标操作为第一操作的情况下,基于所述第一操作所携带的第一对象编号从所述元数据索引表的对象编号中筛选出与所述第一对象编号相匹配的第一数据信息,并将所述第一数据信息指示的对象类型确定为所述第一操作所要访问的第一目标对象的对象类型;
其中,所述第一操作为属性获取操作。
5.根据权利要求4所述的方法,其特征在于,在所述目标操作为第一操作的情况下,基于所述第一操作所携带的第一对象编号从所述元数据索引表的对象编号中筛选出与所述第一对象编号相同的目标信息,并将所述目标信息指示的对象类型确定为所述第一操作所要访问的第一目标对象的对象类型之后,所述方法还包括:
在所述第一目标对象的对象类型为文件对象的情况下, 基于所述第一目标对象的对象编号从所述文件属性信息表中获取所述第一目标对象的文件属性信息。
6.根据权利要求4所述的方法,其特征在于,在所述目标操作为第一操作的情况下,基于所述第一操作所携带的第一对象编号从所述元数据索引表的对象编号中筛选出与所述第一对象编号相同的目标信息,并将所述目标信息指示的对象类型确定为所述第一操作所要访问的第一目标对象的对象类型之后,所述方法还包括:
在所述第一目标对象的对象类型为目录的情况下, 基于所述第一目标对象的所述第一对象编号从所述元数据索引表的分片编号中筛选出分片编号与所述第一对象编号相匹配、且描述字符串为所述预设字符串的第二数据信息,并从所述第二数据信息的目标字段对应的内容中提取出所述第一目标对象的目录属性信息。
7.根据权利要求2或3所述的方法,其特征在于,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:
在所述目标操作为第二操作的情况下,基于所述第二操作创建第二目标对象,并基于所述第二目标对象的对象编号以及所述第二目标对象的父目录的对象编号,在所述元数据索引表中添加所述第二目标对象的目录属性信息,以及基于所述第二目标对象的父目录的对象编号更新所述元数据索引表中所述第二目标对象的父目录的目录属性信息;
其中,所述第二操作为目录创建操作。
8.根据权利要求3所述的方法,其特征在于,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:
在所述目标操作为第三操作的情况下,基于所述第三操作指示的第三对象编号从所述元数据索引表的对象编号中筛选出与所述第三对象编号相匹配的第三数据信息,并基于所述第三数据信息确定所述第三操作对应的第三目标对象的父目录的第一分片编号;
删除所述元数据索引表中分片标号为第一分片编号、且描述字符串为所述第三目标对象的对象名称的数据信息,并更新所述第三目标对象的父目录的目录属性信息;
其中,所述第三操作为文件删除操作。
9.根据权利要求8所述的方法,其特征在于,所述删除所述元数据索引表中分片标号为第一分片编号、且描述字符串为所述第三目标对象的对象名称的数据信息,并更新所述第三目标对象的父目录的目录属性信息之后,所述方法还包括:
在所述文件属性信息表的键值对中筛选出对象编号与所述第三对象编号相匹配的第三数据信息,并将所述第三数据信息从所述文件属性信息表的键值对中删除。
10.根据权利要求3所述的方法,其特征在于,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:
在所述目标操作为第四操作的情况下,基于所述第四操作在所述文件属性信息表的键值对中添加所述第四操作对应的第四目标对象的文件属性信息;
基于所述第四目标对象的对象编号以及所述第四目标对象的父目录的对象编号在所述元数据索引表中添加所述第四目标对象对应的数据信息,并基于所述第四目标对象的父目录的对象编号,更新所述元数据索引表中所述第四目标对象的父目录的目录属性信息;
其中,所述第四操作为文件创建操作。
11.根据权利要求3所述的方法,其特征在于,基于所述目标操作管理所述文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表,包括:
在所述目标操作为第五操作的情况下,基于所述第五操作指示的第五目标对象的第五对象编号、所述第五目标对象的父目录的对象编号所述第五目标对象更新后的对象名称,在所述元数据索引表中添加所述第五目标对象的数据信息,并从所述元数据索引表中筛选出对象编号与所述第五对象编号相匹配、且对象类型为文件的第五数据信息,并将所述第五数据信息删除;
其中,所述第五操作为文件重命名操作。
12.根据权利要求11所述的方法,其特征在于,所述从所述元数据索引表中筛选出对象编号与所述第五对象编号相匹配、且对象类型为文件的第五数据信息,并将所述第五数据信息删除之后,所述方法还包括:
在所述文件属性信息表的键值对中筛选出对象编号与所述第五对象编号相匹配的第五数据信息,并将所述第五数据信息从所述文件属性信息表的键值对中删除。
13.一种元数据分层管理装置,其特征在于,应用于分布式文件系统,所述装置包括:
请求接收模块,用于在所述分布式文件系统的客户端元数据组件接收到业务客户端发送的针对目标数据的元数据请求的情况下,对所述元数据请求进行解析,确定所述元数据请求对应的目标操作;
数据处理模块,用于基于所述目标操作管理所述分布式文件系统的文件存储组件中存储的文件属性信息表,和/或,基于所述目标操作管理所述分布式文件系统的数据库存储组件中的所述元数据索引表;
其中,所述元数据索引表中记录有文件与目录、目录与目录之间的关联关系,以及目录的目录属性信息;所述文件属性信息表用于存储所述元数据索引表中所包含的各个文件的文件属性信息;所述元数据索引表以及所述文件属性信息表用于实现对文件元数据信息的分层管理。
14.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至12中任一项所述元数据分层管理方法的步骤。
15.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述元数据分层管理方法的步骤。
CN202311756634.5A 2023-12-20 2023-12-20 元数据分层管理方法、装置、存储介质及电子设备 Active CN117435559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311756634.5A CN117435559B (zh) 2023-12-20 2023-12-20 元数据分层管理方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311756634.5A CN117435559B (zh) 2023-12-20 2023-12-20 元数据分层管理方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN117435559A true CN117435559A (zh) 2024-01-23
CN117435559B CN117435559B (zh) 2024-03-01

Family

ID=89552071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311756634.5A Active CN117435559B (zh) 2023-12-20 2023-12-20 元数据分层管理方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN117435559B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123359A (zh) * 2014-07-17 2014-10-29 江苏省邮电规划设计院有限责任公司 一种分布式对象存储系统的资源管理方法
CN110046133A (zh) * 2019-04-12 2019-07-23 苏州浪潮智能科技有限公司 一种存储文件系统的元数据管理方法、装置及系统
CN113010486A (zh) * 2021-02-05 2021-06-22 湖南国科亿存信息科技有限公司 用于无中心分布式文件系统的元数据分层缓存方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123359A (zh) * 2014-07-17 2014-10-29 江苏省邮电规划设计院有限责任公司 一种分布式对象存储系统的资源管理方法
CN110046133A (zh) * 2019-04-12 2019-07-23 苏州浪潮智能科技有限公司 一种存储文件系统的元数据管理方法、装置及系统
CN113010486A (zh) * 2021-02-05 2021-06-22 湖南国科亿存信息科技有限公司 用于无中心分布式文件系统的元数据分层缓存方法及装置

Also Published As

Publication number Publication date
CN117435559B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
US10740319B2 (en) Graph-based data models for partitioned data
CN106874383B (zh) 一种分布式文件系统元数据的解耦合分布方法
US9767131B2 (en) Hierarchical tablespace space management
US9501550B2 (en) OLAP query processing method oriented to database and HADOOP hybrid platform
JP2708331B2 (ja) ファイル装置およびデータファイルアクセス方法
US6985914B2 (en) Cluster meta file system of file system cells managed by respective data movers of a network file server
CN102129469B (zh) 一种面向虚拟实验的非结构化数据访问方法
US20160371355A1 (en) Techniques for resource description framework modeling within distributed database systems
US10509916B2 (en) Access control lists for high-performance naming service
Weintraub et al. Needle in a haystack queries in cloud data lakes.
Lawson et al. Using a robust metadata management system to accelerate scientific discovery at extreme scales
US10387384B1 (en) Method and system for semantic metadata compression in a two-tier storage system using copy-on-write
CN116541427B (zh) 数据查询方法、装置、设备及存储介质
Riegger et al. Efficient data and indexing structure for blockchains in enterprise systems
CN117435559B (zh) 元数据分层管理方法、装置、存储介质及电子设备
van Staereling et al. Efficient, modular metadata management with loris
Vohra Apache HBase Primer
KR20010000136A (ko) 대용량 서지정보 검색 서비스 시스템
US20240004835A1 (en) Metadata for quering file system pathnames
US20180329937A1 (en) High-Performance Naming Service Using an Optimistic-Concurrency-Control In-Memory Database
Wei et al. Improving Blockchain Scalability from Storage Perspective
Wang et al. A data synchronization mechanism for cache on mobile client
Šalgová et al. The impact of table and index compression
Xiong et al. FDSSS: An efficient metadata management scheme in large scale data environment
Cheng et al. An index model for multitenant data storage in saas

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