My (limited and possibly inaccurate) understanding of memcached, specifically the client implementation for CAS, is that a particular key is hashed, and based on the outcome of that, the client looks for it on a specific node. So I'm not sure what good a copy of the data on another node will do if the client doesn't know to look for it there?
That's absolutely correct. I suppose you could copy the downed node's data to _every_ other memcached host to ensure the data would be found, but that sounds absurd at face value.
Do you specifically pick the other node to transfer it to based on calculating what the backup node hash would be for the failed node?
Hmm, I suppose that's possible, but it sounds non-trivial to implement. Unless there's a canned tool for such a thing that is aware of common memcached hashing algorithms, I would estimate development at challenging. On the other hand it sounds useful for extremely highly available deployments (most don't fall into that category).
in a failure mode, does the client actually try to do an initial read from the backup node, or just write out new data to it?
Some operation has to occur to flag the node as failed; it can be either a read or write. As long as the node is flagged down, operations will happen on a backup node. All this provided you have failover enabled on the client.
M -- You are currently subscribed to [email protected] as: [email protected] To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user
