TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。

总体架构分析

图片

如上所示,TiDB的总体架构图,从控制面以及数据面的角度看,由三大集群系统构成,数据面包括TiDB Server cluster计算集群系统以及Stroage cluster存储集群系统,其中,TiDB Server cluster计算集群系统提供数据库API接口服务、协议解析服务以及SQL解析服务。Stroage cluster存储集群系统提供数据存储服务、事务隔离级别的数据读写服务。控制面包括PD cluster管理集群系统,负责管理数据面的集群系统,提供数据库的元数据信息同步服务、服务节点的可用性服务、计算资源的调度服务以及分布式事务的支持服务,Stroage cluster存储集群系统的存储引擎符合CAP理论原则,提供最终一致性服务、可用性服务以及分区容错性服务

计算架构分析

图片

如上所示,TiDB数据库的数据面采用存算分离的架构设计,用户的 SQL 请求会直接或者通过Load Balancer发送到TiDB Server cluster计算集群系统,TiDB Server cluster计算集群系统会解析MySQL Protocol Packet,获取请求内容,对 SQL 进行语法解析和语义分析,制定和优化查询计划,执行查询计划并获取和处理数据。数据全部存储在Stroage cluster存储集群系统中,所以在这个过程中TiDB Server cluster计算集群系统需要和Stroage cluster存储集群系统交互,获取数据。最后TiDB Server cluster计算集群系统需要将查询结果返回给用户

存储架构分析

图片

如上所示,TiDB的Stroage cluster存储集群系统的存储引擎中,每个region包括三个副本,一个主副本负责读写服务,其余两个副本负责数据的备份,使用开源数据库RocksDB提供数据的持久化存储服务,支持数据持久化存储到磁盘中,使用Raft算法的一致性机制,复制多个数据副本到其他RocksDB实例中持久化存储

金融行业应用场景

金融行业对数据一致性及高可靠、系统高可用、可扩展性、容灾要求较高。传统的解决方案的资源利用率低,维护成本高。TiDB 采用多副本 + Multi-Raft 协议的方式将数据调度到不同的机房、机架、机器,确保系统的 RTO <= 30s 及 RPO = 0

海量数据及高并发的OLTP应用场景

传统的单机数据库无法满足因数据爆炸性的增长对数据库的容量要求。TiDB 是一种性价比高的解决方案,采用计算、存储分离的架构,可对计算、存储分别进行扩缩容,计算最大支持 512 节点,每个节点最大支持 1000 并发,集群容量最大支持 PB 级别

实时HTAP应用场景

TiDB 适用于需要实时处理的大规模数据和高并发场景。TiDB 在 4.0 版本中引入列存储引擎 TiFlash,结合行存储引擎 TiKV 构建真正的 HTAP 数据库,在增加少量存储成本的情况下,可以在同一个系统中做联机交易处理、实时数据分析,极大地节省企业的成本

数据汇聚、二次加工处理应用场景

TiDB 适用于将企业分散在各个系统的数据汇聚在同一个系统,并进行二次加工处理生成 T+0 或 T+1 的报表。与 Hadoop 相比,TiDB 要简单得多,业务通过 ETL 工具或者 TiDB 的同步工具将数据同步到 TiDB,在 TiDB 中可通过 SQL 直接生成报表

阅读全文
AI总结
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐