HBase Change Log
Release 0.93.0 - Unreleased
  *DO NOT ADD ISSUES HERE ON COMMIT ANY MORE.  WE'LL GENERATE THE LIST
  FROM JIRA INSTEAD WHEN WE MAKE A RELEASE*

Release 0.92.1 - Unreleased
  BUG FIXES
   HBASE-5176  AssignmentManager#getRegion: logging nit  adds a redundant '+' (Karthik K)
   HBASE-5237  Addendum for HBASE-5160 and HBASE-4397 (Ram)
   HBASE-5235  HLogSplitter writer thread's streams not getting closed when any 
               of the writer threads has exceptions. (Ram)
   HBASE-5243  LogSyncerThread not getting shutdown waiting for the interrupted flag (Ram)
   HBASE-5255  Use singletons for OperationStatus to save memory (Benoit)
   HBASE-5345  CheckAndPut doesn't work when value is empty byte[] (Evert Arckens)
   HBASE-5466  Opening a table also opens the metatable and never closes it
               (Ashley Taylor)

  TESTS
   HBASE-5223  TestMetaReaderEditor is missing call to CatalogTracker.stop()

Release 0.92.0 - 01/23/2012
  INCOMPATIBLE CHANGES
   HBASE-2002  Coprocessors: Client side support; Support RPC interface
               changes at runtime (Gary Helmling via Andrew Purtell)
   HBASE-3677  Generate a globally unique cluster ID (changed
               ClusterStatus serialization)
   HBASE-3762  HTableFactory.releaseHTableInterface() should throw IOException
               instead of wrapping in RuntimeException (Ted Yu via garyh)
   HBASE-3629  Update our thrift to 0.6 (Moaz Reyad)
   HBASE-1502  Remove need for heartbeats in HBase
   HBASE-451   Remove HTableDescriptor from HRegionInfo (Subbu M Iyer)
   HBASE-451   Remove HTableDescriptor from HRegionInfo
               addendum that fixes TestTableMapReduce
   HBASE-3534  Action should not store or serialize regionName (Ted Yu)
   HBASE-4197  RegionServer expects all scanner to be subclasses of
               HRegion.RegionScanner (Lars Hofhansl)
   HBASE-4233  Update protobuf dependency to 2.4.0a (todd)
   HBASE-4299  Update to Avro 1.5.3 and use Avro Maven plugin to generate
               Avro classes. (Alejandro Abdelnur)
   HBASE-4369  Deprecate HConnection#getZookeeperWatcher in prep for HBASE-1762
   HBASE-4247  Add isAborted method to the Abortable interface
               (Akash Ashok)
   HBASE-4503  Purge deprecated HBaseClusterTestCase
   HBASE-4374  Up default regions size from 256M to 1G
   HBASE-4648  Bytes.toBigDecimal() doesn't use offset (Bryan Keller via Lars H)
   HBASE-4715  Remove stale broke .rb scripts from bin dir
   HBASE-3433  Remove the KV copy of every KV in Scan; introduced by HBASE-3232 (Lars H)
   HBASE-5017  Bump the default hfile.block.cache.size because of HFileV2

  BUG FIXES
   HBASE-3280  YouAreDeadException being swallowed in HRS getMaster
   HBASE-3282  Need to retain DeadServers to ensure we don't allow
               previously expired RS instances to rejoin cluster
   HBASE-3283  NPE in AssignmentManager if processing shutdown of RS who
               doesn't have any regions assigned to it
   HBASE-3173  HBase 2984 breaks ability to specify BLOOMFILTER &
               COMPRESSION via shell
   HBASE-3310  Failing creating/altering table with compression agrument from
               the HBase shell (Igor Ranitovic via Stack)
   HBASE-3317  Javadoc and Throws Declaration for Bytes.incrementBytes() is
               Wrong (Ed Kohlwey via Stack)
   HBASE-1888  KeyValue methods throw NullPointerException instead of
               IllegalArgumentException during parameter sanity check
   HBASE-3337  Restore HBCK fix of unassignment and dupe assignment for new
               master
   HBASE-3332  Regions stuck in transition after RS failure
   HBASE-3418  Increment operations can break when qualifiers are split
               between memstore/snapshot and storefiles
   HBASE-3403  Region orphaned after failure during split
   HBASE-3492  NPE while splitting table with empty column family store
   HBASE-3400  Coprocessor Support for Generic Interfaces
               (Ed Kohlwey via Gary Helmling)
   HBASE-3552  Coprocessors are unable to load if RegionServer is launched
               using a different classloader than system default
   HBASE-3578  TableInputFormat does not setup the configuration for HBase
               mapreduce jobs correctly (Dan Harvey via Stack)
   HBASE-3601  TestMasterFailover broken in TRUNK
   HBASE-3605  Fix balancer log message
   HBASE-3538  Column families allow to have slashes in name (Ian Knome via Stack)
   HBASE-3313  Table name isn't checked in isTableEnabled/isTableDisabled
               (Ted Yu via Stack)
   HBASE-3514  Speedup HFile.Writer append (Matteo Bertozzi via Ryan)
   HBASE-3665  tighten assertions for testBloomFilterSize
   HBASE-3662  REST server does not respect client supplied max versions when
               creating scanner
   HBASE-3641  LruBlockCache.CacheStats.getHitCount() is not using the
               correct variable
   HBASE-3532  HRegion#equals is broken (Ted Yu via Stack)
   HBASE-3697  Admin actions that use MetaReader to iterate regions need to
               skip offline ones
   HBASE-3583  Coprocessors: scannerNext and scannerClose hooks are called
               when HRegionInterface#get is invoked (Mingjie Lai via
               Andrew Purtell)
   HBASE-3688  Setters of class HTableDescriptor do not work properly
   HBASE-3702  Fix NPE in Exec method parameter serialization
   HBASE-3709  HFile compression not sharing configuration
   HBASE-3711  importtsv fails if rowkey length exceeds MAX_ROW_LENGTH
               (Kazuki Ohta via todd)
   HBASE-3716  Intermittent TestRegionRebalancing failure
               (Ted Yu via Stack)
   HBASE-3712  HTable.close() doesn't shutdown thread pool
               (Ted Yu via Stack)
   HBASE-3238  HBase needs to have the CREATE permission on the parent of its
               ZooKeeper parent znode (Alex Newman via Stack)
   HBASE-3728  NPE in HTablePool.closeTablePool (Ted Yu via Stack)
   HBASE-3733  MemStoreFlusher.flushOneForGlobalPressure() shouldn't
               be using TreeSet for HRegion (Ted Yu via J-D)
   HBASE-3739  HMaster.getProtocolVersion() should distinguish
               HMasterInterface and HMasterRegionInterface versions
   HBASE-3723  Major compact should be done when there is only one storefile
               and some keyvalue is outdated (Zhou Shuaifeng via Stack)
   HBASE-3624  Only one coprocessor of each priority can be loaded for a table
   HBASE-3598  Broken formatting in LRU stats output (Erik Onnen)
   HBASE-3758  Delete triggers pre/postScannerOpen upcalls of RegionObserver
               (Mingjie Lai via garyh)
   HBASE-3790  Fix NPE in ExecResult.write() with null return value
   HBASE-3781  hbase shell cannot start "NoMethodError: undefined method
               `close' for nil:NilClass" (Mikael Sitruk)
   HBASE-3802  Redundant list creation in HRegion
   HBASE-3788  Two error handlings in AssignmentManager.setOfflineInZooKeeper()
               (Ted Yu)
   HBASE-3800  HMaster is not able to start due to AlreadyCreatedException
   HBASE-3806  distributed log splitting double escapes task names
               (Prakash Khemani)
   HBASE-3819  TestSplitLogWorker has too many SLWs running -- makes for
               contention and occasional failures
   HBASE-3210  HBASE-1921 for the new master
   HBASE-3827  hbase-1502, removing heartbeats, broke master joining a running
               cluster and was returning master hostname for rs to use
   HBASE-3829  TestMasterFailover failures in jenkins
   HBASE-3843  splitLogWorker starts too early (Prakash Khemani)
   HBASE-3838  RegionCoprocesorHost.preWALRestore throws npe in case there is
               no RegionObserver registered (Himanshu Vashishtha)
   HBASE-3847  Turn off DEBUG logging of RPCs in WriteableRPCEngine on TRUNK
   HBASE-3777  Redefine Identity Of HBase Configuration (Karthick Sankarachary)
   HBASE-3849  Fix master ui; hbase-1502 broke requests/second
   HBASE-3853  Fix TestInfoServers to pass after HBASE-3835 (todd)
   HBASE-3862  Race conditions in aggregate calculation (John Heitmann)
   HBASE-3865  Failing TestWALReplay
   HBASE-3864  Rename of hfile.min.blocksize.size in HBASE-2899 reverted in
               HBASE-1861 (Aaron T. Myers)
   HBASE-3876  TestCoprocessorInterface.testCoprocessorInterface broke on
               jenkins and local
   HBASE-3897  Docs (notsoquick guide) suggest invalid XML (Philip Zeyliger)
   HBASE-3898  TestSplitTransactionOnCluster broke in TRUNK
   HBASE-3826  Minor compaction needs to check if still over
               compactionThreshold after compacting (Nicolas Spiegelberg)  
   HBASE-3912  [Stargate] Columns not handle by Scan
   HBASE-3903  A successful write to client write-buffer may be lost or not
               visible (Doug Meil)
   HBASE-3894  Thread contention over row locks set monitor (Dave Latham)
   HBASE-3959  hadoop-snappy version in the pom.xml is incorrect
               (Alejandro Abdelnur)
   HBASE-3971  Compression.java uses ClassLoader.getSystemClassLoader()
               to load codec (Alejandro Abdelnur)
   HBASE-3979  Trivial fixes in code, document (Ming Ma)
   HBASE-3794  Ability to Discard Bad HTable Puts
   HBASE-3923  HBASE-1502 Broke Shell's status 'simple' and 'detailed'
   HBASE-3978  Rowlock lease renew doesn't work when custom coprocessor
               indicates to bypass default action (Ming Ma)
   HBASE-3963  Schedule all log-spliiting at startup all at once (mingjian)
   HBASE-3983  list command in shell seems broken
   HBASE-3793  HBASE-3468 Broke checkAndPut with null value (Ming Ma)
   HBASE-3889  NPE in Distributed Log Splitting (Anirudh Todi)
   HBASE-4000  You can't specify split points when you create a table in
               the shell (Joey Echeverria)
   HBASE-4029  Inappropriate checking of Logging Mode in HRegionServer
               (Akash Ashok via Ted Yu)
   HBASE-4037  Add timeout annotations to preempt surefire killing
               all tests
   HBASE-4024  Major compaction may not be triggered, even though region
               server log says it is triggered (Ted Yu)
   HBASE-4016  HRegion.incrementColumnValue() doesn't have a consistent
               behavior when the field that we are incrementing is less
               than 8 bytes long (Li Pi)
   HBASE-4012  Further optimize byte comparison methods (Ted Yu)
   HBASE-4037  Add timeout annotations to preempt surefire killing
               all tests - TestFullLogReconstruction
   HBASE-4051  [Coprocessors] Table coprocessor loaded twice when region is
               initialized
   HBASE-4059  If a region is split during RS shutdown process, the daughter
               regions are NOT made online by master
   HBASE-3904  HBA.createTable(final HTableDescriptor desc, byte [][] splitKeys)
               should be synchronous
   HBASE-4053  Most of the regions were added into AssignmentManager#servers twice
   HBASE-4061  getTableDirs is missing directories to skip
   HBASE-3867  when cluster is stopped and server which hosted meta region is
               removed from cluster, master breaks down after restarting cluster.
   HBASE-4074  When a RS has hostname with uppercase letter, there are two
               RS entries in master (Weihua via Ted Yu)
   HBASE-4077  Deadlock if WrongRegionException is thrown from getLock in
               HRegion.delete (Adam Warrington via Ted Yu)
   HBASE-3893  HRegion.internalObtainRowLock shouldn't wait forever
   HBASE-4075  A bug in TestZKBasedOpenCloseRegion (Jieshan Bean via Ted Yu)
   HBASE-4087  HBaseAdmin should perform validation of connection it holds
   HBASE-4052  Enabling a table after master switch does not allow table scan,
               throwing NotServingRegionException (ramkrishna via Ted Yu)
   HBASE-4112  Creating table may throw NullPointerException (Jinchao via Ted Yu)
   HBASE-4093  When verifyAndAssignRoot throws exception, the deadServers state
               cannot be changed (fulin wang via Ted Yu)
   HBASE-4118  method regionserver.MemStore#updateColumnValue: the check for 
               qualifier and family is missing (N Keywal via Ted Yu)
   HBASE-4127  Don't modify table's name away in HBaseAdmin
   HBASE-4105  Stargate does not support Content-Type: application/json and
               Content-Encoding: gzip in parallel
   HBASE-4116  [stargate] StringIndexOutOfBoundsException in row spec parse
               (Allan Yan)
   HBASE-3845  data loss because lastSeqWritten can miss memstore edits
               (Prakash Khemani and ramkrishna.s.vasudevan)
   HBASE-4083  If Enable table is not completed and is partial, then scanning of
               the table is not working (ramkrishna.s.vasudevan)
   HBASE-4138  If zookeeper.znode.parent is not specifed explicitly in Client
               code then HTable object loops continuously waiting for the root region
               by using /hbase as the base node.(ramkrishna.s.vasudevan)
   HBASE-4032  HBASE-451 improperly breaks public API HRegionInfo#getTableDesc
   HBASE-4003  Cleanup Calls Conservatively On Timeout (Karthick)
   HBASE-3857  Fix TestHFileBlock.testBlockHeapSize test failure (Mikhail)
   HBASE-4150  Don't enforce pool size limit with ThreadLocalPool
               (Karthick Sankarachary via garyh)
   HBASE-4171  HBase shell broken in trunk (Lars Hofhansl)
   HBASE-4162  Fix TestHRegionInfo.testGetSetOfHTD: delete /tmp/hbase-<username>
               if it already exists (Mikhail Bautin)
   HBASE-4179  Failed to run RowCounter on top of Hadoop branch-0.22
               (Michael Weng)
   HBASE-4181  HConnectionManager can't find cached HRegionInterface and makes clients
               work very slow (Jia Liu)
   HBASE-4156  ZKConfig defaults clientPort improperly (Michajlo Matijkiw)
   HBASE-4184  CatalogJanitor doesn't work properly when "fs.default.name" isn't
               set in config file (Ming Ma)
   HBASE-4186  No region is added to regionsInTransitionInRS
   HBASE-4194  RegionSplitter: Split on under-loaded region servers first
   HBASE-2399  Forced splits only act on the first family in a table (Ming Ma)
   HBASE-4211  Do init-sizing of the StringBuilder making a ServerName
               (Benoît Sigoure)
   HBASE-4175  Fix FSUtils.createTableDescriptor() (Ramkrishna)
   HBASE-4008  Problem while stopping HBase (Akash Ashok)
   HBASE-4065  TableOutputFormat ignores failure to create table instance
               (Brock Noland)
   HBASE-4167  Potential leak of HTable instances when using HTablePool with
               PoolType.ThreadLocal (Karthick Sankarachary)
   HBASE-4239  HBASE-4012 introduced duplicate variable Bytes.LONG_BYTES
   HBASE-4225  NoSuchColumnFamilyException in multi doesn't say which family
               is bad (Ramkrishna Vasudevan)
   HBASE-4220  Lots of DNS queries from client
   HBASE-4253  Intermittent test failure because of missing config parameter in new
               HTable(tablename) (Ramkrishna)
   HBASE-4217  HRS.closeRegion should be able to close regions with only
               the encoded name (ramkrishna.s.vasudevan)
   HBASE-3229  HBASE-3229 Table creation, though using "async" call to master,
               can actually run for a while and cause RPC timeout (Ming Ma)
   HBASE-4252  TestLogRolling's low-probability failure (Jieshan Bean)
   HBASE-4278  Race condition in Slab.java that occurs due to spinlock unlocking
               early (Li Pi)
   HBASE-4269  Add tests and restore semantics to TableInputFormat/TableRecordReader
               (Jonathan Hsieh)
   HBASE-4290  HLogSplitter doesn't mark its MonitoredTask as complete in
               non-distributed case (todd)
   HBASE-4303  HRegionInfo.toString has bad quoting (todd)
   HBASE-4307  race condition in CacheTestUtils (Li Pi)
   HBASE-4310  SlabCache metrics bugfix (Li Pi)
   HBASE-4283  HBaseAdmin never recovers from restarted cluster (Lars Hofhansl)
   HBASE-4315  RPC logging too verbose (todd)
   HBASE-4273  java.lang.NullPointerException when a table is being disabled and
               HMaster restarts (Ming Ma)
   HBASE-4027  Off Heap Cache never creates Slabs (Li Pi)
   HBASE-4265  zookeeper.KeeperException$NodeExistsException if HMaster restarts
               while table is being disabled (Ming Ma)
   HBASE-4338  Package build for rpm and deb are broken (Eric Yang)
   HBASE-4309  slow query log metrics spewing warnings (Riley Patterson)
   HBASE-4302  Only run Snappy compression tests if Snappy is available
               (Alejandro Abdelnur via todd)
   HBASE-4271  Clean up coprocessor handling of table operations
               (Ming Ma via garyh)
   HBASE-4341  HRS#closeAllRegions should take care of HRS#onlineRegions's
               weak consistency (Jieshan Bean)
   HBASE-4297  TableMapReduceUtil overwrites user supplied options
               (Jan Lukavsky)
   HBASE-4015  Refactor the TimeoutMonitor to make it less racy
               (ramkrishna.s.vasudevan)
   HBASE-4350  Fix a Bloom filter bug introduced by HFile v2 and
               TestMultiColumnScanner that caught it (Mikhail Bautin)
   HBASE-4007  distributed log splitting can get indefinitely stuck
               (Prakash Khemani)
   HBASE-4301  META migration from 0.90 to trunk fails (Subbu Iyer)
   HBASE-4331  Bypassing default actions in prePut fails sometimes with
               HTable client (Lars Hofhansl via garyh)
   HBASE-4340  Hbase can't balance if ServerShutdownHandler encountered
               exception (Jinchao Gao)
   HBASE-4394  Add support for seeking hints to FilterList
   HBASE-4406  TestOpenRegionHandler failing after HBASE-4287 (todd)
   HBASE-4330  Fix races in slab cache (Li Pi & Todd)
   HBASE-4383  SlabCache reports negative heap sizes (Li Pi)
   HBASE-4351  If from Admin we try to unassign a region forcefully,
               though a valid region name is given the master is not able
               to identify the region to unassign (Ramkrishna)
   HBASE-4363  [replication] ReplicationSource won't close if failing
               to contact the sink (JD and Lars Hofhansl)
   HBASE-4390  [replication] ReplicationSource's UncaughtExceptionHandler
               shouldn't join
   HBASE-4395  EnableTableHandler races with itself
   HBASE-4414  Region splits by size not being triggered
   HBASE-4322  HBASE-4322 [hbck] Update checkIntegrity/checkRegionChain
               to present more accurate region split problem 
               (Jon Hseih)
   HBASE-4417  HBaseAdmin.checkHBaseAvailable() doesn't close ZooKeeper connections
               (Stefan Seelmann)
   HBASE-4195  Possible inconsistency in a memstore read after a reseek,
               possible performance improvement (nkeywal)
   HBASE-4420  MasterObserver preMove() and postMove() should throw
               IOException instead of UnknownRegionException
   HBASE-4419  Resolve build warning messages (Praveen Patibandia)
   HBASE-4428  Two methods in CacheTestUtils don't call setDaemon() on the threads
   HBASE-4400  .META. getting stuck if RS hosting it is dead and znode state is in
               RS_ZK_REGION_OPENED (Ramkrishna)
   HBASE-3421  Very wide rows -- 30M plus -- cause us OOME (Nate Putnam)
   HBASE-4153  Handle RegionAlreadyInTransitionException in AssignmentManager
               (Ramkrishna)
   HBASE-4452  Possibility of RS opening a region though tickleOpening fails due to
               znode version mismatch (Ramkrishna)
   HBASE-4446  Rolling restart RSs scenario, regions could stay in OPENING state
               (Ming Ma)
   HBASE-4468  Wrong resource name in an error massage: webapps instead of
               hbase-webapps (nkeywal)
   HBASE-4472  MiniHBaseCluster.shutdown() doesn't work if no active master
   HBASE-4455  Rolling restart RSs scenario, -ROOT-, .META. regions are lost in
               AssignmentManager (Ming Ma)
   HBASE-4513  NOTICES.txt refers to Facebook for Thrift
   HBASE-3130  [replication] ReplicationSource can't recover from session
               expired on remote clusters (Chris Trezzo via JD)
   HBASE-4212  TestMasterFailover fails occasionally (Gao Jinchao)
   HBASE-4412  No need to retry scan operation on the same server in case of
               RegionServerStoppedException (Ming Ma)
   HBASE-4476  Compactions must fail if column tracker gets columns out of order
               (Mikhail Bautin)
   HBASE-4209  The HBase hbase-daemon.sh SIGKILLs master when stopping it
               (Roman Shaposhnik)
   HBASE-4496  HFile V2 does not honor setCacheBlocks when scanning (Lars and Mikhail)
   HBASE-4531  hbase-4454 failsafe broke mvn site; back it out or fix
               (Akash Ashok)
   HBASE-4334  HRegion.get never validates row (Lars Hofhansl)
   HBASE-4494  AvroServer:: get fails with NPE on a non-existent row
               (Kay Kay)
   HBASE-4481  TestMergeTool failed in 0.92 build 20
   HBASE-4386  Fix a potential NPE in TaskMonitor (todd)
   HBASE-4402  Retaining locality after restart broken
   HBASE-4482  Race Condition Concerning Eviction in SlabCache (Li Pi)
   HBASE-4547  TestAdmin failing in 0.92 because .tableinfo not found
   HBASE-4540  OpenedRegionHandler is not enforcing atomicity of the operation
               it is performing(Ram)
   HBASE-4335  Splits can create temporary holes in .META. that confuse clients
               and regionservers (Lars H)
   HBASE-4555  TestShell seems passed, but actually errors seen in test output
               file (Mingjie Lai)
   HBASE-4582  Store.java cleanup (failing TestHeapSize and has warnings)
   HBASE-4556  Fix all incorrect uses of InternalScanner.next(...) (Lars H)
   HBASE-4078  Validate store files after flush/compaction
   HBASE-3417  CacheOnWrite is using the temporary output path for block
               names, need to use a more consistent block naming scheme (jgray)
   HBASE-4551  Fix pom and some test cases to compile and run against
               Hadoop 0.23 (todd)
   HBASE-3446  ProcessServerShutdown fails if META moves, orphaning lots of
               regions
   HBASE-4589  CacheOnWrite broken in some cases because it can conflict
               with evictOnClose (jgray)
   HBASE-4579  CST.requestCompaction semantics changed, logs are now
               spammed when too many store files
   HBASE-4620  I broke the build when I submitted HBASE-3581 (Send length
               of the rpc response)
   HBASE-4621  TestAvroServer fails quite often intermittently (Akash Ashok)
   HBASE-4378  [hbck] Does not complain about regions with startkey==endkey.
               (Jonathan Hsieh)
   HBASE-4459  HbaseObjectWritable code is a byte, we will eventually run out of codes
   HBASE-4430  Disable TestSlabCache and TestSingleSizedCache temporarily to
               see if these are cause of build box failure though all tests
               pass (Li Pi)
   HBASE-4510  Check and workaround usage of internal HDFS APIs in HBase
               (Harsh)
   HBASE-4595  HFilePrettyPrinter Scanned kv count always 0 (Matteo Bertozzi)
   HBASE-4580  Some invalid zk nodes were created when a clean cluster restarts
               (Gaojinchao)
   HBASE-4588  The floating point arithmetic to validate memory allocation
               configurations need to be done as integers (dhruba)
   HBASE-4647  RAT finds about 40 files missing licenses
   HBASE-4642  Add Apache License Header
   HBASE-4591  TTL for old HLogs should be calculated from last modification time.
   HBASE-4578  NPE when altering a table that has moving regions (gaojinchao)
   HBASE-4070  Improve region server metrics to report loaded coprocessors to
               master (Eugene Koontz via apurtell)
   HBASE-3512  Shell support for listing currently loaded coprocessors (Eugene
               Koontz via apurtell)
   HBASE-4670  Fix javadoc warnings
   HBASE-4367  Deadlock in MemStore flusher due to JDK internally synchronizing
               on current thread
   HBASE-4645  Edits Log recovery losing data across column families
   HBASE-4634  "test.build.data" property overused leading to write data at the
               wrong place (nkeywal)
   HBASE-4388  Second start after migration from 90 to trunk crashes
   HBASE-4685  TestDistributedLogSplitting.testOrphanLogCreation failing because
               of ArithmeticException: / by zero.
   HBASE-4300  Start of new-version master fails if old master's znode is
               hanging around
   HBASE-4679  Thrift null mutation error
   HBASE-4304  requestsPerSecond counter stuck at 0 (Li Pi)
   HBASE-4692  HBASE-4300 broke the build
   HBASE-4641  Block cache can be mistakenly instantiated on Master (jgray)
   HBASE-4687  regionserver may miss zk-heartbeats to master when replaying
               edits at region open (prakash via jgray)
   HBASE-4701  TestMasterObserver fails up on jenkins
   HBASE-4700  TestSplitTransactionOnCluster fails on occasion when it tries
               to move a region
   HBASE-4613  hbase.util.Threads#threadDumpingIsAlive sleeps 1 second,
               slowing down the shutdown by 0.5s
   HBASE-4552  multi-CF bulk load is not atomic across column families (Jonathan Hsieh)
   HBASE-4710  UnknownProtocolException should abort client retries
   HBASE-4695  WAL logs get deleted before region server can fully flush
               (gaojinchao)
   HBASE-4708  Revert safemode related pieces of hbase-4510 (Harsh J)
   HBASE-3515  [replication] ReplicationSource can miss a log after RS comes out of GC
   HBASE-4713  Raise debug level to warn on ExecutionException in
               HConnectionManager$HConnectionImplementation (Lucian George Iordache)
   HBASE-4716  Improve locking for single column family bulk load
   HBASE-4609  ThriftServer.getRegionInfo() is expecting old ServerName format, need to
               use new Addressing class instead (Jonathan Gray)
   HBASE-4719  HBase script assumes pre-Hadoop 0.21 layout of jar files
               (Roman Shposhnik)
   HBASE-4553  The update of .tableinfo is not atomic; we remove then rename
   HBASE-4725  NPE in AM#updateTimers
   HBASE-4745  LRU statistics thread should be a daemon
   HBASE-4749  TestMasterFailover#testMasterFailoverWithMockedRITOnDeadRS
               occasionally fails
   HBASE-4753  org.apache.hadoop.hbase.regionserver.TestHRegionInfo#testGetSetOfHTD
               throws NPE on trunk (nkeywal)
   HBASE-4754  FSTableDescriptors.getTableInfoPath() should handle FileNotFoundException
   HBASE-4740  [bulk load] the HBASE-4552 API can't tell if errors on region server are recoverable
               (Jonathan Hsieh)
   HBASE-4741  Online schema change doesn't return errors
   HBASE-4734  [bulk load] Warn if bulk load directory contained no files
   HBASE-4723  Loads of NotAllMetaRegionsOnlineException traces when starting
               the master
   HBASE-4511  There is data loss when master failovers
   HBASE-4577  Region server reports storefileSizeMB bigger than
               storefileUncompressedSizeMB (gaojinchao)
   HBASE-4478  Improve AssignmentManager.handleRegion so that it can process certain ZK state
               in the case of RS offline
   HBASE-4777  Write back to client 'incompatible' if we show up with wrong version
   HBASE-4775  Remove -ea from all but tests; enable it if you need it testing
   HBASE-4784  Void return types not handled correctly for CoprocessorProtocol
               methods
   HBASE-4792  SplitRegionHandler doesn't care if it deletes the znode or not,
               leaves the parent region stuck offline
   HBASE-4793  HBase shell still using deprecated methods removed in HBASE-4436
   HBASE-4801  alter_status shell prints sensible message at completion
   HBASE-4796  Race between SplitRegionHandlers for the same region kills the master
   HBASE-4816  Regionserver wouldn't go down because split happened exactly at same
               time we issued bulk user region close call on our way out
   HBASE-4815  Disable online altering by default, create a config for it
   HBASE-4623  Remove @deprecated Scan methods in 0.90 from TRUNK and 0.92
   HBASE-4842  [hbck] Fix intermittent failures on TestHBaseFsck.testHBaseFsck
               (Jon Hsieh)
   HBASE-4308  Race between RegionOpenedHandler and AssignmentManager (Ram)
   HBASE-4857  Recursive loop on KeeperException in
               AuthenticationTokenSecretManager/ZKLeaderManager
   HBASE-4739  Master dying while going to close a region can leave it in transition
               forever (Gao Jinchao)
   HBASE-4855  SplitLogManager hangs on cluster restart due to batch.installed doubly counted
   HBASE-4877  TestHCM failing sporadically on jenkins and always for me on an
               ubuntu machine
   HBASE-4878  Master crash when splitting hlog may cause data loss (Chunhui Shen)
   HBASE-4945  NPE in HRegion.bulkLoadHFiles (Andrew P and Lars H)
   HBASE-4942  HMaster is unable to start of HFile V1 is used (Honghua Zhu)
   HBASE-4610  Port HBASE-3380 (Master failover can split logs of live servers) to 92/trunk
   HBASE-4946  HTable.coprocessorExec (and possibly coprocessorProxy) does not work with
               dynamically loaded coprocessors (Andrei Dragomir)
   HBASE-5026  Add coprocessor hook to HRegionServer.ScannerListener.leaseExpired()
   HBASE-4935  hbase 0.92.0 doesn't work going against 0.20.205.0, its packaged hadoop
   HBASE-5078  DistributedLogSplitter failing to split file because it has edits for
               lots of regions
   HBASE-5077  SplitLogWorker fails to let go of a task, kills the RS
   HBASE-5096  Replication does not handle deletes correctly. (Lars H)
   HBASE-5103  Fix improper master znode deserialization (Jonathan Hsieh)
   HBASE-5099  ZK event thread waiting for root region assignment may block server
               shutdown handler for the region sever the root region was on (Jimmy)
   HBASE-5100  Rollback of split could cause closed region to be opened again (Chunhui)
   HBASE-4397  -ROOT-, .META. tables stay offline for too long in recovery phase after all RSs
               are shutdown at the same time (Ming Ma)
   HBASE-5094  The META can hold an entry for a region with a different server name from the one  
               actually in the AssignmentManager thus making the region inaccessible. (Ram)
   HBASE-5081  Distributed log splitting deleteNode races against splitLog retry (Prakash)
   HBASE-4357  Region stayed in transition - in closing state (Ming Ma)
   HBASE-5088  A concurrency issue on SoftValueSortedMap (Jieshan Bean and Lars H)
   HBASE-5152  Region is on service before completing initialization when doing rollback of split,
               it will affect read correctness (Chunhui)
   HBASE-5137  MasterFileSystem.splitLog() should abort even if waitOnSafeMode() throws IOException(Ted)
   HBASE-5121  MajorCompaction may affect scan's correctness (chunhui shen and Lars H)
   HBASE-5143  Fix config typo in pluggable load balancer factory (Harsh J)
   HBASE-5196  Failure in region split after PONR could cause region hole (Jimmy Xiang)

  TESTS
   HBASE-4450  test for number of blocks read: to serve as baseline for expected
               blocks read and for catching regressions (Kannan)
   HBASE-4492  TestRollingRestart fails intermittently (Ted Yu and Ram)
   HBASE-4512  JVMClusterUtil throwing wrong exception when master thread cannot be created (Ram)
   HBASE-4479  TestMasterFailover failure in Hbase-0.92#17(Ram)
   HBASE-4651  ConcurrentModificationException might be thrown in
               TestHCM.testConnectionUniqueness (Jinchao)
   HBASE-4518  TestServerCustomProtocol fails intermittently
   HBASE-4790  Occasional TestDistributedLogSplitting failure (Jinchao)
   HBASE-4864  TestMasterObserver#testRegionTransitionOperations occasionally
               fails (Gao Jinchao)
   HBASE-4868  TestOfflineMetaRebuildBase#testMetaRebuild occasionally fails
               (Gao Jinchao)
   HBASE-4874  Run tests with non-secure random, some tests hang otherwise (Lars H)
   HBASE-5112  TestReplication#queueFailover flaky due to potentially
               uninitialized Scan (Jimmy Xiang)
   HBASE-5113  TestDrainingServer expects round robin region assignment but misses a
               config parameter
   HBASE-5105  TestImportTsv failed with hadoop 0.22 (Ming Ma)

  IMPROVEMENTS
   HBASE-3290  Max Compaction Size (Nicolas Spiegelberg via Stack)  
   HBASE-3292  Expose block cache hit/miss/evict counts into region server
               metrics
   HBASE-2936  Differentiate between daemon & restart sleep periods
   HBASE-3316  Add support for Java Serialization to HbaseObjectWritable
               (Ed Kohlwey via Stack)
   HBASE-1861  Multi-Family support for bulk upload tools
   HBASE-3308  SplitTransaction.splitStoreFiles slows splits a lot
   HBASE-3328  Added Admin API to specify explicit split points
   HBASE-3377  Upgrade Jetty to 6.1.26
   HBASE-3393  Update Avro gateway to use Avro 1.4.1 and the new
               server.join() method (Jeff Hammerbacher via Stack)
   HBASE-3433  KeyValue API to explicitly distinguish between deep & shallow
               copies
   HBASE-3522  Unbundle our RPC versioning; rather than a global for all 4
               Interfaces -- region, master, region to master, and
               coprocesssors -- instead version each individually
   HBASE-3520  Update our bundled hadoop from branch-0.20-append to latest
               (rpc version 43)
   HBASE-3563  [site] Add one-page-only version of hbase doc
   HBASE-3564  DemoClient.pl - a demo client in Perl
   HBASE-3560  the hbase-default entry of "hbase.defaults.for.version" 
               causes tests not to run via not-maven
   HBASE-3513  upgrade thrift to 0.5.0 and use mvn version
   HBASE-3533  Allow HBASE_LIBRARY_PATH env var to specify extra locations
               of native lib
   HBASE-3631  CLONE - HBase 2984 breaks ability to specify BLOOMFILTER &
               COMPRESSION via shell
   HBASE-3630  DemoClient.Java is outdated (Moaz Reyed via Stack)
   HBASE-3618  Add to HBase book, 'schema' chapter - pre-creating regions and
               key types (Doug Meil via Stack)
   HBASE-2495  Allow record filtering with selected row key values in HBase
               Export (Subbu M Iyer via Stack)
   HBASE-3440  Clean out load_table.rb and make sure all roads lead to
               completebulkload tool (Vidhyashankar Venkataraman via Stack)
   HBASE-3653  Parallelize Server Requests on HBase Client
   HBASE-3657  reduce copying of HRegionInfo's (Ted Yu via Stack)
   HBASE-3422  Balancer will try to rebalance thousands of regions in one go;
               needs an upper bound added (Ted Yu via Stack)
   HBASE-3676  Update region server load for AssignmentManager through
               regionServerReport() (Ted Yu via Stack)
   HBASE-3468  Enhance checkAndPut and checkAndDelete with comparators
   HBASE-3683  NMapInputFormat should use a different config param for
               number of maps
   HBASE-3673  Reduce HTable Pool Contention Using Concurrent Collections
               (Karthick Sankarachary via Stack)
   HBASE-3474  HFileOutputFormat to use column family's compression algorithm
   HBASE-3541  REST Multi Gets (Elliott Clark via Stack)
   HBASE-3052  Add ability to have multiple ZK servers in a quorum in
               MiniZooKeeperCluster for test writing (Liyin Tang via Stack)
   HBASE-3693  isMajorCompaction() check triggers lots of listStatus DFS RPC
               calls from HBase (Liyin Tang via Stack)
   HBASE-3717  deprecate HTable isTableEnabled() methods in favor of
               HBaseAdmin methods (David Butler via Stack)
   HBASE-3720  Book.xml - porting conceptual-view / physical-view sections of
               HBaseArchitecture wiki (Doug Meil via Stack)
   HBASE-3705  Allow passing timestamp into importtsv (Andy Sautins via Stack)
   HBASE-3715  Book.xml - adding architecture section on client, adding section
               on spec-ex under mapreduce (Doug Meil via Stack)
   HBASE-3684  Support column range filter (Jerry Chen via Stack)
   HBASE-3647  Distinguish read and write request count in region
               (Ted Yu via Stack)
   HBASE-3704  Show per region request count in table.jsp
               (Ted Yu via Stack)
   HBASE-3694  high multiput latency due to checking global mem store size
               in a synchronized function (Liyin Tang via Stack)
   HBASE-3710  Book.xml - fill out descriptions of metrics
               (Doug Meil via Stack)
   HBASE-3738  Book.xml - expanding Architecture Client section
               (Doug Meil via Stack)
   HBASE-3587  Eliminate use of read-write lock to guard loaded
               coprocessor collection
   HBASE-3729  Get cells via shell with a time range predicate
               (Ted Yu via Stack)
   HBASE-3764  Book.xml - adding 2 FAQs (SQL and arch question)
   HBASE-3770  Make FilterList accept var arg Filters in its constructor
               as a convenience (Erik Onnen via Stack)
   HBASE-3769  TableMapReduceUtil is inconsistent with other table-related
               classes that accept byte[] as a table name (Erik Onnen via Stack)
   HBASE-3768  Add best practice to book for loading row key only
               (Erik Onnen via Stack)
   HBASE-3765  metrics.xml - small format change and adding nav to hbase
               book metrics section (Doug Meil)
   HBASE-3759  Eliminate use of ThreadLocals for CoprocessorEnvironment
               bypass() and complete() 
   HBASE-3701  revisit ArrayList creation (Ted Yu via Stack)
   HBASE-3753  Book.xml - architecture, adding more Store info (Doug Meil)
   HBASE-3784  book.xml - adding small subsection in architecture/client on
               filters (Doug Meil)
   HBASE-3785  book.xml - moving WAL into architecture section, plus adding
               more description on what it does (Doug Meil)
   HBASE-3699  Make RegionServerServices and MasterServices extend Server
               (Erik Onnen)
   HBASE-3757  Upgrade to ZK 3.3.3
   HBASE-3609  Improve the selection of regions to balance; part 2 (Ted Yu)
   HBASE-2939  Allow Client-Side Connection Pooling (Karthik Sankarachary)
   HBASE-3798  [REST] Allow representation to elide row key and column key
   HBASE-3812  Tidy up naming consistency and documentation in coprocessor
               framework (Mingjie Lai)
   HBASE-1512  Support aggregate functions (Himanshu Vashishtha)
   HBASE-3796  Per-Store Enties in Compaction Queue
   HBASE-3670  Fix error handling in get(List<Get> gets)
               (Harsh J Chouraria)
   HBASE-3835  Switch master and region server pages to Jamon-based templates
   HBASE-3721  Speedup LoadIncrementalHFiles (Ted Yu)
   HBASE-3855  Performance degradation of memstore because reseek is linear
               (dhruba borthakur)
   HBASE-3797  StoreFile Level Compaction Locking
   HBASE-1476  Multithreaded Compactions
   HBASE-3877  Determine Proper Defaults for Compaction ThreadPools
   HBASE-3880  Make mapper function in ImportTSV plug-able (Bill Graham)
   HBASE-2938  HBASE-2938 Add Thread-Local Behavior To HTable Pool
               (Karthick Sankarachary)
   HBASE-3811  Allow adding attributes to Scan (Alex Baranau)
   HBASE-3841  HTable and HTableInterface docs are inconsistent with
               one another (Harsh J Chouraria)
   HBASE-2937  Facilitate Timeouts In HBase Client (Karthick Sankarachary)
   HBASE-3921  Allow adding arbitrary blobs to Put (dhruba borthakur)
   HBASE-3931  Allow adding attributes to Get
   HBASE-3942  The thrift scannerOpen functions should support row caching
               (Adam Worthington)
   HBASE-2556  Add convenience method to HBaseAdmin to get a collection of
               HRegionInfo objects for each table (Ming Ma)
   HBASE-3952  Guava snuck back in as a dependency via hbase-3777
   HBASE-3808  Implement Executor.toString for master handlers at least
               (Brock Noland)
   HBASE-3873  Mavenize Hadoop Snappy JAR/SOs project dependencies
               (Alejandro Abdelnur)
   HBASE-3941  "hbase version" command line should print version info
               (Jolly Chen)
   HBASE-3961  Add Delete.setWriteToWAL functionality (Bruno Dumon)
   HBASE-3928  Some potential performance improvements to Bytes/KeyValue
   HBASE-3982  Improvements to TestHFileSeek
   HBASE-3940  HBase daemons should log version info at startup and possibly
               periodically (Li Pi)
   HBASE-3789  Cleanup the locking contention in the master
   HBASE-3927  Display total uncompressed byte size of a region in web UI
   HBASE-4011  New MasterObserver hook: post startup of active master
   HBASE-3994  SplitTransaction has a window where clients can
               get RegionOfflineException
   HBASE-4010  HMaster.createTable could be heavily optimized
   HBASE-3506  Ability to disable, drop and enable tables using regex expression
               (Joey Echeverria via Ted Yu)
   HBASE-3516  Coprocessors: add test cases for loading coprocessor jars
               (Mingjie Lai via garyh)
   HBASE-4036  Implementing a MultipleColumnPrefixFilter (Anirudh Todi)
   HBASE-4048  [Coprocessors] Support configuration of coprocessor at load time
   HBASE-3240  Improve documentation of importtsv and bulk loads.
               (Aaron T. Myers via todd)
   HBASE-4054  Usability improvement to HTablePool (Daniel Iancu)
   HBASE-4079  HTableUtil - helper class for loading data (Doug Meil via Ted Yu)
   HBASE-3871  Speedup LoadIncrementalHFiles by parallelizing HFile splitting
   HBASE-4081  Issues with HRegion.compactStores methods (Ming Ma)
   HBASE-3465  Hbase should use a HADOOP_HOME environment variable if available
               (Alejandro Abdelnur)
   HBASE-3899  enhance HBase RPC to support free-ing up server handler threads
               even if response is not ready (Vlad Dogaru)
   HBASE-4142  Advise against large batches in javadoc for HTable#put(List<Put>)
   HBASE-4139  [stargate] Update ScannerModel with support for filter package
               additions
   HBASE-1938  Make in-memory table scanning faster (nkeywal)
   HBASE-4143  HTable.doPut(List) should check the writebuffer length every so often
               (Doug Meil via Ted Yu)
   HBASE-3065  Retry all 'retryable' zk operations; e.g. connection loss (Liyin Tang)
   HBASE-3810  Registering a coprocessor in HTableDescriptor should be easier
               (Mingjie Lai via garyh)
   HBASE-4158  Upgrade pom.xml to surefire 2.9 (Aaron Kushner & Mikhail)
   HBASE-3899  Add ability for delayed RPC calls to set return value
               immediately at call return. (Vlad Dogaru via todd)
   HBASE-4169  FSUtils LeaseRecovery for non HDFS FileSystems (Lohit Vijayarenu)
   HBASE-3807  Fix units in RS UI metrics (subramanian raghunathan)
   HBASE-4193  Enhance RPC debug logging to provide more details on
               call contents
   HBASE-4190  Coprocessors: pull up some cp constants from cp package to
               o.a.h.h.HConstants (Mingjie Lai)
   HBASE-4227  Modify the webUI so that default values of column families are
               not shown (Nileema Shingte)
   HBASE-4229  Replace Jettison JSON encoding with Jackson in HLogPrettyPrinter
               (Riley Patterson)
   HBASE-4230  Compaction threads need names
   HBASE-4236  Don't lock the stream while serializing the response (Benoit Sigoure)
   HBASE-4237  Directly remove the call being handled from the map of outstanding RPCs
               (Benoit Sigoure)
   HBASE-4199  blockCache summary - backend (Doug Meil)
   HBASE-4240  Allow Loadbalancer to be pluggable
   HBASE-4244  Refactor bin/hbase help
   HBASE-4241  Optimize flushing of the Memstore (Lars Hofhansl)
   HBASE-4248  Enhancements for Filter Language exposing HBase filters through
               the Thrift API (Anirudh Todi)
   HBASE-3900  Expose progress of a major compaction in UI and/or in shell
               (Brad Anderson)
   HBASE-4291  Improve display of regions in transition in UI to be more
               readable (todd)
   HBASE-4281  Add facility to dump current state of all executors (todd)
   HBASE-4275  RS should communicate fatal "aborts" back to the master (todd)
   HBASE-4263  New config property for user-table only RegionObservers
               (Lars Hofhansl)
   HBASE-4257  Limit the number of regions in transitions displayed on
               master webpage. (todd)
   HBASE-1730  Online Schema Changes
   HBASE-4206  jenkins hash implementation uses longs unnecessarily
               (Ron Yang)
   HBASE-3842  Refactor Coprocessor Compaction API
   HBASE-4312  Deploy new hbase logo
   HBASE-4327  Compile HBase against hadoop 0.22 (Joep Rottinghuis)
   HBASE-4339  Improve eclipse documentation and project file generation
               (Eric Charles)
   HBASE-4342  Update Thrift to 0.7.0 (Moaz Reyad)
   HBASE-4260  Expose a command to manually trigger an HLog roll
               (ramkrishna.s.vasudevan)
   HBASE-4347  Remove duplicated code from Put, Delete, Get, Scan, MultiPut
               (Lars Hofhansl)
   HBASE-4359  Show dead RegionServer names in the HMaster info page
               (Harsh J)
   HBASE-4287  If region opening fails, change region in transition into
               a FAILED_OPEN state so that it can be retried quickly. (todd)
   HBASE-4381  Refactor split decisions into a split policy class. (todd)
   HBASE-4373  HBaseAdmin.assign() does not use force flag (Ramkrishna)
   HBASE-4425  Provide access to RpcServer instance from RegionServerServices
   HBASE-4411  When copying tables/CFs, allow CF names to be changed
               (David Revell)
   HBASE-4424  Provide coprocessors access to createTable() via 
               MasterServices
   HBASE-4432  Enable/Disable off heap cache with config (Li Pi)
   HBASE-4434  seek optimization: don't do eager HFile Scanner
               next() unless the next KV is needed
               (Kannan Muthukkaruppan)
   HBASE-4280  [replication] ReplicationSink can deadlock itself via handlers
   HBASE-4014  Coprocessors: Flag the presence of coprocessors in logged
               exceptions (Eugene Koontz)
   HBASE-4449  LoadIncrementalHFiles should be able to handle CFs with blooms
               (David Revell)
   HBASE-4454  Add failsafe plugin to build and rename integration tests
               (Jesse Yates)
   HBASE-4499  [replication] Source shouldn't update ZK if it didn't progress
               (Chris Trezzo via JD)
   HBASE-2794  Utilize ROWCOL bloom filter if multiple columns within same family
               are requested in a Get (Mikhail Bautin)
   HBASE-4487  The increment operation can release the rowlock before sync-ing
               the Hlog (dhruba borthakur)
   HBASE-4526  special case for stopping master in hbase-daemon.sh is no longer
               required (Roman Shaposhnik)
   HBASE-4520  Better handling of Bloom filter type discrepancy between HFile
               and CF config (Mikhail Bautin)
   HBASE-4558  Refactor TestOpenedRegionHandler and TestOpenRegionHandler.(Ram)
   HBASE-4558  Addendum for TestMasterFailover (Ram) - Breaks the build
   HBASE-4568  Make zk dump jsp response faster
   HBASE-4606  Remove spam in HCM and fix a list.size == 0
   HBASE-3581  hbase rpc should send size of response
   HBASE-4585  Avoid seek operation when current kv is deleted(Liyin Tang)
   HBASE-4486  Improve Javadoc for HTableDescriptor (Akash Ashok)
   HBASE-4604  hbase.client.TestHTablePool could start a single
               cluster instead of one per method (nkeywal)
   HBASE-3929  Add option to HFile tool to produce basic stats (Matteo
               Bertozzi and todd via todd)
   HBASE-4694  Some cleanup of log messages in RS and M
   HBASE-4603  Uneeded sleep time for tests in
               hbase.master.ServerManager#waitForRegionServers (nkeywal)
   HBASE-4703  Improvements in tests (nkeywal)
   HBASE-4611  Add support for Phabricator/Differential as an alternative code review tool
   HBASE-3939  Some crossports of Hadoop IPC fixes
   HBASE-4756  Enable tab-completion in HBase shell (Ryan Thiessen)
   HBASE-4759  Migrate from JUnit 4.8.2 to JUnit 4.10 (nkeywal)
   HBASE-4554  Allow set/unset coprocessor table attributes from shell
               (Mingjie Lai)
   HBASE-4779  TestHTablePool, TestScanWithBloomError, TestRegionSplitCalculator are
               not tagged and TestPoolMap should not use TestSuite (N Keywal)
   HBASE-4805  Allow better control of resource consumption in HTable (Lars H)
   HBASE-4903  Return a result from RegionObserver.preIncrement
               (Daniel Gómez Ferro via Lars H)
   HBASE-4683  Always cache index and bloom blocks

  TASKS
   HBASE-3559  Move report of split to master OFF the heartbeat channel
   HBASE-3573  Move shutdown messaging OFF hearbeat; prereq for fix of
               hbase-1502
   HBASE-3071  Graceful decommissioning of a regionserver
   HBASE-3970  Address HMaster crash/failure half way through meta migration
               (Subbu M Iyer)
   HBASE-4013  Make ZooKeeperListener Abstract (Akash Ashok via Ted Yu)
   HBASE-4025  Server startup fails during startup due to failure in loading
               all table descriptors. (Subbu Iyer via Ted Yu)
   HBASE-4017  BlockCache interface should be truly modular (Li Pi)
   HBASE-4152  Rename o.a.h.h.regionserver.wal.WALObserver to
               o.a.h.h.regionserver.wal.WALActionsListener
   HBASE-4039  Users should be able to choose custom TableInputFormats without
               modifying TableMapReduceUtil.initTableMapperJob() (Brock Noland)
   HBASE-4185  Add doc for new hfilev2 format
   HBASE-4315  RS requestsPerSecond counter seems to be off (subramanian raghunathan)
   HBASE-4289  Move spinlock to SingleSizeCache rather than the slab allocator
               (Li Pi)
   HBASE-4296  Deprecate HTable[Interface].getRowOrBefore(...) (Lars Hofhansl)
   HBASE-2195  Support cyclic replication (Lars Hofhansl)
   HBASE-2196  Support more than one slave cluster (Lars Hofhansl)
   HBASE-4429  Provide synchronous balanceSwitch()
   HBASE-4437  Update hadoop in 0.92 (0.20.205?)
   HBASE-4656  Note how dfs.support.append has to be enabled in 0.20.205.0
               clusters
   HBASE-4699  Cleanup the UIs
   HBASE-4552  Remove trivial 0.90 deprecated code from 0.92 and trunk.
               (Jonathan Hsieh)
   HBASE-4714  Don't ship w/ icms enabled by default
   HBASE-4747  Upgrade maven surefire plugin to 2.10
   HBASE-4288  "Server not running" exception during meta verification causes RS abort
   HBASE-4856  Upgrade zookeeper to 3.4.0 release
   HBASE-5111  Upgrade zookeeper to 3.4.2 release
   HBASE-5125  Upgrade hadoop to 1.0.0

  NEW FEATURES
   HBASE-2001  Coprocessors: Colocate user code with regions (Mingjie Lai via
               Andrew Purtell)
   HBASE-3287  Add option to cache blocks on hfile write and evict blocks on
               hfile close
   HBASE-3335  Add BitComparator for filtering (Nathaniel Cook via Stack)
   HBASE-3260  Coprocessors: Add explicit lifecycle management
   HBASE-3256  Coprocessors: Coprocessor host and observer for HMaster
   HBASE-3345  Coprocessors: Allow observers to completely override base
               function
   HBASE-2824  A filter that randomly includes rows based on a configured
               chance (Ferdy via Andrew Purtell)
   HBASE-3455  Add memstore-local allocation buffers to combat heap
               fragmentation in the region server. Enabled by default as of
               0.91
   HBASE-3257  Coprocessors: Extend server side API to include HLog operations
               (Mingjie Lai via Andrew Purtell)
   HBASE-3606  Create an package integration project (Eric Yang via Ryan)
   HBASE-3488  Add CellCounter to count multiple versions of rows
               (Subbu M. Iyer via Stack)
   HBASE-1364  [performance] Distributed splitting of regionserver commit logs
               (Prakash Khemani)
   HBASE-3836  Add facility to track currently progressing actions and
               workflows. (todd)
   HBASE-3837  Show regions in transition on the master web page (todd)
   HBASE-3839  Add monitoring of currently running tasks to the master and
               RS web UIs
   HBASE-3691  Add compressor support for 'snappy', google's compressor
               (Nichole Treadway and Nicholas Telford)
   HBASE-2233  Support both Hadoop 0.20 and 0.22
   HBASE-3857  Change the HFile Format (Mikhail & Liyin)
   HBASE-4114  Metrics for HFile HDFS block locality (Ming Ma)
   HBASE-4176  Exposing HBase Filters to the Thrift API (Anirudh Todi)
   HBASE-4221  Changes necessary to build and run against Hadoop 0.23
               (todd)
   HBASE-4071  Data GC: Remove all versions > TTL EXCEPT the last
               written version (Lars Hofhansl)
   HBASE-4242  Add documentation for HBASE-4071 (Lars Hofhansl)
   HBASE-4027  Enable direct byte buffers LruBlockCache (Li Pi)
   HBASE-4117  Slow Query Log and Client Operation Fingerprints
               (Riley Patterson)
   HBASE-4292  Add a debugging dump servlet to the master and regionserver
               (todd)
   HBASE-4057  Implement HBase version of "show processlist" (Riley Patterson)
   HBASE-4219  Per Column Family Metrics
   HBASE-4219  Addendum for failure of TestHFileBlock
   HBASE-4377  [hbck] Offline rebuild .META. from fs data only
               (Jonathan Hsieh)
   HBASE-4298  Support to drain RS nodes through ZK (Aravind Gottipati)
   HBASE-2742  Provide strong authentication with a secure RPC engine
   HBASE-3025  Coprocessor based access control

Release 0.90.7 - Unreleased

  BUG FIXES
   HBASE-5271  Result.getValue and Result.getColumnLatest return the wrong column (Ghais Issa)

Release 0.90.6 - Unreleased

  BUG FIXES
   HBASE-4970  Add a parameter so that keepAliveTime of Htable thread pool can be changed (gaojinchao)
   HBASE-5060  HBase client is blocked forever (Jinchao)
   HBASE-5009  Failure of creating split dir if it already exists prevents splits from happening further
   HBASE-5041  Major compaction on non existing table does not throw error (Shrijeet)
   HBASE-5327  Print a message when an invalid hbase.rootdir is passed (Jimmy Xiang)

Release 0.90.5 - Released

  BUG FIXES
   HBASE-4160  HBase shell move and online may be unusable if region name
               or server includes binary-encoded data (Jonathan Hsieh)
   HBASE-4168  A client continues to try and connect to a powered down
               regionserver (Anirudh Todi)
   HBASE-4196  TableRecordReader may skip first row of region (Ming Ma)
   HBASE-4170  createTable java doc needs to be improved (Mubarak Seyed)
   HBASE-4144  RS does not abort if the initialization of RS fails
               (ramkrishna.s.vasudevan)
   HBASE-4148  HFileOutputFormat doesn't fill in TIMERANGE_KEY metadata
               (Jonathan Hsieh)
   HBASE-4159  HBaseServer - IPC Reader threads are not daemons (Douglas
               Campbell)
   HBASE-4095  Hlog may not be rolled in a long time if checkLowReplication's
               request of LogRoll is blocked (Jieshan Bean)
   HBASE-4253  TestScannerTimeOut.test3686a and TestHTablePool.
               testReturnDifferentTable() failure because of using new
               HTable(tablename) (ramkrishna.s.vasudevan)
   HBASE-4124  ZK restarted while a region is being assigned, new active HM
               re-assigns it but the RS warns 'already online on this server'
               (Gaojinchao)
   HBASE-4294  HLogSplitter sleeps with 1-second granularity (todd)
   HBASE-4270  IOE ignored during flush-on-close causes dataloss
   HBASE-4180  HBase should check the isSecurityEnabled flag before login
   HBASE-4325  Improve error message when using STARTROW for meta scans
               (Jonathan Hsieh)
   HBASE-4238  CatalogJanitor can clear a daughter that split before
               processing its parent
   HBASE-4445  Not passing --config when checking if distributed mode or not
   HBASE-4453  TestReplication failing up on builds.a.o because already
               running zk with new format root servername
   HBASE-4387  Error while syncing: DFSOutputStream is closed
               (Lars Hofhansl)
   HBASE-4295  rowcounter does not return the correct number of rows in
               certain circumstances (David Revell)
   HBASE-4515  User.getCurrent() can fail to initialize the current user
   HBASE-4473  NPE when executors are down but events are still coming in
   HBASE-4537  TestUser imports breaking build against secure Hadoop
   HBASE-4501  [replication] Shutting down a stream leaves recovered
               sources running
   HBASE-4563  When error occurs in this.parent.close(false) of split,
               the split region cannot write or read (bluedavy via Lars H)
   HBASE-4570. Fix a race condition that could cause inconsistent results
               from scans during concurrent writes. (todd and Jonathan Jsieh
               via todd)
   HBASE-4562  When split doing offlineParentInMeta encounters error, it'll
               cause data loss (bluedavy via Lars H)
   HBASE-4800  Result.compareResults is incorrect (James Taylor and Lars H)
   HBASE-4848  TestScanner failing because hostname can't be null
   HBASE-4862  Splitting hlog and opening region concurrently may cause data loss
               (Chunhui Shen)
   HBASE-4773  HBaseAdmin may leak ZooKeeper connections (Xufeng)

  IMPROVEMENT
   HBASE-4205  Enhance HTable javadoc (Eric Charles)
   HBASE-4222  Make HLog more resilient to write pipeline failures
   HBASE-4293  More verbose logging in ServerShutdownHandler for meta/root
               cases (todd)
   HBASE-4276  AssignmentManager debug logs should be at INFO level for
               META/ROOT regions (todd)
   HBASE-4323  Add debug logging when AssignmentManager can't make a plan
               for a region (todd)
   HBASE-4313  Refactor TestHBaseFsck to make adding individual hbck tests
               easier (Jonathan Hsieh)
   HBASE-4272. Add -metaonly flag to hbck feature to only inspect and try
               to repair META and ROOT. (todd)
   HBASE-4321. Add a more comprehensive region split calculator for future use
               in hbck. (Jonathan Hsieh)
   HBASE-4384  Hard to tell what causes failure in CloseRegionHandler#getCurrentVersion
               (Harsh J)
   HBASE-4375  [hbck] Add region coverage visualization to hbck
               (Jonathan Hsieh)
   HBASE-4506  [hbck] Allow HBaseFsck to be instantiated without connecting
               (Jonathan Hsieh)
   HBASE-4509  [hbck] Improve region map output
               (Jonathan Hsieh)
   HBASE-4806  Fix logging message in HbaseObjectWritable
               (Jonathan Hsieh via todd)

Release 0.90.4 - August 10, 2011

  BUG FIXES
   HBASE-3878  Hbase client throws NoSuchElementException (Ted Yu)
   HBASE-3881  Add disable balancer in graceful_stop.sh script
   HBASE-3895  Fix order of parameters after HBASE-1511
   HBASE-3874  ServerShutdownHandler fails on NPE if a plan has a random
               region assignment
   HBASE-3902  Add Bytes.toBigDecimal and Bytes.toBytes(BigDecimal)
               (Vaibhav Puranik)
   HBASE-3820  Splitlog() executed while the namenode was in safemode may
               cause data-loss (Jieshan Bean)
   HBASE-3905  HBaseAdmin.createTableAsync() should check for invalid split
               keys (Ted Yu)
   HBASE-3908  TableSplit not implementing "hashCode" problem (Daniel Iancu)
   HBASE-3915  Binary row keys in hbck and other miscellaneous binary key
               display issues
   HBASE-3914  ROOT region appeared in two regionserver's onlineRegions at
               the same time (Jieshan Bean)
   HBASE-3934  MemStoreFlusher.getMemStoreLimit() doesn't honor defaultLimit
               (Ted Yu)
   HBASE-3946  The splitted region can be online again while the standby
               hmaster becomes the active one (Jieshan Bean)
   HBASE-3916  Fix the default bind address of ThriftServer to be wildcard
               instead of localhost. (Li Pi)
   HBASE-3985  Same Region could be picked out twice in LoadBalance
               (Jieshan Bean)
   HBASE-3987  Fix a NullPointerException on a failure to load Bloom filter data
               (Mikhail Bautin)
   HBASE-3948  Improve split/compact result page for RegionServer status page
               (Li Pi)
   HBASE-3988  Infinite loop for secondary master (Liyin Tang)
   HBASE-3995  HBASE-3946 broke TestMasterFailover
   HBASE-2077  NullPointerException with an open scanner that expired causing
               an immediate region server shutdown -- part 2.
   HBASE-4005  close_region bugs
   HBASE-4028  Hmaster crashes caused by splitting log.
               (gaojinchao via Ted Yu)
   HBASE-4035  Fix local-master-backup.sh - parameter order wrong
               (Lars George via Ted Yu)
   HBASE-4020  "testWritesWhileGetting" unit test needs to be fixed.
               (Vandana Ayyalasomayajula via Ted Yu)
   HBASE-3984  CT.verifyRegionLocation isn't doing a very good check,
               can delay cluster recovery
   HBASE-4045  [replication] NPE in ReplicationSource when ZK is gone
   HBASE-4034  HRegionServer should be stopped even if no META regions
               are hosted by the HRegionServer (Akash Ashok)
   HBASE-4033  The shutdown RegionServer could be added to
               AssignmentManager.servers again (Jieshan Bean)
   HBASE-4088  npes in server shutdown
   HBASE-3872  Hole in split transaction rollback; edits to .META. need
               to be rolled back even if it seems like they didn't make it
   HBASE-4101  Regionserver Deadlock (ramkrishna.s.vasudevan)
   HBASE-4115  HBase shell assign and unassign unusable if region name
               includes binary-encoded data (Ryan Brush)
   HBASE-4126  Make timeoutmonitor timeout after 30 minutes instead of 3
   HBASE-4129  HBASE-3872 added a warn message 'CatalogJanitor: Daughter regiondir
               does not exist' that is triggered though its often legit that daughter
               is not present

  IMPROVEMENT
   HBASE-3882  hbase-config.sh needs to be updated so it can auto-detects the
               sun jre provided by RHEL6 (Roman Shaposhnik)
   HBASE-3920  HLog hbase.regionserver.flushlogentries no longer supported
               (Dave Latham)
   HBASE-3919  More places output binary data to text (Dave Latham)
   HBASE-3873  HBase IRB shell: Don't pretty-print the output when stdout
               isn't a TTY (Benoît Sigoure)
   HBASE-3969  Outdated data can not be cleaned in time (Zhou Shuaifeng)
   HBASE-3968  HLog Pretty Printer (Riley Patterson)

Release 0.90.3 - May 19th, 2011

  BUG FIXES
   HBASE-3746  Clean up CompressionTest to not directly reference
               DistributedFileSystem (todd)
   HBASE-3734  HBaseAdmin creates new configurations in getCatalogTracker
   HBASE-3756  Can't move META or ROOT from shell
   HBASE-3740  hbck doesn't reset the number of errors when retrying
   HBASE-3744  createTable blocks until all regions are out of transition
               (Ted Yu via Stack)
   HBASE-3750  HTablePool.putTable() should call releaseHTableInterface()
               for discarded tables (Ted Yu via garyh)
   HBASE-3755  Catch zk's ConnectionLossException and augment error
               message with more help
   HBASE-3722  A lot of data is lost when name node crashed (gaojinchao)
   HBASE-3771  All jsp pages don't clean their HBA
   HBASE-3685  when multiple columns are combined with TimestampFilter, only
               one column is returned (Jerry Chen)
   HBASE-3708  createAndFailSilent is not so silent; leaves lots of logging
               in ensemble logs (Dmitriy Ryaboy)
   HBASE-3783  hbase-0.90.2.jar exists in hbase root and in 'lib/'
   HBASE-3539  Improve shell help to reflect all possible options
               (Harsh J Chouraria)
   HBASE-3817  HBase Shell has an issue accepting FILTER for the 'scan' command.
               (Harsh J Chouraria)
   HBASE-3634  Fix JavaDoc for put(List<Put> puts) in HTableInterface
               (Harsh J Chouraria)
   HBASE-3749  Master can't exit when open port failed (gaojinchao)
   HBASE-3794  TestRpcMetrics fails on machine where region server is running
               (Alex Newman)
   HBASE-3741  Make HRegionServer aware of the regions it's opening/closing
   HBASE-3597  ageOfLastAppliedOp should update after cluster replication
               failures
   HBASE-3821  "NOT flushing memstore for region" keep on printing for half
               an hour (zhoushuaifeng)

  IMPROVEMENTS
   HBASE-3747  ReplicationSource should differanciate remote and local exceptions
   HBASE-3652  Speed up tests by lowering some sleeps
   HBASE-3767  Improve how HTable handles threads used for multi actions
   HBASE-3795  Remove the "Cache hit for row" message
   HBASE-3580  Remove RS from DeadServer when new instance checks in
   HBASE-2470  Add Scan.setTimeRange() support in Shell (Harsh J Chouraria)
   HBASE-3805  Log RegionState that are processed too late in the master
   HBASE-3695  Some improvements to Hbck to test the entire region chain in
                Meta and provide better error reporting (Marc Limotte)
   HBASE-3813  Change RPC callQueue size from 'handlerCount *
               MAX_QUEUE_SIZE_PER_HANDLER;'
   HBASE-3860  HLog shouldn't create a new HBC when rolling

  TASKS
   HBASE-3748  Add rolling of thrift/rest daemons to graceful_stop.sh script
   HBASE-3846  Set RIT timeout higher

Release 0.90.2 - 20110408
  
  BUG FIXES
   HBASE-3545  Possible liveness issue with MasterServerAddress in
               HRegionServer getMaster (Greg Bowyer via Stack)
   HBASE-3548  Fix type in documentation of pseudo distributed mode
   HBASE-3553  HTable ThreadPoolExecutor does not properly initialize
               for hbase.htable.threads.max threads
               (Himanshu Vashishtha via garyh)
   HBASE-3566  writeToWAL is not serialized for increment operation
   HBASE-3576  MasterAddressTracker is registered to ZooKeeperWatcher twice
   HBASE-3561  OPTS arguments are duplicated
   HBASE-3572  memstore lab can leave half inited data structs (bad!)
   HBASE-3589  test jar should not include mapred-queues.xml and
               log4j.properties
   HBASE-3593  DemoClient.cpp is outdated
   HBASE-3591  completebulkload doesn't honor generic -D options
   HBASE-3594  Rest server fails because of missing asm jar
   HBASE-3582  Allow HMaster and HRegionServer to login from keytab
               when on secure Hadoop
   HBASE-3608  MemstoreFlusher error message doesnt include exception!
   HBASE-1960  Master should wait for DFS to come up when creating
               hbase.version; use alternate strategy for waiting for DNs
   HBASE-3612  HBaseAdmin::isTableAvailable returns true when the table does
               not exit
   HBASE-3626  Update instructions in thrift demo files (Moaz Reyad via Stack)
   HBASE-3633  ZKUtil::createSetData should only create a node when it
               nonexists (Guanpeng Xu via Stack)
   HBASE-3636  a bug about deciding whether this key is a new key for the ROWCOL
               bloomfilter (Liyin Tang via Stack)
   HBASE-3639  FSUtils.getRootDir should qualify path
   HBASE-3648  [replication] failover is sloppy with znodes
   HBASE-3613  NPE in MemStoreFlusher
   HBASE-3650  HBA.delete can return too fast
   HBASE-3659  Fix TestHLog to pass on newer versions of Hadoop
   HBASE-3595  get_counter broken in shell
   HBASE-3664  [replication] Adding a slave when there's none may kill the cluster
   HBASE-3671  Split report before we finish parent region open; workaround
               till 0.92; Race between split and OPENED processing
   HBASE-3674  Treat ChecksumException as we would a ParseException splitting
               logs; else we replay split on every restart
   HBASE-3621  The timeout handler in AssignmentManager does an RPC while
               holding lock on RIT; a big no-no (Ted Yu via Stack)
   HBASE-3575  Update rename table script
   HBASE-3687  Bulk assign on startup should handle a ServerNotRunningException
   HBASE-3617  NoRouteToHostException during balancing will cause Master abort
               (Ted Yu via Stack)
   HBASE-3668  CatalogTracker.waitForMeta can wait forever and totally stall a RS
   HBASE-3627  NPE in EventHandler when region already reassigned
   HBASE-3660  HMaster will exit when starting with stale data in cached locations
               such as -ROOT- or .META.
   HBASE-3654  Weird blocking between getOnlineRegion and createRegionLoad
               (Subbu M Iyer via Stack)
   HBASE-3666  TestScannerTimeout fails occasionally
   HBASE-3497  TableMapReduceUtil.initTableReducerJob broken due to setConf 
               method in TableOutputFormat
   HBASE-3686  ClientScanner skips too many rows on recovery if using scanner
               caching (Sean Sechrist via Stack)

  IMPROVEMENTS
   HBASE-3542  MultiGet methods in Thrift
   HBASE-3586  Improve the selection of regions to balance (Ted Yu via Andrew
               Purtell)  
   HBASE-3603  Remove -XX:+HeapDumpOnOutOfMemoryError autodump of heap option
               on OOME
   HBASE-3285  Hlog recovery takes too much time
   HBASE-3623  Allow non-XML representable separator characters in the ImportTSV tool
               (Harsh J Chouraria via Stack)
   HBASE-3620  Make HBCK utility faster
   HBASE-3625  improve/fix support excluding Tests via Maven -D property
               (Alejandro Abdelnur via todd)
   HBASE-3437  Support Explict Split Points from the Shell
   HBASE-3448  RegionSplitter, utility class to manually split tables
   HBASE-3610  Improve RegionSplitter performance
   HBASE-3496  HFile CLI Improvements
   HBASE-3596  [replication] Wait a few seconds before transferring queues
   HBASE-3600  Update our jruby to 1.6.0
   HBASE-3640  [replication] Transferring queues shouldn't be done inline with RS startup
   HBASE-3658  Alert when heap is over committed (Subbu M Iyer via Stack)
   HBASE-3681  Check the sloppiness of the region load before balancing (Ted Yu via JD)
   HBASE-3703  hbase-config.sh needs to be updated so it can auto-detect
               the sun jdk provided by RHEL6 (Bruno Mahe via todd)

Release 0.90.1 - February 9th, 2011

  NEW FEATURES
   HBASE-3455  Add memstore-local allocation buffers to combat heap
               fragmentation in the region server. Experimental / disabled
               by default in 0.90.1
  
  BUG FIXES
   HBASE-3445  Master crashes on data that was moved from different host
   HBASE-3449  Server shutdown handlers deadlocked waiting for META
   HBASE-3456  Fix hardcoding of 20 second socket timeout down in HBaseClient
   HBASE-3476  HFile -m option need not scan key values
               (Prakash Khemani via Lars George)
   HBASE-3481  max seq id in flushed file can be larger than its correct value 
               causing data loss during recovery
   HBASE-3493  HMaster sometimes hangs during initialization due to missing
               notify call (Bruno Dumon via Stack)
   HBASE-3483  Memstore lower limit should trigger asynchronous flushes
   HBASE-3494  checkAndPut implementation doesnt verify row param and writable 
               row are the same
   HBASE-3416  For intra-row scanning, the update readers notification resets
               the query matcher and can lead to incorrect behavior
   HBASE-3495  Shell is failing on subsequent split calls
   HBASE-3502  Can't open region because can't open .regioninfo because
               AlreadyBeingCreatedException
   HBASE-3501  Remove the deletion limit in LogCleaner
   HBASE-3500  Documentation update for replicatio
   HBASE-3419  If re-transition to OPENING during log replay fails, server
               aborts. Instead, should just cancel region open.
   HBASE-3524  NPE from CompactionChecker
   HBASE-3531  When under global memstore pressure, dont try to flush
               unflushable regions.
   HBASE-3550  FilterList reports false positives (Bill Graham via Andrew
               Purtell)

  IMPROVEMENTS
   HBASE-3305  Allow round-robin distribution for table created with
               multiple regions (ted yu via jgray)
   HBASE-3508  LruBlockCache statistics thread should have a name
   HBASE-3511  Allow rolling restart to apply to only RS or only masters
   HBASE-3510  Add thread name for IPC reader threads
   HBASE-3509  Add metric for flush queue length
   HBASE-3517  Store build version in hbase-default.xml and verify at runtime

Release 0.90.0 - January 19th, 2011
  INCOMPATIBLE CHANGES
   HBASE-1822  Remove the deprecated APIs
   HBASE-1848  Fixup shell for HBASE-1822
   HBASE-1854  Remove the Region Historian
   HBASE-1930  Put.setTimeStamp misleading (doesn't change timestamp on
               existing KeyValues, not copied in copy constructor)
               (Dave Latham via Stack)
   HBASE-1360  move up to Thrift 0.2.0 (Kay Kay and Lars Francke via Stack)
   HBASE-2212  Refactor out lucene dependencies from HBase
               (Kay Kay via Stack)
   HBASE-2219  stop using code mapping for method names in the RPC
   HBASE-1728  Column family scoping and cluster identification
   HBASE-2099  Move build to Maven (Paul Smith via Stack)
   HBASE-2260  Remove all traces of Ant and Ivy (Lars Francke via Stack)
   HBASE-2255  take trunk back to hadoop 0.20
   HBASE-2378  Bulk insert with multiple reducers broken due to improper
               ImmutableBytesWritable comparator (Todd Lipcon via Stack)
   HBASE-2392  Upgrade to ZooKeeper 3.3.0
   HBASE-2294  Enumerate ACID properties of HBase in a well defined spec
               (Todd Lipcon via Stack)
   HBASE-2541  Remove transactional contrib (Clint Morgan via Stack)
   HBASE-2542  Fold stargate contrib into core
   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
   HBASE-2692  Master rewrite and cleanup for 0.90
               (Karthik Ranganathan, Jon Gray & Stack)
   HBASE-2961  Close zookeeper when done with it (HCM, Master, and RS)
   HBASE-2641  HBASE-2641 Refactor HLog splitLog, hbase-2437 continued;
               break out split code as new classes
               (James Kennedy via Stack)

  BUG FIXES
   HBASE-1791  Timeout in IndexRecordWriter (Bradford Stephens via Andrew
               Purtell)
   HBASE-1737  Regions unbalanced when adding new node (recommit)
   HBASE-1792  [Regression] Cannot save timestamp in the future
   HBASE-1793  [Regression] HTable.get/getRow with a ts is broken
   HBASE-1698  Review documentation for o.a.h.h.mapreduce
   HBASE-1798  [Regression] Unable to delete a row in the future
   HBASE-1790  filters are not working correctly (HBASE-1710 HBASE-1807 too)
   HBASE-1779  ThriftServer logged error if getVer() result is empty
   HBASE-1778  Improve PerformanceEvaluation (Schubert Zhang via Stack)
   HBASE-1751  Fix KeyValue javadoc on getValue for client-side
   HBASE-1795  log recovery doesnt reset the max sequence id, new logfiles can
               get tossed as 'duplicates'
   HBASE-1794  recovered log files are not inserted into the storefile map
   HBASE-1824  [stargate] default timestamp should be LATEST_TIMESTAMP
   HBASE-1740  ICV has a subtle race condition only visible under high load
   HBASE-1808  [stargate] fix how columns are specified for scanners
   HBASE-1828  CompareFilters are broken from client-side
   HBASE-1836  test of indexed hbase broken
   HBASE-1838  [javadoc] Add javadoc to Delete explaining behavior when no
               timestamp provided
   HBASE-1821  Filtering by SingleColumnValueFilter bug
   HBASE-1840  RowLock fails when used with IndexTable
               (Keith Thomas via Stack)
   HBASE-818   HFile code review and refinement (Schubert Zhang via Stack)
   HBASE-1830  HbaseObjectWritable methods should allow null HBCs
               for when Writable is not Configurable (Stack via jgray)
   HBASE-1847  Delete latest of a null qualifier when non-null qualifiers
               exist throws a RuntimeException 
   HBASE-1850  src/examples/mapred do not compile after HBASE-1822
   HBASE-1853  Each time around the regionserver core loop, we clear the
               messages to pass master, even if we failed to deliver them
   HBASE-1815  HBaseClient can get stuck in an infinite loop while attempting
               to contact a failed regionserver
   HBASE-1856  HBASE-1765 broke MapReduce when using Result.list()
               (Lars George via Stack)
   HBASE-1857  WrongRegionException when setting region online after .META.
               split (Cosmin Lehane via Stack)
   HBASE-1809  NPE thrown in BoundedRangeFileInputStream
   HBASE-1859  Misc shell fixes patch (Kyle Oba via Stack)
   HBASE-1865  0.20.0 TableInputFormatBase NPE
   HBASE-1866  Scan(Scan) copy constructor does not copy value of
               cacheBlocks
   HBASE-1869  IndexedTable delete fails when used in conjunction with
               RowLock (Keith Thomas via Stack)
   HBASE-1858  Master can't split logs created by THBase (Clint Morgan via
               Andrew Purtell)
   HBASE-1871  Wrong type used in TableMapReduceUtil.initTableReduceJob()
               (Lars George via Stack)
   HBASE-1883  HRegion passes the wrong minSequenceNumber to
               doReconstructionLog (Clint Morgan via Stack)
   HBASE-1878  BaseScanner results can't be trusted at all (Related to
               hbase-1784)
   HBASE-1831  Scanning API must be reworked to allow for fully functional
               Filters client-side
   HBASE-1890  hbase-1506 where assignment is done at regionserver doesn't
               work
   HBASE-1889  ClassNotFoundException on trunk for REST
   HBASE-1905  Remove unused config. hbase.hstore.blockCache.blockSize
   HBASE-1906  FilterList of prefix and columnvalue not working properly with
               deletes and multiple values
   HBASE-1896  WhileMatchFilter.reset should call encapsulated filter reset
   HBASE-1912  When adding a secondary index to an existing table, it will
               cause NPE during re-indexing (Mingjui Ray Liao via Andrew
               Purtell)
   HBASE-1916  FindBugs and javac warnings cleanup
   HBASE-1908  ROOT not reassigned if only one regionserver left
   HBASE-1915  HLog.sync is called way too often, needs to be only called one
               time per RPC
   HBASE-1777  column length is not checked before saved to memstore
   HBASE-1925  IllegalAccessError: Has not been initialized (getMaxSequenceId)
   HBASE-1929  If hbase-default.xml is not in CP, zk session timeout is 10
               seconds!
   HBASE-1927  Scanners not closed properly in certain circumstances
   HBASE-1934  NullPointerException in ClientScanner (Andrew Purtell via Stack)
   HBASE-1946  Unhandled exception at regionserver (Dmitriy Lyfar via Stack)
   HBASE-1682  IndexedRegion does not properly handle deletes
               (Andrew McCall via Clint Morgan and Stack)
   HBASE-1953  Overhaul of overview.html (html fixes, typos, consistency) -
               no content changes (Lars Francke via Stack)
   HBASE-1954  Transactional scans do not see newest put (Clint Morgan via
               Stack)
   HBASE-1919  code: HRS.delete seems to ignore exceptions it shouldnt
   HBASE-1951  Stack overflow when calling HTable.checkAndPut() 
               when deleting a lot of values
   HBASE-1781  Weird behavior of WildcardColumnTracker.checkColumn(), 
               looks like recursive loop
   HBASE-1949  KeyValue expiration by Time-to-Live during major compaction is
               broken (Gary Helmling via Stack)
   HBASE-1957  Get-s can't set a Filter
   HBASE-1928  ROOT and META tables stay in transition state (making the system
               not usable) if the designated regionServer dies before the
               assignment is complete (Yannis Pavlidis via Stack)
   HBASE-1962  Bulk loading script makes regions incorrectly (loadtable.rb)
   HBASE-1966  Apply the fix from site/ to remove the forrest dependency on
               Java 5
   HBASE-1967  [Transactional] client.TestTransactions.testPutPutScan fails
               sometimes -- Temporary fix
   HBASE-1841  If multiple of same key in an hfile and they span blocks, may
               miss the earlier keys on a lookup
               (Schubert Zhang via Stack)
   HBASE-1977  Add ts and allow setting VERSIONS when scanning in shell
   HBASE-1979  MurmurHash does not yield the same results as the reference C++
               implementation when size % 4 >= 2 (Olivier Gillet via Andrew
               Purtell)
   HBASE-1999  When HTable goes away, close zk session in shutdown hook or
               something...
   HBASE-1997  zk tick time bounds maximum zk session time
   HBASE-2003  [shell] deleteall ignores column if specified
   HBASE-2018  Updates to .META. blocked under high MemStore load
   HBASE-1994  Master will lose hlog entries while splitting if region has
               empty oldlogfile.log (Lars George via Stack)
   HBASE-2022  NPE in housekeeping kills RS
   HBASE-2034  [Bulk load tools] loadtable.rb calls an undefined method
               'descendingIterator' (Ching-Shen Chen via Stack)
   HBASE-2033  Shell scan 'limit' is off by one
   HBASE-2040  Fixes to group commit
   HBASE-2047  Example command in the "Getting Started" 
               documentation doesn't work (Benoit Sigoure via JD)
   HBASE-2048  Small inconsistency in the "Example API Usage"
               (Benoit Sigoure via JD)
   HBASE-2044  HBASE-1822 removed not-deprecated APIs
   HBASE-1960  Master should wait for DFS to come up when creating
               hbase.version
   HBASE-2054  memstore size 0 is >= than blocking -2.0g size
   HBASE-2064  Cannot disable a table if at the same the Master is moving 
               its regions around
   HBASE-2065  Cannot disable a table if any of its region is opening 
               at the same time
   HBASE-2026  NPE in StoreScanner on compaction
   HBASE-2072  fs.automatic.close isn't passed to FileSystem
   HBASE-2075  Master requires HDFS superuser privileges due to waitOnSafeMode
   HBASE-2077  NullPointerException with an open scanner that expired causing 
               an immediate region server shutdown (Sam Pullara via JD)
   HBASE-2078  Add JMX settings as commented out lines to hbase-env.sh
               (Lars George via JD)
   HBASE-2082  TableInputFormat is ignoring input scan's stop row setting
               (Scott Wang via Andrew Purtell)
   HBASE-2068  MetricsRate is missing "registry" parameter
               (Lars George and Gary Helmling via Stack)
   HBASE-2093  [stargate] RowSpec parse bug
   HBASE-2114  Can't start HBase in trunk (JD and Kay Kay via JD)
   HBASE-2115  ./hbase shell would not launch due to missing jruby dependency
               (Kay Kay via JD)
   HBASE-2101  KeyValueSortReducer collapses all values to last passed
   HBASE-2119  Fix top-level NOTICES.txt file. Its stale.
   HBASE-2120  [stargate] Unable to delete column families (Greg Lu via Andrew
               Purtell)
   HBASE-2123  Remove 'master' command-line option from PE
   HBASE-2024  [stargate] Deletes not working as expected (Greg Lu via Andrew
               Purtell)
   HBASE-2122  [stargate] Initializing scanner column families doesn't work
               (Greg Lu via Andrew Purtell)
   HBASE-2124  Useless exception in HMaster on startup
   HBASE-2127  randomWrite mode of PerformanceEvaluation benchmark program
               writes only to a small range of keys (Kannan Muthukkaruppan
               via Stack)
   HBASE-2126  Fix build break - ec2 (Kay Kay via JD)
   HBASE-2134  Ivy nit regarding checking with latest snapshots (Kay Kay via
               Andrew Purtell)
   HBASE-2138  unknown metrics type (Stack via JD)
   HBASE-2137  javadoc warnings from 'javadoc' target (Kay Kay via Stack)
   HBASE-2135  ant javadoc complains about missing classe (Kay Kay via Stack)
   HBASE-2130  bin/* scripts - not to include lib/test/**/*.jar
               (Kay Kay via Stack)
   HBASE-2140  findbugs issues - 2 performance warnings as suggested by
               findbugs (Kay Kay via Stack)
   HBASE-2139  findbugs task in build.xml (Kay Kay via Stack)
   HBASE-2147  run zookeeper in the same jvm as master during non-distributed
               mode
   HBASE-65    Thrift Server should have an option to bind to ip address
               (Lars Francke via Stack)
   HBASE-2146  RPC related metrics are missing in 0.20.3 since recent changes
               (Gary Helmling via Lars George)
   HBASE-2150  Deprecated HBC(Configuration) constructor doesn't call this()
   HBASE-2154  Fix Client#next(int) javadoc
   HBASE-2152  Add default jmxremote.{access|password} files into conf
               (Lars George and Gary Helmling via Stack)
   HBASE-2156  HBASE-2037 broke Scan - only a test for trunk
   HBASE-2057  Cluster won't stop (Gary Helmling and JD via JD)
   HBASE-2160  Can't put with ts in shell
   HBASE-2144  Now does \x20 for spaces
   HBASE-2163  ZK dependencies - explicitly add them until ZK artifacts are
               published to mvn repository (Kay Kay via Stack)
   HBASE-2164  Ivy nit - clean up configs (Kay Kay via Stack)
   HBASE-2184  Calling HTable.getTableDescriptor().* on a full cluster takes
               a long time (Cristian Ivascu via Stack)
   HBASE-2193  Better readability of - hbase.regionserver.lease.period
               (Kay Kay via Stack)
   HBASE-2199  hbase.client.tableindexed.IndexSpecification, lines 72-73
               should be reversed (Adrian Popescu via Stack)
   HBASE-2224  Broken build: TestGetRowVersions.testGetRowMultipleVersions
   HBASE-2129  ant tar build broken since switch to Ivy (Kay Kay via Stack)
   HBASE-2226  HQuorumPeerTest doesnt run because it doesnt start with the
               word Test
   HBASE-2230  SingleColumnValueFilter has an ungaurded debug log message
   HBASE-2258  The WhileMatchFilter doesn't delegate the call to filterRow()
   HBASE-2259  StackOverflow in ExplicitColumnTracker when row has many columns
   HBASE-2268  [stargate] Failed tests and DEBUG output is dumped to console
               since move to Mavenized build 
   HBASE-2276  Hbase Shell hcd() method is broken by the replication scope 
               parameter (Alexey Kovyrin via Lars George)
   HBASE-2244  META gets inconsistent in a number of crash scenarios
   HBASE-2284  fsWriteLatency metric may be incorrectly reported 
               (Kannan Muthukkaruppan via Stack)
   HBASE-2063  For hfileoutputformat, on timeout/failure/kill clean up
               half-written hfile (Ruslan Salyakhov via Stack)
   HBASE-2281  Hbase shell does not work when started from the build dir
               (Alexey Kovyrin via Stack)
   HBASE-2293  CME in RegionManager#isMetaServer
   HBASE-2261  The javadoc in WhileMatchFilter and it's tests in TestFilter
               are not accurate/wrong
   HBASE-2299  [EC2] mapreduce fixups for PE
   HBASE-2295  Row locks may deadlock with themselves
               (dhruba borthakur via Stack)
   HBASE-2308  Fix the bin/rename_table.rb script, make it work again
   HBASE-2307  hbase-2295 changed hregion size, testheapsize broke... fix it
   HBASE-2269  PerformanceEvaluation "--nomapred" may assign duplicate random
               seed over multiple testing threads (Tatsuya Kawano via Stack) 
   HBASE-2287  TypeError in shell (Alexey Kovyrin via Stack)
   HBASE-2023  Client sync block can cause 1 thread of a multi-threaded client
               to block all others (Karthik Ranganathan via Stack)
   HBASE-2305  Client port for ZK has no default (Suraj Varma via Stack)
   HBASE-2323  filter.RegexStringComparator does not work with certain bytes
               (Benoit Sigoure via Stack)
   HBASE-2313  Nit-pick about hbase-2279 shell fixup, if you do get with
               non-existant column family, throws lots of exceptions
               (Alexey Kovyrin via Stack)
   HBASE-2334  Slimming of Maven dependency tree - improves assembly build
               speed (Paul Smith via Stack)
   HBASE-2336  Fix build broken with HBASE-2334 (Lars Francke via Lars George)
   HBASE-2283  row level atomicity (Kannan Muthukkaruppan via Stack)
   HBASE-2355  Unsynchronized logWriters map is mutated from several threads in
               HLog splitting (Todd Lipcon via Andrew Purtell)
   HBASE-2358  Store doReconstructionLog will fail if oldlogfile.log is empty
               and won't load region (Cosmin Lehene via Stack)
   HBASE-2370  saveVersion.sh doesnt properly grab the git revision
   HBASE-2373  Remove confusing log message of how "BaseScanner GET got
               different address/startcode than SCAN"
   HBASE-2361  WALEdit broke replication scope
   HBASE-2365  Double-assignment around split
   HBASE-2398  NPE in HLog.append when calling writer.getLength
               (Kannan Muthukkaruppan via Stack)
   HBASE-2410  spurious warnings from util.Sleeper
   HBASE-2335  mapred package docs don't say zookeeper jar is a dependent
   HBASE-2417  HCM.locateRootRegion fails hard on "Connection refused"
   HBASE-2346  Usage of FilterList slows down scans
   HBASE-2341  ZK settings for initLimit/syncLimit should not have been removed
               from hbase-default.xml
   HBASE-2439  HBase can get stuck if updates to META are blocked
               (Kannan Muthukkaruppan via Stack)
   HBASE-2451  .META. by-passes cache; BLOCKCACHE=>'false'
   HBASE-2453  Revisit compaction policies after HBASE-2248 commit
               (Jonathan Gray via Stack)
   HBASE-2458  Client stuck in TreeMap,remove (Todd Lipcon via Stack)
   HBASE-2460  add_table.rb deletes any tables for which the target table name
               is a prefix (Todd Lipcon via Stack)
   HBASE-2463  Various Bytes.* functions silently ignore invalid arguments
               (Benoit Sigoure via Stack)
   HBASE-2443  IPC client can throw NPE if socket creation fails
               (Todd Lipcon via Stack)
   HBASE-2447  LogSyncer.addToSyncQueue doesn't check if syncer is still
               running before waiting (Todd Lipcon via Stack)
   HBASE-2494  Does not apply new.name parameter to CopyTable
               (Yoonsik Oh via Stack)
   HBASE-2481  Client is not getting UnknownScannerExceptions; they are
               being eaten (Jean-Daniel Cryans via Stack)
   HBASE-2448  Scanner threads are interrupted without acquiring lock properly
               (Todd Lipcon via Stack)
   HBASE-2491  master.jsp uses absolute links to table.jsp. This broke when
               master.jsp moved under webapps/master(Cristian Ivascu via Stack)
   HBASE-2487  Uncaught exceptions in receiving IPC responses orphan clients
               (Todd Lipcon via Stack)
   HBASE-2497  ProcessServerShutdown throws NullPointerException for offline
               regiond (Miklos Kurucz via Stack)
   HBASE-2499  Race condition when disabling a table leaves regions in transition
   HBASE-2489  Make the "Filesystem needs to be upgraded" error message more
               useful (Benoit Sigoure via Stack)
   HBASE-2482  regions in transition do not get reassigned by master when RS
               crashes (Todd Lipcon via Stack)
   HBASE-2513  hbase-2414 added bug where we'd tight-loop if no root available
   HBASE-2503  PriorityQueue isn't thread safe, KeyValueHeap uses it that way
   HBASE-2431  Master does not respect generation stamps, may result in meta
               getting permanently offlined
   HBASE-2515  ChangeTableState considers split&&offline regions as being served
   HBASE-2544  Forward port branch 0.20 WAL to TRUNK
   HBASE-2546  Specify default filesystem in both the new and old way (needed
               if we are to run on 0.20 and 0.21 hadoop)
   HBASE-1895  HConstants.MAX_ROW_LENGTH is incorrectly 64k, should be 32k      
   HBASE-1968  Give clients access to the write buffer      
   HBASE-2028  Add HTable.incrementColumnValue support to shell
               (Lars George via Andrew Purtell)  
   HBASE-2138  unknown metrics type
   HBASE-2551  Forward port fixes that are in branch but not in trunk (part of
               the merge of old 0.20 into TRUNK task) -- part 1.
   HBASE-2474  Bug in HBASE-2248 - mixed version reads (not allowed by spec)
   HBASE-2509  NPEs in various places, HRegion.get, HRS.close
   HBASE-2344  InfoServer and hence HBase Master doesn't fully start if you
               have HADOOP-6151 patch (Kannan Muthukkaruppan via Stack)
   HBASE-2382  Don't rely on fs.getDefaultReplication() to roll HLogs
               (Nicolas Spiegelberg via Stack)  
   HBASE-2415  Disable META splitting in 0.20 (Todd Lipcon via Stack)
   HBASE-2421  Put hangs for 10 retries on failed region servers
   HBASE-2442  Log lease recovery catches IOException too widely
               (Todd Lipcon via Stack)
   HBASE-2457  RS gets stuck compacting region ad infinitum
   HBASE-2562  bin/hbase doesn't work in-situ in maven
               (Todd Lipcon via Stack)
   HBASE-2449  Local HBase does not stop properly
   HBASE-2539  Cannot start ZK before the rest in tests anymore
   HBASE-2561  Scanning .META. while split in progress yields
               IllegalArgumentException (Todd Lipcon via Stack)
   HBASE-2572  hbase/bin/set_meta_block_caching.rb:72: can't convert
               Java::JavaLang::String into String (TypeError) - little
               issue with script
   HBASE-2483  Some tests do not use ephemeral ports
   HBASE-2573  client.HConnectionManager$TableServers logs non-printable
               binary bytes (Benoît Sigoure via Stack)
   HBASE-2576  TestHRegion.testDelete_mixed() failing on hudson
   HBASE-2581  Bloom commit broke some tests... fix
   HBASE-2582  TestTableSchemaModel not passing after commit of blooms
   HBASE-2583  Make webapps work in distributed mode again and make webapps
               deploy at / instead of at /webapps/master/master.jsp
   HBASE-2590  Failed parse of branch element in saveVersion.sh
   HBASE-2591  HBASE-2587 hardcoded the port that dfscluster runs on
   HBASE-2519  StoreFileScanner.seek swallows IOEs (Todd Lipcon via Stack)
   HBASE-2516  Ugly IOE when region is being closed; rather, should NSRE
               (Daniel Ploeg via Stack)
   HBASE-2589  TestHRegion.testWritesWhileScanning flaky on trunk
               (Todd Lipcon via Stack)
   HBASE-2590  Failed parse of branch element in saveVersion.sh
               (Benoît Sigoure via Stack)
   HBASE-2586  Move hbase webapps to a hbase-webapps dir (Todd Lipcon via
               Andrew Purtell)
   HBASE-2610  ValueFilter copy pasted javadoc from QualifierFilter
   HBASE-2619  HBase shell 'alter' command cannot set table properties to False
               (Christo Wilson via Stack)
   HBASE-2621  Fix bad link to HFile documentation in javadoc
               (Jeff Hammerbacher via Todd Lipcon)
   HBASE-2371  Fix 'list' command in shell (Alexey Kovyrin via Todd Lipcon)
   HBASE-2620  REST tests don't use ephemeral ports
   HBASE-2635  ImmutableBytesWritable ignores offset in several cases
   HBASE-2654  Add additional maven repository temporarily to fetch Guava
   HBASE-2560  Fix IllegalArgumentException when manually splitting table
               from web UI
   HBASE-2657  TestTableResource is broken in trunk
   HBASE-2662  TestScannerResource.testScannerResource broke in trunk
   HBASE-2667  TestHLog.testSplit failing in trunk (Cosmin and Stack)
   HBASE-2614  killing server in TestMasterTransitions causes NPEs and test deadlock
   HBASE-2615  M/R on bulk imported tables
   HBASE-2676  TestInfoServers should use ephemeral ports
   HBASE-2616  TestHRegion.testWritesWhileGetting flaky on trunk
   HBASE-2684  TestMasterWrongRS flaky in trunk
   HBASE-2691  LeaseStillHeldException totally ignored by RS, wrongly named
   HBASE-2703  ui not working in distributed context
   HBASE-2710  Shell should use default terminal width when autodetection fails
               (Kannan Muthukkaruppan via Todd Lipcon)
   HBASE-2712  Cached region location that went stale won't recover if 
               asking for first row
   HBASE-2732  TestZooKeeper was broken, HBASE-2691 showed it
   HBASE-2670  Provide atomicity for readers even when new insert has
               same timestamp as current row.
   HBASE-2733  Replacement of LATEST_TIMESTAMP with real timestamp was broken
               by HBASE-2353.
   HBASE-2734  TestFSErrors should catch all types of exceptions, not just RTE
   HBASE-2738  TestTimeRangeMapRed updated now that we keep multiple cells with
               same timestamp in MemStore
   HBASE-2725  Shutdown hook management is gone in trunk; restore
   HBASE-2740  NPE in ReadWriteConsistencyControl
   HBASE-2752  Don't retry forever when waiting on too many store files
   HBASE-2737  CME in ZKW introduced in HBASE-2694 (Karthik Ranganathan via JD)
   HBASE-2756  MetaScanner.metaScan doesn't take configurations
   HBASE-2656  HMaster.getRegionTableClosest should not return null for closed
               regions
   HBASE-2760  Fix MetaScanner TableNotFoundException when scanning starting at
               the first row in a table.
   HBASE-1025  Reconstruction log playback has no bounds on memory used
   HBASE-2757  Fix flaky TestFromClientSide test by forcing region assignment
   HBASE-2741  HBaseExecutorService needs to be multi-cluster friendly
               (Karthik Ranganathan via JD)
   HBASE-2769  Fix typo in warning message for HBaseConfiguration
   HBASE-2768  Fix teardown order in TestFilter
   HBASE-2763  Cross-port HADOOP-6833 IPC parameter leak bug
   HBASE-2758  META region stuck in RS2ZK_REGION_OPENED state
               (Karthik Ranganathan via jgray)
   HBASE-2767  Fix reflection in tests that was made incompatible by HDFS-1209
   HBASE-2617  Load balancer falls into pathological state if one server under
               average - slop; endless churn
   HBASE-2729  Interrupted or failed memstore flushes should not corrupt the
               region
   HBASE-2772  Scan doesn't recover from region server failure
   HBASE-2775  Update of hadoop jar in HBASE-2771 broke TestMultiClusters
   HBASE-2774  Spin in ReadWriteConsistencyControl eating CPU (load > 40) and
               no progress running YCSB on clean cluster startup                     
   HBASE-2785  TestScannerTimeout.test2772 is flaky
   HBASE-2787  PE is confused about flushCommits
   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
   HBASE-2944  cannot alter bloomfilter setting for a column family from
               hbase shell (Kannan via jgray)
   HBASE-2948  bin/hbase shell broken (after hbase-2692)
               (Sebastian Bauer via Stack)
   HBASE-2954  Fix broken build caused by hbase-2692 commit
   HBASE-2918  SequenceFileLogWriter doesnt make it clear if there is no
               append by config or by missing lib/feature
   HBASE-2799  "Append not enabled" warning should not show if hbase
               root dir isn't on DFS
   HBASE-2943  major_compact (and other admin commands) broken for .META.
   HBASE-2643  Figure how to deal with eof splitting logs
               (Nicolas Spiegelberg via Stack)
   HBASE-2925  LRU of HConnectionManager.HBASE_INSTANCES breaks if
               HBaseConfiguration is changed
               (Robert Mahfoud via Stack)
   HBASE-2964  Deadlock when RS tries to RPC to itself inside SplitTransaction
   HBASE-1485  Wrong or indeterminate behavior when there are duplicate
               versions of a column (pranav via jgray)
   HBASE-2967  Failed split: IOE 'File is Corrupt!' -- sync length not being
               written out to SequenceFile
   HBASE-2969  missing sync in HTablePool.getTable()
               (Guilherme Mauro Germoglio Barbosa via Stack)
   HBASE-2973  NPE in LogCleaner
   HBASE-2974  LoadBalancer ArithmeticException: / by zero
   HBASE-2975  DFSClient names in master and RS should be unique
   HBASE-2978  LoadBalancer IndexOutOfBoundsException
   HBASE-2983  TestHLog unit test is mis-comparing an assertion
               (Alex Newman via Todd Lipcon)
   HBASE-2986  multi writable can npe causing client hang
   HBASE-2979  Fix failing TestMultParrallel in hudson build
   HBASE-2899  hfile.min.blocksize.size ignored/documentation wrong
   HBASE-3006  Reading compressed HFile blocks causes way too many DFS RPC
               calls severly impacting performance
               (Kannan Muthukkaruppan via Stack)
   HBASE-3010  Can't start/stop/start... cluster using new master
   HBASE-3015  recovered.edits files not deleted if it only contain edits that
               have already been flushed; hurts perf for all future opens of
               the region
   HBASE-3018  Bulk assignment on startup runs serially through the cluster
               servers assigning in bulk to one at a time
   HBASE-3023  NPE processing server crash in MetaReader. getServerUserRegions
   HBASE-3024  NPE processing server crash in MetaEditor.addDaughter
   HBASE-3026  Fixup of "missing" daughters on split is too aggressive
   HBASE-3003  ClassSize constants dont use 'final'
   HBASE-3002  Fix zookeepers.sh to work properly with strange JVM options
   HBASE-3028  No basescanner means no GC'ing of split, offlined parent regions
   HBASE-2989  [replication] RSM won't cleanup after locking if 0 peers
   HBASE-2992  [replication] MalformedObjectNameException in ReplicationMetrics
   HBASE-3037  When new master joins running cluster does "Received report from
               unknown server -- telling it to STOP_REGIONSERVER.
   HBASE-3039  Stuck in regionsInTransition because rebalance came in at same
               time as a split
   HBASE-3042  Use LO4J in SequenceFileLogReader
               (Nicolas Spiegelberg via Stack)
   HBASE-2995  Incorrect dependency on Log class from Jetty
   HBASE-3038  WALReaderFSDataInputStream.getPos() fails if Filesize > MAX_INT
               (Nicolas Spiegelberg via Stack)
   HBASE-3047  If new master crashes, restart is messy
   HBASE-3054  Remore TestEmptyMetaInfo; it doesn't make sense any more.
   HBASE-3056  Fix ordering in ZKWatcher constructor to prevent weird race
               condition
   HBASE-3057  Race condition when closing regions that causes flakiness in
               TestRestartCluster
   HBASE-3058  Fix REST tests on trunk
   HBASE-3068  IllegalStateException when new server comes online, is given
               200 regions to open and 200th region gets timed out of regions
               in transition
   HBASE-3064  Long sleeping in HConnectionManager after thread is interrupted
               (Bruno Dumon via Stack)
   HBASE-2753  Remove sorted() methods from Result now that Gets are Scans
   HBASE-3059  TestReadWriteConsistencyControl occasionally hangs (Hairong 
               via Ryan)
   HBASE-2906  [rest/stargate] URI decoding in RowResource
   HBASE-3008  Memstore.updateColumnValue passes wrong flag to heapSizeChange
               (Causes memstore size to go negative)
   HBASE-3089  REST tests are broken locally and up in hudson
   HBASE-3062  ZooKeeper KeeperException$ConnectionLossException is a
               "recoverable" exception; we should retry a while on server
               startup at least.
   HBASE-3074  Zookeeper test failing on hudson
   HBASE-3089  REST tests are broken locally and up in hudson
   HBASE-3085  TestSchemaResource broken on TRUNK up on HUDSON
   HBASE-3080  TestAdmin hanging on hudson
   HBASE-3063  TestThriftServer failing in TRUNK
   HBASE-3094  Fixes for miscellaneous broken tests
   HBASE-3060  [replication] Reenable replication on trunk with unit tests
   HBASE-3041  [replication] ReplicationSink shouldn't kill the whole RS when
               it fails to replicate
   HBASE-3044  [replication] ReplicationSource won't cleanup logs if there's
               nothing to replicate
   HBASE-3113  Don't reassign regions if cluster is being shutdown
   HBASE-2933  Skip EOF Errors during Log Recovery
               (Nicolas Spiegelberg via Stack)
   HBASE-3081  Log Splitting & Replay: Distinguish between Network IOE and
               Parsing IOE (Nicolas Spiegelberg via Stack)
   HBASE-3098  TestMetaReaderEditor is broken in TRUNK; hangs
   HBASE-3110  TestReplicationSink failing in TRUNK up on Hudson
   HBASE-3101  bin assembly doesn't include -tests or -source jars
   HBASE-3121  [rest] Do not perform cache control when returning results
   HBASE-2669  HCM.shutdownHook causes data loss with
               hbase.client.write.buffer != 0
   HBASE-2985  HRegionServer.multi() no longer calls HRegion.put(List) when 
               possible
   HBASE-3031  CopyTable MR job named "Copy Table" in Driver
   HBASE-2658  REST (stargate) TableRegionModel Regions need to be updated to
               work w/ new region naming convention from HBASE-2531
   HBASE-3140  Rest schema modification throw null pointer exception
               (David Worms via Stack)
   HBASE-2998  rolling-restart.sh shouldn't rely on zoo.cfg
   HBASE-3145  importtsv fails when the line contains no data
               (Kazuki Ohta via Todd Lipcon)
   HBASE-2984  [shell] Altering a family shouldn't reset to default unchanged
               attributes
   HBASE-3143  Adding the tests' hbase-site.xml to the jar breaks some clients
   HBASE-3139  Server shutdown processor stuck because meta not online
   HBASE-3136  Stale reads from ZK can break the atomic CAS operations we
               have in ZKAssign
   HBASE-2753  Remove sorted() methods from Result now that Gets are Scans
   HBASE-3147  Regions stuck in transition after rolling restart, perpetual
               timeout handling but nothing happens
   HBASE-3158  Bloom File Writes Broken if keySize is large
               (Nicolas Spiegelberg via Stack)
   HBASE-3155  HFile.appendMetaBlock() uses wrong comparator
               (Nicolas Spiegelberg via Stack)
   HBASE-3012  TOF doesn't take zk client port for remote clusters
   HBASE-3159  Double play of OpenedRegionHandler for a single region
               and assorted fixes around this + TestRollingRestart added
   HBASE-3160  Use more intelligent priorities for PriorityCompactionQueue
               (Nicolas Spiegelberg via Stack)
   HBASE-3172  Reverse order of AssignmentManager and MetaNodeTracker in
               ZooKeeperWatcher
   HBASE-2406  Define semantics of cell timestamps/versions
   HBASE-3175  Commit of HBASE-3160 broke TestPriorityCompactionQueue up on
               hudson (nicolas via jgray)
   HBASE-3163  If we timeout PENDING_CLOSE and send another closeRegion RPC,
               need to handle NSRE from RS (comes as a RemoteException)
   HBASE-3164  Handle case where we open META, ROOT has been closed but
               znode location not deleted yet, and try to update META
               location in ROOT
   HBASE-2006  Documentation of hbase-site.xml parameters
   HBASE-2672  README.txt should contain basic information like how to run
               or build HBase
   HBASE-3179  Enable ReplicationLogsCleaner only if replication is,
               and fix its test
   HBASE-3185  User-triggered compactions are triggering splits!
   HBASE-1932  Encourage use of 'lzo' compression... add the wiki page to
               getting started
   HBASE-3151  NPE when trying to read regioninfo from .META.
   HBASE-3191  FilterList with MUST_PASS_ONE and SCVF isn't working
               (Stefan Seelmann via Stack)
   HBASE-2471  Splitting logs, we'll make an output file though the
               region no longer exists
   HBASE-3095  Client needs to reconnect if it expires its zk session
   HBASE-2935  Refactor "Corrupt Data" Tests in TestHLogSplit
               (Alex Newman via Stack)
   HBASE-3202  Closing a region, if we get a ConnectException, handle
               it rather than abort
   HBASE-3198  Log rolling archives files prematurely
   HBASE-3203  We can get an order to open a region while shutting down
               and it'll hold up regionserver shutdown
   HBASE-3204  Reenable deferred log flush
   HBASE-3195  [rest] Fix TestTransform breakage on Hudson
   HBASE-3205  TableRecordReaderImpl.restart NPEs when first next is restarted
   HBASE-3208  HLog.findMemstoresWithEditsOlderThan needs to look for edits
               that are equal to too
   HBASE-3141  Master RPC server needs to be started before an RS can check in
   HBASE-3112  Enable and disable of table needs a bit of loving in new master
   HBASE-3207  If we get IOException when closing a region, we should still
               remove it from online regions and complete the close in ZK
   HBASE-3199  large response handling: some fixups and cleanups
   HBASE-3212  More testing of enable/disable uncovered base condition not in
               place; i.e. that only one enable/disable runs at a time
   HBASE-2898  MultiPut makes proper error handling impossible and leads to 
   	       corrupted data
   HBASE-3213  If do abort of backup master will get NPE instead of graceful
               abort
   HBASE-3214  TestMasterFailover.testMasterFailoverWithMockedRITOnDeadRS is
               failing (Gary via jgray)
   HBASE-3216  Move HBaseFsck from client to util
   HBASE-3219  Split parents are reassigned on restart and on disable/enable
   HBASE-3222  Regionserver region listing in UI is no longer ordered
   HBASE-3221  Race between splitting and disabling
   HBASE-3224  NPE in KeyValue$KVComparator.compare when compacting
   HBASE-3233  Fix Long Running Stats
   HBASE-3232  Fix KeyOnlyFilter + Add Value Length (Nicolas via Ryan)
   HBASE-3235  Intermittent incrementColumnValue failure in TestHRegion 
   	       (Gary via Ryan)
   HBASE-3241  check to see if we exceeded hbase.regionserver.maxlogs limit is
               incorrect (Kannan Muthukkaruppan via JD)
   HBASE-3239  Handle null regions to flush in HLog.cleanOldLogs (Kannan
               Muthukkaruppan via JD)
   HBASE-3237  Split request accepted -- BUT CURRENTLY A NOOP
   HBASE-3252  TestZooKeeperNodeTracker sometimes fails due to a race condition
               in test notification (Gary Helmling via Andrew Purtell)
   HBASE-3253  Thrift's missing from all the repositories in pom.xml
   HBASE-3258  EOF when version file is empty
   HBASE-3259  Can't kill the region servers when they wait on the master or
               the cluster state znode
   HBASE-3249  Typing 'help shutdown' in the shell shouldn't shutdown the cluster
   HBASE-3262  TestHMasterRPCException uses non-ephemeral port for master
   HBASE-3272  Remove no longer used options
   HBASE-3269  HBase table truncate semantics seems broken as "disable" table
               is now async by default
   HBASE-3275  [rest] No gzip/deflate content encoding support
   HBASE-3261  NPE out of HRS.run at startup when clock is out of sync
   HBASE-3277  HBase Shell zk_dump command broken
   HBASE-3267  close_region shell command breaks region
   HBASE-3265  Regionservers waiting for ROOT while Master waiting for RegionServers
   HBASE-3263  Stack overflow in AssignmentManager
   HBASE-3234  hdfs-724 "breaks" TestHBaseTestingUtility multiClusters
   HBASE-3286  Master passes IP and not hostname back to region server
   HBASE-3297  If rows in .META. with no HRegionInfo cell, then hbck fails read
               of .META.
   HBASE-3294  WARN org.apache.hadoop.hbase.regionserver.Store: Not in set
               (double-remove?) org.apache.hadoop.hbase.regionserver.StoreScanner@76607d3d
   HBASE-3299  If failed open, we don't output the IOE
   HBASE-3291  If split happens while regionserver is going down, we can stick open.
   HBASE-3295  Dropping a 1k+ regions table likely ends in a client socket timeout
               and it's very confusing
   HBASE-3301  Treat java.net.SocketTimeoutException same as ConnectException
               assigning/unassigning regions
   HBASE-3296  Newly created table ends up disabled instead of assigned
   HBASE-3304  Get spurious master fails during bootup
   HBASE-3298  Regionserver can close during a split causing double assignment
   HBASE-3309  " Not running balancer because dead regionserver processing" is a lie
   HBASE-3314  [shell] 'move' is broken
   HBASE-3315  Add debug output for when balancer makes bad balance
   HBASE-3278  AssertionError in LoadBalancer
   HBASE-3318  Split rollback leaves parent with writesEnabled=false
   HBASE-3334  Refresh our hadoop jar because of HDFS-1520
   HBASE-3347  Can't truncate/disable table that has rows in .META. that have empty
               info:regioninfo column
   HBASE-3321  Replication.join shouldn't clear the logs znode
   HBASE-3352  enabling a non-existent table from shell prints no error
   HBASE-3353  table.jsp doesn't handle entries in META without server info
   HBASE-3351  ReplicationZookeeper goes to ZK every time a znode is modified
   HBASE-3326  Replication state's znode should be created else it 
               defaults to false
   HBASE-3355  Stopping a stopped cluster leaks an HMaster
   HBASE-3356  Add more checks in replication if RS is stopped
   HBASE-3358  Recovered replication queue wait on themselves when terminating
   HBASE-3359  LogRoller not added as a WAL listener when replication is enabled
   HBASE-3360  ReplicationLogCleaner is enabled by default in 0.90 -- causes NPE
   HBASE-3363  ReplicationSink should batch delete
   HBASE-3365  EOFE contacting crashed RS causes Master abort
   HBASE-3362  If .META. offline between OPENING and OPENED, then wrong server
               location in .META. is possible
   HBASE-3368  Split message can come in before region opened message; results
               in 'Region has been PENDING_CLOSE for too long' cycle
   HBASE-3366  WALObservers should be notified before the lock
   HBASE-3367  Failed log split not retried
   HBASE-3370  ReplicationSource.openReader fails to locate HLogs when they
               aren't split yet
   HBASE-3371  Race in TestReplication can make it fail
   HBASE-3323  OOME in master splitting logs
   HBASE-3374  Our jruby jar has *GPL jars in it; fix
   HBASE-3343  Server not shutting down after losing log lease
   HBASE-3381  Interrupt of a region open comes across as a successful open
   HBASE-3386  NPE in TableRecordReaderImpl.restart
   HBASE-3388  NPE processRegionInTransition(AssignmentManager.java:264)
               doing rolling-restart.sh
   HBASE-3383  [0.90RC1] bin/hbase script displays "no such file" warning on
               target/cached_classpath.txt
   HBASE-3344  Master aborts after RPC to server that was shutting down
   HBASE-3408  AssignmentManager NullPointerException
   HBASE-3402  Web UI shows two META regions
   HBASE-3409  Failed server shutdown processing when retrying hlog split
   HBASE-3412  HLogSplitter should handle missing HLogs
   HBASE-3420  Handling a big rebalance, we can queue multiple instances of
               a Close event; messes up state
   HBASE-3423  hbase-env.sh over-rides HBASE_OPTS incorrectly (Ted Dunning via
               Andrew Purtell)
   HBASE-3407  hbck should pause between fixing and re-checking state
   HBASE-3401  Region IPC operations should be high priority
   HBASE-3430  hbase-daemon.sh should clean up PID files on process stop


  IMPROVEMENTS
   HBASE-1760  Cleanup TODOs in HTable
   HBASE-1759  Ability to specify scanner caching on a per-scan basis
               (Ken Weiner via jgray)
   HBASE-1763  Put writeToWAL methods do not have proper getter/setter names
               (second commit to fix compile error in hregion)
   HBASE-1770  HTable.setWriteBufferSize does not flush the writeBuffer when
               its size is set to a value lower than its current size.
               (Mathias via jgray)
   HBASE-1771  PE sequentialWrite is 7x slower because of
               MemStoreFlusher#checkStoreFileCount
   HBASE-1758  Extract interface out of HTable (Vaibhav Puranik via Andrew
               Purtell)
   HBASE-1776  Make rowcounter enum public
   HBASE-1276  [testing] Upgrade to JUnit 4.x and use @BeforeClass
               annotations to optimize tests
   HBASE-1800  Too many ZK connections
   HBASE-1819  Update to 0.20.1 hadoop and zk 3.2.1
   HBASE-1820  Update jruby from 1.2 to 1.3.1
   HBASE-1687  bin/hbase script doesn't allow for different memory settings
               for each daemon type
   HBASE-1823  Ability for Scanners to bypass the block cache
   HBASE-1827  Add disabling block cache scanner flag to the shell
   HBASE-1835  Add more delete tests
   HBASE-1574  Client and server APIs to do batch deletes
   HBASE-1833  hfile.main fixes
   HBASE-1684  Backup (Export/Import) contrib tool for 0.20
   HBASE-1860  Change HTablePool#createHTable from private to protected
   HBASE-48    Bulk load tools
   HBASE-1855  HMaster web application doesn't show the region end key in the
               table detail page (Andrei Dragomir via Stack)
   HBASE-1870  Bytes.toFloat(byte[], int) is marked private
   HBASE-1874  Client Scanner mechanism that is used for HbaseAdmin methods
               (listTables, tableExists), is very slow if the client is far
               away from the HBase cluster (Andrei Dragomir via Stack)
   HBASE-1879  ReadOnly transactions generate WAL activity (Clint Morgan via
               Stack)
   HBASE-1875  Compression test utility
   HBASE-1832  Faster enable/disable/delete
   HBASE-1481  Add fast row key only scanning
   HBASE-1506  [performance] Make splits faster
   HBASE-1722  Add support for exporting HBase metrics via JMX
               (Gary Helming via Stack)
   HBASE-1899  Use scanner caching in shell count
   HBASE-1887  Update hbase trunk to latests on hadoop 0.21 branch so we can
               all test sync/append
   HBASE-1902  Let PerformanceEvaluation support setting tableName and compress
               algorithm (Schubert Zhang via Stack)
   HBASE-1885  Simplify use of IndexedTable outside Java API
               (Kevin Patterson via Stack)
   HBASE-1903  Enable DEBUG by default
   HBASE-1907  Version all client writables
   HBASE-1914  hlog should be able to set replication level for the log
               indendently from any other files
   HBASE-1537  Intra-row scanning
   HBASE-1918  Don't do DNS resolving in .META. scanner for each row
   HBASE-1756  Refactor HLog (changing package first)
   HBASE-1926  Remove unused xmlenc jar from trunk
   HBASE-1936  HLog group commit
   HBASE-1921  When the Master's session times out and there's only one,
               cluster is wedged
   HBASE-1942  Update hadoop jars in trunk; update to r831142
   HBASE-1943  Remove AgileJSON; unused
   HBASE-1944  Add a "deferred log flush" attribute to HTD
   HBASE-1945  Remove META and ROOT memcache size bandaid 
   HBASE-1947  If HBase starts/stops often in less than 24 hours, 
               you end up with lots of store files
   HBASE-1829  Make use of start/stop row in TableInputFormat
               (Lars George via Stack)
   HBASE-1867  Tool to regenerate an hbase table from the data files
   HBASE-1904  Add tutorial for installing HBase on Windows using Cygwin as
               a test and development environment (Wim Van Leuven via Stack)
   HBASE-1963  Output to multiple tables from Hadoop MR without use of HTable
               (Kevin Peterson via Andrew Purtell)
   HBASE-1975  SingleColumnValueFilter: Add ability to match the value of
               previous versions of the specified column
               (Jeremiah Jacquet via Stack)
   HBASE-1971  Unit test the full WAL replay cycle
   HBASE-1970  Export does one version only; make it configurable how many
               it does
   HBASE-1987  The Put object has no simple read methods for checking what
               has already been added (Ryan Smith via Stack)
   HBASE-1985  change HTable.delete(ArrayList) to HTable.delete(List)
   HBASE-1958  Remove "# TODO: PUT BACK !!! "${HADOOP_HOME}"/bin/hadoop
               dfsadmin -safemode wait"
   HBASE-2011  Add zktop like output to HBase's master UI (Lars George via
               Andrew Purtell)
   HBASE-1995  Add configurable max value size check (Lars George via Andrew
               Purtell)
   HBASE-2017  Set configurable max value size check to 10MB
   HBASE-2029  Reduce shell exception dump on console
               (Lars George and J-D via Stack)
   HBASE-2027  HConnectionManager.HBASE_INSTANCES leaks TableServers
               (Dave Latham via Stack)
   HBASE-2013  Add useful helpers to HBaseTestingUtility.java (Lars George
               via J-D)
   HBASE-2031  When starting HQuorumPeer, try to match on more than 1 address
   HBASE-2043  Shell's scan broken
   HBASE-2044  HBASE-1822 removed not-deprecated APIs
   HBASE-2049  Cleanup HLog binary log output (Dave Latham via Stack)
   HBASE-2052  Make hbase more 'live' when comes to noticing table creation,
               splits, etc., for 0.20.3
   HBASE-2059  Break out WAL reader and writer impl from HLog
   HBASE-2060  Missing closing tag in mapreduce package info (Lars George via
               Andrew Purtell)
   HBASE-2028  Add HTable.incrementColumnValue support to shell (Lars George
               via Andrew Purtell)
   HBASE-2062  Metrics documentation outdated (Lars George via JD)
   HBASE-2045  Update trunk and branch zk to just-release 3.2.2.
   HBASE-2074  Improvements to the hadoop-config script (Bassam Tabbara via
               Stack)
   HBASE-2076  Many javadoc warnings
   HBASE-2068  MetricsRate is missing "registry" parameter (Lars George via JD)
   HBASE-2025  0.20.2 accessed from older client throws 
               UndeclaredThrowableException; frustrates rolling upgrade
   HBASE-2081  Set the retries higher in shell since client pause is lower
   HBASE-1956  Export HDFS read and write latency as a metric
   HBASE-2036  Use Configuration instead of HBaseConfiguration (Enis Soztutar
               via Stack)
   HBASE-2085  StringBuffer -> StringBuilder - conversion of references as
               necessary (Kay Kay via Stack)
   HBASE-2052  Upper bound of outstanding WALs can be overrun
   HBASE-2086  Job(configuration,String) deprecated (Kay Kay via Stack)
   HBASE-1996  Configure scanner buffer in bytes instead of number of rows
               (Erik Rozendaal and Dave Latham via Stack)
   HBASE-2090  findbugs issues (Kay Kay via Stack)
   HBASE-2089  HBaseConfiguration() ctor. deprecated (Kay Kay via Stack)
   HBASE-2035  Binary values are formatted wrong in shell
   HBASE-2095  TIF shuold support more confs for the scanner (Bassam Tabbara
               via Andrew Purtell)
   HBASE-2107  Upgrading Lucene 2.2 to Lucene 3.0.0 (Kay Kay via Stack)
   HBASE-2111  Move to ivy broke our being able to run in-place; i.e.
               ./bin/start-hbase.sh in a checkout
   HBASE-2136  Forward-port the old mapred package
   HBASE-2133  Increase default number of client handlers
   HBASE-2109  status 'simple' should show total requests per second, also 
   	       the requests/sec is wrong as is
   HBASE-2151  Remove onelab and include generated thrift classes in javadoc
               (Lars Francke via Stack)
   HBASE-2149  hbase.regionserver.global.memstore.lowerLimit is too low
   HBASE-2157  LATEST_TIMESTAMP not replaced by current timestamp in KeyValue
               (bulk loading)
   HBASE-2153  Publish generated HTML documentation for Thrift on the website
               (Lars Francke via Stack)
   HBASE-1373  Update Thrift to use compact/framed protocol (Lars Francke via
               Stack)
   HBASE-2172  Add constructor to Put for row key and timestamp
               (Lars Francke via Stack)
   HBASE-2178  Hooks for replication
   HBASE-2180  Bad random read performance from synchronizing
               hfile.fddatainputstream
   HBASE-2194  HTable - put(Put) , put(List<Put) code duplication (Kay Kay via
               Stack)
   HBASE-2185  Add html version of default hbase-site.xml (Kay Kay via Stack)
   HBASE-2198  SingleColumnValueFilter should be able to find the column value
               even when it's not specifically added as input on the sc
               (Ferdy via Stack)
   HBASE-2189  HCM trashes meta cache even when not needed
   HBASE-2190  HRS should report to master when HMsg are available
   HBASE-2209  Support of List [ ] in HBaseOutputWritable for serialization
               (Kay Kay via Stack)
   HBASE-2177  Add timestamping to gc logging option
   HBASE-2066  Perf: parallelize puts
   HBASE-2222  Improve log "Trying to contact region server Some server for
               region, row 'ip_info_100,,1263329969690', but failed after
               11 attempts".
   HBASE-2220  Add a binary comparator that only compares up to the length
               of the supplied byte array (Bruno Dumon via Stack)
   HBASE-2211  Add a new Filter that checks a single column value but does not
               emit it. (Ferdy via Stack)
   HBASE-2241  Change balancer sloppyness from 0.1 to 0.3
   HBASE-2250  typo in the maven pom
   HBASE-2254  Improvements to the Maven POMs (Lars Francke via Stack)
   HBASE-2262  ZKW.ensureExists should check for existence
   HBASE-2264  Adjust the contrib apps to the Maven project layout 
               (Lars Francke via Lars George)
   HBASE-2245  Unnecessary call to syncWal(region); in HRegionServer 
               (Benoit Sigoure via JD)
   HBASE-2246  Add a getConfiguration method to HTableInterface
               (Benoit Sigoure via JD)
   HBASE-2282  More directories should be ignored when using git for
               development (Alexey Kovyrin via Stack)
   HBASE-2267  More improvements to the Maven build (Lars Francke via Stack)
   HBASE-2174  Stop from resolving HRegionServer addresses to names using DNS
               on every heartbeat (Karthik Ranganathan via Stack) 
   HBASE-2302  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 (Kay Kay via Stack) 
   HBASE-2309  Add apache releases to pom (list of ) repositories
               (Kay Kay via Stack)
   HBASE-2279  Hbase Shell does not have any tests (Alexey Kovyrin via Stack)
   HBASE-2314  [shell] Support for getting counters (Alexey Kovyrin via Stack)
   HBASE-2324  Refactoring of TableRecordReader (mapred / mapreduce) for reuse
               outside the scope of InputSplit / RecordReader (Kay Kay via
               Stack)
   HBASE-2313  Nit-pick about hbase-2279 shell fixup, if you do get with
               non-existant column family, throws lots of exceptions
               (Alexey Kovyrin via Stack)
   HBASE-2331  [shell] count command needs a way to specify scan caching
               (Alexey Kovyrin via Stack)
   HBASE-2364  Ignore Deprecations during build (Paul Smith via Stack)
   HBASE-2338  log recovery: deleted items may be resurrected
               (Aravind Menon via Stack)
   HBASE-2359  WALEdit doesn't implement HeapSize
               (Kannan Muthukkaruppan via Stack)
   HBASE-2348  [stargate] Stargate needs both JAR and WAR artifacts (Paul Smith
               via Andrew Purtell)
   HBASE-2389  HTable - delete / put unnecessary sync (Kay Kay via Stack)
   HBASE-2385  Debug Message "Received report from unknown server" should be
               INFO or WARN
   HBASE-2374  TableInputFormat - Configurable parameter to add column families
               (Kay Kay via Stack)
   HBASE-2388  Give a very explicit message when we figure a big GC pause
   HBASE-2270  Improve how we handle recursive calls in ExplicitColumnTracker 
               and WildcardColumnTracker
   HBASE-2402  [stargate] set maxVersions on gets
   HBASE-2087  The wait on compaction because "Too many store files" 
               holds up all flushing
   HBASE-2252  Mapping a very big table kills region servers
   HBASE-2412  [stargate] PerformanceEvaluation
   HBASE-2419  Remove from RS logs the fat NotServingRegionException stack
   HBASE-2286  [Transactional Contrib] Correctly handle or avoid cases where 
               writes occur in same millisecond (Clint Morgan via J-D)
   HBASE-2360  Make sure we have all the hadoop fixes in our our copy of its rpc
               (Todd Lipcon via Stack)
   HBASE-2423  Update 'Getting Started' for 0.20.4 including making
               "important configurations more visiable"
   HBASE-2435  HTablePool - method to release resources after use
               (Kay Kay via Stack)
   HBASE-1933  Upload Hbase jars to a public maven repository
               (Kay Kay via Stack)
   HBASE-2440  Master UI should check against known bad JDK versions and
               warn the user (Todd Lipcon via Stack)
   HBASE-2430  Disable frag display in trunk, let HBASE-2165 replace it
   HBASE-1892  [performance] make hbase splits run faster
   HBASE-2456  deleteChangedReaderObserver spitting warnings after HBASE-2248
   HBASE-2452  Fix our Maven dependencies (Lars Francke via Stack)
   HBASE-2490  Improve the javadoc of the client API for HTable
               (Benoit Sigoure via Stack)
   HBASE-2488  Master should warn more loudly about unexpected events
               (Todd Lipcon via Stack)
   HBASE-2393  ThriftServer instantiates a new HTable per request
               (Bogdan DRAGU via Stack)
   HBASE-2496  Less ArrayList churn on the scan path
   HBASE-2414  Enhance test suite to be able to specify distributed scenarios
   HBASE-2518  Kill all the trailing whitespaces in the code base
               (Benoit Sigoure via Stack)
   HBASE-2528  ServerManager.ServerMonitor isn't daemonized
   HBASE-2537  Change ordering of maven repos listed in pom.xml to have
               ibiblio first
   HBASE-2540  Make QueryMatcher.MatchCode public (Clint Morgan via Stack)
   HBASE-2524  Unresponsive region server, potential deadlock
               (Todd Lipcon via Stack)
   HBASE-2547  [mvn] assembly:assembly does not include hbase-X.X.X-test.jar
               (Paul Smith via Stack)
   HBASE-2037  The core elements of HBASE-2037: refactoring flushing, and adding 
   	           configurability in which HRegion subclass is instantiated
   HBASE-2248  Provide new non-copy mechanism to assure atomic reads in get and scan
   HBASE-2523  Add check for licenses before rolling an RC, add to
               how-to-release doc. and check for inlining a tool that does
               this for us
   HBASE-2234  HBASE-2234  Roll Hlog if any datanode in the write pipeline dies
               (Nicolas Spiegelberg via Stack)
   HBASE-2340  Add end-to-end test of sync/flush (Forward-port from branch)
   HBASE-2555  Get rid of HColumnDescriptor.MAPFILE_INDEX_INTERVAL
   HBASE-2520  Cleanup arrays vs Lists of scanners (Todd Lipcon via Stack)
   HBASE-2551  Forward port fixes that are in branch but not in trunk (part
               of the merge of old 0.20 into TRUNK task)
   HBASE-2466  Improving filter API to allow for modification of keyvalue list 
   	           by filter (Juhani Connolly via Ryan)
   HBASE-2566  Remove 'lib' dir; it only has libthrift and that is being
               pulled from http://people.apache.org/~rawson/repo/....
   HBASE-2534  Recursive deletes and misc improvements to ZKW
   HBASE-2577  Remove 'core' maven module; move core up a level
   HBASE-2587  Coral where tests write data when running and make sure clean
               target removes all written
   HBASE-2580  Make the hlog file names unique
   HBASE-2594  Narrow pattern used finding unit tests to run -- make it same
               was we had in 0.20
   HBASE-2538  Work on repository order in pom (adding fbmirror to top,
               ibiblio on bottom)
   HBASE-2613  Remove the code around MSG_CALL_SERVER_STARTUP
   HBASE-2599  BaseScanner says "Current assignment of X is not valid" over
               and over for same region
   HBASE-2630  HFile should use toStringBinary in various places
   HBASE-2632  Shell should autodetect terminal width
   HBASE-2636  Upgrade Jetty to 6.1.24
   HBASE-2437  Refactor HLog splitLog (Cosmin Lehene via Stack)
   HBASE-2638  Speed up REST tests
   HBASE-2653  Remove unused DynamicBloomFilter (especially as its tests are
               failing hudson on occasion)
   HBASE-2651  Allow alternate column separators to be specified for ImportTsv
   HBASE-2661  Add test case for row atomicity guarantee
   HBASE-2578  Add ability for tests to override server-side timestamp 
   	           setting (currentTimeMillis) (Daniel Ploeg via Ryan Rawson)
   HBASE-2558  Our javadoc overview -- "Getting Started", requirements, etc. --
               is not carried across by mvn javadoc:javadoc target
   HBASE-2618  Don't inherit from HConstants (Benoit Sigoure via Stack)
   HBASE-2208  TableServers # processBatchOfRows - converts from List to [ ]
               - Expensive copy 
   HBASE-2694  Move RS to Master region open/close messaging into ZooKeeper
   HBASE-2716  Make HBase's maven artifacts configurable with -D
               (Alex Newman via Stack)
   HBASE-2718  Update .gitignore for trunk after removal of contribs
               (Lars Francke via Stack)
   HBASE-2468  Improvements to prewarm META cache on clients
               (Mingjie Lai via Stack)
   HBASE-2353  Batch puts should sync HLog as few times as possible
   HBASE-2726  Region Server should never abort without an informative log
               message
   HBASE-2724  Update to new release of Guava library
   HBASE-2735  Make HBASE-2694 replication-friendly
   HBASE-2683  Make it obvious in the documentation that ZooKeeper needs 
               permanent storage
   HBASE-2764  Force all Chore tasks to have a thread name
   HBASE-2762  Add warning to master if running without append enabled
   HBASE-2779  Build a -src tgz to sit beside our -bin tgz when you call
               maven assembly:assembly
   HBASE-2783  Quick edit of 'Getting Started' for development release 0.89.x
   HBASE-2345  Add Test in 0.20 to Check for proper HDFS-200 append/sync support
               (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
   HBASE-1845  MultiGet, MultiDelete, and MultiPut - batched to the 
               appropriate region servers (Marc Limotte via Ryan)
   HBASE-2867  Have master show its address using hostname rather than IP
   HBASE-2696  ZooKeeper cleanup and refactor
   HBASE-2695  HMaster cleanup and refactor
   HBASE-2692  Open daughters immediately on parent's regionserver
   HBASE-2405  Close, split, open of regions in RegionServer are run by a single
               thread only.
   HBASE-1676  load balancing on a large cluster doesn't work very well
   HBASE-2953  Edit of hbase-default.xml removing stale configs.
   HBASE-2857  HBaseAdmin.tableExists() should not require a full meta scan
   HBASE-2962  Add missing methods to HTableInterface (and HTable)
               (Lars Francke via Stack)
   HBASE-2942  Custom filters should not require registration in 
               HBaseObjectWritable (Gary Helmling via Andrew Purtell)
   HBASE-2976  Running HFile tool passing fully-qualified filename I get
               'IllegalArgumentException: Wrong FS'
   HBASE-2977  Refactor master command line to a new class
   HBASE-2980  Refactor region server command line to a new class
   HBASE-2988  Support alternate compression for major compactions
   HBASE-2941  port HADOOP-6713 - threading scalability for RPC reads - to HBase
   HBASE-2782  QOS for META table access
   HBASE-3017  More log pruning
   HBASE-3022  Change format of enum messages in o.a.h.h.executor package
   HBASE-3001  Ship dependency jars to the cluster for all jobs
   HBASE-3033  [replication] ReplicationSink.replicateEntries improvements
   HBASE-3040  BlockIndex readIndex too slowly in heavy write scenario
               (Andy Chen via Stack)
   HBASE-3030  The return code of many filesystem operations are not checked
               (dhruba borthakur via Stack)
   HBASE-2646  Compaction requests should be prioritized to prevent blocking
               (Jeff Whiting via Stack)
   HBASE-3019  Make bulk assignment on cluster startup run faster
   HBASE-3066  We don't put the port for hregionserver up into znode since
               new master
   HBASE-2825  Scans respect row locks
   HBASE-3070  Add to hbaseadmin means of shutting down a regionserver
   HBASE-2996  Fix and clean up Maven (Lars Francke via Stack)
   HBASE-2917  Reseek directly to next row (Pranav Khaitan)
   HBASE-2907  [rest/stargate] Improve error response when trying to create a
               scanner on a nonexistant table
   HBASE-3092  Replace deprecated "new HBaseConfiguration(...)" calls
               (Lars Francke)
   HBASE-2968  No standard family filter provided (Andrey Stepachev)
   HBASE-3088  TestAvroServer and TestThriftServer broken because use same
               table in all tests and tests enable/disable/delete
   HBASE-3097  Merge in hbase-1200 doc on bloomfilters into hbase book
   HBASE-2700  Test of: Handle master failover for regions in transition
   HBASE-3115  HBaseClient wastes 1 TCP packet per RPC
   HBASE-3076  Allow to disable automatic shipping of dependency jars
               for mapreduce jobs (Bruno Dumon)
   HBASE-3128  On assign, if ConnectException, reassign another server
   HBASE-3133  Only log compaction requests when a request is actually added
               to the queue
   HBASE-3132  Print TimestampRange and BloomFilters in HFile pretty print
   HBASE-2514  RegionServer should refuse to be assigned a region that use 
   	       LZO when LZO isn't available
   HBASE-3082  For ICV gets, first look in MemStore before reading StoreFiles
               (prakash via jgray)
   HBASE-3167  HBase Export: Add ability to export specific Column Family;
               Turn Block Cache off during export; improve usage doc
               (Kannan Muthukkaruppan via Stack)
   HBASE-3102  Enhance HBase rMetrics for Long-running Stats
               (Nicolas Spiegelberg via Stack)
   HBASE-3169  NPE when master joins running cluster if a RIT references
               a RS no longer present
   HBASE-3174  Add ability for Get operations to enable/disable use of block
               caching
   HBASE-3162  Add TimeRange support into Increment to optimize for counters
               that are partitioned on time
   HBASE-2253  Show Block cache hit ratio for requests where
               cacheBlocks=true
   HBASE-3126  Force use of 'mv -f' when moving aside hbase logfiles
   HBASE-3176  Remove compile warnings in HRegionServer
   HBASE-3154  HBase RPC should support timeout (Hairong via jgray)
   HBASE-3184  Xmx setting in pom to use for tests/surefire does not appear
               to work
   HBASE-3120  [rest] Content transcoding
   HBASE-3181  Review, document, and fix up Regions-in-Transition timeout
               logic
   HBASE-3180  Review periodic master logging, especially ServerManager once
               a minute
   HBASE-3189  Stagger Major Compactions (Nicolas Spiegelberg via Stack)
   HBASE-2564  [rest] Tests use deprecated foundation
   HBASE-2819  hbck should have the ability to repair basic problems
   HBASE-3200  Make is so can disable DEBUG logging on HConnectionImplemenation
               without losing important messages
   HBASE-3201  Add accounting of empty regioninfo_qualifier rows in meta to
               hbasefsck.
   HBASE-3048  unify code for major/minor compactions (Amit via jgray)
   HBASE-3083  Major compaction check should use new timestamp meta
               information in HFiles (rather than dfs timestamp) along with
               TTL to allow major even if single file
   HBASE-3194  HBase should run on both secure and vanilla versions of Hadoop 0.20
               (Gary Helmling via Stack)
   HBASE-3209  HBASE-3209 : New Compaction Algorithm
               (Nicolas Spiegelberg via Stack)
   HBASE-3168  Sanity date and time check when a region server joins the
               cluster (Jeff Whiting and jgray)
   HBASE-3090  Don't include hbase-default in conf/ assembly
   HBASE-3161  Provide option for Stargate to only serve GET requests
               (Bennett Neale via Stack)
   HBASE-3218  Shell help cleanup/cosmetics/edit
   HBASE-3079  Shell displaying uninformative exceptions
   HBASE-3227  Edit of log messages before branching.
   HBASE-3230  Refresh our hadoop jar and update zookeeper to
               just-released 3.3.2
   HBASE-3231  Update to zookeeper 3.3.2.
   HBASE-3273  Set the ZK default timeout to 3 minutes
   HBASE-3279  [rest] Filter for gzip content encoding that wraps both input
               and output side.
   HBASE-3223  Get VersionInfo for Running HBase Process
               (Nicolas Spiegelberg via Stack)
   HBASE-3303  Lower hbase.regionserver.handler.count from 25 back to 10
   HBASE-2467  Concurrent flushers in HLog sync using HDFS-895
   HBASE-3349  Pass HBase configuration to HttpServer
   HBASE-3372  HRS shouldn't print a full stack for ServerNotRunningException
   HBASE-3392  Update backport of InputSampler to reflect MAPREDUCE-1820
   HBASE-3405  Allow HBaseRpcMetrics to register custom interface methods


  NEW FEATURES
   HBASE-1961  HBase EC2 scripts
   HBASE-1982  [EC2] Handle potentially large and uneven instance startup times
   HBASE-2009  [EC2] Support mapreduce
   HBASE-2012  [EC2] LZO support
   HBASE-2019  [EC2] remember credentials if not configured
   HBASE-2080  [EC2] Support multivolume local instance storage
   HBASE-2083  [EC2] HDFS DataNode no longer required on master
   HBASE-2084  [EC2] JAVA_HOME handling broken
   HBASE-2100  [EC2] Adjust fs.file-max
   HBASE-2103  [EC2] pull version from build
   HBASE-2131  [EC2] Mount data volumes as xfs, noatime
   HBASE-1901  "General" partitioner for "hbase-48" bulk (behind the api, write
               hfiles direct) uploader
   HBASE-1433  Update hbase build to match core, use ivy, publish jars to maven
               repo, etc. (Kay Kay via Stack)
   HBASE-2129  Simple Master/Slave replication
   HBASE-2070  Collect HLogs and delete them after a period of time
   HBASE-2221  MR to copy a table
   HBASE-2257  [stargate] multiuser mode
   HBASE-2263  [stargate] multiuser mode: authenticator for zookeeper
   HBASE-2273  [stargate] export metrics via Hadoop metrics, JMX, and zookeeper
   HBASE-2274  [stargate] filter support: JSON descriptors
   HBASE-2316  Need an ability to run shell tests w/o invoking junit
               (Alexey Kovyrin via Stack)
   HBASE-2327  [EC2] Allocate elastic IP addresses for ZK and master nodes
   HBASE-2319  [stargate] multiuser mode: request shaping
   HBASE-2403  [stargate] client HTable interface to REST connector
   HBASE-2438  Addition of a Column Pagination Filter (Paul Kist via Stack)
   HBASE-2473  Add to admin create table start and end key params and
               desired number of regions
   HBASE-2529  Make OldLogsCleaner easier to extend
   HBASE-2527  Add the ability to easily extend some HLog actions
   HBASE-2559  Set hbase.hregion.majorcompaction to 0 to disable
   HBASE-1200  Add bloomfilters (Nicolas Spiegelberg via Stack)
   HBASE-2588  Add easier way to ship HBase dependencies to MR cluster within Job
   HBASE-1923  Bulk incremental load into an existing table
   HBASE-2579  Add atomic checkAndDelete support (Michael Dalton via Stack)
   HBASE-2400  new connector for Avro RPC access to HBase cluster
               (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
   HBASE-3000  Add "hbase classpath" command to dump classpath
   HBASE-3043  'hbase-daemon.sh stop regionserver' should kill compactions
               that are in progress
               (Nicolas Spiegelberg via Stack)
   HBASE-3073  New APIs for Result, faster implementation for some calls
   HBASE-3053  Add ability to have multiple Masters LocalHBaseCluster for
               test writing
   HBASE-2201  JRuby shell for replication
   HBASE-2946  Increment multiple columns in a row at once
   HBASE-3013  Tool to verify data in two clusters
   HBASE-2896  Retain assignment information between cluster
               shutdown/startup
   HBASE-3211  Key (Index) Only Fetches


  OPTIMIZATIONS
   HBASE-410   [testing] Speed up the test suite
   HBASE-2041  Change WAL default configuration values
   HBASE-2997  Performance fixes - profiler driven
   HBASE-2450  For single row reads of specific columns, seek to the 
   	       first column in HFiles rather than start of row
	       (Pranav via Ryan, some Ryan)


Release 0.20.0 - Tue Sep  8 12:53:05 PDT 2009
  INCOMPATIBLE CHANGES
   HBASE-1147  Modify the scripts to use Zookeeper
   HBASE-1144  Store the ROOT region location in Zookeeper
               (Nitay Joffe via Stack)
   HBASE-1146  Replace the HRS leases with Zookeeper
   HBASE-61    Create an HBase-specific MapFile implementation
               (Ryan Rawson via Stack)
   HBASE-1145  Ensure that there is only 1 Master with Zookeeper (Removes
               hbase.master) (Nitay Joffe via Stack)
   HBASE-1289  Remove "hbase.fully.distributed" option and update docs
               (Nitay Joffe via Stack)
   HBASE-1234  Change HBase StoreKey format
   HBASE-1348  Move 0.20.0 targeted TRUNK to 0.20.0 hadoop
               (Ryan Rawson and Stack)
   HBASE-1342  Add to filesystem info needed to rebuild .META.
   HBASE-1361  Disable bloom filters
   HBASE-1367  Get rid of Thrift exception 'NotFound'
   HBASE-1381  Remove onelab and bloom filters files from hbase
   HBASE-1411  Remove HLogEdit.
   HBASE-1357  If one sets the hbase.master to 0.0.0.0 non local regionservers
               can't find the master
   HBASE-1304  New client server implementation of how gets and puts are
               handled (holstad, jgray, rawson, stack)
   HBASE-1582  Translate ColumnValueFilter and RowFilterSet to the new
               Filter interface (Clint Morgan and Stack)
   HBASE-1599  Fix TestFilterSet, broken up on hudson (Jon Gray via Stack)
   HBASE-1799  deprecate o.a.h.h.rest in favor of stargate

  BUG FIXES
   HBASE-1140  "ant clean test" fails (Nitay Joffe via Stack)
   HBASE-1129  Master won't go down; stuck joined on rootScanner
   HBASE-1136  HashFunction inadvertently destroys some randomness
               (Jonathan Ellis via Stack)
   HBASE-1138  Test that readers opened after a sync can see all data up to the
               sync (temporary until HADOOP-4379 is resolved)
   HBASE-1121  Cluster confused about where -ROOT- is
   HBASE-1148  Always flush HLog on root or meta region updates
   HBASE-1181  src/saveVersion.sh bails on non-standard Bourne shells
               (e.g. dash) (K M via Jean-Daniel Cryans)
   HBASE-1175  HBA administrative tools do not work when specifying region
               name (Jonathan Gray via Andrew Purtell)
   HBASE-1190  TableInputFormatBase with row filters scan too far (Dave
               Latham via Andrew Purtell)
   HBASE-1198  OOME in IPC server does not trigger abort behavior
   HBASE-1209  Make port displayed the same as is used in URL for RegionServer
               table in UI (Lars George via Stack)
   HBASE-1217  add new compression and hfile blocksize to HColumnDescriptor
   HBASE-859   HStoreKey needs a reworking
   HBASE-1211  NPE in retries exhausted exception
   HBASE-1233  Transactional fixes: Overly conservative scan read-set,
               potential CME (Clint Morgan via Stack)
   HBASE-1239  in the REST interface does not correctly clear the character
               buffer each iteration-1185  wrong request/sec in the gui
               reporting wrong (Brian Beggs via Stack)
   HBASE-1245  hfile meta block handling bugs (Ryan Rawson via Stack)
   HBASE-1238  Under upload, region servers are unable
               to compact when loaded with hundreds of regions
   HBASE-1247  checkAndSave doesn't Write Ahead Log
   HBASE-1243  oldlogfile.dat is screwed, so is it's region
   HBASE-1169  When a shutdown is requested, stop scanning META regions
               immediately
   HBASE-1251  HConnectionManager.getConnection(HBaseConfiguration) returns 
               same HConnection for different HBaseConfigurations 
   HBASE-1157, HBASE-1156 If we do not take start code as a part of region
               server recovery, we could inadvertantly try to reassign regions
               assigned to a restarted server with a different start code;
               Improve lease handling
   HBASE-1267  binary keys broken in trunk (again) -- part 2 and 3
               (Ryan Rawson via Stack)
   HBASE-1268  ZooKeeper config parsing can break HBase startup
               (Nitay Joffe via Stack)
   HBASE-1270  Fix TestInfoServers (Nitay Joffe via Stack)
   HBASE-1277  HStoreKey: Wrong comparator logic (Evgeny Ryabitskiy)
   HBASE-1275  TestTable.testCreateTable broken (Ryan Rawson via Stack)
   HBASE-1274  TestMergeTable is broken in Hudson (Nitay Joffe via Stack)
   HBASE-1283  thrift's package descrpition needs to update for start/stop
               procedure (Rong-en Fan via Stack)
   HBASE-1284  drop table drops all disabled tables
   HBASE-1290  table.jsp either 500s out or doesnt list the regions (Ryan
               Rawson via Andrew Purtell)
   HBASE-1293  hfile doesn't recycle decompressors (Ryan Rawson via Andrew
               Purtell)
   HBASE-1150  HMsg carries safemode flag; remove (Nitay Joffe via Stack)
   HBASE-1232  zookeeper client wont reconnect if there is a problem (Nitay
               Joffe via Andrew Purtell)
   HBASE-1303  Secondary index configuration prevents HBase from starting
               (Ken Weiner via Stack)
   HBASE-1298  master.jsp & table.jsp do not URI Encode table or region
               names in links (Lars George via Stack)
   HBASE-1310  Off by one error in Bytes.vintToBytes
   HBASE-1202  getRow does not always work when specifying number of versions
   HBASE-1324  hbase-1234 broke testget2 unit test (and broke the build)
   HBASE-1321  hbase-1234 broke TestCompaction; fix and reenable
   HBASE-1330  binary keys broken on trunk (Ryan Rawson via Stack)
   HBASE-1332  regionserver carrying .META. starts sucking all cpu, drives load
               up - infinite loop? (Ryan Rawson via Stack)
   HBASE-1334  .META. region running into hfile errors (Ryan Rawson via Stack)
   HBASE-1338  lost use of compaction.dir; we were compacting into live store
               subdirectory
   HBASE-1058  Prevent runaway compactions
   HBASE-1292  php thrift's getRow() would throw an exception if the row does
               not exist (Rong-en Fan via Stack)
   HBASE-1340  Fix new javadoc warnings (Evgeny Ryabitskiy via Stack)
   HBASE-1287  Partitioner class not used in TableMapReduceUtil
               .initTableReduceJob() (Lars George and Billy Pearson via Stack)
   HBASE-1320  hbase-1234 broke filter tests
   HBASE-1355  [performance] Cache family maxversions; we were calculating on
               each access
   HBASE-1358  Bug in reading from Memcache method (read only from snapshot)
               (Evgeny Ryabitskiy via Stack)
   HBASE-1322  hbase-1234 broke TestAtomicIncrement; fix and reenable
               (Evgeny Ryabitskiy and Ryan Rawson via Stack)
   HBASE-1347  HTable.incrementColumnValue does not take negative 'amount'
               (Evgeny Ryabitskiy via Stack)
   HBASE-1365  Typo in TableInputFormatBase.setInputColums (Jon Gray via Stack)
   HBASE-1279  Fix the way hostnames and IPs are handled
   HBASE-1368  HBASE-1279 broke the build
   HBASE-1264  Wrong return values of comparators for ColumnValueFilter
               (Thomas Schneider via Andrew Purtell)
   HBASE-1374  NPE out of ZooKeeperWrapper.loadZooKeeperConfig
   HBASE-1336  Splitting up the compare of family+column into 2 different
               compare 
   HBASE-1377  RS address is null in master web UI
   HBASE-1344  WARN IllegalStateException: Cannot set a region as open if it
               has not been pending
   HBASE-1386  NPE in housekeeping
   HBASE-1396  Remove unused sequencefile and mapfile config. from
               hbase-default.xml
   HBASE-1398  TableOperation doesnt format keys for meta scan properly
               (Ryan Rawson via Stack)
   HBASE-1399  Can't drop tables since HBASE-1398 (Ryan Rawson via Andrew
               Purtell)
   HBASE-1311  ZooKeeperWrapper: Failed to set watcher on ZNode /hbase/master
               (Nitay Joffe via Stack)
   HBASE-1391  NPE in TableInputFormatBase$TableRecordReader.restart if zoo.cfg
               is wrong or missing on task trackers
   HBASE-1323  hbase-1234 broke TestThriftServer; fix and reenable
   HBASE-1425  ColumnValueFilter and WhileMatchFilter fixes on trunk
               (Clint Morgan via Stack)
   HBASE-1431  NPE in HTable.checkAndSave when row doesn't exist (Guilherme
               Mauro Germoglio Barbosa via Andrew Purtell)
   HBASE-1421  Processing a regionserver message -- OPEN, CLOSE, SPLIT, etc. --
               and if we're carrying more than one message in payload, if
               exception, all messages that follow are dropped on floor
   HBASE-1434  Duplicate property in hbase-default.xml (Lars George via Andrew
               Purtell)
   HBASE-1435  HRegionServer is using wrong info bind address from
               hbase-site.xml (Lars George via Stack)
   HBASE-1438  HBASE-1421 broke the build (#602 up on hudson)
   HBASE-1440  master won't go down because joined on a rootscanner that is
               waiting for ever
   HBASE-1441  NPE in ProcessRegionStatusChange#getMetaRegion
   HBASE-1162  CME in Master in RegionManager.applyActions
   HBASE-1010  IOE on regionserver shutdown because hadn't opened an HLog
   HBASE-1415  Stuck on memcache flush
   HBASE-1257  base64 encoded values are not contained in quotes during the
               HBase REST JSON serialization (Brian Beggs via Stack)
   HBASE-1436  Killing regionserver can make corrupted hfile
   HBASE-1272  Unreadable log messages -- "... to the only server
               localhost_1237525439599_56094" <- You'd have to be perverse
               to recognize that as a hostname, startcode, and port
   HBASE-1395  InfoServers no longer put up a UI
   HBASE-1302  When a new master comes up, regionservers should continue with
               their region assignments from the last master
   HBASE-1457  Taking down ROOT/META regionserver can result in cluster
               becoming in-operational (Ryan Rawson via Stack)
   HBASE-1471  During cluster shutdown, deleting zookeeper regionserver nodes
               causes exceptions
   HBASE-1483  HLog split loses track of edits (Clint Morgan via Stack)
   HBASE-1484  commit log split writes files with newest edits first
               (since hbase-1430); should be other way round
   HBASE-1493  New TableMapReduceUtil methods should be static (Billy Pearson
               via Andrew Purtell)
   HBASE-1486  BLOCKCACHE always on even when disabled (Lars George via Stack)
   HBASE-1491  ZooKeeper errors: "Client has seen zxid 0xe our last zxid
               is 0xd"
   HBASE-1499  Fix javadoc warnings after HBASE-1304 commit (Lars George via
               Stack)
   HBASE-1504  Remove left-over debug from 1304 commit
   HBASE-1518  Delete Trackers using compareRow, should just use raw
               binary comparator (Jon Gray via Stack)
   HBASE-1500  KeyValue$KeyComparator array overrun
   HBASE-1513  Compactions too slow
   HBASE-1516  Investigate if StoreScanner will not return the next row if 
               earlied-out of previous row (Jon Gray)
   HBASE-1520  StoreFileScanner catches and ignore IOExceptions from HFile
   HBASE-1522  We delete splits before their time occasionally
   HBASE-1523  NPE in BaseScanner
   HBASE-1525  HTable.incrementColumnValue hangs()
   HBASE-1526  mapreduce fixup
   HBASE-1503  hbase-1304 dropped updating list of store files on flush
               (jgray via stack)
   HBASE-1480  compaction file not cleaned up after a crash/OOME server
               (Evgeny Ryabitskiy via Stack)
   HBASE-1529  familyMap not invalidated when a Result is (re)read as a
               Writable
   HBASE-1528  Ensure scanners work across memcache snapshot
   HBASE-1447  Take last version of the hbase-1249 design doc. and make
               documentation out of it
   HBASE-1206  Scanner spins when there are concurrent inserts to column family
   HBASE-1536  Controlled crash of regionserver not hosting meta/root leaves
               master in spinning state, regions not reassigned
   HBASE-1543  Unnecessary toString during scanning costs us some CPU
   HBASE-1544  Cleanup HTable (Jonathan Gray via Stack)
   HBASE-1488  After 1304 goes in, fix and reenable test of thrift, mr indexer,
               and merge tool
   HBASE-1531  Change new Get to use new filter API
   HBASE-1549  in zookeeper.sh, use localhost instead of 127.0.0.1
   HBASE-1534  Got ZooKeeper event, state: Disconnected on HRS and then NPE on
               reinit
   HBASE-1387  Before release verify all object sizes using Ryans' instrumented
               JVM trick (Erik Holstad via Stack)
   HBASE-1545  atomicIncrements creating new values with Long.MAX_VALUE
   HBASE-1547  atomicIncrement doesnt increase hregion.memcacheSize
   HBASE-1553  ClassSize missing in trunk
   HBASE-1561  HTable Mismatch between javadoc and what it actually does
   HBASE-1558  deletes use 'HConstants.LATEST_TIMESTAMP' but no one translates
               that into 'now'
   HBASE-1508  Shell "close_region" reveals a Master<>HRS problem, regions are
               not reassigned
   HBASE-1568  Client doesnt consult old row filter interface in
               filterSaysStop() - could result in NPE or excessive scanning
   HBASE-1564  in UI make host addresses all look the same -- not IP sometimes
               and host at others
   HBASE-1567  cant serialize new filters
   HBASE-1585  More binary key/value log output cleanup
               (Lars George via Stack)
   HBASE-1563  incrementColumnValue does not write to WAL (Jon Gray via Stack)
   HBASE-1569  rare race condition can take down a regionserver
   HBASE-1450  Scripts passed to hbase shell do not have shell context set up
               for them
   HBASE-1566  using Scan(startRow,stopRow) will cause you to iterate the
               entire table
   HBASE-1560  TIF can't seem to find one region
   HBASE-1580  Store scanner does not consult filter.filterRow at end of scan
               (Clint Morgan via Stack)
   HBASE-1437  broken links in hbase.org
   HBASE-1582  Translate ColumnValueFilter and RowFilterSet to the new Filter
               interface
   HBASE-1594  Fix scan addcolumns after hbase-1385 commit (broke hudson build)
   HBASE-1595  hadoop-default.xml and zoo.cfg in hbase jar
   HBASE-1602  HRegionServer won't go down since we added in new LruBlockCache
   HBASE-1608  TestCachedBlockQueue failing on some jvms (Jon Gray via Stack)
   HBASE-1615  HBASE-1597 introduced a bug when compacting after a split
               (Jon Gray via Stack)
   HBASE-1616  Unit test of compacting referenced StoreFiles (Jon Gray via
               Stack)
   HBASE-1618  Investigate further into the MemStoreFlusher StoreFile limit
               (Jon Gray via Stack)
   HBASE-1625  Adding check to Put.add(KeyValue), to see that it has the same
               row as when instantiated (Erik Holstad via Stack)
   HBASE-1629  HRS unable to contact master
   HBASE-1633  Can't delete in TRUNK shell; makes it hard doing admin repairs
   HBASE-1641  Stargate build.xml causes error in Eclipse
   HBASE-1627  TableInputFormatBase#nextKeyValue catches the wrong exception
               (Doğacan Güney via Stack)
   HBASE-1644  Result.row is cached in getRow; this breaks MapReduce
               (Doğacan Güney via Stack)
   HBASE-1639  clean checkout with empty hbase-site.xml, zk won't start
   HBASE-1646  Scan-s can't set a Filter (Doğacan Güney via Stack)
   HBASE-1649  ValueFilter may not reset its internal state
               (Doğacan Güney via Stack)
   HBASE-1651  client is broken, it requests ROOT region location from ZK too
               much
   HBASE-1650  HBASE-1551 broke the ability to manage non-regionserver
               start-up/shut down. ie: you cant start/stop thrift on a cluster
               anymore
   HBASE-1658  Remove UI refresh -- its annoying
   HBASE-1659  merge tool doesnt take binary regions with \x escape format
   HBASE-1663  Request compaction only once instead of every time 500ms each
               time we cycle the hstore.getStorefilesCount() >
               this.blockingStoreFilesNumber loop
   HBASE-1058  Disable 1058 on catalog tables
   HBASE-1583  Start/Stop of large cluster untenable
   HBASE-1668  hbase-1609 broke TestHRegion.testScanSplitOnRegion unit test
   HBASE-1669  need dynamic extensibility of HBaseRPC code maps and interface
               lists (Clint Morgan via Stack)
   HBASE-1359  After a large truncating table HBase becomes unresponsive
   HBASE-1215  0.19.0 -> 0.20.0 migration (hfile, HCD changes, HSK changes)
   HBASE-1689  Fix javadoc warnings and add overview on client classes to
               client package
   HBASE-1680  FilterList writable only works for HBaseObjectWritable
               defined types (Clint Morgan via Stack and Jon Gray)
   HBASE-1607  transactions / indexing fixes: trx deletes not handeled, index
               scan can't specify stopRow (Clint Morgan via Stack)
   HBASE-1693  NPE close_region ".META." in shell
   HBASE-1706  META row with missing HRI breaks UI
   HBASE-1709  Thrift getRowWithColumns doesn't accept column-family only
               (Mathias Lehmann via Stack)
   HBASE-1692  Web UI is extremely slow / freezes up if you have many tables
   HBASE-1686  major compaction can create empty store files, causing AIOOB
               when trying to read
   HBASE-1705  Thrift server: deletes in mutateRow/s don't delete
               (Tim Sell and Ryan Rawson via Stack)
   HBASE-1703  ICVs across /during a flush can cause multiple keys with the 
               same TS (bad)
   HBASE-1671  HBASE-1609 broke scanners riding across splits
   HBASE-1717  Put on client-side uses passed-in byte[]s rather than always
               using copies
   HBASE-1647  Filter#filterRow is called too often, filters rows it shouldn't
               have (Doğacan Güney via Ryan Rawson and Stack)
   HBASE-1718  Reuse of KeyValue during log replay could cause the wrong
               data to be used
   HBASE-1573  Holes in master state change; updated startcode and server
               go into .META. but catalog scanner just got old values (redux)
   HBASE-1534  Got ZooKeeper event, state: Disconnected on HRS and then NPE
               on reinit
   HBASE-1725  Old TableMap interface's definitions are not generic enough
               (Doğacan Güney via Stack)
   HBASE-1732  Flag to disable regionserver restart
   HBASE-1727  HTD and HCD versions need update
   HBASE-1604  HBaseClient.getConnection() may return a broken connection
               without throwing an exception (Eugene Kirpichov via Stack)
   HBASE-1737  Regions unbalanced when adding new node
   HBASE-1739  hbase-1683 broke splitting; only split three logs no matter
               what N was
   HBASE-1745  [tools] Tool to kick region out of inTransistion
   HBASE-1757  REST server runs out of fds
   HBASE-1768  REST server has upper limit of 5k PUT
   HBASE-1766  Add advanced features to HFile.main() to be able to analyze
               storefile problems
   HBASE-1761  getclosest doesn't understand delete family; manifests as
               "HRegionInfo was null or empty in .META" A.K.A the BS problem
   HBASE-1738  Scanner doesnt reset when a snapshot is created, could miss
               new updates into the 'kvset' (active part)
   HBASE-1767  test zookeeper broken in trunk and 0.20 branch; broken on
               hudson too
   HBASE-1780  HTable.flushCommits clears write buffer in finally clause
   HBASE-1784  Missing rows after medium intensity insert
   HBASE-1809  NPE thrown in BoundedRangeFileInputStream
   HBASE-1810  ConcurrentModificationException in region assignment
               (Mathias Herberts via Stack)
   HBASE-1804  Puts are permitted (and stored) when including an appended colon
   HBASE-1715  Compaction failure in ScanWildcardColumnTracker.checkColumn
   HBASE-2352  Small values for hbase.client.retries.number and
               ipc.client.connect.max.retries breaks long ops in hbase shell
               (Alexey Kovyrin via Stack)
   HBASE-2531  32-bit encoding of regionnames waaaaaaayyyyy too susceptible to
               hash clashes (Kannan Muthukkaruppan via Stack)

  IMPROVEMENTS
   HBASE-1089  Add count of regions on filesystem to master UI; add percentage
               online as difference between whats open and whats on filesystem
               (Samuel Guo via Stack)
   HBASE-1130  PrefixRowFilter (Michael Gottesman via Stack)
   HBASE-1139  Update Clover in build.xml
   HBASE-876   There are a large number of Java warnings in HBase; part 1,
               part 2, part 3, part 4, part 5, part 6, part 7 and part 8
               (Evgeny Ryabitskiy via Stack)
   HBASE-896   Update jruby from 1.1.2 to 1.1.6
   HBASE-1031  Add the Zookeeper jar
   HBASE-1142  Cleanup thrift server; remove Text and profuse DEBUG messaging
               (Tim Sell via Stack)
   HBASE-1064  HBase REST xml/json improvements (Brian Beggs working of
               initial Michael Gottesman work via Stack)
   HBASE-5121  Fix shell usage for format.width
   HBASE-845   HCM.isTableEnabled doesn't really tell if it is, or not
   HBASE-903   [shell] Can't set table descriptor attributes when I alter a
               table
   HBASE-1166  saveVersion.sh doesn't work with git (Nitay Joffe via Stack)
   HBASE-1167  JSP doesn't work in a git checkout (Nitay Joffe via Andrew
               Purtell)
   HBASE-1178  Add shutdown command to shell
   HBASE-1184  HColumnDescriptor is too restrictive with family names
               (Toby White via Andrew Purtell)
   HBASE-1180  Add missing import statements to SampleUploader and remove
               unnecessary @Overrides (Ryan Smith via Andrew Purtell)
   HBASE-1191  ZooKeeper ensureParentExists calls fail 
               on absolute path (Nitay Joffe via Jean-Daniel Cryans)
   HBASE-1187  After disabling/enabling a table, the regions seems to 
               be assigned to only 1-2 region servers
   HBASE-1210  Allow truncation of output for scan and get commands in shell
               (Lars George via Stack)
   HBASE-1221  When using ant -projecthelp to build HBase not all the important
               options show up (Erik Holstad via Stack)
   HBASE-1189  Changing the map type used internally for HbaseMapWritable
               (Erik Holstad via Stack)
   HBASE-1188  Memory size of Java Objects - Make cacheable objects implement
               HeapSize (Erik Holstad via Stack)
   HBASE-1230  Document installation of HBase on Windows
   HBASE-1241  HBase additions to ZooKeeper part 1 (Nitay Joffe via JD)
   HBASE-1231  Today, going from a RowResult to a BatchUpdate reqiures some
               data processing even though they are pretty much the same thing
               (Erik Holstad via Stack)
   HBASE-1240  Would be nice if RowResult could be comparable
               (Erik Holstad via Stack)
   HBASE-803   Atomic increment operations (Ryan Rawson and Jon Gray via Stack)
               Part 1 and part 2 -- fix for a crash.
   HBASE-1252  Make atomic increment perform a binary increment
               (Jonathan Gray via Stack)
   HBASE-1258,1259 ganglia metrics for 'requests' is confusing
               (Ryan Rawson via Stack)
   HBASE-1265  HLogEdit static constants should be final (Nitay Joffe via
               Stack)
   HBASE-1244  ZooKeeperWrapper constants cleanup (Nitay Joffe via Stack)
   HBASE-1262  Eclipse warnings, including performance related things like
               synthetic accessors (Nitay Joffe via Stack)
   HBASE-1273  ZooKeeper WARN spits out lots of useless messages
               (Nitay Joffe via Stack)
   HBASE-1285  Forcing compactions should be available via thrift
               (Tim Sell via Stack)
   HBASE-1186  Memory-aware Maps with LRU eviction for cell cache 
               (Jonathan Gray via Andrew Purtell)
   HBASE-1205  RegionServers should find new master when a new master comes up
               (Nitay Joffe via Andrew Purtell)
   HBASE-1309  HFile rejects key in Memcache with empty value
   HBASE-1331  Lower the default scanner caching value
   HBASE-1235  Add table enabled status to shell and UI
               (Lars George via Stack)
   HBASE-1333  RowCounter updates
   HBASE-1195  If HBase directory exists but version file is inexistent, still
               proceed with bootstrapping (Evgeny Ryabitskiy via Stack)
   HBASE-1301  HTable.getRow() returns null if the row does no exist
               (Rong-en Fan via Stack)
   HBASE-1176  Javadocs in HBA should be clear about which functions are
               asynchronous and which are synchronous
               (Evgeny Ryabitskiy via Stack)
   HBASE-1260  Bytes utility class changes: remove usage of ByteBuffer and
               provide additional ByteBuffer primitives (Jon Gray via Stack)
   HBASE-1183  New MR splitting algorithm and other new features need a way to
               split a key range in N chunks (Jon Gray via Stack)
   HBASE-1350  New method in HTable.java to return start and end keys for
               regions in a table (Vimal Mathew via Stack)
   HBASE-1271  Allow multiple tests to run on one machine
               (Evgeny Ryabitskiy via Stack)
   HBASE-1112  we will lose data if the table name happens to be the logs' dir
               name (Samuel Guo via Stack)
   HBASE-889   The current Thrift API does not allow a new scanner to be
               created without supplying a column list unlike the other APIs.
               (Tim Sell via Stack)
   HBASE-1341  HTable pooler
   HBASE-1379  re-enable LZO using hadoop-gpl-compression library
               (Ryan Rawson via Stack)
   HBASE-1383  hbase shell needs to warn on deleting multi-region table
   HBASE-1286  Thrift should support next(nbRow) like functionality
               (Alex Newman via Stack)
   HBASE-1392  change how we build/configure lzocodec (Ryan Rawson via Stack)
   HBASE-1397  Better distribution in the PerformanceEvaluation MapReduce
               when rows run to the Billions
   HBASE-1393  Narrow synchronization in HLog
   HBASE-1404  minor edit of regionserver logging messages
   HBASE-1405  Threads.shutdown has unnecessary branch
   HBASE-1407  Changing internal structure of ImmutableBytesWritable
               contructor (Erik Holstad via Stack)
   HBASE-1345  Remove distributed mode from MiniZooKeeper (Nitay Joffe via
               Stack)
   HBASE-1414  Add server status logging chore to ServerManager
   HBASE-1379  Make KeyValue implement Writable
               (Erik Holstad and Jon Gray via Stack)
   HBASE-1380  Make KeyValue implement HeapSize
               (Erik Holstad and Jon Gray via Stack)
   HBASE-1413  Fall back to filesystem block size default if HLog blocksize is
               not specified
   HBASE-1417  Cleanup disorientating RPC message
   HBASE-1424  have shell print regioninfo and location on first load if
               DEBUG enabled
   HBASE-1008  [performance] The replay of logs on server crash takes way too
               long
   HBASE-1394  Uploads sometimes fall to 0 requests/second (Binding up on
               HLog#append?)
   HBASE-1429  Allow passing of a configuration object to HTablePool
   HBASE-1432  LuceneDocumentWrapper is not public
   HBASE-1401  close HLog (and open new one) if there hasnt been edits in N
               minutes/hours
   HBASE-1420  add abliity to add and remove (table) indexes on existing
               tables (Clint Morgan via Stack)
   HBASE-1430  Read the logs in batches during log splitting to avoid OOME
   HBASE-1017  Region balancing does not bring newly added node within
               acceptable range (Evgeny Ryabitskiy via Stack)
   HBASE-1454  HBaseAdmin.getClusterStatus
   HBASE-1236  Improve readability of table descriptions in the UI
               (Lars George and Alex Newman via Stack)
   HBASE-1455  Update DemoClient.py for thrift 1.0 (Tim Sell via Stack)
   HBASE-1464  Add hbase.regionserver.logroll.period to hbase-default
   HBASE-1192  LRU-style map for the block cache (Jon Gray and Ryan Rawson
               via Stack)
   HBASE-1466  Binary keys are not first class citizens
               (Ryan Rawson via Stack)
   HBASE-1445  Add the ability to start a master from any machine
   HBASE-1474  Add zk attributes to list of attributes 
               in master and regionserver UIs
   HBASE-1448  Add a node in ZK to tell all masters to shutdown
   HBASE-1478  Remove hbase master options from shell (Nitay Joffe via Stack)
   HBASE-1462  hclient still seems to depend on master
   HBASE-1143  region count erratic in master UI
   HBASE-1490  Update ZooKeeper library
   HBASE-1489  Basic git ignores for people who use git and eclipse
   HBASE-1453  Add HADOOP-4681 to our bundled hadoop, add to 'gettting started'
               recommendation that hbase users backport 
   HBASE-1507  iCMS as default JVM
   HBASE-1509  Add explanation to shell "help" command on how to use binarykeys
               (Lars George via Stack)
   HBASE-1514  hfile inspection tool
   HBASE-1329  Visibility into ZooKeeper
   HBASE-867   If millions of columns in a column family, hbase scanner won't
               come up (Jonathan Gray via Stack)
   HBASE-1538  Up zookeeper timeout from 10 seconds to 30 seconds to cut down
               on hbase-user traffic
   HBASE-1539  prevent aborts due to missing zoo.cfg
   HBASE-1488  Fix TestThriftServer and re-enable it
   HBASE-1541  Scanning multiple column families in the presence of deleted 
               families results in bad scans
   HBASE-1540  Client delete unit test, define behavior
               (Jonathan Gray via Stack)
   HBASE-1552  provide version running on cluster via getClusterStatus
   HBASE-1550  hbase-daemon.sh stop should provide more information when stop
               command fails
   HBASE-1515  Address part of config option hbase.regionserver unnecessary
   HBASE-1532  UI Visibility into ZooKeeper
   HBASE-1572  Zookeeper log4j property set to ERROR on default, same output
               when cluster working and not working (Jon Gray via Stack)
   HBASE-1576  TIF needs to be able to set scanner caching size for smaller
               row tables & performance
   HBASE-1577  Move memcache to ConcurrentSkipListMap from
               ConcurrentSkipListSet
   HBASE-1578  Change the name of the in-memory updates from 'memcache' to
               'memtable' or....
   HBASE-1562  How to handle the setting of 32 bit versus 64 bit machines
               (Erik Holstad via Stack)
   HBASE-1584  Put add methods should return this for ease of use (Be
               consistant with Get) (Clint Morgan via Stack)
   HBASE-1581  Run major compaction on .META. when table is dropped or
               truncated
   HBASE-1587  Update ganglia config and doc to account for ganglia 3.1 and
               hadoop-4675
   HBASE-1589  Up zk maxClientCnxns from default of 10 to 20 or 30 or so
   HBASE-1385  Revamp TableInputFormat, needs updating to match hadoop 0.20.x
               AND remove bit where we can make < maps than regions
               (Lars George via Stack)
   HBASE-1596  Remove WatcherWrapper and have all users of Zookeeper provide a
               Watcher
   HBASE-1597  Prevent unnecessary caching of blocks during compactions
               (Jon Gray via Stack)
   HBASE-1607  Redo MemStore heap sizing to be accurate, testable, and more
               like new LruBlockCache (Jon Gray via Stack)
   HBASE-1218  Implement in-memory column (Jon Gray via Stack)
   HBASE-1606  Remove zoo.cfg, put config options into hbase-site.xml
   HBASE-1575  HMaster does not handle ZK session expiration
   HBASE-1620  Need to use special StoreScanner constructor for major
               compactions (passed sf, no caching, etc) (Jon Gray via Stack)
   HBASE-1624  Don't sort Puts if only one in list in HCM#processBatchOfRows
   HBASE-1626  Allow emitting Deletes out of new TableReducer
               (Lars George via Stack)
   HBASE-1551  HBase should manage multiple node ZooKeeper quorum
   HBASE-1637  Delete client class methods should return itself like Put, Get,
               Scan (Jon Gray via Nitay)
   HBASE-1640  Allow passing arguments to jruby script run when run by hbase
               shell
   HBASE-698   HLog recovery is not performed after master failure
   HBASE-1643  ScanDeleteTracker takes comparator but it unused
   HBASE-1603  MR failed "RetriesExhaustedException: Trying to contact region
               server Some server for region TestTable..." -- deubugging
   HBASE-1470  hbase and HADOOP-4379, dhruba's flush/sync
   HBASE-1632  Write documentation for configuring/managing ZooKeeper
   HBASE-1662  Tool to run major compaction on catalog regions when hbase is
               shutdown
   HBASE-1665  expose more load information to the client side
   HBASE-1609  We wait on leases to expire before regionserver goes down.
               Rather, just let client fail
   HBASE-1655  Usability improvements to HTablePool (Ken Weiner via jgray)
   HBASE-1688  Improve javadocs in Result and KeyValue
   HBASE-1694  Add TOC to 'Getting Started', add references to THBase and
               ITHBase
   HBASE-1699  Remove hbrep example as it's too out of date
               (Tim Sell via Stack)
   HBASE-1683  OOME on master splitting logs; stuck, won't go down
   HBASE-1704  Better zk error when failed connect
   HBASE-1714  Thrift server: prefix scan API
   HBASE-1719  hold a reference to the region in stores instead of only the
               region info
   HBASE-1743  [debug tool] Add regionsInTransition list to ClusterStatus
               detailed output
   HBASE-1772  Up the default ZK session timeout from 30seconds to 60seconds
   HBASE-2625  Make testDynamicBloom()'s "randomness" deterministic
               (Nicolas Spiegelberg via Stack)

  OPTIMIZATIONS
   HBASE-1412  Change values for delete column and column family in KeyValue
   HBASE-1535  Add client ability to perform mutations without the WAL
               (Jon Gray via Stack)
   HBASE-1460  Concurrent LRU Block Cache (Jon Gray via Stack)
   HBASE-1635  PerformanceEvaluation should use scanner prefetching

Release 0.19.0 - 01/21/2009
  INCOMPATIBLE CHANGES
   HBASE-885   TableMap and TableReduce should be interfaces
               (Doğacan Güney via Stack)
   HBASE-905   Remove V5 migration classes from 0.19.0 (Jean-Daniel Cryans via
               Jim Kellerman)
   HBASE-852   Cannot scan all families in a row with a LIMIT, STARTROW, etc.
               (Izaak Rubin via Stack)
   HBASE-953   Enable BLOCKCACHE by default [WAS -> Reevaluate HBASE-288 block
               caching work....?] -- Update your hbase-default.xml file!
   HBASE-636   java6 as a requirement
   HBASE-994   IPC interfaces with different versions can cause problems
   HBASE-1028  If key does not exist, return null in getRow rather than an
               empty RowResult
   HBASE-1134  OOME in HMaster when HBaseRPC is older than 0.19

  BUG FIXES
   HBASE-891   HRS.validateValuesLength throws IOE, gets caught in the retries
   HBASE-892   Cell iteration is broken (Doğacan Güney via Jim Kellerman)
   HBASE-898   RowResult.containsKey(String) doesn't work
               (Doğacan Güney via Jim Kellerman)
   HBASE-906   [shell] Truncates output
   HBASE-912   PE is broken when other tables exist
   HBASE-853   [shell] Cannot describe meta tables (Izaak Rubin via Stack)
   HBASE-844   Can't pass script to hbase shell 
   HBASE-837   Add unit tests for ThriftServer.HBaseHandler (Izaak Rubin via
               Stack)
   HBASE-913   Classes using log4j directly
   HBASE-914   MSG_REPORT_CLOSE has a byte array for a message
   HBASE-918   Region balancing during startup makes cluster unstable
   HBASE-921   region close and open processed out of order; makes for 
               disagreement between master and regionserver on region state
   HBASE-925   HRS NPE on way out if no master to connect to
   HBASE-928   NPE throwing RetriesExhaustedException
   HBASE-924   Update hadoop in lib on 0.18 hbase branch to 0.18.1
   HBASE-929   Clarify that ttl in HColumnDescriptor is seconds
   HBASE-930   RegionServer stuck: HLog: Could not append. Requesting close of
               log java.io.IOException: Could not get block locations
   HBASE-926   If no master, regionservers should hang out rather than fail on
               connection and shut themselves down
   HBASE-919   Master and Region Server need to provide root region location if
               they are using HTable
               With J-D's one line patch, test cases now appear to work and
               PerformanceEvaluation works as before.
   HBASE-939   NPE in HStoreKey
   HBASE-945   Be consistent in use of qualified/unqualified mapfile paths
   HBASE-946   Row with 55k deletes timesout scanner lease
   HBASE-950   HTable.commit no longer works with existing RowLocks though it's
               still in API
   HBASE-952   Deadlock in HRegion.batchUpdate
   HBASE-954   Don't reassign root region until ProcessServerShutdown has split
               the former region server's log
   HBASE-957   PerformanceEvaluation tests if table exists by comparing
               descriptors
   HBASE-728,  HBASE-956, HBASE-955 Address thread naming, which threads are
               Chores, vs Threads, make HLog manager the write ahead log and
               not extend it to provided optional HLog sync operations.
   HBASE-970   Update the copy/rename scripts to go against change API
   HBASE-966   HBASE-748 misses some writes
   HBASE-971   Fix the failing tests on Hudson
   HBASE-973   [doc] In getting started, make it clear that hbase needs to
               create its directory in hdfs
   HBASE-963   Fix the retries in HTable.flushCommit
   HBASE-969   Won't when storefile > 2G.
   HBASE-976   HADOOP 0.19.0 RC0 is broke; replace with HEAD of branch-0.19
   HBASE-977   Arcane HStoreKey comparator bug
   HBASE-979   REST web app is not started automatically
   HBASE-980   Undo core of HBASE-975, caching of start and end row
   HBASE-982   Deleting a column in MapReduce fails (Doğacan Güney via
               Stack)
   HBASE-984   Fix javadoc warnings
   HBASE-985   Fix javadoc warnings
   HBASE-951   Either shut down master or let it finish cleanup
   HBASE-964   Startup stuck "waiting for root region"
   HBASE-964, HBASE-678 provide for safe-mode without locking up HBase "waiting
               for root region"
   HBASE-990   NoSuchElementException in flushSomeRegions; took two attempts.
   HBASE-602   HBase Crash when network card has a IPv6 address
   HBASE-996   Migration script to up the versions in catalog tables
   HBASE-991   Update the mapred package document examples so they work with
               TRUNK/0.19.0.
   HBASE-1003  If cell exceeds TTL but not VERSIONs, will not be removed during
               major compaction
   HBASE-1005  Regex and string comparison operators for ColumnValueFilter
   HBASE-910   Scanner misses columns / rows when the scanner is obtained
               during a memcache flush
   HBASE-1009  Master stuck in loop wanting to assign but regions are closing
   HBASE-1016  Fix example in javadoc overvie
   HBASE-1021  hbase metrics FileContext not working
   HBASE-1023  Check global flusher
   HBASE-1036  HBASE-1028 broke Thrift
   HBASE-1037  Some test cases failing on Windows/Cygwin but not UNIX/Linux
   HBASE-1041  Migration throwing NPE
   HBASE-1042  OOME but we don't abort; two part commit.
   HBASE-927   We don't recover if HRS hosting -ROOT-/.META. goes down
   HBASE-1029  REST wiki documentation incorrect
               (Sishen Freecity via Stack)
   HBASE-1043  Removing @Override attributes where they are no longer needed.
               (Ryan Smith via Jim Kellerman)
   HBASE-927   We don't recover if HRS hosting -ROOT-/.META. goes down -
               (fix bug in createTable which caused tests to fail)
   HBASE-1039  Compaction fails if bloomfilters are enabled
   HBASE-1027  Make global flusher check work with percentages rather than
               hard code memory sizes
   HBASE-1000  Sleeper.sleep does not go back to sleep when interrupted
               and no stop flag given.
   HBASE-900   Regionserver memory leak causing OOME during relatively
               modest bulk importing; part 1 and part 2
   HBASE-1054  Index NPE on scanning (Clint Morgan via Andrew Purtell)
   HBASE-1052  Stopping a HRegionServer with unflushed cache causes data loss
               from org.apache.hadoop.hbase.DroppedSnapshotException
   HBASE-1059  ConcurrentModificationException in notifyChangedReadersObservers
   HBASE-1063  "File separator problem on Windows" (Max Lehn via Stack)
   HBASE-1068  TestCompaction broken on hudson
   HBASE-1067  TestRegionRebalancing broken by running of hdfs shutdown thread
   HBASE-1070  Up default index interval in TRUNK and branch
   HBASE-1045  Hangup by regionserver causes write to fail
   HBASE-1079  Dumb NPE in ServerCallable hides the RetriesExhausted exception
   HBASE-782   The DELETE key in the hbase shell deletes the wrong character
               (Tim Sell via Stack)
   HBASE-543,  HBASE-1046, HBase-1051 A region's state is kept in several places
               in the master opening the possibility for race conditions
   HBASE-1087  DFS failures did not shutdown regionserver
   HBASE-1072  Change Thread.join on exit to a timed Thread.join
   HBASE-1098  IllegalStateException: Cannot set a region to be closed it it
               was not already marked as closing
   HBASE-1100  HBASE-1062 broke TestForceSplit
   HBASE-1191  shell tools -> close_region does not work for regions that did
               not deploy properly on startup
   HBASE-1093  NPE in HStore#compact
   HBASE-1097  SequenceFile.Reader keeps around buffer whose size is that of
               largest item read -> results in lots of dead heap
   HBASE-1107  NPE in HStoreScanner.updateReaders
   HBASE-1083  Will keep scheduling major compactions if last time one ran, we
               didn't.
   HBASE-1101  NPE in HConnectionManager$TableServers.processBatchOfRows
   HBASE-1099  Regions assigned while master is splitting logs of recently
               crashed server; regionserver tries to execute incomplete log
   HBASE-1104, HBASE-1098, HBASE-1096: Doubly-assigned regions redux,
               IllegalStateException: Cannot set a region to be closed it it was
               not already marked as closing, Does not recover if HRS carrying 
               -ROOT- goes down
   HBASE-1114  Weird NPEs compacting
   HBASE-1116  generated web.xml and svn don't play nice together
   HBASE-1119  ArrayOutOfBoundsException in HStore.compact
   HBASE-1121  Cluster confused about where -ROOT- is
   HBASE-1125  IllegalStateException: Cannot set a region to be closed if it was
               not already marked as pending close
   HBASE-1124  Balancer kicks in way too early
   HBASE-1127  OOME running randomRead PE
   HBASE-1132  Can't append to HLog, can't roll log, infinite cycle (another
               spin on HBASE-930)

  IMPROVEMENTS
   HBASE-901   Add a limit to key length, check key and value length on client side
   HBASE-890   Alter table operation and also related changes in REST interface
               (Sishen Freecity via Stack)
   HBASE-894   [shell] Should be able to copy-paste table description to create
               new table (Sishen Freecity via Stack)
   HBASE-886, HBASE-895 Sort the tables in the web UI, [shell] 'list' command
               should emit a sorted list of tables (Krzysztof Szlapinski via Stack)
   HBASE-884   Double and float converters for Bytes class
               (Doğacan Güney via Stack)
   HBASE-908   Add approximate counting to CountingBloomFilter
               (Andrzej Bialecki via Stack)
   HBASE-920   Make region balancing sloppier
   HBASE-902   Add force compaction and force split operations to UI and Admin
   HBASE-942   Add convenience methods to RowFilterSet
               (Clint Morgan via Stack)
   HBASE-943   to ColumnValueFilter: add filterIfColumnMissing property, add
               SubString operator (Clint Morgan via Stack)
   HBASE-937   Thrift getRow does not support specifying columns
               (Doğacan Güney via Stack)
   HBASE-959   Be able to get multiple RowResult at one time from client side
               (Sishen Freecity via Stack)
   HBASE-936   REST Interface: enable get number of rows from scanner interface
               (Sishen Freecity via Stack)
   HBASE-960   REST interface: more generic column family configure and also
               get Rows using offset and limit (Sishen Freecity via Stack)
   HBASE-817   Hbase/Shell Truncate
   HBASE-949   Add an HBase Manual
   HBASE-839   Update hadoop libs in hbase; move hbase TRUNK on to an hadoop
               0.19.0 RC
   HBASE-785   Remove InfoServer, use HADOOP-3824 StatusHttpServer 
               instead (requires hadoop 0.19)
   HBASE-81    When a scanner lease times out, throw a more "user friendly" exception
   HBASE-978   Remove BloomFilterDescriptor. It is no longer used.
   HBASE-975   Improve MapFile performance for start and end key
   HBASE-961   Delete multiple columns by regular expression
               (Samuel Guo via Stack)
   HBASE-722   Shutdown and Compactions
   HBASE-983   Declare Perl namespace in Hbase.thrift
   HBASE-987   We need a Hbase Partitioner for TableMapReduceUtil.initTableReduceJob
               MR Jobs (Billy Pearson via Stack)
   HBASE-993   Turn off logging of every catalog table row entry on every scan
   HBASE-992   Up the versions kept by catalog tables; currently 1. Make it 10?
   HBASE-998   Narrow getClosestRowBefore by passing column family
   HBASE-999   Up versions on historian and keep history of deleted regions for a
               while rather than delete immediately
   HBASE-938   Major compaction period is not checked periodically
   HBASE-947   [Optimization] Major compaction should remove deletes as well as
               the deleted cell
   HBASE-675   Report correct server hosting a table split for assignment to
               for MR Jobs
   HBASE-927   We don't recover if HRS hosting -ROOT-/.META. goes down
   HBASE-1013  Add debugging around commit log cleanup
   HBASE-972   Update hbase trunk to use released hadoop 0.19.0
   HBASE-1022  Add storefile index size to hbase metrics
   HBASE-1026  Tests in mapred are failing
   HBASE-1020  Regionserver OOME handler should dump vital stats
   HBASE-1018  Regionservers should report detailed health to master
   HBASE-1034  Remove useless TestToString unit test
   HBASE-1030  Bit of polish on HBASE-1018
   HBASE-847   new API: HTable.getRow with numVersion specified
               (Doğacan Güney via Stack)
   HBASE-1048  HLog: Found 0 logs to remove out of total 1450; oldest
               outstanding seqnum is 162297053 fr om region -ROOT-,,0
   HBASE-1055  Better vm stats on startup
   HBASE-1065  Minor logging improvements in the master
   HBASE-1053  bring recent rpc changes down from hadoop
   HBASE-1056  [migration] enable blockcaching on .META. table
   HBASE-1069  Show whether HRegion major compacts or not in INFO level
   HBASE-1066  Master should support close/open/reassignment/enable/disable
               operations on individual regions
   HBASE-1062  Compactions at (re)start on a large table can overwhelm DFS
   HBASE-1102  boolean HTable.exists()
   HBASE-1105  Remove duplicated code in HCM, add javadoc to RegionState, etc.
   HBASE-1106  Expose getClosestRowBefore in HTable
               (Michael Gottesman via Stack)
   HBASE-1082  Administrative functions for table/region maintenance
   HBASE-1090  Atomic Check And Save in HTable (Michael Gottesman via Stack)
   HBASE-1137  Add not on xceivers count to overview documentation

  NEW FEATURES
   HBASE-875   Use MurmurHash instead of JenkinsHash [in bloomfilters]
               (Andrzej Bialecki via Stack)
   HBASE-625   Metrics support for cluster load history: emissions and graphs
   HBASE-883   Secondary indexes (Clint Morgan via Andrew Purtell)
   HBASE-728   Support for HLog appends

  OPTIMIZATIONS
   HBASE-748   Add an efficient way to batch update many rows
   HBASE-887   Fix a hotspot in scanners
   HBASE-967   [Optimization] Cache cell maximum length (HCD.getMaxValueLength);
               its used checking batch size
   HBASE-940   Make the TableOutputFormat batching-aware
   HBASE-576   Investigate IPC performance

Release 0.18.0 - September 21st, 2008

  INCOMPATIBLE CHANGES
   HBASE-697   Thrift idl needs update/edit to match new 0.2 API (and to fix bugs)
               (Tim Sell via Stack)
   HBASE-822   Update thrift README and HBase.thrift to use thrift 20080411
               Updated all other languages examples (only python went in)

  BUG FIXES
   HBASE-881   Fixed bug when Master tries to reassign split or offline regions
               from a dead server
   HBASE-860   Fixed Bug in IndexTableReduce where it concerns writing lucene 
               index fields.
   HBASE-805   Remove unnecessary getRow overloads in HRS (Jonathan Gray via
               Jim Kellerman) (Fix whitespace diffs in HRegionServer)
   HBASE-811   HTD is not fully copyable (Andrew Purtell via Jim Kellerman)
   HBASE-729   Client region/metadata cache should have a public method for
               invalidating entries (Andrew Purtell via Stack)
   HBASE-819   Remove DOS-style ^M carriage returns from all code where found
               (Jonathan Gray via Jim Kellerman)
   HBASE-818   Deadlock running 'flushSomeRegions' (Andrew Purtell via Stack)
   HBASE-820   Need mainline to flush when 'Blocking updates' goes up.
               (Jean-Daniel Cryans via Stack)
   HBASE-821   UnknownScanner happens too often (Jean-Daniel Cryans via Stack)
   HBASE-813   Add a row counter in the new shell (Jean-Daniel Cryans via Stack)
   HBASE-824   Bug in Hlog we print array of byes for region name
               (Billy Pearson via Stack)
   HBASE-825   Master logs showing byte [] in place of string in logging
               (Billy Pearson via Stack)
   HBASE-808,809 MAX_VERSIONS not respected, and Deletall doesn't and inserts
               after delete don't work as expected
               (Jean-Daniel Cryans via Stack)
   HBASE-831   committing BatchUpdate with no row should complain
               (Andrew Purtell via Jim Kellerman)
   HBASE-833   Doing an insert with an unknown family throws a NPE in HRS
   HBASE-810   Prevent temporary deadlocks when, during a scan with write
               operations, the region splits (Jean-Daniel Cryans via Jim
               Kellerman)
   HBASE-843   Deleting and recreating a table in a single process does not work
               (Jonathan Gray via Jim Kellerman)
   HBASE-849   Speed improvement in JenkinsHash (Andrzej Bialecki via Stack)
   HBASE-552   Bloom filter bugs (Andrzej Bialecki via Jim Kellerman)
   HBASE-762   deleteFamily takes timestamp, should only take row and family.
               Javadoc describes both cases but only implements the timestamp
               case. (Jean-Daniel Cryans via Jim Kellerman)
   HBASE-768   This message 'java.io.IOException: Install 0.1.x of hbase and run
               its migration first' is useless (Jean-Daniel Cryans via Jim
               Kellerman)
   HBASE-826   Delete table followed by recreation results in honked table
   HBASE-834   'Major' compactions and upper bound on files we compact at any
               one time (Billy Pearson via Stack)
   HBASE-836   Update thrift examples to work with changed IDL (HBASE-697)
               (Toby White via Stack)
   HBASE-854   hbase-841 broke build on hudson? - makes sure that proxies are
               closed. (Andrew Purtell via Jim Kellerman)
   HBASE-855   compaction can return less versions then we should in some cases
               (Billy Pearson via Stack)
   HBASE-832   Problem with row keys beginnig with characters < than ',' and
               the region location cache
   HBASE-864   Deadlock in regionserver
   HBASE-865   Fix javadoc warnings (Rong-En Fan via Jim Kellerman)
   HBASE-872   Getting exceptions in shell when creating/disabling tables
   HBASE-868   Incrementing binary rows cause strange behavior once table
               splits (Jonathan Gray via Stack)
   HBASE-877   HCM is unable to find table with multiple regions which contains
               binary (Jonathan Gray via Stack)

  IMPROVEMENTS
   HBASE-801  When a table haven't disable, shell could response in a "user
              friendly" way.
   HBASE-816  TableMap should survive USE (Andrew Purtell via Stack)
   HBASE-812  Compaction needs little better skip algo (Daniel Leffel via Stack)
   HBASE-806  Change HbaseMapWritable and RowResult to implement SortedMap
              instead of Map (Jonathan Gray via Stack)
   HBASE-795  More Table operation in TableHandler for REST interface: part 1
              (Sishen Freecity via Stack)
   HBASE-795  More Table operation in TableHandler for REST interface: part 2
              (Sishen Freecity via Stack)
   HBASE-830  Debugging HCM.locateRegionInMeta is painful
   HBASE-784  Base hbase-0.3.0 on hadoop-0.18
   HBASE-841  Consolidate multiple overloaded methods in HRegionInterface,
              HRegionServer (Jean-Daniel Cryans via Jim Kellerman)
   HBASE-840  More options on the row query in REST interface
              (Sishen Freecity via Stack)
   HBASE-874  deleting a table kills client rpc; no subsequent communication if
              shell or thrift server, etc. (Jonathan Gray via Jim Kellerman)
   HBASE-871  Major compaction periodicity should be specifyable at the column
              family level, not cluster wide (Jonathan Gray via Stack)
   HBASE-465  Fix javadoc for all public declarations
   HBASE-882  The BatchUpdate class provides, put(col, cell) and delete(col)
              but no get() (Ryan Smith via Stack and Jim Kellerman)

  NEW FEATURES
   HBASE-787  Postgresql to HBase table replication example (Tim Sell via Stack)
   HBASE-798  Provide Client API to explicitly lock and unlock rows (Jonathan
              Gray via Jim Kellerman)
   HBASE-798  Add missing classes: UnknownRowLockException and RowLock which
              were present in previous versions of the patches for this issue,
              but not in the version that was committed. Also fix a number of
              compilation problems that were introduced by patch.
   HBASE-669  MultiRegion transactions with Optimistic Concurrency Control
              (Clint Morgan via Stack)
   HBASE-842  Remove methods that have Text as a parameter and were deprecated
              in 0.2.1 (Jean-Daniel Cryans via Jim Kellerman)

  OPTIMIZATIONS

Release 0.2.0 - August 8, 2008.

  INCOMPATIBLE CHANGES
   HBASE-584   Names in the filter interface are confusing (Clint Morgan via
               Jim Kellerman) (API change for filters)
   HBASE-601   Just remove deprecated methods in HTable; 0.2 is not backward
               compatible anyways
   HBASE-82    Row keys should be array of bytes
   HBASE-76    Purge servers of Text (Done as part of HBASE-82 commit).
   HBASE-487   Replace hql w/ a hbase-friendly jirb or jython shell
               Part 1: purge of hql and added raw jirb in its place.
   HBASE-521   Improve client scanner interface
   HBASE-288   Add in-memory caching of data. Required update of hadoop to 
               0.17.0-dev.2008-02-07_12-01-58. (Tom White via Stack) 
   HBASE-696   Make bloomfilter true/false and self-sizing
   HBASE-720   clean up inconsistencies around deletes (Izaak Rubin via Stack)
   HBASE-796   Deprecates Text methods from HTable
               (Michael Gottesman via Stack)

  BUG FIXES
   HBASE-574   HBase does not load hadoop native libs (Rong-En Fan via Stack)
   HBASE-598   Loggging, no .log file; all goes into .out
   HBASE-622   Remove StaticTestEnvironment and put a log4j.properties in src/test
   HBASE-624   Master will shut down if number of active region servers is zero
               even if shutdown was not requested
   HBASE-629   Split reports incorrect elapsed time
   HBASE-623   Migration script for hbase-82
   HBASE-630   Default hbase.rootdir is garbage
   HBASE-589   Remove references to deprecated methods in Hadoop once
               hadoop-0.17.0 is released
   HBASE-638   Purge \r from src
   HBASE-644   DroppedSnapshotException but RegionServer doesn't restart
   HBASE-641   Improve master split logging
   HBASE-642   Splitting log in a hostile environment -- bad hdfs -- we drop
               write-ahead-log edits
   HBASE-646   EOFException opening HStoreFile info file (spin on HBASE-645and 550)
   HBASE-648   If mapfile index is empty, run repair
   HBASE-640   TestMigrate failing on hudson
   HBASE-651   Table.commit should throw NoSuchColumnFamilyException if column
               family doesn't exist
   HBASE-649   API polluted with default and protected access data members and methods
   HBASE-650   Add String versions of get, scanner, put in HTable
   HBASE-656   Do not retry exceptions such as unknown scanner or illegal argument
   HBASE-659   HLog#cacheFlushLock not cleared; hangs a region
   HBASE-663   Incorrect sequence number for cache flush
   HBASE-655   Need programmatic way to add column family: need programmatic way
               to enable/disable table
   HBASE-654   API HTable.getMetadata().addFamily shouldn't be exposed to user
   HBASE-666   UnmodifyableHRegionInfo gives the wrong encoded name
   HBASE-668   HBASE-533 broke build
   HBASE-670   Historian deadlocks if regionserver is at global memory boundary
               and is hosting .META.
   HBASE-665   Server side scanner doesn't honor stop row
   HBASE-662   UI in table.jsp gives META locations, not the table's regions
               location (Jean-Daniel Cryans via Stack)
   HBASE-676   Bytes.getInt returns a long (Clint Morgan via Stack)
   HBASE-680   Config parameter hbase.io.index.interval  should be
               hbase.index.interval, according to HBaseMapFile.HbaseWriter
               (LN via Stack)
   HBASE-682   Unnecessary iteration in HMemcache.internalGet? got much better
               reading performance after break it (LN via Stack)
   HBASE-686   MemcacheScanner didn't return the first row(if it exists),
               because HScannerInterface's output incorrect (LN via Jim Kellerman)
   HBASE-691   get* and getScanner are different in how they treat column parameter
   HBASE-694   HStore.rowAtOrBeforeFromMapFile() fails to locate the row if # of mapfiles >= 2
               (Rong-En Fan via Bryan)
   HBASE-652   dropping table fails silently if table isn't disabled
   HBASE-683   can not get svn revision # at build time if locale is not english
               (Rong-En Fan via Stack)
   HBASE-699   Fix TestMigrate up on Hudson
   HBASE-615   Region balancer oscillates during cluster startup
   HBASE-613   Timestamp-anchored scanning fails to find all records
   HBASE-681   NPE in Memcache
   HBASE-701   Showing bytes in log when should be String
   HBASE-702   deleteall doesn't
   HBASE-704   update new shell docs and commands on help menu
   HBASE-709   Deadlock while rolling WAL-log while finishing flush
   HBASE-710   If clocks are way off, then we can have daughter split come
               before rather than after its parent in .META.
   HBASE-714   Showing bytes in log when should be string (2)
   HBASE-627   Disable table doesn't work reliably
   HBASE-716   TestGet2.testGetClosestBefore fails with hadoop-0.17.1
   HBASE-715   Base HBase 0.2 on Hadoop 0.17.1
   HBASE-718   hbase shell help info
   HBASE-717   alter table broke with new shell returns InvalidColumnNameException
   HBASE-573   HBase does not read hadoop-*.xml for dfs configuration after 
               moving out hadoop/contrib
   HBASE-11    Unexpected exits corrupt DFS
   HBASE-12    When hbase regionserver restarts, it says "impossible state for
               createLease()"
   HBASE-575   master dies with stack overflow error if rootdir isn't qualified
   HBASE-582   HBase 554 forgot to clear results on each iteration caused by a filter
               (Clint Morgan via Stack)
   HBASE-532   Odd interaction between HRegion.get, HRegion.deleteAll and compactions
   HBASE-10    HRegionServer hangs upon exit due to DFSClient Exception
   HBASE-595   RowFilterInterface.rowProcessed() is called *before* fhe final
               filtering decision is made (Clint Morgan via Stack)
   HBASE-586   HRegion runs HStore memcache snapshotting -- fix it so only HStore
               knows about workings of memcache
   HBASE-588   Still a 'hole' in scanners, even after HBASE-532
   HBASE-604   Don't allow CLASSPATH from environment pollute the hbase CLASSPATH
   HBASE-608   HRegionServer::getThisIP() checks hadoop config var for dns interface name
               (Jim R. Wilson via Stack)
   HBASE-609   Master doesn't see regionserver edits because of clock skew
   HBASE-607   MultiRegionTable.makeMultiRegionTable is not deterministic enough
               for regression tests
   HBASE-405   TIF and TOF use log4j directly rather than apache commons-logging
   HBASE-618   We always compact if 2 files, regardless of the compaction threshold setting
   HBASE-619   Fix 'logs' link in UI
   HBASE-478   offlining of table does not run reliably
   HBASE-453   undeclared throwable exception from HTable.get
   HBASE-620   testmergetool failing in branch and trunk since hbase-618 went in
   HBASE-550   EOF trying to read reconstruction log stops region deployment
   HBASE-551   Master stuck splitting server logs in shutdown loop; on each
               iteration, edits are aggregated up into the millions
   HBASE-505   Region assignments should never time out so long as the region
               server reports that it is processing the open request
   HBASE-561   HBase package does not include LICENSE.txt nor build.xml
   HBASE-563   TestRowFilterAfterWrite erroneously sets master address to
               0.0.0.0:60100 rather than relying on conf
   HBASE-507   Use Callable pattern to sleep between retries
   HBASE-564   Don't do a cache flush if there are zero entries in the cache.
   HBASE-554   filters generate StackOverflowException
   HBASE-567   Reused BatchUpdate instances accumulate BatchOperations
   HBASE-577   NPE getting scanner
   HBASE-19    CountingBloomFilter can overflow its storage
               (Stu Hood and Bryan Duxbury via Stack)
   HBASE-28    thrift put/mutateRow methods need to throw IllegalArgument
               exceptions (Dave Simpson via Bryan Duxbury via Stack)
   HBASE-2     hlog numbers should wrap around when they reach 999
               (Bryan Duxbury via Stack)
   HBASE-421   TestRegionServerExit broken
   HBASE-426   hbase can't find remote filesystem
   HBASE-437   Clear Command should use system.out (Edward Yoon via Stack)
   HBASE-434, HBASE-435 TestTableIndex and TestTableMapReduce failed in Hudson builds
   HBASE-446   Fully qualified hbase.rootdir doesn't work
   HBASE-438   XMLOutputter state should be initialized. (Edward Yoon via Stack)
   HBASE-8     Delete table does not remove the table directory in the FS
   HBASE-428   Under continuous upload of rows, WrongRegionExceptions are thrown
               that reach the client even after retries
   HBASE-460   TestMigrate broken when HBase moved to subproject   
   HBASE-462   Update migration tool
   HBASE-473   When a table is deleted, master sends multiple close messages to
               the region server
   HBASE-490   Doubly-assigned .META.; master uses one and clients another
   HBASE-492   hbase TRUNK does not build against hadoop TRUNK
   HBASE-496   impossible state for createLease writes 400k lines in about 15mins
   HBASE-472   Passing on edits, we dump all to log
   HBASE-495   No server address listed in .META.
   HBASE-433 HBASE-251 Region server should delete restore log after successful
               restore, Stuck replaying the edits of crashed machine.
   HBASE-27    hregioninfo cell empty in meta table
   HBASE-501   Empty region server address in info:server entry and a
               startcode of -1 in .META.
   HBASE-516   HStoreFile.finalKey does not update the final key if it is not
               the top region of a split region
   HBASE-525   HTable.getRow(Text) does not work (Clint Morgan via Bryan Duxbury)
   HBASE-524   Problems with getFull
   HBASE-528   table 'does not exist' when it does
   HBASE-531   Merge tool won't merge two overlapping regions (port HBASE-483 to
               trunk)
   HBASE-537   Wait for hdfs to exit safe mode
   HBASE-476   RegexpRowFilter behaves incorectly when there are multiple store
               files (Clint Morgan via Jim Kellerman)
   HBASE-527   RegexpRowFilter does not work when there are columns from 
               multiple families (Clint Morgan via Jim Kellerman)
   HBASE-534   Double-assignment at SPLIT-time
   HBASE-712   midKey found compacting is the first, not necessarily the optimal
   HBASE-719   Find out why users have network problems in HBase and not in Hadoop
               and HConnectionManager (Jean-Daniel Cryans via Stack)
   HBASE-703   Invalid regions listed by regionserver.jsp (Izaak Rubin via Stack)
   HBASE-674   Memcache size unreliable
   HBASE-726   Unit tests won't run because of a typo (Sebastien Rainville via Stack)
   HBASE-727   Client caught in an infinite loop when trying to connect to cached
               server locations (Izaak Rubin via Stack)
   HBASE-732   shell formatting error with the describe command
               (Izaak Rubin via Stack)
   HBASE-731   delete, deletefc in HBase shell do not work correctly
               (Izaak Rubin via Stack)
   HBASE-734   scan '.META.', {LIMIT => 10} crashes (Izaak Rubin via Stack)
   HBASE-736   Should have HTable.deleteAll(String row) and HTable.deleteAll(Text row)
               (Jean-Daniel Cryans via Stack)
   HBASE-740   ThriftServer getting table names incorrectly (Tim Sell via Stack)
   HBASE-742   Rename getMetainfo in HTable as getTableDescriptor
   HBASE-739   HBaseAdmin.createTable() using old HTableDescription doesn't work
               (Izaak Rubin via Stack)
   HBASE-744   BloomFilter serialization/deserialization broken
   HBASE-742   Column length limit is not enforced (Jean-Daniel Cryans via Stack)
   HBASE-737   Scanner: every cell in a row has the same timestamp
   HBASE-700   hbase.io.index.interval need be configuratable in column family
               (Andrew Purtell via Stack)
   HBASE-62    Allow user add arbitrary key/value pairs to table and column
               descriptors (Andrew Purtell via Stack)
   HBASE-34    Set memcache flush size per column (Andrew Purtell via Stack)
   HBASE-42    Set region split size on table creation (Andrew Purtell via Stack)
   HBASE-43    Add a read-only attribute to columns (Andrew Purtell via Stack)
   HBASE-424   Should be able to enable/disable .META. table
   HBASE-679   Regionserver addresses are still not right in the new tables page
   HBASE-758   Throwing IOE read-only when should be throwing NSRE
   HBASE-743   bin/hbase migrate upgrade fails when redo logs exists
   HBASE-754   The JRuby shell documentation is wrong in "get" and "put"
               (Jean-Daniel Cryans via Stack)
   HBASE-756   In HBase shell, the put command doesn't process the timestamp
               (Jean-Daniel Cryans via Stack)
   HBASE-757   REST mangles table names (Sishen via Stack)
   HBASE-706   On OOME, regionserver sticks around and doesn't go down with cluster
               (Jean-Daniel Cryans via Stack)
   HBASE-759   TestMetaUtils failing on hudson
   HBASE-761   IOE: Stream closed exception all over logs
   HBASE-763   ClassCastException from RowResult.get(String)
               (Andrew Purtell via Stack)
   HBASE-764   The name of column request has padding zero using REST interface
               (Sishen Freecity via Stack)
   HBASE-750   NPE caused by StoreFileScanner.updateReaders
   HBASE-769   TestMasterAdmin fails throwing RegionOfflineException when we're
               expecting IllegalStateException
   HBASE-766   FileNotFoundException trying to load HStoreFile 'data'
   HBASE-770   Update HBaseRPC to match hadoop 0.17 RPC
   HBASE-780   Can't scan '.META.' from new shell
   HBASE-424   Should be able to enable/disable .META. table
   HBASE-771   Names legal in 0.1 are not in 0.2; breaks migration
   HBASE-788   Div by zero in Master.jsp (Clint Morgan via Jim Kellerman)
   HBASE-791   RowCount doesn't work (Jean-Daniel Cryans via Stack)
   HBASE-751   dfs exception and regionserver stuck during heavy write load
   HBASE-793   HTable.getStartKeys() ignores table names when matching columns
               (Andrew Purtell and Dru Jensen via Stack)
   HBASE-790   During import, single region blocks requests for >10 minutes,
               thread dumps, throws out pending requests, and continues
               (Jonathan Gray via Stack)
   
  IMPROVEMENTS
   HBASE-559   MR example job to count table rows
   HBASE-596   DemoClient.py (Ivan Begtin via Stack)
   HBASE-581   Allow adding filters to TableInputFormat (At same time, ensure TIF
               is subclassable) (David Alves via Stack)
   HBASE-603   When an exception bubbles out of getRegionServerWithRetries, wrap 
               the exception with a RetriesExhaustedException
   HBASE-600   Filters have excessive DEBUG logging
   HBASE-611   regionserver should do basic health check before reporting
               alls-well to the master
   HBASE-614   Retiring regions is not used; exploit or remove
   HBASE-538   Improve exceptions that come out on client-side
   HBASE-569   DemoClient.php (Jim R. Wilson via Stack)
   HBASE-522   Where new Text(string) might be used in client side method calls,
               add an overload that takes String (Done as part of HBASE-82)
   HBASE-570   Remove HQL unit test (Done as part of HBASE-82 commit).
   HBASE-626   Use Visitor pattern in MetaRegion to reduce code clones in HTable
               and HConnectionManager (Jean-Daniel Cryans via Stack)
   HBASE-621   Make MAX_VERSIONS work like TTL: In scans and gets, check
               MAX_VERSIONs setting and return that many only rather than wait on
               compaction (Jean-Daniel Cryans via Stack)
   HBASE-504   Allow HMsg's carry a payload: e.g. exception that happened over
               on the remote side.
   HBASE-583   RangeRowFilter/ColumnValueFilter to allow choice of rows based on
               a (lexicographic) comparison to column's values
               (Clint Morgan via Stack)
   HBASE-579   Add hadoop 0.17.x
   HBASE-660   [Migration] addColumn/deleteColumn functionality in MetaUtils
   HBASE-632   HTable.getMetadata is very inefficient
   HBASE-671   New UI page displaying all regions in a table should be sorted
   HBASE-672   Sort regions in the regionserver UI
   HBASE-677   Make HTable, HRegion, HRegionServer, HStore, and HColumnDescriptor
               subclassable (Clint Morgan via Stack)
   HBASE-682   Regularize toString
   HBASE-672   Sort regions in the regionserver UI
   HBASE-469   Streamline HStore startup and compactions
   HBASE-544   Purge startUpdate from internal code and test cases
   HBASE-557   HTable.getRow() should receive RowResult objects
   HBASE-452   "region offline" should throw IOException, not IllegalStateException
   HBASE-541   Update hadoop jars.
   HBASE-523   package-level javadoc should have example client
   HBASE-415   Rewrite leases to use DelayedBlockingQueue instead of polling
   HBASE-35    Make BatchUpdate public in the API
   HBASE-409   Add build path to svn:ignore list (Edward Yoon via Stack)
   HBASE-408   Add .classpath and .project to svn:ignore list
               (Edward Yoon via Stack)
   HBASE-410   Speed up the test suite (make test timeout 5 instead of 15 mins).
   HBASE-281   Shell should allow deletions in .META. and -ROOT- tables
               (Edward Yoon & Bryan Duxbury via Stack)
   HBASE-56    Unnecessary HQLClient Object creation in a shell loop
               (Edward Yoon via Stack)
   HBASE-3     rest server: configure number of threads for jetty
               (Bryan Duxbury via Stack)
   HBASE-416   Add apache-style logging to REST server and add setting log
               level, etc.
   HBASE-406   Remove HTable and HConnection close methods
               (Bryan Duxbury via Stack)
   HBASE-418   Move HMaster and related classes into master package
               (Bryan Duxbury via Stack)
   HBASE-410   Speed up the test suite - Apparently test timeout was too
               aggressive for Hudson. TestLogRolling timed out even though it
               was operating properly. Change test timeout to 10 minutes.
   HBASE-436   website: http://hadoop.apache.org/hbase
   HBASE-417   Factor TableOperation and subclasses into separate files from
               HMaster (Bryan Duxbury via Stack)
   HBASE-440   Add optional log roll interval so that log files are garbage
               collected
   HBASE-407   Keep HRegionLocation information in LRU structure 
   HBASE-444   hbase is very slow at determining table is not present
   HBASE-438   XMLOutputter state should be initialized.
   HBASE-414   Move client classes into client package
   HBASE-79    When HBase needs to be migrated, it should display a message on
               stdout, not just in the logs
   HBASE-461   Simplify leases.
   HBASE-419   Move RegionServer and related classes into regionserver package
   HBASE-457   Factor Master into Master, RegionManager, and ServerManager
   HBASE-464   HBASE-419 introduced javadoc errors
   HBASE-468   Move HStoreKey back to o.a.h.h
   HBASE-442   Move internal classes out of HRegionServer
   HBASE-466   Move HMasterInterface, HRegionInterface, and 
               HMasterRegionInterface into o.a.h.h.ipc
   HBASE-479   Speed up TestLogRolling
   HBASE-480   Tool to manually merge two regions
   HBASE-477   Add support for an HBASE_CLASSPATH
   HBASE-443   Move internal classes out of HStore
   HBASE-515   At least double default timeouts between regionserver and master
   HBASE-529   RegionServer needs to recover if datanode goes down
   HBASE-456   Clearly state which ports need to be opened in order to run HBase
   HBASE-536   Remove MiniDFS startup from MiniHBaseCluster
   HBASE-521   Improve client scanner interface
   HBASE-562   Move Exceptions to subpackages (Jean-Daniel Cryans via Stack)
   HBASE-631   HTable.getRow() for only a column family
               (Jean-Daniel Cryans via Stack)
   HBASE-731   Add a meta refresh tag to the Web ui for master and region server
               (Jean-Daniel Cryans via Stack)
   HBASE-735   hbase shell doesn't trap CTRL-C signal (Jean-Daniel Cryans via Stack)
   HBASE-730   On startup, rinse STARTCODE and SERVER from .META.
               (Jean-Daniel Cryans via Stack)
   HBASE-738   overview.html in need of updating (Izaak Rubin via Stack)
   HBASE-745   scaling of one regionserver, improving memory and cpu usage (partial)
               (LN via Stack)
   HBASE-746   Batching row mutations via thrift (Tim Sell via Stack)
   HBASE-772   Up default lease period from 60 to 120 seconds
   HBASE-779   Test changing hbase.hregion.memcache.block.multiplier to 2
   HBASE-783   For single row, single family retrieval, getRow() works half
               as fast as getScanner().next() (Jean-Daniel Cryans via Stack)
   HBASE-789   add clover coverage report targets (Rong-en Fan via Stack)

  NEW FEATURES
   HBASE-47    Option to set TTL for columns in hbase
               (Andrew Purtell via Bryan Duxbury and Stack)
   HBASE-23    UI listing regions should be sorted by address and show additional
               region state (Jean-Daniel Cryans via Stack)
   HBASE-639   Add HBaseAdmin.getTableDescriptor function
   HBASE-533   Region Historian
   HBASE-487   Replace hql w/ a hbase-friendly jirb or jython shell
   HBASE-548   Tool to online single region
   HBASE-71    Master should rebalance region assignments periodically
   HBASE-512   Add configuration for global aggregate memcache size
   HBASE-40    Add a method of getting multiple (but not all) cells for a row
               at once
   HBASE-506   When an exception has to escape ServerCallable due to exhausted
               retries, show all the exceptions that lead to this situation
   HBASE-747   Add a simple way to do batch updates of many rows (Jean-Daniel
               Cryans via JimK)
   HBASE-733   Enhance Cell so that it can contain multiple values at multiple
               timestamps
   HBASE-511   Do exponential backoff in clients on NSRE, WRE, ISE, etc.
               (Andrew Purtell via Jim Kellerman)
   
  OPTIMIZATIONS
   HBASE-430   Performance: Scanners and getRow return maps with duplicate data

Release 0.1.3 - 07/25/2008

  BUG FIXES
   HBASE-644   DroppedSnapshotException but RegionServer doesn't restart
   HBASE-645   EOFException opening region (HBASE-550 redux)
   HBASE-641   Improve master split logging
   HBASE-642   Splitting log in a hostile environment -- bad hdfs -- we drop
               write-ahead-log edits
   HBASE-646   EOFException opening HStoreFile info file (spin on HBASE-645 and 550)
   HBASE-648   If mapfile index is empty, run repair
   HBASE-659   HLog#cacheFlushLock not cleared; hangs a region
   HBASE-663   Incorrect sequence number for cache flush
   HBASE-652   Dropping table fails silently if table isn't disabled 
   HBASE-674   Memcache size unreliable
   HBASE-665   server side scanner doesn't honor stop row
   HBASE-681   NPE in Memcache (Clint Morgan via Jim Kellerman)
   HBASE-680   config parameter hbase.io.index.interval should be
               hbase.index.interval, accroding to HBaseMapFile.HbaseWriter
               (LN via Stack)
   HBASE-684   unnecessary iteration in HMemcache.internalGet? got much better
               reading performance after break it (LN via Stack)
   HBASE-686   MemcacheScanner didn't return the first row(if it exists),
               because HScannerInterface's output incorrect (LN via Jim Kellerman)
   HBASE-613   Timestamp-anchored scanning fails to find all records
   HBASE-709   Deadlock while rolling WAL-log while finishing flush
   HBASE-707   High-load import of data into single table/family never triggers split
   HBASE-710   If clocks are way off, then we can have daughter split come
               before rather than after its parent in .META.

Release 0.1.2 - 05/13/2008

  BUG FIXES
   HBASE-577   NPE getting scanner
   HBASE-574   HBase does not load hadoop native libs (Rong-En Fan via Stack).
   HBASE-11    Unexpected exits corrupt DFS - best we can do until we have at
               least a subset of HADOOP-1700
   HBASE-573   HBase does not read hadoop-*.xml for dfs configuration after
               moving out hadoop/contrib
   HBASE-12    when hbase regionserver restarts, it says "impossible state for
               createLease()"
   HBASE-575   master dies with stack overflow error if rootdir isn't qualified
   HBASE-500   Regionserver stuck on exit
   HBASE-582   HBase 554 forgot to clear results on each iteration caused by a filter
               (Clint Morgan via Stack)
   HBASE-532   Odd interaction between HRegion.get, HRegion.deleteAll and compactions
   HBASE-590   HBase migration tool does not get correct FileSystem or root
               directory if configuration is not correct
   HBASE-595   RowFilterInterface.rowProcessed() is called *before* fhe final
               filtering decision is made (Clint Morgan via Stack)
   HBASE-586   HRegion runs HStore memcache snapshotting -- fix it so only HStore
               knows about workings of memcache
   HBASE-572   Backport HBASE-512 to 0.1 branch
   HBASE-588   Still a 'hole' in scanners, even after HBASE-532
   HBASE-604   Don't allow CLASSPATH from environment pollute the hbase CLASSPATH
   HBASE-608   HRegionServer::getThisIP() checks hadoop config var for dns interface name
               (Jim R. Wilson via Stack)
   HBASE-609   Master doesn't see regionserver edits because of clock skew
   HBASE-607   MultiRegionTable.makeMultiRegionTable is not deterministic enough
               for regression tests
   HBASE-478   offlining of table does not run reliably
   HBASE-618   We always compact if 2 files, regardless of the compaction threshold setting
   HBASE-619   Fix 'logs' link in UI
   HBASE-620   testmergetool failing in branch and trunk since hbase-618 went in
   
  IMPROVEMENTS
   HBASE-559   MR example job to count table rows
   HBASE-578   Upgrade branch to 0.16.3 hadoop.
   HBASE-596   DemoClient.py (Ivan Begtin via Stack)


Release 0.1.1 - 04/11/2008

  BUG FIXES
   HBASE-550   EOF trying to read reconstruction log stops region deployment
   HBASE-551   Master stuck splitting server logs in shutdown loop; on each
               iteration, edits are aggregated up into the millions
   HBASE-505   Region assignments should never time out so long as the region
               server reports that it is processing the open request
   HBASE-552   Fix bloom filter bugs (Andrzej Bialecki via Jim Kellerman)
   HBASE-507   Add sleep between retries
   HBASE-555   Only one Worker in HRS; on startup, if assigned tens of regions,
               havoc of reassignments because open processing is done in series
   HBASE-547   UI shows hadoop version, not hbase version
   HBASE-561   HBase package does not include LICENSE.txt nor build.xml
   HBASE-556   Add 0.16.2 to hbase branch -- if it works
   HBASE-563   TestRowFilterAfterWrite erroneously sets master address to
               0.0.0.0:60100 rather than relying on conf
   HBASE-554   filters generate StackOverflowException (Clint Morgan via
               Jim Kellerman)
   HBASE-567   Reused BatchUpdate instances accumulate BatchOperations

  NEW FEATURES
   HBASE-548   Tool to online single region

Release 0.1.0

  INCOMPATIBLE CHANGES
   HADOOP-2750 Deprecated methods startBatchUpdate, commitBatch, abortBatch, 
               and renewLease have been removed from HTable (Bryan Duxbury via
               Jim Kellerman)
   HADOOP-2786 Move hbase out of hadoop core
   HBASE-403   Fix build after move of hbase in svn
   HBASE-494   Up IPC version on 0.1 branch so we cannot mistakenly connect
               with a hbase from 0.16.0

  NEW FEATURES
   HBASE-506   When an exception has to escape ServerCallable due to exhausted retries, 
               show all the exceptions that lead to this situation

  OPTIMIZATIONS

  BUG FIXES
   HADOOP-2731 Under load, regions become extremely large and eventually cause
               region servers to become unresponsive
   HADOOP-2693 NPE in getClosestRowBefore (Bryan Duxbury & Stack)
   HADOOP-2599 Some minor improvements to changes in HADOOP-2443
               (Bryan Duxbury & Stack)
   HADOOP-2773 Master marks region offline when it is recovering from a region
               server death
   HBASE-425   Fix doc. so it accomodates new hbase untethered context
   HBase-421   TestRegionServerExit broken
   HBASE-426   hbase can't find remote filesystem
   HBASE-446   Fully qualified hbase.rootdir doesn't work
   HBASE-428   Under continuous upload of rows, WrongRegionExceptions are
               thrown that reach the client even after retries
   HBASE-490   Doubly-assigned .META.; master uses one and clients another
   HBASE-496   impossible state for createLease writes 400k lines in about 15mins
   HBASE-472   Passing on edits, we dump all to log
   HBASE-79    When HBase needs to be migrated, it should display a message on
               stdout, not just in the logs
   HBASE-495   No server address listed in .META.
   HBASE-433 HBASE-251 Region server should delete restore log after successful
               restore, Stuck replaying the edits of crashed machine.
   HBASE-27    hregioninfo cell empty in meta table
   HBASE-501   Empty region server address in info:server entry and a
               startcode of -1 in .META.
   HBASE-516   HStoreFile.finalKey does not update the final key if it is not
               the top region of a split region
   HBASE-524   Problems with getFull
   HBASE-514   table 'does not exist' when it does
   HBASE-537   Wait for hdfs to exit safe mode
   HBASE-534   Double-assignment at SPLIT-time
   
  IMPROVEMENTS
   HADOOP-2555 Refactor the HTable#get and HTable#getRow methods to avoid
               repetition of retry-on-failure logic (thanks to Peter Dolan and
               Bryan Duxbury)
   HBASE-281   Shell should allow deletions in .META. and -ROOT- tables
   HBASE-480   Tool to manually merge two regions
   HBASE-477   Add support for an HBASE_CLASSPATH
   HBASE-515   At least double default timeouts between regionserver and master
   HBASE-482   package-level javadoc should have example client or at least 
               point at the FAQ
   HBASE-497   RegionServer needs to recover if datanode goes down
   HBASE-456   Clearly state which ports need to be opened in order to run HBase
   HBASE-483   Merge tool won't merge two overlapping regions
   HBASE-476   RegexpRowFilter behaves incorectly when there are multiple store
               files (Clint Morgan via Jim Kellerman)
   HBASE-527   RegexpRowFilter does not work when there are columns from 
               multiple families (Clint Morgan via Jim Kellerman)
              
Release 0.16.0

  2008/02/04   HBase is now a subproject of Hadoop. The first HBase release as
               a subproject will be release 0.1.0 which will be equivalent to
               the version of HBase included in Hadoop 0.16.0. In order to
               accomplish this, the HBase portion of HBASE-288 (formerly 
               HADOOP-1398) has been backed out. Once 0.1.0 is frozen (depending
               mostly on changes to infrastructure due to becoming a sub project
               instead of a contrib project), this patch will re-appear on HBase
               trunk.

  INCOMPATIBLE CHANGES
   HADOOP-2056 A table with row keys containing colon fails to split regions
   HADOOP-2079 Fix generated HLog, HRegion names
   HADOOP-2495 Minor performance improvements: Slim-down BatchOperation, etc. 
   HADOOP-2506 Remove the algebra package
   HADOOP-2519 Performance improvements: Customized RPC serialization
   HADOOP-2478 Restructure how HBase lays out files in the file system (phase 1)
               (test input data)
   HADOOP-2478 Restructure how HBase lays out files in the file system (phase 2)
               Includes migration tool org.apache.hadoop.hbase.util.Migrate
   HADOOP-2558 org.onelab.filter.BloomFilter class uses 8X the memory it should
               be using

  NEW FEATURES
    HADOOP-2061 Add new Base64 dialects
    HADOOP-2084 Add a LocalHBaseCluster
    HADOOP-2068 RESTful interface (Bryan Duxbury via Stack)
    HADOOP-2316 Run REST servlet outside of master
                (Bryan Duxbury & Stack)
    HADOOP-1550 No means of deleting a'row' (Bryan Duxbuery via Stack)
    HADOOP-2384 Delete all members of a column family on a specific row
                (Bryan Duxbury via Stack)
    HADOOP-2395 Implement "ALTER TABLE ... CHANGE column" operation
                (Bryan Duxbury via Stack)
    HADOOP-2240 Truncate for hbase (Edward Yoon via Stack)
    HADOOP-2389 Provide multiple language bindings for HBase (Thrift)
                (David Simpson via Stack)

  OPTIMIZATIONS
   HADOOP-2479 Save on number of Text object creations
   HADOOP-2485 Make mapfile index interval configurable (Set default to 32
               instead of 128)
   HADOOP-2553 Don't make Long objects calculating hbase type hash codes
   HADOOP-2377 Holding open MapFile.Readers is expensive, so use less of them
   HADOOP-2407 Keeping MapFile.Reader open is expensive: Part 2
   HADOOP-2533 Performance: Scanning, just creating MapWritable in next
               consumes >20% CPU
   HADOOP-2443 Keep lazy cache of regions in client rather than an
               'authoritative' list (Bryan Duxbury via Stack)
   HADOOP-2600 Performance: HStore.getRowKeyAtOrBefore should use
               MapFile.Reader#getClosest (before)
               (Bryan Duxbury via Stack)

  BUG FIXES
   HADOOP-2059 In tests, exceptions in min dfs shutdown should not fail test
               (e.g. nightly #272)
   HADOOP-2064 TestSplit assertion and NPE failures (Patch build #952 and #953)
   HADOOP-2124 Use of `hostname` does not work on Cygwin in some cases
   HADOOP-2083 TestTableIndex failed in #970 and #956
   HADOOP-2109 Fixed race condition in processing server lease timeout.
   HADOOP-2137 hql.jsp : The character 0x19 is not valid
   HADOOP-2109 Fix another race condition in processing dead servers,
               Fix error online meta regions: was using region name and not
               startKey as key for map.put. Change TestRegionServerExit to
               always kill the region server for the META region. This makes
               the test more deterministic and getting META reassigned was
               problematic.
   HADOOP-2155 Method expecting HBaseConfiguration throws NPE when given Configuration
   HADOOP-2156 BufferUnderflowException for un-named HTableDescriptors
   HADOOP-2161 getRow() is orders of magnitudes slower than get(), even on rows
               with one column (Clint Morgan and Stack)
   HADOOP-2040 Hudson hangs AFTER test has finished
   HADOOP-2274 Excess synchronization introduced by HADOOP-2139 negatively
               impacts performance
   HADOOP-2196 Fix how hbase sits in hadoop 'package' product
   HADOOP-2276 Address regression caused by HADOOP-2274, fix HADOOP-2173 (When
               the master times out a region servers lease, the region server
               may not restart)
   HADOOP-2253 getRow can return HBASE::DELETEVAL cells
               (Bryan Duxbury via Stack)
   HADOOP-2295 Fix assigning a region to multiple servers
   HADOOP-2234 TableInputFormat erroneously aggregates map values
   HADOOP-2308 null regioninfo breaks meta scanner
   HADOOP-2304 Abbreviated symbol parsing error of dir path in jar command
               (Edward Yoon via Stack)
   HADOOP-2320 Committed TestGet2 is managled (breaks build).
   HADOOP-2322 getRow(row, TS) client interface not properly connected
   HADOOP-2309 ConcurrentModificationException doing get of all region start keys
   HADOOP-2321 TestScanner2 does not release resources which sometimes cause the
               test to time out
   HADOOP-2315 REST servlet doesn't treat / characters in row key correctly
               (Bryan Duxbury via Stack)
   HADOOP-2332 Meta table data selection in Hbase Shell
               (Edward Yoon via Stack)
   HADOOP-2347 REST servlet not thread safe but run in a threaded manner
               (Bryan Duxbury via Stack)
   HADOOP-2365 Result of HashFunction.hash() contains all identical values
   HADOOP-2362 Leaking hdfs file handle on region split
   HADOOP-2338 Fix NullPointerException in master server.
   HADOOP-2380 REST servlet throws NPE when any value node has an empty string
               (Bryan Duxbury via Stack)
   HADOOP-2350 Scanner api returns null row names, or skips row names if
               different column families do not have entries for some rows
   HADOOP-2283 AlreadyBeingCreatedException (Was: Stuck replay of failed
               regionserver edits)
   HADOOP-2392 TestRegionServerExit has new failure mode since HADOOP-2338
   HADOOP-2324 Fix assertion failures in TestTableMapReduce
   HADOOP-2396 NPE in HMaster.cancelLease
   HADOOP-2397 The only time that a meta scanner should try to recover a log is
               when the master is starting
   HADOOP-2417 Fix critical shutdown problem introduced by HADOOP-2338
   HADOOP-2418 Fix assertion failures in TestTableMapReduce, TestTableIndex,
               and TestTableJoinMapReduce
   HADOOP-2414 Fix ArrayIndexOutOfBoundsException in bloom filters.
   HADOOP-2430 Master will not shut down if there are no active region servers
   HADOOP-2199 Add tools for going from hregion filename to region name in logs
   HADOOP-2441 Fix build failures in TestHBaseCluster
   HADOOP-2451 End key is incorrectly assigned in many region splits
   HADOOP-2455 Error in Help-string of CREATE command (Edward Yoon via Stack)
   HADOOP-2465 When split parent regions are cleaned up, not all the columns are
               deleted
   HADOOP-2468 TestRegionServerExit failed in Hadoop-Nightly #338
   HADOOP-2467 scanner truncates resultset when > 1 column families
   HADOOP-2503 REST Insert / Select encoding issue (Bryan Duxbury via Stack)
   HADOOP-2505 formatter classes missing apache license
   HADOOP-2504 REST servlet method for deleting a scanner was not properly
               mapped (Bryan Duxbury via Stack)
   HADOOP-2507 REST servlet does not properly base64 row keys and column names
               (Bryan Duxbury via Stack)
   HADOOP-2530 Missing type in new hbase custom RPC serializer
   HADOOP-2490 Failure in nightly #346 (Added debugging of hudson failures).
   HADOOP-2558 fixes for build up on hudson (part 1, part 2, part 3, part 4)
   HADOOP-2500 Unreadable region kills region servers
   HADOOP-2579 Initializing a new HTable object against a nonexistent table
               throws a NoServerForRegionException instead of a
               TableNotFoundException when a different table has been created
               previously (Bryan Duxbury via Stack)
   HADOOP-2587 Splits blocked by compactions cause region to be offline for
               duration of compaction. 
   HADOOP-2592 Scanning, a region can let out a row that its not supposed
               to have
   HADOOP-2493 hbase will split on row when the start and end row is the
               same cause data loss (Bryan Duxbury via Stack)
   HADOOP-2629 Shell digests garbage without complaint
   HADOOP-2619 Compaction errors after a region splits
   HADOOP-2621 Memcache flush flushing every 60 secs with out considering
               the max memcache size
   HADOOP-2584 Web UI displays an IOException instead of the Tables
   HADOOP-2650 Remove Writables.clone and use WritableUtils.clone from
               hadoop instead
   HADOOP-2668 Documentation and improved logging so fact that hbase now
               requires migration comes as less of a surprise
   HADOOP-2686 Removed tables stick around in .META.
   HADOOP-2688 IllegalArgumentException processing a shutdown stops
               server going down and results in millions of lines of output
   HADOOP-2706 HBase Shell crash
   HADOOP-2712 under load, regions won't split
   HADOOP-2675 Options not passed to rest/thrift
   HADOOP-2722 Prevent unintentional thread exit in region server and master
   HADOOP-2718 Copy Constructor HBaseConfiguration(Configuration) will override
               hbase configurations if argumant is not an instance of
               HBaseConfiguration.
   HADOOP-2753 Back out 2718; programmatic config works but hbase*xml conf
               is overridden
   HADOOP-2718 Copy Constructor HBaseConfiguration(Configuration) will override
               hbase configurations if argumant is not an instance of
               HBaseConfiguration (Put it back again).
   HADOOP-2631 2443 breaks HTable.getStartKeys when there is more than one
               table or table you are enumerating isn't the first table
   Delete empty file: src/contrib/hbase/src/java/org/apache/hadoop/hbase/mapred/
               TableOutputCollector.java per Nigel Daley
   
  IMPROVEMENTS
   HADOOP-2401 Add convenience put method that takes writable
               (Johan Oskarsson via Stack)
   HADOOP-2074 Simple switch to enable DEBUG level-logging in hbase
   HADOOP-2088 Make hbase runnable in $HADOOP_HOME/build(/contrib/hbase)
   HADOOP-2126 Use Bob Jenkins' hash for bloom filters
   HADOOP-2157 Make Scanners implement Iterable
   HADOOP-2176 Htable.deleteAll documentation is ambiguous
   HADOOP-2139 (phase 1) Increase parallelism in region servers.
   HADOOP-2267 [Hbase Shell] Change the prompt's title from 'hbase' to 'hql'.
               (Edward Yoon via Stack)
   HADOOP-2139 (phase 2) Make region server more event driven
   HADOOP-2289 Useless efforts of looking for the non-existant table in select
               command.
               (Edward Yoon via Stack)
   HADOOP-2257 Show a total of all requests and regions on the web ui
               (Paul Saab via Stack)
   HADOOP-2261 HTable.abort no longer throws exception if there is no active update.
   HADOOP-2287 Make hbase unit tests take less time to complete.
   HADOOP-2262 Retry n times instead of n**2 times.
   HADOOP-1608 Relational Algrebra Operators
               (Edward Yoon via Stack)
   HADOOP-2198 HTable should have method to return table metadata
   HADOOP-2296 hbase shell: phantom columns show up from select command
   HADOOP-2297 System.exit() Handling in hbase shell jar command
               (Edward Yoon via Stack)
   HADOOP-2224 Add HTable.getRow(ROW, ts)
               (Bryan Duxbury via Stack)
   HADOOP-2339 Delete command with no WHERE clause
               (Edward Yoon via Stack)
   HADOOP-2299 Support inclusive scans (Bryan Duxbury via Stack)
   HADOOP-2333 Client side retries happen at the wrong level
   HADOOP-2357 Compaction cleanup; less deleting + prevent possible file leaks
   HADOOP-2392 TestRegionServerExit has new failure mode since HADOOP-2338
   HADOOP-2370 Allow column families with an unlimited number of versions
               (Edward Yoon via Stack)
   HADOOP-2047 Add an '--master=X' and '--html' command-line parameters to shell
               (Edward Yoon via Stack)
   HADOOP-2351 If select command returns no result, it doesn't need to show the
               header information (Edward Yoon via Stack)
   HADOOP-2285 Add being able to shutdown regionservers (Dennis Kubes via Stack)
   HADOOP-2458 HStoreFile.writeSplitInfo should just call 
               HStoreFile.Reference.write
   HADOOP-2471 Add reading/writing MapFile to PerformanceEvaluation suite
   HADOOP-2522 Separate MapFile benchmark from PerformanceEvaluation
               (Tom White via Stack)
   HADOOP-2502 Insert/Select timestamp, Timestamp data type in HQL
               (Edward Yoon via Stack)
   HADOOP-2450 Show version (and svn revision) in hbase web ui
   HADOOP-2472 Range selection using filter (Edward Yoon via Stack)
   HADOOP-2548 Make TableMap and TableReduce generic
               (Frederik Hedberg via Stack)
   HADOOP-2557 Shell count function (Edward Yoon via Stack)
   HADOOP-2589 Change an classes/package name from Shell to hql
               (Edward Yoon via Stack)
   HADOOP-2545 hbase rest server should be started with hbase-daemon.sh
   HADOOP-2525 Same 2 lines repeated 11 million times in HMaster log upon
               HMaster shutdown
   HADOOP-2616 hbase not spliting when the total size of region reaches max
               region size * 1.5
   HADOOP-2643 Make migration tool smarter.
   
Release 0.15.1
Branch 0.15

  INCOMPATIBLE CHANGES
    HADOOP-1931 Hbase scripts take --ARG=ARG_VALUE when should be like hadoop
                and do ---ARG ARG_VALUE

  NEW FEATURES
    HADOOP-1768 FS command using Hadoop FsShell operations
                (Edward Yoon via Stack)
    HADOOP-1784 Delete: Fix scanners and gets so they work properly in presence
                of deletes. Added a deleteAll to remove all cells equal to or
                older than passed timestamp.  Fixed compaction so deleted cells
                do not make it out into compacted output.  Ensure also that
                versions > column max are dropped compacting.
    HADOOP-1720 Addition of HQL (Hbase Query Language) support in Hbase Shell.
                The old shell syntax has been replaced by HQL, a small SQL-like
                set of operators, for creating, altering, dropping, inserting,
                deleting, and selecting, etc., data in hbase.
                (Inchul Song and Edward Yoon via Stack)
    HADOOP-1913 Build a Lucene index on an HBase table
                (Ning Li via Stack)
    HADOOP-1957 Web UI with report on cluster state and basic browsing of tables

  OPTIMIZATIONS

  BUG FIXES
    HADOOP-1527 Region server won't start because logdir exists
    HADOOP-1723 If master asks region server to shut down, by-pass return of
                shutdown message
    HADOOP-1729 Recent renaming or META tables breaks hbase shell
    HADOOP-1730 unexpected null value causes META scanner to exit (silently)
    HADOOP-1747 On a cluster, on restart, regions multiply assigned
    HADOOP-1776 Fix for sporadic compaction failures closing and moving
                compaction result
    HADOOP-1780 Regions are still being doubly assigned
    HADOOP-1797 Fix NPEs in MetaScanner constructor
    HADOOP-1799 Incorrect classpath in binary version of Hadoop
    HADOOP-1805 Region server hang on exit
    HADOOP-1785 TableInputFormat.TableRecordReader.next has a bug
                (Ning Li via Stack)
    HADOOP-1800 output should default utf8 encoding
    HADOOP-1801 When hdfs is yanked out from under hbase, hbase should go down gracefully
    HADOOP-1813 OOME makes zombie of region server
    HADOOP-1814	TestCleanRegionServerExit fails too often on Hudson
    HADOOP-1820 Regionserver creates hlogs without bound
                (reverted 2007/09/25) (Fixed 2007/09/30)
    HADOOP-1821 Replace all String.getBytes() with String.getBytes("UTF-8")
    HADOOP-1832 listTables() returns duplicate tables
    HADOOP-1834 Scanners ignore timestamp passed on creation
    HADOOP-1847 Many HBase tests do not fail well.
    HADOOP-1847 Many HBase tests do not fail well. (phase 2)
    HADOOP-1870 Once file system failure has been detected, don't check it again
                and get on with shutting down the hbase cluster.
    HADOOP-1888 NullPointerException in HMemcacheScanner (reprise)
    HADOOP-1903 Possible data loss if Exception happens between snapshot and
                flush to disk.
    HADOOP-1920 Wrapper scripts broken when hadoop in one location and hbase in
                another
    HADOOP-1923, HADOOP-1924 a) tests fail sporadically because set up and tear
                 down is inconsistent b) TestDFSAbort failed in nightly #242
    HADOOP-1929 Add hbase-default.xml to hbase jar
    HADOOP-1941 StopRowFilter throws NPE when passed null row
    HADOOP-1966 Make HBase unit tests more reliable in the Hudson environment.
    HADOOP-1975 HBase tests failing with java.lang.NumberFormatException
    HADOOP-1990 Regression test instability affects nightly and patch builds
    HADOOP-1996 TestHStoreFile fails on windows if run multiple times
    HADOOP-1937 When the master times out a region server's lease, it is too 
                aggressive in reclaiming the server's log.
    HADOOP-2004 webapp hql formatting bugs 
    HADOOP_2011 Make hbase daemon scripts take args in same order as hadoop
                daemon scripts
    HADOOP-2017 TestRegionServerAbort failure in patch build #903 and
                nightly #266
    HADOOP-2029 TestLogRolling fails too often in patch and nightlies
    HADOOP-2038 TestCleanRegionExit failed in patch build #927

  IMPROVEMENTS
    HADOOP-1737 Make HColumnDescriptor data publically members settable
    HADOOP-1746 Clean up findbugs warnings
    HADOOP-1757 Bloomfilters: single argument constructor, use enum for bloom
                filter types
    HADOOP-1760 Use new MapWritable and SortedMapWritable classes from
                org.apache.hadoop.io
    HADOOP-1793 (Phase 1) Remove TestHClient (Phase2) remove HClient.
    HADOOP-1794 Remove deprecated APIs
    HADOOP-1802 Startup scripts should wait until hdfs as cleared 'safe mode'
    HADOOP-1833 bin/stop_hbase.sh returns before it completes
                (Izaak Rubin via Stack) 
    HADOOP-1835 Updated Documentation for HBase setup/installation
                (Izaak Rubin via Stack)
    HADOOP-1868 Make default configuration more responsive
    HADOOP-1884 Remove useless debugging log messages from hbase.mapred
    HADOOP-1856 Add Jar command to hbase shell using Hadoop RunJar util
                (Edward Yoon via Stack)
    HADOOP-1928 Have master pass the regionserver the filesystem to use
    HADOOP-1789 Output formatting
    HADOOP-1960 If a region server cannot talk to the master before its lease
                times out, it should shut itself down
    HADOOP-2035 Add logo to webapps


Below are the list of changes before 2007-08-18

  1. HADOOP-1384. HBase omnibus patch. (jimk, Vuk Ercegovac, and Michael Stack)
  2. HADOOP-1402. Fix javadoc warnings in hbase contrib. (Michael Stack)
  3. HADOOP-1404. HBase command-line shutdown failing (Michael Stack)
  4. HADOOP-1397. Replace custom hbase locking with 
     java.util.concurrent.locks.ReentrantLock (Michael Stack)
  5. HADOOP-1403. HBase reliability - make master and region server more fault
     tolerant.
  6. HADOOP-1418. HBase miscellaneous: unit test for HClient, client to do
     'Performance Evaluation', etc.
  7. HADOOP-1420, HADOOP-1423. Findbugs changes, remove reference to removed 
     class HLocking.
  8. HADOOP-1424. TestHBaseCluster fails with IllegalMonitorStateException. Fix
     regression introduced by HADOOP-1397.
  9. HADOOP-1426. Make hbase scripts executable + add test classes to CLASSPATH.
 10. HADOOP-1430. HBase shutdown leaves regionservers up.
 11. HADOOP-1392. Part1: includes create/delete table; enable/disable table;
     add/remove column.
 12. HADOOP-1392. Part2: includes table compaction by merging adjacent regions
     that have shrunk in size.
 13. HADOOP-1445 Support updates across region splits and compactions
 14. HADOOP-1460 On shutdown IOException with complaint 'Cannot cancel lease
     that is not held'
 15. HADOOP-1421 Failover detection, split log files.
     For the files modified, also clean up javadoc, class, field and method 
     visibility (HADOOP-1466)
 16. HADOOP-1479 Fix NPE in HStore#get if store file only has keys < passed key.
 17. HADOOP-1476 Distributed version of 'Performance Evaluation' script
 18. HADOOP-1469 Asychronous table creation
 19. HADOOP-1415 Integrate BSD licensed bloom filter implementation.
 20. HADOOP-1465 Add cluster stop/start scripts for hbase
 21. HADOOP-1415 Provide configurable per-column bloom filters - part 2.
 22. HADOOP-1498. Replace boxed types with primitives in many places.
 23. HADOOP-1509.  Made methods/inner classes in HRegionServer and HClient protected
     instead of private for easier extension. Also made HRegion and HRegionInfo public too.
     Added an hbase-default.xml property for specifying what HRegionInterface extension to use
     for proxy server connection. (James Kennedy via Jim Kellerman)
 24. HADOOP-1534. [hbase] Memcache scanner fails if start key not present
 25. HADOOP-1537. Catch exceptions in testCleanRegionServerExit so we can see
     what is failing.
 26. HADOOP-1543 [hbase] Add HClient.tableExists
 27. HADOOP-1519 [hbase] map/reduce interface for HBase.  (Vuk Ercegovac and
     Jim Kellerman)
 28. HADOOP-1523 Hung region server waiting on write locks 
 29. HADOOP-1560 NPE in MiniHBaseCluster on Windows
 30. HADOOP-1531 Add RowFilter to HRegion.HScanner
     Adds a row filtering interface and two implemenentations: A page scanner,
     and a regex row/column-data matcher. (James Kennedy via Stack)
 31. HADOOP-1566 Key-making utility
 32. HADOOP-1415 Provide configurable per-column bloom filters. 
     HADOOP-1466 Clean up visibility and javadoc issues in HBase.
 33. HADOOP-1538 Provide capability for client specified time stamps in HBase
     HADOOP-1466 Clean up visibility and javadoc issues in HBase.
 34. HADOOP-1589 Exception handling in HBase is broken over client server connections
 35. HADOOP-1375 a simple parser for hbase (Edward Yoon via Stack)
 36. HADOOP-1600 Update license in HBase code
 37. HADOOP-1589 Exception handling in HBase is broken over client server
 38. HADOOP-1574 Concurrent creates of a table named 'X' all succeed
 39. HADOOP-1581 Un-openable tablename bug
 40. HADOOP-1607 [shell] Clear screen command (Edward Yoon via Stack)
 41. HADOOP-1614 [hbase] HClient does not protect itself from simultaneous updates
 42. HADOOP-1468 Add HBase batch update to reduce RPC overhead
 43. HADOOP-1616 Sporadic TestTable failures
 44. HADOOP-1615 Replacing thread notification-based queue with 
     java.util.concurrent.BlockingQueue in HMaster, HRegionServer
 45. HADOOP-1606 Updated implementation of RowFilterSet, RowFilterInterface
     (Izaak Rubin via Stack)
 46. HADOOP-1579 Add new WhileMatchRowFilter and StopRowFilter filters
    (Izaak Rubin via Stack)
 47. HADOOP-1637 Fix to HScanner to Support Filters, Add Filter Tests to
     TestScanner2 (Izaak Rubin via Stack)
 48. HADOOP-1516 HClient fails to readjust when ROOT or META redeployed on new
     region server
 49. HADOOP-1646 RegionServer OOME's under sustained, substantial loading by
     10 concurrent clients
 50. HADOOP-1468 Add HBase batch update to reduce RPC overhead (restrict batches
     to a single row at a time)
 51. HADOOP-1528 HClient for multiple tables (phase 1) (James Kennedy & JimK)
 52. HADOOP-1528 HClient for multiple tables (phase 2) all HBase client side code
     (except TestHClient and HBaseShell) have been converted to use the new client
     side objects (HTable/HBaseAdmin/HConnection) instead of HClient.
 53. HADOOP-1528 HClient for multiple tables - expose close table function
 54. HADOOP-1466 Clean up warnings, visibility and javadoc issues in HBase.
 55. HADOOP-1662 Make region splits faster
 56. HADOOP-1678 On region split, master should designate which host should 
     serve daughter splits. Phase 1: Master balances load for new regions and
     when a region server fails.
 57. HADOOP-1678 On region split, master should designate which host should 
     serve daughter splits. Phase 2: Master assigns children of split region
     instead of HRegionServer serving both children.
 58. HADOOP-1710 All updates should be batch updates
 59. HADOOP-1711 HTable API should use interfaces instead of concrete classes as
     method parameters and return values
 60. HADOOP-1644 Compactions should not block updates
 60. HADOOP-1672 HBase Shell should use new client classes
     (Edward Yoon via Stack).
 61. HADOOP-1709 Make HRegionInterface more like that of HTable
     HADOOP-1725 Client find of table regions should not include offlined, split parents
=
