学习目标

  • 题解数据库整体架构
  • 了解 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. openEuler创建和root一样的账号

    1. 使用以下命令在 openEuler 操作系统的 root 用户下创建管理员用户: useradd -m -G root admin -m 表示创建用户的同时创建用户的主目录, -G 表示将用户添 ...

  2. docker-compose的nginx更换完ssl证书不起作用的完美解决方法

    ​以Harbor为例,ssl证书更新后,docker-compose启动不起作用. 问题出在一句很重要的命令:./prepare 步骤:(Harbor样例) 1. cd /data/ssl 换ssl证 ...

  3. ThreeJs-07操控物体实现家具编辑器

    本章节实现效果,通过gui快速添加场景,家具,并且可以快速设置家具实现一个编辑器效果 一.基础设置与物体添加列表 用之前做过的一个案例来改 首先不要这个模型,然后换个背景颜色,并且添加一个网格辅助器 ...

  4. iOS画中画

    iOS 14 画中画 打开项目后台模式 创建视频播放源 let url = Bundle.main.url(forResource: "annie", withExtension: ...

  5. 解决SSH免密登录配置成功后不生效问题

    今天配置SSH免密登录时,使用 ssh-keygen 命令成功生成了公钥和私钥,并且也执行了 ssh-copy-id 机器地址 将公钥添加到了服务器的authorized_keys文件中.紧接着用 s ...

  6. Qt开源作品18-无边框背景透明窗体

    一.前言 用Qt来做无边框北京透明窗体非常简单,根本不需要用什么系统层的API来实现透明什么的,Qt本身提供了很多种设置窗体透明的方法,除了可以设置窗体的属性为透明以外,还可以设置透明度函数,以及qs ...

  7. FFmpeg命令行选项

    如下内容取自官网文档"Documentation-ffmpeg"和"Documentation-ffmpeg-all" 1 帮助信息 如下选项适用于 ff 系列 ...

  8. Error:java: 无效的源发行版: 11

    问题描述: 昨天下载 ali 的一个 demo.本地 idea 编译的时候报错. Error:java: 无效的源发行版: 11 具体原因: 项目的 jdk (Project SDK)版本 和项目的语 ...

  9. 小程序获取定位完整的封装js(uniapp)

    1.小程序获取定位,首先需要在微信公众平台,申请getLocation接口(开发管理->接口设置) 2.在manifest.json打开源码视图,增加代码 "mp-weixin&quo ...

  10. 在OERV也可以玩MC(上)

    最近发现一个比较有意思的事情,原来HMCL这个项目也移植到RISC-V上了,之前一直没有发现,因此在OERV(openEuler RISC-V的简称)玩MC也是可以的了.首先,HMCL是一款功能丰富的 ...