Author: stack Date: Fri Dec 7 11:49:19 2007 New Revision: 602199 URL: http://svn.apache.org/viewvc?rev=602199&view=rev Log: HADOOP-2377 Holding open MapFile.Readers is expensive, so use less of them
Modified: lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt lucene/hadoop/trunk/src/contrib/hbase/conf/hbase-default.xml lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HConstants.java lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStoreFile.java lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/PerformanceEvaluation.java Modified: lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt?rev=602199&r1=602198&r2=602199&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt (original) +++ lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt Fri Dec 7 11:49:19 2007 @@ -94,6 +94,7 @@ HADOOP-2299 Support inclusive scans (Bryan Duxbury via Stack) HADOOP-2333 Client side retries happen at the wrong level HADOOP-2357 Compaction cleanup; less deleting + prevent possible file leaks + HADOOP-2377 Holding open MapFile.Readers is expensive, so use less of them Release 0.15.1 Modified: lucene/hadoop/trunk/src/contrib/hbase/conf/hbase-default.xml URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/conf/hbase-default.xml?rev=602199&r1=602198&r2=602199&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/conf/hbase-default.xml (original) +++ lucene/hadoop/trunk/src/contrib/hbase/conf/hbase-default.xml Fri Dec 7 11:49:19 2007 @@ -153,7 +153,7 @@ </property> <property> <name>hbase.hregion.memcache.flush.size</name> - <value>16777216</value> + <value>67108864</value> <description> A HRegion memcache will be flushed to disk if size of the memcache exceeds this number of bytes. Value is checked by a thread that runs @@ -174,11 +174,10 @@ </property> <property> <name>hbase.hregion.max.filesize</name> - <value>67108864</value> + <value>268435456</value> <description> Maximum desired file size for an HRegion. If filesize exceeds - value + (value / 2), the HRegion is split in two. Default: 64M. - If too large, splits will take so long, clients timeout. + value + (value / 2), the HRegion is split in two. Default: 256M. </description> </property> <property> Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HConstants.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HConstants.java?rev=602199&r1=602198&r2=602199&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HConstants.java (original) +++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HConstants.java Fri Dec 7 11:49:19 2007 @@ -88,7 +88,7 @@ static final String HREGION_OLDLOGFILE_NAME = "oldlogfile.log"; /** Default maximum file size */ - static final long DEFAULT_MAX_FILE_SIZE = 64 * 1024 * 1024; // 64MB + static final long DEFAULT_MAX_FILE_SIZE = 256 * 1024 * 1024; // Always store the location of the root table's HRegion. // This HRegion is never split. Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java?rev=602199&r1=602198&r2=602199&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java (original) +++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java Fri Dec 7 11:49:19 2007 @@ -310,9 +310,9 @@ fs.delete(merges); } - // By default, we flush the cache when 16M. + // By default, we flush the cache when 64M. this.memcacheFlushSize = conf.getInt("hbase.hregion.memcache.flush.size", - 1024*1024*16); + 1024*1024*64); this.flushListener = listener; this.blockingMemcacheSize = this.memcacheFlushSize * conf.getInt("hbase.hregion.memcache.block.multiplier", 2); Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStoreFile.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStoreFile.java?rev=602199&r1=602198&r2=602199&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStoreFile.java (original) +++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStoreFile.java Fri Dec 7 11:49:19 2007 @@ -504,14 +504,19 @@ */ static Reference readSplitInfo(final Path p, final FileSystem fs) throws IOException { + Reference r = null; FSDataInputStream in = fs.open(p); - String rn = in.readUTF(); - HStoreKey midkey = new HStoreKey(); - midkey.readFields(in); - long fid = in.readLong(); - boolean tmp = in.readBoolean(); - return new Reference(rn, fid, midkey, tmp? Range.top: Range.bottom); - + try { + String rn = in.readUTF(); + HStoreKey midkey = new HStoreKey(); + midkey.readFields(in); + long fid = in.readLong(); + boolean tmp = in.readBoolean(); + r = new Reference(rn, fid, midkey, tmp? Range.top: Range.bottom); + } finally { + in.close(); + } + return r; } private void createOrFail(final FileSystem fs, final Path p) Modified: lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/PerformanceEvaluation.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/PerformanceEvaluation.java?rev=602199&r1=602198&r2=602199&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/PerformanceEvaluation.java (original) +++ lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/PerformanceEvaluation.java Fri Dec 7 11:49:19 2007 @@ -64,15 +64,6 @@ * * <p>If number of clients > 1, we start up a MapReduce job. Each map task * runs an individual client. Each client does about 1GB of data. - * - * <p>If client == 1, the test table is created and deleted at end of each run - * and the <code>sequentialWrite</code> test is run first if a test requires - * a populated test table: e.g. if you are running the - * <code>sequentialRead</code> test, the test table must hold data for it to - * read. If client > 1, and we are running clients in a map task, the table - * is not deleted at the end-of-run. Also, if running the - * <code>sequentialRead</code> or </code>randomRead</code> tests, the - * <code>sequentialWrite</code> test is not automatically run first. */ public class PerformanceEvaluation implements HConstants { static final Logger LOG = @@ -553,23 +544,10 @@ try { admin = new HBaseAdmin(this.conf); checkTable(admin); - - if (cmd.equals(RANDOM_READ) || cmd.equals(RANDOM_READ_MEM) || - cmd.equals(SCAN) || cmd.equals(SEQUENTIAL_READ)) { - status.setStatus("Running " + SEQUENTIAL_WRITE + " first so " + - cmd + " has data to work against"); - runOneClient(SEQUENTIAL_WRITE, 0, this.R, this.R, status); - } - runOneClient(cmd, 0, this.R, this.R, status); } catch (Exception e) { LOG.error("Failed", e); - } finally { - LOG.info("Deleting table " + tableDescriptor.getName()); - if (admin != null) { - admin.deleteTable(tableDescriptor.getName()); - } - } + } } private void runTest(final String cmd) throws IOException {