数据库 频道

企业TP+AP需求如何解决?腾讯云提供HTAP架构全链路闭环方案

  在动辄谈云原生数据库、分布式数据库、图数据库、时序数据库等新潮名词的时候,在数据库领域再谈TP和AP,过时了吗?答案是没有。作为数据库的两种基本类型,以前TP、AP是分开场景来算,必须做选择,鱼和熊掌不可兼得。而现在,为应对大规模事务和分析型需求,TP&AP融合成为近几年数据库技术发展的重要方向之一。

  但是,构建HTAP数据库面临着数据一致性和计算实时性等挑战。如何有效解决HTAP落地问题,在一个生态内同时支持TP与AP的工作负载?腾讯云数据库总经理林晓斌与笔者分享了腾讯云HTAP数据库解决方案,并详细解读了HTAP数据库应用实践场景和未来发展趋势。

  如何打破事务处理和分析之间的“墙”?

  针对HTAP这一话题,其实业内早有探讨,并不新鲜。作为混合OLTP和OLAP业务同时处理的系统,2014年Gartner公司给出HTAP严格的定义:混合事务/分析处理(HTAP)是一种新兴的应用体系结构,它打破了事务处理和分析之间的“墙”。它支持更多的信息和“实时业务”的决策。

  “HTAP不是新课题,但确实是我们现在碰到的一些更具有挑战性的问题之一,这个也和时代有关”。腾讯云数据库总经理林晓斌认为,随着要处理的数据量越来越大,尤其是百亿级别的数据已经出现,同时,对数据分析的需求开始增加,实时性要求越来越高,数据量变,对计算要求就变高,客户需求越来越严苛,HTAP已经成为一个挑战。“第七次人口普查,给应用后台分析来说时间是非常短的,整个数据量非常大,我们也越来越深刻的感觉到HTAP这种解决方案的挑战。”

  为什么需要HTAP?“如果用一句话来说,HTAP就是一个生态内需要支持TP和AP的工作负载”。在此之前的大部分业务部署中,大多会把TP和AP分开,在中间可能有ETL或者流复式的技术将两套系统进行交互。但更理想的情况是可以在一套系统中同时完成两种业务类型的支持。腾讯推出的HTAP就是从具体的需求出发,更偏向于TP,同时兼顾了比较好的AP处理能力,在一套系统里尽量做到比较好的兼容。林晓斌从延迟、并发、吞吐、一致性四个方面做了诠释。

  首先是延迟。针对的是数据库中需求写下去的反馈时间,目前基本都能达到毫秒级。作为HTAP系统,TDSQL 支持行列混合存储的。行存储是TDSQL的基本存储格式,为了支持高效的OLAP,TDSQL也提供了完整的列存混合储能力,业务可以根据自己的需要对写入数据库中的数据选择需要的存储格式。TDSQL 的列存储能力包括两种,其一是轻量式压缩。第二种是透明压缩,可以在大量查询分析的时候减少IO访问量,提升查询效率。林晓斌透露,在第七次全国人口普查系统案例中,TDSQL的异构库海量数据同步延迟达到分钟级。

  其次是并发。如果用户需要在事务或者并发交易量上有要求的话,就需要一套比较好的分布式事务的系统。并发经过多年的发展其实有多种演进方案,AP系统如果一条一条写的话性能支撑是不够的,如果并发写的话,串行构建AP的数据,可能十万行数据,延迟就很明显。TDSQL 支持MPP架构,支持并行计算。此外,TDSQL 在高速并行计算方面从三个层级:节点级、进程级以及指令级并行进行优化,从而满足复杂查询、实时计算的高性能要求。

  另外是吞吐。AP系统存储比较好,尤其是查询能力或者单点并发,而OLTP的数据量相对较小,很多中小型的系统都不会达到TB级的数据量,但对事务的要求和查询请求的要求会比较高,吞吐达到百万级TPS以上。TP系统需要跟上AP的吞吐能力和一致性,GTM是TDSQL 集群中负责处理事务信息的模块,它的处理能力直接决定了系统的事务吞吐量。而且GTM是系统中唯一的单点,它的处理上限直接影响到系统处理能力的天花板。为此腾讯云数据库团队对 GTM进行了专门的优化和设计。主要集中在网络带宽、CPU使用率、系统锁以及免锁队列四个方面。

  最后是一致性,这里指的不是落地就一定能实现的最终一致性,而是是强一致性这个挑战。TDSQL 团队通过一致性建模技术,从概念、模型、基于模型的操作、事务模型框架、数据结构和高效算法设计等多个角度,基于TDSQL实现了“多级一致性”技术,该技术在正确性方面,给出了满足强一致性的线性可串行化、顺序可串行化级别的定义和证明等,使得前述的事务一致性方面的数据异常如写偏序、分布式一致性方面的分布式异常如Steal read等问题被消除。而在性能方面,有着优异的表现。

  “HTAP系统可以解决TP与AP之间的数据同步链路,但也有种声音担忧HTAP系统做成大锅汇,出现TP性能不如纯TP,AP性能不如纯AP,这其实是取决于实现形式,还有内部的实现机制。”林晓斌表示,作为数据库服务提供商,系统应该提供很多灵活的能力。比如腾讯云数据库的实现模式就是TPSQL,从整个架构来说TPSQL加DPS再加一个AP引擎,在这种情况下,即使一个用户要求TP毫秒级的响应,AP可以到分钟级的响应,这个时候其实可以做到,TP的多个节点用强一致发挥,但是AP异步同步。

  提供从源到端的全链路闭环方案

  “当前HTAP有几种不同的方案,有很多把HTAP做到整个系统的数据库,基本上认为把组件扩展外延搭积木,整个基本流程变化不大。还有一些解决方案直接在TP系统上做分析,另外一个思路上是直接在AP系统上增加TP能力,目前来看没有很成功的案例。”林晓斌表示,当前的HTAP系统解决方案主要有两大痛点,一是TP与AP之间的数据同步链路,在实时性和稳定性之间不好把握,举例来说,导入太快,会造成AP端负载较高,影响查询性能。而导入太慢,带来的延迟性较大,实时性不免受到影响。二是数据一致性方面缺乏完整的方案。包括UPDATE/DELETE的同步、DDL语句的同步以及水平扩容过程中的数据一致性等等。

  如何解决这些痛点?林晓斌认为,应该是提供源到端的全链路闭环。用户视角来说就是一个入口,一个出口,甚至入口和出口做到同一个,降低接入的难度。腾讯云数据库的思路就是提供一整套稳定的解决方案,让用户感觉到使用一致性的同一个系统,将数据同步、延迟、一致性校验等工作去实现。

  该方案可以实现系统的稳定性。在源端,通过无锁迁移与binlog订阅从TP节点同步数据,从而降低TP节点的影响,在AP侧通过修改内核,增加更多的观测指标与诊断信息。AP系统单独写入非常慢,一行一行写可能一秒写两三万,而DTS通过批量写入的方式,提高AP系统的吞吐量,可避免高频写入对AP造成的负载冲击;系统通过内核暴露的关键指标(比如小文件个数,请求负载等),自动调节批量的大小与写入的频率,实现写入的自动拥塞控制;AP系统一方面把信息暴露给外面,一方面保证AP系统能写进去,也不会导致浪费。而系统知道能接受多大的写入量,用这种方式来调节窗口。而DTS后续会通过旁路写入的方式,进一步提升AP节点写入的稳定性。

  “在写入数据的时候通过不同数据类型做区分,有些数据是实时的,需要强同步,可以写进系统以后进行同步,超过80%的数据应用是可以接受TP写完,通过AP旁路方式写进去,保证最终一致性。”林晓斌介绍,通过让DTS和AP、TP系统形成联动,避免出现黑盒,这样调整的能力就比较高,可以通过这样的方式实现系统的稳定性。

  其次,实现数据的一致性。数据一致性要求自动映射,在生产系统里常规数据写入,数据库里面有逻辑日志,这些日志可以环节数据的内化,可以同步到系统当中。实现数据的一致性,对TP系统有一类调整,第一是数据类型的挑战,第二是系统做迁移的挑战,另外AP系统本身也有扩容的需求。在这个过程中,实现业务写入和读取数据能够实现无感知,常见做法是先有一个AP,设置节点,然后再进行扩展,做数据同步和拆分。腾讯云在探索一些本地扩容的方法,实现AP集群的一致性水平扩容。

  对于HTAP的服务未来如何发展?林晓斌表示,后续可能增加新的角色,管理所有的节点,包括对整个集群的信息结构的控制,做统一管理。其次是加入节点和水平过载过程中,集群统一管理实现从源到端的闭环。“这个路线需要更多的细节的把握和优化,核心的点还是AP系统怎么无缝的接到整个体系里,把内部信息暴露出来提供给整个系统的能力,最终保证系统的稳定性,这是这个系统最大的挑战。”

  时代呼唤应势而为、勇于担当者。把握关键之年,做好对全行业有益的事情,这样的担当弥足珍贵。林晓斌表示,虽然接下来挑战重重,而且技术不断变换,但HTAP是一个可以深耕的领域,又可以明确感知到在生产或者生活领域的系统当中,需求一直存在,腾讯云数据库的努力和贡献也就一直会在。

特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章