System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向NVMe SSD和RDMA的原生分布式表存储系统技术方案_技高网

一种面向NVMe SSD和RDMA的原生分布式表存储系统技术方案

技术编号:40940514 阅读:3 留言:0更新日期:2024-04-18 14:58
本发明专利技术公开了一种面向NVMe SSD和RDMA的原生分布式表存储系统,其特点是该系统由元数据节点、数据节点和数据同步组成,所述元数据节点负责存储系统中每一个表的数据分布信息,并管理整个集群的拓扑结构,包括增加、修改、删除服务器位置和运行状态;所述数据节点采用轻量化的存储栈,并结合NVMe设备特性和多线程的并发处理机制;所述数据同步采用RDMA单边原语,实现的基于周期性按批日志拉取的数据同步。本发明专利技术与现有技术相比具有数据存取和传输的高效率,较好的解决了多层数据抽象导致的新型存储/网络设备资源利用率低的问题,积大地发挥了分布式数据库充分利用新型高速硬件性能的能力,方法简便,使用效果好,具有良好的运用前景和商业价值。

【技术实现步骤摘要】

本专利技术涉及软件开发,尤其是一种面向nvme ssd和rdma的原生分布式表存储系统。


技术介绍

1、随着硬件技术的迅猛发展,存储和网络硬件的性能得到了显著提升。相较于传统的hdd和sata ssd,这些设备受到接口限制,最大带宽不超过750mb/s,普通的nvme ssd则展现了近7gb/s的带宽和高达150万iops的卓越性能。rdma nics也取得了重大突破,实现了服务器间高达400gbps的快速数据传输。然而,这些进步将性能瓶颈转移到了软件堆栈。为了应对这一问题,学术界和工业界一直在积极研究各种系统,包括但不限于数据库、键值存储和文件系统。以数据抽象的新视角重新评估新型硬件的存储栈设计。表,作为数据处理系统中的基础结构,被广泛应用。存在两种经典的分布式表抽象模型,分别是共享存储架构和无共享架构。通常,表建立在文件抽象之上,而文件又建立在块设备之上。当前的研究主要集中于单一层面的优化,例如表抽象层(即数据库)或文件抽象层(即文件系统)。这种现象的出现主要有两个原因。首先,采用文件抽象能够屏蔽底层存储细节,简化数据库中存储引擎的设计与实现。其次,在传统的低速hdd和sata ssd上,多层抽象并未导致明显的性能降级。

2、oceanbase是一款广泛应用于多种场景的分布式数据库。oceanbase在配备了nvmessd和rdma的集群上,其带宽利用率分别仅为nvme ssd的8.2%和rdma的6.5%。为了探究这一现象的根源,从oceanbase存储栈的不同层级收集了带宽数据。分析结果显示,与底层硬件相比,文件系统层损失了42.6-57.8%的带宽,而数据库层又损失了34.3-67.8%的带宽。这是因为表作为文件之上的抽象层,而文件又是块设备之上的抽象层,这种多层抽象结构导致了维护多组元数据、层间数据复制和冗余一致性机制等额外开销,从而降低了设备的带宽利用率。

3、综上所述,现有技术的多层数据抽象导致了较低的硬件带宽利用率,限制了分布式数据库充分利用新型高速硬件性能的能力。


技术实现思路

1、本专利技术针对现有技术的不足而提供的一种面向nvme ssd和rdma的原生分布式表存储系统,采用轻量化既有的存储软件栈方法,结合nvme设备和rdma设备的硬件特性进行软硬协同设计,实现了一种定制化的原生分布式表存储系统,大大提高了新型存储/网络设备的资源利用率,进而提高数据存取和传输的效率,较好的解决了多层数据抽象导致的新型存储/网络设备资源利用率低的问题,积大地发挥了分布式数据库充分利用新型高速硬件性能的能力,方法简便,使用效果好,具有良好的运用前景和商业价值。

2、实现本专利技术的具体技术方案是:一种面向nvme ssd和rdma的原生分布式表存储系统,其特点是该系统包括:元数据节点、数据节点和数据同步,所述元数据节点负责存储系统中每一个表的数据分布信息,并管理整个集群的拓扑结构,包括增加、修改、删除服务器位置和运行状态;所述数据节点采用轻量化的存储栈,具备结合nvme设备特性和多线程的并发处理机制,提供高效的数据服务,包括插入、更新、删除、查询特定的元组数据;所述数据同步是系统为每一张表部署多个副本,默认是三副本,主副本负责处理客户端的读写请求,其他副本充当冗余备份,为了保证多个副本之间的数据一致性,采用一种利用rdma单边原语实现的基于周期性日志拉取的数据同步策略。

3、进一步,所述元数据节点采用单个服务器来避免跨节点的元数据访问,所述元数据节点使用了一个扁平的二维表,称为根表,来管理普通表的元数据。此外,元数据被进行了细致的拆分,将与访问相关的信息和与内容相关的信息予以区分。具体来说,只将与访问有关的信息存储于元数据节点,而将与内容相关的信息和相应的表数据存储于特定的数据节点;所述元数据采用哈希索引组织,其中主键为tableid和tabletid。

4、所述数据节点具备轻量化的软件栈。具体来说,其消除文件抽象并直接在nvmessd设备之上构建将表结构,所述nvme ssd设备支持非易性内存主机控制接口规范,数据服务构建在基于用户态的nvme设备驱动之上,而不依赖于任何的文件系统。

5、进一步,所述数据节点具备并发处理机制。具体来说,由于数据服务构建在用户态nvme设备驱动之上,数据节点拥有对nvme ssd硬件队列的控制能力,利用nvme ssd的硬件i/o队列实现设备级的并发读写。此外,利用cpu多核实现线程级的并发读写。

6、所述数据同步为确保多个副本之间的数据一致性,采用一种基于周期性日志拉取的数据同步策略。具体来说,该数据同步策略以传统raft为基础,将多副本之间的数据同步过程从领导者将数据推送到追随者,转换为追随者结合rdma单边原语,以按批方式周期性地从领导者主动拉取日志。

7、本专利技术与现有技术相比具有轻量化的存储软件栈和硬件带宽利用率高的优点,本专利技术结合nvme设备和rdma设备的硬件特性进行软硬协同设计,大大提高了新型存储/网络设备的资源利用率,进而提高数据存取和传输的效率,较好的解决了多层数据抽象导致的新型存储/网络设备资源利用率低的问题,积大地发挥了分布式数据库充分利用新型高速硬件性能的能力,方法简便,使用效果好,具有良好的运用前景和商业价值。

本文档来自技高网...

【技术保护点】

1.一种面向NVMe SSD和RDMA的原生分布式表存储系统,其特征在于,该存储系统由客户端的用户态编程库与元数据节点和数据节点组成,存储系统为每一张表部署多个副本,主副本负责处理客户端的读写请求,其他副本充当冗余备份,实现原生分布式表存储,所述存储系统采用RDMA单边原语实现基于周期性日志拉取的数据同步,实现多个副本之间的数据一致;所述元数据节点负责存储系统中每一个表的数据分布信息,并管理整个集群的拓扑结构,包括增加、修改、删除服务器位置和运行状态;所述数据节点采用轻量化的存储栈和包括插入、更新、删除和查询特定的元组数据的并发处理机制。

2.根据权利要求1所述的面向NVMe SSD和RDMA的原生分布式表存储系统,其特征在于,所述元数据节点采用单个服务器避免跨节点的元数据访问,使用根表为一个扁平的二维表管理普通表的元数据,所述元数据被拆分后与访问相关和内容相关的信息予以区分,将与访问有关的信息存储于元数据节点,将与内容相关的信息和相应的表数据存储于特定的数据节点。

3.根据权利要求1所述的面向NVMe SSD和RDMA的原生分布式表存储系统,其特征在于,所述数据节点具备轻量化的软件栈,其消除文件抽象并直接在NVMe SSD设备之上构建将表结构,所述NVMe SSD设备支持非易性内存主机控制接口规范,将数据服务构建在基于用户态的NVMe设备驱动之上。

4.根据权利要求1所述的面向NVMe SSD和RDMA的原生分布式表存储系统,其特征在于,所述数据同步策略将多副本之间的数据同步过程从领导者将数据推送到追随者,转换为追随者结合RDMA单边原语,以按批方式周期性地从领导者主动拉取日志。

5.根据权利要求2所述的面向NVMe SSD和RDMA的原生分布式表存储系统,其特征在于,所述元数据采用哈希索引组织,其中主键为TableID和TabletID。

6.根据权利要求1或权利要求3所述的面向NVMe SSD和RDMA的原生分布式表存储系统,其特征在于,所述数据节点具备并发处理机制,数据节点中的请求分发器专门为接收到的读写请求分配工作线程,所述工作线程在写请求时,系统使用NVMe SSD的硬件I/O队列,实现设备级的并发读写,并使用CPU多核实现线程级的并发读写,在查询操作时,并行访问索引和缓存;所述数据节点收到读请求时,通过索引检索BlockID和Offset信息,然后从缓存中读取数据,在缓存未命中时,系统从NVMe SSD检索数据块。

7.根据权利要求1权利要求3或权利要求6所述的面向NVMe SSD和RDMA的原生分布式表存储系统,其特征在于,所述数据节点将表空间划分为:数据区、日志区和元数据区三大区域,系统采用段作为基础分配单元,通过位图分配器来管理段的分配与释放,每个段都包含了连续的若干个数据块,并由专门的位图分配器进行管理,所述各区域的段大小根据实际需求进行自定义配置。

...

【技术特征摘要】

1.一种面向nvme ssd和rdma的原生分布式表存储系统,其特征在于,该存储系统由客户端的用户态编程库与元数据节点和数据节点组成,存储系统为每一张表部署多个副本,主副本负责处理客户端的读写请求,其他副本充当冗余备份,实现原生分布式表存储,所述存储系统采用rdma单边原语实现基于周期性日志拉取的数据同步,实现多个副本之间的数据一致;所述元数据节点负责存储系统中每一个表的数据分布信息,并管理整个集群的拓扑结构,包括增加、修改、删除服务器位置和运行状态;所述数据节点采用轻量化的存储栈和包括插入、更新、删除和查询特定的元组数据的并发处理机制。

2.根据权利要求1所述的面向nvme ssd和rdma的原生分布式表存储系统,其特征在于,所述元数据节点采用单个服务器避免跨节点的元数据访问,使用根表为一个扁平的二维表管理普通表的元数据,所述元数据被拆分后与访问相关和内容相关的信息予以区分,将与访问有关的信息存储于元数据节点,将与内容相关的信息和相应的表数据存储于特定的数据节点。

3.根据权利要求1所述的面向nvme ssd和rdma的原生分布式表存储系统,其特征在于,所述数据节点具备轻量化的软件栈,其消除文件抽象并直接在nvme ssd设备之上构建将表结构,所述nvme ssd设备支持非易性内存主机控制接口规范,将数据服务构建在基于用户态的nvme设备驱动之上。

4.根据权利要求1所述的面向nvme ...

【专利技术属性】
技术研发人员:范晓鹏翁楚良阎松黄宇辰
申请(专利权)人:华东师范大学
类型:发明
国别省市:

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

1