6.2.9 讨论
分布式存储系统有两个目标:一个是可扩展性,最终目标是线性可扩展;另外一个是功能,最终目标是支持全功能SQL。Megastore是一个介于传统的关系型数据库和分布式NoSQL系统之间的存储系统,融合了SQL和NoSQL两者的优势。
Megastore的主要创新点包括:
●提出实体组的数据模型。通过实体组划分数据,实体组内部维持关系数据库的 ACID特性,实体组之间维持类似NoSQL的弱一致性,有效地融合了SQL和NoSQL两者的优势。另外,实体组的定义方式也在很大程度上规避了影响性能和可扩展性的Join操作。
●通过Paxos协议同时保证高可靠性和高可用性,既把数据强同步到多个机房,又做到发生故障时自动切换不影响读写服务。另外,通过协调者和优化Paxos协议使得读写操作都比较高效。
当然,Megastore也有一些问题,其中一些问题来源于Bigtable,比如单副本服务,SSD支持较弱导致Megastore在线实时服务能力上有一定的改进空间,整体架构过于复杂,协调者对读写服务和运维复杂度的影响。因此,Google后续又开发了一套革命性的Spanner架构用于解决这些问题。