TiDB从0到1学习笔记(精华篇)

news2024/9/24 0:50:09
alt

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

整体架构

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

TiDB v1

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

alt

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

TiDB v2

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

alt

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

TiDB v3

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

alt

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

TiDB v4

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

alt

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

alt

图为 TiCDC 架构图

alt

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

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

TiDB v6

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

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

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

alt

目前,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)。

alt

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

pr.png
pr.png

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们

//表妹和她的TiDBer们

🌻 往期精彩 ▼

  • TiDB排行再升5位;盘点平凯数据库的发明专利(2024上半年公布)
  • 国产基础软件“出海”标杆炼成记
  • 敢于公布BUG的国产数据库才是好数据库
  • PingCAP 再度入选“中国独角兽企业”,数据库领域的先锋力量
  • 星辰资讯:TiDB v8.1.0 发版!稳!
  • 快讯!TiDB v8 发版!超硬核 v8 引擎!
  • TiDB v7.5.3 发版,听说升级后又可以躺平两年
  • TiDB v7.5.0 LTS 升级必读 | 新特性补充说明
  • 使用 HyBench 测试 TiDB

-- / END / --

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2126625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

005——栈

目录 栈 栈的定义 栈的性质 栈的应用场景 存储结构: Ⅰ)采用顺序存储结构实现——顺序栈 Ⅱ)采用链式存储结构实现——链栈-->基于单链表(带头结点) 栈 栈的定义 之允许在一端进行插入和删除的线性表 栈的…

安卓获取apk的公钥,用于申请app备案等

要申请app的icp备案等场景,需要app的 证书MD5指纹和公钥,示例如下: 步骤1:使用keytool从APK中提取证书 1. 打开命令行,cd 到你的apk目录,如:app/release 2. 解压APK文件: unzip yo…

一维稳态与非稳态导热的详细分析

目录 引言 一维稳态导热 应用实例:单层平壁导热 数值求解: 一维非稳态导热 应用实例:单层平壁的非稳态导热 温度变化阶段 表格总结: 引言 热传导(Heat Conduction)是热量在物体内部通过微观粒子的相…

批量从word切割说话人!!对于转录后的文本进行纯数据清洗切割和区分说话人-批量从word切割说话人

battle AI的全过程 文章目录 初步切割同时基于文本中提取的动词变化类别做切割以及发言人变化路径设置 迁移模型到GPUbert输出空白debugCPU能运行的语义相似度代码GPU能用了但是没有加切分规则的代码 根据动词变化切分把发言人替换老师和学生的代码读取txt的代码先区分说话人&a…

Qt常用控件——QLCDNumber

文章目录 QLCDNumber核心属性倒计时小程序倒计时小程序相关问题 QLCDNumber核心属性 QLCDNumber是专门用来显示数字的控件,类似于这样: 属性说明intValue获取的数字值(int).value获取的数字值(double)和intValue是联动的例如value设为1.5,in…

黑马点评22——最佳实践-批处理优化

文章目录 pipeline和mset集群模式下的批处理问题 pipeline和mset pipeline就是大数据量的导入,pipeline是在单机模式下的。 redis的处理耗时相比较网络传输的耗时其实是比较低的。 所以我们最好采用批处理, 集群模式下的批处理问题 在集群环境…

生动灵活,MegActor重磅升级!旷视科技发布MegActor-Σ:首个基于DiT的人像动画方法!

文章链接:https://arxiv.org/pdf/2408.14975 项目链接:https://megactor-ops.github.io/ 亮点直击 一种新颖的混合模态扩散Transformer(DiT),能够有效整合音频和视觉控制信号。相较于之前基于UNet的方法,这…

qsort的理解--加强对指针的理解

前言:前面我们学习指针变量,数组指针变量,函数指针变量;这些实际上都是变量,实质上是在内存中开辟一块空间;而这些变量存储的都是地址。还有指针数组,函数指针数组,这指的是把多个地…

AIGC大模型扩图:Sanster/IOPaint(4)

AIGC大模型扩图:Sanster/IOPaint(4) 用大模型实现AI扩大一张图的周边区域,变得更大,当然必须契合原图,和原图浑然一体。 1、这次模型换用 Sanster/PowerPaint-V1-stable-diffusion-inpainting 启动&#xf…

文件对比工具--BeyondCompare

💖简介 Beyond Compare 是一款功能强大的文件和文件夹比较工具,由Scooter Software开发。它可以帮助用户轻松地比较文件和文件夹的差异,并且可以合并变化、同步文件以及备份重要数据 💻环境 windows 📖版本 Beyon…

RocketMQ安装与使用

什么是消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Prod…

OpenCV高阶操作

在图像处理与计算机视觉领域,OpenCV(Open Source Computer Vision Library)无疑是最为强大且广泛使用的工具之一。从基础的图像读取、 1.图片的上下,采样 下采样(Downsampling) 下采样通常用于减小图像的…

日志相关知识

1.作用 a.为了代替System.out.println(),可以定义格式,重定向文件等。 b.可以存档,便于追踪问题。 c.可以按级别分类,便于打开或关闭某些级别。 d.可以根据配置文件调整日志,无需修改代码。 …

如何逆转Instagram账号流量减少?实用技巧分享

Instagram作为全球十大社媒之一,不仅是个人分享生活的平台,还是跨境卖家进行宣传推广和客户开发的关键工具。在运营Instagram的过程中,稍有不慎就容易出现账号被限流的情况,对于账号状态和运营工作的进行都十分不利。 一、如何判断…

图片预览、拖拽和缩放组件分享

业务场景 项目中不需要点击小图然后展示大图,类似于elementui中的Image图片组件。适用于直接展示大图,支持拖拽和缩放的场景,比如:用户需要比对两种数据的图片展示,左右两侧进行展示。 效果图 使用方式 在components…

宏任务和微任务+超全面试真题

概念 微任务和宏任务是在异步编程中经常使用的概念,用于管理任务的执行顺序和优先级。 宏任务:setTimeout, setInterval,I/O 操作和 UI 渲染等。微任务: Promise 回调、async/await等 微任务通常比宏任务具有更高的优先级。 执…

S7-1500替代S7-300全解析系列

硬件篇上 01 概述工控人加入PLC工业自动化精英社群 2022年十月初的时候,想必工控圈的小伙伴们都被S7-300系列即将于2023年10月1日退市的消息刷屏了吧?倒退到2020年的10月1日,同样伴随我们多年的ET200S系列也已经悄无声息地退市了。在感叹经…

GEE 将本地 GeoJSON 文件上传到谷歌资产

在地理信息系统(GIS)领域,Google Earth Engine(GEE)是一个强大的平台,它允许用户处理和分析大规模地理空间数据。本文将介绍如何使用 Python 脚本批量上传本地 GeoJSON 文件到 GEE 资产存储,这对…

Qt (16)【Qt 事件 —— Qt 事件简介 | 如何重写相关的 Event 函数】

阅读导航 引言一、事件介绍二、如何重写相关的 Event 函数1. 事件的处理简介2. 示例重写鼠标相关的 Event 函数(1)新建Qt项目,设计UI文件(2)新添加MyLabel类(3)重写enterEvent()方法和leaveEven…

分享一个爬虫数据挖掘 农村产权交易数据可视化平台 数据分析大数据 Java、python双版(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…