You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2015/03/25 02:14:03 UTC
hbase git commit: HBASE-13327 Use Admin in ConnectionCache (Solomon
Duskis)
Repository: hbase
Updated Branches:
refs/heads/master 8cb4f89c0 -> 227ace910
HBASE-13327 Use Admin in ConnectionCache (Solomon Duskis)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/227ace91
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/227ace91
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/227ace91
Branch: refs/heads/master
Commit: 227ace9100043613a014d897dc78e97cc214ffac
Parents: 8cb4f89
Author: tedyu <yu...@gmail.com>
Authored: Tue Mar 24 18:13:51 2015 -0700
Committer: tedyu <yu...@gmail.com>
Committed: Tue Mar 24 18:13:51 2015 -0700
----------------------------------------------------------------------
.../hadoop/hbase/util/ConnectionCache.java | 9 ++--
.../hadoop/hbase/thrift/ThriftServerRunner.java | 48 +++++++++++++-------
2 files changed, 35 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/227ace91/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ConnectionCache.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ConnectionCache.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ConnectionCache.java
index bbfed4c..ab1948b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ConnectionCache.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ConnectionCache.java
@@ -29,9 +29,9 @@ import org.apache.hadoop.hbase.ScheduledChore;
import org.apache.hadoop.hbase.Stoppable;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.classification.InterfaceAudience;
+import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.security.User;
import org.apache.hadoop.hbase.security.UserProvider;
@@ -128,14 +128,13 @@ public class ConnectionCache {
* Caller doesn't close the admin afterwards.
* We need to manage it and close it properly.
*/
- @SuppressWarnings("deprecation")
- public HBaseAdmin getAdmin() throws IOException {
+ public Admin getAdmin() throws IOException {
ConnectionInfo connInfo = getCurrentConnection();
if (connInfo.admin == null) {
Lock lock = locker.acquireLock(getEffectiveUser());
try {
if (connInfo.admin == null) {
- connInfo.admin = new HBaseAdmin(connInfo.connection);
+ connInfo.admin = connInfo.connection.getAdmin();
}
} finally {
lock.unlock();
@@ -184,7 +183,7 @@ public class ConnectionCache {
final Connection connection;
final String userName;
- volatile HBaseAdmin admin;
+ volatile Admin admin;
private long lastAccessTime;
private boolean closed;
http://git-wip-us.apache.org/repos/asf/hbase/blob/227ace91/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java
----------------------------------------------------------------------
diff --git a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java
index 9f23c09..285d369 100644
--- a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java
+++ b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java
@@ -61,11 +61,11 @@ import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.TableNotFoundException;
import org.apache.hadoop.hbase.classification.InterfaceAudience;
+import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Append;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Durability;
import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Increment;
import org.apache.hadoop.hbase.client.OperationWithAttributes;
@@ -738,7 +738,7 @@ public class ThriftServerRunner implements Runnable {
/**
* Obtain HBaseAdmin. Creates the instance if it is not already created.
*/
- private HBaseAdmin getHBaseAdmin() throws IOException {
+ private Admin getAdmin() throws IOException {
return connectionCache.getAdmin();
}
@@ -749,7 +749,7 @@ public class ThriftServerRunner implements Runnable {
@Override
public void enableTable(ByteBuffer tableName) throws IOError {
try{
- getHBaseAdmin().enableTable(getBytes(tableName));
+ getAdmin().enableTable(getTableName(tableName));
} catch (IOException e) {
LOG.warn(e.getMessage(), e);
throw new IOError(e.getMessage());
@@ -759,7 +759,7 @@ public class ThriftServerRunner implements Runnable {
@Override
public void disableTable(ByteBuffer tableName) throws IOError{
try{
- getHBaseAdmin().disableTable(getBytes(tableName));
+ getAdmin().disableTable(getTableName(tableName));
} catch (IOException e) {
LOG.warn(e.getMessage(), e);
throw new IOError(e.getMessage());
@@ -778,8 +778,13 @@ public class ThriftServerRunner implements Runnable {
@Override
public void compact(ByteBuffer tableNameOrRegionName) throws IOError {
- try{
- getHBaseAdmin().compact(getBytes(tableNameOrRegionName));
+ byte[] tableNameOrRegionNameArray = getBytes(tableNameOrRegionName);
+ try {
+ try {
+ getAdmin().compactRegion(tableNameOrRegionNameArray);
+ } catch (IllegalArgumentException e) {
+ getAdmin().compact(TableName.valueOf(tableNameOrRegionNameArray));
+ }
} catch (IOException e) {
LOG.warn(e.getMessage(), e);
throw new IOError(e.getMessage());
@@ -788,8 +793,13 @@ public class ThriftServerRunner implements Runnable {
@Override
public void majorCompact(ByteBuffer tableNameOrRegionName) throws IOError {
- try{
- getHBaseAdmin().majorCompact(getBytes(tableNameOrRegionName));
+ byte[] tableNameOrRegionNameArray = getBytes(tableNameOrRegionName);
+ try {
+ try {
+ getAdmin().majorCompactRegion(tableNameOrRegionNameArray);
+ } catch (IllegalArgumentException e) {
+ getAdmin().majorCompact(TableName.valueOf(tableNameOrRegionNameArray));
+ }
} catch (IOException e) {
LOG.warn(e.getMessage(), e);
throw new IOError(e.getMessage());
@@ -799,7 +809,7 @@ public class ThriftServerRunner implements Runnable {
@Override
public List<ByteBuffer> getTableNames() throws IOError {
try {
- TableName[] tableNames = this.getHBaseAdmin().listTableNames();
+ TableName[] tableNames = this.getAdmin().listTableNames();
ArrayList<ByteBuffer> list = new ArrayList<ByteBuffer>(tableNames.length);
for (int i = 0; i < tableNames.length; i++) {
list.add(ByteBuffer.wrap(tableNames[i].getName()));
@@ -1164,17 +1174,17 @@ public class ThriftServerRunner implements Runnable {
public void createTable(ByteBuffer in_tableName,
List<ColumnDescriptor> columnFamilies) throws IOError,
IllegalArgument, AlreadyExists {
- byte [] tableName = getBytes(in_tableName);
+ TableName tableName = getTableName(in_tableName);
try {
- if (getHBaseAdmin().tableExists(tableName)) {
+ if (getAdmin().tableExists(tableName)) {
throw new AlreadyExists("table name already in use");
}
- HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName));
+ HTableDescriptor desc = new HTableDescriptor(tableName);
for (ColumnDescriptor col : columnFamilies) {
HColumnDescriptor colDesc = ThriftUtilities.colDescFromThrift(col);
desc.addFamily(colDesc);
}
- getHBaseAdmin().createTable(desc);
+ getAdmin().createTable(desc);
} catch (IOException e) {
LOG.warn(e.getMessage(), e);
throw new IOError(e.getMessage());
@@ -1184,17 +1194,21 @@ public class ThriftServerRunner implements Runnable {
}
}
+ private static TableName getTableName(ByteBuffer buffer) {
+ return TableName.valueOf(getBytes(buffer));
+ }
+
@Override
public void deleteTable(ByteBuffer in_tableName) throws IOError {
- byte [] tableName = getBytes(in_tableName);
+ TableName tableName = getTableName(in_tableName);
if (LOG.isDebugEnabled()) {
- LOG.debug("deleteTable: table=" + Bytes.toString(tableName));
+ LOG.debug("deleteTable: table=" + tableName);
}
try {
- if (!getHBaseAdmin().tableExists(tableName)) {
+ if (!getAdmin().tableExists(tableName)) {
throw new IOException("table does not exist");
}
- getHBaseAdmin().deleteTable(tableName);
+ getAdmin().deleteTable(tableName);
} catch (IOException e) {
LOG.warn(e.getMessage(), e);
throw new IOError(e.getMessage());