Cassandra 和 Big Table 比, 一个用 Gossip 一个用 master slave
- 为什么cassandra 要用 gossip 的方法传递讯息呢?
- gossip 和 master slave 之间的 trade off 可以说一下吗?
Cassandra 和 Big Table 比, 一个用 Gossip 一个用 master slave
从服务器网络构型 (Network Topology) 角度上来讲,也就是 DB client 怎么跟 DB server 沟通,Cassandra 使用 Gossip 来传递服务器网络的 metadata (注意是传递 metadata 而不是数据库存储的数据本身)。BigTable 使用 Chubby (类似 Zookeeper) ,一个带 Paxos consensus 的 distributed lock service 来记录服务器网络的 metadata。Cassandra 在网络构型 metadata 传递机制机制上要较 BigTable 更不 Consistent,这是一个性能和一致性的 tradeoff。
从数据备份角度上来讲,Cassandra 使用 next node 作为备份存储,Bigtable 使用的并不是 Master-slave (source),而是 master-master。Master-master 相对于 master-slave 而言,“写” QPS 支持更高,但一致性更差,因为 master-slave 架构下只有 master 能支持“写”。
如之前所说的,gossip 讲的是 metadata 如何在服务器网络中传递, 而 master slave 说的是数据本身如何备份,两者不是同一个层面上的概念。
请问从数据备份的角度来说,master-slave和master-less的tradeoff如何考虑呢?现在industry主流的方式是哪种?谢谢
两者都可以做数据备份,区别在于写的时候,master-slave 只能写唯一的一台 master, master-less 每台都可以接受写。Tradeoff 的时候考虑写的性能和一致性。masterless 写性能强,但一致性保证弱一些。Master-slave 比较传统一点,master-less 跟 NoSQL 一样都是比较新的,业界都会用到,还是看需求。
请问master-master什么时候用呢?和master-slave的主要区别是什么?
区别请看上面的回复。Master-master 适合在一致性要求低但可用性要求高的时候使用。
master-mastery应该是数据中心备份的时候用的比较多 一致性比较差 容易冲突