TiDB存储引擎的初步认识

news2024/12/24 9:20:09

文章目录

  • TiDB简介
  • 分布式系统
  • CAP 理论
    • 一致性
    • 可用性
    • 分区容错性
  • 应用场景
  • 关系型模型
  • 事务
  • ACID 特性
    • 原子性
    • 一致性
    • 隔离性
    • 持久性
  • 与传统非分布式数据库架构对比
  • TiDB 分布式数据库整体架构

TiDB简介

TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和MySQL 生态等重要特性。目标是为用户提供一站式 OLTP(Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。

分布式系统

分布式系统是一种其组件位于不同的联网计算机上的系统,然后通过互相传递消息来进行通讯和协调,为了达到共同的目标,这些组件会相互作用;换句话说,分布式系统把需要进行大量计算的工程数据分割成若干个小块,由多台计算机分别进行计算和存储,然后将结果统一合并到数据结论的科学;本质上就是进行数据存储与计算的分治;

CAP 理论

一致性

指所有的节点在同一时间的数据一致性;
all nodes see the same data at the same time;

可用性

服务在正常响应时间内的可用;
reads and writes always succeed;

分区容错性

分布式系统在遇到某节点或网络分区故障的时候仍然能够对外提供满足一致性或可用性的服务;

应用场景

  • 对数据一致性及高可靠、系统高可用、可扩展性、容灾要求较高的金融行业属性的场景。

TiDB 采用多副本 + Multi-Raft 协议的方式将数据调度到不同的机房、机架、机器,当部分机器出现故障时系统可自动进行切换,确保系统的 RTO <= 30s 及 RPO = 0。

  • 对存储容量、可扩展性、并发要求较高的海量数据及高并发的OLTP 场景。

iDB 采用计算、存储分离的架构,可对计算、存储分别进行扩容和缩容,计算最大支持 512 节点,每个节点最大支持1000 并发,集群容量最大支持 PB 级别。

  • Real-time HTAP 场景

TiDB 在 4.0 版本中引入列存储引擎 TiFlash 结合行存储引擎TiKV 构建真正的 HTAP 数据库,在增加少量存储成本的情况下,可以在同一个系统中做联机交易处理、实时数据分析,极大地节省企业的成本。

  • 数据汇聚、二次加工处理的场景

业务通过 ETL 工具或者 TiDB 的同步工具将数据同步到
TiDB,在 TiDB 中可通过 SQL 直接生成报表。(ETL 是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据)

关系型模型

在传统的在线交易场景里,关系型模型仍然是标准;关系型数据库的关键在于一定要具备事务;

事务

事务的本质是:并发控制的单元,是用户定义的一个操作序
列;这些操作要么都做,要么都不做,是一个不可分割的工作单位;为了保证系统始终处于一个完整且正确的状态;

ACID 特性

原子性

事务包含的全部操作时一个不可分割的整体;要么全部执行,要么全部不执行;

一致性

事务的前后,所有的数据都保持一个一致的状态;不能违反数据的一致性检测;

隔离性

各个并发事务之间互相影响的程度;主要规定多个并发事务访问同一个数据资源,各个并发事务对该数据资源访问的行为;不同的隔离性是应对不同的现象(脏读、可重读、幻读等);

持久性

事务一旦完成要将数据所做的变更记录下来;包括数据存储和多副本的网络备份;

与传统非分布式数据库架构对比

  • 两者都支持 ACID、事务强一致性;
  • 分布式架构,组件解耦,拥有良好的扩展性,支持弹性的扩缩容;
  • 默认支持高可用,在少数副本失效的情况下,数据库能够自动进行故障转移,对业务透明;
  • 采用水平扩展,在大数据量、高吞吐的业务场景中具有先天优势;
  • 强项不在于轻量的简单 SQL 的响应速度,而在于大量高并发SQL 的吞吐;

TiDB 分布式数据库整体架构

  • 由多模块组成,各模块互相通信,组成完整的 TiDB 系统;
  • 前端 stateless、后端 stateful (Raft);
  • 兼容 MySQL;
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1306320.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java开发的智能聊天机器人_超级AI_支持自动绘画功能

支持Web、Android、IOS、H5等多终端应用。它使用OpenAI的ChatGPT模型实现智能聊天机器人&#xff0c;并支持绘图自动生成Vincent图。未来还将接入国内大型AI模型&#xff0c;如文心一言、统一千问、MOSS等模型&#xff0c;并不断更新以满足用户需求。 AI大脑软件中的AI绘画功能…

音乐制作软件Studio One mac软件特点

Studio One mac是一款专业的音乐制作软件&#xff0c;由美国PreSonus公司开发。该软件提供了全面的音频编辑和混音功能&#xff0c;包括录制、编曲、合成、采样等多种工具&#xff0c;可用于制作各种类型的音乐&#xff0c;如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件…

Zabbix+Grafana

背景 对指标采集 将采集的信息存储 可视化 报警 因为节点上本身就是zabbix&#xff0c;但对应的server在数据中心&#xff0c;不知道一个agent可否服务于多个server端&#xff0c;而且不确定数据中心是否会提供用户。所以还是放弃zabbix 架构

js中for和map的区别

文章目录 一、介绍1.1、for循环1.2、map循环1.3、区别 二、哪个效率高三、最后 一、介绍 在JavaScript中&#xff0c;for循环和map循环都是用于迭代数组元素的常见方法。 1.1、for循环 for循环是一种常见的迭代结构&#xff0c;可以使用循环变量和循环条件来控制循环的次数。…

Selenium IED-安装及简单使用

本文已收录于专栏 《自动化测试》 目录 背景介绍优势特点安装步骤录制脚本总结提升 背景介绍 Selenium 通过使用 WebDriver 支持市场上所有主流浏览器的自动化。 Webdriver 是一个 API 和协议&#xff0c;它定义了一个语言中立的接口&#xff0c;用于控制 web 浏览器的行为。 每…

现代雷达车载应用——第2章 汽车雷达系统原理 2.3节

经典著作&#xff0c;值得一读&#xff0c;英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.3 信号模型 雷达的发射机通常发出精心设计和定义明确的信号。然而&#xff0c;接收到的返回信号是多个分量的叠加&#xff0c;包括目标的反射、杂波…

批量导出SAP表名、字段、字段描述、类型、长度

一、标准表使用表 DD03VT 进入SE16N,输入DD03VT表&#xff0c;填写表名,语言填写1&#xff0c;然后勾选你需要的字段信息 把表名和位子同时排序&#xff0c;得到这样的结果&#xff0c;再右键电子表格就可以批量导出了。 二、自建表&#xff0c;未使用数据元素定义的表格&…

倾斜摄影三维模型重建高程偏差的因素及解决方法分析

倾斜摄影三维模型重建高程偏差的因素及解决方法分析 无人机倾斜摄影免像控点三维重建技术是一种基于无人机航拍图像的三维地形模型构建方法&#xff0c;广泛应用于地理测绘、城市规划和资源管理等领域。然而&#xff0c;在实际应用中&#xff0c;往往会遇到模型高程偏差较大的…

餐饮企业需求-数据准备

需求&#xff1a;统计每日用餐人数与销售额 分析&#xff1a;目前存在两张订单信息表&#xff0c; 1.读取两张表数据 &#xff08;利用pandas库中的函数读取&#xff09; 2.合并两张表数据&#xff08;读取后数据是DataFrame对象&#xff09; 3.筛选出日期、人数、金额字段 4.根…

玩转大数据16:大数据存储与文件格式优化

随着大数据时代的到来&#xff0c;存储和处理海量数据成为了一个重要的挑战。在大数据存储中&#xff0c;选择合适的文件格式对数据的压缩率、读写性能和扩展性起着关键作用。本文将介绍大数据存储的挑战&#xff0c;探讨常见的文件格式&#xff0c;并深入讨论文件格式优化的策…

【华为鸿蒙系统学习】- HarmonyOS4.0开发工具和环境配置问题总结|自学篇

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 官方链接 HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 安装教程 &#xff08;…

SpringBoot应用开发指南(01)

目录 引言1. SpringBoot简介1.1 什么是SpringBoot1.1.1 背景1.1.2 优势1.1.3 核心概念 1.1.3 特点 2. SpringBoot入门2. SpringBoot集成MyBatis3. SpringBoot集成PageHelper3.1 什么是PageHelper 通过切面实现分页4. SpringBoot集成Druid总结 引言 在当今软件开发领域&#xf…

综合布线管理工具价值分析

一、网络运维中存在的问题与现状分析 由于运维人员技术水平、知识储备、工作经验等参差不齐&#xff0c;对运维管理方面的各种标准不熟悉&#xff0c;造成在实际实施过程中线缆使用的长度不合理甚至是规格不符&#xff0c;最终导致机柜线缆混乱&#xff0c;各种飞线&#xff0…

【八】python装饰器模式

文章目录 8.1 装饰器模式简介8.2 装饰器模式作用8.3 装饰器模式构成8.3.1 装饰器模式包含以下几个核心角色&#xff1a;8.3.2 UML类图 8.4 装饰器模式python代码实现8.4.1 基本装饰器的使用8.4.2 多个装饰器的执行顺序8.4.3 带返回值的装饰器的使用8.4.4 装饰器模式-关联类模式…

(第67天)RMAN Duplicate 克隆 PDB

介绍 在之前 NONCDB 版本我们经常使用 RMAN Duplicate 方式来在线搭建 DataGuard,非常方便快捷。从 12C 开始 Oracle 推出了 CDB 架构后,自然也就支持使用 Duplicate 的方式来复制 CDB,但是 12C 时还没有那么智能。 从 18C 开始进行了升级,可以支持使用 RMAN Duplicate 方…

Axure的元件库的使用以及详细案例

目录 元件库的使用 元件介绍 元件的基本使用 矩形、按钮、标题的使用​编辑 图片的使用 图片以及热区的使用 表单元件的使用 表格元件的使用 登录界面 个人简介界面 元件库的使用 元件介绍 Axure提供了一套丰富的元件库&#xff0c;用于快速创建原型中常见的UI界面元素…

geemap学习笔记025:为地图中的底图数据添加颜色条(colorbar)

前言 为地图中的数据添加颜色条&#xff0c;有利于辅助地图的使用&#xff0c;本节就介绍一下如何在底图数据中添加颜色条。 1 导入库并显示地图 import ee import geemapee.Initialize() Map geemap.Map() Map2 添加普通颜色条以及分类颜色条 Map geemap.Map()dem ee.I…

深度学习中的各类评价指标

深度学习中的各类评价指标 1 Dice Loss2 Precision&#xff08;精度&#xff09;3 Recall&#xff08;召回率&#xff09;4 F-Score5 mAP 1 Dice Loss Dice Loss&#xff0c;也叫Soft Dice Coefficient&#xff0c;是一种用于图像分割任务的损失函数。它基于目标分割图像与模型…

希亦|鲸立|小吉内衣洗衣机好用吗?强势PK“洗护一体”王者!

随着人们的生活水平的提升&#xff0c;越来越多小伙伴来开始追求更高的生活水平&#xff0c;一些智能化的小家电就被发明出来&#xff0c;而且内衣洗衣机是其中一个。我们对内衣裤的清洗频次会高于普通衣服&#xff0c;大多数人会选择手洗内衣裤&#xff0c;都在手洗过程不仅会…

用户管理第2节课 -- idea 2023.2 创建表

一、懂得 1.1编码格式是防止乱码的&#xff0c;utf-8是完全够的&#xff0c;那几个基本没差别 网址&#xff1a; 【IDEA——连接MySQL数据库&#xff0c;创建库和表】_idea中数据库-CSDN博客 这些是MySQL数据库中的一些术语&#xff0c;可以简单解释如下&#xff1a; 1、col…