forked from pingcap/docs-cn
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
New TiDB 4.0 version planning and future version planning
- Loading branch information
Showing
1 changed file
with
184 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,103 +1,188 @@ | ||
--- | ||
title: TiDB 路线图 | ||
category: Roadmap | ||
--- | ||
#TiDB V4.0 | ||
|
||
# TiDB 路线图 | ||
##TiDB | ||
|
||
###TiDB | ||
|
||
####功能 | ||
|
||
* 支持 TiFlash 存储引擎 | ||
* Optimizer Trace | ||
* Multi-Column Statistics | ||
* Normal CM-Sketch with TOPN Statistics | ||
* 完善 Plan Cache 功能 | ||
* 简单的自适应 SQL 引擎 | ||
* SQL Tuning Advisor | ||
* SQL Plan Management | ||
|
||
####性能 | ||
|
||
* 提升 load CSV/data 性能 | ||
* 提升 Prepare 语句性能 | ||
* Generated Column 支持 Index | ||
* 优化 SQL 引擎部份算子 | ||
* 提升通过索引回表查询的性能 | ||
* Index Join 拆分为 Index Merge Join 和 Index Hash Join | ||
* Radix Hash Join | ||
* Index Merge | ||
* Parallel Stream Aggregate | ||
* Parallel Merge Sort | ||
* Parallel Merge Join | ||
* Full Vectorized Expression Evaluation | ||
* Indexes on Expressions | ||
* Multi-Index Scan | ||
* Join,Aggregate,Sort 算子支持外部存储 | ||
* 优化执行引擎并发模型 | ||
* 支持新 Cascades 优化器,支持 Cascades Planner,扩大优化器的搜索空间 | ||
|
||
####易用性 | ||
|
||
* 完善 Optimizer Hint 功能 | ||
* 快速修复数据库或者表元信息及数据 | ||
* 动态修改配置项 | ||
* 空闲连接自动断开 | ||
* 完善支持 MySQL 5.7 DDL 语句 | ||
* 重构日志内容 | ||
* 支持 admin checksum from … to … 校验数据完整性 | ||
* 标准 SQL 查询 DDL 历史记录 | ||
* 标准 SQL 管理 Binlog | ||
* 标准 SQL 管理集群 | ||
* 多个 Ctrl 工具合并一个工具 | ||
|
||
####高可用 | ||
|
||
* Binlog 支持服务高可用 | ||
|
||
###TiKV | ||
|
||
####功能 | ||
|
||
* 集群规模最大支持 200+节点 | ||
* 全量物理备份恢复 | ||
* 动态 Split,Merge 热点 Region | ||
* 精细的内存控制 | ||
* Raft | ||
* 链式复制数据 | ||
* Witness Role | ||
* Joint consensus | ||
* 只读副本 | ||
* 存储引擎 | ||
* RocksDB Gaurd,compaction 按特定逻辑切分 SST | ||
* 冷热数据分离 | ||
* 事务 | ||
* 悲观锁 GA | ||
* 事务内不限制语句数量 | ||
* 支持 10GB 事务 | ||
|
||
####性能 | ||
|
||
* 提升 Scan 性能 | ||
* 动态扩展工作线程数量 | ||
* 弹性扩展只读副本 | ||
* 优化调度系统确保 QPS 不抖动 | ||
|
||
####易用性 | ||
|
||
* 重构日志内容 | ||
|
||
|
||
|
||
##Data Migration | ||
|
||
####功能 | ||
|
||
* 完善前向检查 | ||
* 可视化管理同步规则 | ||
* 可视化管理同步任务 | ||
|
||
####易用性 | ||
|
||
* Ctrl 工具集成数据一致性校验功能 | ||
* Ctrl 工具输出任务详细信息 | ||
* 重构日志格式及内容 | ||
|
||
####高可用 | ||
|
||
* 支持服务高可用 | ||
|
||
##TiDB Toolkit | ||
|
||
####功能 | ||
|
||
* Loader 集成到 TiDB | ||
* TiDB Lightning 集成到 TiDB | ||
|
||
####性能 | ||
|
||
* TiDB Lightning 支持并行导入 | ||
* TiDB Lightning 优化导入回放路径 | ||
|
||
|
||
|
||
# TiDB 未来规划 | ||
|
||
## TiDB | ||
|
||
- [ ] 优化器 | ||
- [ ] 统计信息优化 | ||
- [ ] Multi-Column Statistics | ||
- [ ] Cascades Planner | ||
- [ ] Plan Management | ||
- [ ] SQL Tuning Advisor | ||
- [ ] Robust Access Path Selection:增加启发式规则,提升 OLTP 场景中索引选择正确率 | ||
- [ ] Adaptive Query Optimization | ||
- [ ] 执行引擎 | ||
- [ ] 算子并行化 | ||
- [ ] 内存控制 | ||
- [ ] 并发控制 | ||
- [ ] Shuffle 算子 | ||
- [ ] Vectorized 表达式计算 | ||
- [ ] UDF | ||
- [ ] SQL 功能 | ||
- [ ] 支持 View | ||
- [ ] 支持窗口函数 | ||
- [ ] 支持 Common Table Expression | ||
- [ ] 支持 Hash 分区表 | ||
- [ ] 支持 utf8_general_ci collation | ||
- [ ] DDL 改进 | ||
- [ ] 支持 Table Lock | ||
- [ ] 支持 Change column type | ||
- [ ] 支持单条语句中多个 DDL 操作 | ||
- [ ] 支持不可见索引(invisible index) | ||
- [ ] 支持插件系统 | ||
- [ ] 支持白名单插件 | ||
- [ ] 支持审计日志插件 | ||
- [ ] 支持 RBAC 插件 | ||
- [ ] 支持诊断插件 | ||
- [ ] 支持 Query Tracing | ||
- [ ] 支持行列混合存储引擎 | ||
- [ ] 支持 New Storage Row Format,提升性能并减小内存占用 | ||
- [ ] RowID 实现非整数类型 | ||
- [ ] 事务 | ||
- [ ] 减少读写冲突 | ||
- [ ] 优化事务调度机制 | ||
- [ ] 改善模型,降低延迟 | ||
- [ ] 支持最小事务 (like the mini-transaction of InnoDB) | ||
|
||
## TiKV | ||
|
||
+ Raft | ||
- [x] Region Merge - 合并小的 Region 以减少开销 | ||
- [x] Local Read Thread - 把读请求放在一个单独的线程处理 | ||
- [x] 批量 Region Split - 加速大的 Region 的分裂 | ||
- [x] Raft Learner - 支持 Raft learner 使得成员变更过程更加平滑 | ||
- [x] Raft Pre-voter - 支持 Raft Pre-vote 避免网络隔离带来不必要的选举 | ||
- [ ] Joint Consensus - 安全地进行多个成员变更 | ||
- [ ] 多线程 Raftstore - 在多个线程处理不同 Region 的 Raft 逻辑 | ||
- [ ] 多线程 Apply Pool - 在多个线程执行不同 Region 已经提交了的命令 | ||
+ Engine | ||
- [ ] Titan - 把大的 key-values 从 LSM-Tree 中分离出来 | ||
- [ ] 可拔插的 Engine 接口 - 简化接口逻辑并且提供可扩展性 | ||
+ Storage | ||
- [ ] 在 scheduler 里做流控提前避免 write stall | ||
+ Transaction | ||
- [x] 优化事务冲突 | ||
- [ ] 分布式 GC - 把 MVCC 垃圾回收的逻辑分布到 TiKV 控制 | ||
+ Coprocessor | ||
- [x] Streaming - 把大的数据集切成小块返回以减少内存消耗 | ||
- [ ] Chunk Execution - 按 chunk 的方式来处理数据以提高性能 | ||
- [ ] 请求跟踪 - 提供单个请求执行的详细信息 | ||
+ Tools | ||
- [x] TiKV Importer - 通过直接导入 SST 文件的方式加速数据导入 | ||
+ Client | ||
- [ ] 提供 Rust 版本的 TiKV client | ||
- [ ] gRPC 消息批量化 - 减少消息交互的开销 | ||
|
||
## PD | ||
|
||
- [x] Namespace 完善 | ||
- [x] 不同 Namespace 或者 Table 配置不同的副本策略 | ||
- [x] Table Region 分散调度 | ||
- [x] 调度支持优先级,更加可控 | ||
- [ ] 使用机器学习优化调度 | ||
- [ ] 优化 Region 元信息存储 - 把元信息存储在一个独立的存储引擎里 | ||
|
||
## TiSpark | ||
|
||
- [ ] Limit/Order 下推 | ||
- [x] DAG 接口接入(废除 Select 接口) | ||
- [ ] Index Join 和并行 merge join | ||
- [ ] Data Federation(桥接其他数据源,最好能和社区同步,这个接进来可以比较好扩展 Usecase,如果再做一个 InputFormat 适配就可以接 Hive 和 Presto 这些 Hadoop 上的数仓) | ||
|
||
## Tools | ||
|
||
- [x] 集群部署工具 | ||
- [X] 高性能数据导入工具(lightning) | ||
- [X] 集群备份和恢复工具(包括全量+增量备份,mydumper + drainer/reparo) | ||
- [X] 改进 TiDB-Binlog 架构 | ||
- [ ] 数据在线迁移工具(Syncer 升级版) | ||
- [ ] 集群诊断和分析工具 | ||
### TiDB | ||
|
||
#### 功能 | ||
|
||
- Common Table Expression | ||
- Invisible Index | ||
- 支持修改列类型 | ||
- 分区表支持二级分区 | ||
- Table Partition 与 普通表相互转换 | ||
- 视图支持写入及更新 | ||
- Mutil-Schema Change | ||
- 按 Table 配置副本数及分布策略 | ||
- 精细的 QoS 控制 | ||
- 闪回到任意时间点 | ||
|
||
#### 性能 | ||
|
||
- Coprocessor Cache | ||
- 新 Row 存储格式 | ||
- Distributed Execution Engine | ||
|
||
#### 易用性 | ||
|
||
- 全链路 Trace 工具 | ||
- Help 信息补齐 | ||
|
||
#### 安全 | ||
|
||
* 列级别权限 | ||
|
||
#### 高可靠用 | ||
|
||
- Binlog 支持数据高可靠 | ||
|
||
### TiKV | ||
|
||
#### 功能 | ||
|
||
- 增量物理备份恢复 | ||
- 闪回到任意时间点 | ||
- 分级存储 | ||
- 精细的 QoS 控制 | ||
- 按 Region 配置副本数及分布策 | ||
|
||
#### 性能 | ||
|
||
- 提升物理备份性能 | ||
- 提升增量物理备份性能 | ||
- 1PC | ||
- 支持 Storage Class Memory 硬件 | ||
- 新 Raft 引擎 | ||
|
||
|
||
|
||
## Data Migration | ||
|
||
#### 功能 | ||
|
||
- 下游支持 Oracle | ||
|
||
#### 高可靠 | ||
|
||
- 支持数据高可靠 |