数据库TiDB-01.数据库架构概述

本文涉及的产品
云解析DNS-重点域名监控,免费拨测 20万次(价值200元)
简介: TiDB兼容MySQL 5.7协议,支持水平扩容或者缩容的金融级高可用的云原生分布式数据库。

TiDB体系架构

TiDB兼容MySQL 5.7协议,支持水平扩容或者缩容的金融级高可用的云原生分布式数据库。

TiDB的体系架构为:

image-20230128224256490

TiDB Server,接收用户会话,解析、编译、优化用户提交的SQL语句,生成执行计划。TiDB Server是无状态的,不存储数据,为了提高并发处理能力,TiDB Server支持水平扩展。

TiKV,用于存储数据,数据按行存储,按Region组织数据,一个Region的大小在96MB~144MB之间,一个Region默认采用Raft协议创建3个副本,提供了高可用性。如果数据库的存储能力不够,数据量太大,则只需要加TiKV节点即可进行扩容。TiKV实现了分布式事务和MVCC。

TiFlash,用于存储数据,与TiKV的Region数据一致,采用列式存储,适合用于统计分析。

PD,是TiDB的大脑,为TiDB集群提供元数据和时间戳。在PD中存放着数据的元数据信息,TiDB Server在解析、优化SQL的时候,会从PD中获取Region与TiKV的元数据信息。PD还提供时间戳标识TSO,每条SQL执行都会获得一个TSO。在事务中,事务开始和事务提交都会获取一个TSO。

TiDB Server

功能:

  • 处理客户端连接
  • SQL语句的解析和编译
  • 关系型数据与KV数据的转化
  • SQL语句的执行
  • 执行online DDL
  • 执行垃圾回收

image-20230128230109724

TiDB Server接收用户会话请求,接收用户SQL并进行解析、编译、优化。由于TiKV是存储的K-V型数据,所以TiDB Server还负责将用户提交的关系型数据转化成K-V型数据。TiKV中存储的数据是保留每次变更的版本的,当版本数据过多,数据就会产生垃圾,TiDB Server还负责垃圾回收,默认每10分钟执行一次。

TiKV

功能:

  • 数据持久化
  • 副本的强一致性和高可用性
  • MVCC(多版本并发控制)
  • 分布式事务支持
  • 算子下推(Coprocessor),是一个分布式计算的模型

image-20230128230655786

TiKV底层是使用RocksDB实现单机节点的K-V型数据的持久化。RocksDB kv是存储的K-V型数据,RocksDB raft存放的是数据从操作指令,即数据操作的增删改查指令。

RocksDB的上一层是Raft协议,Raft协议主要用来实现Region的多副本,一个Region的多个副本中,只有一个是leader角色,其他副本与leader保持同步。

Raft协议的上一层是MVCC,主要用来实现版本控制。

MVCC的上一层是分布式事务层,采用两阶段提交,让TiDB集群实现了事务的功能。

Placement Driver,PD

功能:

  • 整个集群TiKV的元数据存储
  • 分配全局ID和事务ID
  • 生成全局TSO
  • 收集集群信息进行调度
  • 提供Dashboard服务

image-20230128231443448

TiKV会定时向PD汇报节点信息,PD会根据汇报信息实现数据调度,防止数据倾斜。

TiFlash

功能:

  • 异步复制
  • 一致性
  • 列式存储提高分析查询效率
  • 业务隔离
  • 智能选择

image-20230128232010754

TiKV中存储的数据是按行存储的,适合交易场景,主要用于OLTP。

TiFlash中存储的数据与TiKV的数据一致,只是TiFlash是按列存储,适合分析型场景,主要用于OLAP。

TiDB Server的SQL优化器实现了智能选择,根据对SQL进行分析,判断是交易型SQL还是分析型SQL,智能选择数据是从TiKV读取还是从TiFlash读取。

知识点回顾

  1. 下列功能是由 TiKV 或 TiFlash 实现的为?( 选 2 项 )

A. 根据集群中 Region 的信息,发出调度指令

B. 对于 OLAP 和 OLTP 进行业务隔离

C. 将关系型数据转化为 KV 存储进行持久化

D. 将 KV 存储转化为关系型数据返回给客户端

E. 配合 TiDB Server 生成事务的唯一 ID

F. 副本的高可用和一致性

解析:集群中发出调度指令的是PD;将关系型数据转化为 KV 存储在TiDB Server实现;将 KV 存储转化为关系型数据也是在TiDB Server实现;生成事务的唯一 ID是在PD实现的。

  1. 关于 TiKV 或 TiDB Server,下列说法不正确的是?

    A. 数据被持久化在 TiKV 的 RocksDB 引擎中

    B. 对于老版本数据的回收(GC),是由 TiDB Server 在 TiKV 上完成的

    C. 两阶段提交的锁信息被持久化到 TiDB Server 中

    D. Region 可以在多个 TiKV 节点上进行调度,但是需要 PD 节点发出调度指令

解析:本题是反向选择,选择不正确的。TiDB Server不持久化数据的,两阶段提交的锁信息被持久化到TiKV中。

目录
相关文章
|
7月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
2月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
342 2
|
4月前
|
存储 安全 关系型数据库
MySQL数据库约束条件概述及其重要性讨论。
正确地实现并管理好各类紧缩条件将直接影响到企业信息管理水平与服务质量,在当今大数据背景下更显得格外重要;任何设计师都需要深刻理解其原理与运作机晰承担起责任使得所托管资料安全稳固同时又具备良好伸缩灵活度迎合日益复杂商务需求变动.
161 11
|
9月前
|
人工智能 运维 安全
AI 安全架构概述
AI 安全架构涵盖数据采集、模型训练、推理部署等阶段,确保安全性、隐私与合规。其核心组件包括数据层、模型层、推理层、应用层和运维层,针对数据安全威胁(如数据投毒)、模型窃取、对抗攻击及系统漏洞等风险,提出数据加密、对抗训练、联邦学习等防御策略,并强调开发前、开发中和部署后的最佳实践,以降低 AI 解决方案的安全风险。
891 13
|
6月前
|
存储 关系型数据库 数据库
高性能云盘:一文解析RDS数据库存储架构升级
性能、成本、弹性,是客户实际使用数据库过程中关注的三个重要方面。RDS业界率先推出的高性能云盘(原通用云盘),是PaaS层和IaaS层的深度融合的技术最佳实践,通过使用不同的存储介质,为客户提供同时满足低成本、低延迟、高持久性的体验。
|
7月前
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
379 3
|
8月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
10月前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
452 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
10月前
|
SQL 弹性计算 安全
【上云基础系列04】基于标准架构的数据库升级
本文回顾了业务上云从基础到进阶的理念,涵盖基础版和全栈版架构。在“入门级:上云标准弹性架构基础版”的基础上,本文针对数据库升级,重点介绍了高可用数据库架构的升级方案,确保数据安全和业务连续性。最后,附有详细的“上云标准弹性架构”演进说明,帮助用户选择合适的架构方案。
|
9月前
|
存储 SQL 并行计算
【赵渝强老师】达梦数据库MPP集群的架构
达梦数据库提供大规模并行处理(MPP)架构,以低成本实现高性能并行计算,满足海量数据存储和复杂查询需求。DM MPP采用完全对等无共享体系,消除主节点瓶颈,通过多节点并行执行提升性能。其执行流程包括主EP生成计划、分发任务、各EP并行处理及结果汇总返回。为确保高可用性,建议结合数据守护部署。
273 0

热门文章

最新文章