javamultithreadingperformancememcachedxmemcached

Multithreading use of XMemcached client


Given

client = new XMemcachedClient(server, port);

What happens if I have several thread doing this:

object = client.get(key);

In the (quite empty) xmemcached javadoc I see no mention of synchronization.

  1. is MemcachedClient.get synchronized? if not, have I got to synchronize it myself?
  2. can calls to memcached be done in parallel, in order to avoid my threads to be blocked? Do I need to instanciate one MemcachedClient per thread or is the current code capable of this already?

Solution

  • XMemcachedClient can be used by many threads in paralel. There is not need to synchronize the calling to XMemcachedClient instance. Here's a sample code how many threads can use single client.

    On the xmemcached page there's a benchmark which show performance depending on number of threads that use single XMemcachedClient instance.