CN113342758B - 文件系统的元数据管理方法、装置、设备和介质 - Google Patents
文件系统的元数据管理方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113342758B CN113342758B CN202110899041.9A CN202110899041A CN113342758B CN 113342758 B CN113342758 B CN 113342758B CN 202110899041 A CN202110899041 A CN 202110899041A CN 113342758 B CN113342758 B CN 113342758B
- Authority
- CN
- China
- Prior art keywords
- metadata
- information
- database
- file system
- data
- 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.)
- Active
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/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种文件系统的元数据管理方法、装置、设备和介质,所述方法包括:获取元数据的特征信息和所述文件系统的负载信息中的至少一部分,其中,所述元数据是所述文件系统中的文件的属性信息;对获取的所述特征信息和所述负载信息中的至少一部分进行分析;根据分析结果,控制所述文件系统的预定任务的执行,其中,所述预定任务是用于去除所述元数据中的无效元数据。本公开提供的方法可以确定出执行去除无效元数据的任务的执行时机,从而在不影响文件系统中相关应用的正常运行的情况下将文件系统中的无效元数据去除,提高了文件系统中数据库的查询效率,进而也提高了文件系统的整体性能。
Description
技术领域
本公开涉及数据处理领域,更具体地,涉及一种文件系统的元数据管理方法、装置、设备和介质。
背景技术
随着互联网技术的不断发展,互联网相关的应用越来越多,因此而产生的相关信息的数据量也越来越大,已经达到了千万亿字节(petabyte,PB)级别的数据量。目前,针对PB级别的数据进行存储变得非常普遍和愈发重要。但是,传统的本地磁盘存储方式早就无法满足现有应用的大容量、高扩展、低延时等要求。而键值对(Key Value,KV)存储数据库具有先天的高性能检索优势,因此,被广泛应用到大数据相关的存储和应用中。
在使用KV存储数据库来管理作为数据(如文件数据)的属性信息的元数据的文件系统(如,分布式文件系统)中,高效的元数据管理方法是决定其整体性能的一个重要因素。
KV数据库如RocksDB、LevelDB等,大多采用基于日志结构合并树(Log-StructuredMerge Tree,LSM-Tree)数据结构,为了保证数据访问的效率,涉及内容修改的操作是采用追加写入新数据(如,新的元数据),将旧数据(如,旧的元数据)置为墓碑数据(Tombstone,其指基于LSM-Tree结构的数据库在执行修改或删除操作时生成的无效数据(如无线元数据))的方法进行的。这种方式能够提高数据库的写入性能,但是在大量数据修改和删除操作之后,数据库内部会遗留大量的Tombstone数据,使得数据库的查询效率大幅度下降。
为了解决这一问题,通常KV数据库是根据数据库的参数配置(如,无效数据达到一定量时启动相关去除无效数据的操作)和数据库运行时状态(如数据库运行时是处于忙碌状态、一般状态还是空闲状态),后台启动清理(compaction)任务对如元数据的索引项进行优化和合并排序,去除冗余无效的Tombstone数据。在无外部干预的情况下,KV数据库触发清理任务的时机、处理范围和具体策略更多是根据自身配置和数据库局部运行状态来决定的,并且所述自身配置在一段时间内往往是不变的。因此,在文件系统采用KV数据库来管理元数据时,由于KV数据库仅依靠自身配置和局部状态触发清理任务,往往清理任务产生的时机不是最优,同时由于清理任务运行往往会产生数据互斥保护以及额外的输入/输出(Input/Output,I/O),反倒使得文件系统在正常场景下出现短时间性能抖动和访问阻塞的情况发生,从而影响文件系统的稳定性,无法发挥文件系统的最优性能。
因此,需要一种新的文件系统的元数据管理方法。
发明内容
针对上述问题,本公开提供了一种文件系统的元数据管理方法,该方法可以确定出执行去除上述无效数据(如无效元数据)的任务(如清理任务)的执行时机,从而在不影响文件系统中相关应用的正常运行的情况下将文件系统中的无效数据去除,提高了文件系统中数据库的查询效率,进而也提高了文件系统的整体性能。
本公开实施例提供了一种文件系统的元数据管理方法,包括:获取元数据的特征信息和所述文件系统的负载信息中的至少一部分,其中,所述元数据是所述文件系统中的文件的属性信息;对获取的所述特征信息和所述负载信息中的至少一部分进行分析;根据分析结果,控制所述文件系统的预定任务的执行,其中,所述预定任务是用于去除所述元数据中的无效元数据。
根据本公开实施例,其中,根据分析结果,控制所述文件系统的预定任务的执行,包括:根据分析结果,控制所述文件系统的预定任务的执行时机和执行范围中的至少一个。
根据本公开实施例,其中,根据分析结果,控制所述文件系统的预定任务的执行时机和执行范围中的至少一个,包括以下至少一项操作:根据对获取的所述特征信息进行分析而得到的特征分析数据,控制所述文件系统的预定任务的执行范围;根据对获取的所述文件系统的负载信息进行分析而得到的负载分析数据,控制所述文件系统的预定任务的执行时机。
根据本公开实施例,其中,所述方法还包括:获取所述文件系统中用于存储所述元数据的数据库的运行相关信息,其中,所述数据库的运行相关信息包括所述数据库预定运行时间段内的性能统计信息和所述数据库在运行时的状态信息中的至少一部分;对获取的所述数据库的运行相关信息进行分析;根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围。
根据本公开实施例,其中,所述获取元数据的特征信息包括:根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息。
根据本公开实施例,其中,所述根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息,包括:从所述文件系统中用于存储所述元数据的数据库中,提取所述元数据的索引数据和与所述元数据相关的操作信息,其中所述元数据是从对所述文件系统中的文件的操作业务流中提取的,与所述元数据相关的操作信息是对所述文件系统中的文件的操作业务流的操作信息,并且包括与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数;根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,作为所述元数据的特征信息。
根据本公开实施例,其中,所述根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,包括:根据所述元数据的索引数据,将与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数记录到预先建立的分段表中,其中,所述分段表包括预先建立的与索引数据有关的多个分段范围。
根据本公开实施例,其中,对获取的所述特征信息进行分析,包括:对获取的所述特征信息进行统计,得到所述特征信息的统计数据;根据所述统计数据,确定与每个分段范围对应的无效元数据的量;通过将确定的与每个分段范围对应的无效元数据的量分别与预定阈值进行比较来获得所述特征分析数据。
根据本公开实施例,其中,对所述负载信息进行分析,包括:通过将所述负载信息与预先设置的所述文件系统的硬件设备的负载阈值进行比较,确定与所述硬件设备的资源状态有关的分析数据,作为所述负载分析数据。
根据本公开实施例,其中,所述负载信息包括处理器负载(CPU)、输入输出接口负载(I/O)、网络负载中的至少一部分。
根据本公开实施例,其中,对获取的所述数据库的运行相关信息进行分析,包括:根据所述数据库预定运行时间段内的性能统计信息和所述数据在运行时的状态信息中的至少一部分,确定与所述数据库的当前状态有关和与所述数据库的未来状态有关的分析数据,作为所述数据库分析数据。
根据本公开实施例,其中,根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围,包括:根据所述数据库分析数据中的与所述数据库的未来状态有关的分析数据,确定是否缩减所述预定任务的执行范围。
本公开实施例提供了一种文件系统的元数据管理装置,包括:第一获取模块,被配置为获取元数据的特征信息和所述文件系统的负载信息中的至少一部分,其中,所述元数据是所述文件系统中的文件的属性信息;第一分析模块,被配置为对获取的所述特征信息和所述负载信息中的至少一部分进行分析;第一执行模块,被配置为根据分析结果,控制所述文件系统的预定任务的执行,其中,所述预定任务是用于去除所述元数据中的无效元数据。
根据本公开实施例,其中,所述第一执行模块包括:根据分析结果,控制所述文件系统的预定任务的执行时机和执行范围中的至少一个。
根据本公开实施例,其中,根据分析结果,控制所述文件系统的预定任务的执行时机和执行范围中的至少一个,包括以下至少一项操作:根据对获取的所述特征信息进行分析而得到的特征分析数据,控制所述文件系统的预定任务的执行范围;根据对获取的所述文件系统的负载信息进行分析而得到的负载分析数据,控制所述文件系统的预定任务的执行时机。
根据本公开实施例,其中,所述装置还包括:第二获取模块,别配置为获取所述文件系统中用于存储所述元数据的数据库的运行相关信息,其中,所述数据库的运行相关信息包括所述数据库预定运行时间段内的性能统计信息和所述数据库在运行时的状态信息中的至少一部分;第二分析模块,被配置为对获取的所述数据库的运行相关信息进行分析;第二执行模块,被配置为根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围。
根据本公开实施例,其中,所述获取元数据的特征信息包括:根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息。
根据本公开实施例,其中,所述根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息,包括:从所述文件系统中用于存储所述元数据的数据库中,提取所述元数据的索引数据和与所述元数据相关的操作信息,其中所述元数据是从对所述文件系统中的文件的操作业务流中提取的,与所述元数据相关的操作信息是对所述文件系统中的文件的操作业务流的操作信息,并且包括与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数;根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,作为所述元数据的特征信息。
根据本公开实施例,其中,所述根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,包括:根据所述元数据的索引数据,将与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数记录到预先建立的分段表中,其中,所述分段表包括预先建立的与索引数据有关的多个分段范围。
根据本公开实施例,其中,对获取的所述特征信息进行分析,包括:对获取的所述特征信息进行统计,得到所述特征信息的统计数据;根据所述统计数据,确定与每个分段范围对应的无效元数据的量;通过将确定的与每个分段范围对应的无效元数据的量分别与预定阈值进行比较来获得所述特征分析数据。
根据本公开实施例,其中,对所述负载信息进行分析,包括:通过将所述负载信息与预先设置的所述文件系统的硬件设备的负载阈值进行比较,确定与所述硬件设备的资源状态有关的分析数据,作为所述负载分析数据。
根据本公开实施例,其中,所述负载信息包括处理器负载(CPU)、输入输出接口负载(I/O)、网络负载中的至少一部分。
根据本公开实施例,其中,对获取的所述数据库的运行相关信息进行分析,包括:根据所述数据库预定运行时间段内的性能统计信息和所述数据在运行时的状态信息中的至少一部分,确定与所述数据库的当前状态有关和与所述数据库的未来状态有关的分析数据,作为所述数据库分析数据。
根据本公开实施例,其中,根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围,包括:根据所述数据库分析数据中的与所述数据库的未来状态有关的分析数据,确定是否缩减所述预定任务的执行范围。
本公开实施例提供了一种分布式文件系统的数据管理设备,包括:处理器,和存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令当由处理器执行时促使处理器执行如上任一项所述的方法。
本公开实施例提供了一种计算机可读记录介质,存储有计算机可执行指令,其中,所述计算机可执行指令当由处理器执行时促使处理器执行如上任一项所述的方法。
本公开实施例提供了一种文件系统的元数据管理方法、装置、设备和介质。根据本公开提供的方法可以通过对获取的元数据的特征信息和文件系统的负载信息中的至少一部分进行分析,进而根据分析结果控制相关的去除无效数据(如无效元数据)的任务的执行时机和/或执行范围。从而在合适的执行时机和/或合适的执行范围执行所述去除任务,这不仅提高了文件系统中数据库的查询效率,也能够发挥文件系统的最优性能。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本公开的一些示例性实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了根据本公开实施例的文件系统的元数据管理方法的流程图;
图2示出了根据本公开实施例的文件系统的元数据管理的整体框架图;
图3示出了根据本公开实施例的KV控制器260的框架图;
图4示出了根据本公开实施例的决策模块267中的决策树的示图;
图5示出了根据本公开实施例的文件系统的元数据管理装置500的框图;
图6示出了根据本公开实施例的分布式文件系统的数据管理设备600的结构图。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参考附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
在本说明书和附图中,基本上相同或相似的步骤和元素用相同或相似的附图标记来表示,并且对这些步骤和元素的重复描述将被省略。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或排序。
在本说明书和附图中,根据实施例,元素以单数或复数的形式来描述。然而,单数和复数形式被适当地选择用于所提出的情况仅仅是为了方便解释而无意将本公开限制于此。因此,单数形式可以包括复数形式,并且复数形式也可以包括单数形式,除非上下文另有明确说明。
在现有技术中,在文件系统采用KV数据库来管理元数据时,由于KV数据库仅依靠自身配置和局部状态触发清理任务,往往清理任务产生的时机不是最优,同时由于清理任务运行往往会产生数据互斥保护以及额外的输入/输出(Input/Output,I/O),反倒使得文件系统在正常场景下出现短时间性能抖动和访问阻塞的情况发生,从而影响文件系统的稳定性,无法发挥文件系统的最优性能。
为了解决上述问题,本公开提供了一种文件系统的元数据管理方法,该方法可以确定出执行去除无效元数据的任务(如清理任务)的执行时机,从而在不影响文件系统中相关应用的正常运行的情况下将文件系统中的无效元数据去除,提高了文件系统中数据库的查询效率,进而也提高了文件系统的整体性能。
下面将参照附图对上述本公开提供的文件系统的元数据管理方法进行详细的说明。
图1示出了根据本公开实施例的文件系统的元数据管理方法的流程图,其中,所述元数据管理方法可以由文件系统来执行,例如分布式文件系统来执行。
参照图1,在步骤S110,可以先获取元数据的特征信息和所述文件系统的负载信息中的至少一部分。
根据本公开实施例,所述元数据可以是所述文件系统中的文件的属性信息,如文件的名称、修改时间、大小等。
根据本公开实施例,所述文件系统的负载信息可以包括文件系统的处理器负载(CPU)、输入输出接口负载(I/O)、网络负载等中的至少一部分。
根据本公开实施例,获取元数据的特征信息可以包括:根据元数据的索引数据以及与所述元数据相关的操作信息,来生成所述元数据的特征信息。
根据本公开实施例,所述元数据的索引数据可以是与该元数据对应的唯一的标识符,与所述元数据相关的操作信息可以是对所述文件系统中的文件的操作业务流的操作信息,其中,所述元数据可以是从对所述文件系统中的文件的操作业务流中提取的。
例如,在KV数据库中,所述元数据的索引数据可以是与元数据对应的键值(即key值),其中,关于key值的生成规则可以是任何能够提高KV数据库的查询效率的规则。
作为示例,与元数据对应的key值生成规则可以如下表1所示:
其中,保留位为一个16进制的位,其可以用于下面将介绍的分段记录;B/S表示不同的元数据类型,其中,B表示基础(Base)类型,S表示快照(Snap)类型;D表示与元数据对应的文件类型是目录,I表示与元数据对应的文件类型是文件。例如,0B/0x00000001/I/0x00000002可以表示Base类型的元数据,当前文件的父节点为0x00000001,当前文件是一个文件类型(即文件1),当前文件的节点为0x00000002;1B/0x00000001/I/0x00000004,表示Base类型的元数据,当前文件的父节点为0x00000001,当前文件是一个文件类型(即文件2),当前文件的节点为0x00000004;0B/0x00000001/I/0x00000006,表示Base类型的元数据,当前文件的父节点为0x00000001,当前文件是一个文件类型(即文件3),当前文件的节点为0x00000006;2B/0x00000001/D/0x00000006,表示Base类型的元数据,当前文件的父节点为0x00000001,当前文件是一个目录类型(即文件4),当前文件的节点为0x00000006。KV数据库一般都是采用字典排序来组织排列上述key值的,此外,从上述示例可以看出,文件1至4的父节点均是0x00000001,这样在KV数据库中实际存储上述文件1至4对应的元数据时就可以把上述文件1至4对应的元数据存储在KV数据库中的某一个区域中(如某一个排序的字符串表文件(sorted string table files,SST)中),从而同一个父节点下的元数据在KV数据库中保持一定粒度的集中,而不是打乱分散在各个SST文件中,这样的方式有利于提高KV数据的查询效率。
作为另一示例,与元数据对应的key值生成规则可以类似与以下这样的形式:0xXXXXXXXX/XXXXXXXX(其中,X可以是0、1、2……Z),其中,当后八位(即后八个X)均为0时表示当前文件的父节点,当后八位不全为0时表示当前文件的当前节点。例如,0x00000000/00000001,表示当前文件(即文件1)的当前节点为0x00000000/00000001,其父节点为0x00000000/00000000;0x00000000/00000004,表示当前文件(即文件2)的当前节点为0x00000000/00000004,其父节点为0x00000000/00000000;0x00000001/00000003,表示当前文件(即文件3)的当前节点为0x00000001/00000003,其父节点为0x00000001/00000000,从上述示例可以看出,文件1至2的父节点均是0x00000000/00000000,这样在KV数据库中实际存储上述文件1至2对应的元数据时就可以把上述文件1至2对应的元数据存储在KV数据库中的某一个区域中(如某一个排序的字符串表文件(sorted string table files,SST)中),从而同一个父节点下的元数据在KV数据库中保持一定粒度的集中,而不是打乱分散在各个SST文件中,这样的方式有利于提高KV数据的查询效率。
根据本公开实施例,根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息,可以包括:从所述文件系统中用于存储所述元数据的数据库中,提取所述元数据的索引数据和与所述元数据相关的操作信息,其中所述元数据可以是从对所述文件系统中的文件的操作业务流中提取的,与所述元数据相关的操作信息可以是对所述文件系统中的文件的操作业务流的操作信息,并且包括与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数;根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,作为所述元数据的特征信息。
作为示例,文件系统中有用于存储和管理元数据的数据库,如上述KV数据库,其中存储有与元数据相关的一些信息,如元数据的索引数据(如上述key值)。
作为示例,对文件系统中的文件的操作业务流可以是进行中的对文件进行删除、修改等操作流,其中,在每次对文件进行操作时,都会产生对应的元数据,进而就可以提取相关的元数据,例如,对文件1中的数据进行修改操作后会产生对应的元数据1,下次在对文件1中的数据进行修改操作后会产生对应的元数据2,此时之前产生的元数据1会被设置为无效元数据,再下次在对文件1中的数据进行修改操作后会产生对应的元数据3,此时之前产生的元数据2会被设置为无效元数据,也就是说,最终在数据库中存储的与该文件1相关的元数据中仅有一个元数据(如元数据3)是有效的元数据,而其它元数据(如元数据1和2)均是无效元数据,也即是说,每次对文件的修改或删除等操作会带来无效元数据的产生。
作为示例,与所述元数据相关的操作信息可以包括与元数据相关的各种操作类型(如上述修改或删除等)以及与各种操作类型对应的操作次数(如上述对文件1的修改进行了2次)。
根据本公开实施例,所述根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,可以包括:根据所述元数据的索引数据,将与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数记录到预先建立的分段表中,其中,所述分段表可以包括预先建立的与索引数据有关的多个分段范围。
作为示例,由上面所述的key值生成规则可知,key值的首字母(如0B/0x00000001/I/0x00000002中的“0”(即保留位)和0xXXXXXXXX/XXXXXXXX中的“X”)取值范围均在[0,Z]之间,因此,可以按照ASCII码的顺序建立一个分段表,分段表的形式类似[0,9],[A,E],…,[V,Z]等。
作为另一示例,可以按照key值的前两个或两个以上字母的取值范围来进行建立分段表,如表1中的保留位设置为2个16进制的位或者0xXXXXXXXX/XXXXXXXX中的前2个“X”,所述取值范围例如可以在[00,ZZ]之间,因此,可以按照ASCII码的顺序建立一个分段表,分段表的形式类似[00,0Z],[01,1Z],…,[Z0,ZZ]等。
根据本公开实施例,通过预先建立上述多个分段范围,就可以根据元数据的索引数据,将与元数据相关的各种操作类型和各种操作类型对应的操作次数记录到上述预先建立的分段表中,例如,可以得到如下表2所述的特征信息:
由于每次修改或删除等操作都会产生对应的无效元数据,因此通过上述建立分段表并进行统计相关的操作及次数的信息,就可以有效地识别出无效元数据集中在哪一个或哪几个数据范围中,进而能够帮助下文将介绍的预定任务执行范围的确定,从而相比现有的KV数据库的策略,能够更加精准地设置预定任务的执行范围,减少不必要的I/O开销,进而有助减少文件系统在正常场景下出现短时间性能抖动和访问阻塞的情况的发生。
继续参照图1,在步骤S120,对获取的所述特征信息和所述负载信息中的至少一部分可以进行分析。
根据本公开实施例,对获取的所述特征信息进行分析,可以包括:对获取的所述特征信息进行统计,得到所述特征信息的统计数据;根据所述统计数据,确定与每个分段范围对应的无效元数据的量;通过将确定的与每个分段范围对应的无效元数据的量分别与预定阈值进行比较来获得所述特征分析数据。
作为示例,由于每次修改或删除等操作都会产生对应的无效元数据。因此,例如对上表2所示的特性信息进行统计得到,[0,9]范围内共进行了100次修改和29次删除,确定出该范围内产生的无效元数据的量为129个;[A,E]范围内共进行了2次修改和35次删除,确定出该范围内产生的无效元数据的量为37;……;[V,Z]范围内共进行了20次修改和34次删除,确定出该范围内产生的无效元数据的量为54。接着,将上述确定出的无效元数据的量分别与预定阈值进行比较即可得到所述特征分析数据,其中,所述预定阈值是一个初始的经验值,该值可以根据实际应用场景灵活设置,例如预定阈值为80,则通过比较,发现仅有[0,9]范围内的无效数据的量超过阈值,则可以将与范围[0,9]对应的无效元数据需要去除的信息及其无效数据的量等作为特性分析数据,由此可以精确控制上述清理任务的任务执行范围。
根据本公开实施例,对所述负载信息进行分析可以包括:通过将所述负载信息与预先设置的所述文件系统的硬件设备的负载阈值进行比较,确定与所述硬件设备的资源状态有关的分析数据,作为所述负载分析数据。
作为示例,可以将CPU负载信息与对应的CPU负载阈值进行比较,确定与CPU的资源状态有关的分析数据,作为所述负载分析数据。如当前CPU负载信息为CPU使用率70%,CPU负载阈值为:CPU使用率50%,通过比较,确定出CPU的资源状态例如为紧缺,则将CPU资源紧缺的分析数据作为所述负载分析数据。再例如,当前CPU负载信息为CPU使用率20%,CPU负载阈值为:CPU使用率50%,通过比较,确定出CPU的资源状态例如为富裕,则将CPU资源富裕的分析数据作为所述负载分析数据。再例如,当前CPU负载信息为CPU使用率52%,CPU负载阈值为:CPU使用率50%,通过比较,确定出CPU的资源状态例如为一般,则将CPU资源一般的分析数据作为所述负载分析数据。
作为另一示例,可以将I/O负载信息与对应的I/O负载阈值进行比较,确定与I/O的资源状态有关的分析数据,作为所述负载分析数据。如当前I/O负载信息为I/O使用率80%,I/O负载阈值为:I/O使用率50%,通过比较,确定出I/O的资源状态例如为紧缺,则将I/O资源紧缺的分析数据作为所述负载分析数据。再例如,当前I/O负载信息为I/O使用率30%,I/O负载阈值为:I/O使用率50%,通过比较,确定出I/O的资源状态例如为富裕,则将I/O资源富裕的分析数据作为所述负载分析数据。再例如,当前I/O负载信息为I/O使用率48%,I/O负载阈值为:I/O使用率50%,通过比较,确定出I/O的资源状态例如为一般,则将I/O资源一般的分析数据作为所述负载分析数据。
在步骤S130,根据分析结果,可以控制所述文件系统的预定任务的执行,其中,所述预定任务可以是用于去除所述元数据中的无效元数据。
根据本公开实施例,根据分析结果,控制所述文件系统的预定任务的执行,可以包括:根据分析结果可以控制所述文件系统的预定任务的执行时机和执行范围中的至少一个。
根据本公开实施例,根据分析结果可以控制所述文件系统的预定任务的执行时机和执行范围中的至少一个,包括以下至少一项操作:根据对获取的所述特征信息进行分析而得到的特征分析数据,控制所述文件系统的预定任务的执行范围;根据对获取的所述文件系统的负载信息进行分析而得到的负载分析数据,控制所述文件系统的预定任务的执行时机。
作为示例,如上对表2得到的特性信息进行分析得到的例如与范围[0,9]对应的无效元数据需要去除的信息及其无效数据的量等作为特性分析数据,来控制文件系统的预定任务(如上述清理任务)的执行范围,使得文件系统可以精确控制上述任务的执行范围,进而避免额外的I/O资源的消耗。
作为示例,根据对获取的所述文件系统的负载信息进行分析而得到的负载分析数据(如上述对CPU或I/O负载信息与对应的负载阈值进行比较而获得的如CPU或I/O的资源精缺或富裕或一般的分析数据),来控制文件系统的预定任务(如上述清理任务)的执行时机,使得文件系统只在负载的资源富裕或一般的情况下,执行相关的预定任务,进而使得文件系统执行预定任务的时间是最优的,避免了上述数据互斥保护以及额外I/O的产生,防止了系统在正常场景下性能抖动和访问阻塞情况的发生。
根据本公开实施例,图1所示的文件系统的元数据管理方法还可以包括:获取所述文件系统中用于存储所述元数据的数据库的运行相关信息,其中,所述数据库的运行相关信息包括所述数据库预定运行时间段内的性能统计信息和所述数据库在运行时的状态信息中的至少一部分;对获取的所述数据库的运行相关信息进行分析;根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围。
根据本公开实施例,所述数据库预定运行时间段内的性能统计信息可以包括:数据库在固定时间片内(如15s)的性能统计,包括与删除或修改等操作对应的应用程序接口(Application Programming Interface,API)的平均响应时长,API接口的累计调用次数,数据库内部任务调度数据等。根据这些性能统计信息中的例如API接口的平均响应时长的变化可以有效判断数据库的性能是否出现恶化;根据这些性能统计信息中的例如API接口累计调用次数可以评估数据库的负载状态。
作为示例,所述数据库预定运行时间段内的性能统计信息可以如下表3所示的信息:
根据本公开实施例,所述数据库在运行时的状态信息可以包括:KV数据库在运行时内存表(Memtable)和SST文件的数量和空间占用情况,清理任务运行情况(包括当前正在运行的清理任务个数,历史任务的编号和执行时长统计等)。利用清理任务运行情况可以精准控制清理任务的频次,并且还可以利用清理任务运行情况中的例如任务运行时长统计来纠正因为下发任务范围不准导致清理执行时间过长等异常情况,如下发了对上述[0,9]和[A,E]范围对应的无效元数据进行去除的清理任务,结果发现清理任务的执行时长超过预期,则下次再下发任务时仅下发例如对上述[0,9]范围对应的无效元数据进行去除的清理任务。
作为示例,所述数据库在运行时的状态信息可以是如下表4所示的信息:
根据本公开实施例,对获取的所述数据库的运行相关信息进行分析,可以包括:根据所述数据库预定运行时间段内的性能统计信息和所述数据在运行时的状态信息中的至少一部分,确定与所述数据库的当前状态有关和与所述数据库的未来状态有关的分析数据,作为所述数据库分析数据。
作为示例,可以设置多个阈值,将数据库预定运行时间段内的性能统计信息与各个阈值进行比较,来确定与数据库的当前状态有关的分析数据,其中,数据库的当前状态可以分为忙碌、一般和空闲。例如,针对上述API接口的平均响应时长,可以设置超过平均响应时长的20%为第一阈值,低于平均响应时长的20%为第二阈值,当获得的API接口的平均响应时长高于第一阈值时,数据库的状态为忙碌,低于第二阈值时,数据库的状态为空闲,在第一阈值和第二阈值之间时,数据库的状态为一般。
作为示例,可以采用通用的趋势预测算法(如自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,ARIMA模型)算法或神经网络模型算法)对上述数据库预定运行时间段内的性能统计信息进行预测分析,得到数据库未来状态的例如三类趋势预测结果:维持、优化和恶化。该预测结果是与所述数据库的未来状态有关的分析数据。
根据本公开实施例,根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围,可以包括:根据所述数据库分析数据中的与所述数据库的未来状态有关的分析数据,可以确定是否缩减所述预定任务的执行范围。
作为示例,假设根据上述表2确定上述清理任务的任务执行范围为与范围[0,9]和[A,E]对应的无效元数据,但根据上述趋势预测算法预测数据库的未来状态是恶化,则此时可以确定出缩减所述预定范围的执行范围,将清理任务的任务执行范围确定为与[A,E]对应的无效元数据,从而不影响文件系统的稳定性,发挥文件系统的最优性能。
以上结合图1以及表1至4详细描述了本公开提供的文件系统的元数据管理方法。根据本公开提供的方法可以通过获取文件系统的负载信息并对其进行分析来精确地确定去除无效元数据的任务的执行时机,通过获取特性信息并对其分析来控制预定去除无效元数据的任务的执行范围,并且还可以通过获取数据库的运行相关信息并对其进行分析来调整预定去除无效元数据的任务的执行范围,从而使得清理任务的产生时机是最优的,避免了上述数据互斥保护以及额外I/O的产生,防止了系统在正常场景下性能抖动和访问阻塞情况的发生,提高了文件系统的稳定性,发挥了文件系统的最优性能。
为了对本公开提供的文件系统的元数据管理方法进行更全面的理解,接下来将以完整示例的形式对元数据管理方法进行详细描述,注意,该示例是示意性的,不构成对权利要求的限制性解释。
图2示出了根据本公开实施例的文件系统的元数据管理的整体框架图。
参照图2,其中,以分布式文件系统(Distributed file system,DFS)200为例进行的说明。DFS 200可以包括DFS 客户端220、数据引擎240、元数据引擎230、KV数据库(KV DB)250、本地文件系统270、KV控制器260、设备280和设备负载检测器290,其中KV DB可以包括数据库引擎251和数据库检测插件252,设备可以包括磁盘阵列、CPU、I/O(未示出)、网络(未示出)等。
首先,外部应用程序(APP)210通过网络文件系统(Network File System,NFS)、信息服务块(Server Messages Block,Samba)等常见协议连接到DFS客户端220,来进行文件的修改、删除等操作。
其次,文件中的数据会通过数据引擎240以数据流的形式传输到本地文件系统270,然后由本地文件系统270传输到硬件设备280进行存储等相关的操作。
作为文件的属性信息的元数据会传输到元数据引擎230,元数据引擎230会根据修改、删除等各种操作类型和对应操作次数生成上述特征信息,并将特征信息传输到KV控制器260。此外,元数据引擎230还将各种元数据传输到KV DB 250中,由数据库引擎251进行相关的存储等操作。另外,KV DB 250还会将相关的数据库数据传输到本地文件系统中进行相关的存储等操作。
KV DB 250中的数据库检测插件252会检测如上所述的数据库的运行相关信息,例如如上所述的数据库在运行时的状态信息(如清理任务运行情况)以及如上所述的数据库预定运行时间段内的性能统计信息(如API接口的平均响应时长),并将检测到的数据库的运行相关信息传输到KV控制器260。
设备负载检测器290会检测设备280的负载信息(如上所述的CPU、I/O、网络等负载信息),并将检测到的负载信息传输到KV 控制器260。
最后,KV 控制器260基于接收到的上述特征信息、数据库的运行相关信息以及负载信息来产生与预定任务的执行时机和执行范围有关的控制指令,并将该指令下发传输给KV DB 250,以由KV DB 250中的数据库引擎251执行相关的预定任务。
KV控制器260的框架图如图3所示,KV控制器260可以例如采用如下表5所示的数据采样方案来获得来自元数据引擎230、数据库检测插件252和设备负载检测器290的数据。
采用如上表5所示的数据采样方案后,上述三种来源的数据会以现有的任何数据格式中一种传输给KV控制器260,KV控制器260将接收到的上述数据传输到解析器261,解析器261会将所述数据格式的数据解析出来,并按照其来源(元数据引擎、数据库检测插件和设备负载检测器)或类型(如特性信息、数据库的运行相关信息和负载信息)存入到存储引擎262中。
存储引擎262会记录一段时间内的上述信息,其中,所述一段时间可以根据实际应用场景及相关的约束来进行设定,并且可以通过手动或自动的方式进行设定,在此不做赘述。
存储引擎262记录一段时间内的上述信息后会按来源或类型提供给相应的分析器进行分析处理,如将特征信息提供给特征信息分析器263进行分析处理,将数据库的运行相关信息提供给数据库的运行相关信息分析器264进行分析处理,将负责信息提供给负责信息分析器265进行分析处理,其中,负责信息可以包括如上所述的CPU负载、I/O负载、网络负载等信息,特征信息可以包括如上所述的与元数据相关的各种操作类型和各种操作类型所对应的操作次数,数据库的运行相关信息可以包括如上所述的数据库预定运行时间段内的性能统计信息和数据在运行时的状态信息。
特征信息分析器263、数据库的运行相关信息分析器264和负载信息分析器265对接收到的数据进行分析处理,并将分析的结果传输给决策模块267,例如,特征信息分析器263将如上所述的与范围[0,9]对应的无效元数据需要去除的分析结果传输给决策模块267,数据库的运行相关信息分析器264可以将数据库的当前状态为忙碌并且数据库的未来状态为优化的分析结构提供给决策模块267,负载信息分析器265可以将如上所述CPU的资源状态为紧缺并且I/O的资源状态为紧缺的分析结果传输给决策模块267。
决策模块267可以根据接收到的各个分析器发送的分析结果并结合配置管理266提供的系统配置来决定执行清理执行时机和执行范围,并将最终的相关指令下发传输给KVDB 250进行处理,同时决策模块267还可以根据上述分析结果来暂停或者中止正在运行的清理任务,例如,根据分析结果中数据库的未来状态将恶化并且I/O的资源状态为一般,则决策模块267可以决定中止正在运行的清理任务。
如图3所示的KV控制器260可以提供外部参数配置接口,通过该接口可以设定影响决策结果的关键算法的参数,以用于适配不同业务场景或者不同硬件配置,如设置上述CPU或I/O负载阈值。相关设定数据可参考不同场景下的模拟测试或者其他历史经验数据来进行设定,以提供一种人工辅助的手段帮助和提供系统决策的正确性。
如前所述,特征信息分析器263可以将相关的分析结果传输给决策模块267,而决策模块267也可以在清理任务执行完成后,将下发给KV DB 250的任务所对应的范围(如范围[0,9])反馈给特征信息分析器263,以有助于特征信息分析器263清理对应的分段范围。此外,由于特征信息分析器263将相关的信息(如范围[0,9]及无效元数据的量129)传输给决策模块267,到决策模块267下发指令给KV DB 250执行并从KV DB 250接收其在执行完任务后反馈的信息的这段时间,KV数据库中可能仍然有无效元数据的产生,则此时,从所述反馈的信息中获得的执行结果可能是范围[0,9]以及无效元数据的量300,在这种情况下,决策模块267可以通过比较下发指令时的数据量和接收反馈时的数量的比较,来确定数据采样方案中来至元数据引擎的数据的采样周期太长,需要调整该采样周期,比如调整为5s。
如前所述,数据库的运行相关信息分析器264可以将相关的分析结果传输给决策模块267,而决策模块267也可以相关的信息反馈给数据库的运行相关信息分析器264。例如,数据库的运行相关信息分析器264提供的分析结果中数据库的当前状态为忙碌,但当从KV DB 250接收到执行完任务后的反馈中获取执行此次清理任务的执行时间例如为2s,大于决策模块根据上述分析结果预判的执行时间4s,则说明数据库的运行相关信息分析器264提供的分析结果中关于数据库的当前状态为忙碌的分析数据有问题,需要将该问题反馈给数据库的运行相关信息分析器264,以有助于其调整如上所述的第一阈值或第二阈值,从而有利于后续再次下发任务以及任务执行的准确性,保持了文件系统的平稳运行。
决策模块267一般采用决策树的方法来对上述三种分析数据进行分析归纳,并形成最终的决议结果,其中,决策树可以类似于图4中呈现的形式,下文将结合图4对此进行说明。
此外,由上述描述可知,本公开提供的方法或示例中使用的数据,可以分为三类:阶段型,长久型和参考型数据三类,其中,阶段型数据是需要在每次对应的清理任务执行完成后清除的数据,比如特性信息中删除、修改等API操作的次数和对应分段范围等。如果下发的清理任务处理的数据范围包含分段表中某个分段范围,则在完成任务后清除分段表中对应的统计信息;长久型数据是指需要循环记录多组,但不依赖于清理任务执行的历史数据,主要用来协助预测和分析趋势,比如数据库的API接口的平均响应时长,清理任务的执行时长等信息。决策模块可以借助趋势预测模型来预判数据库性能是否已经恶化,或者用来调整清理任务范围是否需要增减等;参考型数据是指决策模块下发任务前需要参考的数据信息,比如设备负载信息中的设备的CPU负载、IO负载等。此外,针对上述数据的统计周期可以通过外部配置来设定或调整,比如采用时间片长度的方式或者是预设一定数据量为一个周期的方式来进行,此处不再赘述。
另外,针对上述不同类型数据的存储方案可以是不同的,如阶段型数据和参考型数据保存在内存中不做持久化,出现掉电等异常情况导致数据丢失,只需要在系统恢复业务之后重新收集信息即可;长久型数据需要定时持久化,决策模块需要借助长久型数据来进行预测,为了避免因数据丢失导致的下发任务失准,可以定时对数据进行持久化,控制磁盘频率、额外的I/O开销等。
图4示出了根据本公开实施例的决策模块267中的决策树的示图。
如图4所示,在步骤S410,判断CPU的资源状态是否为紧缺,在CPU的资源状态为紧缺的情况下,在步骤S420,再判断I/O的资源状态是否为紧缺;在CPU的资源状态为不紧缺的情况下,在步骤S440,再判断数据库的当前状态是否为忙碌。
在步骤S420,判断I/O的资源状态为紧缺的情况下,说明此时文件系统处于忙碌状态,不是执行相关预定任务的最佳时机,则在步骤S430,暂停清理清理任务。在步骤S420,判断I/O的资源状态为不紧缺的情况下,则在步骤S440,再判断数据库的当前状态是否为忙碌。
在步骤S440,判断数据库的当前状态为忙碌的情况下,需要继续在步骤S450,判断数据库的未来状态是否为恶化。在步骤S440,判断数据库的当前状态为不忙碌的情况下,则说明此时是下发相关清理任务的时机,则在步骤S460直接下发清理任务给KV DB 250执行。
在步骤S450,判断数据库的未来状态为恶化的情况下,说明此时不是下发任务的时机,则在步骤S430,暂停清理清理任务。在步骤S450,判断数据库的未来状态为不恶化的情况下,由于当前数据库比较忙碌,则此时需要继续执行到步骤S470,判断是否需要调整执行范围;在数据库的未来状态为例如为维持现在的忙碌状态的情况下,可以判定需要调整执行范围,并在步骤S480,调整(例如缩减)执行范围并下发任务;在数据库的未来状态为例如优化的情况下,可以判断不需要调整执行范围,并在步骤S460,直接下发清理任务给KVDB 250执行。
以上结合图2至图4以及表5以示例的形式详细描述了本公开提供的文件系统的元数据管理方法。由上述描述的内容可知,本公开提供的方法不仅可以很好地控制预定任务的执行时机,还可以控制并调整预定任务的执行范围,从而使清理任务的产生时机最优,避免了数据互斥保护以及额外的I/O的产生,进而也避免了文件系统在正常场景下出现短时间性能抖动和访问阻塞的情况的发生,提高了文件系统的稳定性,发挥了文件系统的最优性能。
本公开除了提供上述文件系统的元数据管理方法之外,还提供了文件系统的元数据管理装置,下面将结合图5对此进行详细描述。
图5示出了根据本公开实施例的文件系统的元数据管理装置500的框图。
参照图5,元数据管理装置500可以包括第一获取模块510、第一分析模块520和第一执行模块530。
根据本公开实施例,第一获取模块510可以被配置为获取元数据的特征信息和所述文件系统的负载信息中的至少一部分,其中,所述元数据是所述文件系统中的文件的属性信息。
根据本公开实施例,所述元数据可以是所述文件系统中的文件的属性信息,如文件的名称、修改时间、大小等。
根据本公开实施例,所述文件系统的负载信息可以包括文件系统的处理器负载(CPU)、输入输出接口负载(I/O)、网络负载等中的至少一部分。
根据本公开实施例,获取元数据的特征信息可以包括:根据元数据的索引数据以及与所述元数据相关的操作信息,来生成所述元数据的特征信息。
根据本公开实施例,所述元数据的索引数据可以是与该元数据对应的唯一的标识符,与所述元数据相关的操作信息可以是对所述文件系统中的文件的操作业务流的操作信息,其中,所述元数据可以是从对所述文件系统中的文件的操作业务流中提取的。
例如,在KV数据库中,所述元数据的索引数据可以是与元数据对应的键值(即key值),其中,关于key值的生成规则可以是任何能够提高KV数据库的查询效率的规则。
根据本公开实施例,根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息,可以包括:从所述文件系统中用于存储所述元数据的数据库中,提取所述元数据的索引数据和与所述元数据相关的操作信息,其中所述元数据可以是从对所述文件系统中的文件的操作业务流中提取的,与所述元数据相关的操作信息可以是对所述文件系统中的文件的操作业务流的操作信息,并且包括与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数;根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,作为所述元数据的特征信息。
作为示例,文件系统中有用于存储和管理元数据的数据库,如上述KV数据库,其中存储有与元数据相关的一些信息,如元数据的索引数据(如上述key值)。
作为示例,对文件系统中的文件的操作业务流可以是进行中的对文件进行删除、修改等操作流,其中,在每次对文件进行操作时,都会产生对应的元数据,进而就可以提取相关的元数据。
根据本公开实施例,所述根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,可以包括:根据所述元数据的索引数据,将与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数记录到预先建立的分段表中,其中,所述分段表可以包括预先建立的与索引数据有关的多个分段范围。
根据本公开实施例,通过预先建立上述多个分段范围,就可以根据元数据的索引数据,将与元数据相关的各种操作类型和各种操作类型对应的操作次数记录到上述预先建立的分段表中。
根据本公开实施例,第一分析模块520可以被配置为对获取的所述特征信息和所述负载信息中的至少一部分进行分析。
根据本公开实施例,对获取的所述特征信息进行分析,可以包括:对获取的所述特征信息进行统计,得到所述特征信息的统计数据;根据所述统计数据,确定与每个分段范围对应的无效元数据的量;通过将确定的与每个分段范围对应的无效元数据的量分别与预定阈值进行比较来获得所述特征分析数据。
作为示例,由于每次修改或删除等操作都会产生对应的无效元数据。因此,例如对上表2所示的特性信息进行统计得到,[0,9]范围内共进行了100次修改和29次删除,确定出该范围内产生的无效元数据的量为129个;[A,E]范围内共进行了2次修改和35次删除,确定出该范围内产生的无效元数据的量为37;……;[V,Z]范围内共进行了20次修改和34次删除,确定出该范围内产生的无效元数据的量为54。接着,将上述确定出的无效元数据的量分别与预定阈值进行比较即可得到所述特征分析数据,其中,所述预定阈值是一个初始的经验值,该值可以根据实际应用场景灵活设置,例如预定阈值为80,则通过比较,发现仅有[0,9]范围内的无效数据的量超过阈值,则可以将与范围[0,9]对应的无效元数据需要去除的信息及其无效数据的量等作为特性分析数据,由此可以精确控制上述清理任务的任务执行范围。
根据本公开实施例,对所述负载信息进行分析可以包括:通过将所述负载信息与预先设置的所述文件系统的硬件设备的负载阈值进行比较,确定与所述硬件设备的资源状态有关的分析数据,作为所述负载分析数据。
作为示例,可以将CPU负载信息与对应的CPU负载阈值进行比较,确定与CPU的资源状态有关的分析数据,作为所述负载分析数据。如当前CPU负载信息为CPU使用率70%,CPU负载阈值为:CPU使用率50%,通过比较,确定出CPU的资源状态例如为紧缺,则将CPU资源紧缺的分析数据作为所述负载分析数据。再例如,当前CPU负载信息为CPU使用率20%,CPU负载阈值为:CPU使用率50%,通过比较,确定出CPU的资源状态例如为富裕,则将CPU资源富裕的分析数据作为所述负载分析数据。再例如,当前CPU负载信息为CPU使用率52%,CPU负载阈值为:CPU使用率50%,通过比较,确定出CPU的资源状态例如为一般,则将CPU资源一般的分析数据作为所述负载分析数据。
根据本公开实施例,第一执行模块530可以被配置为根据分析结果,控制所述文件系统的预定任务的执行,其中,所述预定任务是用于去除所述元数据中的无效元数据。
根据本公开实施例,所述第一执行模块530可以包括:根据分析结果,控制所述文件系统的预定任务的执行时机和执行范围中的至少一个。
根据分析结果可以控制所述文件系统的预定任务的执行时机和执行范围中的至少一个,包括以下至少一项操作:根据对获取的所述特征信息进行分析而得到的特征分析数据,控制所述文件系统的预定任务的执行范围;根据对获取的所述文件系统的负载信息进行分析而得到的负载分析数据,控制所述文件系统的预定任务的执行时机。
作为示例,如上对表2得到的特性信息进行分析得到的例如与范围[0,9]对应的无效元数据需要去除的信息作为特性分析数据,来控制文件系统的预定任务(如上述清理任务)的执行范围,使得文件系统可以精确控制上述任务的执行范围,进而避免额外的I/O资源的消耗。
根据本公开实施例,图5所示的文件系统的元数据管理装置还可以包括:第二获取模块,其可以被配置为获取所述文件系统中用于存储所述元数据的数据库的运行相关信息,其中,所述数据库的运行相关信息包括所述数据库预定运行时间段内的性能统计信息和所述数据库在运行时的状态信息中的至少一部分;第二分析模块,其可以被配置为对获取的所述数据库的运行相关信息进行分析;第二执行模块,其可以被配置为根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围。
根据本公开实施例,所述数据库预定运行时间段内的性能统计信息可以包括:数据库在固定时间片内(如15s)的性能统计,包括与删除或修改等操作对应的应用程序接口(Application Programming Interface,API)接口的平均响应时长,API接口的累计调用次数,数据库内部任务调度数据等。根据这些性能统计信息中的例如API接口的平均响应时长的变化可以有效判断数据库的性能是否出现恶化;根据这些性能统计信息中的例如API接口累计调用次数可以评估数据库的负载状态。
根据本公开实施例,所述数据库在运行时的状态信息可以包括:KV数据库在运行时内存表(Memtable)和SST文件的数量和空间占用情况,清理任务运行情况(包括当前正在运行的清理任务个数,历史任务的编号和执行时长统计等)。利用清理任务运行情况可以精准控制清理任务的频次,并且还可以利用清理任务运行情况中的例如任务运行时长统计来纠正因为下发任务范围不准导致清理执行时间过长等异常情况,如下发了对上述[0,9]和[A,E]范围对应的无效元数据进行去除的清理任务,结果发现清理任务的执行时长超过预期,则下次再下发任务时仅下发例如对上述[0,9]范围对应的无效元数据进行去除的清理任务。
根据本公开实施例,对获取的所述数据库的运行相关信息进行分析,可以包括:根据所述数据库预定运行时间段内的性能统计信息和所述数据在运行时的状态信息中的至少一部分,确定与所述数据库的当前状态有关和与所述数据库的未来状态有关的分析数据,作为所述数据库分析数据。
作为示例,可以设置多个阈值,将数据库预定运行时间段内的性能统计信息与各个阈值进行比较,来确定与数据库的当前状态有关的分析数据,其中,数据库的当前状态可以分为忙碌、一般和空闲。例如,针对上述API接口的平均响应时长,可以设置超过平均响应时长的20%为第一阈值,低于平均响应时长的20%为第二阈值,当获得的API接口的平均响应时长高于第一阈值时,数据库的状态为忙碌,低于第二阈值时,数据库的状态为空闲,在第一阈值和第二阈值之间时,数据库的状态为一般。
根据本公开实施例,根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围,可以包括:根据所述数据库分析数据中的与所述数据库的未来状态有关的分析数据,可以确定是否缩减所述预定任务的执行范围。
作为示例,假设根据上述表2确定上述清理任务的任务执行范围为与范围[0,9]和[A,E]对应的无效元数据,但根据上述趋势预测算法预测数据库的未来状态是恶化,则此时可以确定出缩减所述预定范围的执行范围,将清理任务的任务执行范围确定为与[A,E]对应的无效元数据,从而不影响文件系统的稳定性,发挥文件系统的最优性能。
由于以上已经在描述根据本公开的文件系统的元数据管理方法的过程中,对上述操作所涉及的内容的细节进行了介绍,因此这里为简洁起见不再赘述,相关细节可参照以上关于图1至图4以及表1至表5的描述。
以上已经参照图1至图5以及表1至表5描述了根据公开的实施例的文件系统的元数据管理方法和装置。然而,应理解的是:图5所示的装置中的各个模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。
此外,本公开还提供了一种分布式文件系统的数据管理设备,接下来将结合图6进行说明。
图6示出了根据本公开实施例的分布式文件系统的数据管理设备600的结构图。
参见图6,数据管理设备600可以包括处理器601和存储器602。处理器601和存储器602都可以通过总线603相连。
处理器601可以根据存储在存储器602中的程序执行各种动作和处理。具体地,处理器601可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构或ARM架构的。
存储器602存储有计算机可执行指令,在计算机可执行指令被处理器601执行时实现上述由处理器执行的数据处理的方法。存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DR RAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
此外,根据本公开的由服务器执行的数据处理的方法可被记录在计算机可读记录介质中。具体地,根据本公开,可提供一种存储有计算机可执行指令的计算机可读记录介质,当所述计算机可执行指令被处理器执行时,可促使处理器执行如上所述的文件系统的元数据管理方法。
需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其它方面可以在可以由控制器、微处理器或其它计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其它图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备,或其某些组合中实施。
在上面详细描述的本公开的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本公开的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本公开的范围内。
Claims (22)
1.一种文件系统的元数据管理方法,其特征在于,包括:
获取元数据的特征信息和所述文件系统的负载信息中的至少一部分,其中,所述元数据是所述文件系统中的文件的属性信息;
对获取的所述特征信息和所述负载信息中的至少一部分进行分析;
根据分析结果,控制所述文件系统的预定任务的执行,其中,所述预定任务是用于去除所述元数据中的无效元数据,
其中,所述获取元数据的特征信息包括:根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息,
其中,所述根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息,包括:
从所述文件系统中用于存储所述元数据的数据库中,提取所述元数据的索引数据和与所述元数据相关的操作信息,其中,所述元数据的数据库是键值对数据库,所述元数据的索引数据是与所述元数据对应的键值,所述元数据是从对所述文件系统中的文件的操作业务流中提取的,与所述元数据相关的操作信息是对所述文件系统中的文件的操作业务流的操作信息,并且包括与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数;
根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,作为所述元数据的特征信息,其中,当所述分段记录中与预定分段范围对应的操作次数大于预定阈值时,将所述预定分段范围确定为所述预定任务的执行范围。
2.如权利要求1所述的元数据管理方法,其特征在于,其中,根据分析结果,控制所述文件系统的预定任务的执行,包括:
根据分析结果,控制所述文件系统的预定任务的执行时机和执行范围中的至少一个。
3.如权利要求2所述的元数据管理方法,其特征在于,其中,根据分析结果,控制所述文件系统的预定任务的执行时机和执行范围中的至少一个,包括以下至少一项操作:
根据对获取的所述特征信息进行分析而得到的特征分析数据,控制所述文件系统的预定任务的执行范围;
根据对获取的所述文件系统的负载信息进行分析而得到的负载分析数据,控制所述文件系统的预定任务的执行时机。
4.如权利要求2所述的元数据管理方法,其特征在于,其中,所述方法还包括:
获取所述文件系统中用于存储所述元数据的数据库的运行相关信息,其中,所述数据库的运行相关信息包括所述数据库预定运行时间段内的性能统计信息和所述数据库在运行时的状态信息中的至少一部分;
对获取的所述数据库的运行相关信息进行分析;
根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围。
5.如权利要求1所述的元数据管理方法,其特征在于,其中,所述根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,包括:
根据所述元数据的索引数据,将与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数记录到预先建立的分段表中,其中,所述分段表包括预先建立的与索引数据有关的多个分段范围。
6.如权利要求5所述的元数据管理方法,其特征在于,其中,对获取的所述特征信息进行分析,包括:
对获取的所述特征信息进行统计,得到所述特征信息的统计数据;
根据所述统计数据,确定与每个分段范围对应的无效元数据的量;
通过将确定的与每个分段范围对应的无效元数据的量分别与预定阈值进行比较来获得所述特征分析数据。
7.如权利要求3所述的元数据管理方法,其特征在于,其中,对所述负载信息进行分析,包括:
通过将所述负载信息与预先设置的所述文件系统的硬件设备的负载阈值进行比较,确定与所述硬件设备的资源状态有关的分析数据,作为所述负载分析数据。
8.如权利要求7所述的元数据管理方法,其特征在于,其中,所述负载信息包括处理器负载(CPU)、输入输出接口负载(I/O)、网络负载中的至少一部分。
9.如权利要求4所述的元数据管理方法,其特征在于,其中,对获取的所述数据库的运行相关信息进行分析,包括:
根据所述数据库预定运行时间段内的性能统计信息和所述数据在运行时的状态信息中的至少一部分,确定与所述数据库的当前状态有关和与所述数据库的未来状态有关的分析数据,作为所述数据库分析数据。
10.如权利要求9所述的元数据管理方法,其特征在于,其中,根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围,包括:根据所述数据库分析数据中的与所述数据库的未来状态有关的分析数据,确定是否缩减所述预定任务的执行范围。
11.一种文件系统的元数据管理装置,其特征在于,包括:
第一获取模块,被配置为获取元数据的特征信息和所述文件系统的负载信息中的至少一部分,其中,所述元数据是所述文件系统中的文件的属性信息;
第一分析模块,被配置为对获取的所述特征信息和所述负载信息中的至少一部分进行分析;
第一执行模块,被配置为根据分析结果,控制所述文件系统的预定任务的执行,其中,所述预定任务是用于去除所述元数据中的无效元数据,
其中,所述获取元数据的特征信息包括:
根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息,
其中,所述根据所述元数据的索引数据以及与所述元数据相关的操作信息,生成所述元数据的特征信息,包括:
从所述文件系统中用于存储所述元数据的数据库中,提取所述元数据的索引数据和与所述元数据相关的操作信息,其中,所述元数据的数据库是键值对数据库,所述元数据的索引数据是与所述元数据对应的键值,所述元数据是从对所述文件系统中的文件的操作业务流中提取的,与所述元数据相关的操作信息是对所述文件系统中的文件的操作业务流的操作信息,并且包括与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数;
根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,作为所述元数据的特征信息,其中,当所述分段记录中与预定分段范围对应的操作次数大于预定阈值时,将所述预定分段范围确定为所述预定任务的执行范围。
12.如权利要求11所述的元数据管理装置,其特征在于,其中,所述第一执行模块包括:
根据分析结果,控制所述文件系统的预定任务的执行时机和执行范围中的至少一个。
13.如权利要求12所述的元数据管理装置,其特征在于,其中,根据分析结果,控制所述文件系统的预定任务的执行时机和执行范围中的至少一个,包括以下至少一项操作:
根据对获取的所述特征信息进行分析而得到的特征分析数据,控制所述文件系统的预定任务的执行范围;
根据对获取的所述文件系统的负载信息进行分析而得到的负载分析数据,控制所述文件系统的预定任务的执行时机。
14.如权利要求12所述的元数据管理装置,其特征在于,其中,所述装置还包括:
第二获取模块,被配置为获取所述文件系统中用于存储所述元数据的数据库的运行相关信息,其中,所述数据库的运行相关信息包括所述数据库预定运行时间段内的性能统计信息和所述数据库在运行时的状态信息中的至少一部分;
第二分析模块,被配置为对获取的所述数据库的运行相关信息进行分析;
第二执行模块,被配置为根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围。
15.如权利要求11所述的元数据管理装置,其特征在于,其中,所述根据所述元数据的索引数据对与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数进行分段记录,包括:
根据所述元数据的索引数据,将与所述元数据相关的各种操作类型和各种操作类型所对应的操作次数记录到预先建立的分段表中,其中,所述分段表包括预先建立的与索引数据有关的多个分段范围。
16.如权利要求15所述的元数据管理装置,其特征在于,其中,对获取的所述特征信息进行分析,包括:
对获取的所述特征信息进行统计,得到所述特征信息的统计数据;
根据所述统计数据,确定与每个分段范围对应的无效元数据的量;
通过将确定的与每个分段范围对应的无效元数据的量分别与预定阈值进行比较来获得所述特征分析数据。
17.如权利要求13所述的元数据管理装置,其特征在于,其中,对所述负载信息进行分析,包括:
通过将所述负载信息与预先设置的所述文件系统的硬件设备的负载阈值进行比较,确定与所述硬件设备的资源状态有关的分析数据,作为所述负载分析数据。
18.如权利要求17所述的元数据管理装置,其特征在于,其中,所述负载信息包括处理器负载(CPU)、输入输出接口负载(I/O)、网络负载中的至少一部分。
19.如权利要求14所述的元数据管理装置,其特征在于,其中,对获取的所述数据库的运行相关信息进行分析,包括:
根据所述数据库预定运行时间段内的性能统计信息和所述数据在运行时的状态信息中的至少一部分,确定与所述数据库的当前状态有关和与所述数据库的未来状态有关的分析数据,作为所述数据库分析数据。
20.如权利要求19所述的元数据管理装置,其特征在于,其中,根据对所述运行相关信息进行分析而得到的数据库分析数据,控制所述预定任务的执行范围,包括:根据所述数据库分析数据中的与所述数据库的未来状态有关的分析数据,确定是否缩减所述预定任务的执行范围。
21.一种分布式文件系统的数据管理设备,其特征在于,包括:
处理器,和
存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令当由处理器执行时促使处理器执行如权利要求1-10中的任一项所述的方法。
22.一种计算机可读记录介质,存储有计算机可执行指令,其特征在于,其中,所述计算机可执行指令当由处理器执行时促使处理器执行如权利要求1-10中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899041.9A CN113342758B (zh) | 2021-08-06 | 2021-08-06 | 文件系统的元数据管理方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899041.9A CN113342758B (zh) | 2021-08-06 | 2021-08-06 | 文件系统的元数据管理方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342758A CN113342758A (zh) | 2021-09-03 |
CN113342758B true CN113342758B (zh) | 2021-11-19 |
Family
ID=77480925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110899041.9A Active CN113342758B (zh) | 2021-08-06 | 2021-08-06 | 文件系统的元数据管理方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342758B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197634A (zh) * | 2013-03-15 | 2013-07-10 | 上海大学 | 用于自动化制造加工系统的在线预测与在线加工计划生成系统和方法 |
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
CN107478917A (zh) * | 2017-07-17 | 2017-12-15 | 国网江西省电力公司电力科学研究院 | 一种台区不平衡度的判定方法和装置 |
CN108255937A (zh) * | 2017-12-08 | 2018-07-06 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 基于sdn的资源清理方法、装置、存储介质和计算机设备 |
CN110597825A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置及节点设备 |
CN111026333A (zh) * | 2019-12-10 | 2020-04-17 | 北京金山云网络技术有限公司 | 访问请求处理方法、处理装置、电子设备及存储介质 |
CN111930601A (zh) * | 2020-05-14 | 2020-11-13 | 国家电网有限公司客户服务中心 | 一种基于深度学习的数据库状态综合评分方法及其系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787037B (zh) * | 2016-02-25 | 2019-03-15 | 浪潮(北京)电子信息产业有限公司 | 一种重复数据的删除方法及装置 |
CN106886370B (zh) * | 2017-01-24 | 2019-12-06 | 华中科技大学 | 一种基于ssd去重技术的数据安全删除方法及系统 |
CN108108469A (zh) * | 2017-12-29 | 2018-06-01 | 北京奇虎科技有限公司 | 数据迭代方法及装置 |
-
2021
- 2021-08-06 CN CN202110899041.9A patent/CN113342758B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197634A (zh) * | 2013-03-15 | 2013-07-10 | 上海大学 | 用于自动化制造加工系统的在线预测与在线加工计划生成系统和方法 |
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
CN107478917A (zh) * | 2017-07-17 | 2017-12-15 | 国网江西省电力公司电力科学研究院 | 一种台区不平衡度的判定方法和装置 |
CN108255937A (zh) * | 2017-12-08 | 2018-07-06 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 基于sdn的资源清理方法、装置、存储介质和计算机设备 |
CN110597825A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置及节点设备 |
CN111026333A (zh) * | 2019-12-10 | 2020-04-17 | 北京金山云网络技术有限公司 | 访问请求处理方法、处理装置、电子设备及存储介质 |
CN111930601A (zh) * | 2020-05-14 | 2020-11-13 | 国家电网有限公司客户服务中心 | 一种基于深度学习的数据库状态综合评分方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113342758A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018001110A1 (zh) | 一种基于纠删码的存储数据重构方法和装置、存储节点 | |
US7814057B2 (en) | Page recovery using volume snapshots and logs | |
US20180225346A1 (en) | Data processing method, device and system | |
CN111949633B (zh) | 一种基于并行流处理的ict系统运行日志分析方法 | |
CN110928851B (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
WO2019148713A1 (zh) | Sql语句处理方法、装置、计算机设备和存储介质 | |
CN101030900A (zh) | 用于动态调整性能监视的装置、系统和方法 | |
CN111190753A (zh) | 分布式任务处理方法、装置、存储介质和计算机设备 | |
CN112527879A (zh) | 基于Kafka的实时数据抽取方法及相关设备 | |
CN110795614A (zh) | 一种索引自动优化方法及装置 | |
CN112434003A (zh) | 一种sql优化方法、装置、计算机设备及存储介质 | |
CN113342758B (zh) | 文件系统的元数据管理方法、装置、设备和介质 | |
CN114385760A (zh) | 增量数据实时同步的方法、装置、计算机设备及存储介质 | |
US10521119B1 (en) | Hybrid copying garbage collector | |
CN111984196B (zh) | 一种文件迁移方法、装置、设备及可读存储介质 | |
CN110704223B (zh) | 一种数据库单节点异常的恢复系统和方法 | |
CN109299132B (zh) | Sql数据处理方法、系统以及电子设备 | |
US11216352B2 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
CN116302383A (zh) | 分布式异构数据采集方法、系统、计算机设备及存储介质 | |
CN114003618A (zh) | 数据库信息变更追溯方法、装置、计算机设备及存储介质 | |
CN109542662B (zh) | 一种内存管理方法、装置、服务器及存储介质 | |
CN112269763A (zh) | 一种文件聚合方法及相关装置 | |
CN111611480A (zh) | 推荐策略生成方法、装置、计算机设备及存储介质 | |
CN113568883B (zh) | 数据写入方法及装置 | |
CN112445427B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40061778 Country of ref document: HK |