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优化了数据库层的数据处理开销,减少了数据库层的软件延迟等。但是,上述优化技术仅仅对传统存储软件栈中的文件 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。