You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Anoop Sam John (JIRA)" <ji...@apache.org> on 2014/07/10 11:40:06 UTC

[jira] [Comment Edited] (HBASE-11423) Visibility label and per cell ACL feature not working with HTable#mutateRow() and MultiRowMutationEndpoint

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

Anoop Sam John edited comment on HBASE-11423 at 7/10/14 9:39 AM:
-----------------------------------------------------------------

Thanks for the review and comments [~lhofhansl].  I accept your concern.

bq.Or to change the coprocessor hook to not require the MVCC transaction started.
I fear we can not do that. The HIndex (and so soon the Phoenix local index) uses this hook and we need mvcc start to happen before coming to this hook.

bq.Is there no way to pull this entire logic into the RowProcessor itself?
The biggest issue is the RowProcessor#process(long now,  HRegion region, List<KeyValue> mutations, WALEdit walEdit)
takes a List of KVs and add Mutation KVs into this.  Later these are applied to memstore.
I wish this process() takes a List of Mutations (or return).
Within HRegion we can take the KVs from Mutations and apply them to memstore.
If we do so I can do this.
Step#4  will be doProcessRowWithTimeout()
and Step#5
mvcc.beginMemstoreInsertWithSeqNum

And add a new Step which will call RowProcessor#postProcessAfterMVCCBegin() and within that (In MultiRowMutationProcessor) I can call the CP hook of preBatchMutate.


I can put a sample patch soon because reading code will be easier.

I hope the above mentioned change for RowProcessor#process() is fine.  What do you say [~lhofhansl]



was (Author: anoop.hbase):
Thanks for the review and comments [~lhofhansl].  I accept your concern.

bq.Or to change the coprocessor hook to not require the MVCC transaction started.
I fear we can not do that. The HIndex (and so soon the Phoenix local index) uses this hook and we need mvcc start to happen before coming to this hook.

bq.Is there no way to pull this entire logic into the RowProcessor itself?
The biggest issue is the RowProcessor#process(long now,  HRegion region, List<KeyValue> mutations, WALEdit walEdit)
takes a List of KVs and add Mutation KVs into this.  Later these are applied to memstore.
I wish this process() takes a List of Mutations (or return).
Within HRegion we can take the KVs from Mutations and apply them to memstore.
If we do so I can do this.
Step#4  will be doProcessRowWithTimeout()
and Step#5
mvcc.beginMemstoreInsertWithSeqNum

And add a new Step which will call RowProcessor#preProcessAfterMVCCBegin() and within that (In MultiRowMutationProcessor) I can call the CP hook of preBatchMutate.


I can put a sample patch soon because reading code will be easier.

I hope the above mentioned change for RowProcessor#process() is fine.  What do you say [~lhofhansl]


> Visibility label and per cell ACL feature not working with HTable#mutateRow() and MultiRowMutationEndpoint
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-11423
>                 URL: https://issues.apache.org/jira/browse/HBASE-11423
>             Project: HBase
>          Issue Type: Bug
>          Components: Coprocessors, security
>    Affects Versions: 0.98.0
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>            Priority: Blocker
>             Fix For: 0.99.0, 1.0.0, 0.98.4
>
>         Attachments: HBASE-11423.patch
>
>
> This is because pre/postBatchMutate() APIs are not getting called from HRegion#processRowsWithLocks()



--
This message was sent by Atlassian JIRA
(v6.2#6252)