数据库
DolphinDB 是一款高性能分布式时序数据库,采用分布式架构作为基础,在此基础上实现了多模态存储、支持 ACID 事务特性,并通过 MVCC 进行多版本并发控制,其在海量数据的存储、查询以及计算的性能上具有显著优势。
DolphinDB 有两种运行模式:单实例模式和集群模式。
- 单实例模式仅有一个数据节点,无计算节点、控制节点和代理节点。
- 集群模式包含四种角色:控制节点、代理节点、数据节点和计算节点。
- 控制节点。一个集群可以有一个或多个控制节点。控制节点是 DolphinDB 集群的核心部分。它负责收集代理/数据节点/计算节点的心跳,监控每个节点的工作状态,管理分布式文件系统的元数据和事务。
- 代理节点。代理节点负责执行控制节点发出的启动和关闭数据/计算节点的命令。在一个集群中,每台物理服务器有且仅有一个代理节点。
- 数据节点。在数据节点上可以进行数据存储和查询操作(或更加复杂的计算)。每台物理服务器可以配置多个数据节点。
- 计算节点。只用于计算的节点,应用于包括流计算、分布式关联、机器学习等场景。计算节点不存储数据,但可以在该节点上执行建库建表语句,系统会在数据节点上创建数据库。计算节点可以通过 loadTable 加载数据进行计算。
在集群模式下,代理节点、数据节点和计算节点默认通过 UDP 广播,用户也可以修改配置参数 lanCluster=0 来启用 TCP 广播。代理节点、数据节点和计算节点每秒钟发送一次心跳给控制节点,以确认其存活状态。如果控制节点连续 3 秒没有收到某一节点的心跳,就认为该节点已掉线。
单实例模式和集群模式的数据模型并无差异,并且都支持事务。两者的区别在于,集群模式支持高可用等。本章将重点介绍 DolphinDB 数据库相关的操作、分布式架构具备的关键功能、以及多种存储引擎的实现原理和适用场景,以帮助用户全面了解并合理利用 DolphinDB。