Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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)

...