CN113821477A - 一种元数据缓存方法、系统、设备以及介质 - Google Patents

一种元数据缓存方法、系统、设备以及介质 Download PDF

Info

Publication number
CN113821477A
CN113821477A CN202111384035.6A CN202111384035A CN113821477A CN 113821477 A CN113821477 A CN 113821477A CN 202111384035 A CN202111384035 A CN 202111384035A CN 113821477 A CN113821477 A CN 113821477A
Authority
CN
China
Prior art keywords
metadata
metadata node
priority
node
lur
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
CN202111384035.6A
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur 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 Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202111384035.6A priority Critical patent/CN113821477A/zh
Publication of CN113821477A publication Critical patent/CN113821477A/zh
Pending legal-status Critical Current

Links

Images

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/137Hash-based
    • 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/162Delete operations
    • 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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

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

本发明公开了一种元数据缓存方法,包括以下步骤:响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点;响应于在所述哈希表中无法查询到对应的元数据节点,从底层硬盘中获取对应的元数据节点;根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;根据所述元数据节点的优先级将所述元数据节点添加到对应级别的LUR队列的头部以及添加到所述哈希表中。本发明还公开了一种系统、计算机设备以及可读存储介质。本发明提出的方案可以获得高效的元数据访问和增加并发查询的稳定性、高效性。

Description

一种元数据缓存方法、系统、设备以及介质
技术领域
本发明涉及元数据领域,具体涉及一种元数据缓存方法、系统、设备以及存储介质。
背景技术
元数据(Mete data)是指描述数据的数据(data about data),可以理解为比一般意义的数据范畴更加广泛的数据,不仅仅是表示数据的类型、名称、值等信息,也进一步提供了数据的上下文信息,比如数据所属域、数据来源等等。在数据存储系统中,元数据是信息存储的基础,是数据的最小单元。近年来,随着信息技术的发展,产生了海量的数据,但是如何有效地管理和组织这些海量数据已经成为一个突出的问题。对于存储的大量数据,查询分析其中的数据内容和数据含义,才能更加有效的利用数据。在存储系统中元数据的高效组织和管理是解决这一问题的有效手段,能支持系统对数据的管理和维护。简言之,只有有效的管理元数据,数据才能变得更有价值。因此,如何有效的管理元数据和使用元数据,是一个非常值得探讨的问题。海量数据存储,必然涉及到大量且高并发的数据访问和查询问题,有效的管理元数据,才能增加并发访问量和访问效率。因此元数据的查询缓存的有效管理和元数据的缓存替换方法至关重要,可使大规模并发随机访问元数据缓存有更高的命中率。
全闪存储元数据管理有LP、PL、HP三种映射关系,分别对应LP树、PL树、HP树。LP树是L-P的映射组织,主要作用是卷的逻辑地址LBA到物理池的物理地址PBA的映射,给用户主机读写使用;PL树是P-L的映射组织,主要作用是池的物理地址到卷的逻辑地址的映射,供垃圾回收查询物理地址PBA是否还在使用;HP树是H-P的映射组织,供重删模块使用,H表示数据的指纹值,主要作用是数据指纹到池的物理地址的映射,开启重删功能时,新写的数据首先计算指纹值,然后查询HP映射,如果查询到P表示物理池中有相同数据了,不需再分配物理地址了。
如图1示出的元数据的缓存在整个查询流程中的功能和位置,数据查询请求要查询数据时,先查询元数据,找到L->P映射关系,首先访问元数据缓存,如果在缓存中查找到对应的元数据,则直接做元数据校验后返回给查询request,否则去SSD盘上访问元数据,然后返给查询请求,最后查询请求去访问PBA对应的数据;可见元数据的访问效率对于数据读写是非常重要的,元数据的组织结构方法对于元数据的访问效率至关重要。
由于在全闪存储中,元数据管理更为至关重要,元数据管理主要管理L-P映射、P-L映射、H-P映射关系,由于涉及到大量且高并发、短时延的数据访问,全闪存储元数据通常使用B+树的数据结构来组织,因为内存容量有限,当缓存到达一定阈值时必须淘汰,这就涉及到缓存淘汰策略,传统的淘汰测试都是根据单一的LRU策略淘汰旧的缓存,这样可能会造成缓存命中率无法达到预期。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种元数据缓存方法,包括以下步骤:
响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点;
响应于在所述哈希表中无法查询到对应的元数据节点,从底层硬盘中获取对应的元数据节点;
根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
根据所述元数据节点的优先级将所述元数据节点添加到对应级别的LUR队列的头部以及添加到所述哈希表中。
在一些实施例中,还包括:
响应于在所述哈希表中查询到对应的元数据节点,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
根据所述优先级确定对应级别的LUR队列以将所述对应级别的LUR队列中的元数据节点移动到所述对应级别的LUR队列的头部。
在一些实施例中,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级,进一步包括:
根据所述元数据节点在所述底层硬盘的B+树结构中的层高确定第一优先级并根据所述元数据节点的类型确定第二优先级;
利用所述第一优先级乘以第一预设权重后加上所述第二优先级乘以第二预设权重得到所述元数据节点对应的优先级。
在一些实施例中,还包括:
响应于触发淘汰机制,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据LUR队列的优先级确定淘汰若干个元数据节点的所述若干个LUR队列。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点。
在一些实施例中,根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点,进一步包括:
根据添加时间确定所述若干个LUR队列中待淘汰的若干个元数据节点。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种元数据缓存系统,包括:
查询模块,配置为响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点;
获取模块,配置为响应于在所述哈希表中无法查询到对应的元数据节点,从底层硬盘中获取对应的元数据节点;
计算模块,配置为根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
添加模块,配置为根据所述元数据节点的优先级将所述元数据节点添加到对应级别的LUR队列的头部以及添加到所述哈希表中。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种元数据缓存方法的步骤。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种元数据缓存方法的步骤。
本发明具有以下有益技术效果之一:本发明提出的方案可使得元数据的缓存的有效管理和元数据的缓存替换方法更加的高效,可使大规模并发随机访问元数据缓存有更高的命中率。可以获得高效的元数据访问和增加并发查询的稳定性、高效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为元数据的缓存在整个查询流程中的功能和位置示意图;
图2为本发明的实施例提供的元数据缓存方法的流程示意图;
图3为本发明的实施例提供的元数据缓存方法的流程框图;
图4为本发明的实施例提供的元数据缓存系统的结构示意图;
图5为本发明的实施例提供的计算机设备的结构示意图;
图6为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
根据本发明的一个方面,本发明的实施例提出一种元数据缓存方法,如图2所示,其可以包括步骤:
S1,响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点;
S2,响应于在所述哈希表中无法查询到对应的元数据节点,从底层硬盘中获取对应的元数据节点;
S3,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
S4,根据所述元数据节点的优先级将所述元数据节点添加到对应级别的LUR队列的头部以及添加到所述哈希表中。
本发明提出的方案根据全闪存储元数据管理主要管理L-P映射、P-L映射、H-P映射三种映射关系,且元数据通常使用B+树的数据结构来组织,在全闪存储中这三种映射关系按重要性是有优先级关系的,并且B+树的组织结构按访问顺序从根节点到叶子节点层次也是有优先缓存等级,这样就可以根据元数据节点所在B+树的类型Type和树的层次Level计算出综合优先级,根据综合优先级别,存放到对应等级的LRU链表中。
在一些实施例中,步骤S1中,响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点,具体的,如图3所示,当数据来请求缓存时,先去哈希表中查找,查找的key是元数据节点的PBA,请求数据的结构体中会带有TreeID、LBA和PBA信息,判断要请求的元数据node节点是否在哈希表中。如果请求的元数据node不存在,则LRU队列中也不存在该node,需要向下层(一般是磁盘查找)去请求访问。
需要说明的是,元数据节点中记录了该节点在B+树中的层高等属性标记。
在一些实施例中,可以选择一个合适的哈希散列函数H,尽量减少哈希冲突,而且还可以使得哈希后的链表的长度分布均匀。
在一些实施例中,方法还包括:
响应于在所述哈希表中查询到对应的元数据节点,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
根据所述优先级确定对应级别的LUR队列以将所述对应级别的LUR队列中的元数据节点移动到所述对应级别的LUR队列的头部。
具体的,如图3所示,如果请求的元数据node存在,则该请求命中,将元数据node返回给请求者,并根据node的treeType和node的level计算该node的综合优先级,以确定对应的LRU队列,从而将该元数据node移到对应的LRU[i]队列头部,表示该元数据node是最近访问。
在一些实施例中,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级,进一步包括:
根据所述元数据节点在所述底层硬盘的B+树结构中的层高确定第一优先级并根据所述元数据节点的类型确定第二优先级;
利用所述第一优先级乘以第一预设权重后加上所述第二优先级乘以第二预设权重得到所述元数据节点对应的优先级。
具体的,不同的元数据类型具有不同的优先级,根据元数据重要性不同,LP、HP、PL的优先级可以依次降低,例如可以设置LP的优先级为2,HP的优先级为1,PL的优先级为0。而在B+树中,不同的节点访问频率不同,这样可以为不同层高的节点设置不同的优先级,例如当B+树为5层时,根节点的优先级可以为4;3个非叶节点的优先级可以依次设置为3、2、1,层高越高的非叶节点的优先级越高;而叶子节点的优先级可以设置为0。这样,影响元数据节点的重要性包括元数据类型和B+树层高,可以设置不同的权重,以得到最终的优先级。
例如,对于LP类型的元数据节点,若其为叶子节点,则优先级为:叶子节点0*75% +LP的2*25% 并向下取整= 0,即综合优先级是0。
这样,如图3所示,将从下层请求元数据node返回并根据node的treeType和node的level计算该node的综合优先级,会将该元数据node放入对应的LRU[i]队列的头部,并将该node插入到哈希表中。
在一些实施例中,还包括:
响应于触发淘汰机制,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据LUR队列的优先级确定淘汰若干个元数据节点的所述若干个LUR队列。
具体的,如图3所示,元数据node插入对应的LRU[i]队列后,会判断当前整个缓存的容量是否达到阈值,如果没有达到阈值,则不执行淘汰算法,直接返回数据请求者。若达到设定阈值,则会根据LRU算法的淘汰机制将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除。优先淘汰低等级的LUR队列中的元数据节点,即优先淘汰LRU[0]的链表队列尾部的元数据node,如果LRU[0]的链表队列没有要淘汰的元数node,则淘汰 LRU[1]的链表队列尾部的元数据node,以此类推,同时也将该数据从哈希表中淘汰,即移除哈希表,然后返回数据请求者。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点。
在一些实施例中,根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点,进一步包括:
根据添加时间确定所述若干个LUR队列中待淘汰的若干个元数据节点。
具体的,可以根据添加到LUR队列中的时间确定每一个元数据节点是否需要淘汰,即若LRU[0]中头部存在若干个元数据节点,但该若干个元数据节点的添加时间不符合淘汰规则,则可以淘汰 LRU[1]的链表队列中符合淘汰规则的元数据node。
这样,通过上述的缓存查找、命中、淘汰流程可使得元数据的缓存的有效管理和元数据的缓存替换方法更加的高效,可使大规模并发随机访问元数据缓存有更高的命中率。可以获得高效的元数据访问和增加并发查询的稳定性、高效性。
本发明提出方案根据全闪存储元数据管理主要管理L-P映射、P-L映射、H-P映射三种映射关系,且元数据通常使用B+树的数据结构来组织,在全闪存储中这三种映射关系按重要性是有优先级关系的,并且B+树的组织结构按访问顺序从根节点到叶子节点层次也是有优先缓存等级,这样就可以根据元数据B+树的类型Type和树的层次Level计算出综合优先级,根据综合优先级别,分别存放到对应等级的LRU链表中,缓存淘汰时优先淘汰综合优先级最低的LRU链表,如果最低级的没有,则依次是次低级的链表;按该淘汰策略既可以保证重要性的元数据优先缓存,又提高了元数据缓存的命中率,该方法可以获得高效的元数据访问和增加并发查询的高效性。可以获得高效的元数据访问和增加并发查询的稳定性、高效性,得整个元数据查找中提高了效率。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种元数据缓存系统400,如图4所示,包括:
查询模块401,配置为响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点;
获取模块402,配置为响应于在所述哈希表中无法查询到对应的元数据节点,从底层硬盘中获取对应的元数据节点;
计算模块403,配置为根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
添加模块404,配置为根据所述元数据节点的优先级将所述元数据节点添加到对应级别的LUR队列的头部以及添加到所述哈希表中。
在一些实施例中,还包括:
响应于在所述哈希表中查询到对应的元数据节点,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
根据所述优先级确定对应级别的LUR队列以将所述对应级别的LUR队列中的元数据节点移动到所述对应级别的LUR队列的头部。
在一些实施例中,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级,进一步包括:
根据所述元数据节点在所述底层硬盘的B+树结构中的层高确定第一优先级并根据所述元数据节点的类型确定第二优先级;
利用所述第一优先级乘以第一预设权重后加上所述第二优先级乘以第二预设权重得到所述元数据节点对应的优先级。
在一些实施例中,还包括:
响应于触发淘汰机制,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据LUR队列的优先级确定淘汰若干个元数据节点的所述若干个LUR队列。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点。
在一些实施例中,根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点,进一步包括:
根据添加时间确定所述若干个LUR队列中待淘汰的若干个元数据节点。
基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行以下步骤:
S1,响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点;
S2,响应于在所述哈希表中无法查询到对应的元数据节点,从底层硬盘中获取对应的元数据节点;
S3,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
S4,根据所述元数据节点的优先级将所述元数据节点添加到对应级别的LUR队列的头部以及添加到所述哈希表中。
在一些实施例中,还包括:
响应于在所述哈希表中查询到对应的元数据节点,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
根据所述优先级确定对应级别的LUR队列以将所述对应级别的LUR队列中的元数据节点移动到所述对应级别的LUR队列的头部。
在一些实施例中,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级,进一步包括:
根据所述元数据节点在所述底层硬盘的B+树结构中的层高确定第一优先级并根据所述元数据节点的类型确定第二优先级;
利用所述第一优先级乘以第一预设权重后加上所述第二优先级乘以第二预设权重得到所述元数据节点对应的优先级。
在一些实施例中,还包括:
响应于触发淘汰机制,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据LUR队列的优先级确定淘汰若干个元数据节点的所述若干个LUR队列。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点。
在一些实施例中,根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点,进一步包括:
根据添加时间确定所述若干个LUR队列中待淘汰的若干个元数据节点。
本发明提出方案根据全闪存储元数据管理主要管理L-P映射、P-L映射、H-P映射三种映射关系,且元数据通常使用B+树的数据结构来组织,在全闪存储中这三种映射关系按重要性是有优先级关系的,并且B+树的组织结构按访问顺序从根节点到叶子节点层次也是有优先缓存等级,这样就可以根据元数据B+树的类型Type和树的层次Level计算出综合优先级,根据综合优先级别,分别存放到对应等级的LRU链表中,缓存淘汰时优先淘汰综合优先级最低的LRU链表,如果最低级的没有,则依次是次低级的链表;按该淘汰策略既可以保证重要性的元数据优先缓存,又提高了元数据缓存的命中率,该方法可以获得高效的元数据访问和增加并发查询的高效性。可以获得高效的元数据访问和增加并发查询的稳定性、高效性,得整个元数据查找中提高了效率。
基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行以下步骤:
S1,响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点;
S2,响应于在所述哈希表中无法查询到对应的元数据节点,从底层硬盘中获取对应的元数据节点;
S3,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
S4,根据所述元数据节点的优先级将所述元数据节点添加到对应级别的LUR队列的头部以及添加到所述哈希表中。
在一些实施例中,还包括:
响应于在所述哈希表中查询到对应的元数据节点,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
根据所述优先级确定对应级别的LUR队列以将所述对应级别的LUR队列中的元数据节点移动到所述对应级别的LUR队列的头部。
在一些实施例中,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级,进一步包括:
根据所述元数据节点在所述底层硬盘的B+树结构中的层高确定第一优先级并根据所述元数据节点的类型确定第二优先级;
利用所述第一优先级乘以第一预设权重后加上所述第二优先级乘以第二预设权重得到所述元数据节点对应的优先级。
在一些实施例中,还包括:
响应于触发淘汰机制,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据LUR队列的优先级确定淘汰若干个元数据节点的所述若干个LUR队列。
在一些实施例中,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点。
在一些实施例中,根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点,进一步包括:
根据添加时间确定所述若干个LUR队列中待淘汰的若干个元数据节点。
本发明提出方案根据全闪存储元数据管理主要管理L-P映射、P-L映射、H-P映射三种映射关系,且元数据通常使用B+树的数据结构来组织,在全闪存储中这三种映射关系按重要性是有优先级关系的,并且B+树的组织结构按访问顺序从根节点到叶子节点层次也是有优先缓存等级,这样就可以根据元数据B+树的类型Type和树的层次Level计算出综合优先级,根据综合优先级别,分别存放到对应等级的LRU链表中,缓存淘汰时优先淘汰综合优先级最低的LRU链表,如果最低级的没有,则依次是次低级的链表;按该淘汰策略既可以保证重要性的元数据优先缓存,又提高了元数据缓存的命中率,该方法可以获得高效的元数据访问和增加并发查询的高效性。可以获得高效的元数据访问和增加并发查询的稳定性、高效性,得整个元数据查找中提高了效率。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种元数据缓存方法,其特征在于,包括以下步骤:
响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点;
响应于在所述哈希表中无法查询到对应的元数据节点,从底层硬盘中获取对应的元数据节点;
根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
根据所述元数据节点的优先级将所述元数据节点添加到对应级别的LUR队列的头部以及添加到所述哈希表中。
2.如权利要求1所述的方法,其特征在于,还包括:
响应于在所述哈希表中查询到对应的元数据节点,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
根据所述优先级确定对应级别的LUR队列以将所述对应级别的LUR队列中的元数据节点移动到所述对应级别的LUR队列的头部。
3.如权利要求1或2所述的方法,其特征在于,根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级,进一步包括:
根据所述元数据节点在所述底层硬盘的B+树结构中的层高确定第一优先级并根据所述元数据节点的类型确定第二优先级;
利用所述第一优先级乘以第一预设权重后加上所述第二优先级乘以第二预设权重得到所述元数据节点对应的优先级。
4.如权利要求1所述的方法,其特征在于,还包括:
响应于触发淘汰机制,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除。
5.如权利要求4所述的方法,其特征在于,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据LUR队列的优先级确定淘汰若干个元数据节点的所述若干个LUR队列。
6.如权利要求4所述的方法,其特征在于,根据预设规则将若干个LUR队列中的若干个元数据节点删除并将所述哈希表中相应的若干个元数据节点删除,进一步包括:
根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点。
7.如权利要求6所述的方法,其特征在于,根据预设因子确定所述若干个LUR队列中待淘汰的若干个元数据节点,进一步包括:
根据添加时间确定所述若干个LUR队列中待淘汰的若干个元数据节点。
8.一种元数据缓存系统,其特征在于,包括:
查询模块,配置为响应于接收到元数据查询请求,根据所述请求中携带的物理地址在哈希表中查询对应的元数据节点;
获取模块,配置为响应于在所述哈希表中无法查询到对应的元数据节点,从底层硬盘中获取对应的元数据节点;
计算模块,配置为根据所述元数据节点在所述底层硬盘的B+树结构中的层高以及所述元数据节点的类型计算所述元数据节点的优先级;
添加模块,配置为根据所述元数据节点的优先级将所述元数据节点添加到对应级别的LUR队列的头部以及添加到所述哈希表中。
9.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-7任意一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-7任意一项所述的方法的步骤。
CN202111384035.6A 2021-11-19 2021-11-19 一种元数据缓存方法、系统、设备以及介质 Pending CN113821477A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111384035.6A CN113821477A (zh) 2021-11-19 2021-11-19 一种元数据缓存方法、系统、设备以及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111384035.6A CN113821477A (zh) 2021-11-19 2021-11-19 一种元数据缓存方法、系统、设备以及介质

Publications (1)

Publication Number Publication Date
CN113821477A true CN113821477A (zh) 2021-12-21

Family

ID=78918046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111384035.6A Pending CN113821477A (zh) 2021-11-19 2021-11-19 一种元数据缓存方法、系统、设备以及介质

Country Status (1)

Country Link
CN (1) CN113821477A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114356241A (zh) * 2021-12-28 2022-04-15 天翼云科技有限公司 小对象数据的存储方法、装置、电子设备和可读介质
CN116303586A (zh) * 2022-12-09 2023-06-23 中电云数智科技有限公司 一种基于多级b+tree的元数据缓存淘汰方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359062A (zh) * 2018-11-02 2019-02-19 郑州云海信息技术有限公司 一种元数据读缓存方法、装置及设备
CN110232049A (zh) * 2019-06-12 2019-09-13 腾讯科技(深圳)有限公司 一种元数据缓存管理方法和装置
US20190340374A1 (en) * 2018-04-27 2019-11-07 Nutanix, Inc. Low latency access to physical storage locations by implementing multiple levels of metadata
CN111857582A (zh) * 2020-07-08 2020-10-30 平凯星辰(北京)科技有限公司 一种键值存储系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190340374A1 (en) * 2018-04-27 2019-11-07 Nutanix, Inc. Low latency access to physical storage locations by implementing multiple levels of metadata
CN109359062A (zh) * 2018-11-02 2019-02-19 郑州云海信息技术有限公司 一种元数据读缓存方法、装置及设备
CN110232049A (zh) * 2019-06-12 2019-09-13 腾讯科技(深圳)有限公司 一种元数据缓存管理方法和装置
CN111857582A (zh) * 2020-07-08 2020-10-30 平凯星辰(北京)科技有限公司 一种键值存储系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114356241A (zh) * 2021-12-28 2022-04-15 天翼云科技有限公司 小对象数据的存储方法、装置、电子设备和可读介质
CN114356241B (zh) * 2021-12-28 2023-11-03 天翼云科技有限公司 小对象数据的存储方法、装置、电子设备和可读介质
CN116303586A (zh) * 2022-12-09 2023-06-23 中电云数智科技有限公司 一种基于多级b+tree的元数据缓存淘汰方法
CN116303586B (zh) * 2022-12-09 2024-01-30 中电云计算技术有限公司 一种基于多级b+tree的元数据缓存淘汰方法

Similar Documents

Publication Publication Date Title
US11775524B2 (en) Cache for efficient record lookups in an LSM data structure
JP5996088B2 (ja) 暗号ハッシュ・データベース
CN104115134B (zh) 用于管理对复合数据存储设备进行访问的方法和系统
JP6356675B2 (ja) 集約/グループ化動作:ハッシュテーブル法のハードウェア実装
US20130297613A1 (en) Indexing based on key ranges
CN108021717B (zh) 一种轻量级嵌入式文件系统的实现方法
CN113821477A (zh) 一种元数据缓存方法、系统、设备以及介质
CN107003814A (zh) 存储系统中的有效元数据
CN107273042A (zh) 重复删除dram系统算法架构
CN104598394A (zh) 一种可动态分配的数据缓存方法及系统
JP2011508340A5 (zh)
CN113535670B (zh) 一种虚拟化资源镜像存储系统及其实现方法
CN113094336B (zh) 基于Cuckoo哈希的文件系统目录管理方法及系统
CN107766258B (zh) 内存存储方法与装置、内存查询方法与装置
CN109002400B (zh) 一种内容感知型计算机缓存管理系统及方法
CN113392040B (zh) 一种地址映射方法、装置、设备
CN107273443B (zh) 一种基于大数据模型元数据的混合索引方法
CN117573676A (zh) 基于存储系统的地址处理方法、装置、存储系统及介质
WO2024119797A1 (zh) 一种数据处理方法、系统、设备以及存储介质
WO2024093090A1 (zh) 一种元数据管理方法、装置、计算机设备及可读存储介质
US20200019539A1 (en) Efficient and light-weight indexing for massive blob/objects
CN108804571B (zh) 一种数据存储方法、装置以及设备
Fevgas et al. A spatial index for hybrid storage
US7571188B1 (en) Cache abstraction for modeling database performance
CN111881064A (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