[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13611039#comment-13611039
 ] 

Ivan Kelly commented on BOOKKEEPER-587:
---------------------------------------

[~i0exception] I'd like to maintain BC both ways for the 4 series. We did break 
between 4.0 & 4.1, but this is something I'd very much like to avoid happening 
again. I've a branch that adds a handshake message [1]. I'm not submitting a 
patch yet, as I think we need a bit more discussion. Also 1-2 tests aren't 
passing. 

Transaction ids are something we need. I'd prefer to do it in another JIRA 
though to keep it self contained. Have you guys added logic for this? I don't 
see it in your branch.

Regarding data copy, you make a good point about the read ranges. I'm not 
strongly opposed to using ByteStrings. I think it'll be hard to make it 
zerocopy, but I would assume any operation would be dominated by disk access. 

[~hustlmsp] 
{quote}what is the difference behavior when an old decoder received a new enum 
and a new integer? should the old decoder not reject the request in either 
case?{quote}
When an old decoder sees an enum value it doesn't know, it will throw an 
exception. When it sees a integer, it will just decode it. It doesn't know 
anything about the meaning about the integer so it can be passed to the 
application, which can have a catchall for unrecognised values (which is what 
we do in places, such as when we don't recognise error codes).

{quote}
Could this be benchmarked? since keeping the data part outside of protobuf 
indicating there are two different formats used in a request package (some use 
protobuf, some use customized format). it seems violating the purpose we 
introduced protobuf to make the protocol to extend easily.{quote}
We will have two data formats anyhow, the protocol format and the entry format. 
The point of protobufs is to make the wire protocol extendible. The entry 
format doesn't need to change for this. As I said above though, I'm not 
strongly opposed to putting the data in the protocol buffer message. All this 
will need to be benchmarks before submission in any case.

[1] https://github.com/ivankelly/bookkeeper/tree/protobuf_on_wire
                
> Make BK use protobufs on the wire
> ---------------------------------
>
>                 Key: BOOKKEEPER-587
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-587
>             Project: Bookkeeper
>          Issue Type: Sub-task
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.3.0
>
>         Attachments: 
> 0003-BOOKKEEPER-587-Make-BK-use-protobufs-on-the-wire.-Bu.patch
>
>
> Building on BOOKKEEPER-582, make bookkeeper use protobufs for on wire 
> transmission.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to