分布式数据库新秀TIDB初探

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 背景随着社会数字化程度的加深,网络逐渐成为了社会的基础设施。随着互联网渗透程度的不断深入和互联网的进一步下沉,人们会在互联网上面 花费更多的时间,产生更多的数据。作为数据存储基石的DB面临着新的挑战和发展空间,由于数量的增长,之前的单机DB将面临越来越多的挑战,此时就出现数据库扩展的多种方案以满足海量数据的存储。目前主流的应对方案主要是分库分表,但是也存在着分布式事务,跨节点 join,扩容复杂等

背景

随着社会数字化程度的加深,网络逐渐成为了社会的基础设施。随着互联网渗透程度的不断深入和互联网的进一步下沉,人们会在互联网上面 花费更多的时间,产生更多的数据。作为数据存储基石的DB面临着新的挑战和发展空间,由于数量的增长,之前的单机DB将面临越来越多的挑战,此时就出现数据库扩展的多种方案以满足海量数据的存储。目前主流的应对方案主要是分库分表,但是也存在着分布式事务,跨节点 join,扩容复杂等局限。

分布式数据TIDB简介

TIDB是一款同时支持在线事务处理和在线分析处理数据(Hybrid Transactional and Analytical Processing, HTAP)的关系性分布式数据库。在线事务处理,一般日常的事务处理数据库类型。在线分析处理,指由于数据分析的数据库类型,侧重于数据分析与决策,大多是基于MR模型的分布式存储系统或者是列式存储,例如clickhouse。

  • 一键水平扩容或者缩容

由于采用计算与存储分离,可针对不同场景对计算模块或者存储模块快速透明化扩容。

  • 金融级高可用

多副本存储,基于raft协议的事务日志

  • 实时 HTAP

通过基于两种不同的存储模型TIKV和列式存储TiFlash,同时支持OLTP和OLAP,通过raft协议保持两者数据的强一致性。

  • 云原生的分布式数据库

可以基于TIDB生态的 TI oprator,在私有云、公有云或者混合云实现工具化部署。

  • 兼容 MySQL 5.7 协议和 MySQL 生态

兼容大部分Mysql 5.7协议,用户可以在原有代码不做变更的基础上,在Mysql和TIDB之间实现透明化迁移。

架构

(图片来自Pingcap官网)

TIDB整个集群主要分为TIDB Server、PD Server、TIKV Server 、TIFlash(可选)

TIDB Server:这部分主要负责Sql 解析、优化,生成执行计划,此部分是无状态的。TIDB 还扮演着计算下推的角色,

同步对SQL的解析和分析,推断是适用TIKV还是TIFlash,将数据计算下推到数据存储层。例如要按照某一个字段的一段范围的内单位时间的度量,将会下推给TIflash引擎,利用列式存储提高查询性能。

PD Server:元信息模块。主要负责数据在TIKV的分布情况和集群的拓扑情况,协调数据数据迁移。

并负责生成分布式事务的唯一ID。

TIKV:TIKV是基于rocksdb二次开发的KV存储引擎。Region为最基本数据存储单元,在每一个region中按序存储一段数据,Region的迁移、合并、迁移受PDServer的调控。

TIFlash:列式存储引擎、记得之前是基于clickhouse开发的存储引擎。作为TIKV learner的角色提交数据。异步复制、一致性(读之前会校验与Leader的数据同步状态)。clickhouse特点,多线程并发查询,海量数据情况下并能比较优异,确定就是并发度不高。

分布式事务

TIDB的分布式事务是基于Google 的Percolator二阶段提交算法实现的。从3.0开始默认实现是悲观事务,参考TiDB 新特性漫谈:悲观事务。并且基于MVCC多版本控制实现了事务的并发控制,详细可以参考TiKV 的 MVCC(Multi-Version Concurrency Control)机制

Region存储模型

大数据量的KV存储目前有两种存储方案。

  1. 基于Hash 的 Map存储方案,例如redis。
  2. 基于LSM Tree的有序分块存储的方案,例如mongodb,rocksdb。

TIDB的KV实现 是基于第二种的实现,Region是数据在TIKV中的存储基本数据模型,为了方便数据在rocksdb的存储和迁移,tidb将数据以region为单位组织存储。在每一个region中数据均顺序组织(startKey,endKey),方便PD的调度迁移与写入。并且数据的复制与分发也已region为单位组织。

详细可以参考TIDB存储-region

性能分析

下面是之前做的一份压测数据。

  • 1 TIDBServer,3 TIKV,同城三机房部署。
  • 并发10qps,同时查询数8SQL。
  • 工具Jemter
  • 数据量200-300G
  • TIDB 4.x版本

机器性能暂时没有打满,可以看到响应时间基本在15ms左右

除了这份数据和pingcap公布的官方tpc数据,还有其他部分公司DBA在自己测试环境做了压测。得出结论,在数据量达到一定程度下,与mysql性能相比差距不大,并且在某些场景会超过mysql的性能。当然刚刚发布的5.0版本性能又有了一定提升

其他以官方公布的数据为准 TiDB Sysbench 性能对比测试报告 - v5.1.0 对比 v5.0.2

使用现状

TIDB作为国内公司开发的分布式数据库新秀,受到国内许多互联网、金融、银行等行业公司的关注,并投入了一定的资源参与到了TIDB的生态建设。例如美团、伴鱼、bilibili等。

总结

随着数字化加深、数据量的暴增,分布式数据库是未来解决海量数据的唯一途径。同时随着云原生基础设施不断地完善,作为整条链路的最后一块单点阵地-数据库,基于云设施的分布式方案前景看好。并且随着国内技术行业的升级,相信会有更多像TIDB这种自研的优秀的基础技术产品涌现。去探寻技术附加值更高的市场,打造数据我们自己的技术壁垒。支持国产!

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
5月前
|
存储 关系型数据库 分布式数据库
喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。
|
9月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
5月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
288 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
5月前
|
存储 监控 分布式数据库
ClickHouse分布式数据库动态伸缩(弹性扩缩容)的实现
实现ClickHouse数据库的动态伸缩需要持续的维护和精细的操作。从集群配置到数据迁移,再到监控和自动化,每一步都要仔细管理以确保服务的可靠性和性能。这些活动可以显著提高应用的响应性和成本效率,帮助业务根据实际需求灵活调整资源分配。
364 10
|
6月前
|
存储 关系型数据库 分布式数据库
【赵渝强老师】基于PostgreSQL的分布式数据库:Citus
Citus 是基于 PostgreSQL 的开源分布式数据库,采用 shared nothing 架构,具备良好的扩展性。它以插件形式集成,部署简单,适用于处理大规模数据和高并发场景。本文介绍了 Citus 的基础概念、安装配置步骤及其在单机环境下的集群搭建方法。
565 2
|
8月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
8月前
|
SQL 存储 分布式数据库
分布式存储数据恢复—hbase和hive数据库数据恢复案例
分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布式存储故障: 数据库底层文件被误删除,数据库不能使用。要求恢复hbase和hive数据库。
306 12
|
8月前
|
存储 运维 监控
【赵渝强老师】TiDB数据库从零开始
《TiDB数据库从零开始》是一门系统介绍TiDB分布式数据库的课程,共11章。内容涵盖TiDB体系架构、安装部署、用户安全管理、数据库对象操作、事务与锁机制、备份恢复、数据迁移与同步、TiSpark/TiProxy/TiFlash组件使用,以及监控诊断与故障处理。通过视频讲解和详细文本,帮助学员全面掌握TiDB的核心功能与应用场景。
226 9

热门文章

最新文章