You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Prakash Khemani (JIRA)" <ji...@apache.org> on 2010/12/30 03:25:46 UTC

[jira] Resolved: (HBASE-3398) increment(Increment, Integer, boolean) might fail

     [ https://issues.apache.org/jira/browse/HBASE-3398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Prakash Khemani resolved HBASE-3398.
------------------------------------

      Resolution: Not A Problem
    Release Note: maxversion is set to 1

> increment(Increment, Integer, boolean) might fail
> -------------------------------------------------
>
>                 Key: HBASE-3398
>                 URL: https://issues.apache.org/jira/browse/HBASE-3398
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.90.0
>            Reporter: Prakash Khemani
>            Assignee: Jonathan Gray
>
> In org.apache.hadoop.hbase.regionserver.HRegion.increment(Increment, Integer, boolean) the following loop assumes that the result from geLastIncrement() has a single entry for a given <family, qualifier>. But that is not necessarily true. getLastIncrement() does a union of all entries found in each of the store files ... and multiple versions of the same key are quite possible.
>           List<KeyValue> results = getLastIncrement(get);
>           // Iterate the input columns and update existing values if they were
>           // found, otherwise add new column initialized to the increment amount
>           int idx = 0;
>           for (Map.Entry<byte [], Long> column : family.getValue().entrySet()) {
>             long amount = column.getValue();
>             if (idx < results.size() &&
>                 results.get(idx).matchingQualifier(column.getKey())) {
>               amount += Bytes.toLong(results.get(idx).getValue());
>               idx++;
>             }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.