一种KVSSD存储引擎的构建方法技术

技术编号:33293529 阅读:30 留言:0更新日期:2022-05-01 00:17
本申请提供一种KV SSD存储引擎的构建方法,NVMe命令接收、分发模块,从Host端接收NVMe操作命令队列,并将Get/Add/Update/List命令分发,接收更新、查询命令时,分发到内存索引表进行更新查询操作,内存索引表的数据定期刷新写入NAND持久化索引表,内存索引表接收到更新/查询命令后,将Key值指向的最新Value所对应的NAND物理地址,并在NAND持久化Value存储模块存储,NAND持久化Value存储模块返回Value数据到NVMe命令接收、分发模块。通过NVMe协议实现KV基本操作命令交互,驱动程序直接跟SSD交互KV操作,缩短内核冗长IO路径,降低延迟,提高并发度。高并发度。高并发度。

【技术实现步骤摘要】
一种KV SSD存储引擎的构建方法


[0001]本申请属于固态硬盘
,具体地,涉及一种用于KV SSD存储引擎的构建方法。

技术介绍

[0002]大数据时代,非结构化数据迅猛增加,键值数据库得到广泛应用。数据以固定大小的块(SSD中最小的可擦除数据量)存储在SSD中,每个块都有自己的ID。但大多数真实世界的数据都是非结构化的,比如音乐,照片和zip文件。因此,SSD通常将对象数据(其大小可以大不相同)转换为具有这些块大小的数据片段。当某些数据发生变化时,整个块将被删除并重新编程。为了迎合实际使用模型,大多数真实世界的数据中心软件(使用键值存储,其中可变大小的键值指的是可变大小的数据集合。在编程中,这称为键值元组。换句话说,提交Key,然后放入或接收与Key相关联的数据。然而,关键值软件给主处理器带来了相当大的负担,因为它使用了宝贵的CPU资源。业界担心的是,随着SSD的速度不断提高,由于管理块和操作的负担而导致CPU开销受到瓶颈,系统级性能将会饱和。因此,Key Value SSD背后的想法是本地支持键值存储(KVS):每个Key可以直接本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种KV SSD存储引擎的构建方法,其特征在于,KV SSD的系统结构包括:Host端,可基于NVMe协议实现KV基本操作命令发送,NVMe命令接收、分发模块,内存索引表,NAND持久化索引表,NAND持久化Value存储模块,内存Value聚合写入模块,Value

Key反向映射表;NVMe命令接收、分发模块,从Host端接收NVMe操作命令队列,并将Get/Add/Update/List命令分发,接收更新、查询命令时,分发到内存索引表进行更新查询操作,内存索引表的数据定期刷新写入NAND持久化索引表,内存索引表接收到更新/查询命令后,将Key值指向的最新Value所对应的NAND物理地址,并在NAND持久化Value存储模块存储,NAND持久化Value存储模块返回Value数据到NVMe命令接收、分发模块;内存索引表,采用定长索引表项,全局Hash算法计算Key对应的索引地址,采用两级映射算法,第一级映射表设计成Key值LSM

tree结构,用于缓存部分新插入的Key,第二级映射表即为全局的Hash直接索引表,索引表项之间通过双向链表连接两个Key值相邻的表项,支持快速范围查询。2.根据权利要求1所述的KV SSD存储引擎的构建方法,其特征在于:接收到NVMe命令接收、分发模块的存入命令时,内存Value聚合写入模块,将Value数据写入内存Value聚合缓存成条带,条带缓存满则写入NAND中的持久化Value存储;并通过Key值计算Hash索引找到DDR中的索引表项后,将Value地址指向当前NAND写入点,并更新Value

Key反向映射表集合的反向映射表,内存中的反向映射表,聚合到一定数量后紧接着Value写入NAND,NAND持久化Value存储。3.根据权利要求1所述的KV SSD存储引擎的构建方法,其特征在于:反向映射表用于垃圾回收时确定数据有效性,垃圾回收分为第一级缓存Key回收和NAND中Value回收。4.根据权利要求3所述的KV SSD存储引擎的构建方法,其特征在于:第一级缓...

【专利技术属性】
技术研发人员:刘烈超刘兴斌
申请(专利权)人:武汉麓谷科技有限公司
类型:发明
国别省市:

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

1