HBase Change Log
Release 0.94.18 - 03/14/2014
Bug

    [HBASE-9708] - Improve Snapshot Name Error Message
    [HBASE-9778] - Add hint to ExplicitColumnTracker to avoid seeking
    [HBASE-10514] - Forward port HBASE-10466, possible data loss when failed flushes
    [HBASE-10549] - When there is a hole, LoadIncrementalHFiles will hang in an infinite loop.
    [HBASE-10575] - ReplicationSource thread can't be terminated if it runs into the loop to contact peer's zk ensemble and fails continuously
    [HBASE-10583] - backport HBASE-8402 to 0.94 - ScanMetrics depends on number of rpc calls to the server.
    [HBASE-10594] - Speed up TestRestoreSnapshotFromClient
    [HBASE-10598] - Written data can not be read out because MemStore#timeRangeTracker might be updated concurrently
    [HBASE-10614] - Master could not be stopped
    [HBASE-10622] - Improve log and Exceptions in Export Snapshot
    [HBASE-10624] - Fix 2 new findbugs warnings introduced by HBASE-10598
    [HBASE-10627] - A logic mistake in HRegionServer isHealthy
    [HBASE-10631] - Avoid extra seek on FileLink open
    [HBASE-10642] - Add M/R over snapshots to 0.94
    [HBASE-10669] - [hbck tool] Usage is wrong for hbck tool for -sidelineCorruptHfiles option
    [HBASE-10682] - region_mover.rb throws "can't convert nil into String" for regions moved
    [HBASE-10712] - Backport HBASE-8304 to 0.94 and 0.96
    [HBASE-10716] - [Configuration]: hbase.regionserver.region.split.policy should be part of hbase-default.xml
    [HBASE-10718] - TestHLogSplit fails when it sets a KV size to be negative
    [HBASE-10722] - [0.94] HRegion.computeHDFSBlocksDistribution does not account for links and reference files.
    [HBASE-10731] - Fix environment variables typos in scripts
    [HBASE-10738] - AssignmentManager should shut down executors on stop
    [HBASE-10745] - Access ShutdownHook#fsShutdownHooks should be synchronized
    [HBASE-10751] - TestHRegion testWritesWhileScanning occasional fail since HBASE-10514 went in

Improvement

    [HBASE-8604] - improve reporting of incorrect peer address in replication

Test

    [HBASE-9914] - Port fix for HBASE-9836 'Intermittent TestRegionObserverScannerOpenHook#testRegionObserverCompactionTimeStacking failure' to 0.94


Release 0.94.17 - 02/18/2014
Bug

    [HBASE-7963] - HBase VerifyReplication not working when security enabled
    [HBASE-10249] - TestReplicationSyncUpTool fails because failover takes too long
    [HBASE-10274] - MiniZookeeperCluster should close ZKDatabase when shutdown ZooKeeperServers
    [HBASE-10319] - HLog should roll periodically to allow DN decommission to eventually complete.
    [HBASE-10320] - Avoid ArrayList.iterator() ExplicitColumnTracker
    [HBASE-10335] - AuthFailedException in zookeeper may block replication forever
    [HBASE-10340] - [BACKPORT] HBASE-9892 Add info port to ServerName to support multi instances in a node
    [HBASE-10363] - [0.94] TestInputSampler and TestInputSamplerTool fail under hadoop 2.0/23 profiles.
    [HBASE-10371] - Compaction creates empty hfile, then selects this file for compaction and creates empty hfile and over again
    [HBASE-10383] - Secure Bulk Load for 'completebulkload' fails for version 0.94.15
    [HBASE-10400] - [hbck] Continue if region dir missing on region merge attempt
    [HBASE-10401] - [hbck] perform overlap group merges in parallel
    [HBASE-10448] - ZKUtil create and watch methods don't set watch in some cases
    [HBASE-10470] - Import generates huge log file while importing large amounts of data
    [HBASE-10481] - API Compatibility JDiff script does not properly handle arguments in reverse order
    [HBASE-10482] - ReplicationSyncUp doesn't clean up its ZK, needed for tests
    [HBASE-10485] - PrefixFilter#filterKeyValue() should perform filtering on row key
    [HBASE-10489] - TestImportExport fails in 0.94 with Hadoop2
    [HBASE-10493] - InclusiveStopFilter#filterKeyValue() should perform filtering on row key
    [HBASE-10501] - Improve IncreasingToUpperBoundRegionSplitPolicy to avoid too many regions
    [HBASE-10505] - Import.filterKv does not call Filter.filterRowKey
    [HBASE-10506] - Fail-fast if client connection is lost before the real call be executed in RPC layer
    [HBASE-10508] - Backport HBASE-10365 'HBaseFsck should clean up connection properly when repair is completed' to 0.94 and 0.96
    [HBASE-10539] - HRegion.addAndGetGlobalMemstoreSize returns previous size
    [HBASE-10545] - RS Hangs waiting on region to close on shutdown; has to timeout before can go down
    [HBASE-10546] - Two scanner objects are open for each hbase map task but only one scanner object is closed
    [HBASE-10551] - Change local mode back to one RS thread by default
    [HBASE-10552] - HFilePerformanceEvaluation.GaussianRandomReadBenchmark fails sometimes.
    [HBASE-10555] - Backport HBASE-8519 to 0.94, Backup master will never come up if primary master dies during initialization
    [HBASE-10562] - Fix TestMultiTableInputFormat for Hadoop 2 in 0.94

Improvement

    [HBASE-10212] - New rpc metric: number of active handler
    [HBASE-10423] - Report back the message of split or rollback failure to the master
    [HBASE-10457] - Print corrupted file information in SnapshotInfo tool without -file option

Task

    [HBASE-10473] - Add utility for adorning http Context

Test

    [HBASE-10480] - TestLogRollPeriod#testWithEdits may fail due to insufficient waiting


Release 0.94.16 - 01/10/2014
Sub-task

    [HBASE-10257] - [0.94] Master aborts due to assignment race

Bug

    [HBASE-7226] - HRegion.checkAndMutate uses incorrect comparison result for <, <=, > and >=
    [HBASE-8558] - Add timeout limit for HBaseClient dataOutputStream
    [HBASE-8912] - [0.94] AssignmentManager throws IllegalStateException from PENDING_OPEN to OFFLINE
    [HBASE-9346] - HBCK should provide an option to check if regions boundaries are the same in META and in stores.
    [HBASE-10078] - Dynamic Filter - Not using DynamicClassLoader when using FilterList
    [HBASE-10193] - Cleanup HRegion if one of the store fails to open at region initialization
    [HBASE-10214] - Regionserver shutdown improperly and leaves the dir in .old not deleted
    [HBASE-10215] - TableNotFoundException should be thrown after removing stale znode in ETH
    [HBASE-10225] - Bug in calls to RegionObsever.postScannerFilterRow
    [HBASE-10250] - [0.94] TestHLog fails occasionally
    [HBASE-10268] - TestSplitLogWorker occasionally fails
    [HBASE-10272] - Cluster becomes nonoperational if the node hosting the active Master AND ROOT/META table goes offline
    [HBASE-10273] - AssignmentManager.regions and AssignmentManager.servers are not always updated in tandem
    [HBASE-10279] - TestStore.testDeleteExpiredStoreFiles is flaky
    [HBASE-10281] - TestMultiParallel.testFlushCommitsNoAbort fails frequently in 0.94
    [HBASE-10284] - Build broken with svn 1.8
    [HBASE-10286] - Revert HBASE-9593, breaks RS wildcard addresses
    [HBASE-10306] - Backport HBASE-6820 to 0.94, MiniZookeeperCluster should ensure that ZKDatabase is closed upon shutdown()

Improvement

    [HBASE-10285] - All for configurable policies in ChaosMonkey

Test

    [HBASE-10259] - [0.94] Upgrade JUnit to 4.11


Release 0.94.15 - 12/17/2013
Bug

    [HBASE-7886] - [replication] hlog zk node will not be deleted if client roll hlog
    [HBASE-9485] - TableOutputCommitter should implement recovery if we don't want jobs to start from 0 on RM restart
    [HBASE-9995] - Not stopping ReplicationSink when using custom implementation for the ReplicationSink
    [HBASE-10014] - HRegion#doMiniBatchMutation rollbacks the memstore even if there is nothing to rollback.
    [HBASE-10015] - Replace intrinsic locking with explicit locks in StoreScanner
    [HBASE-10026] - HBaseAdmin#createTable could fail if region splits too fast
    [HBASE-10046] - Unmonitored HBase service could accumulate Status objects and OOM
    [HBASE-10057] - TestRestoreFlushSnapshotFromClient and TestRestoreSnapshotFromClient fail to finish occasionally
    [HBASE-10061] - TableMapReduceUtil.findOrCreateJar calls updateMap(null, ) resulting in thrown NPE
    [HBASE-10064] - AggregateClient.validateParameters can throw NPE
    [HBASE-10089] - Metrics intern table names cause eventual permgen OOM in 0.94
    [HBASE-10111] - Verify that a snapshot is not corrupted before restoring it
    [HBASE-10112] - Hbase rest query params for maxVersions and maxValues are not parsed
    [HBASE-10117] - Avoid synchronization in HRegionScannerImpl.isFilterDone
    [HBASE-10120] - start-hbase.sh doesn't respect --config in non-distributed mode
    [HBASE-10179] - HRegionServer underreports readRequestCounts by 1 under certain conditions
    [HBASE-10181] - HBaseObjectWritable.readObject catches DoNotRetryIOException and wraps it back in a regular IOException

Improvement

    [HBASE-9931] - Optional setBatch for CopyTable to copy large rows in batches
    [HBASE-10001] - Add a coprocessor to help testing the performances without taking into account the i/o
    [HBASE-10007] - PerformanceEvaluation: Add sampling and latency collection to randomRead test
    [HBASE-10010] - eliminate the put latency spike on the new log file beginning
    [HBASE-10048] - Add hlog number metric in regionserver
    [HBASE-10049] - Small improvments in region_mover.rb
    [HBASE-10093] - Unregister ReplicationSource metric bean when the replication source thread is terminated

New Feature

    [HBASE-9047] - Tool to handle finishing replication when the cluster is offline
    [HBASE-10119] - Allow HBase coprocessors to clean up when they fail

Task

    [HBASE-9927] - ReplicationLogCleaner#stop() calls HConnectionManager#deleteConnection() unnecessarily
    [HBASE-9986] - Incorporate HTTPS support for HBase (0.94 port)

Test

    [HBASE-10058] - Test for HBASE-9915 (avoid reading index blocks)
    [HBASE-10189] - Intermittent TestReplicationSyncUpTool failure


Release 0.94.14 - 11/18/2013
Sub-task

    [HBASE-9165] - Improvements to addDependencyJars

Bug

    [HBASE-9138] - getHaseIntegrationTestingUtility() is misspelled
    [HBASE-9799] - Change Hadoop 1.2 dependency to 1.2.1
    [HBASE-9809] - RegionTooBusyException should provide region name which was too busy
    [HBASE-9834] - Minimize byte[] copies for 'smart' clients
    [HBASE-9849] - [REST] Forbidden schema delete in read only mode
    [HBASE-9850] - Issues with UI for table compact/split operation completion. After split/compaction operation using UI, the page is not automatically redirecting back using IE8/Firefox.
    [HBASE-9865] - Reused WALEdits in replication may cause RegionServers to go OOM
    [HBASE-9872] - ModifyTable does not modify the attributes of a newly modified/changed ColumnDescriptor
    [HBASE-9890] - MR jobs are not working if started by a delegated user
    [HBASE-9902] - Region Server is starting normally even if clock skew is more than default 30 seconds(or any configured). -> Regionserver node time is greater than master node time
    [HBASE-9906] - Restore snapshot fails to restore the meta edits sporadically
    [HBASE-9915] - Performance: isSeeked() in EncodedScannerV2 always returns false
    [HBASE-9952] - Snapshot restore may fail due to NullPointerException
    [HBASE-9956] - Remove keyLength cache from KeyValue
    [HBASE-9970] - HBase BulkLoad, table is creating with the timestamp key also as a column to the table.
    [HBASE-9971] - Port part of HBASE-9958 to 0.94 - change lock scope in locateRegion
    [HBASE-9975] - Not starting ReplicationSink when using custom implementation for the ReplicationSink.
    [HBASE-9993] - 0.94: HBASE-9865 breaks coprocessor compatibility with WALEdit.

Improvement

    [HBASE-4654] - [replication] Add a check to make sure we don't replicate to ourselves
    [HBASE-8438] - Extend bin/hbase to print a "mapreduce classpath"
    [HBASE-9715] - Backport -in_memory option support for LoadTestTool from trunk
    [HBASE-9831] - 'hbasefsck.numthreads' property isn't passed to hbck via cmdline -D option
    [HBASE-9894] - remove the inappropriate assert statement in Store.getSplitPoint()
    [HBASE-9963] - Remove the ReentrantReadWriteLock in the MemStore

Test

    [HBASE-8397] - improve unit-test coverage of package org.apache.hadoop.hbase.master.metrics (0.94)
    [HBASE-8543] - fix coverage org.apache.hadoop.hbase.rest.client
    [HBASE-8552] - fix coverage org.apache.hadoop.hbase.rest.filter
    [HBASE-8556] - fix coverage org.apache.hadoop.hbase.metrics.histogram
    [HBASE-8557] - fix coverage org.apache.hadoop.hbase.rest.metrics
    [HBASE-8559] - increase unit-test coverage of package org.apache.hadoop.hbase.coprocessor


Release 0.94.13 - 10/29/2013
Sub-task

    [HBASE-9711] - Improve HBASE-9428 - avoid copying bytes for RegexFilter unless necessary

Bug

    [HBASE-7600] - TestAdmin.testCreateBadTables is failing occasionally
    [HBASE-8521] - Cells cannot be overwritten with bulk loaded HFiles
    [HBASE-9430] - Memstore heapSize calculation - DEEP_OVERHEAD is incorrect
    [HBASE-9504] - Backport HBASE-1212 to 0.94
    [HBASE-9548] - Cleanup SnapshotTestingUtils
    [HBASE-9607] - Data loss after snapshot restore into cloned table
    [HBASE-9649] - HFilePrettyPrinter should not throw a NPE if FirstKey or LastKey is null.
    [HBASE-9651] - Backport HBASE-3890 'Scheduled tasks in distributed log splitting not in sync with ZK' to 0.94
    [HBASE-9727] - HBase Rest Server - DELETE scanner operation is a no-op
    [HBASE-9731] - updatesBlockedSeconds RegionServer metric should not be a histogram
    [HBASE-9732] - Static AtomicLong updated in StoreFileScanner every (re)seek
    [HBASE-9737] - Corrupt HFile cause resource leak leading to Region Server OOM
    [HBASE-9745] - Append HBASE_CLASSPATH to end of Java classpath and use another env var for prefix
    [HBASE-9747] - PrefixFilter with OR condition gives wrong results
    [HBASE-9751] - Excessive readpoints checks in StoreFileScanner
    [HBASE-9753] - Excessive readpoint checks in MemstoreScanner
    [HBASE-9783] - o.a.h.h.r.HRegion.mutateRow() with non-existent CF cause NPE
    [HBASE-9789] - Change logging for Coprocessor exec call to trace
    [HBASE-9807] - block encoder unnecessarily copies the key for each reseek
    [HBASE-9842] - Backport HBASE-9593 and HBASE-8667 to 0.94
    [HBASE-9847] - HConnectionImplementation does not connect to new active master

Improvement

    [HBASE-9221] - Provide interface for getting a User in the client
    [HBASE-9488] - Improve performance for small scan
    [HBASE-9716] - LoadTestTool should provide default min and max settings to the data generator
    [HBASE-9749] - Custom threadpool for Coprocessor obtained HTables

Task

    [HBASE-9819] - Backport HBASE-8372 'Provide mutability to CompoundConfiguration' to 0.94

Test

    [HBASE-8553] - improve unit-test coverage of package org.apache.hadoop.hbase.mapreduce.hadoopbackport
    [HBASE-9851] - TestHBaseFsck.testQuarantineMissingHFile is flaky
    [HBASE-9852] - TestRpcMetrics.testCustomMetrics is flaky


Release 0.94.12 - 9/19/2013
Sub-task

    [HBASE-9277] - REST should use listTableNames to list tables
    [HBASE-9279] - Thrift should use listTableNames to list tables

Bug

    [HBASE-7709] - Infinite loop possible in Master/Master replication
    [HBASE-7954] - Fix the retrying logic of memstore flushes to avoid extra sleep
    [HBASE-8760] - possible loss of data in snapshot taken after region split
    [HBASE-8930] - Filter evaluates KVs outside requested columns
    [HBASE-9167] - ServerCallable retries just once if timeout is not integer.max
    [HBASE-9182] - Allow non-admin users to list all table names
    [HBASE-9195] - Fix TestFSHDFSUtils against java7 test re-ordering
    [HBASE-9207] - An Offline SplitParent Region can be assigned breaking split references
    [HBASE-9231] - Multipage book is generated to the wrong location
    [HBASE-9233] - isTableAvailable() may be stuck if an offline parent was never assigned
    [HBASE-9252] - HConnectionManager#getZooKeeperWatcher() should be deprecated in 0.94
    [HBASE-9256] - HBaseClient#setupIOStreams should handle all exceptions
    [HBASE-9266] - Javadoc: Document that HBaseAdmin.flush(...) is synchronous
    [HBASE-9286] - [0.94] ageOfLastShippedOp replication metric doesn't update if the slave regionserver is stalled
    [HBASE-9301] - Default hbase.dynamic.jars.dir to hbase.rootdir/jars
    [HBASE-9303] - Snapshot restore of table which splits after snapshot was taken encounters 'Region is not online'
    [HBASE-9326] - ServerName is created using getLocalSocketAddress, breaks binding to the wildcard address. Revert HBASE-8640
    [HBASE-9329] - SnapshotManager should check for directory existance before throwing a warning.
    [HBASE-9344] - RegionServer not shutting down upon KeeperException in open region
    [HBASE-9356] - [0.94] SecureServer.INSECURE_VERSIONS is declared incorrectly
    [HBASE-9397] - Snapshots with the same name are allowed to proceed concurrently
    [HBASE-9415] - In rpcServer, replicationQueue is initialized with the max queue size instead of the max queue lenght
    [HBASE-9428] - Regex filters are at least an order of magnitude slower since 0.94.3
    [HBASE-9429] - Add back MetaScanner.allTableRegions(Configuration conf,byte[] tablename,boolean offlined) method
    [HBASE-9432] - Backport HBASE-8781 to 0.94
    [HBASE-9448] - [0.94] Shell needs to fall back after HBASE-9182 if talking to older servers
    [HBASE-9455] - Port HBASE-7113 'TestGzipFilter is flaky with jdk1.7' to 0.94
    [HBASE-9468] - Previous active master can still serves RPC request when it is trying recovering expired zk session
    [HBASE-9482] - Do not enforce secure Hadoop for secure HBase
    [HBASE-9506] - [0.94] Backport HBASE-9309 The links in the backup masters template are bad
    [HBASE-9534] - Short-Circuit Coprocessor HTable access when on the same server
    [HBASE-9566] - Add back WALEdit#get/setScopes method
    [HBASE-9584] - Short-Circuit Coprocessor doesn't correctly lookup table when on server

Improvement

    [HBASE-9243] - Add more useful statistics in the HFile tool
    [HBASE-9314] - Dropping a table always prints a TableInfoMissingException in the master log

Task

    [HBASE-9153] - Introduce/update a script to generate jdiff reports
    [HBASE-9377] - Backport HBASE- 9208 "ReplicationLogCleaner slow at large scale"

Test

    [HBASE-9287] - TestCatalogTracker depends on the execution order


Release 0.94.11 - 8/13/2013
Sub-task

    [HBASE-8779] - Add mutateRow method support to Thrift2
    [HBASE-8946] - Add a new function to Thrift 2 to open scanner, get results and close scanner
    [HBASE-8947] - Thrift 2 : Replace "bool writeToWAL" with "TDurability durability"
    [HBASE-8948] - Bound table pool size in Thrift 2 server

Bug

    [HBASE-6826] - [WINDOWS] TestFromClientSide failures
    [HBASE-8067] - TestHFileArchiving.testArchiveOnTableDelete sometimes fails
    [HBASE-8670] - [0.94] Backport HBASE-8449,HBASE-8204 and HBASE-8699 to 0.94 (Refactor recoverLease retries and pauses)
    [HBASE-8698] - potential thread creation in MetaScanner.metaScan
    [HBASE-8935] - IntegrationTestBigLinkedList fails under load on 0.94 due to some scan issues - add logging
    [HBASE-8949] - hbase.mapreduce.hfileoutputformat.blocksize should configure with blocksize of a table
    [HBASE-9026] - RestartRsHoldingRoot action in org.apache.hadoop.hbase.util.ChaosMonkey restarting the server holding .META. instead of -ROOT-
    [HBASE-9032] - Result.getBytes() returns null if backed by KeyValue array
    [HBASE-9048] - HCM throws NullPointerException under load
    [HBASE-9050] - HBaseClient#call could hang
    [HBASE-9060] - ExportSnapshot job fails if target path contains percentage character
    [HBASE-9079] - FilterList getNextKeyHint skips rows that should be included in the results
    [HBASE-9080] - Retain assignment should be used when re-enabling table(s)
    [HBASE-9085] - Integration Tests fails because of bug in teardown phase where the cluster state is not being restored properly.
    [HBASE-9087] - Handlers being blocked during reads
    [HBASE-9097] - Set HBASE_CLASSPATH before rest of the classpath
    [HBASE-9115] - HTableInterface.append operation may overwrites values
    [HBASE-9120] - ClassFinder logs errors that are not
    [HBASE-9146] - TestHTablePool hangs when run as part of runMediumTests profile
    [HBASE-9158] - Serious bug in cyclic replication
    [HBASE-9189] - IncreasingToUpperBoundRegionSplitPolicy.shouldSplit() should check all the stores before returning.
    [HBASE-9200] - HFilePrettyPrinter finds incorrect largest row

Improvement

    [HBASE-6580] - Deprecate HTablePool in favor of HConnection.getTable(...)
    [HBASE-8995] - Add hadoop-1.2 profile
    [HBASE-9019] - Port HBASE-8690: Reduce unnecessary getFileStatus hdfs calls in TTL hfile and hlog cleanners to 0.94
    [HBASE-9029] - Backport HBASE-8706 Some improvement in snapshot to 0.94
    [HBASE-9132] - Use table dir modtime to avoid scanning table dir to check cached table descriptor in 0.94
    [HBASE-9139] - Independent timeout configuration for rpc channel between cluster nodes

New Feature

    [HBASE-7826] - Improve Hbase Thrift v1 to return results in sorted order
    [HBASE-8663] - a HBase Shell command to list the tables replicated from current cluster

Test

    [HBASE-8816] - Add support of loading multiple tables into LoadTestTool
    [HBASE-9075] - [0.94] Backport HBASE-5760 Unit tests should write only under /target to 0.94
    [HBASE-9090] - cleanup snapshot tests setup/teardown code
    [HBASE-9106] - Do not fail TestAcidGuarantees for exceptions on table flush
    [HBASE-9107] - [0.94] Backport HBASE-6950 TestAcidGuarantees system test now flushes too aggressively to 0.94


Release 0.94.10 - 7/19/2013
Sub-task

    [HBASE-8774] - Add BatchSize and Filter to Thrift2
    [HBASE-8819] - Port HBASE-5428 to Thrift 2
    [HBASE-8826] - Ensure HBASE-8695 is covered in Thrift 2
    [HBASE-8832] - Ensure HBASE-4658 is supported by Thrift 2
    [HBASE-8876] - Addendum to HBASE-8774 Add BatchSize and Filter to Thrift2 - Add BatchSize Test
    [HBASE-8938] - Thrift2 does not close scanner instance

Bug

    [HBASE-8432] - a table with unbalanced regions will balance indefinitely with the 'org.apache.hadoop.hbase.master.DefaultLoadBalancer'
    [HBASE-8678] - Wrongly delete cells in some case which can not be deleted
    [HBASE-8695] - The HBase thrift service ignores XML configuration
    [HBASE-8776] - tweak retry settings some more (on trunk and 0.94)
    [HBASE-8782] - Thrift2 can not parse values when using framed transport
    [HBASE-8794] - DependentColumnFilter.toString() throws NullPointerException
    [HBASE-8811] - REST service ignores misspelled "check=" parameter, causing unexpected mutations
    [HBASE-8814] - Possible NPE in split if a region has empty store files.
    [HBASE-8858] - Backport hbase-6979 "recovered.edits file should not break distributed log splitting"
    [HBASE-8910] - HMaster.abortNow shouldn't try to become a master again if it was stopped
    [HBASE-8967] - Duplicate call to snapshotManager.stop() in HRegionServer
    [HBASE-8968] - Avoid call to zk in HRegionServer#getMaster() to log the master address which already read from the zk.
    [HBASE-8971] - Bump 0.94 version to 0.94.10-SNAPSHOT
    [HBASE-8988] - Reuse the thread pool in the shell to not run out of threads

Improvement

    [HBASE-8599] - HLogs in ZK are not cleaned up when replication lag is minimal
    [HBASE-8767] - Backport hbase-8001 and hbase-8012, avoid lazy seek
    [HBASE-8806] - Row locks are acquired repeatedly in HRegion.doMiniBatchMutation for duplicate rows.
    [HBASE-8809] - Include deletes in the scan (setRaw) method does not respect the time range or the filter
    [HBASE-8847] - Filter.transform() always applies unconditionally, even when combined in a FilterList
    [HBASE-8908] - Backport HBASE-8882 and HBASE-8904 (An Integration Test to Test MTTR) to 0.94
    [HBASE-8921] - [thrift2] Add GenericOptionsParser to Thrift 2 server
    [HBASE-8945] - Backport to 0.94: HBASE-7952 Remove update() and Improve ExplicitColumnTracker performance.

Task

    [HBASE-8829] - Improve failed TestMetaScanner assert message so can see where/why failure

Test

    [HBASE-7770] - minor integration test framework fixes
    [HBASE-8885] - Fix and reenable TestGet failing#testDynamicFilter
    [HBASE-8914] - [0.94] TestRegionServerCoprocessorExceptionWithAbort is flaky
    [HBASE-8928] - Make ChaosMonkey & LoadTest tools extensible, to allow addition of more actions and policies.
    [HBASE-8934] - Fix bunch of flaky tests
    [HBASE-8969] - Backport HBASE-8535+HBASE-8586 TestHCM#testDeleteForZKConnLeak enhancement to 0.94


Release 0.94.9 - 6/24/2013
Sub-task

    [HBASE-8453] - TestImportExport failing again due to configuration issues

Bug

    [HBASE-8494] - TestRemoteAdmin#testClusterStatus should not assume 'requests' does not change
    [HBASE-8522] - Archived hfiles and old hlogs may be deleted immediately by HFileCleaner, LogCleaner in HMaster
    [HBASE-8555] - FilterList correctness may be affected by random ordering of sub-filter(list)
    [HBASE-8590] - [0.94] BlockingMetaScannerVisitor should check for parent meta entry while waiting for split daughter
    [HBASE-8639] - Poor performance of htable#getscanner in multithreaded environment due to DNS.getDefaultHost() being called in ScannerCallable#prepare()
    [HBASE-8640] - ServerName in master may not initialize with the configured ipc address of hbase.master.ipc.address
    [HBASE-8655] - Backport to 94 - HBASE-8346(Prefetching .META. rows in case only when useCache is set to true)
    [HBASE-8656] - Rpc call may not be notified in SecureClient
    [HBASE-8671] - Per-region WAL breaks CP backwards compatibility in 0.94 for non-enabled case
    [HBASE-8684] - Table Coprocessor can't access external HTable by default
    [HBASE-8700] - IntegrationTestBigLinkedList can fail due to random number collision
    [HBASE-8724] - [0.94] ExportSnapshot should not use hbase.tmp.dir as a staging dir on hdfs
    [HBASE-8742] - HTableDescriptor Properties not preserved when cloning
    [HBASE-8743] - upgrade hadoop-23 version to 0.23.7
    [HBASE-8749] - Potential race condition between FSUtils.renameAndSetModifyTime() and HFile/LogCleaner
    [HBASE-8762] - Performance/operational penalty when calling HTable.get with a list of one Get
    [HBASE-8783] - RSSnapshotManager.ZKProcedureMemberRpcs may be initialized with the wrong server name

Improvement

    [HBASE-5083] - Backup HMaster should have http infoport open with link to the active master
    [HBASE-8609] - Make the CopyTable support startRow, stopRow options
    [HBASE-8636] - Backport KeyValue Codec to 0.94 (HBASE-7413)
    [HBASE-8683] - Add major compaction support in CompactionTool
    [HBASE-8702] - Make WALEditCodec pluggable

New Feature

    [HBASE-8504] - HTable.getRegionsInRange() should provide a non-cached API

Task

    [HBASE-8603] - Backport HBASE-6921 to 0.94


Release 0.94.8 - 5/22/2013
Sub-task

    [HBASE-8381] - TestTableInputFormatScan on Hadoop 2 fails because YARN kills our applications
    [HBASE-8399] - TestTableInputFormatScan2#testScanFromConfiguration fails on hadoop2 profile

Bug

    [HBASE-7122] - Proper warning message when opening a log file with no entries (idle cluster)
    [HBASE-7210] - Backport HBASE-6059 to 0.94
    [HBASE-7921] - TestHFileBlock.testGzipCompression should ignore the block checksum
    [HBASE-8282] - User triggered flushes does not allow compaction to get triggered even if compaction criteria is met
    [HBASE-8327] - Consolidate class loaders
    [HBASE-8354] - Backport HBASE-7878 'recoverFileLease does not check return value of recoverLease' to 0.94
    [HBASE-8355] - BaseRegionObserver#pre(Compact|Flush|Store)ScannerOpen returns null
    [HBASE-8377] - IntegrationTestBigLinkedList calculates wrap for linked list size incorrectly
    [HBASE-8379] - bin/graceful_stop.sh does not return the balancer to original state
    [HBASE-8385] - [SNAPSHOTS]: Restore fails to restore snapshot of a deleted table
    [HBASE-8389] - HBASE-8354 forces Namenode into loop with lease recovery requests
    [HBASE-8413] - Snapshot verify region will always fail if the HFile has been archived
    [HBASE-8451] - MetricsMBeanBase has concurrency issues in init
    [HBASE-8455] - Update ExportSnapshot to reflect changes in HBASE-7419
    [HBASE-8464] - FastDiffEncoder - valueOffset calculation is incorrect
    [HBASE-8483] - HConnectionManager can leak ZooKeeper connections when using deleteStaleConnection
    [HBASE-8493] - Backport HBASE-8422, 'Master won't go down', to 0.94
    [HBASE-8503] - Backport hbase-8483 "HConnectionManager can leak ZooKeeper connections when using deleteStaleConnection" to 0.94
    [HBASE-8505] - References to split daughters should not be deleted separately from parent META entry
    [HBASE-8509] - ZKUtil#createWithParents won't set data during znode creation when parent folder doesn't exit
    [HBASE-8513] - [0.94] Fix class files with CRLF endings
    [HBASE-8516] - FSUtils.create() fail with ViewFS
    [HBASE-8525] - Use sleep multilier when choosing sinks in ReplicationSource
    [HBASE-8530] - Refine error message from ExportSnapshot when there is leftover snapshot in target cluster
    [HBASE-8538] - HBaseAdmin#isTableEnabled() should check table existence before checking zk state.
    [HBASE-8539] - Double(or tripple ...) ZooKeeper listeners of the same type when Master recovers from ZK SessionExpiredException
    [HBASE-8540] - SnapshotFileCache logs too many times if snapshot dir doesn't exists
    [HBASE-8547] - Fix java.lang.RuntimeException: Cached an already cached block
    [HBASE-8550] - 0.94 ChaosMonkey grep for master is too broad
    [HBASE-8563] - Double count of read requests for Gets
    [HBASE-8588] - [Documentation]: Add information about adding REST and Thrift API kerberos principals to HBase ACL table

Improvement

    [HBASE-5930] - Limits the amount of time an edit can live in the memstore.
    [HBASE-6870] - HTable#coprocessorExec always scan the whole table
    [HBASE-8345] - Add all available resources in o.a.h.h.rest.RootResource and VersionResource to o.a.h.h.rest.client.RemoteAdmin
    [HBASE-8350] - enable ChaosMonkey to run commands as different users
    [HBASE-8367] - LoadIncrementalHFiles does not return an error code nor throw Exception when failures occur due to timeouts
    [HBASE-8383] - Support lib/*jar inside coprocessor jar
    [HBASE-8405] - Add more custom options to how ClusterManager runs commands
    [HBASE-8446] - Allow parallel snapshot of different tables

New Feature

    [HBASE-7965] - Port table locking to 0.94 (HBASE-7305, HBASE-7546, HBASE-7933)
    [HBASE-8415] - DisabledRegionSplitPolicy

Task

    [HBASE-8574] - Add how to rename a table in the docbook

Test

    [HBASE-8508] - improve unit-test coverage of package org.apache.hadoop.hbase.metrics.file


Release 0.94.7 - 4/24/2013
Sub-task

    [HBASE-7615] - Add metrics for snapshots
    [HBASE-7801] - Allow a deferred sync option per Mutation.
    [HBASE-8210] - Backport the LoadTest portions of HBASE-7383
    [HBASE-8316] - JoinedHeap for non essential column families should reseek instead of seek

Bug

    [HBASE-7401] - Remove warning message about running 'hbase migrate'
    [HBASE-7658] - grant with an empty string as permission should throw an exception
    [HBASE-7817] - Suggested JDWP debug options in hbase-env.sh are wrong
    [HBASE-7824] - Improve master start up time when there is log splitting work
    [HBASE-7925] - Back port HBASE-6881 into 0.94
    [HBASE-7961] - truncate on disabled table should throw TableNotEnabledException.
    [HBASE-8014] - Backport HBASE-6915 to 0.94.
    [HBASE-8030] - znode path of online region servers is hard coded in rolling_restart.sh
    [HBASE-8044] - split/flush/compact/major_compact from hbase shell does not work for region key with \x format
    [HBASE-8081] - Backport HBASE-7213 (separate hlog for meta tables) to 0.94
    [HBASE-8092] - bulk assignment in 0.94 doesn't handle ZK errors very well
    [HBASE-8096] - [replication] NPE while replicating a log that is acquiring a new block from HDFS
    [HBASE-8118] - TestTablePermission depends on the execution order
    [HBASE-8125] - HBASE-7435 breaks BuiltInGzipDecompressor on Hadoop < 1.0.x
    [HBASE-8127] - Region of a disabling or disabled table could be stuck in transition state when RS dies during Master initialization
    [HBASE-8128] - HTable#put improvements
    [HBASE-8131] - Create table handler needs to handle failure cases.
    [HBASE-8142] - Sporadic TestZKProcedureControllers failures on trunk
    [HBASE-8146] - IntegrationTestBigLinkedList does not work on distributed setup
    [HBASE-8150] - server should not produce RAITE for already-opening region in 0.94 (because master retry logic handles this case poorly)
    [HBASE-8151] - Decode memstoreTS in HFileReaderV2 only when necessary
    [HBASE-8158] - Backport HBASE-8140 "TableMapReduceUtils#addDependencyJar fails when nested inside another MR job"
    [HBASE-8160] - HMaster#move doesn't check if master initialized
    [HBASE-8166] - Avoid writing the memstoreTS into HFiles when possible
    [HBASE-8169] - TestMasterFailover#testMasterFailoverWithMockedRITOnDeadRS may fail due to regions randomly assigned to a RS
    [HBASE-8170] - HbaseAdmin.createTable cannot handle creating three regions
    [HBASE-8176] - Backport HBASE-5335 "Dynamic Schema Configurations" to 0.94
    [HBASE-8179] - JSON formatting for cluster status is sort of broken
    [HBASE-8188] - Avoid unnecessary row compare in StoreScanner
    [HBASE-8192] - Logic errror causes infinite loop in HRegion.bulkLoadHFiles(List)
    [HBASE-8207] - Replication could have data loss when machine name contains hyphen "-"
    [HBASE-8208] - In some situations data is not replicated to slaves when deferredLogSync is enabled
    [HBASE-8211] - Support for NN HA for 0.94
    [HBASE-8212] - Introduce a new separator instead of hyphen('-') for renaming recovered queues' znodes
    [HBASE-8213] - global authorization may lose efficacy
    [HBASE-8215] - Removing existing .regioninfo in writeRegioninfoOnFilesystem
    [HBASE-8222] - User class should implement equals() and hashCode()
    [HBASE-8225] - [replication] minor code bug when registering ReplicationLogCleaner
    [HBASE-8226] - HBaseTestingUtility#waitUntilAllRegionsAssigned won't return if it counts "too many" regions
    [HBASE-8229] - Replication code logs like crazy if a target table cannot be found.
    [HBASE-8230] - Possible NPE on regionserver abort if replication service has not been started
    [HBASE-8231] - delete tests in table_tests.rb(TestShell) always running on empty table.
    [HBASE-8232] - TestAccessController occasionally fails with IndexOutOfBoundsException
    [HBASE-8246] - Backport HBASE-6318 to 0.94 where SplitLogWorker exits due to ConcurrentModificationException
    [HBASE-8259] - Snapshot backport in 0.94.6 breaks rolling restarts
    [HBASE-8266] - Master cannot start if TableNotFoundException is thrown while partial table recovery
    [HBASE-8270] - Backport HBASE-8097 'MetaServerShutdownHandler may potentially keep bumping up DeadServer.numProcessing' to 0.94
    [HBASE-8274] - Backport to 94: HBASE-7488 Implement HConnectionManager.locateRegions which is currently returning null
    [HBASE-8276] - Backport hbase-6738 to 0.94 "Too aggressive task resubmission from the distributed log manager"
    [HBASE-8285] - HBaseClient never recovers for single HTable.get() calls with no retries when regions move
    [HBASE-8288] - HBaseFileSystem: Refactoring and correct semantics for createPath methods
    [HBASE-8303] - Increse the test timeout to 60s when they are less than 20s
    [HBASE-8313] - Add Bloom filter testing for HFileOutputFormat
    [HBASE-8326] - mapreduce.TestTableInputFormatScan times out frequently
    [HBASE-8352] - Rename '.snapshot' directory
    [HBASE-8427] - Apache Rat is incorrectly excluding test source files

Improvement

    [HBASE-7410] - [snapshots] add snapshot/clone/restore/export docs to ref guide
    [HBASE-7599] - Port HBASE-6066 (low hanging read path improvements) to 0.94
    [HBASE-8148] - Allow IPC to bind on a specific address
    [HBASE-8152] - Avoid creating empty reference file when splitkey is outside the key range of a store file
    [HBASE-8174] - Backport HBASE-8161(setting blocking file count on table level doesn't work) to 0.94
    [HBASE-8198] - Backport HBASE-8063(Filter HFiles based on first/last key) into 0.94
    [HBASE-8199] - Eliminate exception for ExportSnapshot against the null table snapshot (with no data in)
    [HBASE-8209] - Improve LoadTest extensibility

New Feature

    [HBASE-1936] - ClassLoader that loads from hdfs; useful adding filters to classpath without having to restart services
    [HBASE-7415] - [snapshots] Add task information to snapshot operation

Task

    [HBASE-7929] - Reapply hbase-7507 "Make memstore flush be able to retry after exception" to 0.94 branch.

Test

    [HBASE-8106] - Test to check replication log znodes move is done correctly
    [HBASE-8260] - create generic integration test for trunk and 94 that is more deterministic, can be run for longer and is less aggressive


Release 0.94.6.1 - 4/13/2013
Bug

    [HBASE-8259] - Snapshot backport in 0.94.6 breaks rolling restarts


Release 0.94.6 - 3/14/2013
Sub-task

    [HBASE-7944] - Replication leaks file reader resource & not reset currentNbOperations

Bug

    [HBASE-6132] - ColumnCountGetFilter & PageFilter not working with FilterList
    [HBASE-6347] - -ROOT- and .META. are stale in table.jsp if they moved
    [HBASE-6748] - Endless recursive of deleteNode happened in SplitLogManager#DeleteAsyncCallback
    [HBASE-7111] - hbase zkcli will not start if the zookeeper server chosen to connect to is unavailable
    [HBASE-7153] - print gc option in hbase-env.sh affects hbase zkcli
    [HBASE-7507] - Make memstore flush be able to retry after exception
    [HBASE-7521] - fix HBASE-6060 (regions stuck in opening state) in 0.94
    [HBASE-7624] - Backport HBASE-5359 and HBASE-7596 to 0.94
    [HBASE-7671] - Flushing memstore again after last failure could cause data loss
    [HBASE-7700] - TestColumnSeeking is mathematically bound to fail
    [HBASE-7723] - Remove NameNode URI from ZK splitlogs
    [HBASE-7725] - Add ability to create custom compaction request
    [HBASE-7761] - MemStore.USEMSLAB_DEFAULT is false, hbase-default.xml says it's true
    [HBASE-7763] - Compactions not sorting based on size anymore.
    [HBASE-7768] - zkcluster in local mode not seeing configurations in hbase-{site|default}.xml
    [HBASE-7777] - HBCK check for lingering split parents should check for child regions
    [HBASE-7813] - Bug in BulkDeleteEndpoint kills entire rows on COLUMN/VERSION Deletes
    [HBASE-7814] - Port HBASE-6963 'unable to run hbck on a secure cluster' to 0.94
    [HBASE-7829] - zookeeper kerberos conf keytab and principal parameters interchanged
    [HBASE-7832] - Use User.getShortName() in FSUtils
    [HBASE-7833] - 0.94 does not compile with Hadoop-0.20.205 and 0.22.0
    [HBASE-7851] - Include the guava classes as a dependency for jobs using mapreduce.TableMapReduceUtil
    [HBASE-7866] - TestSplitTransactionOnCluster.testSplitBeforeSettingSplittingInZK failed 3 times in a row
    [HBASE-7867] - setPreallocSize is different with COMMENT in setupTestEnv in MiniZooKeeperCluster.java
    [HBASE-7869] - Provide way to not start LogSyncer thread
    [HBASE-7876] - Got exception when manually triggers a split on an empty region
    [HBASE-7883] - Update memstore size when removing the entries in append operation
    [HBASE-7884] - ByteBloomFilter's performance can be improved by avoiding multiplication when generating hash
    [HBASE-7913] - Secure Rest server should login before getting an instance of Rest servlet
    [HBASE-7914] - Port the fix of HBASE-6748 into 0.94 branch
    [HBASE-7915] - Secure ThriftServer needs to login before calling HBaseHandler
    [HBASE-7916] - HMaster uses wrong InetSocketAddress parameter to throw exception
    [HBASE-7919] - Wrong key is used in ServerManager#getServerConnection() to retrieve from Map serverConnections
    [HBASE-7920] - Move isFamilyEssential(byte[] name) out of Filter interface in 0.94
    [HBASE-7945] - Remove flaky TestCatalogTrackerOnCluster
    [HBASE-7986] - [REST] Make HTablePool size configurable
    [HBASE-7991] - Backport HBASE-6479 'HFileReaderV1 caching the same parent META block could cause server abort when splitting' to 0.94
    [HBASE-8007] - Adopt TestLoadAndVerify from BigTop
    [HBASE-8019] - Port HBASE-7779 '[snapshot 130201 merge] Fix TestMultiParallel' to 0.94
    [HBASE-8025] - zkcli fails when SERVER_GC_OPTS is enabled
    [HBASE-8040] - Race condition in AM after HBASE-7521 (only 0.94)
    [HBASE-8055] - Null check missing in StoreFile.Reader.getMaxTimestamp()
    [HBASE-8061] - Missing test from TestFlushSnapshotFromClient in 0.94
    [HBASE-8069] - TestHLog is dependent on the execution order
    [HBASE-8085] - Backport the fix for Bytes.toStringBinary() into 94 (HBASE-6991)
    [HBASE-8099] - ReplicationZookeeper.copyQueuesFromRSUsingMulti should not return any queues if it failed to execute.
    [HBASE-8103] - Fix pom so 0.94 can generate site reports

Improvement

    [HBASE-7818] - add region level metrics readReqeustCount and writeRequestCount
    [HBASE-7827] - Improve the speed of Hbase Thirft Batch mutation for deletes
    [HBASE-8031] - Adopt goraci as an Integration test

New Feature

    [HBASE-4210] - Allow coprocessor to interact with batches per region sent from a client
    [HBASE-7360] - Snapshot 0.94 Backport

Task

    [HBASE-8088] - Versioning site: part one, put stake in the ground for 0.94 by copying current versions of book and site
    [HBASE-8090] - Versioning site; part two, publish 0.94 site and add link from main site


Release 0.94.5 - 2/7/2013
Sub-task

    [HBASE-2611] - Handle RS that fails while processing the failure of another one
    [HBASE-7626] - Backport portions of HBASE-7460 to 0.94
    [HBASE-7687] - TestCatalogTracker.testServerNotRunningIOException fails occasionally
    [HBASE-7738] - REST server should publish metrics that are available via HTTP

Bug

    [HBASE-5458] - Thread safety issues with Compression.Algorithm.GZ and CompressionTest
    [HBASE-6513] - Test errors when building on MacOS
    [HBASE-6824] - Introduce ${hbase.local.dir} and save coprocessor jars there
    [HBASE-7034] - Bad version, failed OPENING to OPENED but master thinks it is open anyways
    [HBASE-7293] - [replication] Remove dead sinks from ReplicationSource.currentPeers and pick new ones
    [HBASE-7423] - HFileArchiver should not use the configuration from the Filesystem
    [HBASE-7468] - TestSplitTransactionOnCluster hangs frequently
    [HBASE-7476] - HBase shell count command doesn't escape binary output
    [HBASE-7497] - TestDistributedLogSplitting.testDelayedDeleteOnFailure times out occasionally
    [HBASE-7498] - Make REST server thread pool size configurable
    [HBASE-7499] - TestScannerTimeout timeout is too aggressive.
    [HBASE-7502] - TestScannerTimeout fails on snapshot branch
    [HBASE-7504] - -ROOT- may be offline forever after FullGC of RS
    [HBASE-7505] - Server will hang when stopping cluster, caused by waiting for split threads
    [HBASE-7506] - Judgment of carrying ROOT/META will become wrong when expiring server
    [HBASE-7513] - HDFSBlocksDistribution shouldn't send NPEs when something goes wrong
    [HBASE-7515] - Store.loadStoreFiles should close opened files if there's an exception
    [HBASE-7524] - hbase-policy.xml is improperly set thus all rules in it can be by-passed
    [HBASE-7530] - [replication] Work around HDFS-4380 else we get NPEs
    [HBASE-7531] - [replication] NPE in SequenceFileLogReader because ReplicationSource doesn't nullify the reader
    [HBASE-7534] - [replication] TestReplication.queueFailover can fail because HBaseTestingUtility.createMultiRegions is dangerous
    [HBASE-7545] - [replication] Break out TestReplication into manageable classes
    [HBASE-7549] - Make HTableInterface#batch() javadoc proper
    [HBASE-7550] - Synchronization problem in AssignmentManager
    [HBASE-7551] - nodeChildrenChange event may happen after the transition to RS_ZK_REGION_SPLITTING in SplitTransaction causing the SPLIT event to be missed in the master side.
    [HBASE-7562] - ZKUtil: missing "else condition" in multi processing
    [HBASE-7575] - FSUtils#getTableStoreFilePathMap should all ignore non-table folders
    [HBASE-7578] - TestCatalogTracker hangs occasionally
    [HBASE-7581] - TestAccessController depends on the execution order
    [HBASE-7584] - Improve TestAccessController.testAppend
    [HBASE-7587] - Fix two findbugs warning in RowResource
    [HBASE-7592] - HConnectionManager.getHTableDescriptor() compares too much
    [HBASE-7602] - TestFromClientSide.testPoolBehavior is incorrect
    [HBASE-7617] - TestHRegionOnCluster.testDataCorrectnessReplayingRecoveredEdits still fails occasionally.
    [HBASE-7628] - Port HBASE-6509 fast-forwarding FuzzyRowFilter to 0.94
    [HBASE-7643] - HFileArchiver.resolveAndArchive() race condition may lead to snapshot data loss
    [HBASE-7644] - Port HBASE-4802 'Disable show table metrics in bulk loader' to 0.94
    [HBASE-7646] - Make forkedProcessTimeoutInSeconds configurable
    [HBASE-7647] - 0.94 hfiles v2.1 are not backwards compatible with HFilev2.0
    [HBASE-7648] - TestAcidGuarantees.testMixedAtomicity hangs sometimes
    [HBASE-7654] - Add List<String> getCoprocessors() to HTableDescriptor
    [HBASE-7669] - ROOT region wouldn't be handled by PRI-IPC-Handler
    [HBASE-7681] - Address some recent random test failures
    [HBASE-7684] - NullPointerException in SecureClient when Call is cleaned up due to RPC timeout
    [HBASE-7685] - Closing socket connection can't be removed from SecureClient
    [HBASE-7693] - Hostname returned by TableInputFormatBase.reverseDNS contains trailing period
    [HBASE-7694] - Secure HBase should use replication call queue
    [HBASE-7698] - race between RS shutdown thread and openregionhandler causes region to get stuck
    [HBASE-7702] - Adding filtering to Import jobs
    [HBASE-7715] - FSUtils#waitOnSafeMode can incorrectly loop on standby NN
    [HBASE-7717] - Wait until regions are assigned in TestSplitTransactionOnCluster
    [HBASE-7728] - deadlock occurs between hlog roller and hlog syncer
    [HBASE-7729] - TestCatalogTrackerOnCluster.testbadOriginalRootLocation fails occasionally
    [HBASE-7730] - HBaseAdmin#synchronousBalanceSwitch is not compatible with 0.92
    [HBASE-7731] - Append/Increment methods in HRegion don't check whether the table is readonly or not
    [HBASE-7740] - Recheck matching row for joined scanners
    [HBASE-7771] - Secure HBase Client in MR job causes tasks to wait forever
    [HBASE-7772] - clusterId is not set in conf properly if only TableMapReduceUtil.initCredentials() is called
    [HBASE-7776] - Use ErrorReporter/Log instead of System.out in hbck
    [HBASE-7785] - rolling-restart.sh script unable to check expiration of master znode
    [HBASE-7793] - Port HBASE-5564 Bulkload is discarding duplicate records to 0.94

Improvement

    [HBASE-3996] - Support multiple tables and scanners as input to the mapper in map/reduce jobs
    [HBASE-5416] - Improve performance of scans with some kind of filters.
    [HBASE-5498] - Secure Bulk Load
    [HBASE-5664] - CP hooks in Scan flow for fast forward when filter filters out a row
    [HBASE-7441] - Make ClusterManager in IntegrationTestingUtility pluggable
    [HBASE-7540] - Make znode dump to print a dump of replication znodes
    [HBASE-7561] - Display the total number of regions for a given table on the master webUI
    [HBASE-7757] - Add web UI to REST server and Thrift server

New Feature

    [HBASE-6669] - Add BigDecimalColumnInterpreter for doing aggregations using AggregationClient
    [HBASE-7748] - Add DelimitedKeyPrefixRegionSplitPolicy

Wish

    [HBASE-7705] - Make the method getCurrentPoolSize of HTablePool public


Release 0.94.4 - 1/2/2013
Sub-task

    [HBASE-3776] - Add Bloom Filter Support to HFileOutputFormat
    [HBASE-6206] - Large tests fail with jdk1.7
    [HBASE-7009] - Port HBaseCluster interface/tests to 0.94
    [HBASE-7042] - Master Coprocessor Endpoint
    [HBASE-7282] - Backport Compaction Tool to 0.94
    [HBASE-7331] - Add access control for region open and close, row locking, and stopping the regionserver
    [HBASE-7336] - HFileBlock.readAtOffset does not work well with multiple threads
    [HBASE-7371] - Blocksize in TestHFileBlock is unintentionally small
    [HBASE-7399] - Health check chore for HMaster
    [HBASE-7406] - Example health checker script
    [HBASE-7431] - TestSplitTransactionOnCluster tests still flaky
    [HBASE-7438] - TestSplitTransactionOnCluster has too many infinite loops

Bug

    [HBASE-6175] - TestFSUtils flaky on hdfs getFileStatus method
    [HBASE-6317] - Master clean start up and Partially enabled tables make region assignment inconsistent.
    [HBASE-6327] - HLog can be null when create table
    [HBASE-6423] - Writes should not block reads on blocking updates to memstores
    [HBASE-7091] - support custom GC options in hbase-env.sh
    [HBASE-7158] - Allow CopyTable to identify the source cluster (for replication scenarios)
    [HBASE-7165] - TestSplitLogManager.testUnassignedTimeout is flaky
    [HBASE-7166] - TestSplitTransactionOnCluster tests are flaky
    [HBASE-7172] - TestSplitLogManager.testVanishingTaskZNode() fails when run individually and is flaky
    [HBASE-7177] - TestZooKeeperScanPolicyObserver.testScanPolicyObserver is flaky
    [HBASE-7180] - RegionScannerImpl.next() is inefficient.
    [HBASE-7205] - Coprocessor classloader is replicated for all regions in the HRegionServer
    [HBASE-7214] - CleanerChore logs too much, so much so it obscures all else that is going on
    [HBASE-7230] - port HBASE-7109 integration tests on cluster are not getting picked up from distribution to 0.94
    [HBASE-7235] - TestMasterObserver is flaky
    [HBASE-7251] - Avoid flood logs during client disconnect during batch get operation
    [HBASE-7252] - TestSizeBasedThrottler fails occasionally
    [HBASE-7259] - Deadlock in HBaseClient when KeeperException occured
    [HBASE-7260] - Upgrade hadoop 1 dependency to hadoop 1.1.1
    [HBASE-7273] - Upgrade zookeeper dependency to 3.4.5 for 0.94
    [HBASE-7279] - Avoid copying the rowkey in RegionScanner, StoreScanner, and ScanQueryMatcher
    [HBASE-7300] - HbckTestingUtil needs to keep a static executor to lower the number of threads used
    [HBASE-7301] - Force ipv4 for unit tests
    [HBASE-7307] - MetaReader.tableExists should not return false if the specified table regions has been split
    [HBASE-7338] - Fix flaky condition for org.apache.hadoop.hbase.TestRegionRebalancing.testRebalanceOnRegionServerNumberChange
    [HBASE-7342] - Split operation without split key incorrectly finds the middle key in off-by-one error
    [HBASE-7343] - Fix flaky condition for TestDrainingServer
    [HBASE-7357] - HBaseClient and HBaseServer should use hbase.security.authentication when negotiating authentication
    [HBASE-7376] - Acquiring readLock does not apply timeout in HRegion#flushcache
    [HBASE-7398] - [0.94 UNIT TESTS] TestAssignmentManager fails frequently on CentOS 5
    [HBASE-7412] - Fix how HTableDescriptor handles default max file size and flush size
    [HBASE-7417] - TestReplication is flaky
    [HBASE-7421] - TestHFileCleaner->testHFileCleaning has an aggressive timeout
    [HBASE-7422] - MasterFS doesn't set configuration for internal FileSystem
    [HBASE-7432] - TestHBaseFsck prevents testsuite from finishing
    [HBASE-7435] - BuiltInGzipDecompressor is only released during full GC
    [HBASE-7440] - ReplicationZookeeper#addPeer is racy
    [HBASE-7442] - HBase remote CopyTable not working when security enabled
    [HBASE-7455] - Increase timeouts in TestReplication and TestSplitLogWorker
    [HBASE-7464] - [REST] Sending HTML for errors is unhelpful
    [HBASE-7466] - Fix junit dependency typo in 0.94
    [HBASE-7467] - CleanerChore checkAndDeleteDirectory not deleting empty directories
    [HBASE-7483] - TestHRegionOnCluster and TestSplitTransactionOnCluster are racy with HBaseAdmin.move()
    [HBASE-7485] - TestSplitLogManager is still flaky on windows

Improvement

    [HBASE-4791] - Allow Secure Zookeeper JAAS configuration to be programmatically set (rather than only by reading JAAS configuration file)
    [HBASE-5616] - Make compaction code standalone
    [HBASE-5693] - When creating a region, the master initializes it and creates a memstore within the master server
    [HBASE-5778] - Fix HLog compression's incompatibilities
    [HBASE-5888] - Clover profile in build
    [HBASE-6585] - Audit log messages should contain info about the higher level operation being executed
    [HBASE-6775] - Use ZK.multi when available for HBASE-6710 0.92/0.94 compatibility fix
    [HBASE-7190] - Add an option to hbck to check only meta and assignment
    [HBASE-7197] - Add multi get to RemoteHTable
    [HBASE-7199] - hbck should check lingering reference hfile and have option to sideline them automatically
    [HBASE-7204] - Make hbck ErrorReporter pluggable
    [HBASE-7231] - port HBASE-7200 create integration test for balancing regions and killing region servers to 0.94
    [HBASE-7249] - add test name filter to IntegrationTestsDriver
    [HBASE-7328] - IntegrationTestRebalanceAndKillServersTargeted supercedes IntegrationTestRebalanceAndKillServers, remove
    [HBASE-7351] - Periodic health check chore
    [HBASE-7359] - [REST] 'accessToken' in RemoteHTable is vestigial
    [HBASE-7374] - Expose master table operations for coprocessors by way of MasterServices
    [HBASE-7377] - Clean up TestHBase7051
    [HBASE-7381] - Lightweight data transfer for Class Result
    [HBASE-7469] - [REST] Share a HBaseAdmin instance
    [HBASE-7472] - [REST] Support MIME type application/protobuf

Task

    [HBASE-5258] - Move coprocessors set out of RegionLoad
    [HBASE-7170] - [0.94 branch] Allow HConnectionImplementation to reconnect to master multiple times
    [HBASE-7283] - Backport HBASE-6564 + HBASE-7202 to 0.94
    [HBASE-7341] - Deprecate RowLocks in 0.94


Release 0.94.3 - 11/12/2012
Sub-task

    [HBASE-4913] - Per-CF compaction Via the Shell
    [HBASE-6305] - TestLocalHBaseCluster hangs with hadoop 2.0/0.23 builds.
    [HBASE-6925] - Change socket write size from 8K to 64K for HBaseServer
    [HBASE-6996] - HRegion.mutateRowsWithLocks should call checkResources/checkReadOnly
    [HBASE-7076] - Add test that increment/append properly integrate with MVCC
    [HBASE-7077] - Test for: CheckAndPut should properly read MVCC
    [HBASE-7078] - Add a test that append is atomic

Bug

    [HBASE-6389] - Modify the conditions to ensure that Master waits for sufficient number of Region Servers before starting region assignments
    [HBASE-6583] - Enhance Hbase load test tool to automatically create column families if not present
    [HBASE-6665] - ROOT region should not be splitted even with META row as explicit split key
    [HBASE-6700] - [replication] empty znodes created during queue failovers aren't deleted
    [HBASE-6728] - [89-fb] prevent OOM possibility due to per connection responseQueue being unbounded
    [HBASE-6733] - [0.92 UNIT TESTS] TestReplication.queueFailover occasionally fails [Part-2]
    [HBASE-6796] - Backport HBASE-5547, Don't delete HFiles in backup mode.
    [HBASE-6843] - loading lzo error when using coprocessor
    [HBASE-6846] - BitComparator bug - ArrayIndexOutOfBoundsException
    [HBASE-6904] - In the HBase shell, an error is thrown that states replication-related znodes already exist
    [HBASE-6958] - TestAssignmentManager sometimes fails
    [HBASE-6974] - Metric for blocked updates
    [HBASE-6978] - Minor typo in ReplicationSource SocketTimeoutException error handling
    [HBASE-7017] - Backport "[replication] The replication-executor should make sure the file that it is replicating is closed before declaring success on that file" to 0.94
    [HBASE-7018] - Fix and Improve TableDescriptor caching for bulk assignment
    [HBASE-7021] - Default to Hadoop 1.0.4 in 0.94 and add Hadoop 1.1 profile
    [HBASE-7037] - ReplicationPeer logs at WARN level aborting server instead of at FATAL
    [HBASE-7048] - Regionsplitter requires the hadoop config path to be in hbase classpath
    [HBASE-7051] - CheckAndPut should properly read MVCC
    [HBASE-7060] - Region load balancing by table does not handle the case where a table's region count is lower than the number of the RS in the cluster
    [HBASE-7069] - HTable.batch does not have to be synchronized
    [HBASE-7086] - Enhance ResourceChecker to log stack trace for potentially hanging threads
    [HBASE-7095] - Cannot set 'lenAsVal' for KeyOnlyFilter from shell
    [HBASE-7103] - Need to fail split if SPLIT znode is deleted even before the split is completed.
    [HBASE-7143] - TestMetaMigrationRemovingHTD fails when used with Hadoop 0.23/2.x

Improvement

    [HBASE-5257] - Allow INCLUDE_AND_NEXT_COL in filters and use it in ColumnPaginationFilter
    [HBASE-5314] - Gracefully rolling restart region servers in rolling-restart.sh
    [HBASE-5898] - Consider double-checked locking for block cache lock
    [HBASE-6852] - SchemaMetrics.updateOnCacheHit costs too much while full scanning a table with all of its fields
    [HBASE-6942] - Endpoint implementation for bulk deletion of data
    [HBASE-6951] - Allow the master info server to be started in a read only mode.
    [HBASE-7073] - OperationMetrics needs to cache the value of hbase.metrics.exposeOperationTimes
    [HBASE-7089] - Allow filter to be specified for Get from HBase shell
    [HBASE-7097] - Log message in SecureServer.class uses wrong class name
    [HBASE-7151] - Better log message for Per-CF compactions

Task

    [HBASE-6032] - Port HFileBlockIndex improvement from HBASE-5987
    [HBASE-7016] - port HBASE-6518 'Bytes.toBytesBinary() incorrect trailing backslash escape' to 0.94
    [HBASE-7020] - Backport HBASE-6336 Split point should not be equal to start row or end row
    [HBASE-7038] - Port HBASE-5970 Improve the AssignmentManager#updateTimer and speed up handling opened event to 0.94
    [HBASE-7040] - Port HBASE-5867 Improve Compaction Throttle Default to 0.94
    [HBASE-7053] - port blockcache configurability (part of HBASE-6312, and HBASE-7033) to 0.94
    [HBASE-7087] - Add to NOTICE.txt a note on jamon being MPL

Test

    [HBASE-5984] - TestLogRolling.testLogRollOnPipelineRestart failed with HADOOP 2.0.0
    [HBASE-7142] - TestSplitLogManager#testDeadWorker may fail because of hard limit on the TimeoutMonitor's timeout period


Release 0.94.2 - 10/08/2012
Sub-task

    [HBASE-6257] - Avoid unnecessary flush & compact on Meta in admin.rb.
    [HBASE-6496] - Example ZK based scan policy
    [HBASE-6792] - Remove interface audience annotations in 0.94/0.92 introduced by HBASE-6516

Bug

    [HBASE-4565] - Maven HBase build broken on cygwin with copynativelib.sh call.
    [HBASE-5292] - getsize per-CF metric incorrectly counts compaction related reads as well
    [HBASE-5549] - Master can fail if ZooKeeper session expires
    [HBASE-5997] - Fix concerns raised in HBASE-5922 related to HalfStoreFileReader
    [HBASE-6165] - Replication can overrun .META. scans on cluster re-start
    [HBASE-6211] - Put latencies in jmx
    [HBASE-6263] - Use default mode for HBase Thrift gateway if not specified
    [HBASE-6268] - Can't enable a table on a 0.94 cluster from a 0.92 client
    [HBASE-6299] - RS starting region open while failing ack to HMaster.sendRegionOpen() causes inconsistency in HMaster's region state and a series of successive problems
    [HBASE-6321] - ReplicationSource dies reading the peer's id
    [HBASE-6340] - HBase RPC should allow protocol extension with common interfaces.
    [HBASE-6359] - KeyValue may return incorrect values after readFields()
    [HBASE-6364] - Powering down the server host holding the .META. table causes HBase Client to take excessively long to recover and connect to reassigned .META. table
    [HBASE-6378] - the javadoc of setEnabledTable maybe not describe accurately
    [HBASE-6432] - HRegionServer doesn't properly set clusterId in conf
    [HBASE-6437] - Avoid admin.balance during master initialize
    [HBASE-6438] - RegionAlreadyInTransitionException needs to give more info to avoid assignment inconsistencies
    [HBASE-6447] - Common TestZooKeeper failures on jenkins: testMasterSessionExpired and testCreateSilentIsReallySilent
    [HBASE-6450] - HBase startup should be with MALLOC_MAX_ARENA set
    [HBASE-6460] - hbck "-repairHoles" usage inconsistent with "-fixHdfsOrphans"
    [HBASE-6471] - Performance regression caused by HBASE-4054
    [HBASE-6478] - TestClassLoading.testClassLoadingFromLibDirInJar occasionally fails
    [HBASE-6488] - HBase wont run on IPv6 on OSes that use zone-indexes
    [HBASE-6503] - HBase Shell Documentation For DROP Is Outdated
    [HBASE-6504] - Adding GC details prevents HBase from starting in non-distributed mode
    [HBASE-6512] - Incorrect OfflineMetaRepair log class name
    [HBASE-6514] - unknown metrics type: org.apache.hadoop.hbase.metrics.histogram.MetricsHistogram
    [HBASE-6516] - hbck cannot detect any IOException while ".tableinfo" file is missing
    [HBASE-6520] - MSLab May cause the Bytes.toLong not work correctly for increment
    [HBASE-6525] - bin/replication/copy_tables_desc.rb references non-existent class
    [HBASE-6529] - With HFile v2, the region server will always perform an extra copy of source files
    [HBASE-6537] - Race between balancer and disable table can lead to inconsistent cluster
    [HBASE-6552] - TestAcidGuarantees system test should flush more aggressively
    [HBASE-6561] - Gets/Puts with many columns send the RegionServer into an "endless" loop
    [HBASE-6565] - Coprocessor exec result Map is not thread safe
    [HBASE-6576] - HBaseAdmin.createTable should wait until the table is enabled
    [HBASE-6579] - Unnecessary KV order check in StoreScanner
    [HBASE-6587] - Region would be assigned twice in the case of all RS offline
    [HBASE-6596] - Revert HBASE-5022; it undoes HBC.create
    [HBASE-6602] - Region Server Dynamic Metrics can cause high cpu usage.
    [HBASE-6603] - RegionMetricsStorage.incrNumericMetric is called too often
    [HBASE-6608] - Fix for HBASE-6160, META entries from daughters can be deleted before parent entries, shouldn't compare HRegionInfo's
    [HBASE-6615] - hbase.rs.evictblocksonclose seems to be ineffective
    [HBASE-6616] - test failure in TestDelayedRpc#testTooManyDelayedRpcs
    [HBASE-6621] - Reduce calls to Bytes.toInt
    [HBASE-6623] - [replication] replication metrics value AgeOfLastShippedOp is not set correctly
    [HBASE-6631] - TestHMasterRPCException in 0.92 failed twice on socket timeout
    [HBASE-6632] - [0.92 UNIT TESTS] testCreateTableRPCTimeOut sets rpc timeout to 1500ms and leaves it (testHundredsOfTable fails w/ 1500ms timeout)
    [HBASE-6638] - Move DaemonThreadFactory into Threads (0.94)
    [HBASE-6641] - more message with DoNotRetryIOException in client
    [HBASE-6647] - [performance regression] appendNoSync/HBASE-4528 doesn't take deferred log flush into account
    [HBASE-6648] - [0.92 UNIT TESTS] TestMasterObserver.testRegionTransitionOperations fails occasionally
    [HBASE-6649] - [0.92 UNIT TESTS] TestReplication.queueFailover occasionally fails [Part-1]
    [HBASE-6662] - Region server incorrectly reports its own address as master's address
    [HBASE-6663] - NPE race in HConnection if zookeeper is reset
    [HBASE-6671] - Kerberos authenticated super user should be able to retrieve proxied delegation tokens
    [HBASE-6679] - RegionServer aborts due to race between compaction and split
    [HBASE-6685] - Thrift DemoClient.pl got NullPointerException
    [HBASE-6686] - HFile Quarantine fails with missing dirs in hadoop 2.0
    [HBASE-6688] - folder referred by thrift demo app instructions is outdated
    [HBASE-6710] - 0.92/0.94 compatibility issues due to HBASE-5206
    [HBASE-6711] - Avoid local results copy in StoreScanner
    [HBASE-6713] - Stopping META/ROOT RS may take 50mins when some region is splitting
    [HBASE-6714] - TestMultiSlaveReplication#testMultiSlaveReplication may fail
    [HBASE-6734] - Code duplication in LoadIncrementalHFiles
    [HBASE-6757] - Very inefficient behaviour of scan using FilterList
    [HBASE-6762] - HBASE-6340 broke SecureRPCEngine
    [HBASE-6769] - HRS.multi eats NoSuchColumnFamilyException since HBASE-5021
    [HBASE-6784] - TestCoprocessorScanPolicy is sometimes flaky when run locally
    [HBASE-6803] - script hbase should add JAVA_LIBRARY_PATH to LD_LIBRARY_PATH
    [HBASE-6839] - Operations may be executed without holding rowLock
    [HBASE-6842] - the jar used in coprocessor is not deleted in local which will exhaust the space of /tmp
    [HBASE-6844] - upgrade 0.23 version dependency in 0.94
    [HBASE-6847] - HBASE-6649 broke replication
    [HBASE-6851] - Race condition in TableAuthManager.updateGlobalCache()
    [HBASE-6853] - IllegalArgument Exception is thrown when an empty region is spliitted.
    [HBASE-6854] - Deletion of SPLITTING node on split rollback should clear the region from RIT
    [HBASE-6868] - Skip checksum is broke; are we double-checksumming by default?
    [HBASE-6871] - HFileBlockIndex Write Error in HFile V2 due to incorrect split into intermediate index blocks
    [HBASE-6888] - HBase scripts ignore any HBASE_OPTS set in the environment
    [HBASE-6889] - Ignore source control files with apache-rat
    [HBASE-6900] - RegionScanner.reseek() creates NPE when a flush or compaction happens before the reseek.
    [HBASE-6901] - Store file compactSelection throws ArrayIndexOutOfBoundsException
    [HBASE-6906] - TestHBaseFsck#testQuarantine* tests are flakey due to TableNotEnabledException
    [HBASE-6912] - Filters are not properly applied in certain cases
    [HBASE-6916] - HBA logs at info level errors that won't show in the shell
    [HBASE-6920] - On timeout connecting to master, client can get stuck and never make progress
    [HBASE-6927] - WrongFS using HRegionInfo.getTableDesc() and different fs for hbase.root and fs.defaultFS
    [HBASE-6946] - JavaDoc missing from release tarballs

Improvement

    [HBASE-3271] - Allow .META. table to be exported
    [HBASE-5582] - "No HServerInfo found for" should be a WARNING message
    [HBASE-5631] - hbck should handle case where .tableinfo file is missing.
    [HBASE-5714] - Add write permissions check before any hbck run that modifies hdfs.
    [HBASE-5728] - Methods Missing in HTableInterface
    [HBASE-6286] - Upgrade maven-compiler-plugin to 2.5.1
    [HBASE-6291] - Don't retry increments on an invalid cell
    [HBASE-6308] - Coprocessors should be loaded in a custom ClassLoader to prevent dependency conflicts with HBase
    [HBASE-6373] - Add more context information to audit log messages
    [HBASE-6444] - Expose the ability to set custom HTTP Request Headers for the REST client used by RemoteHTable
    [HBASE-6458] - new comparator twice in checkAndPut, just reuse the first one
    [HBASE-6522] - Expose locks and leases to Coprocessors
    [HBASE-6586] - Quarantine Corrupted HFiles with hbck
    [HBASE-6643] - Accept encoded region name in compacting/spliting region from shell
    [HBASE-6644] - HBaseAdmin.createTable should wait more till table is enabled.
    [HBASE-6860] - [replication] HBASE-6550 is too aggressive, DDOSes .META.
    [HBASE-6914] - Scans/Gets/Mutations don't give a good error if the table is disabled.

New Feature

    [HBASE-6427] - Pluggable compaction and scan policies via coprocessors
    [HBASE-6505] - Allow shared RegionObserver state
    [HBASE-6550] - Refactoring ReplicationSink to make it more responsive of cluster health

Task

    [HBASE-5042] - TestReadWriteConsistencyControl should be renamed
    [HBASE-6288] - In hbase-daemons.sh, description of the default backup-master file path is wrong
    [HBASE-6538] - Remove copy_table.rb script

Test

    [HBASE-6507] - [hbck] TestHBaseFsck ran into TableNotEnabledException
    [HBASE-6593] - TestAdmin times out sometimes


Release 0.94.1 - 7/24/2012
Sub-task

    [HBASE-5342] - Grant/Revoke global permissions
    [HBASE-5372] - Table mutation operations should check table level rights, not global rights
    [HBASE-5385] - Delete table/column should delete stored permissions on -acl- table
    [HBASE-5659] - TestAtomicOperation.testMultiRowMutationMultiThreads is still failing occasionally
    [HBASE-6061] - Fix ACL "Admin" Table inconsistent permission check
    [HBASE-6062] - preCheckAndPut/Delete() checks for READ when also a WRITE is performed
    [HBASE-6092] - Authorize flush, split, compact operations in AccessController
    [HBASE-6157] - Revoke of Global permission is not taking effect without restart.
    [HBASE-6181] - TestStoreFile fails with jdk1.7
    [HBASE-6188] - Remove the concept of table owner
    [HBASE-6209] - ACL Corrections for AccessControllerProtocol apis
    [HBASE-6224] - add Pre and Post coprocessor hooks for BulkLoad
    [HBASE-6238] - Grant on META not taking effect
    [HBASE-6252] - TABLE ADMIN should be allowed to relocate regions
    [HBASE-6253] - Do not allow user to disable or drop ACL table
    [HBASE-6292] - Compact can skip the security access control
    [HBASE-6355] - Allow HBase to compile against JDK7

Bug

    [HBASE-4379] - [hbck] Does not complain about tables with no end region [Z,]
    [HBASE-4470] - ServerNotRunningException coming out of assignRootAndMeta kills the Master
    [HBASE-4891] - HTable.ClientScanner needs to clone the Scan object
    [HBASE-5546] - Master assigns region in the original region server when opening region failed
    [HBASE-5722] - NPE in ZKUtil#getChildDataAndWatchForNewChildren when ZK not available or NW down.
    [HBASE-5733] - AssignmentManager#processDeadServersAndRegionsInTransition can fail with NPE.
    [HBASE-5741] - ImportTsv does not check for table existence
    [HBASE-5757] - TableInputFormat should handle as many errors as possible
    [HBASE-5806] - Handle split region related failures on master restart and RS restart
    [HBASE-5840] - Open Region FAILED_OPEN doesn't clear the TaskMonitor Status, keeps showing the old status
    [HBASE-5853] - java.lang.RuntimeException: readObject can't find class org.apache.hadoop.hdfs.protocol.HdfsFileStatus
    [HBASE-5874] - When 'fs.default.name' not configured, the hbck tool and Merge tool throw IllegalArgumentException.
    [HBASE-5875] - Process RIT and Master restart may remove an online server considering it as a dead server
    [HBASE-5876] - TestImportExport has been failing against hadoop 0.23 profile
    [HBASE-5883] - Backup master is going down due to connection refused exception
    [HBASE-5894] - Table deletion failed but HBaseAdmin#deletetable reports it as success
    [HBASE-5902] - Some scripts are not executable
    [HBASE-5909] - SlabStats should be a daemon thread
    [HBASE-5916] - RS restart just before master intialization we make the cluster non operative
    [HBASE-5918] - Master will block forever at startup if root server dies between assigning root and assigning meta
    [HBASE-5922] - HalfStoreFileReader seekBefore causes StackOverflowError
    [HBASE-5927] - SSH and DisableTableHandler happening together does not clear the znode of the region and RIT map.
    [HBASE-5928] - Hbck shouldn't npe when there are no tables.
    [HBASE-5955] - Guava 11 drops MapEvictionListener and Hadoop 2.0.0-alpha requires it
    [HBASE-5963] - ClassCastException: FileSystem$Cache$ClientFinalizer cannot be cast to Thread
    [HBASE-5964] - HFileSystem: "No FileSystem for scheme: hdfs"
    [HBASE-5966] - MapReduce based tests broken on Hadoop 2.0.0-alpha
    [HBASE-5975] - Failed suppression of fs shutdown hook with Hadoop 2.0.0
    [HBASE-5986] - Clients can see holes in the META table when regions are being split
    [HBASE-6002] - Possible chance of resource leak in HlogSplitter
    [HBASE-6011] - Unable to start master in local mode
    [HBASE-6016] - ServerShutdownHandler#processDeadRegion could return false for disabling table regions
    [HBASE-6018] - hbck fails with a RejectedExecutionException when >50 regions present
    [HBASE-6021] - NullPointerException when running LoadTestTool without specifying compression type
    [HBASE-6029] - HBCK doesn't recover Balance switch if exception occurs in onlineHbck()
    [HBASE-6046] - Master retry on ZK session expiry causes inconsistent region assignments.
    [HBASE-6047] - Put.has() can't determine result correctly
    [HBASE-6049] - Serializing "List" containing null elements will cause NullPointerException in HbaseObjectWritable.writeObject()
    [HBASE-6050] - HLogSplitter renaming recovered.edits and CJ removing the parent directory race, making the HBCK think cluster is inconsistent.
    [HBASE-6056] - Restore hbase-default version check
    [HBASE-6065] - Log for flush would append a non-sequential edit in the hlog, leading to possible data loss
    [HBASE-6068] - Secure HBase cluster : Client not able to call some admin APIs
    [HBASE-6069] - TableInputFormatBase#createRecordReader() doesn't initialize TableRecordReader which causes NPE
    [HBASE-6070] - AM.nodeDeleted and SSH races creating problems for regions under SPLIT
    [HBASE-6088] - Region splitting not happened for long time due to ZK exception while creating RS_ZK_SPLITTING node
    [HBASE-6089] - SSH and AM.joinCluster causes Concurrent Modification exception.
    [HBASE-6095] - ActiveMasterManager NullPointerException
    [HBASE-6115] - NullPointerException is thrown when root and meta table regions are assigning to another RS.
    [HBASE-6122] - Backup master does not become Active master after ZK exception
    [HBASE-6126] - Fix broke TestLocalHBaseCluster in 0.92/0.94
    [HBASE-6133] - TestRestartCluster failing in 0.92
    [HBASE-6141] - InterfaceAudience breaks 0.94 on older versions of hadoop
    [HBASE-6146] - Disabling of Catalog tables should not be allowed
    [HBASE-6158] - Data loss if the words 'merges' or 'splits' are used as Column Family name
    [HBASE-6160] - META entries from daughters can be deleted before parent entries
    [HBASE-6164] - Correct the bug in block encoding usage in bulkload
    [HBASE-6185] - Update javadoc for ConstantSizeRegionSplitPolicy class
    [HBASE-6195] - Increment data will be lost when the memstore is flushed
    [HBASE-6200] - KeyComparator.compareWithoutRow can be wrong when families have the same prefix
    [HBASE-6210] - Backport HBASE-6197 to 0.94
    [HBASE-6227] - SSH and cluster startup causes data loss
    [HBASE-6229] - AM.assign() should not set table state to ENABLED directly.
    [HBASE-6236] - Offline meta repair fails if the HBase base mount point is on a different cluster/volume than its parent in a ViewFS or similar FS
    [HBASE-6237] - Fix race on ACL table creation in TestTablePermissions
    [HBASE-6240] - Race in HCM.getMaster stalls clients
    [HBASE-6246] - Admin.move without specifying destination does not go through AccessController
    [HBASE-6248] - Jetty init may fail if directory name contains "master"
    [HBASE-6265] - Calling getTimestamp() on a KV in cp.prePut() causes KV not to be flushed
    [HBASE-6269] - Lazyseek should use the maxSequenseId StoreFile's KeyValue as the latest KeyValue
    [HBASE-6281] - Assignment need not be called for disabling table regions during clean cluster start up.
    [HBASE-6284] - Introduce HRegion#doMiniBatchMutation()
    [HBASE-6293] - HMaster does not go down while splitting logs even if explicit shutdown is called.
    [HBASE-6303] - HCD.setCompressionType should use Enum support for storing compression types as strings
    [HBASE-6311] - Data error after majorCompaction caused by keeping MVCC for opened scanners
    [HBASE-6313] - Client hangs because the client is not notified
    [HBASE-6319] - ReplicationSource can call terminate on itself and deadlock
    [HBASE-6325] - [replication] Race in ReplicationSourceManager.init can initiate a failover even if the node is alive
    [HBASE-6326] - Avoid nested retry loops in HConnectionManager
    [HBASE-6328] - FSHDFSUtils#recoverFileLease tries to rethrow InterruptedException but actually shallows it
    [HBASE-6329] - Stopping META regionserver when splitting region could cause daughter region to be assigned twice
    [HBASE-6337] - [MTTR] Remove renaming tmp log file in SplitLogManager
    [HBASE-6357] - Failed distributed log splitting stuck on master web UI
    [HBASE-6369] - HTable is not closed in AggregationClient
    [HBASE-6375] - Master may be using a stale list of region servers for creating assignment plan during startup
    [HBASE-6377] - HBASE-5533 metrics miss all operations submitted via MultiAction
    [HBASE-6380] - bulkload should update the store.storeSize
    [HBASE-6392] - UnknownRegionException blocks hbck from sideline big overlap regions
    [HBASE-6394] - verifyrep MR job map tasks throws NullPointerException
    [HBASE-6397] - [hbck] print out bulk load commands for sidelined regions if necessary
    [HBASE-6406] - TestReplicationPeer.testResetZooKeeperSession and TestZooKeeper.testClientSessionExpired fail frequently
    [HBASE-6420] - Gracefully shutdown logsyncer
    [HBASE-6426] - Add Hadoop 2.0.x profile to 0.92+
    [HBASE-6440] - SplitLogManager - log the exception when failed to finish split log file
    [HBASE-6443] - HLogSplitter should ignore 0 length files
    [HBASE-6445] - rat check fails if hs_err_pid26514.log dropped in tests

Improvement

    [HBASE-4720] - Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server
    [HBASE-5360] - [uberhbck] Add options for how to handle offline split parents.
    [HBASE-5630] - hbck should disable the balancer using synchronousBalanceSwitch.
    [HBASE-5802] - Change the default metrics class to NullContextWithUpdateThread
    [HBASE-5838] - Add an LZ4 compression option to HFile
    [HBASE-5887] - Make TestAcidGuarantees usable for system testing.
    [HBASE-5892] - [hbck] Refactor parallel WorkItem* to Futures.
    [HBASE-5913] - Speed up the full scan of META
    [HBASE-5973] - Add ability for potentially long-running IPC calls to abort if client disconnects
    [HBASE-6010] - Security audit logger configuration for log4j
    [HBASE-6013] - Polish sharp edges from CopyTable
    [HBASE-6022] - Include Junit in the libs when packaging so that TestAcidGaurntee can run
    [HBASE-6023] - Normalize security audit logging level with Hadoop
    [HBASE-6040] - Use block encoding and HBase handled checksum verification in bulk loading using HFileOutputFormat
    [HBASE-6067] - HBase won't start when hbase.rootdir uses ViewFileSystem
    [HBASE-6114] - CacheControl flags should be tunable per table schema per CF
    [HBASE-6124] - Backport HBASE-6033 to 0.90, 0.92 and 0.94
    [HBASE-6161] - Log Error when thrift server fails to start up.
    [HBASE-6173] - hbck check specified tables only
    [HBASE-6207] - Add jitter to client retry timer
    [HBASE-6214] - Backport HBASE-5998 to 94.1
    [HBASE-6244] - [REST] Result generators do not need to query table schema
    [HBASE-6247] - [REST] HTablePool.putTable is deprecated
    [HBASE-6267] - hbase.store.delete.expired.storefile should be true by default
    [HBASE-6283] - [region_mover.rb] Add option to exclude list of hosts on unload instead of just assuming the source node.
    [HBASE-6314] - Fast fail behavior for unauthenticated user
    [HBASE-6332] - Improve POM for better integration with downstream ivy projects
    [HBASE-6334] - TestImprovement for TestHRegion.testWritesWhileGetting
    [HBASE-6341] - Publicly expose HConnectionKey
    [HBASE-6363] - HBaseConfiguration can carry a main method that dumps XML output for debug purposes
    [HBASE-6382] - Upgrade Jersey to 1.8 to match Hadoop 1 and 2
    [HBASE-6384] - hbck should group together those sidelined regions need to be bulk loaded later
    [HBASE-6433] - Improve HBaseServer#getRemoteAddress by utilizing HBaseServer.Connection.hostAddress

New Feature

    [HBASE-2730] - Expose RS work queue contents on web UI
    [HBASE-4956] - Control direct memory buffer consumption by HBaseClient
    [HBASE-5609] - Add the ability to pass additional information for slow query logging
    [HBASE-5886] - Add new metric for possible data loss due to puts without WAL
    [HBASE-6044] - copytable: remove rs.* parameters

Task

    [HBASE-6001] - Upgrade slf4j to 1.6.1
    [HBASE-6034] - Upgrade Hadoop dependencies
    [HBASE-6077] - Document the most common secure RPC troubleshooting resolutions
    [HBASE-6129] - Backport of Add Increment Coalescing in thrift.
    [HBASE-6131] - Add attribution for code added by HBASE-5533 metrics

Test

    [HBASE-5985] - TestMetaMigrationRemovingHTD failed with HADOOP 2.0.0


Release 0.94.0 - 5/1/2012
Sub-task

    [HBASE-4343] - Get the TestAcidGuarantee unit test to fail consistently
    [HBASE-4345] - Ensure that Scanners that read from the storefiles respect MVCC
    [HBASE-4346] - Optimise the storage that we use for storing MVCC information.
    [HBASE-4485] - Eliminate window of missing Data
    [HBASE-4517] - Document new replication features in 0.92
    [HBASE-4544] - Rename RWCC to MVCC
    [HBASE-4594] - Ensure that KV's newer than the oldest-living-scanner is not accounted for the maxVersions during flush/compaction.
    [HBASE-4661] - Ability to export the list of files for a some or all column families for a given region
    [HBASE-4682] - Support deleted rows using Import/Export
    [HBASE-4908] - HBase cluster test tool (port from 0.89-fb)
    [HBASE-4911] - Clean shutdown
    [HBASE-4979] - Setting KEEP_DELETE_CELLS fails in shell
    [HBASE-4981] - add raw scan support to shell
    [HBASE-4998] - Support deleted rows in CopyTable
    [HBASE-5005] - Add DEFAULT_MIN_VERSIONS to HColumnDescriptor.DEFAULT_VALUES
    [HBASE-5058] - Allow HBaseAdmin to use an existing connection
    [HBASE-5096] - Replication does not handle deletes correctly.
    [HBASE-5118] - Fix Scan documentation
    [HBASE-5143] - Fix config typo in pluggable load balancer factory
    [HBASE-5203] - Group atomic put/delete operation into a single WALEdit to handle region server failures.
    [HBASE-5266] - Add documentation for ColumnRangeFilter
    [HBASE-5346] - Fix testColumnFamilyCompression and test_TIMERANGE in TestHFileOutputFormat
    [HBASE-5368] - Move PrefixSplitKeyPolicy out of the src/test into src, so it is accessible in HBase installs
    [HBASE-5371] - Introduce AccessControllerProtocol.checkPermissions(Permission[] permissons) API
    [HBASE-5413] - Rename RowMutation to RowMutations
    [HBASE-5431] - Improve delete marker handling in Import M/R jobs
    [HBASE-5460] - Add protobuf as M/R dependency jar
    [HBASE-5497] - Add protobuf as M/R dependency jar (mapred)
    [HBASE-5523] - Fix Delete Timerange logic for KEEP_DELETED_CELLS
    [HBASE-5541] - Avoid holding the rowlock during HLog sync in HRegion.mutateRowWithLocks
    [HBASE-5638] - Backport to 0.90 and 0.92 - NPE reading ZK config in HBase
    [HBASE-5641] - decayingSampleTick1 prevents HBase from shutting down.
    [HBASE-5793] - TestHBaseFsck#TestNoHdfsTable test hangs after client retries increased

Bug

    [HBASE-2856] - TestAcidGuarantee broken on trunk
    [HBASE-3443] - ICV optimization to look in memstore first and then store files (HBASE-3082) does not work when deletes are in the mix
    [HBASE-3690] - Option to Exclude Bulk Import Files from Minor Compaction
    [HBASE-3987] - Fix a NullPointerException on a failure to load Bloom filter data
    [HBASE-4065] - TableOutputFormat ignores failure to create table instance
    [HBASE-4078] - Silent Data Offlining During HDFS Flakiness
    [HBASE-4105] - Stargate does not support Content-Type: application/json and Content-Encoding: gzip in parallel
    [HBASE-4116] - [stargate] StringIndexOutOfBoundsException in row spec parse
    [HBASE-4326] - Tests that use HBaseTestingUtility.startMiniCluster(n) should shutdown with HBaseTestingUtility.shutdownMiniCluster.
    [HBASE-4397] - -ROOT-, .META. tables stay offline for too long in recovery phase after all RSs are shutdown at the same time
    [HBASE-4398] - If HRegionPartitioner is used in MapReduce, client side configurations are overwritten by hbase-site.xml.
    [HBASE-4476] - Compactions must fail if column tracker gets columns out of order
    [HBASE-4496] - HFile V2 does not honor setCacheBlocks when scanning.
    [HBASE-4607] - Split log worker should terminate properly when waiting for znode
    [HBASE-4609] - ThriftServer.getRegionInfo() is expecting old ServerName format, need to use new Addressing class instead
    [HBASE-4610] - Port HBASE-3380 (Master failover can split logs of live servers) to 92/trunk (definitely bring in config params, decide if we need to do more to fix the bug)
    [HBASE-4626] - Filters unnecessarily copy byte arrays...
    [HBASE-4645] - Edits Log recovery losing data across column families
    [HBASE-4648] - Bytes.toBigDecimal() doesn't use offset
    [HBASE-4658] - Put attributes are not exposed via the ThriftServer
    [HBASE-4673] - NPE in HFileReaderV2.close during major compaction when hfile.block.cache.size is set to 0
    [HBASE-4679] - Thrift null mutation error
    [HBASE-4691] - Remove more unnecessary byte[] copies from KeyValues
    [HBASE-4729] - Clash between region unassign and splitting kills the master
    [HBASE-4745] - LRU Statistics thread should be daemon
    [HBASE-4769] - Abort RegionServer Immediately on OOME
    [HBASE-4776] - HLog.closed should be checked inside of updateLock
    [HBASE-4778] - Don't ignore corrupt StoreFiles when opening a region
    [HBASE-4790] - Occasional TestDistributedLogSplitting failure
    [HBASE-4792] - SplitRegionHandler doesn't care if it deletes the znode or not, leaves the parent region stuck offline
    [HBASE-4795] - Fix TestHFileBlock when running on a 32-bit JVM
    [HBASE-4797] - [availability] Skip recovered.edits files with edits we know older than what region currently has
    [HBASE-4805] - Allow better control of resource consumption in HTable
    [HBASE-4819] - TestShell broke in trunk; typo
    [HBASE-4825] - TestRegionServersMetrics and TestZKLeaderManager are not categorized (small/medium/large)
    [HBASE-4826] - Modify hbasetests.sh to take into account the new pom.xml with surefire
    [HBASE-4832] - TestRegionServerCoprocessorExceptionWithAbort fails if the region server stops too fast
    [HBASE-4853] - HBASE-4789 does overzealous pruning of seqids
    [HBASE-4874] - Run tests with non-secure random, some tests hang otherwise
    [HBASE-4878] - Master crash when splitting hlog may cause data loss
    [HBASE-4886] - truncate fails in HBase shell
    [HBASE-4890] - fix possible NPE in HConnectionManager
    [HBASE-4932] - Block cache can be mistakenly instantiated by tools
    [HBASE-4936] - Cached HRegionInterface connections crash when getting UnknownHost exceptions
    [HBASE-4937] - Error in Quick Start Shell Exercises
    [HBASE-4942] - HMaster is unable to start of HFile V1 is used
    [HBASE-4946] - HTable.coprocessorExec (and possibly coprocessorProxy) does not work with dynamically loaded coprocessors (from hdfs or local system), because the RPC system tries to deserialize an unknown class.
    [HBASE-4993] - Performance regression in minicluster creation
    [HBASE-5003] - If the master is started with a wrong root dir, it gets stuck and can't be killed
    [HBASE-5010] - Filter HFiles based on TTL
    [HBASE-5015] - Remove some leaks in tests due to lack of HTable.close()
    [HBASE-5026] - Add coprocessor hook to HRegionServer.ScannerListener.leaseExpired()
    [HBASE-5027] - HConnection.create(final Connection conf) does not clone, it creates a new Configuration reading *.xmls and then does a merge.
    [HBASE-5038] - Some tests leak connections
    [HBASE-5041] - Major compaction on non existing table does not throw error
    [HBASE-5051] - HBaseTestingUtility#getHBaseAdmin() creates a new HBaseAdmin instance at each call
    [HBASE-5053] - HCM Tests leak connections
    [HBASE-5055] - Build against hadoop 0.22 broken
    [HBASE-5068] - RC1 can not build its hadoop-0.23 profile
    [HBASE-5085] - fix test-patch script from setting the ulimit
    [HBASE-5088] - A concurrency issue on SoftValueSortedMap
    [HBASE-5091] - [replication] Update replication doc to reflect current znode structure
    [HBASE-5097] - RegionObserver implementation whose preScannerOpen and postScannerOpen Impl return null can stall the system initialization through NPE
    [HBASE-5099] - ZK event thread waiting for root region assignment may block server shutdown handler for the region sever the root region was on
    [HBASE-5100] - Rollback of split could cause closed region to be opened again
    [HBASE-5103] - Fix improper master znode deserialization
    [HBASE-5120] - Timeout monitor races with table disable handler
    [HBASE-5121] - MajorCompaction may affect scan's correctness
    [HBASE-5141] - Memory leak in MonitoredRPCHandlerImpl
    [HBASE-5152] - Region is on service before completing initialization when doing rollback of split, it will affect read correctness
    [HBASE-5163] - TestLogRolling#testLogRollOnDatanodeDeath fails sometimes on Jenkins or hadoop QA ("The directory is already locked.")
    [HBASE-5172] - HTableInterface should extend java.io.Closeable
    [HBASE-5176] - AssignmentManager#getRegion: logging nit adds a redundant '+'
    [HBASE-5182] - TBoundedThreadPoolServer threadKeepAliveTimeSec is not configured properly
    [HBASE-5195] - [Coprocessors] preGet hook does not allow overriding or wrapping filter on incoming Get
    [HBASE-5196] - Failure in region split after PONR could cause region hole
    [HBASE-5200] - AM.ProcessRegionInTransition() and AM.handleRegion() race thus leaving the region assignment inconsistent
    [HBASE-5206] - Port HBASE-5155 to 0.92, 0.94, and TRUNK
    [HBASE-5212] - Fix test TestTableMapReduce against 0.23.
    [HBASE-5213] - "hbase master stop" does not bring down backup masters
    [HBASE-5221] - bin/hbase script doesn't look for Hadoop jars in the right place in trunk layout
    [HBASE-5228] - [REST] Rip out "transform" feature
    [HBASE-5267] - Add a configuration to disable the slab cache by default
    [HBASE-5271] - Result.getValue and Result.getColumnLatest return the wrong column.
    [HBASE-5278] - HBase shell script refers to removed "migrate" functionality
    [HBASE-5281] - Should a failure in creating an unassigned node abort the master?
    [HBASE-5282] - Possible file handle leak with truncated HLog file.
    [HBASE-5283] - Request counters may become negative for heavily loaded regions
    [HBASE-5286] - bin/hbase's logic of adding Hadoop jar files to the classpath is fragile when presented with split packaged Hadoop 0.23 installation
    [HBASE-5288] - Security source code dirs missing from 0.92.0 release tarballs.
    [HBASE-5290] - [FindBugs] Synchronization on boxed primitive
    [HBASE-5292] - getsize per-CF metric incorrectly counts compaction related reads as well
    [HBASE-5317] - Fix TestHFileOutputFormat to work against hadoop 0.23
    [HBASE-5327] - Print a message when an invalid hbase.rootdir is passed
    [HBASE-5331] - Off by one bug in util.HMerge
    [HBASE-5345] - CheckAndPut doesn't work when value is empty byte[]
    [HBASE-5348] - Constraint configuration loaded with bloat
    [HBASE-5350] - Fix jamon generated package names
    [HBASE-5351] - hbase completebulkload to a new table fails in a race
    [HBASE-5364] - Fix source files missing licenses in 0.92 and trunk
    [HBASE-5384] - Up heap used by hadoopqa
    [HBASE-5387] - Reuse compression streams in HFileBlock.Writer
    [HBASE-5398] - HBase shell disable_all/enable_all/drop_all promp wrong tables for confirmation
    [HBASE-5415] - FSTableDescriptors should handle random folders in hbase.root.dir better
    [HBASE-5420] - TestImportTsv does not shut down MR Cluster correctly (fails against 0.23 hadoop)
    [HBASE-5423] - Regionserver may block forever on waitOnAllRegionsToClose when aborting
    [HBASE-5425] - Punt on the timeout doesn't work in BulkEnabler#waitUntilDone (master's EnableTableHandler)
    [HBASE-5437] - HRegionThriftServer does not start because of a bug in HbaseHandlerMetricsProxy
    [HBASE-5466] - Opening a table also opens the metatable and never closes it.
    [HBASE-5470] - Make DataBlockEncodingTool work correctly with no native compression codecs loaded
    [HBASE-5473] - Metrics does not push pread time
    [HBASE-5477] - Cannot build RPM for hbase-0.92.0
    [HBASE-5480] - Fixups to MultithreadedTableMapper for Hadoop 0.23.2+
    [HBASE-5481] - Uncaught UnknownHostException prevents HBase from starting
    [HBASE-5484] - Spelling mistake in error message in HMasterCommandLine
    [HBASE-5485] - LogCleaner refers to non-existant SnapshotLogCleaner
    [HBASE-5488] - OfflineMetaRepair doesn't support hadoop 0.20's fs.default.name property
    [HBASE-5499] - dev-support/test-patch.sh does not have execute perms
    [HBASE-5502] - region_mover.rb fails to load regions back to original server for regions only containing empty tables.
    [HBASE-5507] - ThriftServerRunner.HbaseHandler.getRegionInfo() and getTableRegions() do not use ByteBuffer correctly
    [HBASE-5514] - Compile against hadoop 0.24-SNAPSHOT
    [HBASE-5522] - hbase 0.92 test artifacts are missing from Maven central
    [HBASE-5524] - Add a couple of more filters to our rat exclusion set
    [HBASE-5529] - MR test failures becuase MALLOC_ARENA_MAX is not set
    [HBASE-5531] - Maven hadoop profile (version 23) needs to be updated with latest 23 snapshot
    [HBASE-5535] - Make the functions in task monitor synchronized
    [HBASE-5537] - MXBean shouldn't have a dependence on InterfaceStability until 0.96
    [HBASE-5545] - region can't be opened for a long time. Because the creating File failed.
    [HBASE-5552] - Clean up our jmx view; its a bit of a mess
    [HBASE-5562] - test-patch.sh reports a javadoc warning when there are no new javadoc warnings
    [HBASE-5563] - HRegionInfo#compareTo should compare regionId as well
    [HBASE-5567] - test-patch.sh has logic error in findbugs check
    [HBASE-5568] - Multi concurrent flushcache() for one region could cause data loss
    [HBASE-5569] - Do not collect deleted KVs when they are still in use by a scanner.
    [HBASE-5574] - DEFAULT_MAX_FILE_SIZE defaults to a negative value
    [HBASE-5579] - A Delete Version could mask other values
    [HBASE-5581] - Creating a table with invalid syntax does not give an error message when it fails
    [HBASE-5586] - [replication] NPE in ReplicationSource when creating a stream to an inexistent cluster
    [HBASE-5596] - Few minor bugs from HBASE-5209
    [HBASE-5597] - Findbugs check in test-patch.sh always fails
    [HBASE-5603] - rolling-restart.sh script hangs when attempting to detect expiration of /hbase/master znode.
    [HBASE-5606] - SplitLogManger async delete node hangs log splitting when ZK connection is lost
    [HBASE-5611] - Replayed edits from regions that failed to open during recovery aren't removed from the global MemStore size
    [HBASE-5613] - ThriftServer getTableRegions does not return serverName and port
    [HBASE-5623] - Race condition when rolling the HLog and hlogFlush
    [HBASE-5624] - Aborting regionserver when splitting region, may cause daughter region not assigned by ServerShutdownHandler.
    [HBASE-5633] - NPE reading ZK config in HBase
    [HBASE-5635] - If getTaskList() returns null, splitlogWorker would go down and it won't serve any requests
    [HBASE-5636] - TestTableMapReduce doesn't work properly.
    [HBASE-5639] - The logic used in waiting for region servers during startup is broken
    [HBASE-5656] - LoadIncrementalHFiles createTable should detect and set compression algorithm
    [HBASE-5663] - MultithreadedTableMapper doesn't work.
    [HBASE-5665] - Repeated split causes HRegionServer failures and breaks table
    [HBASE-5669] - AggregationClient fails validation for open stoprow scan
    [HBASE-5680] - Improve compatibility warning about HBase with Hadoop 0.23.x
    [HBASE-5689] - Skipping RecoveredEdits may cause data loss
    [HBASE-5690] - compression does not work in Store.java of 0.94
    [HBASE-5694] - getRowsWithColumnsTs() in Thrift service handles timestamps incorrectly
    [HBASE-5701] - Put RegionServerDynamicStatistics under RegionServer in MBean hierarchy rather than have it as a peer.
    [HBASE-5717] - Scanner metrics are only reported if you get to the end of a scanner
    [HBASE-5720] - HFileDataBlockEncoderImpl uses wrong header size when reading HFiles with no checksums
    [HBASE-5722] - NPE in ZKUtil#getChildDataAndWatchForNewChildren when ZK not available or NW down.
    [HBASE-5724] - Row cache of KeyValue should be cleared in readFields().
    [HBASE-5736] - ThriftServerRunner.HbaseHandler.mutateRow() does not use ByteBuffer correctly
    [HBASE-5743] - Support GIT patches
    [HBASE-5773] - HtablePool constructor not reading config files in certain cases
    [HBASE-5780] - Fix race in HBase regionserver startup vs ZK SASL authentication
    [HBASE-5781] - Zookeeper session got closed while trying to assign the region to RS using hbck -fix
    [HBASE-5782] - Edits can be appended out of seqid order since HBASE-4487
    [HBASE-5787] - Table owner can't disable/delete his/her own table
    [HBASE-5795] - HServerLoad$RegionLoad breaks 0.92<->0.94 compatibility
    [HBASE-5825] - TestHLog not running any tests; fix
    [HBASE-5833] - 0.92 build has been failing pretty consistently on TestMasterFailover....
    [HBASE-5848] - Create table with EMPTY_START_ROW passed as splitKey causes the HMaster to abort
    [HBASE-5849] - On first cluster startup, RS aborts if root znode is not available
    [HBASE-5850] - Refuse operations from Admin before master is initialized - fix for all branches.
    [HBASE-5857] - RIT map in RS not getting cleared while region opening
    [HBASE-5861] - Hadoop 23 compilation broken due to tests introduced in HBASE-5604
    [HBASE-5864] - Error while reading from hfile in 0.94
    [HBASE-5865] - test-util.sh broken with unittest updates
    [HBASE-5866] - Canary in tool package but says its in tools.
    [HBASE-5871] - Usability regression, we don't parse compression algos anymore
    [HBASE-5873] - TimeOut Monitor thread should be started after atleast one region server registers.
    [HBASE-5884] - MapReduce package info has broken link to bulk-loads
    [HBASE-5885] - Invalid HFile block magic on Local file System
    [HBASE-5893] - Allow spaces in coprocessor conf (aka trim() className)
    [HBASE-5897] - prePut coprocessor hook causing substantial CPU usage
    [HBASE-5908] - TestHLogSplit.testTralingGarbageCorruptionFileSkipErrorsPasses should not use append to corrupt the HLog
    [HBASE-6265] - Calling getTimestamp() on a KV in cp.prePut() causes KV not to be flushed
    [HBASE-6357] - Failed distributed log splitting stuck on master web UI

Improvement

    [HBASE-1744] - Thrift server to match the new java api.
    [HBASE-2418] - add support for ZooKeeper authentication
    [HBASE-3373] - Allow regions to be load-balanced by table
    [HBASE-3433] - Remove the KV copy of every KV in Scan; introduced by HBASE-3232
    [HBASE-3512] - Coprocessors: Shell support for listing currently loaded coprocessor set
    [HBASE-3565] - Add metrics to keep track of slow HLog appends
    [HBASE-3763] - Add Bloom Block Index Support
    [HBASE-3850] - Log more details when a scanner lease expires
    [HBASE-3924] - Improve Shell's CLI help
    [HBASE-3949] - Add "Master" link to RegionServer pages
    [HBASE-4058] - Extend TestHBaseFsck with a complete .META. recovery scenario
    [HBASE-4062] - Multi-column scanner unit test
    [HBASE-4070] - [Coprocessors] Improve region server metrics to report loaded coprocessors to master
    [HBASE-4076] - hbase should pick up HADOOP_CONF_DIR on its classpath
    [HBASE-4131] - Make the Replication Service pluggable via a standard interface definition
    [HBASE-4132] - Extend the WALActionsListener API to accomodate log archival
    [HBASE-4145] - Provide metrics for hbase client
    [HBASE-4213] - Support for fault tolerant, instant schema updates with out master's intervention (i.e with out enable/disable and bulk assign/unassign) through ZK.
    [HBASE-4218] - Data Block Encoding of KeyValues (aka delta encoding / prefix compression)
    [HBASE-4365] - Add a decent heuristic for region size
    [HBASE-4418] - Show all the hbase configuration in the web ui
    [HBASE-4439] - Move ClientScanner out of HTable
    [HBASE-4440] - add an option to presplit table to PerformanceEvaluation
    [HBASE-4461] - Expose getRowOrBefore via Thrift
    [HBASE-4463] - Run more aggressive compactions during off peak hours
    [HBASE-4465] - Lazy-seek optimization for StoreFile scanners
    [HBASE-4469] - Avoid top row seek by looking up ROWCOL bloomfilter
    [HBASE-4480] - Testing script to simplify local testing
    [HBASE-4487] - The increment operation can release the rowlock before sync-ing the Hlog
    [HBASE-4489] - Better key splitting in RegionSplitter
    [HBASE-4519] - 25s sleep when expiring sessions in tests
    [HBASE-4522] - Make hbase-site-custom.xml override the hbase-site.xml
    [HBASE-4528] - The put operation can release the rowlock before sync-ing the Hlog
    [HBASE-4532] - Avoid top row seek by dedicated bloom filter for delete family bloom filter
    [HBASE-4542] - add filter info to slow query logging
    [HBASE-4554] - Allow set/unset coprocessor table attributes from shell.
    [HBASE-4568] - Make zk dump jsp response more quickly
    [HBASE-4585] - Avoid next operations (and instead reseek) when current kv is deleted
    [HBASE-4591] - TTL for old HLogs should be calculated from last modification time.
    [HBASE-4612] - Allow ColumnPrefixFilter to support multiple prefixes
    [HBASE-4627] - Ability to specify a custom start/end to RegionSplitter
    [HBASE-4628] - Enhance Table Create Presplit Functionality within the HBase Shell
    [HBASE-4640] - Catch ClosedChannelException and document it
    [HBASE-4657] - Improve the efficiency of our MR jobs with a few configurations
    [HBASE-4669] - Add an option of using round-robin assignment for enabling table
    [HBASE-4696] - HRegionThriftServer' might have to indefinitely do redirtects
    [HBASE-4704] - A JRuby script for identifying active master
    [HBASE-4737] - Categorize the tests into small/medium/large; allow small tests to be run in parallel within a single JVM
    [HBASE-4746] - Use a random ZK client port in unit tests so we can run them in parallel
    [HBASE-4752] - Don't create an unnecessary LinkedList when evicting from the BlockCache
    [HBASE-4760] - Add Developer Debug Options to HBase Config
    [HBASE-4761] - Add Developer Debug Options to HBase Config
    [HBASE-4764] - naming errors for TestHLogUtils and SoftValueSortedMapTest
    [HBASE-4779] - TestHTablePool, TestScanWithBloomError, TestRegionSplitCalculator are not tagged and TestPoolMap should not use TestSuite
    [HBASE-4780] - Lower mini cluster shutdown time in HRegionServer#waitOnAllRegionsToClose and ServerManager#letRegionServersShutdown
    [HBASE-4781] - Pom update to use the new versions of surefire & junit
    [HBASE-4783] - Improve RowCounter to count rows in a specific key range.
    [HBASE-4787] - Make corePool as a configurable parameter in HTable
    [HBASE-4798] - Sleeps and synchronisation improvements for tests
    [HBASE-4809] - Per-CF set RPC metrics
    [HBASE-4820] - Distributed log splitting coding enhancement to make it easier to understand, no semantics change
    [HBASE-4847] - Activate single jvm for small tests on jenkins
    [HBASE-4863] - Make Thrift server thread pool bounded and add a command-line UI test
    [HBASE-4884] - Allow environment overrides for various HBase processes
    [HBASE-4933] - Ability to calculate the blockcache hit ratio for the last few minutes
    [HBASE-4938] - Create a HRegion.getScanner public method that allows reading from a specified readPoint
    [HBASE-4940] - hadoop-metrics.properties can include configuration of the "rest" context for ganglia
    [HBASE-4957] - Clean up some log messages, code in RecoverableZooKeeper
    [HBASE-4964] - Add builddate, make less sections in toc, and add header and footer customizations
    [HBASE-4965] - Monitor the open file descriptors and the threads counters during the unit tests
    [HBASE-4970] - Add a parameter so that keepAliveTime of Htable thread pool can be changed
    [HBASE-4971] - Useless sleeps in TestTimestampsFilter and TestMultipleTimestamps
    [HBASE-4973] - On failure, HBaseAdmin sleeps one time too many
    [HBASE-4989] - Metrics to measure sequential reads and random reads separately
    [HBASE-4995] - Increase zk maxClientCnxns to give us some head room
    [HBASE-5014] - PutSortReducer should adhere to memory limits
    [HBASE-5017] - Bump the default hfile.block.cache.size because of HFileV2
    [HBASE-5021] - Enforce upper bound on timestamp
    [HBASE-5033] - Opening/Closing store in parallel to reduce region open/close time
    [HBASE-5064] - utilize surefire tests parallelization
    [HBASE-5072] - Support Max Value for Per-Store Metrics
    [HBASE-5074] - support checksums in HBase block cache
    [HBASE-5134] - Remove getRegionServerWithoutRetries and getRegionServerWithRetries from HConnection Interface
    [HBASE-5166] - MultiThreaded Table Mapper analogous to MultiThreaded Mapper in hadoop
    [HBASE-5167] - We shouldn't be injecting 'Killing [daemon]' into logs, when we aren't doing that.
    [HBASE-5186] - Add metrics to ThriftServer
    [HBASE-5189] - Add metrics to keep track of region-splits in RS
    [HBASE-5190] - Limit the IPC queue size based on calls' payload size
    [HBASE-5193] - Use TBoundedThreadPoolServer in HRegionThriftServer
    [HBASE-5197] - [replication] Handle socket timeouts in ReplicationSource to prevent DDOS
    [HBASE-5199] - Delete out of TTL store files before compaction selection
    [HBASE-5201] - Utilize TThreadedSelectorServer and remove redundant code in ThriftServer and HRegionThriftServer
    [HBASE-5209] - HConnection/HMasterInterface should allow for way to get hostname of currently active master in multi-master HBase setup
    [HBASE-5246] - Regenerate code with thrift 0.8.0
    [HBASE-5255] - Use singletons for OperationStatus to save memory
    [HBASE-5259] - Normalize the RegionLocation in TableInputFormat by the reverse DNS lookup.
    [HBASE-5297] - Update metrics numOpenConnections and callQueueLen directly in HBaseServer
    [HBASE-5298] - Add thrift metrics to thrift2
    [HBASE-5304] - Pluggable split key policy
    [HBASE-5310] - HConnectionManager server cache key enhancement
    [HBASE-5325] - Expose basic information about the master-status through jmx beans
    [HBASE-5332] - Deterministic Compaction Jitter
    [HBASE-5358] - HBaseObjectWritable should be able to serialize/deserialize generic arrays
    [HBASE-5363] - Automatically run rat check on mvn release builds
    [HBASE-5388] - Tune HConnectionManager#getCachedLocation method
    [HBASE-5393] - Consider splitting after flushing
    [HBASE-5394] - Add ability to include Protobufs in HbaseObjectWritable
    [HBASE-5395] - CopyTable needs to use GenericOptionsParser
    [HBASE-5411] - Add more metrics for ThriftMetrics
    [HBASE-5421] - use hadoop-client/hadoop-minicluster artifacts for Hadoop 0.23 build
    [HBASE-5428] - Allow for custom filters to be registered within the Thrift interface
    [HBASE-5433] - [REST] Add metrics to keep track of success/failure count
    [HBASE-5434] - [REST] Include more metrics in cluster status request
    [HBASE-5436] - Right-size the map when reading attributes.
    [HBASE-5439] - Fix some performance findbugs issues
    [HBASE-5440] - Allow Import to optionally use HFileOutputFormat
    [HBASE-5442] - Use builder pattern in StoreFile and HFile
    [HBASE-5454] - Refuse operations from Admin before master is initialized
    [HBASE-5464] - Log warning message when thrift calls throw exceptions
    [HBASE-5483] - Allow configurable host to bind to for starting REST server from commandline
    [HBASE-5489] - Add HTable accessor to get regions for a key range
    [HBASE-5508] - Add an option to allow test output to show on the terminal
    [HBASE-5520] - Support reseek() at RegionScanner
    [HBASE-5533] - Add more metrics to HBase
    [HBASE-5551] - Some functions should not be used by customer code and must be deprecated in 0.94
    [HBASE-5560] - Avoid RegionServer GC caused by timed-out calls
    [HBASE-5588] - Deprecate/remove AssignmentManager#clearRegionFromTransition
    [HBASE-5589] - Add of the offline call to the Master Interface
    [HBASE-5592] - Make it easier to get a table from shell
    [HBASE-5618] - SplitLogManager - prevent unnecessary attempts to resubmits
    [HBASE-5670] - Have Mutation implement the Row interface.
    [HBASE-5671] - hbase.metrics.showTableName should be true by default
    [HBASE-5682] - Allow HConnectionImplementation to recover from ZK connection loss (for 0.94 only)
    [HBASE-5706] - "Dropping fs latency stats since buffer is full" spam
    [HBASE-5712] - Parallelize load of .regioninfo files in diagnostic/repair portion of hbck.
    [HBASE-5734] - Change hbck sideline root
    [HBASE-5735] - Clearer warning message when connecting a non-secure HBase client to a secure HBase server
    [HBASE-5737] - Minor Improvements related to balancer.
    [HBASE-5748] - Enable lib directory in jar file for coprocessor
    [HBASE-5770] - Add a clock skew warning threshold
    [HBASE-5775] - ZKUtil doesn't handle deleteRecurisively cleanly
    [HBASE-5823] - Hbck should be able to print help
    [HBASE-5862] - After Region Close remove the Operation Metrics.
    [HBASE-5863] - Improve the graceful_stop.sh CLI help (especially about reloads)
    [HBASE-6173] - hbck check specified tables only
    [HBASE-5360] - [uberhbck] Add options for how to handle offline split parents. 

New Feature

    [HBASE-2947] - MultiIncrement/MultiAppend (MultiGet functionality for increments and appends)
    [HBASE-3134] - [replication] Add the ability to enable/disable streams
    [HBASE-3584] - Allow atomic put/delete in one call
    [HBASE-3856] - Build a tree structure data block index inside of the HFile
    [HBASE-4102] - atomicAppend: A put that appends to the latest version of a cell; i.e. reads current value then adds the bytes offered by the client to the tail and writes out a new entry
    [HBASE-4219] - Add Per-Column Family Metrics
    [HBASE-4393] - Implement a canary monitoring program
    [HBASE-4460] - Support running an embedded ThriftServer within a RegionServer
    [HBASE-4536] - Allow CF to retain deleted rows
    [HBASE-4608] - HLog Compression
    [HBASE-4629] - enable automated patch testing for hbase
    [HBASE-4683] - Always cache index and bloom blocks
    [HBASE-4698] - Let the HFile Pretty Printer print all the key values for a specific row.
    [HBASE-4768] - Per-(table, columnFamily) metrics with configurable table name inclusion
    [HBASE-5128] - [uber hbck] Online automated repair of table integrity and region consistency problems
    [HBASE-5177] - HTable needs a non cached version of getRegionLocation
    [HBASE-5229] - Provide basic building blocks for "multi-row" local transactions.
    [HBASE-5526] - Configurable file and directory based umask
    [HBASE-5599] - [hbck] handle NO_VERSION_FILE and SHOULD_NOT_BE_DEPLOYED inconsistencies
    [HBASE-5604] - M/R tool to replay WAL files
    [HBASE-5719] - Enhance hbck to sideline overlapped mega regions

Task

    [HBASE-4256] - Intra-row scanning (part deux)
    [HBASE-4429] - Provide synchronous balanceSwitch()
    [HBASE-4611] - Add support for Phabricator/Differential as an alternative code review tool
    [HBASE-4712] - Document rules for writing tests
    [HBASE-4751] - Make TestAdmin#testEnableTableRoundRobinAssignment friendly to concurrent tests
    [HBASE-4968] - Add to troubleshooting workaround for direct buffer oome's.
    [HBASE-5011] - Move test-util.sh from src/test/bin to dev-tools
    [HBASE-5084] - Allow different HTable instances to share one ExecutorService
    [HBASE-5111] - Upgrade zookeeper to 3.4.2 release
    [HBASE-5173] - Commit hbase-4480 findHangingTest.sh script under dev-support
    [HBASE-5256] - Use WritableUtils.readVInt() in RegionLoad.readFields()
    [HBASE-5264] - Add 0.92.0 upgrade guide
    [HBASE-5294] - Make sure javadoc is included in tarball bundle when we release
    [HBASE-5400] - Some tests does not have annotations for (Small|Medium|Large)Tests
    [HBASE-5427] - Upgrade our zk to 3.4.3
    [HBASE-5511] - More doc on maven release process
    [HBASE-5715] - Revert 'Instant schema alter' for now, HBASE-4213
    [HBASE-5721] - Update bundled hadoop to be 1.0.2 (it was just released)
    [HBASE-5758] - Forward port "HBASE-4109 Hostname returned via reverse dns lookup contains trailing period if configured interface is not 'default'"
    [HBASE-5836] - Backport per region metrics from HBASE-3614 to 0.94.1

Test

    [HBASE-4516] - HFile-level load tester with compaction and random-read workloads
    [HBASE-4534] - A new unit test for lazy seek and StoreScanner in general
    [HBASE-4545] - TestHLog doesn't clean up after itself
    [HBASE-4772] - Utility to Create StoreFiles
    [HBASE-4808] - Test to Ensure Expired Deletes Don't Override Puts
    [HBASE-4864] - TestMasterObserver#testRegionTransitionOperations occasionally fails
    [HBASE-4868] - TestOfflineMetaRebuildBase#testMetaRebuild occasionally fails
    [HBASE-5150] - Failure in a thread may not fail a test, clean up log splitting test
    [HBASE-5223] - TestMetaReaderEditor is missing call to CatalogTracker.stop()
    [HBASE-5455] - Add test to avoid unintentional reordering of items in HbaseObjectWritable
    [HBASE-5792] - HLog Performance Evaluation Tool


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
=
