Spreading key/value pairs across multiple memcached servers
Chris Hartjes
chartjes at gmail.com
Wed Dec 1 08:46:15 PST 2004
Pardon my ignorance of memcached as I post the following scenario:
1) I create an instance of a memecached client (PHP version)
2) I'm using memcached to cache MySQL result sets, using the query
itself as the key
3) I ask memcached "hey, retrieve this key from memcache for me"
Now, if I have two servers, what server will it talk to in order to
find out where the key is? Will it always talk to the first server in
the list? I understand that the various servers are aware of what
server a particular key is on. I also understand it will only take
one request to find out where a key is. But again, will that request
for the location of the key always go to one server?
On Wed, 1 Dec 2004 11:39:35 -0500, Christopher Schmidt
<crschmidt at wedu.com> wrote:
> On Dec 1, 2004, at 11:25 AM, Chris Hartjes wrote:
>
> > I had a chat about this with my boss, and his concern is not that we
> > distribute the keys evenly, his concern is distributing the request to
> > find out what server a key is sitting on. I figure he doesn't want
> > the first memcached server getting constantly pounded with requests
> > for the location of a key, while the second server could be helping
> > out in that regards.
>
> The location of the key is determined in the client, by the hashing
> algorithm. Only one request for a key is ever made:
>
> ADD data1:abc -> hash -> server1
> ADD data2:bcd -> hash -> server2
>
> GET data2:
> data2->hash = server 2
>
> There is no overload on the servers checking where the key is: it's
> alwyas in exactly one place.
>
> --
> Christopher Schmidt
> crschmidt at wedu.com
>
>
--
Chris Hartjes
"I know monkeys, and monkeys are good people!"
More information about the memcached
mailing list