When B goes down you have no failover memcache.  That's OK, because you don't *need* it anyway - it's just a helper to take load off your database.  If B fails your app goes directly to the database for its data until the cache server B is back up.  When the server comes back up, it starts to build it's cache again from scratch.
<br><br>This is not high availability stuff here -- there's no redundancy or failover.&nbsp; But that's OK, because it's just an optimization layer - it isn't the database.&nbsp; As to the hashing, I think it just takes a checksum of the query and does a mod(memcache_server_count).&nbsp; That way the same query is cached on the same memcached every time.
<br><br>- Bash<br><br>-- <br><a href="http://bashcoder.com">http://bashcoder.com</a><br><br><div><span class="gmail_quote">On 10/31/06, <b class="gmail_sendername">howard chen</b> &lt;<a href="mailto:howachen@gmail.com">howachen@gmail.com
</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On 11/1/06, Andrew Pile &lt;<a href="mailto:andrew@connectedventures.com">
andrew@connectedventures.com</a>&gt; wrote:<br>&gt; That is NOT how it works. The data is not stored evenly on all<br>&gt; servers, it is hashed and sent to one server.<br>&gt;<br>&gt; On Oct 31, 2006, at 11:26 AM, Jehiah Czebotar wrote:
<br>&gt;<br>&gt; &gt;&gt; so, correct me if i am wrong...<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; 1. on each memcached server, i start the memcached deamon as they are<br>&gt; &gt;&gt; separetely server, they don't know each other, 
e.g.<br>&gt; &gt;&gt; ./memcached -d -m 2048 -l <a href="http://10.0.0.40">10.0.0.40</a> -p 11211<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; 2. during connection from client, add all the servers...<br>&gt; &gt;&gt; e.g.<br>&gt; &gt;&gt;
<br>&gt; &gt;&gt; $memcache = new Memcache;<br>&gt; &gt;&gt; $memcache-&gt;addServer('memcache_host', 11211);<br>&gt; &gt;&gt; $memcache-&gt;addServer('memcache_host2', 11211);<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; 3. the memcached objects will be stored evenly on all these server,
<br>&gt; &gt;&gt; and i can get it using Memcache::get , without specifying the server<br>&gt; &gt;&gt; host<br>&gt; &gt;&gt;<br>&gt; &gt;<br>&gt; &gt; correct: that is exactly it.<br>&gt; &gt;<br>&gt; &gt; (just make sure the memory you are configuring memcached to use (2048)
<br>&gt; &gt; is not larger than the actuall free RAM on your machines)<br>&gt; &gt;<br>&gt; &gt; --<br>&gt; &gt; Jehiah<br>&gt;<br>&gt;<br><br>yes, this is the point, how does hashing work?<br><br>e.g.<br><br>originally three servers, A, B, C
<br><br>an object is hashed to server B<br><br>but server B was downed, and it will hashed to server C when receive<br>another request ? what will happen if server B up again?<br></blockquote></div><br><br>