Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.2 ec667e13e -> d3ff31699 refs/heads/4.x-HBase-1.3 4d8c5d43c -> d8a78e19d refs/heads/4.x-HBase-1.4 61ce0eac6 -> 8b9a51785 refs/heads/master ba1fd712a -> 2084a6cce
PHOENIX-4903 Use same hash cache RPC message across all calls Signed-off-by: Josh Elser <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/2084a6cc Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/2084a6cc Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/2084a6cc Branch: refs/heads/master Commit: 2084a6ccefe27e4a5c0e8073fc0302d94ca8548c Parents: ba1fd71 Author: Marcell Ortutay <[email protected]> Authored: Sat Sep 15 21:13:54 2018 -0700 Committer: Josh Elser <[email protected]> Committed: Tue Sep 18 14:16:46 2018 -0400 ---------------------------------------------------------------------- .../apache/phoenix/cache/ServerCacheClient.java | 61 ++++++++++---------- 1 file changed, 32 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/2084a6cc/phoenix-core/src/main/java/org/apache/phoenix/cache/ServerCacheClient.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/cache/ServerCacheClient.java b/phoenix-core/src/main/java/org/apache/phoenix/cache/ServerCacheClient.java index 9efa6bc..822e255 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/cache/ServerCacheClient.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/cache/ServerCacheClient.java @@ -486,6 +486,37 @@ public class ServerCacheClient { throws Exception { byte[] keyInRegion = getKeyInRegion(key); final Map<byte[], AddServerCacheResponse> results; + + AddServerCacheRequest.Builder builder = AddServerCacheRequest.newBuilder(); + final byte[] tenantIdBytes; + if (cacheUsingTable.isMultiTenant()) { + try { + tenantIdBytes = connection.getTenantId() == null ? null + : ScanUtil.getTenantIdBytes(cacheUsingTable.getRowKeySchema(), + cacheUsingTable.getBucketNum() != null, connection.getTenantId(), + cacheUsingTable.getViewIndexId() != null); + } catch (SQLException e) { + throw new IOException(e); + } + } else { + tenantIdBytes = connection.getTenantId() == null ? null + : connection.getTenantId().getBytes(); + } + if (tenantIdBytes != null) { + builder.setTenantId(ByteStringer.wrap(tenantIdBytes)); + } + builder.setCacheId(ByteStringer.wrap(cacheId)); + builder.setUsePersistentCache(usePersistentCache); + builder.setCachePtr(org.apache.phoenix.protobuf.ProtobufUtil.toProto(cachePtr)); + builder.setHasProtoBufIndexMaintainer(true); + ServerCacheFactoryProtos.ServerCacheFactory.Builder svrCacheFactoryBuider = ServerCacheFactoryProtos.ServerCacheFactory + .newBuilder(); + svrCacheFactoryBuider.setClassName(cacheFactory.getClass().getName()); + builder.setCacheFactory(svrCacheFactoryBuider.build()); + builder.setTxState(ByteStringer.wrap(txState)); + builder.setClientVersion(MetaDataProtocol.PHOENIX_VERSION); + final AddServerCacheRequest request = builder.build(); + try { results = htable.coprocessorService(ServerCachingService.class, keyInRegion, keyInRegion, new Batch.Call<ServerCachingService, AddServerCacheResponse>() { @@ -493,35 +524,7 @@ public class ServerCacheClient { public AddServerCacheResponse call(ServerCachingService instance) throws IOException { ServerRpcController controller = new ServerRpcController(); BlockingRpcCallback<AddServerCacheResponse> rpcCallback = new BlockingRpcCallback<AddServerCacheResponse>(); - AddServerCacheRequest.Builder builder = AddServerCacheRequest.newBuilder(); - final byte[] tenantIdBytes; - if (cacheUsingTable.isMultiTenant()) { - try { - tenantIdBytes = connection.getTenantId() == null ? null - : ScanUtil.getTenantIdBytes(cacheUsingTable.getRowKeySchema(), - cacheUsingTable.getBucketNum() != null, connection.getTenantId(), - cacheUsingTable.getViewIndexId() != null); - } catch (SQLException e) { - throw new IOException(e); - } - } else { - tenantIdBytes = connection.getTenantId() == null ? null - : connection.getTenantId().getBytes(); - } - if (tenantIdBytes != null) { - builder.setTenantId(ByteStringer.wrap(tenantIdBytes)); - } - builder.setCacheId(ByteStringer.wrap(cacheId)); - builder.setUsePersistentCache(usePersistentCache); - builder.setCachePtr(org.apache.phoenix.protobuf.ProtobufUtil.toProto(cachePtr)); - builder.setHasProtoBufIndexMaintainer(true); - ServerCacheFactoryProtos.ServerCacheFactory.Builder svrCacheFactoryBuider = ServerCacheFactoryProtos.ServerCacheFactory - .newBuilder(); - svrCacheFactoryBuider.setClassName(cacheFactory.getClass().getName()); - builder.setCacheFactory(svrCacheFactoryBuider.build()); - builder.setTxState(ByteStringer.wrap(txState)); - builder.setClientVersion(MetaDataProtocol.PHOENIX_VERSION); - instance.addServerCache(controller, builder.build(), rpcCallback); + instance.addServerCache(controller, request, rpcCallback); if (controller.getFailedOn() != null) { throw controller.getFailedOn(); } return rpcCallback.get(); }
