You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Pete Wyckoff (JIRA)" <ji...@apache.org> on 2008/08/23 01:14:44 UTC
[jira] Created: (THRIFT-124) TFixedFrameTransport
TFixedFrameTransport
--------------------
Key: THRIFT-124
URL: https://issues.apache.org/jira/browse/THRIFT-124
Project: Thrift
Issue Type: New Feature
Reporter: Pete Wyckoff
Priority: Minor
TFixedFrameTransport (TFFT) will write data to another transport in units of sub-frames that will be fit into frames consisting of:
A FrameHeader,
N SubFrameHeaders,
N SubFrameData Payloads
...
With each frame being the same size. TFixedFrameTransport will checksum both the frame header and the subframe headers and will have the option of providing a checksum per subframe. Note that a sub-frame may span multiple frames.
See [https://issues.apache.org/jira/browse/THRIFT-111] for the exact format of the headers.
The spec would look something like the following although it's sure to change a bit.
{code:title=TFixedFrameTransport}
// TFixedFrameHeader and TFixedFrameSubHeader are thrift generated
class TFixedFrameTransport {
public TFixedFrameHeader(TFixedFrameHeader, i32 frameSize, TTransport otrans);
public void writeSubFrame(TFixedFrameSubHeader, buf, length) { startSubFrame(subHeader), write(buf, length); }
public void startSubFrame(TFixedFrameSubHeader);
public void write(buf, length);
public TFixedFrameSubFrameHeader readSubFrameHeader() ;
public TFrameHeader readFrameHeader();
public i32 read(buf, length);
public void bytesLeftInCurrentSubFrame();
}
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (THRIFT-124) TFixedFrameTransport
Posted by "Pete Wyckoff (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/THRIFT-124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12625004#action_12625004 ]
Pete Wyckoff commented on THRIFT-124:
-------------------------------------
I just wanted to note the importance of the checksum being per subframe as if we had large Frames - e.g., 1 GB and a subframe bled into the next frame, we wouldn't want to have to checksum the entire next block. and it also means the unit of data corruption is smaller.
> TFixedFrameTransport
> --------------------
>
> Key: THRIFT-124
> URL: https://issues.apache.org/jira/browse/THRIFT-124
> Project: Thrift
> Issue Type: New Feature
> Reporter: Pete Wyckoff
> Priority: Minor
>
> TFixedFrameTransport (TFFT) will write data to another transport in units of sub-frames that will be fit into frames consisting of:
> A FrameHeader,
> N SubFrameHeaders,
> N SubFrameData Payloads
> ...
> With each frame being the same size. TFixedFrameTransport will checksum both the frame header and the subframe headers and will have the option of providing a checksum per subframe. Note that a sub-frame may span multiple frames.
> See [https://issues.apache.org/jira/browse/THRIFT-111] for the exact format of the headers.
> The spec would look something like the following although it's sure to change a bit.
> {code:title=TFixedFrameTransport}
> // TFixedFrameHeader and TFixedFrameSubHeader are thrift generated
> class TFixedFrameTransport {
> public TFixedFrameHeader(TFixedFrameHeader, i32 frameSize, TTransport otrans);
> public void writeSubFrame(TFixedFrameSubHeader, buf, length) { startSubFrame(subHeader), write(buf, length); }
> public void startSubFrame(TFixedFrameSubHeader);
> public void write(buf, length);
> public TFixedFrameSubFrameHeader readSubFrameHeader() ;
> public TFrameHeader readFrameHeader();
> public i32 read(buf, length);
> public void bytesLeftInCurrentSubFrame();
> }
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.