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();
