[
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.