我有两个数据中心,每个数据中心有3台机器。复制因子是DC1:3,DC2:3,并且所有插入都使用write consistency = all。
因此所有节点上都存在所有数据(这样做是为了使读取最快)。
但是这个设置还有其他问题我可能会丢失吗? (除了写得慢,哪个很好)
例如,如果单个节点出现故障,我的所有写入都会失败吗?(或者cassandra可以记下某个故障节点的写入情况并将其提升到一旦它的速度?)< / p>
答案 0 :(得分:1)
如果单个节点关闭,那么所有写入操作都将失败。一致性级别指定写入成功所需的副本数。因此,如果您说ALL,并且每个节点都是副本,那么所有节点都需要启动它才能成功。
通常你会以较低的一致性进行写作,例如ONE。如果数据出现,Cassandra仍会将数据写入所有节点。如果其中一些是关闭的,那么数据仍然可以通过暗示的切换,读取修复机会和定期维修来写入它们(一旦它们备份)。