近年来随着数据量暴增、数据应用场景愈发广泛,数据库也相应成为企业重点关注的技术领域之一。而当软件发展到一定程度,数据库自然而然会向硬件与软件融合创新的方向发展。
然而专有硬件必须单独购买,要想将数据库变成云平台的服务,成为一种普遍的能力,让所有人都受益,轻量级的大管家必不可少。
Amazon Nitro 系统,轻量级大管家Amazon Nitro 系统实现了一个非常非常轻量级的“大管家”软件,可以把底层的硬件资源进行分割,让各个虚拟机使用,通过将服务器几乎所有的资源交付给客户的实例来降低成本。
这样一来,原来需要耗费资源的软件开销都被卸载到了硬件平台,用户可以获得全部底层物理机的资源。不仅如此,专用的 Nitro 卡可实现高速联网、高速 EBS 和 I/O 加速,能够做更多的事情。
01
优化写入
MySQL 有个经典的面试题:Double Write Buffer,MySQL 缓冲区的数据页是 16Kb,文件系统的页通常是 4Kb,两者不匹配该如何处理。
2022年11月,“优化写入”功能在亚马逊云科技 re:Invent 上正式发布,仅3个月后就在中国区上线。通过使用 Amazon Nitro 系统中的 Torn Write Prevention 技术,亚马逊云数据库实现了优化写入数据,只需一步即可安全写入 16Kb 数据页,完全不用复杂的 Double Write。
简洁的系统必然带来更高的效率,优化写入让写入事务吞吐量提高多达2倍,且无需额外费用,非常适合写入密集型应用,比如数字支付,金融交易,在线游戏等等。这就是软件和硬件结合带来的威力。
02
优化读取
在云数据库中,计算节点和存储节点一般是分离的。做数据分析需要很复杂的查询,涉及上千万条数据,还需要分组,计算,排序等。这时,MySQL就会形成临时对象,而当临时对象大到一定程度,就需要形成临时表空间,存储在硬盘上。
上图中,Amazon RDS实例是计算节点,Amazon Elastic Block Store(Amazon EBS)是存储节点,组成的临时表空间(上图红框所示)分布式存储在Amazon EBS上,访问会有延迟。
现在通过软硬一体化,在Amazon RDS实例上挂载NVMe的SSD存储,对低延迟、高随机 I/O 性能和高顺序读取吞吐量进行优化。
在软件层面,将临时表空间转移到SSD存储卡,计算节点直接访问本地存储,速度立刻飞起。
对于复杂查询,“优化读取”的加速效应非常明显,可以提升50%,查询越大越复杂,优化效果越好。
03
MySQL 8.0
“优化写入”和“优化读取”需要 Amazon RDS MySQL 8.0 及以上版本。值得一提的是,Amazon RDS Optimized Writes 和 Amazon RDS Optimized Reads 的加入,结合 MySQL 8.0 版本优势能够为使用者提供更具性价比的Amazon RDS 服务。
MySQL 8.0 在性能方面本身也实现了极大的提升,其速度本身将比 MySQL 5.7 快2倍,官方测试数据也显示,MySQL 8.0 全内存访问可以轻松跑到200W QPS,I/O 极端高负载场景可以跑到16W QPS,无论是在读/写工作负载、IO 密集型工作负载、以及“hot spot”工作负载场景面,MySQL 8.0 都有其显著的优势。
也正因此,借助 Amazon RDS Optimized Writes 和 Amazon RDS Optimized Reads 中的关键特性,同样也能更好地释放 MySQL 8.0 的性能优势,让用户在任何工作负载场景下都能实现“快人一步”。
数据库和底层硬件紧密集成,是云数据库发展的方向,也是云服务厂商必修的内功。在Gartner发布《2022 云数据库管理系统魔力象限》报告中,亚马逊云科技已经连续八年被评为“领导者”。目前,全球已经有80多万个数据库迁移到了亚马逊云科技上。未来,期待亚马逊云科技能够持续在云数据领域创新前行,引领风向。