本文分享自华为云社区《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)时间复杂度的方式加入到空闲链表,缩短临界区时间,减少扩容场景对业务影响的时间。
  • 通过遍历事务链表重构锁记录哈希表,避免重构锁记录哈希表时出现的大量无效遍历,缩短重构锁记录哈希表的时间。

2. 高性能全局一致性,横向拓展对业务平滑

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

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

业务场景/流程

1. 购买Serverless实例

  • 进入购买云数据库 GaussDB(for MySQL)页面。
  • 在“服务选型”页面,计费模式选择“Serverless”。

  • 按需选择算力范围即可,如需横向扩展能力,可在创建完成后设置只读节点数量范围。

2. 修改Serverless配置

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

总结

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

附录

  • 本文作者:华为云GaussDB(for MySQL)团队
  • 华为云GaussDB(for MySQL)官方产品文档:https://support.huaweicloud.com/gaussdbformysql/index.html

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

GaussDB(for MySQL) Serverless全面商用:无感弹性,极致性价比的更多相关文章

  1. 海量数据分析更快、更稳、更准。GaussDB(for MySQL) HTAP只读分析特性详解

    本文作者康祥,华为云数据库内核开发工程师,研究生阶段主要从事SPARQL查询优化相关工作.目前在华为公司参与华为云GaussDB(for MySQL) HTAP只读内核功能设计和研发. 1. 引言 H ...

  2. mysql误删表,无备份

    mysql误删表,无备份 1.操作步骤:https://blog.csdn.net/u011277123/article/details/78018513?tdsourcetag=s_pctim_ai ...

  3. 重新学习MySQL数据库1:无废话MySQL入门

    重新学习Mysql数据库1:无废话MySQL入门 开始使用 我下面所有的SQL语句是基于MySQL 5.6+运行. MySQL 为关系型数据库(Relational Database Manageme ...

  4. kaggle 欺诈信用卡预测——不平衡训练样本的处理方法 综合结论就是:随机森林+过采样(直接复制或者smote后,黑白比例1:3 or 1:1)效果比较好!记得在smote前一定要先做标准化!!!其实随机森林对特征是否标准化无感,但是svm和LR就非常非常关键了

    先看数据: 特征如下: Time Number of seconds elapsed between each transaction (over two days) numeric V1 No de ...

  5. Modelarts与无感识别技术生态总结(浅出版)

    [摘要] Modelarts技术及相关产业已成为未来AI与大数据重点发展行业模式之一,为了促进人工智能领域科学技术快速发展,modelarts现状及生态前景成为研究热点.笔者首先总结modelarts ...

  6. 【经验】GaussDB(for MySQL)性能优化 —— 日志的“快递驿站”

    GaussDB(for MySQL)数据库在写入性能上,在业界同类产品中是最好的,这主要得益于GaussDB(for MySQL)在MySQL内核方面的诸多优化.其中有一项从“送快递”得来灵感的优化— ...

  7. 详解GaussDB(for MySQL)服务:复制策略与可用性分析

    摘要:本文通过介绍GaussDB(for MySQL)读写路径,分析其可用性. 简介 数据持久性和服务可用性是数据库服务的关键特征. 在实践中,通常认为拥有 3 份数据副本,就足以保证持久性. 但是 ...

  8. Spring Cloud实战 | 最八篇:Spring Cloud +Spring Security OAuth2+ Axios前后端分离模式下无感刷新实现JWT续期

    一. 前言 记得上一篇Spring Cloud的文章关于如何使JWT失效进行了理论结合代码实践的说明,想当然的以为那篇会是基于Spring Cloud统一认证架构系列的最终篇.但关于JWT另外还有一个 ...

  9. GaussDB(for MySQL) :Partial Result Cache,通过缓存中间结果对算子进行加速

    摘要:华为云数据库高级内核技术专家详解GaussDB(for MySQL)Partial Result Cache特性,如何通过缓存中间结果对算子进行加速? 本文分享自华为云社区<GaussDB ...

  10. 无感刷新 Token

    什么是JWT JWT是全称是JSON WEB TOKEN,是一个开放标准,用于将各方数据信息作为JSON格式进行对象传递,可以对数据进行可选的数字加密,可使用RSA或ECDSA进行公钥/私钥签名. 使 ...

随机推荐

  1. 在线视频点播网站(python实现)

    本文将会对该项目进行一个简单的介绍,包括项目名称.项目背景.项目功能.技术栈等等. 项目名称 在线视频点播网站开发(python+django) 项目背景 学习完毕python和django之后,想找 ...

  2. SpringCloud对使用者透明的数据同步组件

    一.背景 云端使用Spring Cloud实现,A服务有一些数据,B和C服务也需要A服务的这些数据,但是系统上面只有A服务有数据操作的入口,B和C服务只能从A服务处同步数据到自己的表里面. 解决方案是 ...

  3. ASIC 功能验证VTB

    目标 设计流程 验证设计文档和RTL code之间的关系 RTL code(DUT) - 可以当作是一个黑盒,DUT内部是完全不可见的 白盒验证 - DUT内部RTL完全可见 灰盒验证 - DUT内部 ...

  4. 09-Verilog-并发线程

    Verilog-线程 并发线程 verilog和C语言有一个最大的不同就是并发性 并发--同时进行的过程 module tb_test; int a; initial begin a = 1; a = ...

  5. 【C】《C专家编程》阅读体会

     [来源]https://mp.weixin.qq.com/s/0kmN5knql4yrOuUcnebwIQ

  6. [转帖]利用Python调用outlook自动发送邮件

    ↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 使用Python发送邮件有两种方式,一种是使用smtp调用邮箱的smtp服务器,另一种是直接调用程序直接发送邮件.而在outlo ...

  7. [转帖]神秘的backlog参数与TCP连接队列

    https://www.cnblogs.com/codelogs/p/16060820.html 简介# 这要从一次压测项目说起,那是我们公司的系统与另几家同行公司的系统做性能比拼,性能数据会直接影响 ...

  8. [转帖]A17再次证明苹果才是王者,组装芯片的安卓手机给它提鞋都不配

    http://news.sohu.com/a/653472711_121124371 在挤了两代牙膏之后,苹果终于拿出了性能大幅提升的A17处理器,外媒传出A17处理器的性能提升幅度至少超过四成,相比 ...

  9. 分析fastcache和freecache(一)

    分析fastcache和freecache(一) fastcache和freecache是两个比较简单的缓存实现,下面分析一下各自的实现,并学习一下其实现中比较好的方式. fastcache 概述 f ...

  10. vue中jsx

    //item.vue 文件如下 <template> <div> <h1 v-if="id===1"> <slot></slo ...