GaussDB(for MySQL) Serverless全面商用:无感弹性,极致性价比

本文分享自华为云社区《GaussDB(for MySQL) Serverless全面商用:无感弹性,极致性价比》,作者: GaussDB 数据库。

技术背景

对于现代企业级IT系统,数据库往往是作为底座一般的存在,数据库的稳定性、可靠性如果难以保障,整个系统的平稳运行将无从谈起。出于如上考量,在部署数据库资源时,客户基本都会较保守地进行配置,包括但不限于计算、内存、存储等多种资源及参数设置,通过一定程度的资源冗余来保障业务高峰时数据库的正常运行。

然而,在业务波谷期,冗余配置的数据库资源会大量闲置,成本空转,而在面对预期外的激增业务压力时,即使已经保守配置,数据库资源也有可能出现短时间的不足情况,系统整体有受损风险。

除了以上典型的企业级用户,云上还存在大量低频小规格的数据库使用场景,如研发测试环境、小程序云开发、学校的实验教学环境等。这些场景中,用户往往对数据库规格要求不高,但也有一定业务连续性要求,不能通过不断创、删按需实例解决,即使购买较低配置的包周期实例,完全无负载的时间段稍长,仍显得成本浪费问题严重。

针对这些客户场景及痛点问题,Serverless数据库无疑是很好的解决方案。数据库集群资源将随客户业务负载动态弹性扩缩,需要时多用,不需要时少用甚至不用,真正做到了负载与资源动态匹配的按量付费模式,助力企业级用户进一步降本增效,同时普惠万千中小客户,彻底打破云数据库的使用门槛。

特性价值

(1)业务无感的秒级弹性:面对负载突增或预期外压力,纵向扩容秒级完成,业务无感知;支持横向扩容,结合proxy负载均衡和高性能全局一致性能力,应用侧可平滑享受弹出的只读来分担流量压力,无需人工介入或业务改造。

(2)负载与资源动态匹配,极致性价比:数据库实时性要求高,但使用需求不稳定,峰均比高的场景,或业务平常整体负载较低,但偶有大幅波动或预期外负载的场景。此类场景下,相比固定规格,serverless实例平均可降低使用成本超30%,特定情况甚至有80% +的成本降低。

实现原理

  1. Buffer Pool快速弹性伸缩,降低伸缩过程对业务的影响
  • 分阶段采用多线程并行处理Buffer Pool伸缩中的页面处理和多个哈希表重新映射。充分利用并行能力,减少Buffer Pool扩缩容时间。
  • 针对扩缩容中涉及到的页面和哈希表对应的内存,采用在临界区外预申请和延后释放等方式,缩短临界区时间,减少对业务影响的时间。
  • Buffer Pool Chunk的初始在临界区外进行,并且在临界区内采用O(1)时间复杂度的方式加入到空闲链表,缩短临界区时间,减少扩容场景对业务影响的时间。
  • 通过遍历事务链表重构锁记录哈希表,避免重构锁记录哈希表时出现的大量无效遍历,缩短重构锁记录哈希表的时间。
  1. 高性能全局一致性,横向拓展对业务平滑

GaussDB(for MySQL)提供基于内核层的高性能全局一致性服务,使得客户在使用横向拓展的serverless集群时,无需担心弹出只读与主节点的一致性问题,保证发往集群任意副本的读请求都可以获得强一致性的结果。

计算节点间通过高性能网络做LSN同步,当业务入口到Proxy层,Proxy会将读请求发送到只读节点,此时若读节点发现LSN落后于主节点,会等待当前的LSN推进到主机最近的LSN位点后,再读取最新数据返回,允许等待的超时时间和超时分发策略用户可设置,真正做到满足各个用户实际场景的高性能全局一致性。

业务场景/流程

  1. 购买Serverless实例
  • 进入购买云数据库 GaussDB(for MySQL)页面。
  • 在"服务选型"页面,计费模式选择"Serverless"。
  • 按需选择算力范围即可,如需横向扩展能力,可在创建完成后设置只读节点数量范围。
  1. 修改Serverless配置

购买Serverless实例后,可根据需要修改Serverless算力的最小值和最大值,包括设置集群中允许横向拓展的只读节点上限,当只读节点已经纵向扩展到设定规格上限,集群中现有的只读节点的CPU使用率或内存使用率仍然满足纵向扩展的条件,则会自动触发只读节点的横向扩展。

总结

GaussDB(for MySQL) Serverless集群,可根据客户业务实时负载,集群资源秒级动态弹降,结合内核深度优化,在各种场景下做到对上层业务透明无感。针对负载峰均比高或负载不可预测的企业级客户,Serverless实例自动弹性扩缩,节省资源浪费同时助力运维效率提升;针对个人开发者、学生实验等中小客户,Serverless实例具备极致性价比,真正将云原生技术普惠万千用户。

附录

  • 本文作者:华为云GaussDB(for MySQL)团队

点击关注,第一时间了解华为云新鲜技术~

相关推荐
华为云开发者联盟4 个月前
最佳实践:解读GaussDB(DWS) 统计信息自动收集方案
大数据·华为云开发者联盟·gaussdb(dws)·gaussdb(dws)·实时查询·统计信息
华为云开发者联盟4 个月前
深度解读KubeEdge架构设计与边缘AI实践探索
ai·边缘计算·kubeedge·华为云开发者联盟·sedna
华为云开发者联盟4 个月前
仓颉编程语言技术指南:嵌套函数、Lambda 表达式、闭包
鸿蒙·编程语言·华为云开发者联盟·仓颉
华为云开发者联盟4 个月前
深度解读GaussDB(for MySQL)与MySQL的COUNT查询并行优化策略
mysql·华为云开发者联盟
华为云开发者联盟4 个月前
Kmesh v0.4发布!迈向大规模 Sidecarless 服务网格
容器·华为云开发者联盟
华为云开发者联盟4 个月前
解读GaussDB(for MySQL)灵活多维的二级分区表策略
mysql·华为云开发者联盟
华为云开发者联盟4 个月前
从基础到高级应用,详解用Python实现容器化和微服务架构
python·docker·微服务·容器·华为云开发者联盟
华为云开发者联盟4 个月前
基于MindSpore实现BERT对话情绪识别
昇腾·华为云开发者联盟
华为云开发者联盟4 个月前
解读MySQL 8.0数据字典缓存管理机制
mysql·缓存·数据字典·元数据·华为云开发者联盟
华为云开发者联盟4 个月前
深度解读昇腾CANN模型下沉技术,提升模型调度性能
大模型·昇腾·cann·华为云开发者联盟