[ 
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:
---------------------------------------

{quote}
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.
{quote}

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

Reply via email to