THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Table of Contents |
---|
...
方案特点
- 原生分布式
- 让 IoTDB 各个模块原生支持分布式,分布式或单机实例均通过这些模块组合而成。
- 单机只是分布式的特殊情况。
- 扩展性
- 支持快速(秒级)增加节点,无需迁移数据
- 支持新增节点后实时分担写入负载
- 支持数据读写以及磁盘空间使用的负载均衡
- 高可用
- 客户端可自动切换
- 单节点失效不影响集群服务
- 可观测
- 集群内置监控服务
...
名词 | 类型 | 对应现有的类 | 解释 |
---|---|---|---|
ConfigNode | 节点角色 | 不对应类 | 集群配置节点,管理集群节点信息、管理分区信息 |
DataNode | 节点角色 | 不对应类 | 数据节点,管理数据、元数据 |
ConfigManager | 模块 | 新加 | 分区节点管理者,处理集群内部请求 |
PartitionTable | 模块 | 新加 | 分区表结构,包含元数据分区信息和数据分区信息 |
StorageEngine | 模块 | StorageEngine | 一个进程内的唯一数据存储引擎(单例) |
DataRegion | 模块 | VirtualStorageGroupProsessor | 管理一部分数据分区 |
SchemaEngine | 模块 | 新加 | 一个进程内的唯一元数据管理引擎(单例) |
SchemaRegion | 模块 | SchemaRegion | 管理一部分元数据分区 |
StorageGroup | 元数据 | 无 | 存储组,不同存储组的数据物理隔离 |
DeviceGroup | 设备管理粒度 | 无 | 每个存储组会对应固定个数的设备组,作为管理设备的基本单元,每个设备都会分配到某一个设备组中。 |
...
- ConfigManager(分区管理器)
- 收集节点状态信息、负责分区表的修改、扩缩容、负载均衡
- PartitionTable(分区信息表)
- 元数据分区表、数据分区表
- StorageEngine(存储引擎)
- 单例结构,内部管理多个 DataRegion。TsFile 数据文件、数据合并、数据同步
- DataRegion(数据分区)
- 管理一部分数据分区
- SchemaEngine(元数据管理引擎)
- 单例结构,内部管理多个 SchemaRegion
- SchemaRegion
- 管理一部分元数据分区,提供元数据的增、删、查操作
- Protocol(网络协议层)Protocal(网络协议层)
- 包含 RPC、RestAPI、MQTT 等多种协议的实现,将各种网络协议传来的请求转化为统一的数据处理格式
- ServiceProvider(请求处理层)
- 接收统一格式的数据处理请求,管理线程的并发模型。管理权限。
- Planner(执行计划生成器)
- SQL 解析器、查询计划生成、查询优化,生成 PhysicalPlan
- QueryExecutor(查询执行器)
- 原始数据查询、聚合查询等
- Coordinator(协调器)
- 接收执行计划,并判断此计划是本地执行还是远端执行。对于写入计划,交给共识模块进行多副本写入。对于查询计划,负责执行计划的拆分、分发读写请求、合并结果集。
- Consensus(共识层)
- 管理多个数据副本组,根据一致性级别调度读写请求到对应副本
...
新增 package:ConfigManager、PartitionTable
Consensus:新增 Module
开发步骤:
第一阶段:ConfigNode(ConfigManager 分区策略、PartitionTable)、Consensus 框架及 Ratis 集成、单机模块修改,集群启动、增加节点,DataRegion 内部元数据缓存管理( SchemaRegion 或 MTree)
...