[ https://issues.apache.org/jira/browse/HBASE-15600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15257636#comment-15257636 ]
Anoop Sam John commented on HBASE-15600: ---------------------------------------- {code} checkAndPrepareMutation(mutation, replay, cpFamilyMap, now); 3131 3132 // Acquire row locks. If not, the whole batch will fail. 3133 acquiredRowLocks.add(getRowLock(mutation.getRow(), true)); {code} I can see there is a checkRow() call within checkAndPrepareMutation() and getRowLock() again have checkRow() call.. Can we avoid? Before the call to CP, I can see ops on Mutation like {code} Mutation mutation = batchOp.getMutation(i); if (mutation instanceof Put) { updateCellTimestamps(familyMaps[i].values(), byteNow); noOfPuts++; } else { prepareDeleteTimestamps(mutation, familyMaps[i], byteNow); noOfDeletes++; } rewriteCellTags(familyMaps[i], mutation); {code} This is within doMiniBatchMutate(). checkAndPrepareMutation seems doing some thing else? > 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)