You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2011/06/21 20:31:27 UTC
svn commit: r1138120 [2/2] - in /hbase/trunk/src:
main/java/org/apache/hadoop/hbase/ main/java/org/apache/hadoop/hbase/master/
main/java/org/apache/hadoop/hbase/master/handler/
main/java/org/apache/hadoop/hbase/regionserver/
main/java/org/apache/hadoop...
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/Merge.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/Merge.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/Merge.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/Merge.java Tue Jun 21 18:31:26 2011
@@ -29,6 +29,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
@@ -153,7 +154,7 @@ public class Merge extends Configured im
get.addColumn(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER);
List<KeyValue> cells2 = rootRegion.get(get, null).list();
HRegionInfo info2 = Writables.getHRegionInfo((cells2 == null)? null: cells2.get(0).getValue());
- HRegion merged = merge(info1, rootRegion, info2, rootRegion);
+ HRegion merged = merge(HTableDescriptor.META_TABLEDESC, info1, rootRegion, info2, rootRegion);
LOG.info("Adding " + merged.getRegionInfo() + " to " +
rootRegion.getRegionInfo());
HRegion.addRegionToMETA(rootRegion, merged);
@@ -216,8 +217,9 @@ public class Merge extends Configured im
Get get = new Get(region1);
get.addColumn(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER);
List<KeyValue> cells1 = metaRegion1.get(get, null).list();
- HRegionInfo info1 = Writables.getHRegionInfo((cells1 == null)? null: cells1.get(0).getValue());
- if (info1== null) {
+ HRegionInfo info1 =
+ Writables.getHRegionInfo((cells1 == null)? null: cells1.get(0).getValue());
+ if (info1 == null) {
throw new NullPointerException("info1 is null using key " +
Bytes.toStringBinary(region1) + " in " + meta1);
}
@@ -235,7 +237,9 @@ public class Merge extends Configured im
if (info2 == null) {
throw new NullPointerException("info2 is null using key " + meta2);
}
- HRegion merged = merge(info1, metaRegion1, info2, metaRegion2);
+ HTableDescriptor htd = FSUtils.getTableDescriptor(FileSystem.get(getConf()),
+ this.rootdir, this.tableName);
+ HRegion merged = merge(htd, info1, metaRegion1, info2, metaRegion2);
// Now find the meta region which will contain the newly merged region
@@ -267,8 +271,8 @@ public class Merge extends Configured im
* to scan the meta if the resulting merged region does not go in either)
* Returns HRegion object for newly merged region
*/
- private HRegion merge(HRegionInfo info1, HRegion meta1, HRegionInfo info2,
- HRegion meta2)
+ private HRegion merge(final HTableDescriptor htd, HRegionInfo info1,
+ HRegion meta1, HRegionInfo info2, HRegion meta2)
throws IOException {
if (info1 == null) {
throw new IOException("Could not find " + Bytes.toStringBinary(region1) + " in " +
@@ -280,9 +284,9 @@ public class Merge extends Configured im
}
HRegion merged = null;
HLog log = utils.getLog();
- HRegion r1 = HRegion.openHRegion(info1, log, getConf());
+ HRegion r1 = HRegion.openHRegion(info1, htd, log, getConf());
try {
- HRegion r2 = HRegion.openHRegion(info2, log, getConf());
+ HRegion r2 = HRegion.openHRegion(info2, htd, log, getConf());
try {
merged = HRegion.merge(r1, r2);
} finally {
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java Tue Jun 21 18:31:26 2011
@@ -20,14 +20,23 @@
package org.apache.hadoop.hbase.util;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
-import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.HRegionInfo;
+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.Get;
import org.apache.hadoop.hbase.client.HTable;
@@ -36,17 +45,7 @@ import org.apache.hadoop.hbase.client.Re
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.regionserver.InternalScanner;
-import org.apache.hadoop.hbase.regionserver.Store;
import org.apache.hadoop.hbase.regionserver.wal.HLog;
-import org.apache.hadoop.hbase.HRegionInfo;
-import org.apache.hadoop.hbase.KeyValue;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
/**
* Contains utility methods for manipulating HBase meta tables.
@@ -59,7 +58,6 @@ public class MetaUtils {
private static final Log LOG = LogFactory.getLog(MetaUtils.class);
private final Configuration conf;
private FileSystem fs;
- private Path rootdir;
private HLog log;
private HRegion rootRegion;
private Map<byte [], HRegion> metaRegions = Collections.synchronizedSortedMap(
@@ -89,8 +87,6 @@ public class MetaUtils {
*/
private void initialize() throws IOException {
this.fs = FileSystem.get(this.conf);
- // Get root directory of HBase installation
- this.rootdir = FSUtils.getRootDir(this.conf);
}
/**
@@ -266,14 +262,16 @@ public class MetaUtils {
if (this.rootRegion != null) {
return this.rootRegion;
}
- this.rootRegion = HRegion.openHRegion(HRegionInfo.ROOT_REGIONINFO, getLog(),
+ this.rootRegion = HRegion.openHRegion(HRegionInfo.ROOT_REGIONINFO,
+ HTableDescriptor.ROOT_TABLEDESC, getLog(),
this.conf);
this.rootRegion.compactStores();
return this.rootRegion;
}
private HRegion openMetaRegion(HRegionInfo metaInfo) throws IOException {
- HRegion meta = HRegion.openHRegion(metaInfo, getLog(), this.conf);
+ HRegion meta = HRegion.openHRegion(metaInfo, HTableDescriptor.META_TABLEDESC,
+ getLog(), this.conf);
meta.compactStores();
return meta;
}
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestCase.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestCase.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestCase.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/HBaseTestCase.java Tue Jun 21 18:31:26 2011
@@ -173,7 +173,7 @@ public abstract class HBaseTestCase exte
throws IOException {
HRegion r = new HRegion(closedRegion.getTableDir(), closedRegion.getLog(),
closedRegion.getFilesystem(), closedRegion.getConf(),
- closedRegion.getRegionInfo(), null);
+ closedRegion.getRegionInfo(), closedRegion.getTableDesc(), null);
r.initialize();
return r;
}
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/TestRegionRebalancing.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/TestRegionRebalancing.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/TestRegionRebalancing.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/TestRegionRebalancing.java Tue Jun 21 18:31:26 2011
@@ -37,6 +37,7 @@ import org.apache.hadoop.hbase.client.Pu
import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.util.JVMClusterUtil;
/**
@@ -91,6 +92,9 @@ public class TestRegionRebalancing exten
HRegion.addRegionToMETA(meta, region);
}
closeRootAndMeta();
+
+ // Add new table descriptor file
+ FSUtils.createTableDescriptor(this.desc, this.conf);
}
/**
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorInterface.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorInterface.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorInterface.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorInterface.java Tue Jun 21 18:31:26 2011
@@ -183,7 +183,7 @@ public class TestCoprocessorInterface ex
//HRegionInfo info = new HRegionInfo(tableName, null, null, false);
HRegion r = new HRegion(closedRegion.getTableDir(), closedRegion.getLog(),
closedRegion.getFilesystem(), closedRegion.getConf(),
- closedRegion.getRegionInfo(), null);
+ closedRegion.getRegionInfo(), closedRegion.getTableDesc(), null);
r.initialize();
// this following piece is a hack. currently a coprocessorHost
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java Tue Jun 21 18:31:26 2011
@@ -273,9 +273,9 @@ public class TestWALObserver {
// Make a new wal for new region open.
HLog wal2 = createWAL(newConf);
Path tableDir =
- HTableDescriptor.getTableDir(hbaseRootDir, hri.getTableName());
+ HTableDescriptor.getTableDir(hbaseRootDir, hri.getTableName());
HRegion region = new HRegion(tableDir, wal2, FileSystem.get(newConf),
- newConf, hri, TEST_UTIL.getHBaseCluster().getRegionServer(0));
+ newConf, hri, htd, TEST_UTIL.getHBaseCluster().getRegionServer(0));
long seqid2 = region.initialize();
SampleRegionWALObserver cp2 =
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java Tue Jun 21 18:31:26 2011
@@ -24,9 +24,11 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
@@ -40,6 +42,8 @@ import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.NotAllMetaRegionsOnlineException;
import org.apache.hadoop.hbase.Server;
import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableDescriptors;
+import org.apache.hadoop.hbase.TableExistsException;
import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.executor.ExecutorService;
@@ -119,11 +123,8 @@ public class TestCatalogJanitor {
private final AssignmentManager asm;
MockMasterServices(final Server server) throws IOException {
- this.mfs = new MasterFileSystem(server, null);
- HTableDescriptor htd = new HTableDescriptor("table");
- htd.addFamily(new HColumnDescriptor("family"));
+ this.mfs = new MasterFileSystem(server, this, null);
this.asm = Mockito.mock(AssignmentManager.class);
- Mockito.when(asm.getTableDescriptor("table")).thenReturn(htd);
}
@Override
@@ -185,6 +186,43 @@ public class TestCatalogJanitor {
public boolean isStopped() {
return false;
}
+
+ @Override
+ public TableDescriptors getTableDescriptors() {
+ return new TableDescriptors() {
+ @Override
+ public HTableDescriptor remove(String tablename) throws IOException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Map<String, HTableDescriptor> getAll() throws IOException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public HTableDescriptor get(byte[] tablename)
+ throws TableExistsException, FileNotFoundException, IOException {
+ return get(Bytes.toString(tablename));
+ }
+
+ @Override
+ public HTableDescriptor get(String tablename)
+ throws TableExistsException, FileNotFoundException, IOException {
+ HTableDescriptor htd = new HTableDescriptor("table");
+ htd.addFamily(new HColumnDescriptor("family"));
+ return htd;
+ }
+
+ @Override
+ public void add(HTableDescriptor htd) throws IOException {
+ // TODO Auto-generated method stub
+
+ }
+ };
+ }
}
@Test
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactSelection.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactSelection.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactSelection.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactSelection.java Tue Jun 21 18:31:26 2011
@@ -87,7 +87,7 @@ public class TestCompactSelection extend
HLog hlog = new HLog(fs, logdir, oldLogDir, conf);
HRegion.createHRegion(info, basedir, conf, htd);
Path tableDir = new Path(basedir, Bytes.toString(htd.getName()));
- HRegion region = new HRegion(tableDir, hlog, fs, conf, info, null);
+ HRegion region = new HRegion(tableDir, hlog, fs, conf, info, htd, null);
store = new Store(basedir, region, hcd, fs, conf);
TEST_FILE = StoreFile.getRandomFilename(fs, store.getHomedir());
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java Tue Jun 21 18:31:26 2011
@@ -154,7 +154,7 @@ public class TestSplitTransaction {
for (HRegion r: daughters) {
// Open so can count its content.
HRegion openRegion = HRegion.openHRegion(this.testdir, r.getRegionInfo(),
- r.getLog(), r.getConf());
+ r.getTableDesc(), r.getLog(), r.getConf());
try {
int count = countRows(openRegion);
assertTrue(count > 0 && count != rowcount);
@@ -209,7 +209,7 @@ public class TestSplitTransaction {
for (HRegion r: daughters) {
// Open so can count its content.
HRegion openRegion = HRegion.openHRegion(this.testdir, r.getRegionInfo(),
- r.getLog(), r.getConf());
+ r.getTableDesc(), r.getLog(), r.getConf());
try {
int count = countRows(openRegion);
assertTrue(count > 0 && count != rowcount);
@@ -254,6 +254,7 @@ public class TestSplitTransaction {
htd.addFamily(hcd);
HRegionInfo hri = new HRegionInfo(htd.getName(), STARTROW, ENDROW);
HRegion.createHRegion(hri, testdir, TEST_UTIL.getConfiguration(), htd);
- return HRegion.openHRegion(testdir, hri, wal, TEST_UTIL.getConfiguration());
+ return HRegion.openHRegion(testdir, hri, htd, wal,
+ TEST_UTIL.getConfiguration());
}
}
\ No newline at end of file
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java Tue Jun 21 18:31:26 2011
@@ -56,7 +56,6 @@ import org.apache.hadoop.hbase.security.
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManagerTestHelper;
-import org.apache.hadoop.hbase.util.IncrementingEnvironmentEdge;
import org.apache.hadoop.hbase.util.ManualEnvironmentEdge;
import org.mockito.Mockito;
@@ -129,7 +128,7 @@ public class TestStore extends TestCase
htd.addFamily(hcd);
HRegionInfo info = new HRegionInfo(htd.getName(), null, null, false);
HLog hlog = new HLog(fs, logdir, oldLogDir, conf);
- HRegion region = new HRegion(basedir, hlog, fs, conf, info, null);
+ HRegion region = new HRegion(basedir, hlog, fs, conf, info, htd, null);
store = new Store(basedir, region, hcd, fs, conf);
}
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/TestOpenRegionHandler.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/TestOpenRegionHandler.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/TestOpenRegionHandler.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/TestOpenRegionHandler.java Tue Jun 21 18:31:26 2011
@@ -238,7 +238,7 @@ public class TestOpenRegionHandler {
HRegion region =
HRegion.createHRegion(hri, HBaseTestingUtility.getTestDir(), HTU
.getConfiguration(), htd);
- OpenRegionHandler handler = new OpenRegionHandler(server, rss, hri) {
+ OpenRegionHandler handler = new OpenRegionHandler(server, rss, hri, htd) {
HRegion openRegion() {
// Open region first, then remove znode as though it'd been hijacked.
//HRegion region = super.openRegion();
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java Tue Jun 21 18:31:26 2011
@@ -165,7 +165,7 @@ public class TestWALReplay {
wal3.setSequenceNumber(wal2.getSequenceNumber());
try {
final HRegion region = new HRegion(basedir, wal3, this.fs, this.conf, hri,
- null);
+ htd, null);
long seqid = region.initialize();
assertTrue(seqid > wal3.getSequenceNumber());
@@ -193,11 +193,11 @@ public class TestWALReplay {
final HRegionInfo hri = createBasic3FamilyHRegionInfo(tableNameStr);
final Path basedir = new Path(this.hbaseRootDir, tableNameStr);
deleteDir(basedir);
- HTableDescriptor htd = createBasic3FamilyHTD(tableNameStr);
+ final HTableDescriptor htd = createBasic3FamilyHTD(tableNameStr);
HRegion region2 = HRegion.createHRegion(hri,
hbaseRootDir, this.conf, htd);
HLog wal = createWAL(this.conf);
- HRegion region = HRegion.openHRegion(hri, wal, this.conf);
+ HRegion region = HRegion.openHRegion(hri, htd, wal, this.conf);
Path f = new Path(basedir, "hfile");
HFile.Writer writer = new HFile.Writer(this.fs, f);
byte [] family = htd.getFamilies().iterator().next().getName();
@@ -218,7 +218,7 @@ public class TestWALReplay {
runWALSplit(newConf);
HLog wal2 = createWAL(newConf);
HRegion region2 = new HRegion(basedir, wal2, FileSystem.get(newConf),
- newConf, hri, null);
+ newConf, hri, htd, null);
long seqid2 = region2.initialize();
assertTrue(seqid2 > -1);
@@ -257,7 +257,7 @@ public class TestWALReplay {
// of the families during the load of edits so its seqid is not same as
// others to test we do right thing when different seqids.
HLog wal = createWAL(this.conf);
- HRegion region = new HRegion(basedir, wal, this.fs, this.conf, hri, null);
+ HRegion region = new HRegion(basedir, wal, this.fs, this.conf, hri, htd, null);
long seqid = region.initialize();
// HRegionServer usually does this. It knows the largest seqid across all regions.
wal.setSequenceNumber(seqid);
@@ -282,7 +282,7 @@ public class TestWALReplay {
wal.close();
runWALSplit(this.conf);
HLog wal2 = createWAL(this.conf);
- HRegion region2 = new HRegion(basedir, wal2, this.fs, this.conf, hri, null) {
+ HRegion region2 = new HRegion(basedir, wal2, this.fs, this.conf, hri, htd, null) {
@Override
protected boolean restoreEdit(Store s, KeyValue kv) {
super.restoreEdit(s, kv);
@@ -317,7 +317,7 @@ public class TestWALReplay {
// Make a new wal for new region open.
HLog wal3 = createWAL(newConf);
final AtomicInteger countOfRestoredEdits = new AtomicInteger(0);
- HRegion region3 = new HRegion(basedir, wal3, newFS, newConf, hri, null) {
+ HRegion region3 = new HRegion(basedir, wal3, newFS, newConf, hri, htd, null) {
@Override
protected boolean restoreEdit(Store s, KeyValue kv) {
boolean b = super.restoreEdit(s, kv);
@@ -409,7 +409,7 @@ public class TestWALReplay {
final AtomicInteger flushcount = new AtomicInteger(0);
try {
final HRegion region =
- new HRegion(basedir, newWal, newFS, newConf, hri, null) {
+ new HRegion(basedir, newWal, newFS, newConf, hri, htd, null) {
protected boolean internalFlushcache(
final HLog wal, final long myseqid, MonitoredTask status)
throws IOException {
Added: hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestFSTableDescriptors.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestFSTableDescriptors.java?rev=1138120&view=auto
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestFSTableDescriptors.java (added)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestFSTableDescriptors.java Tue Jun 21 18:31:26 2011
@@ -0,0 +1,133 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.util;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.HBaseTestingUtility;
+import org.apache.hadoop.hbase.HColumnDescriptor;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.HTableDescriptor;
+import org.apache.hadoop.hbase.TableDescriptors;
+import org.apache.hadoop.hbase.TableExistsException;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.FSUtils;
+import org.junit.Test;
+
+
+/**
+ * Tests for {@link FSTableDescriptors}.
+ */
+public class TestFSTableDescriptors {
+ private static final HBaseTestingUtility UTIL = new HBaseTestingUtility();
+
+ @Test
+ public void testRemoves() throws IOException {
+ final String name = "testRemoves";
+ FileSystem fs = FileSystem.get(UTIL.getConfiguration());
+ // Cleanup old tests if any detrius laying around.
+ Path rootdir = new Path(HBaseTestingUtility.getTestDir(), name);
+ TableDescriptors htds = new FSTableDescriptors(fs, rootdir);
+ HTableDescriptor htd = new HTableDescriptor(name);
+ htds.add(htd);
+ assertNotNull(htds.remove(htd.getNameAsString()));
+ assertNull(htds.remove(htd.getNameAsString()));
+ }
+
+ @Test public void testReadingHTDFromFS() throws IOException {
+ final String name = "testReadingHTDFromFS";
+ FileSystem fs = FileSystem.get(UTIL.getConfiguration());
+ HTableDescriptor htd = new HTableDescriptor(name);
+ Path rootdir = HBaseTestingUtility.getTestDir(name);
+ createHTDInFS(fs, rootdir, htd);
+ HTableDescriptor htd2 =
+ FSUtils.getTableDescriptor(fs, rootdir, htd.getNameAsString());
+ assertTrue(htd.equals(htd2));
+ }
+
+ private void createHTDInFS(final FileSystem fs, Path rootdir,
+ final HTableDescriptor htd)
+ throws IOException {
+ FSUtils.createTableDescriptor(fs, rootdir, htd);
+ }
+
+ @Test public void testHTableDescriptors()
+ throws IOException, InterruptedException {
+ final String name = "testHTableDescriptors";
+ FileSystem fs = FileSystem.get(UTIL.getConfiguration());
+ // Cleanup old tests if any detrius laying around.
+ Path rootdir = new Path(HBaseTestingUtility.getTestDir(), name);
+ final int count = 10;
+ // Write out table infos.
+ for (int i = 0; i < count; i++) {
+ HTableDescriptor htd = new HTableDescriptor(name + i);
+ createHTDInFS(fs, rootdir, htd);
+ }
+ FSTableDescriptors htds = new FSTableDescriptors(fs, rootdir);
+ for (int i = 0; i < count; i++) {
+ assertTrue(htds.get(Bytes.toBytes(name + i)) != null);
+ }
+ for (int i = 0; i < count; i++) {
+ assertTrue(htds.get(Bytes.toBytes(name + i)) != null);
+ }
+ // Update the table infos
+ for (int i = 0; i < count; i++) {
+ HTableDescriptor htd = new HTableDescriptor(name + i);
+ htd.addFamily(new HColumnDescriptor("" + i));
+ FSUtils.updateHTableDescriptor(fs, rootdir, htd);
+ }
+ for (int i = 0; i < count; i++) {
+ assertTrue(htds.get(Bytes.toBytes(name + i)) != null);
+ }
+ for (int i = 0; i < count; i++) {
+ assertTrue(htds.get(Bytes.toBytes(name + i)) != null);
+ }
+ assertEquals(htds.invocations, count * 4);
+ assertEquals(htds.cachehits, count * 2);
+ assertTrue(htds.get(HConstants.ROOT_TABLE_NAME) != null);
+ assertEquals(htds.invocations, count * 4 + 1);
+ assertEquals(htds.cachehits, count * 2 + 1);
+ }
+
+ @Test (expected=java.io.FileNotFoundException.class)
+ public void testNoSuchTable() throws IOException {
+ final String name = "testNoSuchTable";
+ FileSystem fs = FileSystem.get(UTIL.getConfiguration());
+ // Cleanup old tests if any detrius laying around.
+ Path rootdir = new Path(HBaseTestingUtility.getTestDir(), name);
+ TableDescriptors htds = new FSTableDescriptors(fs, rootdir);
+ htds.get("NoSuchTable");
+ }
+
+ @Test
+ public void testUpdates() throws IOException {
+ final String name = "testUpdates";
+ FileSystem fs = FileSystem.get(UTIL.getConfiguration());
+ // Cleanup old tests if any detrius laying around.
+ Path rootdir = new Path(HBaseTestingUtility.getTestDir(), name);
+ TableDescriptors htds = new FSTableDescriptors(fs, rootdir);
+ HTableDescriptor htd = new HTableDescriptor(name);
+ htds.add(htd);
+ htds.add(htd);
+ htds.add(htd);
+ }
+}
\ No newline at end of file
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestMergeTool.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestMergeTool.java?rev=1138120&r1=1138119&r2=1138120&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestMergeTool.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestMergeTool.java Tue Jun 21 18:31:26 2011
@@ -190,7 +190,7 @@ public class TestMergeTool extends HBase
// Now verify that we can read all the rows from regions 0, 1
// in the new merged region.
- HRegion merged = HRegion.openHRegion(mergedInfo, log, this.conf);
+ HRegion merged = HRegion.openHRegion(mergedInfo, this.desc, log, this.conf);
verifyMerge(merged, upperbound);
merged.close();
LOG.info("Verified " + msg);