PHOENIX-1401 SYSTEM.SEQUENCE table is not pre-split as expected

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

Branch: refs/heads/3.2
Commit: 0d5c61adcb176088f9be227490182ae16253adee
Parents: 989cd9a
Author: James Taylor <[email protected]>
Authored: Tue Nov 4 22:48:18 2014 -0800
Committer: James Taylor <[email protected]>
Committed: Tue Nov 4 23:09:34 2014 -0800

----------------------------------------------------------------------
 .../java/org/apache/phoenix/util/UpgradeUtil.java | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/0d5c61ad/phoenix-core/src/main/java/org/apache/phoenix/util/UpgradeUtil.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/util/UpgradeUtil.java 
b/phoenix-core/src/main/java/org/apache/phoenix/util/UpgradeUtil.java
index 1c6ff18..a61f39a 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/util/UpgradeUtil.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/util/UpgradeUtil.java
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.sql.SQLException;
 import java.util.List;
 
+import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
@@ -58,16 +59,19 @@ public class UpgradeUtil {
             if (nSaltBuckets <= 0) {
                 return;
             }
-            logger.warn("Pre-splitting SYSTEM.SEQUENCE table " + nSaltBuckets 
+ "-ways");
-            for (int i = 0; i < nSaltBuckets; i++) {
-                logger.info("Pre-splitting SYSTEM.SEQUENCE table for salt 
bucket " + i);
-                admin.split(PhoenixDatabaseMetaData.SEQUENCE_FULLNAME_BYTES, 
new byte[] {(byte)i});
-            }
+            logger.warn("Pre-splitting SYSTEM.SEQUENCE table " + nSaltBuckets 
+ "-ways. This may take some time - please do not close window.");
+            HTableDescriptor desc = 
admin.getTableDescriptor(PhoenixDatabaseMetaData.SEQUENCE_FULLNAME_BYTES);
+            admin.snapshot(PhoenixDatabaseMetaData.SEQUENCE_FULLNAME, 
PhoenixDatabaseMetaData.SEQUENCE_FULLNAME);
+            admin.disableTable(PhoenixDatabaseMetaData.SEQUENCE_FULLNAME);
+            admin.deleteTable(PhoenixDatabaseMetaData.SEQUENCE_FULLNAME);
+            byte[][] splitPoints = 
SaltingUtil.getSalteByteSplitPoints(nSaltBuckets);
+            admin.createTable(desc, splitPoints);
+            admin.disableTable(PhoenixDatabaseMetaData.SEQUENCE_FULLNAME);
+            admin.restoreSnapshot(PhoenixDatabaseMetaData.SEQUENCE_FULLNAME);
+            admin.enableTable(PhoenixDatabaseMetaData.SEQUENCE_FULLNAME);
             logger.warn("Completed pre-splitting SYSTEM.SEQUENCE table");
         } catch (IOException e) {
             throw new SQLException("Unable to pre-split SYSTEM.SEQUENCE 
table", e);
-        } catch (InterruptedException e) {
-            throw new SQLException("Unable to pre-split SYSTEM.SEQUENCE 
table", e);
         } finally {
             try {
                 admin.close();

Reply via email to