当前位置: 首页 > news >正文

【赵渝强老师】TiDB的底层存储机制

1

​在内核设计上,TiDB分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的TiDB系统。对应的架构图如下:

2

与传统的单机数据库相比,TiDB具有以下优势:

  • 纯分布式架构,拥有良好的扩展性,支持弹性的扩缩容
  • 支持SQL,对外暴露MySQL的网络协议,并兼容大多数MySQL的语法,在大多数场景下可以直接替换MySQL
  • 默认支持高可用,在少数副本失效的情况下,数据库本身能够自动进行数据修复和故障转移,对业务透明
  • 支持ACID事务,对于一些有强一致需求的场景友好,例如:银行转账
  • 具有丰富的工具链生态,覆盖数据迁移、同步、备份等多种场景
image.png
点击这里查看视频讲解:【赵渝强老师】TiDB的底层存储机制

一、 TiDB与RocksDB

TiDB最终将数据写入底层的RocksDB中。RocksDB是由Facebook基于LevelDB开发的一款提供键值存储与读写功能的LSM-tree架构引擎。用户写入的键值对会先写入磁盘上的WAL(Write Ahead Log),然后再写入内存中的跳表(Skip List,这部分结构又被称作MemTable)。LSM-tree引擎由于将用户的随机修改(插入)转化为了对WAL文件的顺序写,因此具有比B树类存储引擎更高的写吞吐。内存中的数据达到一定阈值后,会刷到磁盘上生成SST文件(Sorted String Table),SST又分为多层(默认至多6层),每一层的数据达到一定阈值后会挑选一部分SST合并到下一层,每一层的数据是上一层的10倍(因此90%的数据存储在最后一层)。

3

每个TiKV实例中有两个RocksDB实例,一个用于存储Raft日志(通常被称为raftdb),另一个用于存储用户数据以及MVCC信息(通常被称为kvdb)。kvdb中有四个Column Family:raft、lock、default和write,具体说明如下表所示。

4

二、 使用二进制包离线部署TiDB数据库集群

在一些企业的生产环境中无法访问外部的网络,此时如果部署TiDB数据库集群就需要使用二进制包方式进行部署。在TiDB的官方网站上提供不同版本的二进制包,如下图所示。

5

从这里可以看出,目前TiDB最新的版本是v8.5.1。需要下载以下两个安装包文件:

tidb-community-server-v8.5.1-linux-amd64.tar.gz
tidb-community-toolkit-v8.5.1-linux-amd64.tar.gz

TiDB的离线部署与在线部署类型非常类似,唯一的区别就是:离线部署模式下需要将TiDB的镜像源设置为本地目录;而在线部署模式下TiDB的镜像源为官方仓库地址。下面命令的输出信息展示了在线部署模式下TiDB的镜像源地址。

tiup mirror show# 输出信息如下:
https://tiup-mirrors.pingcap.com

下表展示了TiDB全分布式集群中包含的实例信息。

6

与伪分布集群部署类似,在部署全分布集群时需要配置中控节点与其余各节点的免密码登录。以下步骤均在中控节点上执行。

(1)将离线包发送到目标集群的中控机后,执行以下命令安装TiUP组件。

tar xzvf tidb-community-server-v8.5.1-linux-amd64.tar.gz && \
sh tidb-community-server-v8.5.1-linux-amd64/local_install.sh && \
source /root/.bash_profilelocal_install.sh 脚本会自动执行命令:
tiup mirror set tidb-community-server-v8.5.1-linux-amd64
将当前镜像地址设置为 tidb-community-server-v8.5.1-linux-amd64。

(2)执行命令确定TiDB镜像地址是否为本地目录。

tiup mirror show# 输出信息如下:
/root/tools/tidb-community-server-v8.5.1-linux-amd64

(3)执行下面的命令将tidb-community-toolkit-v8.5.1-linux-amd64.tar.gz合并到本地镜像地址中。

tar xf tidb-community-toolkit-v8.5.1-linux-amd64.tar.gz
ls -ld tidb-community-server-v8.5.1-linux-amd64 tidb-community-toolkit-v8.5.1-linux-amd64
cd tidb-community-server-v8.5.1-linux-amd64/
cp -rp keys ~/.tiup/
tiup mirror merge ../tidb-community-toolkit-v8.5.1-linux-amd64

(4)部署TiDB集群的yaml文件如下:

# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:user: "tidb"ssh_port: 22deploy_dir: "/tidb-deploy"data_dir: "/tidb-data"# # Monitored variables are applied to all the machines.
monitored:node_exporter_port: 9100blackbox_exporter_port: 9115server_configs:tidb:instance.tidb_slow_log_threshold: 300tikv:readpool.storage.use-unified-pool: falsereadpool.coprocessor.use-unified-pool: truepd:replication.enable-placement-rules: truereplication.location-labels: ["host"]tiflash:logger.level: "info"pd_servers:- host: 192.168.79.11- host: 192.168.79.12- host: 192.168.79.13tidb_servers:- host: 192.168.79.11port: 4000status_port: 10080- host: 192.168.79.12 port: 4001status_port: 10081tikv_servers:- host: 192.168.79.11config:server.labels: { host: "Beijing" }   - host: 192.168.79.12config:server.labels: { host: "Shanghai" }   - host: 192.168.79.13config:server.labels: { host: "Chongqing" }   tiflash_servers:- host: 192.168.79.14monitoring_servers:- host: 192.168.79.14port: 7788grafana_servers:- host: 192.168.79.14

(5)当准备好了topo.yaml文件后,执行下面的命令部署TiDB数据库集群。

tiup cluster deploy mytidb-cluster v8.5.1 ./topo.yaml --user root
http://www.jsqmd.com/news/98462/

相关文章:

  • 高科战神慧知联
  • 苏州仓储服务哪家强?这三家企业绝对让你满意!
  • 南京留学 top10 机构推荐谁 - 留学品牌推荐官
  • 基于微信小程序的广西壮锦文化传播与线上销售系统的设计与实现(源码+lw+部署文档+讲解等)
  • HuggingFace镜像网站国内加速源配置助力Anything-LLM快速启动
  • Windows on Arm运行PyTorch-DirectML体验
  • 7、游戏开发:从基础搭建到动画实现
  • 成分好的蛋白粉排名 哪款更适合全家日常营养补充与中老年精准补给 - 资讯焦点
  • 南京美国留学中介机构排名前十名_10大排名推荐 - 留学品牌推荐官
  • 41、深入解析文件系统:fsflush 与 UFS 的奥秘
  • 专业的GEO服务商有哪些?国内主流AI优化服务提供商综合解析 - 深度智识库
  • 3大核心技术解析:Lottie-Android多色渐变动画深度实战
  • 8、美化游戏:从动画到精灵表的全面优化
  • 震惊!苏州仓储服务公司大比拼,究竟谁能称王?
  • Wan2.2-I2V-A14B实战避坑指南:从零搭建高效视频生成环境
  • 竞品分析已变,AI平台盘点
  • 南京十大排名好的新加坡留学中介机构名单榜首哪个好 - 留学品牌推荐官
  • 9、游戏逻辑添加与船只类扩展
  • LangFlow工作流引擎在多模态大模型中的调度作用
  • 2025 AI营销利器:顶级消费者洞察与AI市场舆情分析平台榜单
  • LangFlow构建Markdown编辑器插件,增强写作智能化
  • 南京研究生留学机构最火的机构有哪些 - 留学品牌推荐官
  • 20、Linux 磁盘存储与打印操作全解析
  • 39、GNOME 开发相关知识与资源全解析
  • AI市场舆情分析与量化风险:超越预测的2025年AI决策之道
  • PaddlePaddle静态图模式应用:结合git版本控制管理模型迭代
  • 23、Linux 系统中的任务调度与数学计算实用指南
  • 2025年比较好的恩施装修承包装修质量榜 - 品牌宣传支持者
  • 2025年热门的NSN9000数字程控用户交换机/程控用户数字交换机系统厂家推荐及选购参考榜 - 品牌宣传支持者
  • 修改chrome配置,关闭跨域校验