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

Matt Corgan commented on HBASE-6222:
------------------------------------

{quote}@Matt So attributes carry in information and we use a new encoding type 
to store tags adjacent to KVs if they are labelled?{quote}
Yeah, basically you would be required to use the new encoding format 
(TaggedPrefixTrie, for example), and if you switched back to 
DataBlockEncoding.NONE, your tags would be erased (we'd want to make that 
scenario appropriately difficult of course.).  The trie would de-duplicate 
them, take up no space if they aren't there, and use >=1 byte per cell index if 
they are there.

{quote}Have you had a chance to go through Todd's attempt and see if you were 
able to resolve all of the concerns there?{quote}
I was aware Todd tried this at some point but haven't looked into the details 
or talked to him about it.  I assume  he was attempting a full "extract 
interface" style refactoring, which I think is probably too big of a change.  
My approach is a little different and sets in place a strategy for gradually 
migrating to the interface.  From the top of the HCell class linked to above, 
you can see these methods that require any implementation to be able to create 
legacy KeyValues.
{code}
//V1 is the byte[] format of the current KeyValue implementation.
//for building a result to send to client
int getV1KeyLength();
int getV1Length();
byte[] getV1KeyValueArray();
KeyValue getKeyValue();
ByteBuffer getV1KeyBuffer();

int appendKeyToV1ByteArray(byte[] output, int offset);
int appendToV1ByteArray(byte[] output, int offset);
{code}
This lets the interface start in the data block encoders and slowly grow out 
into the storefiles, filters, etc, and eventually out to the client.  
Eventually we deprecate those methods from the interface and try to finalize 
the transition.  One problem with this approach with regard to the tags is that 
only the storage layer would know about them at first, and it would take some 
time to expose them to the client.

All-in-all, the tags raise some interesting questions in my mind like "why 
isn't everything in the KV implemented as a tag?"  For example, i'd love to see 
per-cell TTL's someday.  Maybe tags go hand-in-hand with co-processors to 
implement features like that?
                
> Add per-KeyValue Security
> -------------------------
>
>                 Key: HBASE-6222
>                 URL: https://issues.apache.org/jira/browse/HBASE-6222
>             Project: HBase
>          Issue Type: New Feature
>          Components: security
>            Reporter: stack
>
> Saw an interesting article: 
> http://www.fiercegovernmentit.com/story/sasc-accumulo-language-pro-open-source-say-proponents/2012-06-14
> "The  Senate Armed Services Committee version of the fiscal 2013 national 
> defense authorization act (S. 3254) would require DoD agencies to foreswear 
> the Accumulo NoSQL database after Sept. 30, 2013, unless the DoD CIO 
> certifies that there exists either no viable commercial open source database 
> with security features comparable to [Accumulo] (such as the HBase or 
> Cassandra databases)..."
> Not sure what a 'commercial open source database' is, and I'm not sure whats 
> going on in the article, but tra-la-la'ing, if we had per-KeyValue 'security' 
> like Accumulo's, we might put ourselves in the running for federal 
> contributions?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to