hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7233) Serializing KeyValues
Date Thu, 13 Dec 2012 20:22:12 GMT

    [ https://issues.apache.org/jira/browse/HBASE-7233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13531437#comment-13531437

Andrew Purtell commented on HBASE-7233:

bq. I would really prefer not to double the number of kV types just to say "foo with tags".
And then double again for "foo with tags and bar".
That would be ugly, but at the same time it's difficult and maybe wasteful to future-proof
it from every angle. Tags are already sort of a flexible future-proofing mechanism. Maybe
tags can be added in a backwards compatible way to the existing encoders. I'd have to think
about it for PrefixTree, probably punting them to a PREFIX_TREE2 encoder with some other additions/improvements.

The use case I'm looking at is adding security policy information to KVs (HBASE-6222), could
be either ACLs or visibility labels, both can be handled the same way. There's a 1:1 mapping,
so it makes sense to store the policy information in the KV. This also has the nice property
of reading in the ACL "for free" in the same op that reads in the KV. I'm not asking for specifically
more than tagging KVs with this specific metadata but, given that tags could be easily made
generic enough to support a number of other cases, I think it makes sense to do that. Then
security is just one user of something more generally useful, we haven't done something fixed
for security's sake only.

Adding tag support to the encoders might be the right answer. Would we still have the trouble
of teaching KeyValue about where in the bytebuffers coming out of the encoder the tag data
resides? Any thoughts on how we might distinguish a KV with tags from one without? Maybe we
don't, we just have the encoder add the discovered tag data to the KV by way of an API that
adds out of band metadata to the KV's in memory representation? And likewise add tags to the
blocks beyond the KV itself if they are present?
> Serializing KeyValues
> ---------------------
>                 Key: HBASE-7233
>                 URL: https://issues.apache.org/jira/browse/HBASE-7233
>             Project: HBase
>          Issue Type: Bug
>            Reporter: stack
>            Assignee: stack
>            Priority: Blocker
>             Fix For: 0.96.0
>         Attachments: 7233sketch.txt, 7233.txt, 7233-v2.txt, 7233v3_encoders.txt, 7233v4_encoders.txt,
7233v5_encoders.txt, 7233v6_encoder.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

View raw message