HBASE-18544 Move the HRegion#addRegionToMETA to TestDefaultMemStore

Signed-off-by: Michael Stack <stack@apache.org>
This commit is contained in:
Chun-Hao Tang 2017-08-16 00:43:02 +08:00 committed by Michael Stack
parent 63e313b5c0
commit 310934d060
2 changed files with 29 additions and 30 deletions

View File

@ -3928,7 +3928,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
* We throw RegionTooBusyException if above memstore limit * We throw RegionTooBusyException if above memstore limit
* and expect client to retry using some kind of backoff * and expect client to retry using some kind of backoff
*/ */
private void checkResources() throws RegionTooBusyException { void checkResources() throws RegionTooBusyException {
// If catalog region, do not impose resource constraints or block updates. // If catalog region, do not impose resource constraints or block updates.
if (this.getRegionInfo().isMetaRegion()) return; if (this.getRegionInfo().isMetaRegion()) return;
@ -3974,7 +3974,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
* @param edits Cell updates by column * @param edits Cell updates by column
* @throws IOException * @throws IOException
*/ */
private void put(final byte [] row, byte [] family, List<Cell> edits) void put(final byte [] row, byte [] family, List<Cell> edits)
throws IOException { throws IOException {
NavigableMap<byte[], List<Cell>> familyMap; NavigableMap<byte[], List<Cell>> familyMap;
familyMap = new TreeMap<>(Bytes.BYTES_COMPARATOR); familyMap = new TreeMap<>(Bytes.BYTES_COMPARATOR);
@ -6877,33 +6877,6 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
return r; return r;
} }
/**
* Inserts a new region's meta information into the passed
* <code>meta</code> region. Used by the HMaster bootstrap code adding
* new table to hbase:meta table.
*
* @param meta hbase:meta HRegion to be updated
* @param r HRegion to add to <code>meta</code>
*
* @throws IOException
*/
// TODO remove since only test and merge use this
public static void addRegionToMETA(final HRegion meta, final HRegion r) throws IOException {
meta.checkResources();
// The row key is the region name
byte[] row = r.getRegionInfo().getRegionName();
final long now = EnvironmentEdgeManager.currentTime();
final List<Cell> cells = new ArrayList<>(2);
cells.add(new KeyValue(row, HConstants.CATALOG_FAMILY,
HConstants.REGIONINFO_QUALIFIER, now,
r.getRegionInfo().toByteArray()));
// Set into the root table the version of the meta table.
cells.add(new KeyValue(row, HConstants.CATALOG_FAMILY,
HConstants.META_VERSION_QUALIFIER, now,
Bytes.toBytes(HConstants.META_VERSION)));
meta.put(row, HConstants.CATALOG_FAMILY, cells);
}
/** /**
* Computes the Path of the HRegion * Computes the Path of the HRegion
* *

View File

@ -975,7 +975,7 @@ public class TestDefaultMemStore {
HRegion r = HRegion r =
HRegion.createHRegion(hri, testDir, conf, desc, HRegion.createHRegion(hri, testDir, conf, desc,
wFactory.getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace())); wFactory.getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace()));
HRegion.addRegionToMETA(meta, r); addRegionToMETA(meta, r);
edge.setCurrentTimeMillis(1234 + 100); edge.setCurrentTimeMillis(1234 + 100);
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
assertTrue(meta.shouldFlush(sb) == false); assertTrue(meta.shouldFlush(sb) == false);
@ -983,6 +983,32 @@ public class TestDefaultMemStore {
assertTrue(meta.shouldFlush(sb) == true); assertTrue(meta.shouldFlush(sb) == true);
} }
/**
* Inserts a new region's meta information into the passed
* <code>meta</code> region. Used by the HMaster bootstrap code adding
* new table to hbase:meta table.
*
* @param meta hbase:meta HRegion to be updated
* @param r HRegion to add to <code>meta</code>
*
* @throws IOException
*/
public static void addRegionToMETA(final HRegion meta, final HRegion r) throws IOException {
meta.checkResources();
// The row key is the region name
byte[] row = r.getRegionInfo().getRegionName();
final long now = EnvironmentEdgeManager.currentTime();
final List<Cell> cells = new ArrayList<>(2);
cells.add(new KeyValue(row, HConstants.CATALOG_FAMILY,
HConstants.REGIONINFO_QUALIFIER, now,
r.getRegionInfo().toByteArray()));
// Set into the root table the version of the meta table.
cells.add(new KeyValue(row, HConstants.CATALOG_FAMILY,
HConstants.META_VERSION_QUALIFIER, now,
Bytes.toBytes(HConstants.META_VERSION)));
meta.put(row, HConstants.CATALOG_FAMILY, cells);
}
private class EnvironmentEdgeForMemstoreTest implements EnvironmentEdge { private class EnvironmentEdgeForMemstoreTest implements EnvironmentEdge {
long t = 1234; long t = 1234;
@Override @Override