[ 
https://issues.apache.org/jira/browse/THRIFT-110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12665330#action_12665330
 ] 

Bryan Duxbury commented on THRIFT-110:
--------------------------------------

As discussed previously, using deltas for the field ids is really only a win if 
your structs are densely populated. Rapleaf, for one, has structs with many 
fields that are unset in every structure. The current approach guarantees 1 
byte per field id as long as you have less than 127 field ids which I think is 
probably good enough.

Your idea of dropping some types from the wire is interesting, though. Maybe 
the protocol could just encode "integer" on the wire and always use varints. 
That would free up a bit in the type header, which would expand the space we 
could use for a lot of things... I'll think on that.

I already proposed changing the proto interface once (THRIFT-167), and we 
decided that wasn't a good idea because it increased the complexity of code 
generation and made protocols more intricate by default rather than as an 
option. 

> A more compact format 
> ----------------------
>
>                 Key: THRIFT-110
>                 URL: https://issues.apache.org/jira/browse/THRIFT-110
>             Project: Thrift
>          Issue Type: Improvement
>            Reporter: Noble Paul
>         Attachments: compact_proto_spec.txt, compact_proto_spec.txt, 
> thrift-110-v2.patch, thrift-110-v3.patch, thrift-110-v4.patch, 
> thrift-110-v5.patch, thrift-110.patch
>
>
> Thrift is not very compact in writing out data as (say protobuf) . It does 
> not have the concept of variable length integers and various other 
> optimizations possible . In Solr we use a lot of such optimizations to make a 
> very compact payload. Thrift has a lot common with that format.
> It is all done in a single class
> http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/common/util/NamedListCodec.java?revision=685640&view=markup
> The other optimizations include writing type/value  in same byte, very fast 
> writes of Strings, externalizable strings etc 
> We could use a thrift format for non-java clients and I would like to see it 
> as compact as the current java version

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to