Repository: hbase Updated Branches: refs/heads/master e04009c98 -> e4138a3a9
HBASE-10354. Addendum commit. 10354.add.patch committed git-svn-id: https://svn.apache.org/repos/asf/hbase/branches/hbase-10070@1568205 13f79535-47bb-0310-9956-ffa450edef68 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d6f603a4 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d6f603a4 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d6f603a4 Branch: refs/heads/master Commit: d6f603a4929d9309269fd9f88340caf41b5d5c81 Parents: 998cd16 Author: Devaraj Das <[email protected]> Authored: Fri Feb 14 07:34:39 2014 +0000 Committer: Enis Soztutar <[email protected]> Committed: Fri Jun 27 16:39:36 2014 -0700 ---------------------------------------------------------------------- .../org/apache/hadoop/hbase/protobuf/ProtobufUtil.java | 12 ++++++++---- .../org/apache/hadoop/hbase/regionserver/HRegion.java | 3 ++- .../apache/hadoop/hbase/regionserver/HRegionServer.java | 2 +- .../apache/hadoop/hbase/regionserver/RSRpcServices.java | 3 ++- 4 files changed, 13 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/d6f603a4/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java index 5ec2a3a..3b5e4f3 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java @@ -1232,7 +1232,7 @@ public final class ProtobufUtil { */ public static ClientProtos.Result toResult(final Result result) { if (result.getExists() != null) { - return toResult(result.getExists()); + return toResult(result.getExists(), result.isStale()); } Cell[] cells = result.rawCells(); @@ -1256,8 +1256,12 @@ public final class ProtobufUtil { * @param existence the client existence to send * @return the converted protocol buffer Result */ - public static ClientProtos.Result toResult(final boolean existence) { - return existence ? EMPTY_RESULT_PB_EXISTS_TRUE : EMPTY_RESULT_PB_EXISTS_FALSE; + public static ClientProtos.Result toResult(final boolean existence, boolean stale) { + if (stale){ + return existence ? EMPTY_RESULT_PB_EXISTS_TRUE_STALE : EMPTY_RESULT_PB_EXISTS_FALSE_STALE; + } else { + return existence ? EMPTY_RESULT_PB_EXISTS_TRUE : EMPTY_RESULT_PB_EXISTS_FALSE; + } } /** @@ -1268,7 +1272,7 @@ public final class ProtobufUtil { * @return the converted protocol buffer Result */ public static ClientProtos.Result toResultNoData(final Result result) { - if (result.getExists() != null) return toResult(result.getExists()); + if (result.getExists() != null) return toResult(result.getExists(), result.isStale()); int size = result.size(); if (size == 0) return result.isStale() ? EMPTY_RESULT_PB_STALE : EMPTY_RESULT_PB; ClientProtos.Result.Builder builder = ClientProtos.Result.newBuilder(); http://git-wip-us.apache.org/repos/asf/hbase/blob/d6f603a4/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index aef95d8..b89d886 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -4725,7 +4725,8 @@ public class HRegion implements HeapSize { // , Writable{ } } List<Cell> results = get(get, true); - return Result.create(results, get.isCheckExistenceOnly() ? !results.isEmpty() : null); + boolean stale = this.getRegionInfo().getReplicaId() != 0; + return Result.create(results, get.isCheckExistenceOnly() ? !results.isEmpty() : null, stale); } /* http://git-wip-us.apache.org/repos/asf/hbase/blob/d6f603a4/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index 84f986b..d8f1696 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -2531,7 +2531,7 @@ public class HRegionServer extends HasThread implements return getRegionByEncodedName(regionName, encodedRegionName); } - protected HRegion getRegionByEncodedName(String encodedRegionName) + public HRegion getRegionByEncodedName(String encodedRegionName) throws NotServingRegionException { return getRegionByEncodedName(null, encodedRegionName); } http://git-wip-us.apache.org/repos/asf/hbase/blob/d6f603a4/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java index e94c506..599fd1c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java @@ -1606,7 +1606,8 @@ public class RSRpcServices implements HBaseRPCErrorHandler, } } if (existence != null){ - ClientProtos.Result pbr = ProtobufUtil.toResult(existence); + ClientProtos.Result pbr = + ProtobufUtil.toResult(existence, region.getRegionInfo().getReplicaId() != 0); builder.setResult(pbr); } else if (r != null) { ClientProtos.Result pbr = ProtobufUtil.toResult(r);
