链接:https://www.zhihu.com/question/20120283/answer/35490381
share nothing和share disk是两种常见的分布式数据库模型。
share nothing架构下,每个结点都有自己的CPU、内存、存储。跨结点的数据访问通过结点之间的网络通讯来完成。
share disk架构下,每个结点有自己的CPU和内存,但是共享同一个存储。也就是说,存储只有一份,放在单独的分布式文件系统上,由文件系统本身来保证其可用性,一般由高端的专门存储设备来完成。
大多数分布式数据库都是share nothing的。比较典型的share disk数据库有oracle RAC和DB2 PureScale。mysql cluster的结点之间不共享存储(每个结点有自己的存储),所以属于share nothing。
share nothing和share disk各有利弊,无法简单地认为谁优谁劣,也不存在谁才是“真正的”分布式数据库的问题。二者当然都可以实现事务。一般来说,share disk的实现更复杂,价格也更昂贵。
wiki有个关于share nothing的条目可供参考:
这里有share nothing和share disk的比较:
Shared-Disk vs. Shared-Nothing_百度文库
主从架构是一种高可用性的解决方案,不属于分布式数据库的范畴。