You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2013/02/23 21:02:52 UTC
svn commit: r1449400 - in
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase:
master/handler/CreateTableHandler.java util/ModifyRegionUtils.java
Author: mbertozzi
Date: Sat Feb 23 20:02:52 2013
New Revision: 1449400
URL: http://svn.apache.org/r1449400
Log:
HBASE-7911 Remove duplicated code from CreateTableHandler
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java?rev=1449400&r1=1449399&r2=1449400&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java Sat Feb 23 20:02:52 2013
@@ -55,6 +55,7 @@ import org.apache.hadoop.hbase.master.Ta
import org.apache.hadoop.hbase.master.TableLockManager.TableLock;
import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.util.FSTableDescriptors;
+import org.apache.hadoop.hbase.util.ModifyRegionUtils;
import org.apache.hadoop.hbase.util.Threads;
import org.apache.zookeeper.KeeperException;
@@ -255,59 +256,7 @@ public class CreateTableHandler extends
protected List<HRegionInfo> handleCreateHdfsRegions(final Path tableRootDir,
final String tableName)
throws IOException {
- int regionNumber = newRegions.length;
- ThreadPoolExecutor regionOpenAndInitThreadPool = getRegionOpenAndInitThreadPool(
- "RegionOpenAndInitThread-" + tableName, regionNumber);
- CompletionService<HRegion> completionService = new ExecutorCompletionService<HRegion>(
- regionOpenAndInitThreadPool);
-
- List<HRegionInfo> regionInfos = new ArrayList<HRegionInfo>();
- for (final HRegionInfo newRegion : newRegions) {
- completionService.submit(new Callable<HRegion>() {
- public HRegion call() throws IOException {
-
- // 1. Create HRegion
- HRegion region = HRegion.createHRegion(newRegion,
- tableRootDir, conf, hTableDescriptor, null,
- false, true);
- // 2. Close the new region to flush to disk. Close log file too.
- region.close();
- return region;
- }
- });
- }
- try {
- // 3. wait for all regions to finish creation
- for (int i = 0; i < regionNumber; i++) {
- Future<HRegion> future = completionService.take();
- HRegion region = future.get();
- regionInfos.add(region.getRegionInfo());
- }
- } catch (InterruptedException e) {
- throw new InterruptedIOException(e.getMessage());
- } catch (ExecutionException e) {
- throw new IOException(e.getCause());
- } finally {
- regionOpenAndInitThreadPool.shutdownNow();
- }
-
- return regionInfos;
- }
-
- protected ThreadPoolExecutor getRegionOpenAndInitThreadPool(
- final String threadNamePrefix, int regionNumber) {
- int maxThreads = Math.min(regionNumber, conf.getInt(
- "hbase.hregion.open.and.init.threads.max", 10));
- ThreadPoolExecutor openAndInitializeThreadPool = Threads
- .getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,
- new ThreadFactory() {
- private int count = 1;
-
- public Thread newThread(Runnable r) {
- Thread t = new Thread(r, threadNamePrefix + "-" + count++);
- return t;
- }
- });
- return openAndInitializeThreadPool;
+ return ModifyRegionUtils.createRegions(conf, tableRootDir,
+ hTableDescriptor, newRegions, null);
}
}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java?rev=1449400&r1=1449399&r2=1449400&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java Sat Feb 23 20:02:52 2013
@@ -106,8 +106,6 @@ public abstract class ModifyRegionUtils
HRegion region = HRegion.createHRegion(newRegion,
rootDir, conf, hTableDescriptor, null,
false, true);
- HRegion.writeRegioninfoOnFilesystem(region.getRegionInfo(), region.getRegionDir(),
- region.getFilesystem(), conf);
try {
// 2. Custom user code to interact with the created region
if (task != null) {
@@ -176,26 +174,4 @@ public abstract class ModifyRegionUtils
throw new InterruptedIOException(e.getMessage());
}
}
-
- /**
- * Remove specified regions by removing them from file-system and .META.
- * (The regions must be offline).
- *
- * @param fs {@link FileSystem} on which to delete the region directory
- * @param catalogTracker the catalog tracker
- * @param regions list of {@link HRegionInfo} to delete.
- */
- public static void deleteRegions(final Configuration conf, final FileSystem fs,
- final CatalogTracker catalogTracker, final List<HRegionInfo> regions) throws IOException {
- if (regions != null && regions.size() > 0) {
- List<Delete> deletes = new ArrayList<Delete>(regions.size());
- for (HRegionInfo hri: regions) {
- deletes.add(new Delete(hri.getRegionName()));
-
- // "Delete" region from FS
- HFileArchiver.archiveRegion(conf, fs, hri);
- }
- MetaEditor.deleteFromMetaTable(catalogTracker, deletes);
- }
- }
}