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