HBase Change Log

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
=
