hbase-issues mailing list archives

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

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

hongyu bi commented on HBASE-12948:
-----------------------------------

Thanks for ur suggestion,setColumn here just avoid the misunderstand of transaction isolation
mentioned above ,we can change addColumn to setColumn and make addColumn refer to it.
As for "fix this client side", do you mean put "last edit win" logic inside client? If so,
what about open another jira to fix all the subclass of mutation or under this one?
Thanks

> 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
>            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