TIDB 5.2 - 平面处理更容易且更快

2021-09-01 pingcap. 产品

作者:pingcap.

杂种:王王;编辑:汤姆德湾,Queeny Jin

宣布TIDB 5.2

我们很自豪地宣布发布TIDB 5.2。作为企业级数据库,TIDB的在线交易处理(OLTP)和在线分析处理(OLAP)的大规模数据的功能已经在各种全球产业中进行了战斗,互联网,物流,零售和零售在线游戏。

这些行业的企业大或小,越来越多地面临适应或在不断变化的市场中引领的挑战。为了保持竞争优势,他们需要根据新数据做出明智的决策,并获得对其业务的单一和实时的真实来源。但是,他们面临着巨大的挑战:

  • 从不同蔓延的洞察中提取洞察的复杂性数据筒仓

  • 传统数据库基础架构无法处理不可预测的交通飙升

  • 复杂性技术堆栈要求高维护。

  • 不断变化数据满足他们智能,实时服务的需求。

  • 实现更快展示洞察适应他们的业务增长。

  • 在保持安全性和合规性问题的同时保持业务连续性,具有高可用性。

基于他们的反馈,TIDB 5.2侧重于现实世界的情景,旨在推动交易和分析处理的界限,甚至进一步推动巨大,实时数据处理的需求。测试结果表明,TIDB 5.2在稳定性,实时性能和可用性方面表现优于TIDB 5.1 - 无论是大规模集群的繁重工作量还是高度同时写入和读取。我们认为TIDB 5.2将继续帮助公司解锁业务潜力和加快数字转型。

这篇文章仅显示了TIDB 5.2中的一些亮点。有关功能和改进的完整列表,请查看TIDB 5.2发行说明

TIDB 5.2亮点

近年来,越来越多的公司在如何实时查询和分析全数据。为满足其业务需求,他们对不同场景的不同数据存储解决方案,在线和离线数据分离定居;但是,这可能导致数据芯盘和复杂数据堆栈。拥有一个人的业务,它变得越来越有挑战性。创建TIDB以通过简化数据堆栈来解决此问题,并通过它所应该的方式带来数据库。TIDB 5.2通过提供以下新的和令人兴奋的功能进一步迈出一步:

在繁重的工作量下无摩擦客户体验

关键任务应用程序需要低查询延迟以维持一致而无摩擦的客户体验,尤其是当有重写工作负载时。它们主要是点查询,以及一些短程,基于索引的查询。在这种情况下,可以采用主要和辅助架构来解决MySQL的可伸缩性限制。DM数据迁移工具将来自多个MySQL分片的上游数据汇总到TIDB群集。然后,TIDB服务器从数据传输过程中处理密集查询,确保已成功处理事务。

TIDB数据迁移

在重写工作量下提高大型集群的稳定性

此释放余额执行数据定义语言(DDL)语句时数据区域的范围,并使您能够更快地索引大表。

当存储节点缓慢时,领导者将自动传送到其他正常功能节点以管理流量。如果单个节点困难,这可确保整个群集的整体吞吐量。

RAFT LOG CACH缓存和RAFT消息的内存使用严格限制,这可以防止在重写工作负载下TIKV的OOM问题。

优化群集资源使用

TIDB 5.2允许您根据QPS优先考虑热点和平衡群集资源。您可以使群集CPU分布更加平衡,避免由单个节点引起的瓶颈。为了验证其性能,我们模拟了一个场景,其中在小表中观察到热点。结果表明,CPU使用率显着优化,而QP的数量几乎翻了一番。您还可以安排Tiflash的分析处理(AP)引擎的热点,这是HTAP方案中负载平衡的巨大一步。

增强数据迁移效率

早期版本的DM消耗更多CPU资源。例如,当DM节点执行Binlog Replication,然后击中1,000至3,000 QPS时,它会消耗35%至50%的CPU资源。要解决此问题,DM v2.0.6若干改进,包括继电器日志读取和写入以及数据转码。根据测试结果,DM V2.0.6可以将CPU使用率降低到50%。

此版本还可以优化数据复制延迟。从MySQL分片的写入复制并将其汇总到TIDB(估计在聚合后估计200,000 QP)中,DM可以将复制延迟减少到少于一秒钟的时间。

更智能的数据检索

对于电子商务平台,大的销售日可能意味着比平常的疑问多,查询性能慢。在这种情况下,询问通常用于短程,基于索引的数据。可能的因素还包括多样化的查询语句,多表加入查询,数据聚合,子查询,TOPN运算符和分页限制。此外,企业还有不同的数据量,这也影响数据处理。

为了提高查询效率,我们需要更智能的优化器,使数据库可以选择正确的索引的最佳执行计划,并更快且稳定地返回结果。

改善索引选择

TIDB使用统计数据来确定要选择的索引。在TIDB 5.2中,当统计数据过时或缺失时,TIDB优化器将首先启动启发式规则以减少可能索引的数量,从而提高了索引选择的准确性。

我们还增强了成本估算过程,使优化器自动选择正确的索引而不是手动选择正确的索引为SQL语句创建绑定

改进了SQL计划管理的可用性

SQL Plan Management(SPM)是一组执行SQL绑定以手动介入的函数,并使用SQL执行计划进行操作。此释放通过允许您允许您提供SPM的可用性:

  • 创建绑定时的时间戳对SQL语句进行排序。

  • 确认SQL语句是否通过执行来创建绑定解释

  • 使用bodklist屏蔽某些自动捕获的语句绑定。

适用于更快的业务决策的实时洞察

当企业需要做出快速决策时,实时商业智能至关重要。但是,随着数据大小的增长,我们如何将这种敏捷性保持?

Tiflash支持MPP模式下的查询执行,从而最大化计算资源并实时实现查询性能。越多的功能或运算符TIFlash支持,TIDB的SQL语句越多可以向下推向TIFLASH进行计算。换句话说,即使在每个版本中仅支持一个功能或操作符,也会显着提高相关查询的效率。

TIDB 5.2增加了数十个功能和运算符,可以按下(例如Mod,Lenge,Log,Round,Date和Inet_Aton),进一步提高了Tiflash的SQL语法支持。你可以看到发行说明中的​​完整列表。测试结果表明:

  • 在单线程处理中,简单查询的延迟可以从几十秒到小于一秒减少到小于一秒。复杂查询的延迟可以从几分钟到大约一秒减少。

  • 在多线程处理中,简单查询的延迟可以减少到小于一秒。复杂查询的延迟可以减少到大约10秒。

我们计划在明年内支持剩余的MySQL函数和运营商,并继续优化查询响应时间。

在高并发工作负载下降低运营成本

对于快速增长的业务和数据驱动的创新方案,您可以信任TIDB来管理高度并发工作负载,并且由于其水平可扩展性和实时HTAP功能。该释放进一步提高了对大数据的实时分析,这降低了运营成本并提高了稳定性。Tiflash现在提供更好的写性能,MPP执行,并发支持和群集维护。

TIDB用例

所有这些令人兴奋的功能和改进使TIDB适用于以下用例:

  • 情景1:来自客户的高度同时和密集的查询破坏了关键任务应用的稳定性,进一步损害了客户体验。

    • 通过加速大型表的在线指数创建,实现自动领导者转移,并优化TIKV内存使用情况,提高大规模集群的稳定性。

    • 通过优化热点调度算法和实现基于QPS的统计信息,增强群集资源使用。TIFLASH,柱状存储引擎,现在还支持Hotspot Scheduling。

    • 通过切割TIDB数据迁移工具(DM)的数据复制延迟来提高数据迁移效率。在每秒200,000次查询的负载压力下(QPS),是在99%的时间内的一秒钟。

  • 方案2:当执行实时查询,数据检索过程可能变得不稳定,而且效率会有所不同基于数据的大小来查询。

    • 通过引发启发式查询优化和提高成本估计精度来改进索引选择。

    • 创建绑定时,提高了SQL计划管理的可用性。

  • 场景3:复杂的实时查询阻碍了及时的业务决策。

    • 通过实现更多运算符来减少查询响应时间以便向下,从而充分利用大规模并行处理(MPP)发动机。
  • 情景4:当存在巨大的并发写入压力时,实时分析功能和稳定性受到挑战,导致额外的操作和维护成本。

    • 当高峰时段的流量加倍或甚至三倍时,可以提升写性能。

    • 通过防止死锁增加MPP稳健性。

    • 在重写工作负载下高达30或更多的高并发全表查询的增强功能。这可以减少或消除内存失控(OOM)错误。

    • 维持Tiflash簇时减少对应用侧的影响。系统可以自动或使用手动干预从不稳定状态恢复。前端的新查询在缩放期间不会中断。

试试看!

如果这是您第一次听说TIDB, 你可以下载TIDB 5.2并试一试。有关更多信息,您可以查看我们的文件实例探究

如果您正在运行早期版本的TIDB并希望尝试5.2, 读使用Tiup升级TIDB。你也欢迎加入我们的社区松弛并与我们分享您的想法。

作为Max Liu,我们的创始人之一,请:“将复杂性留给TIDB和用户简单。”此版本是TIDB推动OLTP和OLAP用户方案的边界时的大步骤。根据用户的反馈,我们将继续优化TIDB。

我们要感谢我们的TIDB社区为他们的忠诚工作和帮助我们改进的TIDB用户。特别感谢李自动,腾讯互动娱乐集团,小米,以及所有测试TIDB 5.2.0的公司,并给了我们反馈。我们的共同努力和开放协作将进一步驱动TIDB成为一个领先的世界级数据库。

公告

准备开始用TIDB开始吗?