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

Reply via email to