CN116450590A - 一种元数据管理方法及相关组件 - Google Patents

一种元数据管理方法及相关组件 Download PDF

Info

Publication number
CN116450590A
CN116450590A CN202310416902.2A CN202310416902A CN116450590A CN 116450590 A CN116450590 A CN 116450590A CN 202310416902 A CN202310416902 A CN 202310416902A CN 116450590 A CN116450590 A CN 116450590A
Authority
CN
China
Prior art keywords
metadata
cache region
level cache
accessed
reduced
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.)
Pending
Application number
CN202310416902.2A
Other languages
English (en)
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.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data 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 Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202310416902.2A priority Critical patent/CN116450590A/zh
Publication of CN116450590A publication Critical patent/CN116450590A/zh
Pending legal-status Critical Current

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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明公开了一种元数据管理方法及相关组件,涉及元数据技术领域,在接收到待缓存的元数据时,将元数据缓存至一级缓存区中,当后续有获取元数据需求时,只需在一级缓存区中查询即可,无需通过连接基础缓存区的方式重新获取对应元数据,减少延时,提高效率;当一级缓存区中的元数据的数量达到预设阈值时,将一级缓存区中的元数据转换成包括元数据的基础信息且所占用的系统内存小于元数据所占用的系统内存的精简元数据,并将所述精简元数据缓存至二级缓存区中,对元数据进行精简处理,使得在对系统内存的占用不变的情况下提高缓存的元数据总量,有效节省了分布式存储系统的系统内存。

Description

一种元数据管理方法及相关组件
技术领域
本发明涉及元数据技术领域,特别是涉及一种元数据管理方法及相关组件。
背景技术
随着科技的发展,分布式存储系统中存储的文件日益增加,文件中包含的数据信息也越来越多,通常情况下,同一文件的数据信息会被分开被存储在分布式存储系统的不同存储节点上,每次访问文件前,在基础缓存区中获取文件的元数据,元数据一般包括用于描述文件的特征的基础信息和根据基础信息生成的业务运行数据等,根据元数据查询文件的数据信息所存储在的存储节点中,以便进行后续操作。
但随着文件数量的增加,海量访问文件的场景应运而生,为了提高分布式存储系统的文件访问性能,相关技术通过提前将对应的元数据信息缓存在分布式存储系统的Lib库中的方式,减少连接基础缓存区造成的时延,以提高文件访问的效率。然而随着缓存文件的元数据数量的增加,这种方法对系统内存的占用也会随着增加,同样会影响分布式存储系统的文件访问性能,并限制了缓存数据量的进一步发展。
发明内容
本发明的目的是提供一种元数据管理方法及相关组件,在接收到待缓存的元数据时,将元数据缓存至一级缓存区中,当后续有获取元数据需求时,只需在一级缓存区中查询即可,无需通过连接基础缓存区的方式重新获取对应元数据,减少延时,提高效率;当一级缓存区中的元数据的数量达到预设阈值时,将一级缓存区中的元数据转换成包括元数据的基础信息且所占用的系统内存小于元数据所占用的系统内存的精简元数据,并将所述精简元数据缓存至二级缓存区中,对元数据进行精简处理,使得在对系统内存的占用不变的情况下提高缓存的元数据总量,有效节省了分布式存储系统的系统内存。
为解决上述技术问题,本发明提供了一种元数据管理方法,包括:
在接收到待缓存的元数据时,将所述元数据缓存至一级缓存区中;
判断所述一级缓存区中的元数据的数量是否达到预设阈值;
若是,对所述一级缓存区中的目标元数据进行精简处理,以得到精简元数据,所述精简元数据包括所述目标元数据的基础信息且所占用的系统内存的内存量小于所述目标元数据所占用的系统内存的内存量;
将所述精简元数据缓存至二级缓存区中,并将所述一级缓存区中进行精简处理的元数据删除;所述一级缓存区的元数据访问优先级高于所述二级缓存区的元数据访问优先级。
优选地,对所述一级缓存区中的目标元数据进行精简处理,包括:
根据所述一级缓存区中的元数据的信息,确定所述元数据被缓存至所述一级缓存区的时间先后顺序;
将最先被缓存至所述一级缓存区的元数据作为目标元数据,对所述目标元数据进行精简处理,以得到所述精简元数据。
优选地,还包括:
在接收到元数据访问请求时,判断待访问元数据是否存在于所述一级缓存区中;
若所述待访问元数据存在于所述一级缓存区中,从所述一级缓存区中获取所述待访问元数据;
若所述待访问元数据不存在于所述一级缓存区中,判断所述二级缓存区中是否存在所述待处理元数据对应的精简元数据;
若所述二级缓存区中存在所述待访问元数据对应的精简元数据,获取所述待处理元数据对应的精简元数据,并基于所述精简元数据构建所述待访问元数据。
优选地,还包括:
若所述二级缓存区中不存在所述待访问元数据对应的精简元数据,从基础缓存区中获取所述待访问元数据。
优选地,从基础缓存区中获取所述待访问元数据,包括:
从元数据服务器中获取所述待访问元数据。
优选地,从基础缓存区中获取所述待访问元数据,包括:
从磁盘中获取所述待访问元数据。
优选地,在对所述一级缓存区中的元数据进行精简处理之前,还包括:
判断所述一级缓存区中的元数据中是否包括正在进行业务的元数据;
若是,对一级缓存区中除去正在进行业务的元数据之外的目标元数据进行精简处理;
若否,转入对所述一级缓存区中的目标元数据进行精简处理的步骤。
本发明还提供了一种元数据管理装置,包括:
一级缓存模块,用于在接收到待缓存的元数据时,将所述元数据缓存至一级缓存区中;
阈值判断模块,用于判断所述一级缓存区中的元数据的数量是否达到预设阈值;
元数据精简模块,用于当所述一级缓存区中的元数据的数量达到所述预设阈值时,对所述一级缓存区中的目标元数据进行精简处理,以得到精简元数据,所述精简元数据包括所述目标元数据的基础信息且所占用的系统内存的内存量小于所述目标元数据所占用的系统内存的内存量;
二级缓存模块,用于将所述精简元数据缓存至二级缓存区中,并将所述一级缓存区中进行精简处理的元数据删除;所述一级缓存区的元数据访问优先级高于所述二级缓存区的元数据访问优先级。
优选地,所述元数据精简模块,包括:
时间顺序确定模块,用于根据所述一级缓存区中的元数据的信息,确定所述元数据被缓存至所述一级缓存区的时间先后顺序;
第一目标元数据精简模块,用于将最先被缓存至一级缓存区的元数据作为目标元数据,对所述目标元数据进行精简处理,以得到所述精简元数据。
优选地,还包括:
第一缓存区模块,用于在接收到元数据访问请求时,判断待访问元数据是否存在于所述一级缓存区中;
第一元数据获取模块,用于若所述待访问元数据存在于所述一级缓存区中,从所述一级缓存区中获取所述待访问元数据;
第二缓存区模块,用于若所述待访问元数据不存在于所述一级缓存区中,判断所述二级缓存区中是否存在所述待处理元数据对应的精简元数据;
第二元数据获取模块,用于若所述二级缓存区中存在所述待访问元数据对应的精简元数据,获取所述待处理元数据对应的精简元数据,并基于所述精简元数据构建所述待访问元数据。
优选地,还包括:
第三元数据获取模块,用于若所述二级缓存区中不存在所述待访问元数据对应的精简元数据,从基础缓存区中获取所述待访问元数据。
优选地,所述第三元数据获取模块,包括:
元数据服务器模块,用于从元数据服务器中获取所述待访问元数据。
优选地,所述第三元数据获取模块,包括:
磁盘模块,用于从磁盘中获取所述待访问元数据。
优选地,所述元数据精简模块,还包括:
业务判断模块,用于判断所述一级缓存区中的元数据中是否包括正在进行业务的元数据;
第二目标元数据精简模块,用于当所述一级缓存区中的元数据中包括正在进行业务的元数据,对所述一级缓存区中除去正在进行业务的元数据之外的目标元数据进行精简处理。
本发明还提供了一种元数据缓存设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如下所述的元数据管理方法的步骤:
在接收到待缓存的元数据时,将所述元数据缓存至一级缓存区中;
判断所述一级缓存区中的元数据的数量是否达到预设阈值;
若是,对所述一级缓存区中的目标元数据进行精简处理,以得到精简元数据,所述精简元数据包括所述目标元数据的基础信息且所占用的系统内存的内存量小于所述目标元数据所占用的系统内存的内存量;
将所述精简元数据缓存至二级缓存区中,并将所述一级缓存区中进行精简处理的元数据删除;所述一级缓存区的元数据访问优先级高于所述二级缓存区的元数据访问优先级。
优选地,对所述一级缓存区中的目标元数据进行精简处理,包括:
根据所述一级缓存区中的元数据的信息,确定所述元数据被缓存至所述一级缓存区的时间先后顺序;
将最先被缓存至所述一级缓存区的元数据作为目标元数据,对所述目标元数据进行精简处理,以得到所述精简元数据。
优选地,还包括:
在接收到元数据访问请求时,判断待访问元数据是否存在于所述一级缓存区中;
若所述待访问元数据存在于所述一级缓存区中,从所述一级缓存区中获取所述待访问元数据;
若所述待访问元数据不存在于所述一级缓存区中,判断所述二级缓存区中是否存在所述待处理元数据对应的精简元数据;
若所述二级缓存区中存在所述待访问元数据对应的精简元数据,获取所述待处理元数据对应的精简元数据,并基于所述精简元数据构建所述待访问元数据。
优选地,还包括:
若所述二级缓存区中不存在所述待访问元数据对应的精简元数据,从基础缓存区中获取所述待访问元数据。
优选地,从基础缓存区中获取所述待访问元数据,包括:
从元数据服务器中获取所述待访问元数据。
优选地,从基础缓存区中获取所述待访问元数据,包括:
从磁盘中获取所述待访问元数据。
优选地,在对所述一级缓存区中的元数据进行精简处理之前,还包括:
判断所述一级缓存区中的元数据中是否包括正在进行业务的元数据;
若是,对一级缓存区中除去正在进行业务的元数据之外的目标元数据进行精简处理;
若否,转入对所述一级缓存区中的目标元数据进行精简处理的步骤。
本发明还提供了一种计算机可读存储介质,所述目标计算机可读存储介质上储存有计算机程序,所述目标计算机程序被处理器执行时实现如上述所述的元数据管理方法的步骤。
本发明提供的一种元数据管理方法及相关组件,在接收到待缓存的元数据时,将元数据缓存至一级缓存区中,当后续有获取元数据需求时,只需在一级缓存区中查询即可,无需通过连接基础缓存区的方式重新获取对应元数据,减少延时,提高效率;当一级缓存区中的元数据的数量达到预设阈值时,将一级缓存区中的元数据转换成包括元数据的基础信息且所占用的系统内存小于元数据所占用的系统内存的精简元数据,并将所述精简元数据缓存至二级缓存区中,对元数据进行精简处理,使得在对系统内存的占用不变的情况下提高缓存的元数据总量,有效节省了分布式存储系统的系统内存。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种元数据管理方法的逻辑流程图;
图2为本发明实施例提供的一种元数据管理方法的元数据访问的逻辑流程图;
图3为本发明实施例提供的另一种元数据管理方法的逻辑流程图;
图4为本发明实施例提供的一种元数据管理装置的结构示意图;
图5为本发明实施例提供的一种元数据缓存设备的结构示意图;
图6为本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
本发明的核心是提供一种元数据管理方法及相关组件,在接收到待缓存的元数据时,将元数据缓存至一级缓存区中,当后续有获取元数据需求时,只需在一级缓存区中查询即可,无需通过连接基础缓存区的方式重新获取对应元数据,减少延时,提高效率;当一级缓存区中的元数据的数量达到预设阈值时,将一级缓存区中的元数据转换成包括元数据的基础信息且所占用的系统内存小于元数据所占用的系统内存的精简元数据,并将所述精简元数据缓存至二级缓存区中,对元数据进行精简处理,使得在对系统内存的占用不变的情况下提高缓存的元数据总量,有效节省了分布式存储系统的系统内存。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着科技的发展,分布式存储系统中存储的文件日益增加,文件中包含的数据信息也越来越多,分布式文件系统的性能问题一直是个很难突破的技术难题。通常情况下,同一文件的数据信息会被分开被存储在分布式存储系统的不同存储节点上,每次访问文件前,在基础缓存区中获取文件的元数据,元数据一般包括用于描述文件的特征的基础信息和根据基础信息生成的业务运行数据等,根据元数据查询文件的数据信息所存储在的存储节点中,以便进行后续操作。
但随着文件数量的增加,海量访问文件的场景应运而生,为了提高分布式存储系统的文件访问性能,相关技术通过提前将对应的元数据信息缓存在分布式存储系统的Lib库中的方式,减少连接基础缓存区造成的时延,以提高文件访问的效率。然而随着缓存文件的元数据数量的增加,这种方法对系统内存的占用也会随着增加,同样会影响分布式存储系统的文件访问性能,并限制了缓存数据量的进一步发展。
请参考图1,图1为本发明实施例提供的一种元数据管理方法的逻辑流程图,包括:
S101:在接收到待缓存的元数据时,将元数据缓存至一级缓存区中;
S102:判断一级缓存区中的元数据的数量是否达到预设阈值;
S103:若是,对一级缓存区中的目标元数据进行精简处理,以得到精简元数据,精简元数据包括目标元数据的基础信息且所占用的系统内存的内存量小于目标元数据所占用的系统内存的内存量;
S104:将精简元数据缓存至二级缓存区中,并将一级缓存区中进行精简处理的元数据删除;一级缓存区的元数据访问优先级高于二级缓存区的元数据访问优先级。
本申请实施例的执行主体为分布式存储系统,也可以为分布式存储系统中的任一存储节点,该存储节点先是接收到待缓存的元数据。在分布式存储系统中每一个存储节点通常都是存储服务器,存储服务器之间通过高速网络互连,即存储节点之间通过高速网络互连。在此对分布式存储节点中存储节点的数量不作具体限定,应由本领域技术人员根据实际情况作出相应的设定。
本实施例中,缓存区包括一级缓存区和二级缓存区,一级缓存区用于存储从基础缓存区中获取到的元数据,二级缓存区用于存储经过精简处理后得到的精简元数据,其中,一级缓存区的元数据访问优先级高于二级缓存区的元数据访问优先级。对一级缓存区和二级缓存区的具体缓存位置和内存大小均不作具体限定,应由本领域技术人员根据实际情况作出相应的设定。
需要说明的是,元数据被定义为描述数据的数据,包含对数据及信息资源的描述性信息,一般来说元数据信息包括名称、文件大小、设备标识符、用户标识符、用户组标识符等等。本实施例中元数据用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息等等。在分布式文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。本实施例并不限定元数据的具体内容,元数据可以包括用于描述文件的特征的基础信息和根据基础信息生成的业务运行数据,也可以还包括其他内容。
步骤S102中,对于预设阈值的数值大小不作具体限定,应由本领域技术人员根据实际情况做出相应的设定。对于一级缓存区中的元数据的数量没有达到预设阈值时,后续的执行操作不作具体限定,可以为继续等待直至元数据的数量达到预设阈值。
步骤S103中,目标元数据可以为一级缓存区中的全部元数据,也可以根据元数据被缓存至一级缓存区的时间先后顺序,将最先被缓存至一级缓存区的元数据作为目标元数据,本实施例对此并不限定。
在一些实施例中,还包括:判断一级缓存区中的元数据中是否包括正在进行业务的元数据;若是,对一级缓存区中除去正在进行业务的元数据之外的目标元数据进行精简处理;若否,转入对一级缓存区中的目标元数据进行精简处理的步骤。不对正在进行业务的元数据进行精简处理,可以防止元数据被频繁地进行精简,提高文件访问的效率。
本实施例并不限定对目标元数据进行精简处理的具体方式,例如可以为将目标元数据的基础信息之外的数据从目标元数据中剥离出来,对于具体的剥离方式,应由本领域技术人员根据实际情况作出相应的设定,通常为执行预设的程序进行目标元数据的基础信息之外的数据的剔除操作。之所以可以剔除基础信息之外的数据,是因为在后续进程中可以根据基础信息重新加载这些数据,故缓存时只需缓存精简元数据即可。
本发明提供了一种元数据管理方法,在接收到待缓存的元数据时,将元数据缓存至一级缓存区中,当后续有获取元数据需求时,只需在一级缓存区中查询即可,无需通过连接元数据服务器的方式重新获取对应元数据,减少延时,提高效率;当一级缓存区中的元数据的数量达到预设阈值时,将一级缓存区中的目标元数据转换成包括元数据的基础信息且所占用的系统内存小于元数据所占用的系统内存的精简元数据,并将精简元数据缓存至二级缓存区中,对元数据进行精简处理,使得在对系统内存的占用不变的情况下提高缓存的元数据总量,有效节省了分布式存储系统的系统内存。
在上述实施例的基础上:
作为一种优选地实施例,S103对一级缓存区中的目标元数据进行精简处理,包括:
根据一级缓存区中的元数据的信息,确定元数据被缓存至一级缓存区的时间先后顺序;
将最先被缓存至一级缓存区的元数据作为目标元数据,对目标元数据进行精简处理,以得到精简元数据。
本实施例并不限定将最先被缓存至一级缓存区的元数据作为目标元数据的具体确定方式,例如可以设定预设缓存时长,将缓存时间超过预设缓存时长的元数据作为目标元数据,或者可以设定预设数据量,将按照缓存的时间顺序将预设数据量大小的元数据作为目标元数据,或者可以为其他确定方式。
需要说明的是,当一级缓存区中的元数据的数量达到预设阈值后,确定元数据被缓存至一级缓存区的时间先后顺序,将最先被缓存至一级缓存区的元数据作为目标元数据的这一过程,通常需要借助LRU(Least Recently Used,最近最久未使用)算法来实现。
LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当一级缓存区中的元数据的数量达到预设阈值限定,应当最先被缓存至一级缓存区的元数据作为目标元数据,对目标元数据进行精简处理,以得到精简元数据。
本实施例根据元数据被缓存至一级缓存区的时间先后顺序确定目标元数据,先将最先被缓存至一级缓存区的元数据进行精简,可以防止刚被缓存至一级缓存区的元数据被频繁地进行精简,提高文件访问的效率。
请参考图2,图2为本发明实施例提供的一种元数据管理方法的元数据访问的逻辑流程图:
作为一种优选地实施例,还包括:
S201:在接收到元数据访问请求时,判断待访问元数据是否存在于一级缓存区中;
S202:若待访问元数据存在于一级缓存区中,从一级缓存区中获取待访问元数据;
S203:若待访问元数据不存在于一级缓存区中,判断二级缓存区中是否存在待处理元数据对应的精简元数据;
S204:若二级缓存区中存在待访问元数据对应的精简元数据,获取待处理元数据对应的精简元数据,并基于精简元数据构建待访问元数据。
本实施例并不限定发送元数据访问请求的客户端,例如可以为应用服务器,还可以为终端用户,或者可以为其他发送用户。
本实施例并不限定基于精简元数据构建待访问元数据的具体过程,例如可以为根据待访问元数据的基础信息重新运行加载得到,对于具体的构建方式,应由本领域技术人员根据实际情况作出相应的设定,通常为执行预设的程序进行基于精简元数据构建待访问元数据的构建操作。
具体实施例中,如果待访问元数据存在于一级缓存区中,则可以直接从一级缓存区中获取相应的元数据;如果没有存在于一级缓存区中,但是二级缓存区中存在待访问元数据对应的精简元数据,则也可以直接从二级缓存区中获取待访问元数据对应的精简元数据,并基于精简元数据构建带访问元数据。
在一些实施例中,若二级缓存区中不存在待访问元数据对应的精简元数据,从基础缓存区中获取待访问元数据,基础缓存区可以为mds(metadata server,元数据服务器),或者可以为磁盘。满足业务的需求、保证文件访问能力的情况下,获取过程无需缓存至分布式存储系统中,不占用额外的缓存空间,分布式存储系统的总体性能的不下降。
本实施例在接收到元数据访问请求时,如果待访问元数据存在于一级缓存区中,则可以直接从一级缓存区中获取相应的元数据,进而提高文件的读取速度;如果没有存在于一级缓存区中,但是二级缓存区中存在待访问元数据对应的精简元数据,则也可以直接从二级缓存区中获取待访问元数据对应的精简元数据,加快读写速度,满足业务的需求。
作为一种优选地实施例,还包括:
若二级缓存区中不存在待访问元数据对应的精简元数据,从基础缓存区中获取待访问元数据。
本实施例并不限定基础缓存区的具体类型,例如可以为mds(metadata server,元数据服务器),或者可以为磁盘。
当二级缓存区中不存在待访问元数据对应的精简元数据,即分布式存储系统中为缓存有待访问元数据时,直接从基础缓存区中获取待访问元数据,满足业务的需求、保证文件访问能力的情况下,获取过程无需缓存至分布式存储系统中,不占用额外的缓存空间,分布式存储系统的总体性能的不下降。
作为一种优选地实施例,从基础缓存区中获取待访问元数据,包括:
从元数据服务器中获取待访问元数据。
本实施例通过向元数据服务器发送请求的方式获取待访问元数据,由于元数据服务器中包括全部的元数据信息,可以根据元数据访问请求直接得到待访问元数据,无需进行逐个存储空间的查找,可以高效的查询以及快速响应元数据访问请求,准确率较高。
作为一种优选地实施例,从基础缓存区中获取待访问元数据,包括:
从磁盘中获取待访问元数据。
本实施例通过在磁盘中直接加载的方式获取待访问元数据,通过磁盘对元数据进行备份,如果分布式存储系统内存中的元数据全部丢失且与元数据服务器的连接断开,可以调用备份在磁盘中的元数据,保证访问性能的同时提高元数据存储的安全性。
作为一种优选地实施例,在S103对一级缓存区中的元数据进行精简处理之前,还包括:
判断一级缓存区中的元数据中是否包括正在进行业务的元数据;
若是,对一级缓存区中除去正在进行业务的元数据之外的目标元数据进行精简处理;
若否,转入对一级缓存区中的目标元数据进行精简处理的步骤。
本实施例将正在进行业务的元数据从进行精简处理的目标元数据中除去,不对正在进行业务的元数据进行精简处理,可以防止元数据被频繁地进行精简,提高文件访问的效率。
请参考图3,图3为本发明实施例提供的另一种元数据管理方法的逻辑流程图:
当基于C++、linux环境、分布式存储系统进行元数据管理时,分布式存储系统的Lib库中缓存的元数据,包括从mds获取的元数据的基础信息和业务运行中相应产生的元数据的业务运行数据,元数据的基础信息包括inode(节点)以及Inode对象指引的Dentry(目录项)和Dir(directory,目录)等信息,在实际缓存中一个文件的整体缓存在4K字节左右。Lib库在处理客户端请求的时候,首先需要从缓存中查找文件的元数据,当在内存缓存中找不到的情况下,向mds请求获取元数据;其中,从mds请求获取的是基础的元数据,而lib库缓存的是全量的元数据。
为了在不减少总体的缓存数量前提下,完成Lib库总体内存的有效降低,同时在完成内存降配的前提下,文件系统的总体性能的不下降,本实施例提供了一种构建二级缓存结构方式,当用户对文件系统进行文件读、写等操作时,对于每一个文件都会存在lib库一级缓存区中,当一级缓存区达到配置上限时,会把一级缓存区中最早存入的文件缓存转换为精简缓存存放至二级缓存区中。
一级缓存区为全量队列,该队列中对象必需是inode和dentry建立链接的,即全部的运行的数据结构和数据,以Inode全量缓存、Dentry缓存、Dir缓存为主;二级缓存区用于保存精简的对象,该对象保存的数据类型类似于落盘的数据,以InodeBase精简缓存、Dentry缓存、Dir缓存为主。其中,dentry缓存的目的,为了减少对慢速磁盘的访问,每当文件系统对底层的数据进行访问时,都会将访问的结果缓存下来,保存成一个dentry对象。
S301:当处理客户端发送的元数据访问请求时,判断待访问元数据是否存在于一级缓存区中;
S302:若待访问元数据存在于一级缓存区中,从一级缓存区中获取待访问元数据;
S303:若待访问元数据不存在于一级缓存区中,判断二级缓存区中是否存在待处理元数据对应的精简元数据;
S304:若二级缓存区中存在待访问元数据对应的精简元数据,获取待处理元数据对应的精简元数据;
S305:若二级缓存区中不存在待访问元数据对应的精简元数据,从mds中获取待处理元数据对应的精简元数据;
S306:基于精简元数据构建待访问元数据;
S307:判断一级缓存区中的元数据的数量是否达到预设阈值;
S308:若一级缓存区中的元数据的数量达到预设阈值,判断一级缓存区中的元数据中是否包括正在进行业务的元数据;
S309:若一级缓存区中的元数据中包括正在进行业务的元数据,对一级缓存区中除去正在进行业务的元数据之外的目标元数据进行精简处理,以得到精简元数据,精简元数据包括目标元数据的基础信息且所占用的系统内存的内存量小于目标元数据所占用的系统内存的内存量;
S310:若一级缓存区中的元数据中不包括正在进行业务的元数据,对一级缓存区中的目标元数据进行精简处理,以得到精简元数据。
具体实施例中,当处理客户端发送的元数据访问请求时,判断待访问元数据是否存在于一级缓存区中;若待访问元数据存在于一级缓存区中,从一级缓存区中获取待访问元数据;若待访问元数据不存在于一级缓存区中,判断二级缓存区中是否存在待处理元数据对应的精简元数据;若二级缓存区中存在待访问元数据对应的精简元数据,获取待处理元数据对应的精简元数据;若二级缓存区中不存在待访问元数据对应的精简元数据,从mds中获取待处理元数据对应的精简元数据。其中,无论是从二级缓存区中获取待访问元数据对应的精简元数据,还是从mds中获取待处理元数据对应的精简元数,都需要基于精简元数据构建待访问元数据,即通过在文件系统Lib库中运行业务获取业务运行中在lib库中产生的元数据的业务运行数据。
当元数据被存储在一级缓存区中后,需要判断一级缓存区中的元数据的数量是否达到预设阈值;若一级缓存区中的元数据的数量达到预设阈值,要对老化的元数据进行精简操作,即最先被缓存至一级缓存区的元数据作为目标元数据,对目标元数据进行精简处理,以得到精简元数据。
在进行精简处理之前,还需要判断一级缓存区中的元数据中是否包括正在进行业务的元数据;若一级缓存区中的元数据中包括正在进行业务的元数据,对一级缓存区中除去正在进行业务的元数据之外的目标元数据进行精简处理,以得到精简元数据,精简元数据包括目标元数据的基础信息且所占用的系统内存的内存量小于目标元数据所占用的系统内存的内存量。
具体实施例中,当二级缓存区中不存在待访问元数据对应的精简元数据,从get_inode函数中返回查找为NULL,除了按照原有的方式在集群中查找,即从mds中获取待处理元数据对应的精简元数据,还可以从磁盘中加载得到待处理元数据对应的精简元数据,从磁盘加载得到的待处理元数据对应的精简元数据需要放到原有队列中,即放在对应的一级缓存区中。
需要说明的是,当一级缓存区中的元数据的数量达到预设阈值后,对目标元数据进行精简处理的过程,具体操作过程为:在Client中定义新的lru_base对象,该对象作用是实现对上述中实现的精简的缓存队列进行缓存的老化工作。这一过程通常需要借助LRU算法来实现,LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当一级缓存区中的元数据的数量达到预设阈值限定,应当最先被缓存至一级缓存区的元数据作为目标元数据,对目标元数据进行精简处理,以得到精简元数据。
本实施例可通过对文件系统内部元数据管理进行一、二级精简优化,通过一、二级缓存区切换使用,从而达到性能不降低的情况下,有效节省了元数据信息管理的内存。
请参考图4,图4为本发明实施例提供的一种元数据管理装置的结构示意图,包括:
一级缓存模块401,用于在接收到待缓存的元数据时,将元数据缓存至一级缓存区中;
阈值判断模块402,用于判断一级缓存区中的元数据的数量是否达到预设阈值;
元数据精简模块403,用于当一级缓存区中的元数据的数量达到预设阈值时,对一级缓存区中的目标元数据进行精简处理,以得到精简元数据,精简元数据包括目标元数据的基础信息且所占用的系统内存的内存量小于目标元数据所占用的系统内存的内存量;
二级缓存模块404,用于将精简元数据缓存至二级缓存区中,并将一级缓存区中进行精简处理的元数据删除;一级缓存区的元数据访问优先级高于二级缓存区的元数据访问优先级。
作为一种优选地实施例,元数据精简模块403,包括:
时间顺序确定模块,用于根据一级缓存区中的元数据的信息,确定元数据被缓存至一级缓存区的时间先后顺序;
第一目标元数据精简模块,用于将最先被缓存至一级缓存区的元数据作为目标元数据,对目标元数据进行精简处理,以得到精简元数据。
作为一种优选地实施例,还包括:
第一缓存区模块,用于在接收到元数据访问请求时,判断待访问元数据是否存在于一级缓存区中;
第一元数据获取模块,用于若待访问元数据存在于一级缓存区中,从一级缓存区中获取待访问元数据;
第二缓存区模块,用于若待访问元数据不存在于一级缓存区中,判断二级缓存区中是否存在待处理元数据对应的精简元数据;
第二元数据获取模块,用于若二级缓存区中存在待访问元数据对应的精简元数据,获取待处理元数据对应的精简元数据,并基于精简元数据构建待访问元数据。
作为一种优选地实施例,还包括:
第三元数据获取模块,用于若二级缓存区中不存在待访问元数据对应的精简元数据,从基础缓存区中获取待访问元数据。
作为一种优选地实施例,第三元数据获取模块,包括:
元数据服务器模块,用于从元数据服务器中获取待访问元数据。
作为一种优选地实施例,第三元数据获取模块,包括:
磁盘模块,用于从磁盘中获取待访问元数据。
作为一种优选地实施例,元数据精简模块,还包括:
业务判断模块,用于判断一级缓存区中的元数据中是否包括正在进行业务的元数据;
第二目标元数据精简模块,用于当一级缓存区中的元数据中包括正在进行业务的元数据,对一级缓存区中除去正在进行业务的元数据之外的目标元数据进行精简处理。
对于本发明提供的一种元数据管理装置的介绍请参考上述实施例,本发明在此不做赘述。
请参考图5,图5为本发明实施例提供的一种元数据缓存设备的结构示意图,包括:
存储器501,用于存储计算机程序;
处理器502,用于执行计算机程序时实现如上述的元数据管理方法的步骤。
其中,处理器502可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器502可以采用DSP(Digital Signal Processor,数字信号处理器)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器502也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器502可以集成GPU(graphics processing unit,图形处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器502还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器501可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器501还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器501至少用于存储以下计算机程序,其中,该计算机程序被处理器502加载并执行之后,能够实现前述任意一个实施例公开的元数据管理方法的相关步骤。另外,存储器501所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于元数据管理方法的数据等。
在一些实施例中,元数据缓存装置还可包括有显示屏、输入输出接口、通信接口、电源以及通信总线。
本领域技术人员可以理解的是,图5中示出的结构并不构成对元数据缓存装置的限定,可以包括比图示更多或更少的组件。
对于本发明提供的一种元数据缓存设备的介绍请参考上述实施例,本发明在此不做赘述。
请参考图6,图6为本发明实施例提供的一种计算机可读存储介质的结构示意图,目标计算机可读存储介质601上储存有计算机程序602,目标计算机程序602被处理器执行时实现如上述的元数据管理方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质601中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。具体地,计算机可读存储介质601可以包括但不限于任何类型的盘,包括软盘、光盘及移动硬盘等,或适合于存储指令、数据的任何类型的媒介或设备等等,本申请在此不做特别的限定。
对于本发明提供的一种计算机可读存储介质的介绍请参考上述实施例,本发明在此不做赘述。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种元数据管理方法,其特征在于,包括:
在接收到待缓存的元数据时,将所述元数据缓存至一级缓存区中;
判断所述一级缓存区中的元数据的数量是否达到预设阈值;
若是,对所述一级缓存区中的目标元数据进行精简处理,以得到精简元数据,所述精简元数据包括所述目标元数据的基础信息且所占用的系统内存的内存量小于所述目标元数据所占用的系统内存的内存量;
将所述精简元数据缓存至二级缓存区中,并将所述一级缓存区中进行精简处理的元数据删除;所述一级缓存区的元数据访问优先级高于所述二级缓存区的元数据访问优先级。
2.如权利要求1所述的元数据管理方法,其特征在于,对所述一级缓存区中的目标元数据进行精简处理,包括:
根据所述一级缓存区中的元数据的信息,确定所述元数据被缓存至所述一级缓存区的时间先后顺序;
将最先被缓存至所述一级缓存区的元数据作为目标元数据,对所述目标元数据进行精简处理,以得到所述精简元数据。
3.如权利要求1所述的元数据管理方法,其特征在于,还包括:
在接收到元数据访问请求时,判断待访问元数据是否存在于所述一级缓存区中;
若所述待访问元数据存在于所述一级缓存区中,从所述一级缓存区中获取所述待访问元数据;
若所述待访问元数据不存在于所述一级缓存区中,判断所述二级缓存区中是否存在所述待处理元数据对应的精简元数据;
若所述二级缓存区中存在所述待访问元数据对应的精简元数据,获取所述待处理元数据对应的精简元数据,并基于所述精简元数据构建所述待访问元数据。
4.如权利要求3所述的元数据管理方法,其特征在于,还包括:
若所述二级缓存区中不存在所述待访问元数据对应的精简元数据,从基础缓存区中获取所述待访问元数据。
5.如权利要求4所述的元数据管理方法,其特征在于,从基础缓存区中获取所述待访问元数据,包括:
从元数据服务器中获取所述待访问元数据。
6.如权利要求3所述的元数据管理方法,其特征在于,从基础缓存区中获取所述待访问元数据,包括:
从磁盘中获取所述待访问元数据。
7.如权利要求1至6任一项所述的元数据管理方法,其特征在于,在对所述一级缓存区中的元数据进行精简处理之前,还包括:
判断所述一级缓存区中的元数据中是否包括正在进行业务的元数据;
若是,对一级缓存区中除去正在进行业务的元数据之外的目标元数据进行精简处理;
若否,转入对所述一级缓存区中的目标元数据进行精简处理的步骤。
8.一种元数据管理装置,其特征在于,包括:
一级缓存模块,用于在接收到待缓存的元数据时,将所述元数据缓存至一级缓存区中;
阈值判断模块,用于判断所述一级缓存区中的元数据的数量是否达到预设阈值;
元数据精简模块,用于当所述一级缓存区中的元数据的数量达到所述预设阈值时,对所述一级缓存区中的目标元数据进行精简处理,以得到精简元数据,所述精简元数据包括所述目标元数据的基础信息且所占用的系统内存的内存量小于所述目标元数据所占用的系统内存的内存量;
二级缓存模块,用于将所述精简元数据缓存至二级缓存区中,并将所述一级缓存区中进行精简处理的元数据删除;所述一级缓存区的元数据访问优先级高于所述二级缓存区的元数据访问优先级。
9.一种元数据缓存设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的元数据管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述目标计算机可读存储介质上储存有计算机程序,所述目标计算机程序被处理器执行时实现如权利要求1至7任一项所述的元数据管理方法的步骤。
CN202310416902.2A 2023-04-14 2023-04-14 一种元数据管理方法及相关组件 Pending CN116450590A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310416902.2A CN116450590A (zh) 2023-04-14 2023-04-14 一种元数据管理方法及相关组件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310416902.2A CN116450590A (zh) 2023-04-14 2023-04-14 一种元数据管理方法及相关组件

Publications (1)

Publication Number Publication Date
CN116450590A true CN116450590A (zh) 2023-07-18

Family

ID=87135292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310416902.2A Pending CN116450590A (zh) 2023-04-14 2023-04-14 一种元数据管理方法及相关组件

Country Status (1)

Country Link
CN (1) CN116450590A (zh)

Similar Documents

Publication Publication Date Title
JP2910985B2 (ja) キャッシュ管理方法
CN110555001B (zh) 数据处理方法、装置、终端及介质
US9727479B1 (en) Compressing portions of a buffer cache using an LRU queue
WO2019085769A1 (zh) 一种数据分层存储、分层查询方法及装置
CN108121813B (zh) 数据管理方法、装置、系统、存储介质及电子设备
CN107197359B (zh) 视频文件缓存方法及装置
CN109766318B (zh) 文件读取方法及装置
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
CN109804359A (zh) 用于将数据回写到存储设备的系统和方法
CN109101580A (zh) 一种基于Redis的热点数据缓存方法和装置
CN109376125A (zh) 一种元数据存储方法、装置、设备及计算机可读存储介质
CN111198856A (zh) 文件管理方法、装置、计算机设备和存储介质
CN115167786A (zh) 一种数据存储方法、装置、系统、设备和介质
CN109947718A (zh) 一种数据存储方法、存储平台及存储装置
CN113806300A (zh) 数据存储方法、系统、装置、设备及存储介质
CN117130792B (zh) 缓存对象的处理方法、装置、设备及存储介质
CN101483668A (zh) 热点数据的网络存储和访问方法、设备及系统
CN112711564B (zh) 合并处理方法以及相关设备
WO2015015727A1 (ja) ストレージ装置、データアクセス方法およびプログラム記録媒体
CN114116634B (zh) 一种缓存方法、装置及可读存储介质
CN116450590A (zh) 一种元数据管理方法及相关组件
US11586353B2 (en) Optimized access to high-speed storage device
CN114817160A (zh) 文件解压方法、装置、电子设备及计算机可读存储介质
CN114546891A (zh) 一种缓存缩容方法、装置、设备及存储介质
CN111143288A (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