Mongodb 正在寻找具有CAS支持的CA键值存储

Mongodb 正在寻找具有CAS支持的CA键值存储,mongodb,replication,consistency,voldemort,Mongodb,Replication,Consistency,Voldemort,我正在寻找一种支持一致性、可用性以及比较和设置的持久性键值存储 它将部署在三个节点上,并且在一个(任何)节点停机时必须可操作。如果整个集群脱机(例如,由于电源问题),然后又重新联机,则不会丢失任何数据。此外,我希望系统不会打扰系统管理员,除非两个节点关闭。当然,尽可能快是可取的。最重要的特性是一致性:如果报告保存了某个内容,它就不会因为失败而丢失 我研究了MongoDB的特性,在一些罕见的情况下,它需要手动干预,但不是可选的 我检查过的另一个系统是。我假设它通过以下设置满足我的要求: <r

我正在寻找一种支持一致性、可用性以及比较和设置的持久性键值存储

它将部署在三个节点上,并且在一个(任何)节点停机时必须可操作。如果整个集群脱机(例如,由于电源问题),然后又重新联机,则不会丢失任何数据。此外,我希望系统不会打扰系统管理员,除非两个节点关闭。当然,尽可能快是可取的。最重要的特性是一致性:如果报告保存了某个内容,它就不会因为失败而丢失

我研究了MongoDB的特性,在一些罕见的情况下,它需要手动干预,但不是可选的

我检查过的另一个系统是。我假设它通过以下设置满足我的要求:

<replication-factor>3</replication-factor>
<required-reads>2</required-reads>
<required-writes>2</required-writes>
3
2.
2.
但它没有提供关于复制和一致性的全面文档,因此我无法验证我的假设

您是否有过适合我要求的存储体验?你能给我推荐点什么吗


另外,我不打算存储大量信息,因此可能会忽略切分。

如果您使用MongoDB的写入关注点为“多数”,那么您将永远不会丢失数据,也永远不会进行回滚

“多数”(或三节点副本集中的“2”)的写入关注点将执行与伏地魔中“所需写入”2相同的操作

参考:


你确定吗?写传播似乎只是覆盖了应该回滚的数据,因此回滚是不必要的,但是如果没有写操作发生在描述的故障之后,我们仍然有一个节点(重新加入前主节点)处于不一致的状态,当它再次成为主节点时,我们可能会遇到问题。是的,我确定。MongoDB一次只能有一个主(主)节点。这是唯一可以接收写操作的节点。如果主节点出现故障,最新的辅助节点将接管。如果所有写操作都是在“多数”写操作的情况下完成的,则最新的辅助系统将保证所有写操作都存储在其中。只有在(以前的)主服务器上存在未传播到最新辅助服务器的写操作时,才会发生回滚。对于“多数”的写关注,回滚永远不会发生。