架构
GreptimeDB 可以作为一个 standalone 进程运行,也可以组成分布式集群。Standalone 使用配置的本地存储或对象存储;分布式部署可以使用共享对象存储,把持久化数据文件与计算节点分离,分别调整计算和存储容量。
对象存储不是系统中唯一的状态。WAL 记录已接收的写入,Metasrv 管理集群 metadata 和 Region 路由,本地磁盘可以缓存远端数据。可用性和 failover 取决于 WAL 模式、Metasrv 部署、Region 放置、共享存储和可用 Datanode 等配置。
关于实时监控与历史分析为什么可以共用这套存储和查询基础,参见为什么选择 GreptimeDB。
高层架构
组件
分布式模式包含三个核心组件,以及一个可选的 Flow 运行时:
- Metasrv:管理 catalog、schema、table、Region 路由、procedure 和调度 metadata。
- Frontend:接收客户端协议请求,执行鉴权和分布式查询规划,并根据 Metasrv metadata 转发读写请求。
- Datanode:承载 Region,执行读写,记录 WAL,运行 compaction,并把数据文件持久化到配置的本地或对象存储后端。
- Flownode(可选):运行 Flow任务,持续计算并把派生数据物化到 sink table。
Standalone 模式由一个 GreptimeDB 进程提供这些数据库能力,不需要分别部署各组件。
工作方式
下面描述分布式模式的处理路径。Standalone 在同一个进程中完成相应的数据库操作。