[
https://issues.apache.org/jira/browse/HBASE-15600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15258751#comment-15258751
]
Enis Soztutar commented on HBASE-15600:
---------------------------------------
bq. I can see there is a checkRow() call within checkAndPrepareMutation() and
getRowLock() again have checkRow() call.. Can we avoid?
This is even true for Mutations in regular doMiniBatchMutation(). Let's do the
fix in another jira since the fix is more generic and touches regular code
paths.
bq. This is within doMiniBatchMutate(). checkAndPrepareMutation seems doing
some thing else?
Yes, I had noticed this as well. We are calling checkRow(),
updateCellTimestamps() and prepareDeleteTimestamps() twice in regular
doMiniBatchMutation(). I would not complicate this patch for fixing those
though, because they are existing issues that affect non-cp code paths. Let me
open a follow up jira.
> Add provision for adding mutations to memstore or able to write to same
> region in batchMutate coprocessor hooks
> ---------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-15600
> URL: https://issues.apache.org/jira/browse/HBASE-15600
> Project: HBase
> Issue Type: Improvement
> Reporter: Rajeshbabu Chintaguntla
> Assignee: Rajeshbabu Chintaguntla
> Fix For: 2.0.0, 1.3.0, 1.4.0, 0.98.20
>
> Attachments: HBASE-15600.patch, HBASE-15600_v1.patch,
> HBASE-15600_v2.patch, hbase-15600_v3.patch, hbase-15600_v4.patch
>
>
> As part of PHOENIX-1734 we need to write the index updates to same region
> from coprocessors but writing from batchMutate API is not allowed because of
> mvcc.
> Raised PHOENIX-2742 to discuss any alternative way to write to the same
> region directly or not but not having any proper solution there.
> Currently we have provision to write wal edits from coprocessors. We can set
> wal edits in MiniBatchOperationInProgress.
> {noformat}
> /**
> * Sets the walEdit for the operation(Mutation) at the specified position.
> * @param index
> * @param walEdit
> */
> public void setWalEdit(int index, WALEdit walEdit) {
> this.walEditsFromCoprocessors[getAbsoluteIndex(index)] = walEdit;
> }
> {noformat}
> Similarly we can allow to write mutations from coprocessors to memstore as
> well. Or else we should provide the batch mutation API allow write in batch
> mutate coprocessors.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)