THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
IoTDB 主要包括以下模块,分布式和单机均可由以下模块组合而成。
- ConfigManager(分区管理器)
- 节点状态信息、管理数据分区表、元数据分区表、扩缩容、负载均衡收集节点状态信息、负责分区表的修改、扩缩容、负载均衡
- PartitionTable(分区信息表)
- 元数据分区表、数据分区表
- StorageEngine(存储引擎)
- 单例结构,内部管理多个 VSG。TsFile 数据文件、数据合并、数据同步
- VSG(虚拟存储组,对应单机的 VirtualStorageGroupProsessor)
- 管理一部分设备的数据
- SchemaEngine(元数据管理引擎)
- 单例结构,内部管理多个 MManager
- MManager
- 管理一部分元数据,包括设备、时间序列的增、删、查
- Protocal(网络协议层)
- 包含 RPC、RestAPI、MQTT 等多种协议的实现,将各种网络协议传来的请求转化为统一的数据处理格式
- ServiceProvider(请求处理层)
- 接收统一格式的数据处理请求,管理线程的并发模型。管理权限。
- Planner(执行计划生成器)
- SQL 解析器、查询计划生成、查询优化,生成 PhysicalPlan
- QueryExecutor(查询执行器)
- 原始数据查询、聚合查询等
- Coordinator(协调器)
- 接收执行计划,并判断此计划是本地执行还是远端执行。对于写入计划,交给共识模块进行多副本写入。对于查询计划,负责执行计划的拆分、分发读写请求、合并结果集。
- Consensus(共识层)
- 管理多个数据副本组,根据一致性级别调度读写请求到对应副本
...
代码修改
开发分支:new_cluster
模块结构:
DataNode :单机模块转化为分布式模块(server 模块 → DataNode 模块)
...
- 单机:实现 StandAlongServiceProvider,将请求(PhysicalPlan)发送给 PlanExecutor(QueryExecutor)执行
- 分布式:实现 ClusterServiceProvider,将请求(PhysicalPlan)发送给 Coordinator 执行,Coordinator 再与 ConfigNode 和其他 DataNode 交互进行读写。
...
新增 package:Coordinator
ConfigNode:新增模块
...
新增 package:ConfigManager、PartitionTable
Consensor :新增模块
ConfigNode
...