With smart spymemcached clients, how is a put operation handled when one of the nodes is down - if that key was supposed to go to the node had it not gone down?
Not sure I understand the question, but you'd receive either a timeout or an immediate failure depending on the way in which the system failed for nodes which are down but you have not done failover for. Operations for other nodes should flow just fine.
I see timeouts for get operations, but, for put I dont see an exception. I did not failover the node that has gone down.
I have 2 membase servers. I put 30 thousand keys. While the 30k puts are going on I stopped one membase server and I dont see any errors, however, while doing get operations on those 30k keys, I see timeouts. I restarted the stopped membase server and did 30k get operations again. I see this time that some 18k keys returned null and remaining 12k keys or so got their value back.
I see some errors in the logs while doing put operations too, but, those are not thrown synchronously. How do I know at the time of calling put operation that put failed?
It's possible your using the async set (which is just set(...) in MemcachedClient/CouchbaseClient) and this will not throw an error unless you call get(). If this is the case can you just call set(...).get() which makes set(...) synchronous? Otherwise, I will need to see your code to help any further.
© 2013 COUCHBASE All rights reserved.