数据存储方法及NVMe存储系统技术方案

技术编号:20117538 阅读:21 留言:0更新日期:2019-01-16 12:01
本申请提供了一种基于NVMe存储系统的数据存储方法及NVMe存储系统,能够根据接收的待写入数据和内存中元数据信息,确定待写入数据在关系表存储空间中的位置,再进一步将待写入数据不通过内核、不写入缓存而是直接写入对应的关系表存储空间,从而实现了数据库层、操作系统层和文件系统层的精简与整合,与传统存储系统相比,本申请提供的方案充分利用了NVMe存储设备的硬件并行性,减少了层次之间非必须的数据拷贝、上下文切换,将中断模式改为轮询模式,缩短了数据处理的执行路径,提高了数据写入的效率,同时还实现了在单一的用户态缓存中查找待读取数据,避免了传统存储系统中多层次缓存的查找和状态切换,从而提高了数据读取的效率。

Data Storage Method and NVMe Storage System

This application provides a data storage method based on NVMe storage system and NVMe storage system, which can determine the location of the data to be written in the relational table storage space according to the received data to be written and metadata information in memory, and then write the data to be written directly into the corresponding relational table storage space instead of through the kernel and caching, thus realizing the number of data. Comparing with the traditional storage system, the simplification and integration of database layer, operating system layer and file system layer make full use of the hardware parallelism of NVMe storage device, reduce the unnecessary data copy and context switching between layers, change interrupt mode to polling mode, shorten the execution path of data processing, and improve the efficiency of data writing. It also realizes searching the data to be read in a single user-mode cache, avoids searching and switching the status of multi-level caches in traditional storage systems, and thus improves the efficiency of data reading.

【技术实现步骤摘要】
数据存储方法及NVMe存储系统
本申请涉及计算机存储领域,尤其涉及一种数据存储方法及NVMe存储系统。
技术介绍
随着新材料的研究推进以及工业制造技艺的进步,新型高性能的存储硬件如NVMe设备等得到了较快的发展。NVMe设备,是指支持非易失性内存主机控制器接口规范(Non-VolatileMemoryexpress,NVMe)协议的存储设备。目前,NVMe协议已得到了广泛使用,由于NVMe协议采用了简化的指令、较低延迟的软件堆栈、队列并行性和较大的队列深度,能够很大程度上减少硬件层面的I/O开销和延迟,从而使得支持NVMe协议的存储设备具有高带宽、低延迟的硬件特性,对于I/O密集型应用有着较好的支持,常用的NVMe设备例如有PCIe固态硬盘和英特尔傲腾存储器等。一般来说,衡量存储设备的存储效率通过数据存储的总延迟来判断,数据存储的总延迟可包括硬件延迟和软件延迟,由于NVMe设备上数据存储的硬件延迟大幅度减少,使得部署在NVMe设备上的存储软件所导致的软件延迟相应变大,以至于传统的存储软件无法充分发挥NVMe设备的潜能。为了提升存储系统的数据存储效率,现有技术对传统的存储软件的软件栈进行了一定的优化,例如,通过使用用户态的轻量级文件系统Aerie、基于日志结构的文件系统NOVA,减少了文件系统层的软件延迟;另外,通过使用硬件设备层面的文件系统DevFS来绕过了操作系统层的数据处理,从而减少操作系统层的软件延迟;还针对OLTP型负载的数据库引擎Hekaton优化了数据库层的数据处理开销,减少了数据库层的软件延迟等。但是,上述优化技术仅仅对传统存储软件栈中的文件系统层、操作系统层以及数据库层进行了局部优化,并没有实现从存储软件栈的整体上进行分析、整合以及精简,从而性能优化不全面、不彻底,无法充分发挥NVMe设备的高性能。申请内容本申请的一个目的是提供一种基于NVMe存储系统的数据存储方法及NVMe存储系统。为实现上述目的,本申请的一些实施例提供了一种基于NVMe存储系统的数据存储方法,其中,所述NVMe存储系统包括处理器、内存和NVMe存储设备,所述NVMe存储设备支持非易失性内存主机控制器接口规范并保存有元数据文件,且包含用于存储用户数据的关系表存储空间,该方法包括:在NVMe存储系统启动时,处理器将所述元数据文件中的元数据信息加载到内存中;处理器接收客户端的数据写入请求;处理器根据所述数据写入请求中待写入数据和内存中元数据信息,确定所述待写入数据在关系表存储空间中的位置信息;处理器根据所述位置信息,直接将所述待写入数据写入对应的关系表存储空间;若数据写入成功,处理器根据所述待写入数据的写入结果对元数据信息进行更新。进一步地,处理器将所述元数据文件中的元数据信息加载到内存中,包括:处理器根据预设的元数据文件存放目录,查找元数据文件;处理器读取并解析所述元数据文件,获取元数据信息;处理器将所述元数据信息加载到内存中。进一步地,所述元数据信息包括Root信息、预分配块的管理信息、索引信息和关系表的结构信息。进一步地,处理器根据所述待写入数据的写入结果对元数据信息进行更新,包括:处理器根据所述待写入数据对应的数据块写入信息,更新元数据信息中的预分配块的管理信息;处理器根据所述待写入数据的主键信息,更新元数据信息中的索引信息。进一步地,处理器根据所述数据写入请求中待写入数据和内存中元数据信息,确定所述待写入数据在关系表存储空间中的位置信息,包括:处理器根据所述数据写入请求中待写入数据的主键信息和内存中元数据信息的预分配块的管理信息,确定所述待写入数据在关系表存储空间中的位置信息。进一步地,处理器根据所述数据写入请求中待写入数据和内存中元数据信息,确定所述待写入数据在关系表存储空间中的位置信息之后,还包括:处理器根据所述位置信息,获取对应的关系表存储空间存储的第一数据;处理器根据所述第一数据,生成与第一数据对应的Undo日志信息。进一步地,该方法还包括:若数据写入成功,处理器将对应所述第一数据的Undo日志信息标记为失效;若数据写入失败,处理器获取与所述第一数据对应的Undo日志信息,并将所述Undo日志信息中的第一数据写入对应的关系表存储空间。进一步地,所述Undo日志信息保存在非易失性缓存区中,且标记为失效的Undo日志信息定期被清除。进一步地,该方法还包括:处理器接收客户端的数据读取请求;处理器根据所述数据读取请求中待读取数据的主键信息,在数据缓存中查询并获取查询结果;若所述查询结果为未命中,则处理器根据所述主键信息获取待读取数据在关系表存储空间中的位置信息,并根据所述位置信息获取待读取数据。进一步地,处理器根据所述位置信息获取待读取数据之后,还包括:处理器根据所述待读取数据和预设数据缓存更新策略,更新数据缓存。此外,本申请的一些实施例还提供了一种NVMe存储系统,其中,所述NVMe存储系统包括处理器、内存和NVMe存储设备,所述NVMe存储设备支持非易失性内存主机控制器接口规范并保存有元数据文件,且包含用于存储用户数据的关系表存储空间;所述内存用于存储从元数据文件中获取的元数据信息,并提供数据缓存;所述处理器,用于:在NVMe存储系统启动时,将所述元数据文件中的元数据信息加载到内存中;接收客户端的数据写入请求;根据所述数据写入请求中待写入数据和内存中元数据信息,确定所述待写入数据在关系表存储空间中的位置信息;根据所述位置信息,直接将所述待写入数据写入对应的关系表存储空间;若写入成功,根据所述待写入数据的写入结果对元数据信息进行更新。进一步地,所述处理器,用于:根据预设的元数据文件存放目录,获取元数据文件;读取并解析所述元数据文件,获取元数据信息;将所述元数据信息加载到内存中。进一步地,所述元数据信息包括Root信息、预分配块的管理信息、索引信息和关系表的结构信息。进一步地,所述处理器,用于:根据所述待写入数据对应的数据块写入信息,更新元数据信息中的预分配块的管理信息;根据所述待写入数据的主键信息,更新元数据信息中的索引信息。进一步地,用于:根据所述数据写入请求中待写入数据的主键信息和内存中元数据信息的预分配块的管理信息,确定所述待写入数据在关系表存储空间中的位置信息。进一步地,所述处理器,用于:根据所述位置信息,获取对应的关系表存储空间存储的第一数据;根据所述第一数据,生成与第一数据对应的Undo日志信息。进一步地,所述处理器,还用于:若数据写入成功,将对应所述第一数据的Undo日志信息标记为失效;若数据写入失败,获取与所述第一数据对应的Undo日志信息,并将所述Undo日志信息中的第一数据写入对应的关系表存储空间。进一步地,所述Undo日志信息保存在非易失性缓存区中,且标记为失效的Undo日志信息定期被清除。进一步地,所述处理器,还用于:接收客户端的数据读取请求;根据所述数据读取请求中待读取数据的主键信息,在数据缓存中查询并获取查询结果;若所述查询结果为未命中,则根据所述主键信息获取待读取数据在关系表存储空间中的位置信息,并根据所述位置信息获取待读取数据。进一步地,所述处理器,用于:根据所述待读取数据和预设数据缓存更新策略,更新数据缓存。本申请的一些实施例还提供了一种计算机可读介质,其上本文档来自技高网...

【技术保护点】
1.一种基于NVMe存储系统的数据存储方法,其中,所述NVMe存储系统包括处理器、内存和NVMe存储设备,所述NVMe存储设备支持非易失性内存主机控制器接口规范并保存有元数据文件,且包含用于存储用户数据的关系表存储空间,该方法包括:在NVMe存储系统启动时,处理器将所述元数据文件中的元数据信息加载到内存中;处理器接收客户端的数据写入请求;处理器根据所述数据写入请求中待写入数据和内存中元数据信息,确定所述待写入数据在关系表存储空间中的位置信息;处理器根据所述位置信息,直接将所述待写入数据写入对应的关系表存储空间;若数据写入成功,处理器根据所述待写入数据的写入结果对元数据信息进行更新。

【技术特征摘要】
1.一种基于NVMe存储系统的数据存储方法,其中,所述NVMe存储系统包括处理器、内存和NVMe存储设备,所述NVMe存储设备支持非易失性内存主机控制器接口规范并保存有元数据文件,且包含用于存储用户数据的关系表存储空间,该方法包括:在NVMe存储系统启动时,处理器将所述元数据文件中的元数据信息加载到内存中;处理器接收客户端的数据写入请求;处理器根据所述数据写入请求中待写入数据和内存中元数据信息,确定所述待写入数据在关系表存储空间中的位置信息;处理器根据所述位置信息,直接将所述待写入数据写入对应的关系表存储空间;若数据写入成功,处理器根据所述待写入数据的写入结果对元数据信息进行更新。2.根据权利要求1所述的方法,其中,处理器将所述元数据文件中的元数据信息加载到内存中,包括:处理器根据预设的元数据文件存放目录,查找元数据文件;处理器读取并解析所述元数据文件,获取元数据信息;处理器将所述元数据信息加载到内存中。3.根据权利要求1或2所述的方法,其中,所述元数据信息包括Root信息、预分配块的管理信息、索引信息和关系表的结构信息。4.根据权利要求3所述的方法,其中,处理器根据所述待写入数据的写入结果对元数据信息进行更新,包括:处理器根据所述待写入数据对应的数据块写入信息,更新元数据信息中的预分配块的管理信息;处理器根据所述待写入数据的主键信息,更新元数据信息中的索引信息。5.根据权利要求1所述的方法,其中,处理器根据所述数据写入请求中待写入数据和内存中元数据信息,确定所述待写入数据在关系表存储空间中的位置信息,包括:处理器根据所述数据写入请求中待写入数据的主键信息和内存中元数据信息的预分配块的管理信息,确定所述待写入数据在关系表存储空间中的位置信息。6.根据权利要求1所述的方法,其中,处理器根据所述数据写入请求中待写入数据和内存中元数据信息,确定所述待写入数据在关系表存储空间中的位置信息之后,还包括:处理器根据所述位置信息,获取对应的关系表存储空间存储的第一数据;处理器根据所述第一数据,生成与第一数据对应的Undo日志信息。7.根据权利要求6所述的方法,其中,该方法还包括:若数据写入成功,处理器将对应所述第一数据的Undo日志信息标记为失效;若数据写入失败,处理器获取与所述第一数据对应的Undo日志信息,并将所述Undo日志信息中的第一数据写入对应的关系表存储空间。8.根据权利要求7所述的方法,其中,所述Undo日志信息保存在非易失性缓存区中,且标记为失效的Undo日志信息定期被清除。9.根据权利要求1所述的方法,其中,该方法还包括:处理器接收客户端的数据读取请求;处理器根据所述数据读取请求中待读取数据的主键信息,在数据缓存中查询并获取查询结果;若所述查询结果为未命中,则处理器根据所述主键信息获取待读取数据在关系表存储空间中的位置信息,并根据所述位置信息获取待读取数据。10.根据权利要求9所述的方法,其中,处理器根据所述位置信息获取待读取...

【专利技术属性】
技术研发人员:翁楚良储佳佳涂云山张耀
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海,31

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

1