它基于存储计算分离的架构,并将回放日志部分下推到分布式存储层,存储节点与数据库实例(计算节点)松耦合,并包含部分计算功能。 Aurora体系下的数据库实例仍然包含了大部分核心功能,比如查询处理,事务,锁,缓存管理,访问接口和undo日志管理等;但redo日志相关的功能已经下推到存储层,包括日志处理,故障恢复,备份还原等。Aurora相对于传统数据库有三大优势,首先,底层数据库存储是一个分布式存储服务,可以轻松应对故障;其次,数据库实例往底层存储层只写redo日志,因此数据库实例与存储节点之间的网络压力大大减小,这为提升数据库性能提供了保障;第三,将部分核心功能(故障恢复,备份还原)下推到存储层,这些任务可以在后台不间歇地异步执行,并且不影响前台用户任务。Aurora的实现主要包括三大块:
1.如何基于Quorum模型保证底层存储的一致性;
2.如何将redo日志相关的功能下推到存储层;
3.如何消除同步点,分布式存储下如何做检查点和故障恢复。
基于MySQL的Aurora对于单点写多点读的主从架构做了进一步的发展,使得事务和存储引擎分离,为数据库架构的发展提供了具有实战意义的已实践用例。其主要特点如下:
1)实践了“日志即数据库”的理念。
2)事务引擎和存储引擎分离。
3)数据缓冲区提前预热。
4)REDO日志从事务引擎中剥离,归并到存储引擎中。
5)储存层可以有6个副本,多个副本之间通过Gossip协议可以保障数据的“自愈”能力。
6)主备服务的备机可达15份,提供强大的读服务能力。
7)持续可靠的云数据库的服务能力。
8)数据存储跨多个区:提供了多级别容灾能力。
9)数据容灾能力:数据冗余、备份、实时恢复等多种能力集成到云服务,提高的数据的保障能力。
10)万能数据库的概念呼之欲出。
之所以有这样的设计,是因为Amazon认为:网络IO已经成为数据库最大的瓶颈。