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 2008/12/17 07:47:06 UTC
svn commit: r727301 - in /hadoop/hbase/trunk: ./
src/java/org/apache/hadoop/hbase/
src/java/org/apache/hadoop/hbase/regionserver/
src/java/org/apache/hadoop/hbase/util/
Author: stack
Date: Tue Dec 16 22:47:04 2008
New Revision: 727301
URL: http://svn.apache.org/viewvc?rev=727301&view=rev
Log:
HBASE-1056 [migration] enable blockcaching on .META. table
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConstants.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HTableDescriptor.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HStore.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/Migrate.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=727301&r1=727300&r2=727301&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Tue Dec 16 22:47:04 2008
@@ -176,6 +176,7 @@
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]
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConstants.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConstants.java?rev=727301&r1=727300&r2=727301&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConstants.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HConstants.java Tue Dec 16 22:47:04 2008
@@ -43,11 +43,12 @@
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
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HTableDescriptor.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HTableDescriptor.java?rev=727301&r1=727300&r2=727301&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HTableDescriptor.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HTableDescriptor.java Tue Dec 16 22:47:04 2008
@@ -654,7 +654,7 @@
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 @@
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,
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HStore.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HStore.java?rev=727301&r1=727300&r2=727301&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HStore.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HStore.java Tue Dec 16 22:47:04 2008
@@ -1006,7 +1006,7 @@
/*
* 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
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/Migrate.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/Migrate.java?rev=727301&r1=727300&r2=727301&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/Migrate.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/util/Migrate.java Tue Dec 16 22:47:04 2008
@@ -191,8 +191,8 @@
throw new IOException(msg);
}
- migrateTo5();
-
+ migrate4To6();
+
if (!readOnly) {
// Set file system version
LOG.info("Setting file system version.");
@@ -208,16 +208,19 @@
}
}
- // 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 @@
return false;
}
updateVersions(utils.getRootRegion(), info);
+ enableBlockCache(utils.getRootRegion(), info);
return true;
}
});
@@ -236,8 +240,41 @@
}
/*
- * 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
*/
@@ -251,7 +288,7 @@
mr.batchUpdate(b);
LOG.info("Upped versions on " + oldHri.getRegionNameAsString());
}
-
+
/*
* @param hri Update versions.
* @param true if we changed value