首页 > 其他分享 >几张图带你了解TiDB架构演进

几张图带你了解TiDB架构演进

时间:2024-09-14 16:54:19浏览次数:10  
标签:架构 演进 PingCAP TiUP TiKV TiDB 数据库 图带

作者: ShawnYan

历时四个月,恭喜赵老师的《TiDB从0到1》 系列文章顺利完结,小编再次梳理一遍文稿,并附注解分享给大家。


整体架构

从 TiDB 1.0 到 8.0,TiDB 的体系结构一直在不断演进。接下来让我们一起看看整体架构的变化。



TiDB v1

TiDB v1,主核心框架已定,TiDB 由 TiDB Server, TiKV Server, PD Server 三大核心组件构成。

几张图带你了解TiDB架构演进_tidb

更多参考:星辰考古:TiDB v1.0 再回首



TiDB v2

TiDB v2,整体架构升级,引入 TiSpark,解决用户复杂的 OLAP 需求。

几张图带你了解TiDB架构演进_tidb_02

更多参考:星辰考古:TiDB v2.x 回忆杀



TiDB v3

TiDB v3,整体架构“焕新”,初见 TiFlash。

几张图带你了解TiDB架构演进_https_03

更多参考:星辰考古:TiDB v3.x 忆水木



TiDB v4

TiDB v4,TiFlash 重要程度提升,下图为 TiDB HTAP 形态架构。

几张图带你了解TiDB架构演进_https_04

TiCDC 从 v4.0.6 起成为正式功能,可用于生产环境。

几张图带你了解TiDB架构演进_https_05

图为 TiCDC 架构图

几张图带你了解TiDB架构演进_tiflash_06

图为 TiCDC 集群及节点内部组件的设计图

更多参考:星辰考古:TiDB v4.0 进化前夜


TiDB v6

从 TiDB 6.0.0 开始,版本的生命维护周期重大调整,TiDB 提供两个版本系列:

  • 长期支持版本(LTS)约每六个月发布一次。
  • 开发里程碑版本(DMR)约每两个月发布一次。

在 TiDB v6.1.0 LTS 的文档中,TiDB 整体架构图再次更新,去 TiSpark,正式迎来 TiFlash。

几张图带你了解TiDB架构演进_tidb_07

目前,TiDB 已来到 v8 版本,整体架构趋于稳定,与 v6 相同。



VLDB 论文

在之前的文章中提及:

PingCAP 团队的论文《TiDB: A Raft-based HTAP Database》入选 VLDB 2020 ,成为业界第一篇 Real-time HTAP 分布式数据库工业实现的论文。

PingCAP 的目标是构建一个单一、实时事实来源的数据库,以便应用程序和其上的业务能够适应不确定性。在构建 TiDB 的过程中,其受益于 Raft 和 Spanner 等数据库和分布式系统研究。提出将 TiDB 作为混合事务和分析处理 (HTAP) 数据库,这是一种适用于 OLTP 和 OLAP 应用程序的“一刀切”解决方案。并将该方案以论文的形式回馈给学术界。

在今年刚闭幕的 VLDB 2024 会议中,TiDB 携两篇论文、一个 Demo Paper 亮相。

论文下载地址:https://asktug.com/t/topic/1031551

VLDB 是数据库领域的顶级国际会议,旨在为数据管理、可扩展数据科学、数据库研究者、供应商、从业者、应用开发者和用户提供交流平台。2024 年的 VLDB 会议涵盖了数据管理、数据库架构、图形数据管理、数据隐私与安全、数据挖掘、机器学习、人工智能和数据库系统研究等领域的问题——这些都是 21 世纪新兴应用的基本技术基石。



TiKV & RocksDB

RocksDB 是由 Facebook 基于 LevelDB 开发的一款提供键值存储与读写功能的 LSM-tree 架构引擎。用户写入的键值对会先写入磁盘上的 WAL (Write Ahead Log),然后再写入内存中的跳表(SkipList,这部分结构又被称作 MemTable)。LSM-tree 引擎由于将用户的随机修改(插入)转化为了对 WAL 文件的顺序写,因此具有比 B 树类存储引擎更高的写吞吐。

RocksDB 作为 TiKV 的核心存储引擎,用于存储 Raft 日志以及用户数据。每个 TiKV 实例中有两个 RocksDB 实例,一个用于存储 Raft 日志(通常被称为 raftdb),另一个用于存储用户数据以及 MVCC 信息(通常被称为 kvdb)。

几张图带你了解TiDB架构演进_https_08

得益于 RocksDB 优秀的产品和活跃的社区,TiKV 的产品力也在不断增强,同时 PingCAP 也在积极回馈 RocksDB 社区,下图为 RocksDB 贡献榜单,PingCAP 贡献的 PR 数排位第三。

几张图带你了解TiDB架构演进_tidb_09



TiUP

TiUP 当前版本为 1.16.0

关于 TiUP 的内容,之前介绍过,具体参阅:

  • TiUP v1.16 发版,支持 PD 微服务
  • TiDB 7.x 源码编译之 TiUP 篇
  • TiUP:TiDBAer 必备利器

这里补充几点。

从 TiDB v8.0.0 开始:

  • TiProxy 成为正式功能,并集成到 TiUP 组件中。
  • 由 TiUP 默认部署的 Prometheus 版本升级到 2.49.1
  • 由 TiUP 默认部署的 Grafana 版本升级到 7.5.17

关于 TiProxy 的内容,可参阅:

  • 社区声音:恭喜 TiProxy 组件 GA!
  • TiDB 7.x 源码编译之 TiProxy 篇

集群配置

TiDB 集群中包含若干组件,每个组件都有各自配置项,不论是日常调优还是版本升级,都需要确认配置项的变化。

在 TiDB 社区中,有两个实用工具,推荐给大家。

  • tidb_config_diff: https://tidb.net/blog/2ad42384
  • TiDBA: https://tidb.net/blog/299f0bdc

感谢提供工具的大佬们。



感谢

值此教师节之际,特此感谢 PingCAP Education 的老师们,是 PE 带我们了解 TiDB、熟悉 TiDB、玩转 TiDB。

一并感谢 TiDB 社区,让 TiDBer 可以在云上、线下有一个良好的沟通交流平台。

相信 TiDB 社区可以变成、保持“别人家的”理想开源社区,互助、有爱、有追求。

感谢 @表妹和她的TiDBer们


标签:架构,演进,PingCAP,TiUP,TiKV,TiDB,数据库,图带
From: https://blog.51cto.com/tidb/12017924

相关文章

  • How to Add a Built-in Function to TiDB Using a Cursor in 20 Minutes
    作者:ngautInthistutorial,we’llwalkyouthroughthestepstoaddaflexiblebuilt-infunctiontoTiDBthatleveragesLLMtoprocessdata.We’llusetheAI_PROCESSfunctionasanexample,whichtakestwoparameters:adatastringandatask_description......
  • 从数据仓库到数据飞轮:数据技术演进的探索与思考
    引言在当今的数字化浪潮中,数据被视为一种极具价值的资源,类似于传统工业时代的石油,它为企业挖掘出深邃的洞察力,并成为决策过程中不可或缺的基石。随着技术的不断演进,数据管理的策略与架构也经历了显著的变革,从早期的数据仓库模式,逐步迈向集成化的数据中台架构,并朝着更加动态灵活的数......
  • 2024年9月中国数据库流行度排行榜:TiDB重回前三,GoldenDB问鼎前五
    9月墨天轮数据社区的中国数据库流行度排行榜如约而至。除了冠亚两位,排名第三至第五的数据库产品均经历了位次的变动。榜单之上,稳健的老牌强者、崛起的新兴产品、以及那些在背后默默积蓄力量、准备厚积薄发的竞争者,共同展现了中国数据库行业的多样性和活力。墨天轮数据社区也持续致......
  • 探索职业锚的演进过程
    职业生涯是一个人一生中所有与工作相联系的行为与活动,以及相关的态度、价值观、愿望等的连续性经历的过程。职业锚理论在现代人力资源管理中的运用,是实现个人价值与组织目标有机统一的一种有效管理方式。对个人而言,职业锚是个人职业选择的依据,并为人的全部职业生涯设定了发展方......
  • 安装部署tidb中的安装tidb-4000组件失败相关问题(环境为统信20操作系统
    1.安装时发现安装时间很久,停止之后报错,查看日志发现报错如下[2024/09/0914:08:52.509+08:00][FATAL][terror.go:309]["unexpectederror"][error="othererror:[components/tidb_query_datatype/src/expr/ctx.rs:89]:evaluationfailed:unknownorincorrecttimezon......
  • echarts 加一个圆环图带阴影
    这里面一共三个圆,最外层是一个半透明的varchartDomymr=document.getElementById('container-ymr');varmyChartymr=echarts.init(chartDomymr);varoptionymr;varoptionymr_data=[{value:332,name:'类型A',color:newecha......
  • Apache RocketMQ 批处理模型演进之路
    本文收录于ApacheRocketMQ中文社区,更多RocketMQ文章和答疑请访问:https://rocketmq-learning.com/RocketMQ的目标,是致力于打造一个消息、事件、流一体的超融合处理平台。这意味着它需要满足各个场景下各式各样的要求,而批量处理则是流计算领域对于极致吞吐量要求的经典解法,这当......
  • CRM软件的演进:从传统到连接型CRM
    1、CRM定义与分类1.1CRM的定义CRM,英文CustomerRelationshipManagement的缩写,中文全称为客户关系管理。通常情况下,人们通常用CRM直接表达客户关系管理软件系统——一个以客户为中心的专门用于管理与客户关系的软件工具,以确保与客户在营销、销售、服务的每一环节上都能实现顺利......
  • Java中的服务拆分与合并:微服务架构的演进
    Java中的服务拆分与合并:微服务架构的演进大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!随着业务的不断扩展和用户数量的增加,传统的单体应用架构已经无法满足快速迭代和高并发的需求。微服务架构以其模块化和灵活性成为了现代应用架构的首选。在微服......
  • TiDB 究竟抖还是不抖?
    作者:田帅萌,TiDB社区北京地区组织者,布道师组委会成员,主要负责同程旅行TiDB、Redis、dts等技术栈。背景:作为一个TiDB老从业者,说实话在TiDBv4版本中确实存在一些性能抖动的情况。随着TiDB研发团队的不断迭代和优化,这些问题已经得到或正在得到有效的解决和改善。TiDB社区以......