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