You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by el...@apache.org on 2018/09/18 18:59:24 UTC

[2/4] phoenix git commit: PHOENIX-4903 Use same hash cache RPC message across all calls

PHOENIX-4903 Use same hash cache RPC message across all calls

Signed-off-by: Josh Elser <el...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/8b9a5178
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/8b9a5178
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/8b9a5178

Branch: refs/heads/4.x-HBase-1.4
Commit: 8b9a517855fc0302aa88f715fa7641f3470f58b4
Parents: 61ce0ea
Author: Marcell Ortutay <ma...@gmail.com>
Authored: Sat Sep 15 21:13:54 2018 -0700
Committer: Josh Elser <el...@apache.org>
Committed: Tue Sep 18 14:17:01 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/8b9a5178/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 011a6f8..93d16f5 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();
                         }