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

历时四个月,恭喜赵老师的《TiDB从0到1》 系列文章顺利完结,小编再次梳理一遍文稿,并附注解分享给大家。
整体架构
从 TiDB 1.0 到 8.0,TiDB 的体系结构一直在不断演进。接下来让我们一起看看整体架构的变化。
TiDB v1
TiDB v1,主核心框架已定,TiDB 由 TiDB Server, TiKV, PD Server 构成。

更多参考:星辰考古:TiDB v1.0 再回首
TiDB v2
TiDB v2,整体架构升级,引入 TiSpark,解决用户复杂的 OLAP 需求。

更多参考:星辰考古:TiDB v2.x 回忆杀
TiDB v3
TiDB v3,整体架构“焕新”,初见 TiFlash。

更多参考:星辰考古:TiDB v3.x 忆水木
TiDB v4
TiDB v4,TiFlash 重要程度提升,下图为 TiDB HTAP 形态架构。

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

图为 TiCDC 架构图

图为 TiCDC 集群及节点内部组件的设计图
更多参考:星辰考古:TiDB v4.0 进化前夜
TiDB v6
从 TiDB 6.0.0 开始,版本的生命维护周期重大调整,TiDB 提供两个版本系列:
-
长期支持版本(LTS)约每六个月发布一次。 -
开发里程碑版本(DMR)约每两个月发布一次。
在 TiDB v6.1.0 LTS 的文档中,TiDB 整体架构图更新,去 TiSpark,正式迎来 TiFlash。

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

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

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 多平台发布
相关文章:

TiDB从0到1学习笔记(精华篇)
历时四个月,恭喜赵老师的《TiDB从0到1》 系列文章顺利完结,小编再次梳理一遍文稿,并附注解分享给大家。 整体架构 从 TiDB 1.0 到 8.0,TiDB 的体系结构一直在不断演进。接下来让我们一起看看整体架构的变化。 TiDB v1 TiDB v1&…...

NLP-新词挖掘
一、背景 网络领域的新词发现(挖掘)是一个非常重要的nlp课题。在处理文本对象时,非常关键的问题在于“切词”这个环节,几乎所有的后续结果都依赖第一步的切词。因此切词的准确性在很大程度上影响着后续的处理,切词结果…...

电脑录屏不求人,9月必备免费录屏软件推荐!苹果电脑可用!
在当今这个信息爆炸的时代,电脑录屏软件已经成为了我们日常工作和生活中不可或缺的工具。无论是制作教学视频、录制在线课程、游戏直播,还是创建产品演示,一个好的录屏软件都能帮助我们更高效地完成任务。市场上的录屏软件琳琅满目࿰…...

SpringMVC基于注解使用:国际化
01-国际化介绍 首先在bootstrap下载个页面 下载后把登录页面的代码粘上去 然后再登录页面代码上有些超链接需要再spring-mvc.xml里面配置下,登录页面才能正常显示 配置静态资源 国际化-根据浏览器语言国际化 现在是中文的情况,要改为英文 1.配置下属…...

工地安全帽检测系统源码分享
工地安全帽检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…...

如何为 DigitalOcean 静态路由操作员设置故障转移
静态路由操作器的主要目的是提供更大的灵活性,并在 Kubernetes 环境中控制网络流量。它使你能够根据应用程序的需求自定义路由配置,从而优化网络性能。该操作器作为 DaemonSet 部署,因此将在你的 DigitalOcean Managed Kubernetes 集群的每个…...

Ansible简单部署与使用
目录 环境安装Ansibleapt installmarkupsafe error 配置Ansible创建个人目录ansible.cfghosts 测试Ansibleping批量执行自定义命令 环境 Ubuntu 20.04 安装Ansible apt install sudo apt install ansiblemarkupsafe error 安装成功后,尝试运行ansibleÿ…...

Harmony Next charles 抓包指南
1.选择安装移动证书 代理信息如下 2.设置手机代理 手机与电脑连接同一网络,然后配置步骤 1 的代理 路径:设置-wlan-选择当前网络编辑-代理-保存 注意:手机配置代理后,目前会默认断开连接,需要手动再连接下 wifi 3.鸿…...

【HarmonyOS】Beta最新对外版本IDE下载和环境配置
【HarmonyOS】Beta最新对外版本IDE下载和环境配置 前言 目前华为HarmonyOS的系统版本已经从Develop Beta升级为Beta预览版,全面开放。再也不需要白名单限制,才能下载使用最新的IDE和预览最新的开放文档了。 IDE下载和安装 Beta IDE下载地址 1.根据你…...

2024年9月第2周AI资讯
阅读时间:3-4min 更新时间:2024.9.9-2024.9.13 目录 Groq推出多模态大模型LLaVA v1.5 7B AI通过重读问题可以变得更聪明 美国Weave公司发布Isaac多功能个人机器人 特斯拉机器人出租车将实现无线充电 Adobe视频编辑新时代 无人驾驶汽车超越人类 AI…...

【软件使用-MEGA】构建进化树报错
*_summary.txt报错: MEGA-CC 10.2.6 Molecular Evolutionary Genetics Analysis Build#: 10210527-x86_640% Reading distance matrix MEGA-CC has logged the following error:When 2024年09月13日 下午 01时32分49秒 下午Data …...

面试常见八股
JAVA篇 基础 1、自动拆箱和装箱 装箱:装箱是将值类型(如int、double、struct等)转换为object类型或任何接口类型的过程。由于object是所有类型的基类(在.NET中),并且接口是引用类型,因此装箱…...

第十八章 番外 余弦相似度
余弦相似度(Cosine Similarity)是一种衡量两个非零向量之间角度的度量方式,用于评估它们之间的相似性。它的值范围从 -1 到 1,其中 1 表示完全相同的方向(即向量完全相同),0 表示正交࿰…...

HPA和helm
HPA pod的数量进行扩缩容 针对控制器创建的pod deployment: replica: 静态:edit yaml:apply -f HPA:基于cpu的利用率来实现pod数量的自动伸缩。 Horizontal pod autoscaling yaml文件————主流——————…...

基于人工智能的智能语音助手
语音助手的自然语言处理模块是语音助手系统的关键组成部分。通过这个模块,系统能够识别用户的意图并做出相应的回应。我们可以使用NLP技术来解析文本输入,并将其转换为系统可以理解的命令或指令。在本项目中,我们将结合语音识别、自然语言处理…...

java实际开发——数据库存储金额时用什么数据类型?(MySQL、PostgreSQL)
目录 java开发时金额用的数据类型——BigDecimal MySQL存储金额数据时用的数据类型是——decimal PostgreSQL存储金额数据时用的数据类型是——decimal 或 money java开发时金额用的数据类型——BigDecimal https://blog.csdn.net/Jilit_jilit/article/details/142180903?…...

Java 设计模式-状态模式
目录 一. 概述 二. 主要角色 三. 代码示例 四. 优缺点 优点: 缺点: 五. 常见应用场景 一. 概述 状态模式是一种行为设计模式,它允许一个对象在其内部状态改变时改变它的行为。对象看起来好像修改了它的类。状态模式把所有的与一个特定…...

2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘
1.编写一个图像二维卷积程序。它应该能够处理任何灰度输入图像,并使用以下内核进行操作: %matplotlib inline import numpy as np import matplotlib.pyplot as plt from scipy import linalg import random as rm import math import cv2# import and …...

动态IP池的IP都是纯净IP吗?
在当今互联网时代,动态IP池作为一种网络资源管理策略,被广泛应用于数据抓取、市场调研、广告验证等多种场景中。动态IP池能够提供大量可轮换的IP地址,以帮助用户避免因频繁访问同一网站而被封禁IP的情况。然而,一个关键的问题是&a…...

【MySQL】查询表中重复数据、模糊查询列信息、快速copy表数据(1)
一、SQL查询重复的数据: 1、SQL格式: Select * From 数据表 Where 重复记录字段 in ( select 重复记录字段 From 数据表 Group By 重复记录字段 Having Count(重复记录字段)>1) 2、举例: 在这个patient_member_info表中,我们…...

计算机操作系统之并行性与并发性笔记
目录 在计算机操作系统中,并行性与并发性是两个既相似又有区别的重要概念 并行性: 并发性: 可以通过多任务处理和资源共享来具体说明 并发性的例子 并行性的例子 总结 在计算机操作系统中,并行性与并发性是两个既相似又有区别…...

顶级高效的ChatGPT论文润色提示词和使用技巧
在学术研究中,精确和高效地对文本进行润色和修改是一个必不可少的重要环节。随着学术论文篇幅的增长和内容的复杂度上升,找到一种能够有效整理和优化修改内容的方法变得尤为关键。本文将探讨如何利用ChatGPT作为工具,通过具体的指令和策略,来优化文本的修改过程,提高学术写…...

WebAPI (一)DOM树、DOM对象,操作元素样式(style className,classList)。表单元素属性。自定义属性。间歇函数定时器
文章目录 Web API基本认知一、 变量声明二、 DOM1. DOM 树2. DOM对象3. 获取DOM对象(1)、选择匹配的第一个元素(2)、选择匹配多个元素 三、 操作元素1. 操作元素内容2. 操作元素属性(1)、常用属性(href之类的)(2)、通过style属性操作CSS(3)、通过类名(cl…...

若依框架开发
若依环境 介绍 若依是一款快速开发平台(低代码),用于快速构建企业级后台管理系统,它提供了许多常用的功能模块和组件,包括权限管理、代码生成、工作流、消息中心等 官方地址: https://www.ruoyi.vip/ 基于Spring Boot和Spring Cloud…...

局域网windows下使用Git
windows下如何使用局域网进行git部署 准备工作第一步 ,ip设置设置远程电脑的ip设置,如果不会设置请点击[这里](https://blog.csdn.net/Black_Friend/article/details/142170705?spm1001.2014.3001.5501)设置本地电脑的ip:验证 第二步&#x…...

Redis访问工具
使用Redis存储缓存数据,如何通过Java去访问Redis? 防止后面看晕,先来张图。 1. Redis的客户端库 Redis的客户端库是Redis官方提供的,用于让Java等编程语言与Redis服务器进行通信的工具包。常见的Redis客户端库有多个,…...

vue3+ant design vue动态实现级联菜单~
1、这里使用的是ant design vue 的TreeSelect 树选择来实现的。 <a-form-item name"staffDept" label"责任部门" labelAlign"left"><a-tree-selectv-model:value"formState.staffDept"show-search//允许在下拉框中添加搜索框…...

软件可维护性因素例题
答案:C 知识点: 系统可维护性因素决定 可理解性 可测试性 可修改性 选项C可移植性错误...

git的一些操作
参考视频: git分支详解(约10分钟掌握分支80%操作),git-branch,git分支管理,git分支操作,git分支基础和操作,2023年git基础使用教程 不同的分支相当于不同的平行世界 合并分支 两个分支是我们项…...

opencv实战项目二十三:基于BEBLID描述符的特征点匹配实现表盘校正
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、特征点匹配介绍二、特征点检测三、特征描述符计算四,描述符的匹配筛选五,根据匹配结果映射图片六,整体代码:…...