分布式数据库也有人称之为new SQL数据库,主要有两派:一个是以Google Spanner为代表,一个是以AWS Auraro为代表。
1、Spanner 的 Share nothing 架构
Spanner 是 shared nothing 的架构,内部维护了自动分片、分布式事务、弹性扩展能力,数据存储还是需要 sharding模式,plan 计算也需要涉及多台机器,也就涉及了分布式计算和分布式事务。
同类型的开源产品,有TiDB、CockroachDB、OceanBase等;这三个产品可以说目前话题量不相上下,TiDB属于国产PingCAP公司的、CockroachDB比TiDB早出来一年、OceanBase阿里团队的,2017年双11交出4200万/秒的处理能力。
2、Auraro 共享存储型架构
Auraro 是共享存储型架构,主要思想是计算和存储分离架构,使用共享存储技术,这样就提高了容灾和总容量的扩展。但是在协议层,只要是不涉及到存储的部分,本质还是单机实例的 MySQL,不涉及分布式存储和分布式计算,这样就和 MySQL 兼容性非常高。
同类型的产品,有国内阿里的PolarDB,只作为云产品提供服务,不开源。
3、比较
我觉得并没有谁比谁高级和落后,Share nothing 的架构在单集群更大规模下的使用场景我觉得会更好,而 Aurora 的架构更适合云环境(多租户 + 更好的兼容性)。
我一直认为大规模分布式系统本身是特别脆弱的,架构的先进与