[ https://issues.apache.org/jira/browse/HADOOP-11772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14389039#comment-14389039 ]
Akira AJISAKA commented on HADOOP-11772: ---------------------------------------- [~gopalv] thank you for your comment. bq. From a quick read, the single factory -> single IPC client mapping still exists Yes, you are right. bq. the requirement of needing >1 IPC client per socket-factory Do you mean we should create IPC client pool in ClientCache.java? > 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 > Attachments: HADOOP-11772-001.patch, 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)