什么是分布式数据库和TIDB 整体架构

技术什么是分布式数据库和TIDB 整体架构这篇文章给大家介绍什么是分布式数据库和TIDB 整体架构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。TIDB 是一个分布式,强一致的可水平扩展的关系型数据

本文向您介绍分布式数据库和TIDB的整体架构。内容非常详细。感兴趣的朋友可以参考一下,希望对你有所帮助。

TIDB是一个分布式、强一致性和水平可扩展的关系数据库。在TIDB设计之初,它专注于四个设计点。

1横向扩展,横向扩展是设计之初最基本的要求,通过增加机器来扩展存储容量和计算能力。

2高可用性,TIDB是一个具有许多节点的分布式数据库。对于节点故障和数据库滚动升级,需要解决少量节点故障的问题。

Acid事务,虽然有些数据库为了更高效地存储和处理数据,放弃了SQL和事务,但是在生产中的事务场景中,事务是非常重要的。另一个主要原因是,如果事务的问题不是存储在本地,而是通过业务或中间件来解决,很难实现高效率。

4SQL支持,MYSQL支持,使得数据库整体使用变得容易。

下面是TIDB的结构图。

什么是分布式数据库和TIDB  整体架构

TIDB存储引擎是TIKV数据库存储引擎,采用分层架构实现。

1笔交易

2 MVCC

3筏

4本地kv存储

容灾能力和特点

高度分层,底层为ROCKSDB,数据存储通过raft高度可用。高度分层的主要原因是分层切换可以更独立地进行。数据存储在多个副本中,通过raft实现了很强的一致性。多个副本中只有一个领导者,其他节点都是追随者。其中,领导者和追随者的价值观是不固定的。领导者失败后,通过算法选择追随者转变为领导者的角色转换。

Raft本身支持一个数据的强大且一致的多个副本。如何对分布式数据进行切片,如何将不同的切片放在不同的位置,需要一种基于哈希切片或范围划分的切片算法。但是,因为数据库可能涉及连续的值查询,所以使用范围切片更合理。划分存储KEY的空间,主要是根据KEY VALUE存储的阈值,默认将数据除以96MB。

下图显示了多节点系统中节点区域从节点1到节点4的过程。

什么是分布式数据库和TIDB  整体架构

那么问题来了,在数据迁移的过程中,谁来控制整个迁移,Placement Driver集群来控制。

什么是分布式数据库和TIDB  整体架构

如上图所示,另外,在事务模型中,PD的领导者会根据时间算法提供一个时间戳作为事务的标签,整体设计理念是去中心化。在3.0之前,乐观锁被用作锁,它不是在数据事务中被锁定,而是在提交过程中被锁定。3.0提供悲观锁,类似于传统数据库的锁设计。

Tidbsql引擎

下图是整个TIDB SQL层的图表。

什么是分布式数据库和TIDB  整体架构

什么是分布式数据库和TIDB  整体架构

如果计算COUNT,那么TIDB PD知道这些数据在哪个区域,并且该区域根据条件在哪里累加和求和满足条件的数据。最后,每个区域将自己的累计和汇总到TIDB服务器,并汇总该和。

4 DDL在线修改,TIDB按照f1-schema-change的思路设计整个DDL操作。可以具体参考以下文献,总结几句。

什么是分布式数据库和TIDB  整体架构

1给出修改DDL操作的时间范围。

2在DDL操作中,每个区域将提供两种状态,可以删除也可以写入。

3租约的概念,在系统中设置的租约到期后,需要重新加载SCHEMA。

什么是分布式数据库和TIDB的整体架构将在这里分享,我希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/129610.html

(0)

相关推荐