我无法理解在写入过程中无法满足所需写入一致性级别的情况。对于例如假设我有3个节点,2个在一个数据中心(dc1),其余的在另一个数据中心(dc2)。网络拓扑策略。现在,如果我用一致性级别3编写并且其中一个节点已关闭,那究竟会发生什么? 由于2个节点已启动,因此它们将能够完成写入过程,但由于无法满足一致性级别,因此协调器节点将向客户端返回写入错误。 在2个节点中写入的数据会发生什么变化?客户端不会期望任何节点中的任何数据,因为他收到了写入错误。
There is no rollback in Cassandra, then how does Cassandra remove failed writes? 根据以上链接,Cassandra不会回滚写入。
Does Cassandra write to a node(which is up) even if Consistency cannot be met? 上面链接中接受的答案表明"在写入成功的节点上,数据实际被写入并且最终将被回滚。"
答案 0 :(得分:1)
如果协调员无法写入足够的副本来满足 请求一致性级别,它会抛出一个不可用的异常和 不执行任何写操作。
如果协调员在写入之前并不知道副本失败,那么协调器将抛出超时异常,客户端将不得不处理它。 (重试政策)