[ https://issues.apache.org/jira/browse/THRIFT-4714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James E. King III resolved THRIFT-4714. --------------------------------------- Resolution: Fixed Fix Version/s: 1.0 > Java TFramedTransport calls write twice for each flush > ------------------------------------------------------ > > Key: THRIFT-4714 > URL: https://issues.apache.org/jira/browse/THRIFT-4714 > Project: Thrift > Issue Type: Improvement > Components: Java - Library > Affects Versions: 0.12.0 > Reporter: James E. King III > Assignee: James E. King III > Priority: Major > Fix For: 1.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Code calls two writes to the underlying transport per flush: one for the > frame size and one for the payload. The result is that folks use > TBufferedTransport on top of TFramedTransport to avoid getting two ethernet > frames for small packets. This means everything is double-buffered! > Based on THRIFT-1121 and THRIFT-959 this may have been an issue for a long > time - the fix was easy however. We make room for the frame size before > writing to the buffer, then we only have to pull out the buffer, drop the > frame size into the 4 bytes that we pre-allocated, and then write to the > underlying transport once. -- This message was sent by Atlassian JIRA (v7.6.3#76005)