Repository: phoenix
Updated Branches:
  refs/heads/4.0 37c4d3eb9 -> a059e2b82


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/a059e2b8
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/a059e2b8
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/a059e2b8

Branch: refs/heads/4.0
Commit: a059e2b82478e17da9d0623ad68cf1a5f00ef9f5
Parents: 594499c
Author: James Taylor <[email protected]>
Authored: Tue Nov 4 22:48:18 2014 -0800
Committer: James Taylor <[email protected]>
Committed: Tue Nov 4 22:49:07 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/a059e2b8/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 21e0631..416ec37 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