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 2016/11/01 19:51:15 UTC
[21/50] hbase git commit: HBASE-15198 RPC client not using Codec and
CellBlock for puts by default.
HBASE-15198 RPC client not using Codec and CellBlock for puts by default.
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/62206fd9
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/62206fd9
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/62206fd9
Branch: refs/heads/branch-1.0
Commit: 62206fd9af286a2a40a7567debf890efa255b361
Parents: b9c3419
Author: anoopsjohn <an...@gmail.com>
Authored: Thu Feb 11 16:41:39 2016 +0530
Committer: anoopsjohn <an...@gmail.com>
Committed: Thu Feb 11 16:41:39 2016 +0530
----------------------------------------------------------------------
.../hadoop/hbase/client/ClusterConnection.java | 6 +++++
.../hadoop/hbase/client/ConnectionAdapter.java | 5 ++++
.../hadoop/hbase/client/ConnectionManager.java | 5 ++++
.../hbase/client/MultiServerCallable.java | 8 ++-----
.../hadoop/hbase/ipc/AbstractRpcClient.java | 5 ++++
.../org/apache/hadoop/hbase/ipc/RpcClient.java | 6 +++++
.../hadoop/hbase/protobuf/ProtobufUtil.java | 4 ----
.../hadoop/hbase/protobuf/RequestConverter.java | 11 ++++++---
.../security/access/TestAccessController.java | 25 --------------------
9 files changed, 37 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/62206fd9/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClusterConnection.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClusterConnection.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClusterConnection.java
index 05d5c63..9ceb112 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClusterConnection.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ClusterConnection.java
@@ -300,4 +300,10 @@ public interface ClusterConnection extends HConnection {
* @return the configured client backoff policy
*/
ClientBackoffPolicy getBackoffPolicy();
+
+ /**
+ * @return true when this connection uses a {@link org.apache.hadoop.hbase.codec.Codec} and so
+ * supports cell blocks.
+ */
+ boolean hasCellBlockSupport();
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/62206fd9/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionAdapter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionAdapter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionAdapter.java
index 99da1be..d67df2a 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionAdapter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionAdapter.java
@@ -464,4 +464,9 @@ abstract class ConnectionAdapter implements ClusterConnection {
public ClientBackoffPolicy getBackoffPolicy() {
return wrappedConnection.getBackoffPolicy();
}
+
+ @Override
+ public boolean hasCellBlockSupport() {
+ return wrappedConnection.hasCellBlockSupport();
+ }
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/62206fd9/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java
index 5b5ffa1..78fb17f 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java
@@ -2522,6 +2522,11 @@ class ConnectionManager {
public boolean isManaged() {
return managed;
}
+
+ @Override
+ public boolean hasCellBlockSupport() {
+ return this.rpcClient.hasCellBlockSupport();
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/hbase/blob/62206fd9/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MultiServerCallable.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MultiServerCallable.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MultiServerCallable.java
index 8d63105..382a8b6 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MultiServerCallable.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MultiServerCallable.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.CellScannable;
import org.apache.hadoop.hbase.DoNotRetryIOException;
import org.apache.hadoop.hbase.HConstants;
@@ -142,11 +141,8 @@ class MultiServerCallable<R> extends RegionServerCallable<MultiResponse> {
// This is not exact -- the configuration could have changed on us after connection was set up
// but it will do for now.
HConnection connection = getConnection();
- if (connection == null) return true; // Default is to do cellblocks.
- Configuration configuration = connection.getConfiguration();
- if (configuration == null) return true;
- String codec = configuration.get(HConstants.RPC_CODEC_CONF_KEY, "");
- return codec != null && codec.length() > 0;
+ if (!(connection instanceof ClusterConnection)) return true; // Default is to do cellblocks.
+ return ((ClusterConnection) connection).hasCellBlockSupport();
}
@Override
http://git-wip-us.apache.org/repos/asf/hbase/blob/62206fd9/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java
index df43f6f..df4ad46 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java
@@ -139,6 +139,11 @@ public abstract class AbstractRpcClient implements RpcClient {
}
}
+ @Override
+ public boolean hasCellBlockSupport() {
+ return this.codec != null;
+ }
+
/**
* Encapsulate the ugly casting and RuntimeException conversion in private method.
* @param conf configuration
http://git-wip-us.apache.org/repos/asf/hbase/blob/62206fd9/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClient.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClient.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClient.java
index 4ededd2..4b17655 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClient.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClient.java
@@ -75,4 +75,10 @@ import java.io.Closeable;
* using this client.
*/
@Override public void close();
+
+ /**
+ * @return true when this client uses a {@link org.apache.hadoop.hbase.codec.Codec} and so
+ * supports cell blocks.
+ */
+ boolean hasCellBlockSupport();
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hbase/blob/62206fd9/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 47acfde..b6da835 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
@@ -1182,10 +1182,6 @@ public final class ProtobufUtil {
valueBuilder.setValue(ByteStringer.wrap(
cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()));
valueBuilder.setTimestamp(cell.getTimestamp());
- if(cell.getTagsLength() > 0) {
- valueBuilder.setTags(ByteStringer.wrap(cell.getTagsArray(), cell.getTagsOffset(),
- cell.getTagsLength()));
- }
if (type == MutationType.DELETE || (type == MutationType.PUT && CellUtil.isDelete(cell))) {
KeyValue.Type keyValueType = KeyValue.Type.codeToType(cell.getTypeByte());
valueBuilder.setDeleteType(toDeleteType(keyValueType));
http://git-wip-us.apache.org/repos/asf/hbase/blob/62206fd9/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java
index 917a5a2..e46acef 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java
@@ -21,8 +21,6 @@ import java.io.IOException;
import java.util.List;
import java.util.regex.Pattern;
-import org.apache.hadoop.hbase.util.ByteStringer;
-
import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.CellScannable;
import org.apache.hadoop.hbase.DoNotRetryIOException;
@@ -666,8 +664,15 @@ public final class RequestConverter {
cells.add(i);
builder.addAction(actionBuilder.setMutation(ProtobufUtil.toMutationNoData(
MutationType.INCREMENT, i, mutationBuilder, action.getNonce())));
+ } else if (row instanceof RegionCoprocessorServiceExec) {
+ RegionCoprocessorServiceExec exec = (RegionCoprocessorServiceExec) row;
+ builder.addAction(actionBuilder.setServiceCall(ClientProtos.CoprocessorServiceCall
+ .newBuilder().setRow(ByteStringer.wrap(exec.getRow()))
+ .setServiceName(exec.getMethod().getService().getFullName())
+ .setMethodName(exec.getMethod().getName())
+ .setRequest(exec.getRequest().toByteString())));
} else if (row instanceof RowMutations) {
- continue; // ignore RowMutations
+ throw new UnsupportedOperationException("No RowMutations in multi calls; use mutateRow");
} else {
throw new DoNotRetryIOException("Multi doesn't support " + row.getClass().getName());
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/62206fd9/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java
index 2d78b74..e7a5aaf 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java
@@ -51,7 +51,6 @@ import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.TableNotFoundException;
-import org.apache.hadoop.hbase.Tag;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Append;
import org.apache.hadoop.hbase.client.Connection;
@@ -2301,30 +2300,6 @@ public class TestAccessController extends SecureTestUtil {
}
@Test
- public void testReservedCellTags() throws Exception {
- AccessTestAction putWithReservedTag = new AccessTestAction() {
- @Override
- public Object run() throws Exception {
- try(Connection conn = ConnectionFactory.createConnection(conf);
- Table t = conn.getTable(TEST_TABLE);) {
- KeyValue kv = new KeyValue(TEST_ROW, TEST_FAMILY, TEST_QUALIFIER,
- HConstants.LATEST_TIMESTAMP, HConstants.EMPTY_BYTE_ARRAY,
- new Tag[] { new Tag(AccessControlLists.ACL_TAG_TYPE,
- ProtobufUtil.toUsersAndPermissions(USER_OWNER.getShortName(),
- new Permission(Permission.Action.READ)).toByteArray()) });
- t.put(new Put(TEST_ROW).add(kv));
- }
- return null;
- }
- };
-
- // Current user is superuser
- verifyAllowed(putWithReservedTag, User.getCurrent());
- // No other user should be allowed
- verifyDenied(putWithReservedTag, USER_OWNER, USER_ADMIN, USER_CREATE, USER_RW, USER_RO);
- }
-
- @Test
public void testGetNamespacePermission() throws Exception {
String namespace = "testGetNamespacePermission";
NamespaceDescriptor desc = NamespaceDescriptor.create(namespace).build();