HBASE-981 hbase.io.index.interval doesn't seem to have an effect

git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@711941 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Andrew Kyle Purtell 2008-11-06 18:53:40 +00:00
parent 8a7a750b2e
commit e408380bd1
1 changed files with 23 additions and 2 deletions

View File

@ -648,7 +648,7 @@ public class HStore implements HConstants {
this.info, family.getName(), -1L, null);
MapFile.Writer out = flushedFile.getWriter(this.fs, this.compression,
this.family.isBloomfilter(), cache.size());
out.setIndexInterval(family.getMapFileIndexInterval());
setIndexInterval(out);
// Here we tried picking up an existing HStoreFile from disk and
// interlacing the memcache flush compacting as we go. The notion was
@ -909,7 +909,7 @@ public class HStore implements HConstants {
}
MapFile.Writer writer = compactedOutputFile.getWriter(this.fs,
this.compression, this.family.isBloomfilter(), nrows);
writer.setIndexInterval(family.getMapFileIndexInterval());
setIndexInterval(writer);
try {
compact(writer, rdrs, doMajorCompaction);
} finally {
@ -931,6 +931,27 @@ public class HStore implements HConstants {
return checkSplit(forceSplit);
}
/*
* Set the index interval for the mapfile. There are two sources for
* configuration information: the HCD, and the global HBase config.
* If a source returns the default value, it is ignored. Otherwise,
* the smallest non-default value is preferred.
*/
private void setIndexInterval(MapFile.Writer writer) {
int familyInterval = this.family.getMapFileIndexInterval();
int interval = this.conf.getInt("hbase.io.index.interval",
HColumnDescriptor.DEFAULT_MAPFILE_INDEX_INTERVAL);
if (familyInterval != HColumnDescriptor.DEFAULT_MAPFILE_INDEX_INTERVAL) {
if (interval != HColumnDescriptor.DEFAULT_MAPFILE_INDEX_INTERVAL) {
if (familyInterval < interval)
interval = familyInterval;
} else {
interval = familyInterval;
}
}
writer.setIndexInterval(interval);
}
/*
* @return True if we should run a major compaction.
*/