[ https://issues.apache.org/jira/browse/HADOOP-11772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gopal V updated HADOOP-11772: ----------------------------- Attachment: cached-locking.png cached-connections.png The patch looks good, there's no performance degradation due to locking !cached-locking.png! Tried to check total held connections, which seems to also be contained with the guava cache patch. !cached-connections.png! > 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, performance > Reporter: Gopal V > Assignee: Akira AJISAKA > Labels: BB2015-05-RFC > Attachments: HADOOP-11772-001.patch, HADOOP-11772-002.patch, > HADOOP-11772-003.patch, HADOOP-11772-wip-001.patch, > HADOOP-11772-wip-002.patch, HADOOP-11772.004.patch, after-ipc-fix.png, > cached-connections.png, cached-locking.png, dfs-sync-ipc.png, > 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! > !dfs-sync-ipc.png! -- This message was sent by Atlassian JIRA (v6.3.4#6332)