Replication

Ask Bjørn Hansen ask at develooper.com
Sun Nov 4 08:32:45 UTC 2007


On Oct 23, 2007, at 12:17, Brian Beuning wrote:

> One instance of memcached could handle our tiny 400 MB with no  
> problem.
> It can probably even handle the load of 100 processes hitting it.   
> But I am
> concerned if memcached went down then we would miss our fixed time  
> window.


Setup two clusters of caches, always write to both.   When you read,  
try one first and if it misses then try the other.   Maybe add some  
simple logic to detect if one of the clusters have a lot of misses and  
try the "good one" first in the future.

If you divide up each cluster in 5-10 instances each, then the failure  
of any one server should have typically no impact, but in the worst  
case then a small one (because only 10-20% of the data was there).    
Have the application re-fetch missing data (from both clusters) from  
the database and store it again in both clusters.

As you pointed out in the other mail, having the application "redo"  
the writes to the cache that lost the data seems like a messy path to  
take.

A variation to consider would be to "cache" the data in MySQL with the  
ndb storage engine.


  - ask

-- 
http://develooper.com/ - http://askask.com/




More information about the memcached mailing list