为什么Teradata从未惧怕大型需求?

2022-02-18 00:00:00 查询 优化 工作 并发 计划

作者:Carrie Ballinger,在设计工程团队内部从事性能优化工作


我曾经参加过一些大受欢迎的演唱会,它们在能够容纳成千上万观众的大型场馆举办,并且所有门票都被抢售一空:例如在玫瑰碗举办的Metallica乐队演唱会、在洛杉矶体育馆举办的滚石乐队演唱会等。但是,并不是所有的场地都适合举办大量人群聚集的活动。由于空间不足、缺乏隔音设备、或者停车位、厕所或电力设施等基础设施的缺失,很多场地都需要严格限制观众数量。


就像只有一个入口的好莱坞小型俱乐部一样,许多数据库供应商都面临着同时接纳大量活跃用户需求的挑战。因此,他们不得已地对每次允许启动多少个查询,设置一刀切的限制,而不考虑传入请求的资源需求。






Teradata的SQL引擎则是一个例外。在默认情况下,它具有开放政策,据我曾经合作的一些Teradata客户所言,这个数据库为终用户提供了提交“任何查询”的自由。就像玫瑰碗或者洛杉矶体育馆一样,球迷可以从许多不同的入口进入并通过安全通道,Teradata为输入的工作提供了多个入口和安全检查点。


通常情况下,与只有少数用户处于活动状态时的系统行为相比,一套系统在紧张复杂情况下的功能表现指标更有说服力。在以低并发率运行时,技术的进步可以掩盖不可扩展平台的局限性。这就像您在试驾一辆新车时,您会想把它开出高速公路、再给引擎施加一点负荷,而不是简单地绕着障碍物行驶。


SQL引擎能够优雅地处理高需求的原因有很多,让我们来了解其中的一些关键因素:


查询优化

查询计划的建立是查询进入数据库时首先遇到的问题之一。查询计划是如何通过查询搭建答案集合的路线图。在SQL引擎中,查询计划被设计为利用多种不同类型的并行能力,同时大程度地减少了优化器与处理查询的不同并行单元(即AMP)之间的来回通信。



优化程序将查询计划转换为多个大的工作块,我们称为“步(steps)”,这些工作块通过优化程序分派到AMP中。我们会迈出一大步而不是小步走,这样可以减少组件之间的通信成本,同时增加了在每“步”中建立流水线功能的机会。




Teradata的自适应优化器通过一个后视镜一样的审查机制,进一步完善了查询计划。自适应优化器可以反复进行数据库处理和查询计划的构建,从而根据查询执行过程中较早发现的人口统计信息对查询计划进行动态调整。


智能组件

与SQL引擎相互连接的BYNET将来自优化器的每个查询步骤转换为一则消息,而这些消息会被打包并发送到AMP中。BYNET通过为用于同一查询的AMP打开低级通道,从而相互发出信号并在每一次行动过程中做出批量化的决策,从而为提升查询效率做出了巨大的贡献。而这些信号通道只在执行相同查询步骤的AMP之间实例化,从而进一步减少了循环传递更多消息的需求,节约了BYNET资源并加快了查询完成速度。

在大量用户访问系统时,BYNET也扮演着同等重要的角色,它类似于一个守护天使。在向AMP提供工作的同时,它对可能会遇到麻烦情况的AMP也很敏感。如果查询对一个AMP的需求过大,则这个AMP会通知BYNET暂时停止发送新的工作,有时仅需要暂停几毫秒。这使繁忙的AMP可以喘一口气,而其他AMP仍然照常工作。



TeradataSQL引擎通过在系统内部(而不是从外部)尽可能低的级别上对工作流进行控制,使其能够在资源极限附近或在资源极限下运行,而不会耗尽任何资源。这种分散管理拥塞的方法是Teradata在不关闭或丢弃查询的情况下承担更多处理工作能力的核心。


其他嵌入式技术

AMP内部还采用了其他技术来适应高并发情况。同步表扫描(同步扫描)是一项数据库功能,它允许对同一张表进行多次扫描以相互支持并共享I / O,从而将资源用于其他工作。并发用户扫描同一表的次数越多,同步扫描的好处就越大。

多种辅助访问选项也有助于提高查询效率,从而提高可支持的并发工作。当查询中提供了表的主索引值时,将自动使用对行的直接单AMP检索访问。在Teradata中,不同方式的二级索引(有序、散列、非散列)、物化视图和分区技术等在多年以来一直在缩短查询时间、并提高查询的可并发性。


就像大型演唱会的VIP入口和前排座位一样,Teradata的工作负载管理支持其自身的A-list特权和特殊便利,可用于更重要的查询。就像VIP观众把车停在VIP区,那么在演出结束后要离开也同样容易,重要的查询可以在进入和退出系统时获得更快的运作时间,从而提高了整体并发性 


Teradata拥有像Mack Truck这样设计的基础设施,可以应对意外情况的发生,经受打击和考验并继续运行。Teradata不会在工作量开始飙升时就要求在系统中投入更多的硬件,而是会通过制定经济的查询计划,将查询的需求降低到低限度,还可以采用多种嵌入式技术,大限度地利用现有资源。在开始执行查询之后,就可以减少需求并消除低效率的问题。


乍一看,很难知道一个平台是否真的具备可扩展性。在进行产品评估时,必须仔细考虑到现在和将来都需要应对何种数据量和查询的并发级别,这将有助于确定是否可以实现和维持可扩展的性能。在疫情隔离的状态结束之后,我们所有人都可以再次欢聚、一起庆祝许多事情,包括参加现场音乐等。如果您想要VIP停车位、更快捷的安检通道、可以轻松享用饮料和卫生间、保证得到一个好座位、还想要被和您一样的粉丝所包围,那么在那个时候到来时,请前往像Teradata的大型音乐会场馆,我们不会让您失望。 


来源 https://mp.weixin.qq.com/s/ILOpid8ty5ObsAiFHHxTeg


相关文章