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 2010/08/27 07:01:07 UTC

svn commit: r990018 [1/10] - in /hbase/branches/0.90_master_rewrite: ./ bin/ bin/replication/ src/assembly/ src/docbkx/ src/main/java/org/apache/hadoop/hbase/ src/main/java/org/apache/hadoop/hbase/client/ src/main/java/org/apache/hadoop/hbase/filter/ s...

Author: stack
Date: Fri Aug 27 05:01:02 2010
New Revision: 990018

URL: http://svn.apache.org/viewvc?rev=990018&view=rev
Log:
Commit merge from TRUNK of all that was added there -- 99 issues -- since this branch was made Mon Jun 28 20:54:27 2010 UTC (8 weeks, 3 days ago) by jgray  r958726 

Added:
    hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh
    hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh
    hbase/branches/0.90_master_rewrite/bin/master-backup.sh
    hbase/branches/0.90_master_rewrite/bin/replication/
    hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb
    hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb
    hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh
    hbase/branches/0.90_master_rewrite/src/docbkx/
    hbase/branches/0.90_master_rewrite/src/docbkx/book.xml
    hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/TimeRangeTracker.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/wal/LogEntryVisitor.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/ReplicationZookeeperWrapper.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/master/
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/Replication.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkMetrics.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceMetrics.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationStatistics.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/ManualEnvironmentEdge.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/PairOfSameType.java
    hbase/branches/0.90_master_rewrite/src/main/javadoc/org/apache/hadoop/hbase/replication/
    hbase/branches/0.90_master_rewrite/src/main/javadoc/org/apache/hadoop/hbase/replication/package.html
    hbase/branches/0.90_master_rewrite/src/site/site.vm
    hbase/branches/0.90_master_rewrite/src/site/xdoc/pseudo-distributed.xml
    hbase/branches/0.90_master_rewrite/src/site/xdoc/replication.xml
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/BROKE_TODO_FIX_TestAcidGuarantees.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/client/TestMultipleTimestamps.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/client/TestTimestampsFilter.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/filter/TestColumnPrefixFilter.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/io/hfile/TestReseekTo.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/master/TestLogsCleaner.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLogMethods.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/ReplicationSourceDummy.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/TestReplication.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSource.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/regionserver/
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/util/TestByteBloomFilter.java
Removed:
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/master/OldLogsCleaner.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/DeleteCompare.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/GetDeleteTracker.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/QueryMatcher.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileGetScan.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/WildcardColumnTracker.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/SoftValue.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/SoftValueMap.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/master/TestOldLogsCleaner.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestDeleteCompare.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetDeleteTracker.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java
Modified:
    hbase/branches/0.90_master_rewrite/.gitignore
    hbase/branches/0.90_master_rewrite/CHANGES.txt
    hbase/branches/0.90_master_rewrite/bin/hbase
    hbase/branches/0.90_master_rewrite/bin/hbase-config.sh
    hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh
    hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh
    hbase/branches/0.90_master_rewrite/bin/regionservers.sh
    hbase/branches/0.90_master_rewrite/bin/start-hbase.sh
    hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh
    hbase/branches/0.90_master_rewrite/bin/zookeepers.sh
    hbase/branches/0.90_master_rewrite/pom.xml
    hbase/branches/0.90_master_rewrite/src/assembly/bin.xml
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/Filter.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/FilterBase.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/TimeRange.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/CachedBlock.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/CachedBlockQueue.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileScanner.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/master/LogCleanerDelegate.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ColumnTracker.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ExplicitColumnTracker.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/GetClosestRowBeforeTracker.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueScanner.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/MinorCompactingStoreScanner.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ReadWriteConsistencyControl.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/ScanWildcardColumnTracker.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLogKey.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/regionserver/wal/LogActionsListener.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/Main.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/RowResultGenerator.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/client/Client.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/provider/producer/PlainTextMessageBodyProducer.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/rest/provider/producer/ProtobufMessageBodyProducer.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/Bytes.java
    hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/util/SoftValueSortedMap.java
    hbase/branches/0.90_master_rewrite/src/main/javadoc/overview.html
    hbase/branches/0.90_master_rewrite/src/main/resources/hbase-default.xml
    hbase/branches/0.90_master_rewrite/src/main/ruby/shell.rb
    hbase/branches/0.90_master_rewrite/src/main/ruby/shell/formatter.rb
    hbase/branches/0.90_master_rewrite/src/site/site.xml
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/TestAcidGuarantees.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/io/TestImmutableBytesWritable.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCachedBlockQueue.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/KeyValueScanFixture.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestExplicitColumnTracker.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestFSErrorsExposed.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeyValueHeap.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStore.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestQueryMatcher.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestScanWildcardColumnTracker.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFile.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLog.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLogSplit.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogActionsListener.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java
    hbase/branches/0.90_master_rewrite/src/test/java/org/apache/hadoop/hbase/rest/TestRowResource.java

Modified: hbase/branches/0.90_master_rewrite/.gitignore
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/.gitignore?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/.gitignore (original)
+++ hbase/branches/0.90_master_rewrite/.gitignore Fri Aug 27 05:01:02 2010
@@ -9,3 +9,4 @@
 *.iml
 *.orig
 *~
+*.rej

Modified: hbase/branches/0.90_master_rewrite/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/CHANGES.txt?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/CHANGES.txt (original)
+++ hbase/branches/0.90_master_rewrite/CHANGES.txt Fri Aug 27 05:01:02 2010
@@ -25,6 +25,8 @@ Release 0.21.0 - Unreleased
    HBASE-2565  Remove contrib module from hbase
    HBASE-2397  Bytes.toStringBinary escapes printable chars
    HBASE-2771  Update our hadoop jar to be latest from 0.20-append branch
+   HBASE-2803  Remove remaining Get code from Store.java,etc
+   HBASE-2553  Revisit IncrementColumnValue implementation in 0.22
 
   BUG FIXES
    HBASE-1791  Timeout in IndexRecordWriter (Bradford Stephens via Andrew
@@ -426,6 +428,66 @@ Release 0.21.0 - Unreleased
    HBASE-2707  Can't recover from a dead ROOT server if any exceptions happens
                during log splitting
    HBASE-2501  Refactor StoreFile Code
+   HBASE-2806  DNS hiccups cause uncaught NPE in HServerAddress#getBindAddress
+               (Benoit Sigoure via Stack)
+   HBASE-2806  (small compile fix via jgray)
+   HBASE-2797  Another NPE in ReadWriteConsistencyControl
+   HBASE-2831  Fix '$bin' path duplication in setup scripts
+               (Nicolas Spiegelberg via Stack)
+   HBASE-2781  ZKW.createUnassignedRegion doesn't make sure existing znode is 
+               in the right state (Karthik Ranganathan via JD)
+   HBASE-2727  Splits writing one file only is untenable; need dir of recovered
+               edits ordered by sequenceid
+   HBASE-2843  Readd bloomfilter test over zealously removed by HBASE-2625 
+   HBASE-2846  Make rest server be same as thrift and avro servers
+   HBASE-1511  Pseudo distributed mode in LocalHBaseCluster
+               (Nicolas Spiegelberg via Stack)
+   HBASE-2851  Remove testDynamicBloom() unit test
+               (Nicolas Spiegelberg via Stack)
+   HBASE-2853  TestLoadIncrementalHFiles fails on TRUNK
+   HBASE-2854  broken tests on trunk         
+   HBASE-2859  Cleanup deprecated stuff in TestHLog (Alex Newman via Stack)
+   HBASE-2858  TestReplication.queueFailover fails half the time
+   HBASE-2863  HBASE-2553 removed an important edge case
+   HBASE-2866  Region permanently offlined
+   HBASE-2849  HBase clients cannot recover when their ZooKeeper session
+               becomes invalid (Benôit Sigoure via Stack)
+   HBASE-2876  HBase hbck: false positive error reported for parent regions
+               that are in offline state in meta after a split
+   HBASE-2815  not able to run the test suite in background because TestShell
+               gets suspended on tty output (Alexey Kovyrin via Stack)
+   HBASE-2852  Bloom filter NPE (pranav via jgray)
+   HBASE-2820  hbck throws an error if HBase root dir isn't on the default FS
+   HBASE-2884  TestHFileOutputFormat flaky when map tasks generate identical
+               data
+   HBASE-2890  Initialize RPC JMX metrics on startup (Gary Helmling via Stack)
+   HBASE-2755  Duplicate assignment of a region after region server recovery
+               (Kannan Muthukkaruppan via Stack)
+   HBASE-2892  Replication metrics aren't updated
+   HBASE-2461  Split doesn't handle IOExceptions when creating new region
+               reference files
+   HBASE-2871  Make "start|stop" commands symmetric for Master & Cluster
+               (Nicolas Spiegelberg via Stack)
+   HBASE-2901  HBASE-2461 broke build
+   HBASE-2823  Entire Row Deletes not stored in Row+Col Bloom
+               (Alexander Georgiev via Stack)
+   HBASE-2897  RowResultGenerator should handle NoSuchColumnFamilyException
+   HBASE-2905  NPE when inserting mass data via REST interface (Sandy Yin via
+               Andrew Purtell)
+   HBASE-2908  Wrong order of null-check [in TIF] (Libor Dener via Stack)
+   HBASE-2909  SoftValueSortedMap is broken, can generate NPEs
+   HBASE-2919  initTableReducerJob: Unused method parameter
+               (Libor Dener via Stack)
+   HBASE-2923  Deadlock between HRegion.internalFlushCache and close
+   HBASE-2927  BaseScanner gets stale HRegionInfo in some race cases
+   HBASE-2928  Fault in logic in BinaryPrefixComparator leads to
+               ArrayIndexOutOfBoundsException (pranav via jgray)
+   HBASE-2924  TestLogRolling doesn't use the right HLog half the time
+   HBASE-2931  Do not throw RuntimeExceptions in RPC/HbaseObjectWritable
+               code, ensure we log and rethrow as IOE
+               (Karthik Ranganathan via Stack)
+   HBASE-2915  Deadlock between HRegion.ICV and HRegion.close
+   HBASE-2920  HTable.checkAndPut/Delete doesn't handle null values
 
   IMPROVEMENTS
    HBASE-1760  Cleanup TODOs in HTable
@@ -750,6 +812,49 @@ Release 0.21.0 - Unreleased
                (Nicolas Spiegelberg via JD)
    HBASE-2786  TestHLog.testSplit hangs (Nicolas Spiegelberg via JD)
    HBASE-2790  Purge apache-forrest from TRUNK
+   HBASE-2793  Add ability to extract a specified list of versions of a column 
+               in a single roundtrip (Kannan via Ryan)
+   HBASE-2828  HTable unnecessarily coupled with HMaster
+               (Nicolas Spiegelberg via Stack)
+   HBASE-2265  HFile and Memstore should maintain minimum and maximum timestamps
+               (Pranav via Ryan)
+   HBASE-2836  Speed mvn site building by removing generation of useless reports
+   HBASE-2808  Document the implementation of replication
+   HBASE-2517  During reads when passed the specified time range, seek to
+               next column (Pranav via jgray)
+   HBASE-2835  Update hadoop jar to head of branch-0.20-append to catch three
+               added patches
+   HBASE-2840  Remove the final remnants of the old Get code - the query matchers 
+               and other helper classes
+   HBASE-2845  Small edit of shell main help page cutting down some on white
+               space and text
+   HBASE-2850  slf4j version needs to be reconciled in pom: thrift wants 1.5.x
+               and hadoop/avro 1.4.x
+   HBASE-2865  Cleanup of LRU logging; its hard to read, uses custom MB'maker,
+               repeats info, too many numbers after the point, etc.
+   HBASE-2869  Regularize how we log sequenceids -- sometimes its myseqid,
+               other times its sequence id, etc.
+   HBASE-2873  Minor clean up in basescanner; fix a log and make deletes of
+               region processing run in order
+   HBASE-2830  NotServingRegionException shouldn't log a stack trace
+   HBASE-2874  Unnecessary double-synchronization in ZooKeeperWrapper
+               (Benoît Sigoure via Stack)
+   HBASE-2879  Offer ZK CLI outside of HBase Shell
+               (Nicolas Spiegelberg via Stack)
+   HBASE-2886  Add search box to site (Alex Baranau via Stack)
+   HBASE-2792  Create a better way to chain log cleaners
+               (Chongxin Li via Stack)
+   HBASE-2844  Capping the number of regions (Pranav Khaitan via Stack)
+   HBASE-2870  Add Backup CLI Option to HMaster (Nicolas Spiegelberg via Stack)
+   HBASE-2868  Do some small cleanups in org.apache.hadoop.hbase.regionserver.wal
+               (Alex Newman via Stack)
+   HBASE-1660  HBASE-1660 script to handle rolling restarts
+               (Nicolas Spiegelberg via Stack)
+   HBASE-1517  Implement inexpensive seek operations in HFile (Pranav via Ryan)
+   HBASE-2903  ColumnPrefix filtering (Pranav via Ryan)
+   HBASE-2904  Smart seeking using filters (Pranav via Ryan)
+   HBASE-2922  HLog preparation and cleanup are done under the updateLock, 
+               major slowdown
 
   NEW FEATURES
    HBASE-1961  HBase EC2 scripts
@@ -793,6 +898,10 @@ Release 0.21.0 - Unreleased
                (Jeff Hammerbacher via Ryan Rawson)
    HBASE-7     Provide a HBase checker and repair tool similar to fsck
                (dhruba borthakur via Stack)
+   HBASE-2223  Handle 10min+ network partitions between clusters
+   HBASE-2862  Name DFSClient for Improved Debugging
+               (Nicolas Spiegelberg via Stack)
+   HBASE-2838  Replication metrics
 
   OPTIMIZATIONS
    HBASE-410   [testing] Speed up the test suite

Modified: hbase/branches/0.90_master_rewrite/bin/hbase
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/hbase?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/hbase (original)
+++ hbase/branches/0.90_master_rewrite/bin/hbase Fri Aug 27 05:01:02 2010
@@ -43,7 +43,7 @@
 #   MAVEN_HOME       Where mvn is installed.
 #
 bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`cd "$bin">/dev/null; pwd`
 
 # This will set HBASE_HOME, etc.
 . "$bin"/hbase-config.sh
@@ -67,11 +67,13 @@ if [ $# = 0 ]; then
   if $in_sources_dir; then
     echo "  shell-tests      run the HBase shell tests"
   fi
+  echo "  zkcli            run the ZooKeeper shell"
   echo "  master           run an HBase HMaster node" 
   echo "  regionserver     run an HBase HRegionServer node" 
+  echo "  zookeeper        run a Zookeeper server"
+  echo "  rest             run an HBase REST server" 
   echo "  thrift           run an HBase Thrift server" 
   echo "  avro             run an HBase Avro server" 
-  echo "  zookeeper        run a Zookeeper server"
   echo "  migrate          upgrade an hbase.rootdir"
   echo "  hbck             run the hbase 'fsck' tool"
   echo " or"
@@ -239,6 +241,11 @@ elif [ "$COMMAND" = "thrift" ] ; then
   if [ "$1" != "stop" ] ; then
     HBASE_OPTS="$HBASE_OPTS $HBASE_THRIFT_OPTS"
   fi
+elif [ "$COMMAND" = "rest" ] ; then
+  CLASS='org.apache.hadoop.hbase.rest.Main'
+  if [ "$1" != "stop" ] ; then
+    HBASE_OPTS="$HBASE_OPTS $HBASE_REST_OPTS"
+  fi
 elif [ "$COMMAND" = "avro" ] ; then
   CLASS='org.apache.hadoop.hbase.avro.AvroServer'
   if [ "$1" != "stop" ] ; then
@@ -253,6 +260,8 @@ elif [ "$COMMAND" = "zookeeper" ] ; then
   if [ "$1" != "stop" ] ; then
     HBASE_OPTS="$HBASE_OPTS $HBASE_ZOOKEEPER_OPTS"
   fi
+elif [ "$COMMAND" = "zkcli" ] ; then
+  CLASS='org.apache.zookeeper.ZooKeeperMain'
 else
   CLASS=$COMMAND
 fi

Modified: hbase/branches/0.90_master_rewrite/bin/hbase-config.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/hbase-config.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/hbase-config.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/hbase-config.sh Fri Aug 27 05:01:02 2010
@@ -24,9 +24,9 @@
 # also should not be passed any arguments, since we need original $*
 # Modelled after $HADOOP_HOME/bin/hadoop-env.sh.
 
-# resolve links - $0 may be a softlink
+# resolve links - "${BASH_SOURCE-$0}" may be a softlink
 
-this="$0"
+this="${BASH_SOURCE-$0}"
 while [ -h "$this" ]; do
   ls=`ls -ld "$this"`
   link=`expr "$ls" : '.*-> \(.*\)$'`
@@ -40,7 +40,7 @@ done
 # convert relative path to absolute path
 bin=`dirname "$this"`
 script=`basename "$this"`
-bin=`cd "$bin"; pwd`
+bin=`cd "$bin">/dev/null; pwd`
 this="$bin/$script"
 
 # the root of the hbase installation
@@ -73,6 +73,8 @@ done
 HBASE_CONF_DIR="${HBASE_CONF_DIR:-$HBASE_HOME/conf}"
 # List of hbase regions servers.
 HBASE_REGIONSERVERS="${HBASE_REGIONSERVERS:-$HBASE_CONF_DIR/regionservers}"
+# List of hbase secondary masters.
+HBASE_BACKUP_MASTERS="${HBASE_BACKUP_MASTERS:-$HBASE_CONF_DIR/backup-masters}"
 
 # Source the hbase-env.sh.  Will have JAVA_HOME defined.
 if [ -f "${HBASE_CONF_DIR}/hbase-env.sh" ]; then

Modified: hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/hbase-daemon.sh Fri Aug 27 05:01:02 2010
@@ -33,7 +33,7 @@
 # Modelled after $HADOOP_HOME/bin/hadoop-daemon.sh
 
 usage="Usage: hbase-daemon.sh [--config <conf-dir>]\
- (start|stop) <hbase-command> \
+ (start|stop|restart) <hbase-command> \
  <args...>"
 
 # if no args specified, show usage
@@ -42,8 +42,8 @@ if [ $# -le 1 ]; then
   exit 1
 fi
 
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
 
 . "$bin"/hbase-config.sh
 
@@ -71,6 +71,24 @@ hbase_rotate_log ()
     fi
 }
 
+wait_until_done ()
+{
+    p=$1
+    cnt=${HBASE_SLAVE_TIMEOUT:-60}
+    origcnt=$cnt
+    while kill -0 $p > /dev/null 2>&1; do
+      if [ $cnt -gt 1 ]; then
+        cnt=`expr $cnt - 1`
+        sleep 1
+      else
+        echo "Process did not complete after $origcnt seconds, killing."
+        kill -9 $p
+        exit 1
+      fi
+    done
+    return 0
+}
+
 # get log directory
 if [ "$HBASE_LOG_DIR" = "" ]; then
   export HBASE_LOG_DIR="$HBASE_HOME/logs"
@@ -132,13 +150,12 @@ case $startStop in
 
   (stop)
     if [ -f $pid ]; then
+      # kill -0 == see if the PID exists 
       if kill -0 `cat $pid` > /dev/null 2>&1; then
         echo -n stopping $command
-        echo "`date` Stopping $command" >> $loglog
         if [ "$command" = "master" ]; then
-          nohup nice -n $HBASE_NICENESS "$HBASE_HOME"/bin/hbase \
-              --config "${HBASE_CONF_DIR}" \
-              $command $startStop "$@" > "$logout" 2>&1 < /dev/null &
+          echo "`date` Killing $command" >> $loglog
+          kill -9 `cat $pid` > /dev/null 2>&1
         else
           echo "`date` Killing $command" >> $loglog
           kill `cat $pid` > /dev/null 2>&1
@@ -150,13 +167,29 @@ case $startStop in
         echo
       else
         retval=$?
-        echo no $command to stop because kill of pid `cat $pid` failed with status $retval
+        echo no $command to stop because kill -0 of pid `cat $pid` failed with status $retval
       fi
     else
       echo no $command to stop because no pid file $pid
     fi
     ;;
 
+  (restart)
+    thiscmd=$0
+    args=$@
+    # stop the command
+    $thiscmd --config "${HBASE_CONF_DIR}" stop $command $args &
+    wait_until_done $!
+    # wait a user-specified sleep period
+    sp=${HBASE_SLAVE_SLEEP:-3}
+    if [ $sp -gt 0 ]; then
+      sleep $sp
+    fi
+    # start the command
+    $thiscmd --config "${HBASE_CONF_DIR}" start $command $args &
+    wait_until_done $!
+    ;;
+
   (*)
     echo $usage
     exit 1

Modified: hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/hbase-daemons.sh Fri Aug 27 05:01:02 2010
@@ -32,8 +32,8 @@ if [ $# -le 1 ]; then
   exit 1
 fi
 
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
 
 . $bin/hbase-config.sh
 
@@ -45,6 +45,9 @@ case $command in
   (zookeeper)
     exec "$bin/zookeepers.sh" $args
     ;;
+  (master-backup)
+    exec "$bin/master-backup.sh" $args
+    ;;
   (*)
     exec "$bin/regionservers.sh" $args
     ;;

Added: hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh (added)
+++ hbase/branches/0.90_master_rewrite/bin/local-master-backup.sh Fri Aug 27 05:01:02 2010
@@ -0,0 +1,36 @@
+#!/bin/sh
+# This is used for starting multiple masters on the same machine.
+# run it from hbase-dir/ just like 'bin/hbase'
+# Supports up to 10 masters (limitation = overlapping ports)
+
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin" >/dev/null && pwd`
+
+if [ $# -lt 2 ]; then
+  S=`basename "${BASH_SOURCE-$0}"`
+  echo "Usage: $S [start|stop] offset(s)"
+  echo ""
+  echo "    e.g. $S start 1"
+  exit
+fi
+
+# sanity check: make sure your master opts don't use ports [i.e. JMX/DBG]
+export HBASE_MASTER_OPTS=" "
+
+run_master () {
+  DN=$2
+  export HBASE_IDENT_STRING="$USER-$DN"
+  HBASE_MASTER_ARGS="\
+    --backup \
+    -D hbase.master.port=`expr 60000 + $DN` \
+    -D hbase.master.info.port=`expr 60010 + $DN`"
+  "$bin"/hbase-daemon.sh $1 master $HBASE_MASTER_ARGS
+}
+
+cmd=$1
+shift;
+
+for i in $*
+do
+  run_master  $cmd $i
+done

Added: hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh (added)
+++ hbase/branches/0.90_master_rewrite/bin/local-regionservers.sh Fri Aug 27 05:01:02 2010
@@ -0,0 +1,35 @@
+#!/bin/sh
+# This is used for starting multiple regionservers on the same machine.
+# run it from hbase-dir/ just like 'bin/hbase'
+# Supports up to 100 regionservers (limitation = overlapping ports)
+
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin" >/dev/null && pwd`
+
+if [ $# -lt 2 ]; then
+  S=`basename "${BASH_SOURCE-$0}"`
+  echo "Usage: $S [start|stop] offset(s)"
+  echo ""
+  echo "    e.g. $S start 1 2"
+  exit
+fi
+
+# sanity check: make sure your regionserver opts don't use ports [i.e. JMX/DBG]
+export HBASE_REGIONSERVER_OPTS=" "
+
+run_regionserver () {
+  DN=$2
+  export HBASE_IDENT_STRING="$USER-$DN"
+  HBASE_REGIONSERVER_ARGS="\
+    -D hbase.regionserver.port=`expr 60200 + $DN` \
+    -D hbase.regionserver.info.port=`expr 60300 + $DN`"
+  "$bin"/hbase-daemon.sh $1 regionserver $HBASE_REGIONSERVER_ARGS
+}
+
+cmd=$1
+shift;
+
+for i in $*
+do
+  run_regionserver  $cmd $i
+done

Added: hbase/branches/0.90_master_rewrite/bin/master-backup.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/master-backup.sh?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/master-backup.sh (added)
+++ hbase/branches/0.90_master_rewrite/bin/master-backup.sh Fri Aug 27 05:01:02 2010
@@ -0,0 +1,76 @@
+#!/usr/bin/env bash
+#
+#/**
+# * Copyright 2010 The Apache Software Foundation
+# *
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements.  See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership.  The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the
+# * "License"); you may not use this file except in compliance
+# * with the License.  You may obtain a copy of the License at
+# *
+# *     http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# */
+# 
+# Run a shell command on all backup master hosts.
+#
+# Environment Variables
+#
+#   HBASE_BACKUP_MASTERS File naming remote hosts.
+#     Default is ${HADOOP_CONF_DIR}/backup-masters
+#   HADOOP_CONF_DIR  Alternate conf dir. Default is ${HADOOP_HOME}/conf.
+#   HBASE_CONF_DIR  Alternate hbase conf dir. Default is ${HBASE_HOME}/conf.
+#   HADOOP_SLAVE_SLEEP Seconds to sleep between spawning remote commands.
+#   HADOOP_SSH_OPTS Options passed to ssh when running remote commands.
+#
+# Modelled after $HADOOP_HOME/bin/slaves.sh.
+
+usage="Usage: $0 [--config <hbase-confdir>] command..."
+
+# if no args specified, show usage
+if [ $# -le 0 ]; then
+  echo $usage
+  exit 1
+fi
+
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
+
+. "$bin"/hbase-config.sh
+
+# If the master backup file is specified in the command line,
+# then it takes precedence over the definition in 
+# hbase-env.sh. Save it here.
+HOSTLIST=$HBASE_BACKUP_MASTERS
+
+if [ "$HOSTLIST" = "" ]; then
+  if [ "$HBASE_BACKUP_MASTERS" = "" ]; then
+    export HOSTLIST="${HBASE_CONF_DIR}/backup-masters"
+  else
+    export HOSTLIST="${HBASE_BACKUP_MASTERS}"
+  fi
+fi
+
+
+args=${@// /\\ }
+args=${args/master-backup/master}
+
+if [ -f $HOSTLIST ]; then
+  for hmaster in `cat "$HOSTLIST"`; do
+   ssh $HBASE_SSH_OPTS $hmaster $"$args --backup" \
+     2>&1 | sed "s/^/$hmaster: /" &
+   if [ "$HBASE_SLAVE_SLEEP" != "" ]; then
+     sleep $HBASE_SLAVE_SLEEP
+   fi
+  done
+fi 
+
+wait

Modified: hbase/branches/0.90_master_rewrite/bin/regionservers.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/regionservers.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/regionservers.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/regionservers.sh Fri Aug 27 05:01:02 2010
@@ -41,8 +41,8 @@ if [ $# -le 0 ]; then
   exit 1
 fi
 
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
 
 . "$bin"/hbase-config.sh
 
@@ -60,11 +60,16 @@ if [ "$HOSTLIST" = "" ]; then
 fi
 
 for regionserver in `cat "$HOSTLIST"`; do
- ssh $HBASE_SSH_OPTS $regionserver $"${@// /\\ }" \
-   2>&1 | sed "s/^/$regionserver: /" &
- if [ "$HBASE_SLAVE_SLEEP" != "" ]; then
-   sleep $HBASE_SLAVE_SLEEP
- fi
+  if ${HBASE_SLAVE_PARALLEL:-true}; then 
+    ssh $HBASE_SSH_OPTS $regionserver $"${@// /\\ }" \
+      2>&1 | sed "s/^/$regionserver: /" &
+  else # run each command serially 
+    ssh $HBASE_SSH_OPTS $regionserver $"${@// /\\ }" \
+      2>&1 | sed "s/^/$regionserver: /"
+  fi
+  if [ "$HBASE_SLAVE_SLEEP" != "" ]; then
+    sleep $HBASE_SLAVE_SLEEP
+  fi
 done
 
 wait

Added: hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb (added)
+++ hbase/branches/0.90_master_rewrite/bin/replication/add_peer.rb Fri Aug 27 05:01:02 2010
@@ -0,0 +1,75 @@
+#
+# Copyright 2010 The Apache Software Foundation
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Script to add a peer to a cluster
+# To see usage for this script, run:
+#
+#  ${HBASE_HOME}/bin/hbase org.jruby.Main add_peer.rb
+#
+
+include Java
+import org.apache.commons.logging.LogFactory
+import org.apache.hadoop.hbase.HBaseConfiguration
+import org.apache.hadoop.hbase.HConstants
+import org.apache.hadoop.hbase.EmptyWatcher
+import org.apache.hadoop.conf.Configuration
+import org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper
+
+# Name of this script
+NAME = "add_peer"
+
+# Print usage for this script
+def usage
+  puts 'Usage: %s.rb master_zookeeper.quorum.peers:clientport:znode_parent slave_zookeeper.quorum.peers:clientport:znode_parent' % NAME
+  exit!
+end
+
+if ARGV.size != 2
+  usage
+end
+
+LOG = LogFactory.getLog(NAME)
+
+parts1 = ARGV[0].split(":")
+
+c2 = HBaseConfiguration.create()
+parts2 = ARGV[1].split(":")
+
+c1 = HBaseConfiguration.create()
+c1.set(HConstants::ZOOKEEPER_QUORUM, parts1[0])
+c1.set("hbase.zookeeper.property.clientPort", parts1[1])
+c1.set(HConstants::ZOOKEEPER_ZNODE_PARENT, parts1[2])
+
+zkw1 = ZooKeeperWrapper.createInstance(c1, "ZK1")
+zkw1.writeZNode(parts1[2], "replication", "a")
+zkw1.writeZNode(parts1[2] + "/replication", "master", ARGV[0]);
+zkw1.writeZNode(parts1[2] + "/replication", "state", "true");
+zkw1.writeZNode(parts1[2] + "/replication/peers", "test", ARGV[1]);
+
+
+c2.set(HConstants::ZOOKEEPER_QUORUM, parts2[0])
+c2.set("hbase.zookeeper.property.clientPort", parts2[1])
+c2.set(HConstants::ZOOKEEPER_ZNODE_PARENT, parts2[2])
+
+zkw2 = ZooKeeperWrapper.createInstance(c2, "ZK2")
+zkw2.writeZNode(parts2[2], "replication", "a")
+zkw2.writeZNode(parts2[2] + "/replication", "master", ARGV[0]);
+
+puts "Peer successfully added"

Added: hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb (added)
+++ hbase/branches/0.90_master_rewrite/bin/replication/copy_tables_desc.rb Fri Aug 27 05:01:02 2010
@@ -0,0 +1,75 @@
+#
+# Copyright 2010 The Apache Software Foundation
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Script to recreate all tables from one cluster to another
+# To see usage for this script, run:
+#
+#  ${HBASE_HOME}/bin/hbase org.jruby.Main copy_tables_desc.rb
+#
+
+include Java
+import org.apache.commons.logging.LogFactory
+import org.apache.hadoop.hbase.HBaseConfiguration
+import org.apache.hadoop.hbase.HConstants
+import org.apache.hadoop.hbase.EmptyWatcher
+import org.apache.hadoop.hbase.client.HBaseAdmin
+import org.apache.hadoop.hbase.HTableDescriptor
+import org.apache.hadoop.conf.Configuration
+import org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper
+
+# Name of this script
+NAME = "copy_tables_desc"
+
+# Print usage for this script
+def usage
+  puts 'Usage: %s.rb master_zookeeper.quorum.peers:clientport:znode_parent slave_zookeeper.quorum.peers:clientport:znode_parent' % NAME
+  exit!
+end
+
+if ARGV.size != 2
+  usage
+end
+
+LOG = LogFactory.getLog(NAME)
+
+parts1 = ARGV[0].split(":")
+
+parts2 = ARGV[1].split(":")
+
+c1 = HBaseConfiguration.create()
+c1.set(HConstants::ZOOKEEPER_QUORUM, parts1[0])
+c1.set("hbase.zookeeper.property.clientPort", parts1[1])
+c1.set(HConstants::ZOOKEEPER_ZNODE_PARENT, parts1[2])
+
+admin1 = HBaseAdmin.new(c1)
+
+c2 = HBaseConfiguration.create()
+c2.set(HConstants::ZOOKEEPER_QUORUM, parts2[0])
+c2.set("hbase.zookeeper.property.clientPort", parts2[1])
+c2.set(HConstants::ZOOKEEPER_ZNODE_PARENT, parts2[2])
+
+admin2 = HBaseAdmin.new(c2)
+
+for t in admin1.listTables()
+  admin2.createTable(t)
+end
+
+
+puts "All descriptions were copied"

Added: hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh (added)
+++ hbase/branches/0.90_master_rewrite/bin/rolling-restart.sh Fri Aug 27 05:01:02 2010
@@ -0,0 +1,170 @@
+#!/usr/bin/env bash
+#
+#/**
+# * Copyright 2007 The Apache Software Foundation
+# *
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements.  See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership.  The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the
+# * "License"); you may not use this file except in compliance
+# * with the License.  You may obtain a copy of the License at
+# *
+# *     http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# */
+# 
+# Run a shell command on all regionserver hosts.
+#
+# Environment Variables
+#
+#   HBASE_REGIONSERVERS    File naming remote hosts.
+#     Default is ${HADOOP_CONF_DIR}/regionservers
+#   HADOOP_CONF_DIR  Alternate conf dir. Default is ${HADOOP_HOME}/conf.
+#   HBASE_CONF_DIR  Alternate hbase conf dir. Default is ${HBASE_HOME}/conf.
+#   HADOOP_SLAVE_SLEEP Seconds to sleep between spawning remote commands.
+#   HADOOP_SLAVE_TIMEOUT Seconds to wait for timing out a remote command. 
+#   HADOOP_SSH_OPTS Options passed to ssh when running remote commands.
+#
+# Modelled after $HADOOP_HOME/bin/slaves.sh.
+
+usage="Usage: $0 [--config <hbase-confdir>] commands..."
+
+bin=`dirname "$0"`
+bin=`cd "$bin">/dev/null; pwd`
+
+. "$bin"/hbase-config.sh
+
+# start hbase daemons
+errCode=$?
+if [ $errCode -ne 0 ]
+then
+  exit $errCode
+fi
+
+# quick function to get a value from the HBase config file
+distMode=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool hbase.cluster.distributed`
+if [ "$distMode" == 'false' ]; then
+  "$bin"/hbase-daemon.sh restart master
+else 
+  # stop all masters before re-start to avoid races for master znode
+  "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" stop master 
+  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+    --hosts "${HBASE_BACKUP_MASTERS}" stop master-backup
+
+  # make sure the master znode has been deleted before continuing
+  zparent=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool zookeeper.znode.parent`
+  if [ "$zparent" == "null" ]; then zparent="/hbase"; fi
+  zmaster=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool zookeeper.znode.master`
+  if [ "$zmaster" == "null" ]; then zmaster="master"; fi
+  zmaster=$zparent/$zmaster
+  echo -n "Waiting for Master ZNode to expire"
+  while bin/hbase zkcli stat $zmaster >/dev/null 2>&1; do
+    echo -n "."
+    sleep 1
+  done
+  echo #force a newline
+
+  # all masters are down, now restart
+  "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" start master 
+  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+    --hosts "${HBASE_BACKUP_MASTERS}" start master-backup
+
+  # unlike the masters, roll all regionservers one-at-a-time
+  export HBASE_SLAVE_PARALLEL=false
+  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+    --hosts "${HBASE_REGIONSERVERS}" restart regionserver
+
+fi
+
+#!/usr/bin/env bash
+#
+#/**
+# * Copyright 2010 The Apache Software Foundation
+# *
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements.  See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership.  The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the
+# * "License"); you may not use this file except in compliance
+# * with the License.  You may obtain a copy of the License at
+# *
+# *     http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# */
+#
+# Run a shell command on all regionserver hosts.
+#
+# Environment Variables
+#
+#   HBASE_REGIONSERVERS    File naming remote hosts.
+#     Default is ${HADOOP_CONF_DIR}/regionservers
+#   HADOOP_CONF_DIR  Alternate conf dir. Default is ${HADOOP_HOME}/conf.
+#   HBASE_CONF_DIR  Alternate hbase conf dir. Default is ${HBASE_HOME}/conf.
+#   HADOOP_SLAVE_SLEEP Seconds to sleep between spawning remote commands.
+#   HADOOP_SLAVE_TIMEOUT Seconds to wait for timing out a remote command.
+#   HADOOP_SSH_OPTS Options passed to ssh when running remote commands.
+#
+# Modelled after $HADOOP_HOME/bin/slaves.sh.
+
+usage="Usage: $0 [--config <hbase-confdir>] commands..."
+
+bin=`dirname "$0"`
+bin=`cd "$bin">/dev/null; pwd`
+
+. "$bin"/hbase-config.sh
+
+# start hbase daemons
+errCode=$?
+if [ $errCode -ne 0 ]
+then
+  exit $errCode
+fi
+
+# quick function to get a value from the HBase config file
+distMode=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool hbase.cluster.distributed`
+if [ "$distMode" == 'false' ]; then
+  "$bin"/hbase-daemon.sh restart master
+else 
+  # stop all masters before re-start to avoid races for master znode
+  "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" stop master 
+  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+    --hosts "${HBASE_BACKUP_MASTERS}" stop master-backup
+
+  # make sure the master znode has been deleted before continuing
+  zparent=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool zookeeper.znode.parent`
+  if [ "$zparent" == "null" ]; then zparent="/hbase"; fi
+  zmaster=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool zookeeper.znode.master`
+  if [ "$zmaster" == "null" ]; then zmaster="master"; fi
+  zmaster=$zparent/$zmaster
+  echo -n "Waiting for Master ZNode to expire"
+  while bin/hbase zkcli stat $zmaster >/dev/null 2>&1; do
+    echo -n "."
+    sleep 1
+  done
+  echo #force a newline
+
+  # all masters are down, now restart
+  "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" start master
+  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+    --hosts "${HBASE_BACKUP_MASTERS}" start master-backup
+
+  # unlike the masters, roll all regionservers one-at-a-time
+  export HBASE_SLAVE_PARALLEL=false
+  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+    --hosts "${HBASE_REGIONSERVERS}" restart regionserver
+
+fi
+

Modified: hbase/branches/0.90_master_rewrite/bin/start-hbase.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/start-hbase.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/start-hbase.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/start-hbase.sh Fri Aug 27 05:01:02 2010
@@ -26,8 +26,8 @@
 # Run this on master node.
 usage="Usage: start-hbase.sh"
 
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
 
 . "$bin"/hbase-config.sh
 
@@ -49,4 +49,6 @@ else
   "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" start master 
   "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
     --hosts "${HBASE_REGIONSERVERS}" start regionserver
+  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+    --hosts "${HBASE_BACKUP_MASTERS}" start master-backup
 fi

Modified: hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/stop-hbase.sh Fri Aug 27 05:01:02 2010
@@ -24,14 +24,46 @@
 
 # Stop hadoop hbase daemons.  Run this on master node.
 
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
 
 . "$bin"/hbase-config.sh
 
-"$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" stop master
+# variables needed for stop command
+if [ "$HBASE_LOG_DIR" = "" ]; then
+  export HBASE_LOG_DIR="$HBASE_HOME/logs"
+fi
+mkdir -p "$HBASE_LOG_DIR"
+
+if [ "$HBASE_IDENT_STRING" = "" ]; then
+  export HBASE_IDENT_STRING="$USER"
+fi
+
+export HBASE_LOGFILE=hbase-$HBASE_IDENT_STRING-master-$HOSTNAME.log
+logout=$HBASE_LOG_DIR/hbase-$HBASE_IDENT_STRING-master-$HOSTNAME.out  
+loglog="${HBASE_LOG_DIR}/${HBASE_LOGFILE}"
+pid=${HBASE_PID_DIR:-/tmp}/hbase-$HBASE_IDENT_STRING-master.pid
+
+echo -n stopping hbase
+echo "`date` Stopping hbase (via master)" >> $loglog
+
+nohup nice -n ${HBASE_NICENESS:-0} "$HBASE_HOME"/bin/hbase \
+   --config "${HBASE_CONF_DIR}" \
+   master stop "$@" > "$logout" 2>&1 < /dev/null &
+
+while kill -0 `cat $pid` > /dev/null 2>&1; do
+  echo -n "."
+  sleep 1;
+done
+
+# distributed == false means that the HMaster will kill ZK when it exits
 distMode=`$bin/hbase org.apache.hadoop.hbase.HBaseConfTool hbase.cluster.distributed`
 if [ "$distMode" == 'true' ] 
 then
+  # TODO: store backup masters in ZooKeeper and have the primary send them a shutdown message
+  # stop any backup masters
+  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
+    --hosts "${HBASE_BACKUP_MASTERS}" stop master-backup
+
   "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" stop zookeeper
 fi

Modified: hbase/branches/0.90_master_rewrite/bin/zookeepers.sh
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/bin/zookeepers.sh?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/bin/zookeepers.sh (original)
+++ hbase/branches/0.90_master_rewrite/bin/zookeepers.sh Fri Aug 27 05:01:02 2010
@@ -38,8 +38,8 @@ if [ $# -le 0 ]; then
   exit 1
 fi
 
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+bin=`dirname "${BASH_SOURCE-$0}"`
+bin=`cd "$bin">/dev/null; pwd`
 
 . "$bin"/hbase-config.sh
 

Modified: hbase/branches/0.90_master_rewrite/pom.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/pom.xml?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/pom.xml (original)
+++ hbase/branches/0.90_master_rewrite/pom.xml Fri Aug 27 05:01:02 2010
@@ -5,7 +5,7 @@
   <groupId>org.apache.hbase</groupId>
   <artifactId>hbase</artifactId>
   <packaging>jar</packaging>
-    <version>0.89.0-SNAPSHOT</version>
+  <version>${hbase.version}</version>
   <name>HBase</name>
   <description>
   HBase is the &amp;lt;a href="http://hadoop.apache.org"&amp;rt;Hadoop&lt;/a&amp;rt; database. Use it when you need random, realtime read/write access to your Big Data.
@@ -443,7 +443,6 @@
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>build-helper-maven-plugin</artifactId>
-        <version>1.5</version>
         <executions>
           <execution>
             <id>add-jspc-source</id>
@@ -739,11 +738,21 @@
 
     <!-- Avro dependencies -->
     <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <version>${slf4j.version}</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>avro</artifactId>
       <version>1.3.2</version>
     </dependency>
     <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+    </dependency>
+    <dependency>
       <groupId>org.codehaus.jackson</groupId>
       <artifactId>jackson-core-asl</artifactId>
       <version>1.5.2</version>
@@ -773,6 +782,11 @@
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-test</artifactId>
     </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+      <version>${guava.version}</version>
+   </dependency>
   </dependencies>
 
   <!--

Modified: hbase/branches/0.90_master_rewrite/src/assembly/bin.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/assembly/bin.xml?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/assembly/bin.xml (original)
+++ hbase/branches/0.90_master_rewrite/src/assembly/bin.xml Fri Aug 27 05:01:02 2010
@@ -28,7 +28,7 @@
       <outputDirectory>/</outputDirectory>
       <includes>
           <include>hbase-${project.version}.jar</include>
-          <include>hbase-${project.version}-tests.jar</include>
+          <include>hbase-${project.version}-test.jar</include>
       </includes>
     </fileSet>
     <fileSet>

Added: hbase/branches/0.90_master_rewrite/src/docbkx/book.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/docbkx/book.xml?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/docbkx/book.xml (added)
+++ hbase/branches/0.90_master_rewrite/src/docbkx/book.xml Fri Aug 27 05:01:02 2010
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<book version="5.0" xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:m="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <title>HBase Book
+<?eval ${project.version}?>
+
+    </title>
+  </info>
+
+  <chapter xml:id="getting_started">
+    <title >Getting Started</title>
+
+    <section>
+      <title>Requirements</title>
+
+      <para>First...</para>
+    </section>
+  </chapter>
+
+  <chapter xml:id="datamodel">
+    <title>Data Model</title>
+
+    <para></para>
+  </chapter>
+
+  <chapter xml:id="implementation">
+    <title>Implementation</title>
+
+    <para></para>
+  </chapter>
+
+  <chapter xml:id="mapreduce">
+    <title>MapReduce</title>
+
+    <para></para>
+  </chapter>
+
+  <chapter xml:id="schema">
+    <title>Schema Design</title>
+
+    <para></para>
+  </chapter>
+
+  <chapter xml:id="shell">
+    <title>Shell</title>
+
+    <para></para>
+  </chapter>
+
+  <chapter xml:id="thrift">
+    <title>Thrift</title>
+
+    <para></para>
+  </chapter>
+
+  <chapter xml:id="rest">
+    <title>REST</title>
+
+    <para></para>
+  </chapter>
+</book>

Added: hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml?rev=990018&view=auto
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml (added)
+++ hbase/branches/0.90_master_rewrite/src/docbkx/sample_article.xml Fri Aug 27 05:01:02 2010
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<article version="5.0" xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xmlns:svg="http://www.w3.org/2000/svg"
+         xmlns:m="http://www.w3.org/1998/Math/MathML"
+         xmlns:html="http://www.w3.org/1999/xhtml"
+         xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <title>Wah-wah
+<?eval ${project.version}?>
+    </title>
+
+
+  </info>
+
+  <section xml:id="wahwah">
+    <title>Wah-Wah changed my life</title>
+
+    <para>I was born very young...</para>
+
+    <para>This is a sample docbook article.</para>
+    <para>
+    <?eval ${project.version}?>
+    </para>
+
+    <section xml:id="then">
+      <title>Then</title>
+
+      <para></para>
+    </section>
+
+    <section xml:id="and">
+      <title>And</title>
+
+      <para></para>
+    </section>
+
+    <section xml:id="later">
+      <title>Later</title>
+
+      <para></para>
+    </section>
+  </section>
+
+  <section xml:id="good_books">
+    <title>Good books</title>
+
+    <para></para>
+  </section>
+
+  <section xml:id="rainy_days">
+    <title>Rainy days</title>
+
+    <para>Today it was raining</para>
+  </section>
+</article>

Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HConstants.java Fri Aug 27 05:01:02 2010
@@ -81,6 +81,12 @@ public final class HConstants {
   /** default port for master web api */
   public static final int DEFAULT_MASTER_INFOPORT = 60010;
 
+  /** Parameter name for the master type being backup (waits for primary to go inactive). */
+  public static final String MASTER_TYPE_BACKUP = "hbase.master.backup";
+
+  /** by default every master is a possible primary master unless the conf explicitly overrides it */
+  public static final boolean DEFAULT_MASTER_TYPE_BACKUP = false;
+
   /** Name of ZooKeeper quorum configuration parameter. */
   public static final String ZOOKEEPER_QUORUM = "hbase.zookeeper.quorum";
 
@@ -352,6 +358,9 @@ public final class HConstants {
    */
   public static long DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD = 60000;
 
+  public static final String
+      REPLICATION_ENABLE_KEY = "hbase.replication";
+
   private HConstants() {
     // Can't be instantiated with this ctor.
   }

Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/HServerAddress.java Fri Aug 27 05:01:02 2010
@@ -19,12 +19,14 @@
  */
 package org.apache.hadoop.hbase;
 
-import org.apache.hadoop.io.*;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.io.WritableComparable;
 
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 import java.net.InetSocketAddress;
+import java.net.InetAddress;
 
 /**
  * HServerAddress is a "label" for a HBase server made of host and port number.
@@ -39,13 +41,14 @@ public class HServerAddress implements W
   }
 
   /**
-   * Construct a HServerAddress from an InetSocketAddress
+   * Construct an instance from an {@link InetSocketAddress}.
    * @param address InetSocketAddress of server
    */
   public HServerAddress(InetSocketAddress address) {
     this.address = address;
     this.stringValue = address.getAddress().getHostName() + ":" +
       address.getPort();
+    checkBindAddressCanBeResolved();
   }
 
   /**
@@ -53,14 +56,14 @@ public class HServerAddress implements W
    */
   public HServerAddress(String hostAndPort) {
     int colonIndex = hostAndPort.lastIndexOf(':');
-    if(colonIndex < 0) {
+    if (colonIndex < 0) {
       throw new IllegalArgumentException("Not a host:port pair: " + hostAndPort);
     }
     String host = hostAndPort.substring(0, colonIndex);
-    int port =
-      Integer.valueOf(hostAndPort.substring(colonIndex + 1)).intValue();
+    int port = Integer.parseInt(hostAndPort.substring(colonIndex + 1));
     this.address = new InetSocketAddress(host, port);
     this.stringValue = hostAndPort;
+    checkBindAddressCanBeResolved();
   }
 
   /**
@@ -70,38 +73,53 @@ public class HServerAddress implements W
   public HServerAddress(String bindAddress, int port) {
     this.address = new InetSocketAddress(bindAddress, port);
     this.stringValue = bindAddress + ":" + port;
+    checkBindAddressCanBeResolved();
   }
 
   /**
-   * Copy-constructor
-   *
+   * Copy-constructor.
    * @param other HServerAddress to copy from
    */
   public HServerAddress(HServerAddress other) {
     String bindAddress = other.getBindAddress();
     int port = other.getPort();
     this.address = new InetSocketAddress(bindAddress, port);
-    stringValue = bindAddress + ":" + port;
+    stringValue = other.stringValue;
+    checkBindAddressCanBeResolved();
   }
 
   /** @return Bind address */
   public String getBindAddress() {
-    return this.address.getAddress().getHostAddress();
+    final InetAddress addr = address.getAddress();
+    if (addr != null) {
+      return addr.getHostAddress();
+    } else {
+      LogFactory.getLog(HServerAddress.class).error("Could not resolve the"
+          + " DNS name of " + stringValue);
+      return null;
+    }
+  }
+
+  private void checkBindAddressCanBeResolved() {
+    if (getBindAddress() == null) {
+      throw new IllegalArgumentException("Could not resolve the"
+          + " DNS name of " + stringValue);
+    }
   }
 
   /** @return Port number */
   public int getPort() {
-    return this.address.getPort();
+    return address.getPort();
   }
 
   /** @return Hostname */
   public String getHostname() {
-    return this.address.getHostName();
+    return address.getHostName();
   }
 
   /** @return The InetSocketAddress */
   public InetSocketAddress getInetSocketAddress() {
-    return this.address;
+    return address;
   }
 
   /**
@@ -109,7 +127,7 @@ public class HServerAddress implements W
    */
   @Override
   public String toString() {
-    return (this.stringValue == null ? "" : this.stringValue);
+    return stringValue == null ? "" : stringValue;
   }
 
   @Override
@@ -123,13 +141,13 @@ public class HServerAddress implements W
     if (getClass() != o.getClass()) {
       return false;
     }
-    return this.compareTo((HServerAddress)o) == 0;
+    return compareTo((HServerAddress) o) == 0;
   }
 
   @Override
   public int hashCode() {
-    int result = this.address.hashCode();
-    result ^= this.stringValue.hashCode();
+    int result = address.hashCode();
+    result ^= stringValue.hashCode();
     return result;
   }
 
@@ -141,13 +159,13 @@ public class HServerAddress implements W
     String bindAddress = in.readUTF();
     int port = in.readInt();
 
-    if(bindAddress == null || bindAddress.length() == 0) {
+    if (bindAddress == null || bindAddress.length() == 0) {
       address = null;
       stringValue = null;
-
     } else {
       address = new InetSocketAddress(bindAddress, port);
       stringValue = bindAddress + ":" + port;
+      checkBindAddressCanBeResolved();
     }
   }
 
@@ -155,7 +173,6 @@ public class HServerAddress implements W
     if (address == null) {
       out.writeUTF("");
       out.writeInt(0);
-
     } else {
       out.writeUTF(address.getAddress().getHostAddress());
       out.writeInt(address.getPort());
@@ -170,7 +187,7 @@ public class HServerAddress implements W
     // Addresses as Strings may not compare though address is for the one
     // server with only difference being that one address has hostname
     // resolved whereas other only has IP.
-    if (this.address.equals(o.address)) return 0;
-    return this.toString().compareTo(o.toString());
+    if (address.equals(o.address)) return 0;
+    return toString().compareTo(o.toString());
   }
-}
\ No newline at end of file
+}

Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/KeyValue.java Fri Aug 27 05:01:02 2010
@@ -218,7 +218,7 @@ public class KeyValue implements Writabl
 
   /** Dragon time over, return to normal business */
 
-  
+
   /** Writable Constructor -- DO NOT USE */
   public KeyValue() {}
 
@@ -925,6 +925,15 @@ public class KeyValue implements Writabl
   }
 
   /**
+   *
+   * @return True if this KV is a delete family or column type.
+   */
+  public boolean isDeleteColumnOrFamily() {
+    int t = getType();
+    return t == Type.DeleteColumn.getCode() || t == Type.DeleteFamily.getCode();
+  }
+
+  /**
    * Primarily for use client-side.  Returns the family of this KeyValue in a
    * new byte array.<p>
    *
@@ -956,7 +965,7 @@ public class KeyValue implements Writabl
     System.arraycopy(this.bytes, o, result, 0, l);
     return result;
   }
-  
+
   //---------------------------------------------------------------------------
   //
   //  KeyValue splitter
@@ -1038,12 +1047,20 @@ public class KeyValue implements Writabl
    * @return True if matching families.
    */
   public boolean matchingFamily(final byte [] family) {
+    return matchingFamily(family, 0, family.length);
+  }
+
+  public boolean matchingFamily(final byte[] family, int offset, int length) {
     if (this.length == 0 || this.bytes.length == 0) {
       return false;
     }
-    int o = getFamilyOffset();
-    int l = getFamilyLength(o);
-    return Bytes.compareTo(family, 0, family.length, this.bytes, o, l) == 0;
+    return Bytes.compareTo(family, offset, length,
+        this.bytes, getFamilyOffset(), getFamilyLength()) == 0;
+  }
+
+  public boolean matchingFamily(final KeyValue other) {
+    return matchingFamily(other.getBuffer(), other.getFamilyOffset(),
+        other.getFamilyLength());
   }
 
   /**
@@ -1051,10 +1068,31 @@ public class KeyValue implements Writabl
    * @return True if matching qualifiers.
    */
   public boolean matchingQualifier(final byte [] qualifier) {
-    int o = getQualifierOffset();
-    int l = getQualifierLength();
-    return Bytes.compareTo(qualifier, 0, qualifier.length,
-        this.bytes, o, l) == 0;
+    return matchingQualifier(qualifier, 0, qualifier.length);
+  }
+
+  public boolean matchingQualifier(final byte [] qualifier, int offset, int length) {
+    return Bytes.compareTo(qualifier, offset, length,
+        this.bytes, getQualifierOffset(), getQualifierLength()) == 0;
+  }
+
+  public boolean matchingQualifier(final KeyValue other) {
+    return matchingQualifier(other.getBuffer(), other.getQualifierOffset(),
+        other.getQualifierLength());
+  }
+
+  public boolean matchingRow(final byte [] row) {
+    return matchingRow(row, 0, row.length);
+  }
+
+  public boolean matchingRow(final byte[] row, int offset, int length) {
+    return Bytes.compareTo(row, offset, length,
+        this.bytes, getRowOffset(), getRowLength()) == 0;
+  }
+
+  public boolean matchingRow(KeyValue other) {
+    return matchingRow(other.getBuffer(), other.getRowOffset(),
+        other.getRowLength());
   }
 
   /**
@@ -1080,12 +1118,12 @@ public class KeyValue implements Writabl
     int o = getFamilyOffset(rl);
     int fl = getFamilyLength(o);
     int ql = getQualifierLength(rl,fl);
-    if(Bytes.compareTo(family, 0, family.length, this.bytes, o, family.length)
+    if (Bytes.compareTo(family, 0, family.length, this.bytes, o, family.length)
         != 0) {
       return false;
     }
-    if(qualifier == null || qualifier.length == 0) {
-      if(ql == 0) {
+    if (qualifier == null || qualifier.length == 0) {
+      if (ql == 0) {
         return true;
       }
       return false;
@@ -1511,7 +1549,7 @@ public class KeyValue implements Writabl
    * Create a KeyValue that is smaller than all other possible KeyValues
    * for the given row. That is any (valid) KeyValue on 'row' would sort
    * _after_ the result.
-   * 
+   *
    * @param row - row key (arbitrary byte array)
    * @return First possible KeyValue on passed <code>row</code>
    */
@@ -1572,6 +1610,31 @@ public class KeyValue implements Writabl
   }
 
   /**
+   * Create a KeyValue for the specified row, family and qualifier that would be
+   * smaller than all other possible KeyValues that have the same row,
+   * family, qualifier.
+   * Used for seeking.
+   * @param row row key
+   * @param roffset row offset
+   * @param rlength row length
+   * @param family family name
+   * @param foffset family offset
+   * @param flength family length
+   * @param qualifier column qualifier
+   * @param qoffset qualifier offset
+   * @param qlength qualifier length
+   * @return First possible key on passed Row, Family, Qualifier.
+   */
+  public static KeyValue createFirstOnRow(final byte [] row,
+      final int roffset, final int rlength, final byte [] family,
+      final int foffset, final int flength, final byte [] qualifier,
+      final int qoffset, final int qlength) {
+    return new KeyValue(row, roffset, rlength, family,
+        foffset, flength, qualifier, qoffset, qlength,
+        HConstants.LATEST_TIMESTAMP, Type.Maximum, null, 0, 0);
+  }
+
+  /**
    * @param b
    * @return A KeyValue made of a byte array that holds the key-only part.
    * Needed to convert hfile index members to KeyValues.
@@ -1751,7 +1814,7 @@ public class KeyValue implements Writabl
 
       // if row matches, and no column in the 'left' AND put type is 'minimum',
       // then return that left is larger than right.
-      
+
       // This supports 'last key on a row' - the magic is if there is no column in the
       // left operand, and the left operand has a type of '0' - magical value,
       // then we say the left is bigger.  This will let us seek to the last key in
@@ -1826,8 +1889,8 @@ public class KeyValue implements Writabl
 
   // HeapSize
   public long heapSize() {
-    return ClassSize.align(ClassSize.OBJECT + ClassSize.REFERENCE + 
-        ClassSize.align(ClassSize.ARRAY + length) + 
+    return ClassSize.align(ClassSize.OBJECT + ClassSize.REFERENCE +
+        ClassSize.align(ClassSize.ARRAY + length) +
         (2 * Bytes.SIZEOF_INT) +
         Bytes.SIZEOF_LONG);
   }

Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Fri Aug 27 05:01:02 2010
@@ -52,7 +52,11 @@ import org.apache.hadoop.hbase.util.Writ
 import org.apache.hadoop.ipc.RemoteException;
 
 /**
- * Provides administrative functions for HBase
+ * Provides an interface to manage HBase database table metadata + general 
+ * administrative functions.  Use HBaseAdmin to create, drop, list, enable and 
+ * disable tables. Use it also to add and drop table column families. 
+ * 
+ * See {@link HTable} to add, update, and delete data from an individual table.
  */
 public class HBaseAdmin implements Abortable {
   private final Log LOG = LogFactory.getLog(this.getClass().getName());
@@ -71,10 +75,11 @@ public class HBaseAdmin implements Abort
    * Constructor
    *
    * @param conf Configuration object
-   * @throws IOException 
+   * @throws MasterNotRunningException if the master is not running
+   * @throws ZooKeeperConnectionException if unable to connect to zookeeper
    */
   public HBaseAdmin(Configuration conf)
-  throws IOException {
+  throws MasterNotRunningException, ZooKeeperConnectionException {
     this.connection = HConnectionManager.getConnection(conf);
     this.conf = conf;
     this.pause = conf.getLong("hbase.client.pause", 30 * 1000);
@@ -971,10 +976,11 @@ public class HBaseAdmin implements Abort
    * Check to see if HBase is running. Throw an exception if not.
    *
    * @param conf system configuration
-   * @throws IOException 
+   * @throws MasterNotRunningException if the master is not running
+   * @throws ZooKeeperConnectionException if unable to connect to zookeeper
    */
   public static void checkHBaseAvailable(Configuration conf)
-  throws IOException {
+  throws MasterNotRunningException, ZooKeeperConnectionException {
     Configuration copyOfConf = HBaseConfiguration.create(conf);
     copyOfConf.setInt("hbase.client.retries.number", 1);
     new HBaseAdmin(copyOfConf);

Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HBaseFsck.java Fri Aug 27 05:01:02 2010
@@ -43,6 +43,7 @@ import org.apache.hadoop.hbase.HServerIn
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.MasterNotRunningException;
+import org.apache.hadoop.hbase.ZooKeeperConnectionException;
 import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor;
 import org.apache.hadoop.hbase.ipc.HMasterInterface;
 import org.apache.hadoop.hbase.ipc.HRegionInterface;
@@ -74,15 +75,16 @@ public class HBaseFsck extends HBaseAdmi
    *
    * @param conf Configuration object
    * @throws MasterNotRunningException if the master is not running
+   * @throws ZooKeeperConnectionException if unable to connect to zookeeper
    */
   public HBaseFsck(Configuration conf) 
-    throws MasterNotRunningException, IOException {
+    throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
     super(conf);
     this.conf = conf;
 
     // setup filesystem properties
-    this.fs = FileSystem.get(conf);
     this.rootDir = new Path(conf.get(HConstants.HBASE_DIR));
+    this.fs = rootDir.getFileSystem(conf);
 
 
     // fetch information from master
@@ -249,12 +251,13 @@ public class HBaseFsck extends HBaseAdmi
     throws IOException {
 
     // make a copy of all entries in META
-    TreeMap<HRegionInfo, MetaEntry> tmp = new TreeMap<HRegionInfo, MetaEntry>(metaEntries);
+    TreeMap<HRegionInfo, MetaEntry> tmp =
+      new TreeMap<HRegionInfo, MetaEntry>(metaEntries);
     long errorCount = 0; // number of inconsistencies detected
     int showProgress = 0;
 
     // loop to contact each region server
-    for (HServerInfo rsinfo:regionServerList) {
+    for (HServerInfo rsinfo: regionServerList) {
       showProgress++;                   // one more server.
       try {
         HRegionInterface server = connection.getHRegionConnection(
@@ -276,7 +279,7 @@ public class HBaseFsck extends HBaseAdmi
         }
 
         // check to see if the existance of this region matches the region in META
-        for (HRegionInfo r:regions) {
+        for (HRegionInfo r: regions) {
           MetaEntry metaEntry = metaEntries.get(r);
 
           // this entry exists in the region server but is not in the META
@@ -317,7 +320,12 @@ public class HBaseFsck extends HBaseAdmi
 
     // all the region left in tmp are not found on any region server
     for (MetaEntry metaEntry: tmp.values()) {
-      System.out.print("\nERROR: Region " + metaEntry.getRegionNameAsString() + 
+      // An offlined region will not be present out on a regionserver.  A region
+      // is offlined if table is offlined -- will still have an entry in .META.
+      // of a region is offlined because its a parent region and its daughters
+      // still have references.
+      if (metaEntry.isOffline()) continue;
+      System.out.print("\nERROR: Region " + metaEntry.getRegionNameAsString() +
                          " is not served by any region server " +
                          " but is listed in META to be on server " + 
                          metaEntry.regionServer);

Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java Fri Aug 27 05:01:02 2010
@@ -51,6 +51,7 @@ import org.apache.hadoop.hbase.HTableDes
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.MasterAddressTracker;
 import org.apache.hadoop.hbase.MasterNotRunningException;
+import org.apache.hadoop.hbase.NotServingRegionException;
 import org.apache.hadoop.hbase.RemoteExceptionHandler;
 import org.apache.hadoop.hbase.TableNotFoundException;
 import org.apache.hadoop.hbase.ZooKeeperConnectionException;
@@ -1413,8 +1414,21 @@ public class HConnectionManager {
             LOG.debug("Failed all from " + request.address, e);
             failed.addAll(request.allPuts());
           } catch (ExecutionException e) {
-            // all go into the failed list.
-            LOG.debug("Failed all from " + request.address, e);
+            Throwable cause = e.getCause();
+            // Don't print stack trace if NSRE; NSRE is 'normal' operation.
+            if (cause instanceof NotServingRegionException) {
+              String msg = cause.getMessage();
+              if (msg != null && msg.length() > 0) {
+                // msg is the exception as a String... we just want first line.
+                msg = msg.split("[\\n\\r]+\\s*at")[0];
+              }
+              LOG.debug("Failed execution of all on " + request.address +
+                " because: " + msg);
+            } else {
+              // all go into the failed list.
+              LOG.debug("Failed execution of all on " + request.address,
+                e.getCause());
+            }
             failed.addAll(request.allPuts());
 
             // Just give up, leaving the batch put list in an untouched/semi-committed state

Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/client/HTable.java Fri Aug 27 05:01:02 2010
@@ -58,11 +58,13 @@ import java.io.DataOutput;
 
 /**
  * Used to communicate with a single HBase table.
- * <p>
+ * 
  * This class is not thread safe for writes.
  * Gets, puts, and deletes take out a row lock for the duration
  * of their operation.  Scans (currently) do not respect
  * row locking.
+ * 
+ * See {@link HBaseAdmin} to create, drop, list, enable and disable tables.
  */
 public class HTable implements HTableInterface {
   private final HConnection connection;
@@ -168,7 +170,7 @@ public class HTable implements HTableInt
    * @return the number of region servers that are currently running
    * @throws IOException if a remote or network exception occurs
    */
-  private int getCurrentNrHRS() throws IOException {
+  int getCurrentNrHRS() throws IOException {
     HBaseAdmin admin = new HBaseAdmin(this.configuration);
     return admin.getClusterStatus().getServers();
   }
@@ -553,7 +555,6 @@ public class HTable implements HTableInt
     return incrementColumnValue(row, family, qualifier, amount, true);
   }
 
-  @SuppressWarnings({"ThrowableInstanceNeverThrown"})
   public long incrementColumnValue(final byte [] row, final byte [] family,
       final byte [] qualifier, final long amount, final boolean writeToWAL)
   throws IOException {

Modified: hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java?rev=990018&r1=990017&r2=990018&view=diff
==============================================================================
--- hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java (original)
+++ hbase/branches/0.90_master_rewrite/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java Fri Aug 27 05:01:02 2010
@@ -42,8 +42,12 @@ public class BinaryPrefixComparator exte
 
   @Override
   public int compareTo(byte [] value) {
-    return Bytes.compareTo(this.value, 0, this.value.length, value, 0,
-      this.value.length);
+    if (this.value.length <= value.length) {
+      return Bytes.compareTo(this.value, 0, this.value.length, value, 0,
+          this.value.length);
+    } else {
+      return Bytes.compareTo(this.value, value);
+    }
   }
 
 }