分布式架构

分布式数据库构建在分布式架构的基础上,因此分布式架构是分布式数据库实现的核心设计。DolphinDB 自主研发了基于 shared-nothing 的分布式架构,并进行了全局的优化,实现了数据的分布式存储。DolphinDB 分布式架构涵盖了高可用、在线恢复、分布式事务、异步复制等功能。

DolphinDB 集群底层采用 shared-nothing 架构,同时在物理架构之上引入了一层抽象的逻辑上的文件系统,构建了自研的分布式架构,实现了数据分布式存储。在这一架构中,集群中的各个节点相互独立,拥有自己独立的计算资源和存储资源,不共享中心资源。元数据文件存储在控制节点上,而分区数据按指定逻辑进行划分,存储在不同的数据节点上。这个逻辑上的文件系统有效地组织了各节点的文件和目录服务,形成了一个全局的目录结构,从而屏蔽了各节点具体物理路径的细节。由于逻辑文件系统的存在,用户无需关心数据具体存储在哪个物理节点上。不论用户无论从哪个物理节点进行数据访问,路径都是相同的。

DolphinDB 分布式架构具有如下特点:

  • 节点对等: 每个节点都是独立的,没有中心化的共享资源。每个节点都有自己的 CPU、内存、硬盘等资源。
  • 数据分区和分片:数据以分区方式进行分片,并分布在多台机器上。
  • 资源得到充分利用:对数据分割进行了全局优化,实现了数据在各个节点上均匀分布,从而更充分地利用整个集群资源。
  • 弹性扩展:控制节点统一管理元数据,提高了容错性和可扩展性。存储逻辑与存储位置分离,可以实现计算和存储的弹性扩展。且扩展节点时,不需要对现有数据进行 resharding 操作,也不需要重启集群,新增的数据会直接保存到新的数据节点中。
  • 支持高可用:在节点发生故障时,系统也可以根据存储逻辑,自动找到其他节点上的数据副本,保证服务不断线。
  • 支持 TCP 协议: 节点之间、应用驱动与各节点之间的通信基于 TCP 协议,确保了节点之间的连接。且在通信时自动进行数字签名/认证、自动处理数据的序列化/反序列化等操作。
  • 支持 RDMA:通过硬件直接在内存间传输数据,支持零拷贝、低延迟和高带宽利用率,显著减轻 CPU 负担,并确保数据传输的安全性和高效性。

本章将分别介绍分布式架构的几个重要功能,帮助用户更深入理解 DolphinDB 的技术特点。