[ https://issues.apache.org/jira/browse/HBASE-3115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Todd Lipcon resolved HBASE-3115. -------------------------------- Resolution: Fixed Fix Version/s: 0.90.0 Hadoop Flags: [Reviewed] OK, I'll go with your logic. Thanks for the good find, Benoit. > HBaseClient wastes 1 TCP packet per RPC > --------------------------------------- > > Key: HBASE-3115 > URL: https://issues.apache.org/jira/browse/HBASE-3115 > Project: HBase > Issue Type: Improvement > Components: client > Affects Versions: 0.20.1, 0.20.2, 0.20.3, 0.20.4, 0.20.5, 0.20.6, > 0.89.20100621 > Reporter: Benoit Sigoure > Assignee: Todd Lipcon > Priority: Minor > Fix For: 0.90.0 > > Attachments: hbase-3115.txt > > > In {{ipc/HBaseClient.java}}, the method {{sendParam}} does: > {code} > out.writeInt(dataLength); //first put the data length > out.write(data, 0, dataLength);//write the data > {code} > While analyzing some tcpdump traces tonight, I saw that this consistently > translates to 1 TCP packet with a 4 byte payload followed by another TCP > packet with the RPC itself. This makes inefficient use of network resources > and adversely affects TCP throughput. I believe each of those lines > translates to a {{write}} system call on the socket's file descriptor > (unnecessary system calls are also bad for performance). The code attempts > to call {{out.flush();}} but this approach is ineffective on sockets in Java > (as far as I empirically noticed over the past few months). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.