> I am working on a heavy traffic web site , where there will be GB's of data > written per minute into our Memcache . So we have decided to use two separate > instances of Memcache for the application . > > Right now the setup is that , there is NO clustering between Memcache1 and > Memcache2 because , Memcache1 caches 50% of the data and Memcache2 caches the > other 50% of the data. > > Memcache1 Memcache2 > \ / > \ / > \ / > \ / > \ / > \ / > CustomerData > > So right now as per the set up , there are two Memcache instances for a > single application . > > Now my question is , once we recive a value inside the application , which > writes/sets to both the Memcache instances , assume that if a key is read one > of the instance of Memcache - 1 , i need to delete the same key on the other > instance of memcahce also at the same > time , so taht they will be in sync with each other . > > As per the code point of view once a value is read from Memcache , i am > deleting that key .
Right now you say: - There is NO clustering. 50% of keys are on Memcache1, 50% of keys are on Memcache2. Then you say: - When you receive a value inside the applicatin, it writes to both memcache instances. Which is the truth? If 50% of keys are on each, you are NOT writing to both. Half your writes go to one, half to the other. In this *completely standard setup*, deletes will go to the right place as well. If you're trying to have 100% of your keys available in Memcache1, and 100% of your keys available in Memcache2, don't fucking do that.
