Search code examples
.netmemcachedcouchbasebucket

Couchbase memcached bucket alternatives


I'm currently looking for a solution for a distributed cache provider. At the moment I'm thinking of Couchbase 3 server, using Memcached bucket. I am not sure though, that it's the right thing I need. I don't need disk persistence and replication, because the information is not crucial, so Couchbase bucket does not seem so appropriate in this case.

During my tests I experienced some problems with the memcached buckets - the .NET client does not react to node failure, allowing insertion of entries with already existing key(on the failed node). After the failed node comes back again, two documents exist with the same key, and only the first one is accessible. Also, I need to reinitialize the bucket object so it can be aware of the failovered node, or it keeps throwing 'ClientFailure' statuses on Get requests (and that's kind of slow operation). That and the 1 mb size limit per document makes me rethink if I'm on the right direction.

Is there a better way to notify the client for failed nodes? And if not, can you recommend me another technology, suitable for my case?


Solution

  • You say that you do not need the persistence and replication, but then are concerned about node failures. That does not fit.

    My recommendation is to go with a Couchbase bucket and that you do need a replication factor of 1. You want this to be a highly available cache (which is a very common use case for Couchbase), replication with multiple nodes will give you that availability. You say that the data is not critical and that may be true, but the availability of that data is critical. Otherwise you would not be looking to have a cache.

    So switch to a Couchbase bucket with the Couchbase SDK and you will get the HA cache you need, the performance you need and ease of use you need.