全部产品
Search
文档中心

云原生数据库 PolarDB:只读列存节点开启Serverless

更新时间:Oct 15, 2024

本文介绍了在只读列存节点开启Serverless的操作步骤。

前提条件

PolarDB MySQL版集群的产品版本为企业版,内核版本为8.0版本,且集群中至少已存在一个只读列存节点。

实现形态

优势

业务高峰低谷周期有效减少成本

Serverless架构的优势在于其能够应对负载的波动,在低谷时段自动降配,在高峰时段自动升配,从而有效地降低成本。例如:一天中12小时为业务高峰期,需要32核64 GB的配置来满足性能需求,12小时为业务低谷期,16核32 GB的配置即可满足性能需求,那么基于16核32 GB配置的Serverless架构相比32核64 GB配置,可以减少25%的计算节点成本。

针对Serverless架构的多项优化

列存索引针对Serverless架构的弹性资源特性进行了如下多项优化,进一步提升了性能和使用体验:

  • 资源利用率优化:只读列存节点具有全面的资源管理机制,支持多个系统关键参数的在线配置,如缓存(Cache)、线程池、执行内存等。在Serverless架构中,当资源自动扩展或缩减时,这些参数会自动调整,确保资源得到最大化利用。

  • SQL排队优化:只读列存节点主要用于分析型场景,为了使复杂SQL能够快速运行,通常会给单个复杂SQL分配较多资源,复杂SQL增多会导致系统资源紧张,导致后来的简单SQL被复杂SQL阻塞,产生因排队而造成的慢SQL问题。在Serverless架构中,只读列存节点会根据SQL排队情况自动增加资源,以减少因排队而造成的慢SQL问题。

    说明

    支持该项优化的内核版本如下:

    • PolarDB MySQL版的大版本为8.0.1时,小版本需为8.0.1.1.39及以上。

    • PolarDB MySQL版的大版本为8.0.2时,小版本需为8.0.2.2.20及以上。

  • 启动时加载列索引速度优化:重启集群后只读列存节点需要重新构建内部索引信息(通常需要几分钟),在此期间列存索引为不可用状态,在Serverless架构中,只读列存节点会利用弹性资源加速这一重建过程,使其能够更快的进入可用状态。

    说明

    支持该项优化的内核版本如下:

    • PolarDB MySQL版的大版本为8.0.1时,小版本需为8.0.1.1.36及以上。

    • PolarDB MySQL版的大版本为8.0.2时,小版本需为8.0.2.2.20及以上。

  • 日志回放加速:列存索引是基于物理日志回放构建的,但由于系统会将的大部分资源用于支持查询SQL,构建列存索引的资源可能不足,导致列索引日志回放延迟增加,这种延迟可能会导致查询被路由到其他节点或需要等待日志回放完成,从而产生慢SQL。在Serverless架构中,只读列存节点会自动增加回放相关资源,加速日志回放性能。

    说明

    支持该项优化的内核大版本是PolarDB MySQL版8.0.1,且小版本是8.0.1.1.45及以上。

  • DDL加速优化:对列存索引进行DDL操作时,需要消耗较长时间。在Serverless架构中,列存节点会自适应增加处理DDL操作的线程资源,以加速这一过程。

    说明

    支持该项优化的内核版本如下:

    • PolarDB MySQL版的大版本为8.0.1时,小版本需为8.0.1.1.44及以上。

    • PolarDB MySQL版的大版本为8.0.2时,小版本需为8.0.2.2.25及以上。

操作步骤

在固定规格的只读列存节点上设置节点资源弹升范围

  1. 登录PolarDB控制台

  2. 在左上角,选择集群所在地域。

  3. 找到目标集群,单击集群ID。

  4. 基本信息页面的数据库节点区域,单击开启Serverless

  5. 开启Serverless对话框中,设置单节点资源弹升上限单节点资源弹升下限,关于单节点资源弹升上限单节点资源弹升下限的更多详细说明请参见开启固定规格集群的Serverless功能

  6. 单击确定

    设置成功后,列存节点会在原来的固定规格基础上,叠加Serverless的动态弹升能力。

    image.png

创建无固定规格的只读列存节点

  1. 登录PolarDB控制台

  2. 在左上角,选择集群所在地域。

  3. 找到目标集群,单击集群ID。

  4. 基本信息页面的数据库节点区域,单击开启Serverless

  5. 开启Serverless对话框中,设置只读列存节点个数,并单击确定。此处以创建一个只读列存节点为例。

    设置成功后,PolarDB会自动创建一个1~32PCU动态弹升的只读列存节点。

    image.png