Aerospike支持群集环境中的ACID,复制因子大于1,其中任何写入都将写入主服务器和副本服务器,然后只会将其标记为客户端成功。
但是,我们可以通过从 所有 更改 write.commit_level 来更改上述默认行为的 主
在这种情况下,假设在主节点上写入/更新成功并且通知客户端,但是在副本节点上写入失败,会发生什么?
Aerospike是否会为群集中的相同密钥提供不一致的数据? 或者它会在Replica上重试吗? 或者是否会回滚主人的写作?
请注意,副本节点未关闭,只是因为任何原因导致写入失败,例如 停止写入 在副本节点上被破坏等等。
答案 0 :(得分:2)
如果选择write.commit_level=master
,并且如果prole写入失败,则不会通知客户端有关失败的信息。副本将与主服务器保持不一致。主写入不会回滚。副本将在下次写入时得到修复并成功复制。即它将被最新记录覆盖。
stop-writes
尊重主人,而不是副本。由于这个原因,复制副本写入失败将是一个坏主意。只要你在内存(没有malloc故障)和磁盘方面有一些空间,当节点本身没有出现故障时,几乎没有任何副本写入失败的可能性。