TiDB Architecture and Practice

TiDB Architecture and Practice

1. TC BD TiDB Architecture and Practice ( 会 Shen Li 大 VP of Engineering, PingCAP 术 技 据 数 大 国 8中

2. TC About Me BD ( ● Shen Li (申砾) 会 ● VP of Engineering @ PingCAP 大 ● Infrastructure Engineer / Open-source advocator 术 ● Netease/360/PingCAP 技 ● Tech lead of TiDB 据 ● shenli@pingcap.com 数 大 国 8中

3. TC About PingCAP BD ( ● Since 2015 会 ● Office @ Beijing, Shanghai, Guangzhou, Hangzhou, Chengdu, Shenzhen, 大 Silicon Valley 术 ● Open-Source infrastructure software 技 ● TiDB, TiKV, TiSpark, TiDB-Operator 据 数 大 国 8中

4. TC Agenda BD ( ● Introduction 会 ● Architecture 大 ● Evolution 术 ● TiDB in Real World 技 据 数 大 国 8中

5. TC BD ( 会 Part I - Introduction 大 术 技 据 数 大 国 8中

6. TC Why we want to build a “New”SQL Database BD ( ● From the beginning 会 ● RDBMS RDBMS NoSQL NewSQL 大 ● How to scale? 术 ○ Middleware 1970s 2010 2015 Present ○ NoSQL 技 ● NewSQL: F1 & Spanner 据 MySQL Redis Google 数 PostgreSQL HBase Spanner Oracle Cassandra Google F1 大 DB2... MongoDB TiDB 国 8中

7. TC What’s TiDB? BD ( TiDB - A Distributed, Consistent, Scalable, SQL Database that supports the best 会 features of both traditional RDBMS and NoSQL. 大 ● Build from scratch 术 ● Key features: 技 ○ Horizontal Scalability 据 ○ High Availability ○ ACID Transaction 数 大 ○ SQL at Scale 国 8中

8. TC Open Source BD ( ● From first-day 会 ● Active community 大 ● 300+ contributors 术 技 One of the most popular 据 Open Source Distributed Relational Database in 数 大 the world! 国 8中 PingCAP.com

9. TC BD ( 会 Part II - Architecture 大 术 技 据 数 大 国 8中

10. TC TiDB Architecture BD PD PD ( TSO/Data location Data location PD 会 PD Cluster 大 Metadata 术 Spark Driver 技 TiDB MySQL Clients TiKV TiKV Job 据 TiDB DistSQL API DistSQL API Worker 数 TiDB TiKV TiKV Syncer Worker 大 TiDB TiKV TiKV Worker ... 国 TiDB ... ... Spark Cluster 8中 TiDB Cluster TiKV Cluster (Storage) TiSpark

11. TC The SQL Layer BD ( ● Stateless SQL layer 会 Logical Optimized SQL AST ○ Client can connect to any existing Plan Logical Plan tidb-server instance 大 ○ TiDB *will not* re-shuffle the data Statistics Cost Model 术 across different tidb-servers 技 Selected ● Full-featured SQL Layer tidb-server Physical Plan ○ Speak MySQL wire protocol 据 ■ Why not reusing MySQL? ○ ○ Homemade parser & lexer RBO & CBO 数 TiKV TiKV TiKV TiKV TiKV TiKV 大 ○ Secondary index support TiKV Cluster 国 ○ DML & DDL 8中 PingCAP.com

12. TC The Storage Layer (1/2) BD Client ( ● The storage layer for TiDB 会 ● Distributed Key-Value storage engine Dataflow 大 ○ Support ACID Transactions Metadata ○ Replicate logs by Raft 术 ○ Range partitioning 技 ■ Split / merge dynamically TiKV TiKV TiKV TiKV 据 ○ SQL operators pushdown TiKV TiKV TiKV TiKV 数 大 PD PD TiKV TiKV TiKV TiKV PD 国 Placement Driver TiKV Nodes 8中 PingCAP.com

13. TC The Storage Layer (2/2) BD ( Client Placement 会 Driver RPC RPC RPC RPC 大 PD 1 术 TiKV node 1 TiKV node 2 TiKV node 3 TiKV node 4 PD 2 技 Store 1 Store 2 Store 3 Store 4 PD 3 据 Region 1 Region 1 Region 1 Region 1 Region 3 Region 2 数 Region 5 Region 2 大 Region 5 Region 4 Region 3 Region 5 国 Region 4 Region 3 Region 4 Raft Group 8中 PingCAP.com

14. TC Scheduling BD ( 会 大 术 技 据 数 大 国 8中 PingCAP.com

15. TC Ecosystem Tools BD ( 会 大 术 技 据 数 大 国 8中

16. TC BD ( 会 Part III - Evolution 大 术 技 据 数 大 国 8中

17. TC HTAP BD ( ● Hybrid transactional/analytical platform 会 ● Real-time Data 大 ● No more ETL! 术 技 ● Cascades Optimizer 据 ● 数 Vectorized+Parallel Execution Engine 大 ● Row-Column mixed Storage Engine 国 ● Isolation of resources 8中

18. TC Cloud Native BD ( TiDB Operator 会 TiDB Controller Manager TiDB Scheduler 大 TiDB TiDB Cluster Controller 术 Scheduler 技 TiDB PD TiKV Kube Controller Controller Controller Scheduler 据 数 Kubernetes Core 大 Scheduler Controller Manager API Server 国 8中

19. TC BD ( 会 Part IV - TiDB in Real World 大 术 技 据 数 大 国 8中

20. TC Say goodbye to sharding BD ( 会 大 术 技 据 数 大 国 8中

21. TC Real-time Data Platform BD ( ● Real-time 会 ● Data Convergence Platform 大 ● Middle-End System 术 技 据 数 大 国 8中 PingCAP.com

22. TC BD Geo Replication ( 会 大 术 技 据 数 大 国 8中

23. TC BD Q&A ( https://github.com/pingcap/tidb 会 https://github.com/tikv/tikv 大 Thank You ! https://github.com/pingcap/pd 术 技 https://github.com/pingcap/tispark 据 https://github.com/pingcap/tidb-oper ator 数 https://github.com/pingcap/docs 大 国 https://github.com/pingcap/docs-cn 8中 PingCAP.com