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:54:44 UTC

[jira] Commented: (THRIFT-124) TFixedFrameTransport

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