Gopal V created HADOOP-11772:
--------------------------------

             Summary: RPC Invoker relies on static ClientCache which has 
synchronized(this) blocks
                 Key: HADOOP-11772
                 URL: https://issues.apache.org/jira/browse/HADOOP-11772
             Project: Hadoop Common
          Issue Type: Sub-task
          Components: ipc
            Reporter: Gopal V
         Attachments: sync-client-bt.png, sync-client-threads.png

{code}
  private static ClientCache CLIENTS=new ClientCache();
...
    this.client = CLIENTS.getClient(conf, factory);
{code}

Meanwhile in ClientCache

{code}
public synchronized Client getClient(Configuration conf,
      SocketFactory factory, Class<? extends Writable> valueClass) {
...
   Client client = clients.get(factory);
    if (client == null) {
      client = new Client(valueClass, conf, factory);
      clients.put(factory, client);
    } else {
      client.incCount();
    }
{code}

All invokers end up calling these methods, resulting in IPC clients choking up.

!sync-client-threads.png!
!sync-client-bt.png!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to