You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2011/12/01 06:33:09 UTC
svn commit: r1208960 - in /hbase/branches/0.92: ./
src/main/java/org/apache/hadoop/hbase/coprocessor/
src/main/java/org/apache/hadoop/hbase/regionserver/
src/test/java/org/apache/hadoop/hbase/coprocessor/
Author: larsh
Date: Thu Dec 1 05:33:08 2011
New Revision: 1208960
URL: http://svn.apache.org/viewvc?rev=1208960&view=rev
Log:
HBASE-4903 Return a result from RegionObserver.preIncrement (Daniel Gómez Ferro)
Modified:
hbase/branches/0.92/CHANGES.txt
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java
Modified: hbase/branches/0.92/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/CHANGES.txt?rev=1208960&r1=1208959&r2=1208960&view=diff
==============================================================================
--- hbase/branches/0.92/CHANGES.txt (original)
+++ hbase/branches/0.92/CHANGES.txt Thu Dec 1 05:33:08 2011
@@ -750,6 +750,8 @@ Release 0.92.0 - Unreleased
(Roman Shaposhnik)
HBASE-4869 Backport to 0.92: HBASE-4797 [availability] Skip recovered.edits
files with edits older than what region currently has (Jimmy Xiang)
+ HBASE-4903 Return a result from RegionObserver.preIncrement
+ (Daniel Gómez Ferro via Lars H)
TASKS
HBASE-3559 Move report of split to master OFF the heartbeat channel
Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java?rev=1208960&r1=1208959&r2=1208960&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java Thu Dec 1 05:33:08 2011
@@ -17,7 +17,6 @@
package org.apache.hadoop.hbase.coprocessor;
import java.util.List;
-import java.util.Map;
import com.google.common.collect.ImmutableList;
import org.apache.hadoop.hbase.CoprocessorEnvironment;
@@ -200,13 +199,15 @@ public abstract class BaseRegionObserver
}
@Override
- public void preIncrement(final ObserverContext<RegionCoprocessorEnvironment> e,
- final Increment increment, final Result result) throws IOException {
+ public Result preIncrement(final ObserverContext<RegionCoprocessorEnvironment> e,
+ final Increment increment) throws IOException {
+ return null;
}
@Override
- public void postIncrement(final ObserverContext<RegionCoprocessorEnvironment> e,
+ public Result postIncrement(final ObserverContext<RegionCoprocessorEnvironment> e,
final Increment increment, final Result result) throws IOException {
+ return result;
}
@Override
Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java?rev=1208960&r1=1208959&r2=1208960&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java Thu Dec 1 05:33:08 2011
@@ -16,8 +16,8 @@
package org.apache.hadoop.hbase.coprocessor;
+import java.io.IOException;
import java.util.List;
-import java.util.Map;
import com.google.common.collect.ImmutableList;
import org.apache.hadoop.hbase.Coprocessor;
@@ -39,8 +39,6 @@ import org.apache.hadoop.hbase.regionser
import org.apache.hadoop.hbase.regionserver.wal.HLogKey;
import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
-import java.io.IOException;
-
/**
* Coprocessors implement this interface to observe and mediate client actions
* on the region.
@@ -466,13 +464,11 @@ public interface RegionObserver extends
* coprocessors
* @param c the environment provided by the region server
* @param increment increment object
- * @param result The result to return to the client if default processing
- * is bypassed. Can be modified. Will not be used if default processing
- * is not bypassed.
+ * @return result to return to the client if bypassing default processing
* @throws IOException if an error occurred on the coprocessor
*/
- void preIncrement(final ObserverContext<RegionCoprocessorEnvironment> c,
- final Increment increment, final Result result)
+ Result preIncrement(final ObserverContext<RegionCoprocessorEnvironment> c,
+ final Increment increment)
throws IOException;
/**
@@ -482,10 +478,11 @@ public interface RegionObserver extends
* coprocessors
* @param c the environment provided by the region server
* @param increment increment object
- * @param result the result returned by increment, can be modified
+ * @param result the result returned by increment
+ * @return the result to return to the client
* @throws IOException if an error occurred on the coprocessor
*/
- void postIncrement(final ObserverContext<RegionCoprocessorEnvironment> c,
+ Result postIncrement(final ObserverContext<RegionCoprocessorEnvironment> c,
final Increment increment, final Result result)
throws IOException;
Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1208960&r1=1208959&r2=1208960&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Thu Dec 1 05:33:08 2011
@@ -2860,7 +2860,7 @@ public class HRegionServer implements HR
resVal = region.increment(incVal, lock,
increment.getWriteToWAL());
if (region.getCoprocessorHost() != null) {
- region.getCoprocessorHost().postIncrement(incVal, resVal);
+ resVal = region.getCoprocessorHost().postIncrement(incVal, resVal);
}
return resVal;
} catch (IOException e) {
Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java?rev=1208960&r1=1208959&r2=1208960&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java Thu Dec 1 05:33:08 2011
@@ -954,13 +954,13 @@ public class RegionCoprocessorHost
public Result preIncrement(Increment increment)
throws IOException {
boolean bypass = false;
- Result result = new Result();
+ Result result = null;
ObserverContext<RegionCoprocessorEnvironment> ctx = null;
for (RegionEnvironment env: coprocessors) {
if (env.getInstance() instanceof RegionObserver) {
ctx = ObserverContext.createAndPrepare(env, ctx);
try {
- ((RegionObserver)env.getInstance()).preIncrement(ctx, increment, result);
+ result = ((RegionObserver)env.getInstance()).preIncrement(ctx, increment);
} catch (Throwable e) {
handleCoprocessorThrowable(env, e);
}
@@ -978,14 +978,14 @@ public class RegionCoprocessorHost
* @param result the result returned by postIncrement
* @throws IOException if an error occurred on the coprocessor
*/
- public void postIncrement(final Increment increment, Result result)
+ public Result postIncrement(final Increment increment, Result result)
throws IOException {
ObserverContext<RegionCoprocessorEnvironment> ctx = null;
for (RegionEnvironment env: coprocessors) {
if (env.getInstance() instanceof RegionObserver) {
ctx = ObserverContext.createAndPrepare(env, ctx);
try {
- ((RegionObserver)env.getInstance()).postIncrement(ctx, increment, result);
+ result = ((RegionObserver)env.getInstance()).postIncrement(ctx, increment, result);
} catch (Throwable e) {
handleCoprocessorThrowable(env, e);
}
@@ -994,6 +994,7 @@ public class RegionCoprocessorHost
}
}
}
+ return result;
}
/**
Modified: hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java?rev=1208960&r1=1208959&r2=1208960&view=diff
==============================================================================
--- hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java (original)
+++ hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java Thu Dec 1 05:33:08 2011
@@ -371,15 +371,17 @@ public class SimpleRegionObserver extend
}
@Override
- public void preIncrement(final ObserverContext<RegionCoprocessorEnvironment> c,
- final Increment increment, final Result result) throws IOException {
+ public Result preIncrement(final ObserverContext<RegionCoprocessorEnvironment> c,
+ final Increment increment) throws IOException {
hadPreIncrement = true;
+ return null;
}
@Override
- public void postIncrement(final ObserverContext<RegionCoprocessorEnvironment> c,
+ public Result postIncrement(final ObserverContext<RegionCoprocessorEnvironment> c,
final Increment increment, final Result result) throws IOException {
hadPostIncrement = true;
+ return result;
}
public boolean hadPreGet() {