双十一是一年一度的购物盛宴,经常会出现几万人抢一个红包或者很多人共同购买一个商品的情况,这就引发了一个数据库比较担心的场景—-高并发。本文将带您了解双十一阿里云RDS数据库背后技术的小秘密。

作为历届双十一重要保障之一的云数据库RDS团队,从参数优化、链路访问、弹性扩容、架构设计等方面应对高并发场景(如秒杀、百万人抢单等),保障双十一顺利进行。

数据库参数

在处理高并发场景的时候,一些特定的数据库参数就成了数据快速响应、平顺处理的关键,如下面列出的几个重要参数:

  • loose_rds_max_tmp_disk_space:控制MySQL能够使用的临时文件的大小。
  • loose_rds_threads_running_high_watermark:控制MySQL并发的查询数目,常用于秒杀业务场景。
  • loose_tokudb_buffer_pool_ratio:控制TokuDB引擎能够使用的buffer内存大小。
  • loose_max_statement_time:控制MySQL查询的最长执行时间。

接下来举例说明loose_rds_threads_running_high_watermark在秒杀场景下的影响。

双十一背后的数据库技术 - 图1

在秒杀活动刚开始的时候,可以看到连接数呈指数级变化,瞬间增加了10倍。

双十一背后的数据库技术 - 图2

调整参数之前,可以看到run数值非常高,会导致数据库报警。

双十一背后的数据库技术 - 图3

调整参数之后,update数值与run数值往好的方向变化,并发性能得到了增强。

链路访问

在链路访问方面,我们提供更高安全性的数据库独享代理访问模式,用户可以根据需要随时开启或关闭。

数据库代理对应用透明无感知,也无需人工干预,大大降低了运维成本。

双十一背后的数据库技术 - 图4

目前,数据库代理支持如下功能:

  • 读写分离:提供透明的读写分离功能,应用层无需修改代码,将查询请求分发到RDS只读实例,降低主库的负载。
  • 短连接优化:有效解决短连接业务(例如PHP)频繁建立新连接导致实例负载过高的问题。
  • 事务拆分:能够将事务内写操作之前的读请求转发到只读实例,降低主实例负载。

弹性扩容

RDS实例支持弹性扩容,既可以纵向增加本身实例规格,也可以横向增加只读实例数量。用户提前扩容,就可以在双十一期间笑对大流量冲击,而在高峰期过后也可以及时释放掉多余实例,避免资源浪费。 双十一背后的数据库技术 - 图5

架构设计

为了应对日渐增长的双十一购买数据量和仓储数据量,RDS团队也对各个支持的数据库进行了新的架构设计,ApsaraDB for RDS当前支持五款关系型引擎,提供容灾、备份、恢复、监控等方面的全套解决方案。

RDS支持的引擎MySQLMariaDB TXSQL ServerPostgreSQLPPAS
引擎特征 - 甲骨文公司的开源数据库(社区版) - LAMP的重要组成,广泛应用于互联网行业 - MySQL的分支,兼容MySQL - 良好兼容Oracle - 微软的商业数据库 - 对基于Windows平台.NET架构的应用程序具有完美的支持 - 起源于UC Berkeley的开源数据库 - 面向企业复杂SQL处理的OLTP在线事物处理场景 - PPAS是PostgreSQL企业版 - 高度兼容Oracle
核心优势 - 源码性能调优、功能定制(AliSQL分支) - 数据库运维全套解决方案 - MariaDB TX是企业级解决方案 - 数据库运维全套解决方案 - 正版License - 数据库运维全套解决方案 - 源码性能调优、功能定制 - 数据库运维全套解决方案 - 正版License - 数据库运维全套解决方案
应用场景互联网行业互联网行业传统中小企业处理空间信息的相关应用Oracle兼容应用

信息安全

信息安全问题也一直是商家和用户最关心的问题,在疯狂的“剁手”中,您一定不想您的商品信息和购买信息被泄露,对于这个问题,RDS团队做了多重保护,确保用户信息安全。

双十一背后的数据库技术 - 图6

除了以上几点,RDS团队还对数据库的性能等进行了重新优化,让商家和购买者完全不用担心数据库的性能和安全问题,无忧无虑的“剁手”,尽情享受双十一盛会!