学习目标

  • 题解数据库整体架构
  • 了解 TiDB ServerTiKVTiFlash、和 PD 的主要功能

文章末尾获取笔记、视频资料,持续更新

体系架构

  • 水平扩容或者缩容
  • 金融级高可用
  • 实时 HTAP
  • 云原生的分布式数据库
  • 兼容 MySql5.7 协议

TiDB 体系架构图

组件

TiDB Server

TiDB Server 是 TiDB 分布式数据库的 SQL 层,是整个系统的入口。

功能

  • 处理客户端的连接

  • SQL语句的解析、编译、生成执行计划

    生成sql语句,然后在TiKV 或者 TiFLASH上执行

  • 关系型数据与 KV 的转化

    TiKV 存的数据是键值对,将数据表转换为 KV 键值对

  • SQL语句执行(DDL语句)

  • 执行 online DDL

  • 垃圾回收(默认时间10分钟)

TiDB Server 

工作流程

客户端请求 -> 
    协议解析 -> 
        SQL 解析 -> 
            查询优化 -> 
                生成执行计划 -> 
                    分布式执行 -> 
                        返回结果

TiKV

TiKV是TiDB 分布式数据库的存储层

存储结构

Region (数据分片)
    ├── Leader
    └── Followers (多个副本)
        ├── Follower 1
        └── Follower 2

功能

  • 数据持久化
  • 副本的强一致性和高可用性
  • MVCC (多版本并发控制)
  • 分布式事务支持
  • Coprocessor (算子下推)
TiKV 技术架构图

核心组件

如上图所示
RocksDB:底层存储引擎
Raft:分布式一致性协议实现
MVCC:多版本并发控制
Transaction:分布式事务处理

关键特性

  1. 数据分片 (Region)
    1. 按 Key Range 进行数据分片
    2. 每个 Region 默认大小约 96MB到140MB
    3. 超过阈值会自动分裂(Split)
    4. 负载均衡时会自动调度
  2. 复制与一致性
    1. 采用 Multi-Raft 模型
    2. 通常采用 3 副本或 5 副本
    3. 强一致性保证
    4. 自动故障转移

TiFlash

它是 TiDB 的列式存储引擎,专门用于 OLAP 分析场景

功能

  • 异步复制

  • 一致性

  • 列式存储提高分析查询效率

  • 业务隔离

  • 智能选择

    也可以手动指定sql选择 TiKV 或者 TiFlash

TiFlash 架构图

PD

功能

  • 整个集群TiKV的元数据存储
  • 分配全局ID和事务ID
  • 生成全局时间戳TSO
  • 收集集群信息进行调度
  • 提供 TiDB Dashboard 服务
PD 技术架构图

测试

答案:

  1. B、F
  2. C

公众号回复 TIDB 获得笔记、视频

TIDB 数据库架构概述的更多相关文章

  1. asp.net core系列 30 EF管理数据库架构--必备知识 迁移

    一.管理数据库架构概述 EF Core 提供两种主要方法来保持 EF Core 模型和数据库架构同步.一是以 EF Core 模型为基准,二是以数据库为基准. (1)如果希望以 EF Core 模型为 ...

  2. 【MySQL】MySQL无基础学习和入门之一:数据库基础概述和实验环境搭建

    数据库基础概述  大部分互联网公司都选择MySQL作为业务数据存储数据库,除了MySQL目前还有很多公司使用Oracle(甲骨文).SQLserver(微软).MongoDB等. 从使用成本来区分可以 ...

  3. 大型互联网架构概述 关于架构的架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE

    大型互联网架构概述 目录 架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE 本文旨在简单介绍大型互联网的架构和核心组件实现原理. 理论上讲,从安装配置 ...

  4. 1.1-1.5 flume架构概述及安装使用

    一.flume架构概述 1.flume简介 Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据.它具有基于流数据流的简单灵活的架构.它具有可靠的可靠性机制和许多故障转移和 ...

  5. Java生鲜电商平台-微服务架构概述

    Java生鲜电商平台-微服务架构概述 单体架构存在的问题 在传统的软件技术架构系统中,基本上将业务功能集中在单一应用内,或者是单一进程中.尽管现代化的软件架构理论以及设计原则已推广多年,但实际技术衍化 ...

  6. Httpd服务进阶知识-LAMP架构概述

    Httpd服务进阶知识-LAMP架构概述  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LAMP架构概述 1>.什么是LAM(M)P架构 L: linux A: apa ...

  7. Mycat分布式数据库架构解决方案--Mycat的介绍

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 如果我 ...

  8. HDFS(Hadoop Distributed File System)的组件架构概述

    1.hadoop1.x和hadoop2.x区别 2.组件介绍 HDFS架构概述1)NameNode(nn): 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个 ...

  9. VS2012中数据库架构的比较

    在进行项目进行开发或维护时,经常会改动使用的数据库,或增加.修改字段,或加表,改存储过程等,而且会出现多个类似的数据库同时在用(比如过个类似的项目,要使用稍有不同的数据库),这个时候就可能需要进行数据 ...

  10. SQL 修改数据库架构名

    SQl 修改数据库架构名 declare @name sysname declare csr1 cursor for select TABLE_NAME from INFORMATION_SCHEMA ...

随机推荐

  1. 部署docker-registry+ui shell 域名证书-用户认证

    #部署docker-registry+ui shell docker registry 配置域名证书, 用户密码认证, 轻量UI ansible部署docker-registry+ui https:/ ...

  2. Qt通用方法及类库6

    函数名 //判断是否是IP地址 static bool isIP(const QString &ip); //判断是否是MAC地址 static bool isMac(const QStrin ...

  3. LLM Defenses Are Not Robust😭to Multi-Turn Human Jailbreaks Yet😲

  4. opencv只在bin目录下编译dll,在lib目录下编译lib,在bin目录下不编译测试程序的各种exe

    penCV是一个开源的计算机视觉库,它提供了多种编程语言的接口.如果你只想编译出DLL和Lib库文件,而不编译EXE(可执行文件),这通常是因为你想要进行某种形式的动态链接或者库的分发,而不关心EXE ...

  5. [转]C# PowerPoint操作的基本用法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using OFFICECO ...

  6. [.NET] API网关选择:YARP还是Ocelot?

    API网关选择:YARP还是Ocelot? 摘要 随着微服务架构的流行,API网关在系统架构中扮演着越来越重要的角色.在.NET生态中,YARP(Yet Another Reverse Proxy)和 ...

  7. 20250110-FortuneWheel 攻击事件:竟然不设滑点,那就体验一下 Force Investment 吧

    背景信息 攻击交易:https://app.blocksec.com/explorer/tx/bsc/0xd6ba15ecf3df9aaae37450df8f79233267af41535793ee1 ...

  8. SpringBoot(八) - 统一数据返回,统一分页工具,统一异常处理 (生成随机数,正则校验)

    1.统一数据返回 使用逆向工程来进行测试,实体,mapper等省略: 1.1 直接使用 RequestResoult 1.1.1 RequestResoult 请求结果返回实体 //统一返回 实体 类 ...

  9. mina保持android端\服务端的长连接-copy

    一.mina简介 Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架.与Netty出自同一人之手,都是一个介于应用程序与网络之间的NIO框架,通过Java nio技术基于T ...

  10. 从单体架构、到SOA、再到微服务的架构设计详解

    本文涉及的内容以及知识点如下: 1.单体架构 2.单体架构的拆分 3.SOA与微服务的区别 4.微服务的优缺点 5.微服务的消息 6.服务集成 7.数据的去中心化 单体架构 Web应用程序发展的早期, ...