[
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