数据库内核那些事,PolarDB HTAP Serverless,打造经济易用的实时分析系统

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 下本从IMCI Serverless核心优势角度的介绍各优化工作内容。

1.前言


In Memory Column Index(IMCI)是云原生数据库PolarDB MySQL的HTAP技术方案,可以通过列存索引优化复杂查询的执行性能,透明地提升了PolarDB MySQL实时分析的能力。关于PolarDB HTAP和IMCI的详细介绍可以参考《400倍加速,PolarDB HTAP实时数据分析技术解密》[1]


图1:PolarDB MySQL HTAP架构


HTAP可以在一套系统中同时高效地处理事务(TP)请求和分析(AP)请求,在提供便利的同时,也对资源调度提出了挑战:HTAP系统的负载存在着典型的分时特点,TP和AP的负载大多发生在不同时段,在处理TP请求时,AP资源可能闲置浪费,反之亦然。因此,HTAP系统更应该感知负载变化,合理调整资源,HTAP系统有着很大的降本增效空间。


PolarDB MySQL Serverless功能已经发布,具有高可用、高弹性、免运维、业务无感等核心优势,该功能可以使数据库集群资源随客户业务负载动态调整规格,在低负载时自动降低规格、节约成本,在高负载时自动提高规格应对流量压力、保障业务稳定,将客户从复杂的业务资源评估和运维工作中解放出来[2][3]。IMCI Serverless在PolarDB MySQL Serverless功能的基础上,针对AP场景在列存节点弹性的及时性、准确度和稳定性等方面做了大量优化,进一步节约列存节点使用成本,提升易用性,提高用户体验。开启IMCI Serverless的用户参考官网手册[4]。下文从IMCI Serverless核心优势角度的介绍各优化工作内容。


2.核心优势

2.1弹得快

当负载增加,列存节点资源压力会随之增加。压力超过警戒线时,列存节点会在宿主机上申请资源,这个过程是原地纵向弹升。大多情况下,本地资源可以满足弹性需求,原地弹可以轻松地做到秒级响应,但是当本地资源不足时,需要在资源充足的其他机器上构建列存节点,这个过程是跨机横向弹。横向弹的挑战点在于业务无感,要求新节点快速冷启动加载数据,并在提供服务时不会因为处于缓存缺页等冷却状态而造成业务性能抖动,即需要同时做好数据迁移和状态迁移。下图展示了原地弹和跨机弹的过程,图中PCU(PolarDB Capacity Unit)是PolarDB弹性资源的基本单位,1PCU约等于1核2GB内存的标准服务能力。


图2:实例原地弹和跨机弹的过程


IMCI存储是Delta-Main结构,在PolarDB计算存储分离的架构下,可以很自然地实现数据迁移。Delta部分数据代表增量的数据,定期合入Main部分,Main持久化在远端共享存储,因此新节点启动只需要从redo log中恢复出少量Delta数据,即可完成全量数据的加载并提供服务,迁移的过程可以在秒级完成。


图3:IMCI 跨机弹的实现


为了优化状态迁移,IMCI存储做了缓存预热。Main的更新模型是Copy-On-Write,结合Main数据本身immutable的特点,让缓存预热更加便利:IMCI在切换前Dump了老节点中的热点数据,在新节点加载热点并完成预热后再提供服务,从而避免了大批缓存失效的抖动。通过快速启动和缓存预热技术,IMCI可以做到及时、业务无感地完成弹升规格。


2.2弹得准

在解决了快速弹资源后,IMCI需要充分利用弹升的资源,将新分配的资源用到提升性能的“刀刃”上。IMCI为此做了一套内部资源调度系统,资源调度系统会评估处理当前负载的瓶颈,按需分配列存节点所有可用的计算资源、IO资源至各个模块,最大化发挥资源,提高系统吞吐。


一个典型的调度场景是HTAP系统中TP与AP流量的分时,例如在白天跑事务写入数据的时段,IMCI会回收查询执行的计算和IO资源,分配给写入模块;在晚上跑分析请求的时段,IMCI会回收写入资源,分配给查询模块,更精准地使用可用资源。


图4:IMCI资源调度系统


此外,除了在写入场景和查询场景之间做资源调度,IMCI还在写入和查询场景内部做了更细节的调度。比如,写入会区分是灌库场景还是批量更新场景,在不同场景下,系统调整写缓存、行列映射缓存、回放线程、刷盘线程等资源的分配,以期更好地适配写入负载;查询则会根据查询请求的复杂度、并发度、排队情况,配置处理每个查询请求可用的资源,以期尽可能打满可用资源,提高查询性能。


IMCI资源调度系统是IMCI Serverless的核心功能,会持续打磨调度规则提高资源分配的合理度,让更少的资源发挥更好的效果。调度系统后续会和行存引擎资源打通,更好地支持行列混合执行,并向多机并行任务调度方向演进,从集群整体资源的角度挖掘更准的调度策略。


2.3降得稳

在流量结束后,回收系统资源可以降低使用成本。但回收策略不当,可能会引起业务抖动。比如一段时间内,查询请求间歇到来,当资源回收时机与查询请求处理时间错位,可能会因为Cache Miss造成间歇性地性能抖动,如下图。


图5:固定弹性规则下业务受损


IMCI Serverless在内核层面做了防抖动功能,资源调度系统会参考近期缓存命中的统计信息,自适应地修正资源规格变更的幅度。此外,在资源回收时,IMCI会以更谨慎的策略,逐步放大回收资源的粒度,降低可能的抖动。


图6:动态弹性规则下业务无损


2.4更易用

IMCI期待Serverless能力可以减轻客户使用列存索引的运维负担,不必评估购买规格,不必关心哪些表需要建列索引,不必探索列存运行期间各种参数应该如何设置才能发挥最佳效果,彻底从规格评估和运维工作中解脱。为此IMCI做了以下完善:


  • 优化无负载时规格的下限,尽可能降低闲时的用户成本:当前IMCI 所有数据相关的组件已经全部支持弹降到底,元数据相关的组件弹性优化完毕后,IMCI Serverless会在闲时以最低规格计费;


  • 自动调整内核参数配置,提供最佳的开箱实践:IMCI资源调度系统可以根据负载瓶颈,自适应地调整各组件的参数配置,比如存储各模块缓存配比、缓存淘汰算法、执行物化策略等,降低用户的学习、测试和运维负担;


  • 优化索引推荐功能:IMCI会根据查询请求,给出索引建议,目前已经完成根据查询SQL建议列索引的功能,后续从内容层面在自动分区、排序键、过滤索引和流计算虚拟列等功能方面进行推荐,把最适合的功能主动“推”给客户。


IMCI Serverless会在易用性方面持续迭代,内核智能地适配用户负载,避免客户需要主动跟踪IMCI的功能发布才能发挥业务的最佳实践。


3.测试效果


我们以一个简单的SysBench write-only场景为例,对比了固定规格列存节点和Serverless列存节点在压力下的复制延迟表现,展示了Serverless节点在成本和性能方面的优势。测试中,SysBench的更新流量打向PolarDB主节点,列存节点通过回放主节点的redo日志,同步数据更新到列索引。我们购买了16c64g规格的主节点,并分别增加了一个8c32g固定规格的列存节点和Serverless列存节点。


在预热后增加流量压力,并在一段时间后减小流量,我们观察固定规格节点和Serverless节点的统计差异。可以看到,由于固定规格列存节点的资源配置只有主节点的一半,它的处理能力跟不上主节点的写入能力,在回放过程中堆积了越来越多待处理的事务,在减小流量前最高堆积达到了13万,产生较大的主从复制延迟。反观Serverless节点,在增加流量前是8PCU资源(8c16g),内存比固定规格列存节点更小,但在增加流量后,通过感知负载并逐步弹升资源,期间没有产生事务堆积,避免了事务堆积造成的查询延迟。在减小流量后,Serverless节点的资源逐步释放。


图7:列存节点的事务堆积


图8:Serverless节点资源的弹性


通过压力测试的对比可以看到,Serverless节点在流量低峰期使用更少的资源成本,在流量高峰期以弹性的能力保证业务无损,实现了降本增效,也减轻了用户评估流量的运维负担。


4.演进计划


IMCI Serverless的演进目标是在业务无感的前提下,进一步提升资源弹性的幅度和灵敏度。


  • 资源弹升更加及时:当前资源分配策略,是宿主机上的负载监控程序驱动内核资源变化,被动驱动的方式或多或少会出现分配延迟、分配资源不到位的问题;实际上,内核感知负载更加准确,IMCI从内核出发反向资源驱动的方式,可以更加及时并一步到位的反映出需要的全部资源;


  • 跨机横向弹的速度更快,降低切换窗口的影响:IMCI会结合PolarDB云原生三层解耦的技术[5],将热点数据缓存在分布式内存节点中,消除状态迁移、预热的过程,进一步加速跨机弹性;


  • 资源提前弹,做到100%的业务无损:用户突发流量时,若备用资源池不足,需要临时的跨机资源调度;支持用户自定义的定时弹性,可以在一定程度上减少临时调度,系统可以在定义时间前准备好用户定义的资源规格;此外,IMCI也计划通过历史流量预测未来流量,做到提前调度;


  • 多机弹性与资源隔离:复杂分析的SQL需要多机并行执行来加速,IMCI Serverless后期会感知负载,弹出多个节点临时处理复杂SQL,面向典型的OLAP负载做优化;此外,考虑到复杂SQL的处理可能会消耗大量计算资源,为确保资源隔离,IMCI会通过proxy划分资源组,多机执行不会跨资源组,比如离线分析的资源组,可以与组内节点多机执行任务,不会占用在线分析组的资源;


  • 资源弹降下限更低,帮助用户节约更多成本:IMCI会继续优化存储组件的常驻资源,最终期望在零流量时,实例资源零消耗,不做计费。


5.参考

[1]《400倍加速,PolarDB HTAP实时数据分析技术解密》

[2] Serverless

[3] 什么是热备切换,有什么技术原理

[4] 列存节点开启Serverless

[5] 《PolarDB:这5年,我是如何“进化”的?》

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
8天前
|
关系型数据库 Serverless 分布式数据库
|
16天前
|
监控 关系型数据库 分布式数据库
【PolarDB 开源】PolarDB HTAP 实践:混合事务与分析处理的性能优化策略
【5月更文挑战第21天】PolarDB开源后在HTAP领域表现出色,允许在同一系统处理事务和分析工作负载,提高数据实时性。通过资源分配、数据分区、索引优化等策略提升性能。示例代码展示了创建和查询事务及分析表的基本操作。PolarDB还提供监控工具,帮助企业优化系统并应对业务变化。其HTAP能力为开发者和企业提供了强大支持,推动技术进步,加速数字化时代的业务发展。
34 1
|
17天前
|
存储 关系型数据库 分布式数据库
【PolarDB开源】深入PolarDB内核:探究存储计算分离架构的设计哲学
【5月更文挑战第20天】PolarDB是阿里巴巴的云原生分布式数据库,以其存储计算分离架构为核心,解决了传统数据库的扩展性和资源灵活性问题。该架构将数据存储和计算处理分开,实现高性能(通过RDMA加速数据传输)、高可用性(多副本冗余保证数据可靠性)和灵活扩展(计算资源独立扩展)。通过动态添加计算节点以应对业务流量变化,PolarDB展示了其在云时代应对复杂业务场景的能力。随着开源项目的进展,PolarDB将持续推动数据库技术发展。
60 6
|
1天前
|
存储 缓存 测试技术
现代化实时数仓 SelectDB 再次登顶 ClickBench 全球数据库分析性能排行榜!
近日,在 ClickHouse 发起的分析型数据库性能测试排行榜 ClickBench(https://benchmark.clickhouse.com/)中,现代化实时数仓 SelectDB 时隔两年后再次登顶,在全部近百款数据库和数十种机型中,性能表现位居总榜第一!
15 1
|
2天前
|
关系型数据库 MySQL 分布式数据库
数据库专家带你体验PolarDB MySQL版 Serverless的极致弹性特性
作为数据库专家,我有幸带大家深入体验阿里巴巴自主研发的下一代关系型分布式云原生数据库——PolarDB MySQL版的Serverless极致弹性特性。在这个云原生和分布式技术飞速发展的时代,Pola
|
2天前
|
关系型数据库 分布式数据库 数据库
数据库内核那些事|PolarDB IMCI让你和复杂低效的子查询说拜拜
PolarDB IMCI(In-Memory Column Index)确实是数据库领域的一项重要技术,特别是当它面对复杂和低效的子查询时,表现尤为出色。以下是关于PolarDB IMCI如何助力解决
|
6天前
|
存储 运维 5G
基于阿里云数据库 SelectDB 内核 Apache Doris 的实时/离线一体化架构,赋能中国联通 5G 全连接工厂解决方案
数据是 5G 全连接工厂的核心要素,为支持全方位的数据收集、存储、分析等工作的高效进行,联通 5G 全连接工厂从典型的 Lambda 架构演进为 All in [Apache Doris](https://c.d4t.cn/vwDf8R) 的实时/离线一体化架构,并凭借 Doris 联邦查询能力打造统一查询网关,数据处理及查询链路大幅简化,为联通 5G 全连接工厂带来数据时效性、查询响应、存储成本、开发效率全方位的提升。
基于阿里云数据库 SelectDB 内核 Apache Doris 的实时/离线一体化架构,赋能中国联通 5G 全连接工厂解决方案
|
7天前
|
SQL 测试技术 OLAP
现代化实时数仓 SelectDB 再次登顶 ClickBench 全球数据库分析性能排行榜!
现代化实时数仓 SelectDB 在时隔两年后再次完成登顶,在全部近百款数据库和数十种机型中,性能位居总榜第一!
现代化实时数仓 SelectDB 再次登顶 ClickBench 全球数据库分析性能排行榜!
|
9天前
|
OLAP 数据处理 Apache
众安保险 CDP 平台:借助阿里云数据库 SelectDB 版内核 Apache Doris 打破数据孤岛,人群圈选提速4倍
众安保险在CDP(Customer Data Platform,客户数据平台)建设中,通过引入阿里云数据库SelectDB版内核Apache Doris,成功打破了数据孤岛,并显著提升了人群圈选的速度
172 1
|
12天前
|
关系型数据库 Serverless 分布式数据库
【PolarDB 开源】PolarDB Serverless 模式:自动扩缩容与成本效益分析
【5月更文挑战第25天】PolarDB Serverless 提供自动扩缩容功能,适应动态工作负载,降低成本。在业务高峰期增加资源保障性能,低谷期减少资源实现成本优化。通过对比传统模式下的成本浪费,示例说明了Serverless如何节省开支。代码演示了连接与查询PolarDB Serverless数据库的基本操作。要充分利用该模式,需合理规划业务、监控性能并结合其他云服务。PolarDB Serverless是弹性、经济的数据库选择,未来将持续创新,助力企业高效发展。
199 1

相关产品

  • 云原生数据库 PolarDB