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

Hudson commented on HBASE-16992:
--------------------------------

FAILURE: Integrated in Jenkins build HBase-1.4 #522 (See 
[https://builds.apache.org/job/HBase-1.4/522/])
HBASE-16992 The usage of mutation from CP is weird. (ChiaPing Tsai) 
(anoopsamjohn: rev 2fdba6521d420771fba5c624c5e9bea94f8ee5fa)
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
* (edit) 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.java


> The usage of mutation from CP is weird.
> ---------------------------------------
>
>                 Key: HBASE-16992
>                 URL: https://issues.apache.org/jira/browse/HBASE-16992
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 1.3.0, 1.4.0
>            Reporter: ChiaPing Tsai
>            Assignee: ChiaPing Tsai
>            Priority: Minor
>             Fix For: 2.0.0, 1.4.0
>
>         Attachments: HBASE-16992.branch-1.v0.patch, 
> HBASE-16992.branch-1.v1.patch, HBASE-16992.v0.patch, HBASE-16992.v1.patch
>
>
> {code:title=HRegion#doMiniBatchMutate|borderStyle=solid}
> Mutation cpMutation = cpMutations[j];
> Map<byte[], List<Cell>> cpFamilyMap = cpMutation.getFamilyCellMap();
> checkAndPrepareMutation(cpMutation, replay, cpFamilyMap, now);
>  // Acquire row locks. If not, the whole batch will fail.
> acquiredRowLocks.add(getRowLockInternal(cpMutation.getRow(), true));
> if (cpMutation.getDurability() == Durability.SKIP_WAL) {
>   recordMutationWithoutWal(cpFamilyMap);
> }
> // Returned mutations from coprocessor correspond to the Mutation at index i. 
> We can
>  // directly add the cells from those mutations to the familyMaps of this 
> mutation.
> mergeFamilyMaps(familyMaps[i], cpFamilyMap); // will get added to the 
> memstore later
> {code}
> 1. Does the returned mutation from coprocessor have the same row as the 
> corresponded mutation? If so, the acquiredRowLocks() can be saved. If not, 
> the corresponded mutation may maintain the cells with different row due to 
> mergeFamilyMaps().
> 2. Is returned mutation's durability useful? If so, we should deal with the 
> different durabilities before mergeFamilyMaps(). If not, the 
> recordMutationWithoutWal can be saved. 
> 3. If both the returned mutation and corresponded mutation have 
> Durability.SKIP_WAL, the recordMutationWithoutWal() may record the duplicate 
> cells due to mergeFamilyMaps().
> Any comment? Thanks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to