hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12948) Increment#addColumn on the same column multi times produce wrong result
Date Tue, 10 Feb 2015 23:51:12 GMT

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

stack commented on HBASE-12948:
-------------------------------

[~hongyu.bi] Would it help if they were the same?

NVM. I see now reviewing the patch.  This looks like it was an ugly one to find.  Patch LGTM.
Should we do another issue to change the way the edits are done by family so mutation and
get match?



> Increment#addColumn on the same column multi times produce wrong result 
> ------------------------------------------------------------------------
>
>                 Key: HBASE-12948
>                 URL: https://issues.apache.org/jira/browse/HBASE-12948
>             Project: HBase
>          Issue Type: Bug
>          Components: Client, regionserver
>            Reporter: hongyu bi
>            Assignee: hongyu bi
>            Priority: Critical
>         Attachments: 12948-v2.patch, HBASE-12948-0.99.2-v1.patch, HBASE-12948-v0.patch,
HBASE-12948.patch
>
>
> Case:
> Initially get('row1'):
> rowkey=row1 value=1
> run:
> Increment increment = new Increment(Bytes.toBytes("row1"));
> for (int i = 0; i < N; i++) {
>         increment.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("c"), 1)
> }
> hobi.increment(increment);
> get('row1'):
> if N=1 then result is 2 else if N>1 the result will always be 1
> Cause:
> https://issues.apache.org/jira/browse/HBASE-7114 let increment extent mutation which
change familyMap from NavigableMap to List, so from client side, we can buffer many edits
on the same column;
> However, HRegion#increment use idx to iterate the get's results, here results.size<family.value().size
if N>1,so the latter edits on the same column won't match the condition {idx < results.size()
&& CellUtil.matchingQualifier(results.get(idx), kv) }, meantime the edits share the
same mvccVersion ,so this case happen.
> Fix:
> according to the put/delete#add on the same column behaviour ,
> fix from server side: process "last edit wins on the same column" inside HRegion#increment
to maintenance  HBASE-7114's extension and keep the same result from 0.94.



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

Mime
View raw message