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 2009/01/05 23:32:37 UTC
svn commit: r731748 - in /hadoop/hbase/trunk: CHANGES.txt
src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java
src/java/org/apache/hadoop/hbase/regionserver/HStore.java
src/webapps/master/WEB-INF/web.xml
Author: stack
Date: Mon Jan 5 14:32:37 2009
New Revision: 731748
URL: http://svn.apache.org/viewvc?rev=731748&view=rev
Log:
HBASE-1083 Will keep scheduling major compactions if last time one ran, we didn't.
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HStore.java
hadoop/hbase/trunk/src/webapps/master/WEB-INF/web.xml
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=731748&r1=731747&r2=731748&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Mon Jan 5 14:32:37 2009
@@ -128,6 +128,8 @@
HBASE-1097 SequenceFile.Reader keeps around buffer whose size is that of
largest item read -> results in lots of dead heap
HBASE-1107 NPE in HStoreScanner.updateReaders
+ HBASE-1083 Will keep scheduling major compactions if last time one ran, we
+ didn't.
IMPROVEMENTS
HBASE-901 Add a limit to key length, check key and value length on client side
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java?rev=731748&r1=731747&r2=731748&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java Mon Jan 5 14:32:37 2009
@@ -143,7 +143,8 @@
return;
}
LOG.debug("Compaction requested for region " +
- Bytes.toString(r.getRegionName()) +
+ Bytes.toString(r.getRegionName()) + "/" +
+ r.getRegionInfo().getEncodedName() +
(why != null && !why.isEmpty()? " because: " + why: ""));
synchronized (regionsInQueue) {
if (!regionsInQueue.contains(r)) {
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=731748&r1=731747&r2=731748&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 Mon Jan 5 14:32:37 2009
@@ -786,7 +786,7 @@
if (stats == null || stats.length == 0) {
return 0l;
}
- long lowTimestamp = Long.MAX_VALUE;
+ long lowTimestamp = Long.MAX_VALUE;
for (int i = 0; i < stats.length; i++) {
long timestamp = stats[i].getModificationTime();
if (timestamp < lowTimestamp){
@@ -966,7 +966,12 @@
* @return True if we should run a major compaction.
*/
boolean isMajorCompaction() throws IOException {
- return isMajorCompaction(null);
+ List<HStoreFile> filesToCompact = null;
+ synchronized (storefiles) {
+ // filesToCompact are sorted oldest to newest.
+ filesToCompact = new ArrayList<HStoreFile>(this.storefiles.values());
+ }
+ return isMajorCompaction(filesToCompact);
}
/*
@@ -977,25 +982,24 @@
throws IOException {
boolean result = false;
Path mapdir = HStoreFile.getMapDir(this.basedir, this.info.getEncodedName(),
- this.family.getName());
+ this.family.getName());
long lowTimestamp = getLowestTimestamp(fs, mapdir);
- if (lowTimestamp < (System.currentTimeMillis() - this.majorCompactionTime) &&
- lowTimestamp > 0l) {
+ long now = System.currentTimeMillis();
+ if (lowTimestamp > 0l && lowTimestamp < (now - this.majorCompactionTime)) {
// Major compaction time has elapsed.
- long elapsedTime = System.currentTimeMillis() - lowTimestamp;
+ long elapsedTime = now - lowTimestamp;
if (filesToCompact != null && filesToCompact.size() == 1 &&
filesToCompact.get(0).isMajorCompaction() &&
(this.ttl == HConstants.FOREVER || elapsedTime < this.ttl)) {
if (LOG.isDebugEnabled()) {
- LOG.debug("Skipping major compaction because only one (major) " +
- "compacted file only and elapsedTime " + elapsedTime +
- " is < ttl=" + this.ttl);
+ LOG.debug("Skipping major compaction of " + this.storeNameStr +
+ " because one (major) compacted file only and elapsedTime " +
+ elapsedTime + "ms is < ttl=" + this.ttl);
}
} else {
if (LOG.isDebugEnabled()) {
- LOG.debug("Major compaction triggered on store: " +
- this.storeNameStr + ". Time since last major compaction: " +
- ((System.currentTimeMillis() - lowTimestamp)/1000) + " seconds");
+ LOG.debug("Major compaction triggered on store " + this.storeNameStr +
+ "; time since last major compaction " + (now - lowTimestamp) + "ms");
}
result = true;
}
Modified: hadoop/hbase/trunk/src/webapps/master/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/webapps/master/WEB-INF/web.xml?rev=731748&r1=731747&r2=731748&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/webapps/master/WEB-INF/web.xml (original)
+++ hadoop/hbase/trunk/src/webapps/master/WEB-INF/web.xml Mon Jan 5 14:32:37 2009
@@ -10,8 +10,8 @@
<servlet>
- <servlet-name>org.apache.hadoop.hbase.generated.master.master_jsp</servlet-name>
- <servlet-class>org.apache.hadoop.hbase.generated.master.master_jsp</servlet-class>
+ <servlet-name>org.apache.hadoop.hbase.generated.master.table_jsp</servlet-name>
+ <servlet-class>org.apache.hadoop.hbase.generated.master.table_jsp</servlet-class>
</servlet>
<servlet>
@@ -20,13 +20,13 @@
</servlet>
<servlet>
- <servlet-name>org.apache.hadoop.hbase.generated.master.table_jsp</servlet-name>
- <servlet-class>org.apache.hadoop.hbase.generated.master.table_jsp</servlet-class>
+ <servlet-name>org.apache.hadoop.hbase.generated.master.master_jsp</servlet-name>
+ <servlet-class>org.apache.hadoop.hbase.generated.master.master_jsp</servlet-class>
</servlet>
<servlet-mapping>
- <servlet-name>org.apache.hadoop.hbase.generated.master.master_jsp</servlet-name>
- <url-pattern>/master.jsp</url-pattern>
+ <servlet-name>org.apache.hadoop.hbase.generated.master.table_jsp</servlet-name>
+ <url-pattern>/table.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
@@ -35,8 +35,8 @@
</servlet-mapping>
<servlet-mapping>
- <servlet-name>org.apache.hadoop.hbase.generated.master.table_jsp</servlet-name>
- <url-pattern>/table.jsp</url-pattern>
+ <servlet-name>org.apache.hadoop.hbase.generated.master.master_jsp</servlet-name>
+ <url-pattern>/master.jsp</url-pattern>
</servlet-mapping>
</web-app>