[
https://issues.apache.org/jira/browse/HBASE-7233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13510731#comment-13510731
]
stack commented on HBASE-7233:
------------------------------
Following up on our discussion from yesterday, we seemed to agree that hbase
should ship w/ the KV pb'd broken up into its constituent elements so we can
evolve KV over time. The downside, as was voiced yesterday, is that we are
pretty sure will make hbase horribly slow as we make copies of byte arrays as
we add them to pb messages and then as pb composes the serialized version of
the message to rpc (protobuf does not stream; see this protostuff page on
pros/cons of pb: http://code.google.com/p/protostuff/wiki/ThingsYouNeedToKnow).
What was suggested yesterday was that client could say what it could accept and
then the server would write alternatively dependent on what the client
volunteered.
For example, protostuff supports streaming. If client says it can do
protostuff, then we'd do protostuff interchange.
Protostuff might not be what we'd want to move too though. Avro does not seem
to stream going by a cursory glance. We could do custom serialization for the
blob that comes after a pb header identifying what follows -- how it was
serialized, what version, either size or a continuation flag, etc. -- and the
blob could be a prefixtree'd blob whether a Result or a Put, etc.
Let me edit the subject on this issue. Its scope is actually broader than that
mentioned.
> Remove Writable Interface from KeyValue
> ---------------------------------------
>
> Key: HBASE-7233
> URL: https://issues.apache.org/jira/browse/HBASE-7233
> Project: HBase
> Issue Type: Bug
> Reporter: stack
> Assignee: stack
> Priority: Blocker
> Attachments: 7233.txt, 7233-v2.txt
>
>
> Undo KeyValue being a Writable.
--
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