Re: [protobuf] oneof encoding specification

2015-10-29 Thread cerealizer
Thanks for the reply! 

Could you please add this in the documentation? 


On Wednesday, October 28, 2015 at 8:57:09 PM UTC, Feng Xiao wrote:
>
> On Tue, Oct 27, 2015 at 5:02 AM,  wrote:
>
>> Hello,
>>
>> I would like to learn about how oneof's are encoded in binary and what 
>> the serialization and deserialization cost maybe. To provide with some 
>> context, I am experimenting with a streaming rpc service. To be specific it 
>> is a client side streaming, something akin to the grpc documentation:
>>
>> rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse) {}
>>
>>
>> As many different messages maybe consumed during a lifetime of a single 
>> connection, we have opted to use oneofs to handle the different messages 
>> and dispatched to the appropriate handlers. As we may have potentially 
>> multiple layers of dispatching, this would require us to have multiple 
>> layer of oneofs (correct?). 
>>
>>
>> What I would like to know is how much type information is stored for the 
>> unset fields/types. As we may have a complex message hierarchy to solve our 
>> multiple layers, it would be great if someone could provide us answers 
>> regarding overhead for this processing as well.
>>
> On the wire, only the field that's actually set will be serialized so 
> extra fields in an oneof will have no extra cost.
>
> In the memory, we use unions in C++ and Object in Java to store oneof 
> fields, so unset fields will not take extra memory as well.
>
> Hope this answers your question.
>  
>
>>
>>
>> Thanks!
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Protocol Buffers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to protobuf+u...@googlegroups.com .
>> To post to this group, send email to prot...@googlegroups.com 
>> .
>> Visit this group at http://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


Re: [protobuf] oneof encoding specification

2015-10-28 Thread 'Feng Xiao' via Protocol Buffers
On Tue, Oct 27, 2015 at 5:02 AM,  wrote:

> Hello,
>
> I would like to learn about how oneof's are encoded in binary and what the
> serialization and deserialization cost maybe. To provide with some context,
> I am experimenting with a streaming rpc service. To be specific it is a
> client side streaming, something akin to the grpc documentation:
>
> rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse) {}
>
>
> As many different messages maybe consumed during a lifetime of a single
> connection, we have opted to use oneofs to handle the different messages
> and dispatched to the appropriate handlers. As we may have potentially
> multiple layers of dispatching, this would require us to have multiple
> layer of oneofs (correct?).
>
>
> What I would like to know is how much type information is stored for the
> unset fields/types. As we may have a complex message hierarchy to solve our
> multiple layers, it would be great if someone could provide us answers
> regarding overhead for this processing as well.
>
On the wire, only the field that's actually set will be serialized so extra
fields in an oneof will have no extra cost.

In the memory, we use unions in C++ and Object in Java to store oneof
fields, so unset fields will not take extra memory as well.

Hope this answers your question.


>
>
> Thanks!
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to protobuf+unsubscr...@googlegroups.com.
> To post to this group, send email to protobuf@googlegroups.com.
> Visit this group at http://groups.google.com/group/protobuf.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.