I'm looking for a persistent key value storage that supports consistency, availability and compare-and-set.

It will be deployed on three nodes and must be operable when one (any) of nodes is down. If the whole cluster goes offline (due to a power problems for an example) and then is back online it shouldn't lose any data. Also I expect the system not to bother a system administrator unless two nodes are down. Of cause it is desirable to be as fast as it possible. And the most important feature is consistency: if something is reported to be saved it can't be lost due to a failure.

I explored MongoDB's docs that in some rare situation it requires manual intervention, but it's not optional.

Another system I looked over was Voldemort. I assume it meets my requirements with following settings:

<replication-factor>3</replication-factor>
<required-reads>2</required-reads>
<required-writes>2</required-writes>

but it doesn't provide comprehensive docs about replication and consistency, so I can't verify my assumption.

Do you have an experience with a storage that fits my requirements? Could you recommend me something?

P.S. I'm not intent to store huge amount of information, so sharding may be omitted.

有帮助吗?

解决方案

If you use MongoDB with a Write Concern of 'majority', then you will never lose data, and you will never have a rollback.

The Write Concern of 'majority' (or of '2' in a three-node replica set) will perform the equivalent of the 'required-writes' 2 in Voldemort.

Reference:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top