iDB简介:
TiDB 是 PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库。 TiDB 具备如下 NewSQL 核心特性:
SQL支持 (TiDB 是 MySQL 兼容的)
水平线性弹性扩展
分布式事务
跨数据中心数据强一致性保证
故障自恢复的高可用
TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景。
TiDB系统的架构:
TiDB 集群主要分为三个组件:
TiDB Server
TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。 TiDB Server 是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy 或 F5)对外提供统一的接入地址。
PD Server
Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个: 一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);三是分配全局唯一且递增的事务 ID。
PD 是一个集群,需要部署奇数个节点,一般线上推荐至少部署 3 个节点。
TiKV Server
TiKV Server 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range (从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region 。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。
核心特性
水平扩展
无限水平扩展是 TiDB 的一大特点,这里说的水平扩展包括两方面:计算能力和存储能力。TiDB Server 负责处理 SQL 请求,随着业务的增长,可以简单的添加 TiDB Server 节点,提高整体的处理能力,提供更高的吞吐。TiKV 负责存储数据,随着数据量的增长,可以部署更多的 TiKV Server 节点解决数据 Scale 的问题。PD 会在 TiKV 节点之间以 Region 为单位做调度,将部分数据迁移到新加的节点上。所以在业务的早期,可以只部署少量的服务实例(推荐至少部署 3 个 TiKV, 3 个 PD,2 个 TiDB),随着业务量的增长,按照需求添加 TiKV 或者 TiDB 实例。
高可用
高可用是 TiDB 的另一大特点,TiDB/TiKV/PD 这三个组件都能容忍部分实例失效,不影响整个集群的可用性。下面分别说明这三个组件的可用性、单个实例失效后的后果以及如何恢复。
TiDB
TiDB 是无状态的,推荐至少部署两个实例,前端通过负载均衡组件对外提供服务。当单个实例失效时,会影响正在这个实例上进行的 Session,从应用的角度看,会出现单次请求失败的情况,重新连接后即可继续获得服务。单个实例失效后,可以重启这个实例或者部署一个新的实例。
PD
PD 是一个集群,通过 Raft 协议保持数据的一致性,单个实例失效时,如果这个实例不是 Raft 的 leader,那么服务完全不受影响;如果这个实例是 Raft 的 leader,会重新选出新的 Raft leader,自动恢复服务。PD 在选举的过程中无法对外提供服务,这个时间大约是3秒钟。推荐至少部署三个 PD 实例,单个实例失效后,重启这个实例或者添加新的实例。
TiKV
TiKV 是一个集群,通过 Raft 协议保持数据的一致性(副本数量可配置,默认保存三副本),并通过 PD 做负载均衡调度。单个节点失效时,会影响这个节点上存储的所有 Region。对于 Region 中的 Leader 结点,会中断服务,等待重新选举;对于 Region 中的 Follower 节点,不会影响服务。当某个 TiKV 节点失效,并且在一段时间内(默认 10 分钟)无法恢复,PD 会将其上的数据迁移到其他的 TiKV 节点上。
其中SQL 层架构:
点赞
评论
分享
收藏
5
打赏
举报
已关注
一键三连
分布式 New SQL数据库 TiDB 总体架构
“IT-老兵” 的博客
1191
这篇文章将向大家介绍TiDB数据库系统的总体架构,本文参考了pingcap官方文档,并补充了少量内容。在介绍TiDB总体架构时,还简要描述了每一个组件的可扩展性和高可用性。 TiDB 分布式数据库集群如上图所示主要分为三个组件: (1) TiDB Server TiDB Server 负责接收SQL请求,处理SQL 相关的逻辑,并通过PD 找到…
tidb开源吗_认识TiDB:开源的NewSQL数据库
cumo7370的博客
425
tidb开源吗 随着企业采用云原生架构,对话自然会导致我们可以做的事情来使数据库水平扩展。 答案可能是仔细研究TiDB 。 TiDB是根据Apache 2.0许可发布的开源NewSQL数据库。 因为它说的是MySQL协议,所以您现有的应用程序将能够使用任何MySQL连接器连接到它,并且大多数SQL功能仍然相同(联接,子查询,事务等)。 但是,请掩盖所有步骤,并且有所不同。 如果您的体系结…
优质评论可以帮助作者获得更高权重
表情包
初识TiDB分布式数据库
Peter_Changyb的博客
1626
目前最流行的分布式数据库有两类,一个是以Google Spanner为代表,一个是以AWS Auraro为代表。Spanner 是 shared nothing 的架构,内部维护了自动分片、分布式事务、弹性扩展能力,数据存储还是需要 sharding,plan 计算也需要涉及多台机器,也就涉及了分布式计算和分布式事务。主要产品代表为TiDB、CockroachDB、OceanBase等;这三个产品…
TiDB数据库
xusanyao的博客
3689
TiDB是分布式数据库解决方案选项之一,它对外以MySQL 协议提供关系数据库存储服务,而核心是NoSQL技术实现分布式存储和分布式计算。单从对外提供兼容 MySQL服务这个角度看,可以吸引庞大的MySQL用户群来尝试使用。 基于MySQL的很多项目,目前面临的一个瓶颈是随着数据量越来越大,存储空间扩展和查询性能都面临比较大的问题。一台服务器的存储容量总归是有限的,如…
TiDB 架构_sun%moon
12-29
TiDB架构 对比传统的独立数据库,TiDB的优点是: 分布式架构,可扩展性更强。 与MySQL兼容,可使用SQL语法。且将应用程序迁移至TiDB不需要更改代码。
TiDB 整体架构_HuaShao
1-13
要深入了解 TiDB 的水平扩展和高可用特点,首先需要了解 TiDB 的整体架构。TiDB 集群主要包括三个核心组件:TiDB Server,PD Server 和 TiKV Server。此外,还有用…
TiDB学习(一)
m0_37683758的博客
1189
TiDB基本介绍 组件 TiDB 集群有三大组件构成:TiDB Server、PD Server、TiKV Server(图 1)。 其中各个组件的功能如下: TiDB Server,可以理解为 SQL Layer,负责接收 SQL 请求,处理 SQL 解析、SQL 优化等相关逻辑,并通过 PD 与底层 TiKV 交互来获取或变更数据; PD Server,可以视作…
TiDB 资料整理
我的技术生活
2947
Tidb是个优秀的分布式关系数据库,最近B轮融资1500万美元, 目前只有开源的产品能容这么多钱,可以看出他的商业价值有多大。 Tidb的开源的地址: https://github.com/pingcap/tidb 主要特性: 1) 完全开源的 2) 能完全兼容SQL协议 3) 故障自动恢复 4) 水平扩展 mysql不支持水平扩展的,除非是业务层面的拆分 5)
TiDB 简介与整体架构_360linker
1-18
三篇文章了解 TiDB 技术内幕: 说存储 说计算 谈调度 TiDB 整体架构 要深入了解 TiDB 的水平扩展和高可用特点,首先需要了解 TiDB 的整体架构。
理解TIDB架构设计_liuyinlong
1-16
本篇文章介绍了分布式数据库tidb 特性、架构、应用场景,但是是否使用在我们现有系统中需要从长计议。tidb的功能很强大,但强大的背后意味着大量硬件资源的支撑。结合…
TiDB初体验——环境部署与搭建
a69187711的博客
1万+
TiDB简介TiDB是国内PingCAP团队的一个分布式SQL数据库。它的灵感来自于Google的F1和Google spanner,TiDB支持包括传统RDBMS和NoSQL的特性。TiDB 兼容 MySQL 的系统变量,同时定义了一些特有的系统变量用于调整数据库行为。TiDB特性 高度兼容 MySQL大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MyS…
TiDB整体架构与实践心得
yuandengta的博客
573
TiDB 是 PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库。 TiDB 具备如下 NewSQL 核心特性: SQL支持 (TiDB 是 MySQL 兼容的) 水平线性弹性扩展 分布式事务 跨数据中心数据强一致性保证 故障自恢复的高可用 TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景。对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也让开发运维
tidb架构_jing_flower的博客
1-21
图1-1 tidb架构图解 TiDB集群主要包括三个核心组件:TiDB Server,PD Server和TiKV Server。此外,还有用于解决用户复杂OLAP需求的TiSpark组件。
TiDB体系结构_zijie_97博客_tidb架构
12-25
在内核设计上,TiDB 分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的 TiDB 系统。对应的架构图如下: TiDB Server:SQL 层,对外暴露 MySQL…
TiDB基本架构简单总结
weixin_30298497的博客
162
TiDB特点 高可用 水平拓展 事务 SQL支持 TiDB架构 和MySql不同,TiDB是一个分布式的数据库而不是单个进程,所以整个TiDB是由以下角色组成: TiKV, PD, TiDB, TiSpark。每个角色都是部署在多台机器上的进程组成的集群。 TiKV PD TiDB功能 TiKV TiKV负责数据的存储,对外而言,它就是一个提供key-value存储的引擎。但…
TiDB-新一代数据库入门介绍
十步杀一人-千里不留行
6179
由于目前的项目计划把MySQL换成TiDB,所以特意来了解下TiDB。其实也不能说换,由于TiDB和MySQL几乎完全兼容,所以我们的程序可以没有任何改动就完成数据库从MySQL到TiDB的转换。接下来了解一下TiDB,为将来的技术选型做个准备。 一、TiDB介绍 TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 HTAP (Hybrid…
TiDB 整体架构及到底有什么用_qianshanding0708的博客
1-20
TiDB整体架构图 TiDB 产品的整体架构是高度分层的,由分布式 SQL 层(TiDB)、分布式 KV 存储引擎(TiKV)以及管理整个集群的 PD 模块组成。无限水平扩展是 TiDB …
10分钟了解TiDB
Felix_阳的博客
2654
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一…
2.TIDB整体架构
ex-huh001的博客
22
与传统的单机数据库相比,TiDB 具有以下优势: 纯分布式架构,拥有良好的扩展性,支持弹性的扩缩容 支持 SQL,对外暴露 MySQL 的网络协议,并兼容大多数 MySQL 的语法,在大多数场景下可以直接替换 MySQL 默认支持高可用,在少数副本失效的情况下,数据库本身能够自动进行数据修复和故障转移,对业务透明 支持 ACID 事务,对于一些有强一致需求的场景友好,例如:银行转账 具有丰富的工具链生态,覆盖数据迁移、同步、备份等多种场景 在内核设计上,Ti
TIDB架构自我总结
p_ython的博客
398
TiDB 是什么? TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。 TiDB怎么来的? 著名的开源分布式缓存服务 codis 的作者,PingCAP联合创始人& CTO ,资深 infrastructur…
TiDB架构特性
ME_邱康
92
TiDB 整体架构 TiDB 集群主要包括三个核心组件:TiDB Server,PD Server 和 TiKV Server。此外,还有用于解决用户复杂 OLAP 需求的 TiSpark 组件



