From 3a3513a91379adc758a85d7409a973ec7b1c0929 Mon Sep 17 00:00:00 2001 From: lilin90 Date: Mon, 8 Oct 2018 16:32:34 +0800 Subject: [PATCH] roadmap: update TiDB roadmap Via: https://github.com/pingcap/docs-cn/pull/912 --- ROADMAP.md | 94 ++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 49 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 816d6a16acec7..d2c11854a884b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -12,72 +12,68 @@ This document defines the roadmap for TiDB development. + [ ] Optimizer - [x] Refactor Ranger - - [ ] Optimize the cost model + - [x] Optimize the cost model + - [ ] Cascades model planner - [ ] Join Reorder + [ ] Statistics - [x] Update statistics dynamically according to the query feedback - [x] Analyze table automatically - - [ ] Improve the accuracy of Row Count estimation -+ [ ] Executor + - [x] Improve the accuracy of Row Count estimation ++ [ ] Execution Engine - [ ] Push down the Projection operator to the Coprocessor - - [ ] Improve the performance of the HashJoin operator - - [ ] Parallel Operators + - [x] Improve the performance of the HashJoin operator + + [ ] Parallel Operators - [x] Projection - - [ ] Aggregation + - [x] Aggregation - [ ] Sort - [x] Compact Row Format to reduce memory usage - [ ] File Sort - [ ] View - [ ] Window Function - [ ] Common Table Expression -- [ ] Table Partition ++ [ ] Table Partition + - [x] Range Partition + - [ ] Hash Partition - [ ] Cluster Index -- [ ] Improve DDL - - [x] Speed up Add Index operation - - [ ] Parallel DDL +- [ ] New storage row format +- [ ] Query Tracing ++ [ ] Improve DDL + - [x] Speed up Add Index operation + - [x] Parallel DDL + - [ ] Support locking table + - [ ] Support modifying the column type + - [ ] Supoort modifying the primary key + - [ ] Support multiple DDL operations in a single statement - [ ] Support `utf8_general_ci` collation ## TiKV: -### Raft - -- [x] Region Merge - Merge small Regions together to reduce overhead -- [x] Local Read Thread - Process read requests in a local read thread -- [x] Split Region in Batch - Speed up Region split for large Regions -- [x] Raft Learner - Support Raft learner to smooth the configuration change process -- [x] Raft Pre-vote - Support Raft pre-vote to avoid unnecessary leader election on network isolation -- [ ] Joint Consensus - Change multi members safely. -- [ ] Multi-thread Raftstore - Process Region Raft logic in multiple threads -- [ ] Multi-thread apply pool - Apply Region Raft committed entries in multiple threads - -### Engine - -- [ ] Titan - Separate large key-values from LSM-Tree -- [ ] Pluggable Engine Interface - Clean up the engine wrapper code and provide more extendibility - -### Storage - -- [ ] Flow Control - Do flow control in scheduler to avoid write stall in advance - -### Transaction - -- [x] Optimize transaction conflicts -- [ ] Distributed GC - Distribute MVCC garbage collection control to TiKV - -### Coprocessor - -- [x] Streaming - Cut large data set into small chunks to optimize memory consumption -- [ ] Chunk Execution - Process data in chunk to improve performance -- [ ] Request Tracing - Provide per-request execution details - -### Tools - -- [x] TiKV Importer - Speed up data importing by SST file ingestion - -### Client - -- [ ] TiKV client (Rust crate) -- [ ] Batch gRPC Message - Reduce message overhead ++ Raft + - [x] Region Merge - Merge small Regions together to reduce overhead + - [x] Local Read Thread - Process read requests in a local read thread + - [x] Split Region in Batch - Speed up Region split for large Regions + - [x] Raft Learner - Support Raft learner to smooth the configuration change process + - [x] Raft Pre-vote - Support Raft pre-vote to avoid unnecessary leader election on network isolation + - [ ] Joint Consensus - Change multi members safely. + - [ ] Multi-thread Raftstore - Process Region Raft logic in multiple threads + - [ ] Multi-thread apply pool - Apply Region Raft committed entries in multiple threads ++ Engine + - [ ] Titan - Separate large key-values from LSM-Tree + - [ ] Pluggable Engine Interface - Clean up the engine wrapper code and provide more extendibility ++ Storage + - [ ] Flow Control - Do flow control in scheduler to avoid write stall in advance ++ Transaction + - [x] Optimize transaction conflicts + - [ ] Distributed GC - Distribute MVCC garbage collection control to TiKV ++ Coprocessor + - [x] Streaming - Cut large data set into small chunks to optimize memory consumption + - [ ] Chunk Execution - Process data in chunk to improve performance + - [ ] Request Tracing - Provide per-request execution details ++ Tools + - [x] TiKV Importer - Speed up data importing by SST file ingestion ++ Client + - [ ] TiKV client (Rust crate) + - [ ] Batch gRPC Message - Reduce message overhead ## PD: