[
https://issues.apache.org/jira/browse/HBASE-15600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15230055#comment-15230055
]
Anoop Sam John commented on HBASE-15600:
----------------------------------------
{code}
for (int i = firstIndex; i < ( lastIndexExclusive +
(familyMapsFromCoprocessors==null ? 0 :
3214 familyMapsFromCoprocessors.length)); i++) {
3215 if (i < lastIndexExclusive &&
batchOp.retCodeDetails[i].getOperationStatusCode() !=
OperationStatusCode.NOT_RUN) {
3216 continue;
3217 }
3218 addedSize += applyFamilyMapToMemstore(i < lastIndexExclusive ?
familyMaps[i]:
3219 familyMapsFromCoprocessors[i-lastIndexExclusive],
replay,
3220 replay? batchOp.getReplaySequenceId():
writeEntry.getWriteNumber());
3221 }
{code}
Better split it to 2 loops. 1st (existing) for the familyMap and new one for
familyMapsFromCoprocessors
One Q though
When the CP adds extra Mutations via this
MiniBatchOperationInProgress#operationsFromCoprocessors, those also needs to be
added to WALEdit? Because on Mutation one can set Durability. When we add
this feature support, we need to do it generically.
> 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, 0.98.19, 1.1.5, 1.2.2, 1.0.5
>
> Attachments: HBASE-15600.patch, HBASE-15600_v1.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)