TiDB 4.0: The Leading Real-Time HTAP Database is Ready for Cloud

TiDB 4.0: The Leading Real-Time HTAP Database is Ready for Cloud经过一年多的开发,TiDB 4.0 终于迎来 GA 版本,作为 TiDB「面向未来的数据库」道路上面的一个重要的里程碑,TiDB 4.0 不光在稳定性、易用性、性能、云原生等各个方面都有了巨大的进步…

TiDB 4.0: The Leading Real-Time HTAP Database is Ready for Cloud

经过一年多的开发,TiDB 4.0 终于迎来 GA 版本,作为 TiDB「面向未来的数据库」道路上面的一个重要的里程碑,TiDB 4.0 不光在稳定性、易用性、性能、云原生等各个方面都有了巨大的进步,新增的特性也让 TiDB 产品能够支持更多元的业务类型。

架构师面对业务,经常需要回答以下问题:

  • 业务数据独立离散,互相没有关联,不需要 ACID,容量需要可扩展?用 NoSQL!

  • 业务数据互相关联,需要保证 ACID,存储容量可预测在一个相对范围?用传统关系数据库!

  • 业务数据需要做数据分析,需要关联多表,执行聚合等操作?用分析型数据库!

如果让我们回答上述问题,我们的回答只有一个:TiDB 4.0!

Real-Time HTAP

我们一直有一个愿望,当用户在使用 TiDB 的时候,并不需要太关注自己的业务到底是 OLTP 类型的,还是 OLAP 类型的(因为很多时候,用户自己其实也并不能很好的对业务进行区分),无论怎样的 SQL,都能在 TiDB 上面高效率的执行。这个愿望,在 TiDB 4.0 终于得到了实现,我们提供了一套 Real-Time 的 Hybrid Transaction/Analytical Processing (HTAP) 架构解决方案:

1-htap-架构解决方案

  1. 实时的强一致性。在 TiDB 里面更新的数据会实时的同步到 TiFlash,保证 TiFlash 在处理的时候一定能读取到最新的数据。

  2. TiDB 的 SQL 计算层可以智能判断选择行存或者列存,以应对各种不同的查询场景,无需用户干预。

Serverless

在 TiDB 4.0,我们不光在 Cloud 上面支持了 Real-Time HTAP,也引入了弹性调度系统,真正的让 TiDB 在 Cloud 上面变成了一个 Serverless 数据库。

现在,用户只需要在云上(或者自己的 K8s 集群)使用最小规模集群部署 TiDB 集群,配置好规则(譬如当 TiDB 的 CPU 超过 50%,自动扩容一台 TiDB 节点),TiDB 就会根据用户自身的业务负载,自动做一些事情,包括:

  1. 弹性的扩缩容,当业务高峰来临,TiDB 会自动增加实例,满足业务请求,反之也能自动收缩实例;

  2. 自动分散读负载高的热点区域;

  3. 热点隔离,将热点业务数据移动到单独的实例上面,保证不影响其他业务。

这个功能在 4.0 中第一次亮相,我相信这个功能会成为未来很多可能性的基石。

Performance

相比于 TiDB 3.0,TiDB 4.0 在性能上面,取得了巨大的进步,在 Sysbench 和 TPC-C 等 OLTP 的 Benchmark 中,大多有 30% ~ 50% 的性能提升,对于类似 TPC-H 类型的查询,速度也有大幅度的提升,另外对于实时分析类的查询加上 TiFlash 还会有更进一步的提升。如下是在一些通用性能测试场景下面的数据:

配置:

组件 实例类型 数量
PD AWS m5.xlarge 3
TiKV AWS i3.4xlarge 3
TiDB AWS c5.4xlarge 3

Sysbench

16 张表,每张表 1000 万数据

2-point-select

3-read-write

TPC-C

纵轴越高代表性能越好

纵轴越高代表性能越好

TPC-H

10G

纵轴越低代表性能越好

纵轴越低代表性能越好

Other Major Features and Improvements

TiDB 4.0 还新增了非常多的特性和改进,无论从安全、生态,以及功能增强上面都有了很大的提升。

在安全上面:

  • 支持 TLS,并且能动态在线对 Certificate 进行更新。

  • Encryption at Rest,支持数据透明加密,保证数据的可靠和安全。

在 TiDB 生态上面:

  • 增加 TiDB 官方的组件管理工具 TiUP,使用 TiUP 用户可以方便的在 1 分钟以内部署好 TiDB 集群,详细可以参考 tiup.io

  • 在分布式系统上面进行故障定位是一件很困难的事情,我们在 TiDB 4.0 提供了一个可视化的 Dashboard,让用户能方便的对 TiDB 性能瓶颈,故障等进行定位,大家可以阅读 Key Visualizer: Observe Distributed Databases to Discover the Unknowns 来看一些实际的诊断事例;

  • 随着用户在 TiDB 存入越来越多数据,如何快速的备份和恢复成了我们的一个很大的挑战。在 TiDB 4.0,我们提供了分布式备份工具 – BR(Backup&Restore),使用 BR,用户可以非常方便的将 TiDB 数据备份到共享存储,云存储(S3)等地方,详细可以参考文章:How to Back Up and Restore a 10-TB Cluster at 1+ GB/s

  • 为了更快速的将业务的数据在 TiDB 内的变更同步给外部系统,TiDB 4.0 提供了 Change Data Capture(CDC) 的支持,大家可以阅读文章 TiCDC: Replication Latency in Milliseconds for 100+ TB Clusters 来了解 TiCDC 是如何做到毫秒级别延迟的数据同步的。

在 TiDB 功能上面:

  • TiDB 4.0 去掉了之前 100MB 的事务大小限制,现在能支持最多 10GB 的事务,有了这个特性,用户可以方便的一个事务里面处理大量的数据,而不用考虑分批处理问题。具体可以参考 Large Transactions in TiDB。另外,TiDB 4.0 也正式将悲观锁模式作为自己的默认事务模型,使用悲观锁,TiDB 4.0 能更好的去兼容 MySQL,也能方便用户更方便的将自己的业务从 MySQL 迁移到 TiDB 中,详见 Pessimistic Locking: Better MySQL Compatibility, Fewer Rollbacks Under High Load

  • 在 TiDB 长时间运行过程中,随着数据的变更,优化器可能会选错索引,出现慢查询,影响业务。为了解决这个问题,在 TiDB 4.0,我们引入了 SQL Plan Management(SPM),通过 SPM,TiDB 能很好的控制查询优化器尽量选择最优的执行计划,用户也不需要修改代码去显示的添加 force index 来控制优化器,详见: SQL Plan Management: Never Worry About Slow Queries Again

除了上面提到的特性,TiDB 4.0 还新增了 Sequence,Flashback,Case-Insensitive Collation,Add/Drop primary key 等特性,大家可以在使用 TiDB 4.0 的时候体验。

总结

作为一款里程碑产品,我们有理由相信,TiDB 4.0 会给大家带来更多的惊喜,也欢迎大家开始使用 TiDB 4.0,多给我们反馈,共同完善 TiDB,一起打造面向未来的数据库产品。

在此,还要特别感谢 TiDB 开发者社区所有小伙伴的贡献!TiDB 开发者社区以 SIG(Special Interest Groups) 为单位管理组织开发者。每个模块都有其固定的 SIG 负责新功能开发,性能优化,稳定性保障等。如果您想要成为 TiDB 的开发者,加入感兴趣的 SIG,与一线工程师面对面讨论,无疑是最好的方式。以下是截至 TiDB 4.0 GA 发布时 ,为 TiDB 4.0 作出贡献的 TiDB 社区开发者名单及其对应的 SIG 名称。

感谢以下组织的社区贡献者:

SIG name GitHub ID Organization
raft ice1000 JetBrains
execution Rustin-Liu Morningstar
ddl spongedu Tencent
execution AerysNan ThssSE
raft morefreeze xiaomi
coprocessor hawkingrei bilibili
execution hey-kong CS
execution jacklightChen East
coprocessor Renkai fordeal.com
execution erjiaqing Google
coprocessor cireu Guangdong
scheduling mantuliu Hive
tiup qinzuoyan Xiaomi
engine fredchenbj Yidian
execution shihongzhi Youdao

全部贡献者名单:

SIG name GitHub ID
coprocessor Fullstop000
engine fredchenbj
execution b41sh
execution mmyj
execution js00070
execution tsthght
execution shihongzhi
execution tangwz
raft Fullstop000
ddl lysu
ddl Deardrops
docs YiniXu9506
docs juliezhang1112
docs ericsyh
docs aylei
docs weekface
docs crazycs520
docs anotherrachel
planner zz-jason
planner XuHuaiyu
planner lamxTyler
planner SunRunAway
planner wjhuang2016
planner imtbkcat
coprocessor hawkingrei
coprocessor koushiro
coprocessor cireu
coprocessor Renkai
coprocessor codeworm96
ddl reafans
ddl spongedu
ddl Rustin-Liu
docs lance6716
docs xiaojingchen
docs IzabelWang
execution erjiaqing
execution hey-kong
execution AerysNan
execution spongedu
execution pingyu
execution TennyZhuang
execution ekalinin
execution jacklightChen
execution AndrewDi
execution Rustin-Liu
k8s xiaojingchen
k8s shinnosuke-okada
k8s mikechengwei
k8s shonge
planner foreyes
planner SeaRise
raft morefreeze
raft csmoe
raft ice1000
raft hhkbp2
scheduling mantuliu
tiup qinzuoyan
docs gmhdbjd
docs 3pointer
docs tiancaiamao
docs lamxTyler
docs kissmydb
docs july2993
docs lysu
docs kolbe
docs csuzhangxc
docs zhouqiang-cl
docs superlzs0476
docs Yisaer
docs zimulala
docs huangxiuyan
docs Deardrops
docs tennix
docs amyangfei
docs liubo0127
docs lichunzhu
docs tangenta
execution k-ye
execution xiekeyi98
k8s cwen0
planner tiancaiamao
planner wshwsh12
planner lonng
planner Deardrops
raft nrc
raft siddontang
raft ngaut
raft disksing
raft Hoverbear
tiup c4pt0r
tiup YangKeao

TiDB 4.0: The Leading Real-Time HTAP Database is Ready for Cloud

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8055.html

(0)
上一篇 2023-03-08 14:30
下一篇 2023-03-08

相关推荐

  • redis三个问题_redis的原理

    redis三个问题_redis的原理一般我们对缓存读操作的时候有这么一个固定的套路: 如果我们的数据在缓存里边有,那么就直接取缓存的。 如果缓存里没有我们想要的数据,我们会先去查询数据库,然后将数据库查出来的数据写到缓存中。 最后将数据

    2023-02-21
    94
  • 数据库未来发展趋势(下)「终于解决」

    数据库未来发展趋势(下)「终于解决」新应用驱动的数据库(5G、车、终端云) 从数据库诞生开始,新的应用领域就不断为数据库带来新诉求,例如巨大的数据量、更短的数据处理时间、更高的可靠性、新的数据类型,而数据库也在满足这些新的诉求的同时得…

    2023-04-13
    137
  • MySQL查询性能优化七种武器之索引下推「建议收藏」

    MySQL查询性能优化七种武器之索引下推「建议收藏」前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下:
    MySQL查询性能优化七种武器之索引潜水
    MySQL查询性能优化七种武器之链路追踪
    今天要讲的是MySQL的另一种查询性能优化方式

    2023-06-01
    98
  • linux下oracle启动关闭

    linux下oracle启动关闭1.启动oracle端口监听 lsnrctl start 2.启动数据库 sqlplus / as sysdba 回车 开启数据库:startup 关闭监听 lsnrctl stop 关闭数据库服务

    2023-03-11
    112
  • MySQL:安装与配置[通俗易懂]

    MySQL:安装与配置[通俗易懂]
    一、MySQL安装 0、下载社区版安装包 官网下载地址:https://dev.mysql.com/downloads/installer/ 1、进入安装页…

    2023-04-08
    125
  • 如何查看conda版本

    如何查看conda版本Conda是一个开源的软件包管理系统和环境管理系统,它可以在各种操作系统上管理、部署、运行各种不同版本的软件包和依赖项。由于Conda更新频繁,我们需要获取当前安装的Conda版本信息和最新的Conda版本信息。

    2024-05-04
    17
  • Host Arrays – performance gain[通俗易懂]

    Host Arrays – performance gain[通俗易懂]To achieve a better performance in Pro*C/C++ application, using host arrays would be efficient than

    2023-03-29
    123
  • 你应该知道的数仓安全:都是同名Schema惹的祸

    你应该知道的数仓安全:都是同名Schema惹的祸摘要:我是管理员账号,怎么还没有权限?当小伙伴询问的时候,我第一时间就会想到都是用户同名Schema惹的祸 本文分享自华为云社区《你应该知道的数仓安全——都是同名Schema惹的祸》,作者: zhan

    2023-06-11
    88

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注