Amazon Aurora 是亚马逊的高性能的关系型数据库引擎,它号称结合了商用数据库以及开源数据库的优点,在简单易用、高性能的基础上提供高性价比的服务。Amazon Aurora 设计兼容 MySQL 5.6,所以已经存在的 MySQL 应用程序和工具可以无缝迁移到 Aurora 中。据亚马逊称,Aurora 每秒钟可执行 10 万次更新操作,并且每秒钟可进行 50 万次查询操作,在同等的硬件条件下是 MySQL 的 5 倍。
但是 Aurora 的具体实现细节在 AWS re:Invent 并未详细提及,目前只有在官方的 FAQ 页面简单描述了 Aurora 的存储引擎以及数据模型:
Amazon Aurora 存储引擎兼容使用 InnoDB 存储引擎的 MySQL 5.6 版本,Aurora 并不支持所有的 MySQL 功能,比如 MyISAM。
Amazon Aurora 支持两种类型的数据复制,其中包括基于 MySQL 的 binlog(用于记录数据库数据的更新)的读复制。另外的一种方式是通过与主实例共享底层的 volumn。
Aurora 取得如此出色成绩的原因是因为 Aurora 数据库引擎集成了基于 SSD 的虚拟存储专用负载层,以减少存储系统的写入压力,最小化锁竞争以及因数据库线程创建而延误的时间。
而根据官方资料推断,Aurora 应该是基于 MySQL 5.6,同时对存储引擎做了修改优化,并且存储引擎也应该是基于 InnoDB。在 Quora 上,阿里巴巴的工程师韩富晟也做了同样的推断。同时他认为 Aurora 除了优化存储引擎外,还应该改进了 SQL 的优化以及执行过程。
另外,在 Quora 的回复中,韩富晟同样质疑了 Aurora 性能测试的准确性,他认为 5 倍的数据不可信。虽然亚马逊表示是在同样的硬件条件下进行测试,但是 Aurora 可能是与未调优的 MySQL 做对比。同样,Dimitri 也认为 RDS Aurora 的测试数据很可笑,除了高于 MySQL 性能 5 倍外的宣言,没有任何的测试细节。而早在一年前,MySQL 5.7 就宣布查询速度可以达到每秒 50 万次,并且具体的测试细节都在博客中做了记录。在最新的 MySQL 5.7 版本中,查询速度已经可以达到 64 万/s。如果再对 SQL 层做下优化,比如使用 InnoDB 的 Memcached 插件,那 QPS 应该可以达到 100 万。
期待 Amazon 公布更多地 Aurora 的细节以解大家的疑惑。