HBASE-1056 [migration] enable blockcaching on .META. table

git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@727301 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael Stack 2008-12-17 06:47:04 +00:00
parent 78f6a6c434
commit 46eca98e13
5 changed files with 51 additions and 12 deletions

View File

@ -176,6 +176,7 @@ Release 0.19.0 - Unreleased
HBASE-1055 Better vm stats on startup
HBASE-1065 Minor logging improvements in the master
HBASE-1053 bring recent rpc changes down from hadoop
HBASE-1056 [migration] enable blockcaching on .META. table
NEW FEATURES
HBASE-875 Use MurmurHash instead of JenkinsHash [in bloomfilters]

View File

@ -43,11 +43,12 @@ public interface HConstants {
static final String VERSION_FILE_NAME = "hbase.version";
/**
* Current version of file system
* Current version of file system.
* Version 4 supports only one kind of bloom filter.
* Version 5 changes versions in catalog table regions.
* Version 6 enables blockcaching on catalog tables.
*/
public static final String FILE_SYSTEM_VERSION = "5";
public static final String FILE_SYSTEM_VERSION = "6";
// Configuration parameters

View File

@ -654,7 +654,7 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
HConstants.ROOT_TABLE_NAME,
new HColumnDescriptor[] { new HColumnDescriptor(HConstants.COLUMN_FAMILY,
10, // Ten is arbitrary number. Keep versions to help debuggging.
HColumnDescriptor.CompressionType.NONE, false, false,
HColumnDescriptor.CompressionType.NONE, false, true,
Integer.MAX_VALUE, HConstants.FOREVER, false) });
/** Table descriptor for <code>.META.</code> catalog table */
@ -662,7 +662,7 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
HConstants.META_TABLE_NAME, new HColumnDescriptor[] {
new HColumnDescriptor(HConstants.COLUMN_FAMILY,
10, // Ten is arbitrary number. Keep versions to help debuggging.
HColumnDescriptor.CompressionType.NONE, false, false,
HColumnDescriptor.CompressionType.NONE, false, true,
Integer.MAX_VALUE, HConstants.FOREVER, false),
new HColumnDescriptor(HConstants.COLUMN_FAMILY_HISTORIAN,
HConstants.ALL_VERSIONS, HColumnDescriptor.CompressionType.NONE,

View File

@ -1006,7 +1006,7 @@ public class HStore implements HConstants {
/*
* Create readers for the passed in list of HStoreFiles and add them to
* <code>readers</code> list.
* <code>readers</code> list. Used compacting.
* @param readers Add Readers here.
* @param files List of HSFs to make Readers for.
* @return Count of rows for bloom filter sizing. Returns -1 if no bloom

View File

@ -191,7 +191,7 @@ public class Migrate extends Configured implements Tool {
throw new IOException(msg);
}
migrateTo5();
migrate4To6();
if (!readOnly) {
// Set file system version
@ -208,16 +208,19 @@ public class Migrate extends Configured implements Tool {
}
}
// Move the fileystem version from 4 to 5.
// Move the fileystem version from 4 to 6.
// In here we rewrite the catalog table regions so they keep 10 versions
// instead of 1.
private void migrateTo5() throws IOException {
private void migrate4To6() throws IOException {
if (this.readOnly && this.migrationNeeded) {
return;
}
final MetaUtils utils = new MetaUtils(this.conf);
try {
// These two operations are effectively useless. -ROOT- is hardcode,
// at least until hbase 0.20.0 when we store it out in ZK.
updateVersions(utils.getRootRegion().getRegionInfo());
enableBlockCache(utils.getRootRegion().getRegionInfo());
// Scan the root region
utils.scanRootRegion(new MetaUtils.ScannerListener() {
public boolean processRow(HRegionInfo info)
@ -227,6 +230,7 @@ public class Migrate extends Configured implements Tool {
return false;
}
updateVersions(utils.getRootRegion(), info);
enableBlockCache(utils.getRootRegion(), info);
return true;
}
});
@ -236,8 +240,41 @@ public class Migrate extends Configured implements Tool {
}
/*
* Move from old pre-v5 hregioninfo to current HRegionInfo
* Persist back into <code>r</code>
* Enable blockcaching on catalog tables.
* @param mr
* @param oldHri
*/
void enableBlockCache(HRegion mr, HRegionInfo oldHri)
throws IOException {
if (!enableBlockCache(oldHri)) {
return;
}
BatchUpdate b = new BatchUpdate(oldHri.getRegionName());
b.put(HConstants.COL_REGIONINFO, Writables.getBytes(oldHri));
mr.batchUpdate(b);
LOG.info("Enabled blockcache on " + oldHri.getRegionNameAsString());
}
/*
* @param hri Update versions.
* @param true if we changed value
*/
private boolean enableBlockCache(final HRegionInfo hri) {
boolean result = false;
HColumnDescriptor hcd =
hri.getTableDesc().getFamily(HConstants.COLUMN_FAMILY);
if (hcd == null) {
LOG.info("No info family in: " + hri.getRegionNameAsString());
return result;
}
// Set blockcache enabled.
hcd.setBlockCacheEnabled(true);
return true;
}
/*
* Update versions kept in historian.
* @param mr
* @param oldHri
*/