could this cause inconsistent problems?
When clicking failover,there is a warning:
Operations not replicated before the node became unresponsive, will be lost.
I may use membase to store important data,such as users' passwords.if a server is down and is failed over, some users' data are lost according the above warning.these users visit again and use replication data here. so these users may have some problems,because replication has stored old dirty passwords,inconsistency may happen here.
Does it mean that membase has inconsistent problem here?
thanks.
I tried membase-server-community_x86_64_1.7-beta,but I could not find how to see auto failover and the new SYNC command in web UI. could you tell me where and how?
The auto-failover is not yet implemented, the plan is to have it released with the GA of 1.7 (you can find more information here: http://techzone.couchbase.com/products/membase/1-7-beta)
As for the SYNC command, there is no UI as it is a new protocol command. It is currently only available with the Enyim driver for .NET but we are planning on extending support to other drivers as well. What is your language of choice?
Perry
any language under linux environment.
thanks
The next driver to gain support for synchronous operations will be the spymemcached driver which is for Java.
are you a chinese?
No
It isn't an inconsistency problem (as there will still only be one answer from the cluster), but you are right that data that has not been replicated to another node, will not be available anymore when the master node for a vBucket fails.
If you have data where you need to be certain that it has been replicated to another node to increase resiliency to node failure, then you can use the new SYNC command that is being added in Membase 1.7. It will allow you to pass a list of keys and that command will return when the keys are replicated to another node. So whenever your app updated password data it can do a sync on that key, so that your app can be sure the data has been replicated to another node before continuing.
Of course the downside of doing this, and the reason why this isn't default behaviour, is performance. Membase is fast, simnple and elastic. Speed is achieved by performing writes to RAM first (before persisting to disk and replicating to other nodes asynchronously) and serving cache hits out of memory. For many types of data that trade-off is a good choice, and waiting for replication on every write would not result in acceptable performance (after all a single node can do many 100k ops/s). For other data using SYNC is the way to go to be sure that on node failover crucial data is guaranteed to be on the replica node.
I hope that helps. BTW, you can check out the 1.7 Developer Preview here: http://techzone.couchbase.com/products/membase/1-7-beta