Author: stack Date: Mon Apr 26 17:52:15 2010 New Revision: 938153 URL: http://svn.apache.org/viewvc?rev=938153&view=rev Log: Update of release notes in prep. for RC4
Modified: hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/client/transactional/HBaseBackedTransactionLogger.java hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/regionserver/tableindexed/IndexedRegion.java hadoop/hbase/branches/0.20_pre_durability/src/docs/src/documentation/content/xdocs/releasenotes.xml Modified: hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/client/transactional/HBaseBackedTransactionLogger.java URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/client/transactional/HBaseBackedTransactionLogger.java?rev=938153&r1=938152&r2=938153&view=diff ============================================================================== --- hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/client/transactional/HBaseBackedTransactionLogger.java (original) +++ hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/client/transactional/HBaseBackedTransactionLogger.java Mon Apr 26 17:52:15 2010 @@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.client.De import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; +import org.apache.hadoop.hbase.client.HTablePool; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.util.Bytes; @@ -63,8 +64,19 @@ public class HBaseBackedTransactionLogge } private Random random = new Random(); - private HTable table; + private HTablePool tablePool = new HTablePool(); + private HTable getTable() { + return tablePool.getTable(TABLE_NAME); + } + + private void putTable(HTable t) { + if (t == null) { + return; + } + tablePool.putTable(t); + } + public HBaseBackedTransactionLogger() throws IOException { initTable(); } @@ -75,8 +87,6 @@ public class HBaseBackedTransactionLogge if (!admin.tableExists(TABLE_NAME)) { throw new RuntimeException("Table not created. Call createTable() first"); } - this.table = new HTable(TABLE_NAME); - } public long createNewTransactionLog() { @@ -85,7 +95,11 @@ public class HBaseBackedTransactionLogge do { id = random.nextLong(); + try { existing = getStatusForTransaction(id); + } catch (IOException e) { + throw new RuntimeException(e); + } } while (existing != null); setStatusForTransaction(id, TransactionStatus.PENDING); @@ -93,7 +107,8 @@ public class HBaseBackedTransactionLogge return id; } - public TransactionStatus getStatusForTransaction(long transactionId) { + public TransactionStatus getStatusForTransaction(long transactionId) throws IOException { + HTable table = getTable(); try { Result result = table.get(new Get(getRow(transactionId))); if (result == null || result.isEmpty()) { @@ -108,6 +123,8 @@ public class HBaseBackedTransactionLogge } catch (IOException e) { throw new RuntimeException(e); + }finally { + putTable(table); } } @@ -120,20 +137,26 @@ public class HBaseBackedTransactionLogge Put update = new Put(getRow(transactionId)); update.add(STATUS_COLUMN_BYTES, HConstants.LATEST_TIMESTAMP, Bytes.toBytes(status.name())); + HTable table = getTable(); try { table.put(update); } catch (IOException e) { throw new RuntimeException(e); + } finally { + putTable(table); } } public void forgetTransaction(long transactionId) { Delete delete = new Delete(getRow(transactionId)); - + + HTable table = getTable(); try { table.delete(delete); } catch (IOException e) { throw new RuntimeException(e); + }finally { + putTable(table); } } Modified: hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/regionserver/tableindexed/IndexedRegion.java URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/regionserver/tableindexed/IndexedRegion.java?rev=938153&r1=938152&r2=938153&view=diff ============================================================================== --- hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/regionserver/tableindexed/IndexedRegion.java (original) +++ hadoop/hbase/branches/0.20_pre_durability/src/contrib/transactional/src/java/org/apache/hadoop/hbase/regionserver/tableindexed/IndexedRegion.java Mon Apr 26 17:52:15 2010 @@ -44,6 +44,7 @@ import org.apache.hadoop.hbase.Leases; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HTable; +import org.apache.hadoop.hbase.client.HTablePool; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.tableindexed.IndexSpecification; @@ -59,7 +60,7 @@ class IndexedRegion extends Transactiona private final HBaseConfiguration conf; private final IndexedTableDescriptor indexTableDescriptor; - private Map<IndexSpecification, HTable> indexSpecToTable = new HashMap<IndexSpecification, HTable>(); + private final HTablePool tablePool; public IndexedRegion(final Path basedir, final HLog log, final FileSystem fs, final HBaseConfiguration conf, final HRegionInfo regionInfo, @@ -67,17 +68,20 @@ class IndexedRegion extends Transactiona super(basedir, log, fs, conf, regionInfo, flushListener, trxLeases); this.indexTableDescriptor = new IndexedTableDescriptor(regionInfo.getTableDesc()); this.conf = conf; + this.tablePool = new HTablePool(); } - private synchronized HTable getIndexTable(IndexSpecification index) + private HTable getIndexTable(IndexSpecification index) throws IOException { - HTable indexTable = indexSpecToTable.get(index); - if (indexTable == null) { - indexTable = new HTable(conf, index.getIndexedTableName(super + return tablePool.getTable(index.getIndexedTableName(super .getRegionInfo().getTableDesc().getName())); - indexSpecToTable.put(index, indexTable); + } + + private void putTable(HTable t) { + if (t==null) { + return; } - return indexTable; + tablePool.putTable(t); } private Collection<IndexSpecification> getIndexes() { Modified: hadoop/hbase/branches/0.20_pre_durability/src/docs/src/documentation/content/xdocs/releasenotes.xml URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/src/docs/src/documentation/content/xdocs/releasenotes.xml?rev=938153&r1=938152&r2=938153&view=diff ============================================================================== --- hadoop/hbase/branches/0.20_pre_durability/src/docs/src/documentation/content/xdocs/releasenotes.xml (original) +++ hadoop/hbase/branches/0.20_pre_durability/src/docs/src/documentation/content/xdocs/releasenotes.xml Mon Apr 26 17:52:15 2010 @@ -18,39 +18,32 @@ <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd"> + <document> <header> <title> - Release Notes - Hadoop HBase - Version 0.20.4 + Release Notes - Hadoop HBase - Version 0.20.4 </title> </header> <body> <section> - <title>Release Notes - Hadoop HBase - Version 0.20.4 - </title> - <section> - +<section> + <title> Sub-task </title> <ul> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2242'>HBASE-2242</a>] - [EC2] Downgrade JDK to 6u17 and rebuild AMIs </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2261'>HBASE-2261</a>] - The javadoc in WhileMatchFilter and it's tests in TestFilter are not accurate/wrong. -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2263'>HBASE-2263</a>] - [stargate] multiuser mode: authenticator for zookeeper </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2274'>HBASE-2274</a>] - [stargate] support specification of filters for scanners: JSON descriptors </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2299'>HBASE-2299</a>] - [EC2] mapreduce fixups for PE -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2319'>HBASE-2319</a>] - [stargate] multiuser mode: request shaping </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2327'>HBASE-2327</a>] - [EC2] Allocate elastic IP addresses for ZK and master nodes -</li> </ul> +</section> +<section> - </section> - <section> <title> Bug </title> <ul> @@ -60,20 +53,14 @@ </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2063'>HBASE-2063</a>] - For hfileoutputformat, on timeout/failure/kill clean up half-written hfile </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2066'>HBASE-2066</a>] - Perf: parallelize puts -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2087'>HBASE-2087</a>] - The wait on compaction because "Too many store files" holds up all flushing </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2101'>HBASE-2101</a>] - KeyValueSortReducer collapses all values to last passed -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2119'>HBASE-2119</a>] - Fix top-level NOTICES.txt file. Its stale. -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2147'>HBASE-2147</a>] - run zookeeper in the same jvm as master during non-distributed mode -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2173'>HBASE-2173</a>] - New idx javadoc not included with the rest </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2177'>HBASE-2177</a>] - Add timestamping to gc logging options </li> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2180'>HBASE-2180</a>] - Bad random read performance from synchronizing hfile.fddatainputstream +</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2199'>HBASE-2199</a>] - hbase.client.tableindexed.IndexSpecification, lines 72-73 should be reversed </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2202'>HBASE-2202</a>] - IdxRegion crash when binary characters @@ -88,7 +75,7 @@ </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2207'>HBASE-2207</a>] - [IHBASE] Index partial column values </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2219'>HBASE-2219</a>] - stop using code mapping for method names in the RPC +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2210'>HBASE-2210</a>] - NPE in thrift deleteAll </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2227'>HBASE-2227</a>] - [IHBASE] Idx Expression functionality is incompatible with SingleColumnValueFilter </li> @@ -104,70 +91,38 @@ </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2259'>HBASE-2259</a>] - StackOverflow in ExplicitColumnTracker when row has many columns </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2269'>HBASE-2269</a>] - PerformanceEvaluation "--nomapred" may assign duplicate random seed over multiple testing threads -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2271'>HBASE-2271</a>] - tableindexed.TestIndexedTable hanging </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2283'>HBASE-2283</a>] - row level atomicity -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2284'>HBASE-2284</a>] - fsWriteLatency metric may be incorrectly reported </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2287'>HBASE-2287</a>] - TypeError in shell -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2288'>HBASE-2288</a>] - Shell fails on alter </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2293'>HBASE-2293</a>] - CME in RegionManager#isMetaServer </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2295'>HBASE-2295</a>] - Row locks may deadlock with themselves -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2305'>HBASE-2305</a>] - Client port for ZK has no default -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2307'>HBASE-2307</a>] - hbase-2295 changed hregion size, testheapsize broke... fix it. -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2308'>HBASE-2308</a>] - Fix the bin/rename_table.rb script, make it work again -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2311'>HBASE-2311</a>] - Not having assertions enabled causes index contrib tests to fail -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2322'>HBASE-2322</a>] - deadlock between put and cacheflusher in 0.20 branch </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2323'>HBASE-2323</a>] - filter.RegexStringComparator does not work with certain bytes -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2335'>HBASE-2335</a>] - mapred package docs don't say zookeeper jar is a dependency. </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2338'>HBASE-2338</a>] - log recovery: deleted items may be resurrected -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2344'>HBASE-2344</a>] - InfoServer and hence HBase Master doesn't fully start if you have HADOOP-6151 patch -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2346'>HBASE-2346</a>] - Usage of FilterList slows down scans </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2355'>HBASE-2355</a>] - unsychronized logWriters map is mutated from several threads in HLog splitting </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2358'>HBASE-2358</a>] - Store doReconstructionLog will fail if oldlogfile.log is empty and won't load region </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2359'>HBASE-2359</a>] - WALEdit doesn't implement HeapSize -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2365'>HBASE-2365</a>] - Double-assignment around split </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2373'>HBASE-2373</a>] - Remove confusing log message of how "BaseScanner GET got different address/startcode than SCAN" </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2378'>HBASE-2378</a>] - Bulk insert with multiple reducers broken due to improper ImmutableBytesWritable comparator </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2389'>HBASE-2389</a>] - HTable - delete / put unnecessary sync. -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2398'>HBASE-2398</a>] - NPE in HLog.append when calling writer.getLength -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2402'>HBASE-2402</a>] - [stargate] set maxVersions on gets </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2407'>HBASE-2407</a>] - NPE in TableServers.deleteCachedLocation </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2410'>HBASE-2410</a>] - spurious warnings from util.Sleeper -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2417'>HBASE-2417</a>] - HCM.locateRootRegion fails hard on "Connection refused" </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2422'>HBASE-2422</a>] - Remove fragmentation indicator for 0.20.4... fix in 0.20.5. </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2431'>HBASE-2431</a>] - ZK settings for initLimit/syncLimit shouldn't have been removed from hbase-default.xml -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2439'>HBASE-2439</a>] - HBase can get stuck if updates to META are blocked </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2443'>HBASE-2443</a>] - IPC client can throw NPE if socket creation fails @@ -184,21 +139,21 @@ </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2460'>HBASE-2460</a>] - add_table.rb deletes any tables for which the target table name is a prefix </li> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2474'>HBASE-2474</a>] - Bug in 2248 - mixed version reads (not allowed by spec) +</li> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2493'>HBASE-2493</a>] - [Transactional Contrib] Avoid unsafe concurrent use of HTable. +</li> </ul> +</section> +<section> - </section> - <section> <title> Improvement </title> <ul> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-1505'>HBASE-1505</a>] - [performance] hfile should change how it reads from hdfs -- pread/seek+read -- dependent on recent history </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-1696'>HBASE-1696</a>] - [stargate] support specification of filters for scanners -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-1892'>HBASE-1892</a>] - [performance] make hbase splits run faster </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2074'>HBASE-2074</a>] - Improvements to the hadoop-config script -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2167'>HBASE-2167</a>] - PE for IHBase </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2174'>HBASE-2174</a>] - Stop from resolving HRegionServer addresses to names using DNS on every heartbeat @@ -215,32 +170,16 @@ </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2230'>HBASE-2230</a>] - SingleColumnValueFilter has an ungaurded debug log message. </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2234'>HBASE-2234</a>] - Roll Hlog if any datanode in the write pipeline dies -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2257'>HBASE-2257</a>] - [stargate] multiuser mode </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2262'>HBASE-2262</a>] - ZKW.ensureExists should check for existence </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2270'>HBASE-2270</a>] - Improve how we handle recursive calls in ExplicitColumnTracker and WildcardColumnTracker -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2273'>HBASE-2273</a>] - [stargate] export metrics via Hadoop metrics, JMX, and ZooKeeper </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2277'>HBASE-2277</a>] - Update branch to hadoop 0.20.2 </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2298'>HBASE-2298</a>] - Backport of "HLog Group Commit" to 0.20 branch. -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2302'>HBASE-2302</a>] - Optimize M-R by bulk excluding regions - less InputSplit-s to avoid traffic on region servers when performing M-R on a subset of the table -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2349'>HBASE-2349</a>] - Backport HBaseTestingUtility to branch (will include adding support for junit4 to branch) -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2385'>HBASE-2385</a>] - Debug Message "Received report from unknown server" should be INFO or WARN -</li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2388'>HBASE-2388</a>] - Give a very explicit message when we figure a big GC pause -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2403'>HBASE-2403</a>] - [stargate] client HTable interface to REST connector </li> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2411'>HBASE-2411</a>] - findbugs target -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2412'>HBASE-2412</a>] - [stargate] PerformanceEvaluation </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2419'>HBASE-2419</a>] - Remove from RS logs the fat NotServingRegionException stack @@ -252,23 +191,21 @@ <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2453'>HBASE-2453</a>] - Revisit compaction policies after HBASE-2248 commit </li> </ul> +</section> +<section> - </section> - <section> <title> New Feature </title> <ul> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2220'>HBASE-2220</a>] - Add a binary comparator that only compares up to the length of the supplied byte array </li> </ul> - </section> - <section> +</section> +<section> <title> Task </title> <ul> -<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2340'>HBASE-2340</a>] - Add end-to-end test of sync/flush -</li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2360'>HBASE-2360</a>] - Make sure we have all the hadoop fixes in our our copy of its rpc </li> <li>[<a href='https://issues.apache.org/jira/browse/HBASE-2381'>HBASE-2381</a>] - missing copyright headers @@ -285,6 +222,29 @@ </li> </ul> + +</section> +<section> + +<title> Sub-task +</title> +<ul> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2242'>HBASE-2242</a>] - [EC2] Downgrade JDK to 6u17 and rebuild AMIs +</li> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2261'>HBASE-2261</a>] - The javadoc in WhileMatchFilter and it's tests in TestFilter are not accurate/wrong. +</li> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2263'>HBASE-2263</a>] - [stargate] multiuser mode: authenticator for zookeeper +</li> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2274'>HBASE-2274</a>] - [stargate] support specification of filters for scanners: JSON descriptors +</li> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2299'>HBASE-2299</a>] - [EC2] mapreduce fixups for PE +</li> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2319'>HBASE-2319</a>] - [stargate] multiuser mode: request shaping +</li> +<li>[<a href='https://issues.apache.org/jira/browse/HBASE-2327'>HBASE-2327</a>] - [EC2] Allocate elastic IP addresses for ZK and master nodes +</li> +</ul> + </section> </section> </body>