最近,我开始调查 Couchbase Server 作为该项目的候选者。我现在正在研究的一个特定场景是如何使 Couchbase 充当“事实来源”,这就是我深入研究耐用性方面的原因。
所以这里是ACID Properties 和 Couchbase的一个片段:
如果持久性要求失败,那么 Couchbase 可能仍会保存文档并最终将其分发到集群中。我们所知道的是,就 SDK 所知,它并没有成功。您可以选择根据此信息采取行动,将更多 ACID 属性引入您的应用程序。
那么接下来想象一下。我插入/更新一个文档,主节点失败,直到数据进入任何副本。假设primary已经消失了很长时间。现在,我现在不知道数据是否已写入磁盘......所以这里一个可怕的部分是“Couchbase 可能仍会保存文档并最终将其分布在整个集群中”。这意味着,据客户所知,数据没有成功,因此用户会看到一个错误,但是如果主节点重新上线,它可能会突然出现在系统中。
我是否正确阅读了此声明?如果我是,用 Couchbase 处理它的最佳做法是什么?