You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2009/03/25 10:09:49 UTC
svn commit: r758183 - in /hadoop/hbase/trunk: CHANGES.txt
src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
Author: stack
Date: Wed Mar 25 09:09:43 2009
New Revision: 758183
URL: http://svn.apache.org/viewvc?rev=758183&view=rev
Log:
HBASE-803 Atomic increment operations -- part 2 -- fix crash
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=758183&r1=758182&r2=758183&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Wed Mar 25 09:09:43 2009
@@ -105,6 +105,7 @@
HBASE-1240 Would be nice if RowResult could be comparable
(Erik Holstad via Stack)
HBASE-803 Atomic increment operations (Ryan Rawson and Jon Gray via Stack)
+ Part 1 and part 2 -- fix for a crash.
HBASE-1252 Make atomic increment perform a binary increment
(Jonathan Gray via Stack)
HBASE-1258,1259 ganglia metrics for 'requests' is confusing
@@ -117,7 +118,6 @@
(Nitay Joffe via Stack)
-
Release 0.19.0 - 01/21/2009
INCOMPATIBLE CHANGES
HBASE-885 TableMap and TableReduce should be interfaces
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=758183&r1=758182&r2=758183&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java Wed Mar 25 09:09:43 2009
@@ -2613,23 +2613,20 @@
} finally {
store.lock.readLock().unlock();
}
- if (c.size() == 1) {
+ // Pick the latest value out of List<Cell> c:
+ if (c.size() >= 1) {
// Use the memcache timestamp value.
LOG.debug("Overwriting the memcache value for " + Bytes.toString(row) + "/" + Bytes.toString(column));
ts = c.get(0).getTimestamp();
value = c.get(0).getValue();
- } else if (c.size() > 1) {
- throw new DoNotRetryIOException("more than 1 value returned in incrementColumnValue from memcache");
}
if (value == null) {
// Check the store (including disk) for the previous value.
Cell[] cell = store.get(hsk, 1);
- if (cell != null && cell.length == 1) {
+ if (cell != null && cell.length >= 1) {
LOG.debug("Using HFile previous value for " + Bytes.toString(row) + "/" + Bytes.toString(column));
value = cell[0].getValue();
- } else if (cell != null && c.size() > 1) {
- throw new DoNotRetryIOException("more than 1 value returned in incrementColumnValue from Store");
}
}