一种元数据缓存方法和元数据缓存装置制造方法及图纸

技术编号:25520926 阅读:17 留言:0更新日期:2020-09-04 17:11
本发明专利技术公开一种元数据缓存方法和元数据缓存装置,元数据缓存方法包括构建基数树;接收元数据缓存请求,所述元数据缓存请求包括第一数据及所述第一数据对应的第二数据;采用所述基数树对应存储所述第一数据和第二数据;本发明专利技术实施例通过在元数据写缓存中通过构建基数树,采用基数树这一数据结构对元数据缓存请求中包含的第一数据和第二数据之间的映射信息进行存储,通过基于基数树radix tree的元数据写缓存机制保证了元数据存储的高效性,并且基数树具有稳定的层高,随着用户写入数据量的增多,也能够保证元数据操作性能的稳定性。

【技术实现步骤摘要】
一种元数据缓存方法和元数据缓存装置
本专利技术涉及元数据写缓存领域,尤其涉及一种元数据缓存方法和元数据缓存装置。
技术介绍
目前在固态硬盘SSD(SolidStateDisk)领域,针对写请求的常见处理方法如图1所示:首先通过闪存转换层FTL(FlashTranslationLayer)将写请求数据保存至与非门快闪存储器NAND,然后将待更新的映射信息保存至元数据写缓存区中,待元数据写缓存区中累积的映射条数达到一定的程度时,最后批量刷新元数据写缓存区中的映射信息至映射表中。其中,使用元数据写缓存有以下几个好处:1、避免每次写完成后都需要更新映射表,更新映射表可能造成系统的负担;一旦映射表不命中,又需要从NAND中读取映射数据;将待更新的映射信息保存至元数据写缓存区中,可以缩短写操作的时间,固件可以快速响应主机host的新请求,从而提升读写性能;2、使用写缓存可以提升更新映射表的效率,因为可能存在多条映射信息位于相同映射表的情况,这种情况可以节省查询-更新映射表的时间。常见的元数据写缓存一般选择查询、插入、删除性能好的数据结构,同时要兼顾空间的利用率,毕竟固件中可以使用的缓存非常有限。数组插入慢,链表查询慢,所以二者基本不考虑;哈希表hashtable在处理稀疏数据的场景下有不错的效率,但是一旦处理10k~100k的数据量时,会消耗大量的桶(bucket)空间,如果想节省空间必然导致大量的键(key)冲突。因此,选择二叉树或者多叉树是目前比较主流的做法,而红黑树red-balcktree或者平衡二叉树avltree随着写入数据量的增多,会导致树的层高加大例如保存1k个item数据,avltree的层高为10,即log21024,性能也会随着写入的数据量增多而下降。
技术实现思路
本专利技术所要解决的技术问题是:提供一种元数据缓存方法和元数据缓存装置,提高了元数据操作性能的稳定性。为了解决上述技术问题,本专利技术采用的一种技术方案为:一种元数据缓存方法,包括步骤:构建基数树;接收元数据缓存请求,所述元数据缓存请求包括第一数据及所述第一数据对应的第二数据;采用所述基数树对应存储所述第一数据和第二数据。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种元数据缓存装置,包括:构建模块,用于构建基数树;接收模块,用于接收元数据缓存请求,所述元数据缓存请求包括第一数据及所述第一数据对应的第二数据;存储模块,用于采用所述基数树对应存储所述第一数据和第二数据。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述元数据缓存方法中的各个步骤。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述元数据缓存方法中的各个步骤。本专利技术的有益效果在于:在元数据写缓存中通过构建基数树,采用基数树这一数据结构对元数据缓存请求中包含的第一数据和第二数据之间的映射信息进行存储,通过基于基数树radixtree的元数据写缓存机制保证了元数据存储的高效性,并且基数树具有稳定的层高,随着用户写入数据量的增多,也能够保证元数据操作性能的稳定性。附图说明图1为现有技术中固态硬盘写请求的常见处理步骤流程图;图2为本专利技术实施例的一种元数据缓存方法的步骤流程图;图3为本专利技术实施例的一种元数据缓存装置的结构示意图;图4为本专利技术实施例的一种电子设备的结构示意图;图5为本专利技术实施例的基数树中插入数据的流程示意图;图6为本专利技术实施例的基数树中查询数据的流程示意图;图7为本专利技术实施例的元数据写缓存区中缓存空间划分示意图;标号说明:1、一种元数据缓存装置;12、构建模块;13、接收模块;14、存储模块;2、一种电子设备;21、存储器;22、处理器。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。请参照图2,本专利技术实施例提供了一种元数据缓存方法,包括步骤:构建基数树;接收元数据缓存请求,所述元数据缓存请求包括第一数据及所述第一数据对应的第二数据;采用所述基数树对应存储所述第一数据和第二数据。从上述描述可知,本专利技术的有益效果在于:在元数据写缓存中通过构建基数树,采用基数树这一数据结构对元数据缓存请求中包含的第一数据和第二数据之间的映射信息进行存储,通过基于基数树radixtree的元数据写缓存机制保证了元数据存储的高效性,并且基数树具有稳定的层高,随着用户写入数据量的增多,也能够保证元数据操作性能的稳定性。进一步的,所述采用所述基数树对应存储所述第一数据和第二数据包括:根据待操作的数据确定对应的基数树并在所述对应的基数树上搜索,确定对应的叶子节点,所述待操作的数据为所述第一数据;在所述叶子节点上存储所述第二数据。进一步的还包括接收元数据查询请求,所述元数据查询请求包括第三数据;根据待操作的数据确定对应的基数树并在所述对应的基数树上搜索,确定对应的叶子节点,所述待操作的数据为所述第三数据;获取所述叶子节点存储的数据作为所述第三数据对应的第四数据;发送所述第四数据。进一步的,还包括接收元数据删除请求,所述元数据删除请求包括第五数据;根据待操作的数据确定对应的基数树并在所述对应的基数树上搜索,确定对应的叶子节点,所述待操作的数据为所述第五数据;删除所述叶子节点存储的第六数据。由上述描述可知,根据第一数据确定对应的基数树并在对应的基数树中搜索,确定对应的叶子节点,在叶子节点存储与第一数据对应的第二数据,借助基数树,能够方便快捷地将第一数据和第二数据之间的映射信息进行存储,存储效率高,并且能够实现快速的查询和删除操作,借助基数树,保证了元数据插入、查询和删除性能的良好性。进一步的,所述基数树包括唯一标识;所述根据待操作的数据确定对应的基数树并在所述对应的基数树上搜索,确定对应的叶子节点包括:根据预先设置的数据拆分规则将所述待操作的数据拆分成第一数据块和第二数据块;根据所述第一数据块确定对应的唯一标识;根据所述第一数据块对应的唯一标识查找对应的基数树;根据所述第二数据块在查找到的所述基数树上搜索,确定对应的叶子节点。由上述描述可知,将待操作的数据拆分成第一数据块和第二数据块,根据第一数据块确定对应的基数树,根据第二数据块在对应的基数树进行搜索,确定对应的叶子节点,能够方便、快速、准确地根据待操作的数据定位到对应的叶子节点。进一步的,所述基数树包括树高;所述根据所述第二数据块在查找到的所述基数树上搜索,确定本文档来自技高网
...

【技术保护点】
1.一种元数据缓存方法,其特征在于,包括步骤:/n构建基数树;/n接收元数据缓存请求,所述元数据缓存请求包括第一数据及所述第一数据对应的第二数据;/n采用所述基数树对应存储所述第一数据和第二数据。/n

【技术特征摘要】
1.一种元数据缓存方法,其特征在于,包括步骤:
构建基数树;
接收元数据缓存请求,所述元数据缓存请求包括第一数据及所述第一数据对应的第二数据;
采用所述基数树对应存储所述第一数据和第二数据。


2.根据权利要求1所述的一种元数据缓存方法,其特征在于,所述采用所述基数树对应存储所述第一数据和第二数据包括:
根据待操作的数据确定对应的基数树并在所述对应的基数树上搜索,确定对应的叶子节点,所述待操作的数据为所述第一数据;
在所述叶子节点上存储所述第二数据。


3.根据权利要求2所述的一种元数据缓存方法,其特征在于,还包括接收元数据查询请求,所述元数据查询请求包括第三数据;
根据待操作的数据确定对应的基数树并在所述对应的基数树上搜索,确定对应的叶子节点,所述待操作的数据为所述第三数据;
获取所述叶子节点存储的数据作为所述第三数据对应的第四数据;
发送所述第四数据。


4.根据权利要求2所述的一种元数据缓存方法,其特征在于,还包括接收元数据删除请求,所述元数据删除请求包括第五数据;
根据待操作的数据确定对应的基数树并在所述对应的基数树上搜索,确定对应的叶子节点,所述待操作的数据为所述第五数据;
删除所述叶子节点存储的第六数据。


5.根据权利要求2至4中任一项所述的一种元数据缓存方法,其特征在于,所述基数树包括唯一标识;
所述根据待操作的数据确定对应的基数树并在所述对应的基数树上搜索,确定对应的叶子节点包括:
根据预先设置的数据拆分规则将所述待操作的数据拆分成第一数据块和第二数据块;
根据所述第一数据块确定对应的唯一标识;

【专利技术属性】
技术研发人员:胡伟
申请(专利权)人:深圳佰维存储科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1