国产分布式DB中的王者出现

课程名称:课程版本(101/201/301)+ Tidb发展简史

学习时长:10 mins

课程收获:

我们处在一个最好的时代,有ZY高层的政策支持,未来10年国产数据库将得到空前的发展。 DB领域有位大神说:分布式数据库一定是未来,HTAP 是最好的方向,云原生是最好的舞台,然而这些优点 TiDB 全都有。

接下来让我们从tidb的架构上读懂这些优点:
image

受Google Spanner启发而开发的Tidb Database可以做到

  1. 存储节点、计算节点的无限扩展(且做到存储节点和计算节点的分开扩展)、弹性伸缩。
  2. 兼容mysql的语法和协议。
  3. 对应用透明的分片策略,做到对应用的无感知。
  4. 强一致的分布式事务。
    image

Tidb是无状态的SQL引擎,负责计算任务,可以多实例启动
Tikv是分布式存储引擎,使用raft算法来进行副本之间的复制(数据同步),保障高可用
PD 负责元数据的请求及tikv 中数据的调度(分配TSO号、数据位置路由等)

Tidb具备无限横向扩展能力。

image
Tidb也具备非常好的中台能力,在中台场景中通过工具syncer可以将外部数据向Tidb cluster进行汇总。

image
Tidb可以非常方便的从各类mysql DB中同步数据(协议兼容mysql)
不需要分片,对应用透明
数据的汇总是实时的,可以将后台和中台合二为一
image
引入tispark 分布式计算框架,平滑接入大数据生态,将单点计算能力扩展为多点的并行计算

image
Tispark 分布式计算框架有点:更快、更稳定;脚本、python、R语言、Apache Zeppelin等都可以轻松直接的操作Tidb cluster

image
Tispark缺点有二:

  1. 并发度低
  2. 消耗大量的计算资源

VS tidb进行OLAP时
使用Tidb更适合在高并发的同时进行中等规模的查询,对于复杂计算消耗的资源更少,维护简单、方便

image
在引入spark的同时优化器从Basic optimizer 到RBO+CBO到未来要支持的Cascades optimizer
执行器从火山模型到批量执行再到向量化执行,更好地并发控制

image
在数据分析中列存VS行存会消耗更小的I/O资源

image

通过raft learner 向tiflash同步数据;读取时通过raft index和MVCC实现了强一致性读。
通过打标签方式实现了物理隔离,使OLAP 和 OLTP的业务不会相互影响

image

Tiflash可以接收来自tidb和tispark的读请求,写请求通过raft learner方式同步实现

image
从tikv中通过Raft Learner同步到Tiflash中的数据最终会以列存的方式保存下来
image
当一条sql进来,tidb会通过智能算法将不同的请求发送到不同的存储引擎中(tikv进行索引扫描;tiflash进行某列或几列的扫描)

image
Tidb中既有行存也有列存(是真正意义上的HTAP数据库),能自动的进行 行/列转换(不需要 ETL工具进行数据转换)。在系统运行 OLTP 业务时,也可以方便的进行报表OLAP查询。

image
Tidb整体生态

  1. DM: 上游数据同步工具
  2. Ticdc:将数据同步到下游的工具
  3. Lightning :数据全量导入工具
  4. BR:数据全量/增量数据备份/恢复工具
  5. dashboard+prometheus:数据实时采集监控工具
  6. tiup: 快速部署工具
  7. Operator: 云端部署工具(例如现在最流行的K8s端部署)

image

Follower Read 功能是指在强一致性读的前提下使用 Region 的 follower 副本来承载数据读取的任务,从而提升 TiDB 集群的吞吐能力并降低 leader 负载。Follower Read 包含一系列将 TiKV 读取负载从 Region 的 leader 副本上 offload 到 follower 副本的负载均衡机制。TiKV 的 Follower Read 可以保证数据读取的一致性,可以为用户提供强一致的数据读取能力。

Follower Read是分布式DB领域一项重大的技术突破,领先于国内市场同类产品,属硬实力。

欢迎关注我的公众号,大家一起探讨、交流,一起玩转Tidb
image

1 Like