I was wondering if anyone had any better solutions for cache consistency with geographically distributed memcached clusters.
The problem: Having just one big memcached cluster is great if you only have one datacenter, but if you have datacenters in a couple different locations around the world, latency becomes a big problem. Making a couple memcached queries from US -> Europe for a single client request can make page loads unacceptably slow. Our current solution to this problem is to have multiple memcached clusters, one for each geographic region (Europe/US/Asia). Unfortunately, keeping them in sync with the underlying data (mysql, using replication) in an unpleasant problem. Facebook had a solution to this that they wrote about on their engineering blog ( http://www.facebook.com/note.php?note_id=23844338919 ). They modified the mysql query grammar to support a list of keys to invalidate. Does anyone have any other interesting solutions to this problem? (Keeping in mind that "only using one memcached cluster" likely won't work because there is too much latency)
