HBase Change Log

Release 0.96.0 - Unreleased
265+ issues resolved/closed.  See http://goo.gl/4zegPr for the list.

Release 0.95.1 -- Release Candidate, May 27th, 2013 
215 issues resolved.  See
https://issues.apache.org/jira/issues/?jql=project%20%3D%20HBASE%20AND%20fixVersion%20%3D%20%220.95.1%22%20AND%20status%20%3D%20Resolved%20ORDER%20BY%20type%20DESC

Test

HBASE-8071 - TestRestoreFlushSnapshotFromClient fails intermittently in trunk builds
HBASE-8520 - TestIOFencing fails intermittently due to compaction kicking in too soon
HBASE-8535 - Test for zk leak does not account for unsynchronized access to zk watcher
HBASE-8333 - TestTableLockManager#testDelete may occasionally fail due to lack of synchronization between test and handler thread
HBASE-8308 - Lower the number of expected regions in TestTableLockManager#testTableReadLock
HBASE-8575 - TestDistributedLogSplitting#testMarkRegionsRecoveringInZK fails intermittently due to lack of online region

Task

HBASE-7936 - Undo prefix-tree module as dependency for mapreduce and for DataBlockEncoding
HBASE-8045 - Fix .META. migration after HBASE-3171
HBASE-7897 - Add support for tags to Cell Interface
HBASE-7997 - One last set of class moves before 0.95 goes out
HBASE-7704 - migration tool that checks presence of HFile V1 files
HBASE-8450 - "Update hbase-default.xml and general recommendations to better suit current hw, h2, experience, etc."
HBASE-8395 - Remove TestFromClientSide.testPoolBehavior
HBASE-8319 - hbase-it tests are run when you ask to run all tests -- it should be that you have to ask explicitly to run them
HBASE-8296 - Add svn ignores to hbase-assembly
HBASE-8574 - Add how to rename a table in the docbook
HBASE-6365 - Deprecate classes that depend on (old) metrics framework

Sub-task

HBASE-7995 - HBASE-8084 Export$Exporter could be replaced with IdentityTableMapper
HBASE-7942 - HBASE-4755 Make use of the plumbing in HBASE-7932 to provide location hints when region files are created
HBASE-7932 - HBASE-4755 Do the necessary plumbing for the region locations in META table and send the info to the RegionServers
HBASE-7836 - "HBASE-7006 Create a new ""replay"" command so that recovered edits won't mess up normal coprocessing & metrics"
HBASE-7835 - HBASE-7006 Implementation of the log splitting without creating intermediate files
HBASE-7837 - HBASE-7006 Add new metrics to better monitor recovery process
HBASE-7636 - HBASE-6891 TestDistributedLogSplitting#testThreeRSAbort fails against hadoop 2.0
HBASE-7606 - HBASE-6891 TestJoinedScanners fails in trunk build on hadoop 2.0
HBASE-7605 - HBASE-6891 TestMiniClusterLoadSequential fails in trunk build on hadoop 2
HBASE-7413 - HBASE-5305 Convert WAL to pb
HBASE-7239 - HBASE-7215 Verify protobuf serialization is correctly chunking upon read to avoid direct memory OOMs
HBASE-8024 - HBASE-7949 Make Store flush algorithm pluggable
HBASE-8477 - HBASE-6891 [hadoop2] TestTableInputFormatScan* fails intermittently with PrivilegedActionException
HBASE-8478 - HBASE-6891 HBASE-2231 breaks TestHRegion#testRecoveredEditsReplayCompaction under hadoop2 profile
HBASE-8469 - HBASE-6891 [hadoop2] Several tests break because of HDFS-4305
HBASE-8424 - HBASE-8427 IntegrationTestImportTsv missing Apache License
HBASE-8429 - HBASE-8427 TestMetricsWALSourceImpl from hbase-hadoop2-compat module missing Apache license.
HBASE-8392 - HBASE-6891 TestMetricMBeanBase#testGetAttribute is flakey under hadoop2 profile
HBASE-8497 - HBASE-5305 Protobuf WAL also needs a trailer
HBASE-8528 - HBASE-6891 [hadoop2] TestMultiTableInputFormat always fails on hadoop with YARN-129 applied
HBASE-8347 - HBASE-6891 TestSecureLoadInc* tests hang repeatedly getting UnsupportedOperationException in hadoop2 profile
HBASE-8349 - HBASE-6891 TestLogRolling#TestLogRollOnDatanodeDeath hangs under hadoop2 profile
HBASE-8343 - HBASE-6891 TestMultiTableInputFormat hung in HBase-TRUNK-on-Hadoop-2.0.0 build #498
HBASE-8342 - HBASE-6891 TestTableInputFormatScan#testScanFromConfiguration fails on hadoop2 profile
HBASE-8324 - HBASE-6891 TestHFileOutputFormat.testMRIncremental* fails against hadoop2 profile
HBASE-4915 - HBASE-4907 TestHFilePerformance
HBASE-3967 - HBASE-4907 Support deletes in HFileOutputFormat based bulk import mechanism
HBASE-5995 - HBASE-6891 Fix and reenable TestLogRolling.testLogRollOnPipelineRestart
HBASE-5746 - HBASE-5720 HFileDataBlockEncoderImpl uses wrong header size when reading HFiles with no checksums (0.96)
HBASE-2299 - HBASE-1961 [EC2] mapreduce fixups for PE
HBASE-6330 - HBASE-6891 TestImportExport has been failing against hadoop 0.23/2.0 profile
HBASE-8583 - HBASE-8551 Create a new IntegrationTestBigLinkedListWithChaosMonkey

New Feature

HBASE-7828 - "Expose HBase Scan object's ""batch"" property for intra-row batching in Thrift API"
HBASE-7842 - Add compaction policy that explores more storefile groups
HBASE-7244 - "Provide a command or argument to startup, that formats znodes if provided"
HBASE-7006 - [MTTR] Improve Region Server Recovery Time - Distributed Log Replay
HBASE-8372 - Provide mutability to CompoundConfiguration
HBASE-8415 - DisabledRegionSplitPolicy
HBASE-5525 - Truncate and preserve region boundaries option

Improvement

HBASE-7923 - force unassign can confirm region online on any RS to get rid of double assignments.
HBASE-7567 - [replication] Create an interface for replication peers
HBASE-7568 - [replication] Create an interface for replication queues
HBASE-7745 - Import uses System.out.println instead of logging
HBASE-7649 - client retry timeout doesn't need to do x2 fallback when going to different server
HBASE-7434 - "Use generics appropriately in RPCEngine and reduce casts, with fixing a related bug of breaking thread-safety in HConnectionManager"
HBASE-7247 - Assignment performances decreased by 50% because of regionserver.OpenRegionHandler#tickleOpening
HBASE-6870 - HTable#coprocessorExec always scan the whole table
HBASE-6966 - """Compressed RPCs for HBase"" (HBASE-5355) port to trunk"
HBASE-8485 - Retry to open a HLog on more exceptions
HBASE-8471 - "Server-side, remove convertion from pb type to client type before we call method"
HBASE-8405 - Add more custom options to how ClusterManager runs commands
HBASE-8383 - Support lib/*jar inside coprocessor jar
HBASE-8367 - LoadIncrementalHFiles does not return an error code nor throw Exception when failures occur due to timeouts
HBASE-8461 - Provide the ability to delete multiple snapshots through single command
HBASE-8470 - Data file used by TestReference should be excluded from Apache Rat check
HBASE-8301 - Document for hbase.rpc.timeout
HBASE-8284 - Allow String Offset(s) in ColumnPaginationFilter for bookmark based pagination
HBASE-8272 - make compaction checker frequency configurable per table/cf
HBASE-8345 - Add all available resources in o.a.h.h.rest.RootResource and VersionResource to o.a.h.h.rest.client.RemoteAdmin
HBASE-8339 - Make sure the StochasticLoadBalancer doesn't run a cost function when not needed
HBASE-8240 - CompoundConfiguration should implement Iterable
HBASE-8235 - Adding inmemory CF attribute to LoadTest and PerformanceEvaluation tool
HBASE-8205 - HBCK support for table locks
HBASE-4906 - [book] book.xml added MapReduce to RDBMS example
HBASE-4732 - "[book] book.xml, added link to MapReduce tutorial"
HBASE-4316 - book.xml - overhauled MapReduce section to provide more examples
HBASE-8420 - Port HBASE-6874 Implement prefetching for scanners from 0.89-fb
HBASE-8573 - Store last flushed sequence id for each store of region for Distributed Log Replay
HBASE-5930 - Limits the amount of time an edit can live in the memstore.
HBASE-5577 - improve 'patch submission' section in HBase book
HBASE-2231 - Compaction events should be written to HLog
HBASE-1762 - Remove concept of ZooKeeper from HConnection interface
HBASE-1548 - give a time range in MapReduce
HBASE-6294 - Detect leftover data in ZK after a user delete all its HBase data
HBASE-8613 - Improve logging when BindException is received at startup time.
HBASE-8618 - Master is providing dead RegionServer ServerName's to the balancer

Bug

HBASE-8385 - [SNAPSHOTS]: Restore fails to restore snapshot of a deleted table
HBASE-7871 - HBase can be stuck when closing regions concurrently
HBASE-7838 - HBase regionserver never stops when running `hbase-daemon.sh stop regionserver`
HBASE-7686 - TestSplitTransactionOnCluster fails occasionally in trunk builds
HBASE-7726 - Family Dir is not removed using modifyTable()
HBASE-7380 - "[replication] When transferring queues, check if the peer still exists before copying the znodes"
HBASE-7192 - Move TestHBase7051.java into TestAtomicOperation.java
HBASE-7255 - KV size metric went missing from StoreScanner.
HBASE-7167 - Thrift's deleteMultiple() raises exception instead of returning list of failed deletes
HBASE-7135 - Serializing hfileBlcok is incorrect for SlabCache
HBASE-7014 - cleanup 4 minor findbug warings
HBASE-7122 - Proper warning message when opening a log file with no entries (idle cluster)
HBASE-7921 - TestHFileBlock.testGzipCompression should ignore the block checksum
HBASE-6975 - HBASE-6940 enabling GC needs refinement
HBASE-8451 - MetricsMBeanBase has concurrency issues in init
HBASE-8396 - balancerSwitch making two zookeeper calls everytime.
HBASE-8483 - HConnectionManager can leak ZooKeeper connections when using deleteStaleConnection
HBASE-8472 - mvn -Dhadoop.profile=2.0 -Dhadoop-two.version=2.0.5-SNAPSHOT fails because of Undef Class error wrt o.a.h.IdGenerator
HBASE-8426 - "Opening a region failed on ""Metrics source RegionServer,sub=Regions already exists!"""
HBASE-8425 - Per-region memstore size is missing in the new RS web UI
HBASE-8406 - Fix rat check and rat warning in trunk
HBASE-8407 - Remove Async HBase from 0.95 and trunk.
HBASE-8374 - NullPointerException when launching the balancer due to unknown region location
HBASE-8482 - TestHBaseFsck#testCheckTableLocks broke; java.lang.AssertionError: expected:<[]> but was:<[EXPIRED_TABLE_LOCK]>
HBASE-8468 - IntegrationTestImportTsv fails on a cluster
HBASE-8460 - [replication] Fix the three TODOs in TestReplicationStateBasic.testReplicationQueues
HBASE-8430 - Cell decoder/scanner/etc. should not hide exceptions
HBASE-8431 - Fix missing headers
HBASE-8428 - Tighten up IntegrationTestsDriver filter
HBASE-8422 - Master won't go down. Stuck waiting on .META. to come on line.
HBASE-8421 - hbase-0.95.0 tgz does not include lib/junit*.jar
HBASE-8404 - Extra commas in LruBlockCache.logStats
HBASE-8379 - bin/graceful_stop.sh does not return the balancer to original state
HBASE-8360 - In HBaseClient#cancelConnections we should close fully the connection
HBASE-8474 - there are dups in hadoop2 pom
HBASE-8466 - Netty messages in the logs
HBASE-8464 - FastDiffEncoder - valueOffset calculation is incorrect
HBASE-8456 - HBase Windows scripts fail when there's a blank space in JAVA_HOME
HBASE-8437 - Clean up tmp coprocessor jars
HBASE-8393 - Testcase TestHeapSize#testMutations is wrong
HBASE-8391 - StochasticLoadBalancer doesn't call needsBalance
HBASE-8380 - NPE in HBaseClient$Connection.readResponse
HBASE-8377 - IntegrationTestBigLinkedList calculates wrap for linked list size incorrectly
HBASE-8359 - Too much logs on HConnectionManager
HBASE-8600 - Bunch of log lines from QosFunction: Marking normal priority after
HBASE-8596 - "[docs] Add docs about Region server ""draining"" mode"
HBASE-8606 - Meta scanner is not closed
HBASE-8602 - Ugly stack trace just because regionserver comes up before master....
HBASE-8547 - Fix java.lang.RuntimeException: Cached an already cached block
HBASE-8540 - SnapshotFileCache logs too many times if snapshot dir doesn't exists
HBASE-8539 - Double(or tripple ...) ZooKeeper listeners of the same type when Master recovers from ZK SessionExpiredException
HBASE-8537 - Dead region server pulled in from ZK
HBASE-8536 - Possible NullPointerException in ZKInterProcessLockBase#reapExpiredLocks
HBASE-8530 - Refine error message from ExportSnapshot when there is leftover snapshot in target cluster
HBASE-8525 - Use sleep multilier when choosing sinks in ReplicationSource
HBASE-8510 - HBASE-8469 added a hdfs-site.xml file for tests but it gets included in the test jar
HBASE-8507 - HLog tool documentation should be updated to use FSHLog for trunk and 0.95.
HBASE-8505 - References to split daughters should not be deleted separately from parent META entry
HBASE-8545 - Meta stuck in transition when it is assigned to a just restarted dead region sever
HBASE-8531 - TestZooKeeper fails in trunk/0.95 builds
HBASE-8522 - "Archived hfiles and old hlogs may be deleted immediately by HFileCleaner, LogCleaner in HMaster"
HBASE-8519 - Backup master will never come up if primary master dies during initialization
HBASE-8514 - There's an orig file in 0.95
HBASE-8509 - ZKUtil#createWithParents won't set data during znode creation when parent folder doesn't exit
HBASE-8506 - Remove unused/dead classes
HBASE-8355 - BaseRegionObserver#pre(Compact|Flush|Store)ScannerOpen returns null
HBASE-8327 - Consolidate class loaders
HBASE-8321 - Log split worker should heartbeat to avoid timeout when the hlog is under recovery
HBASE-8300 - TestSplitTransaction fails to delete files due to open handles left when region is split
HBASE-8299 - ExploringCompactionPolicy can get stuck in rare cases.
HBASE-8290 - TestHTableMultiplexer is flaky
HBASE-8282 - User triggered flushes does not allow compaction to get triggered even if compaction criteria is met
HBASE-8279 - Performance Evaluation does not consider the args passed in case of more than one client
HBASE-8334 - Enable essential column family support by default
HBASE-8312 - TestCompactionState - still timeouting
HBASE-8305 - Too much logs in the some tests
HBASE-8295 - TestMasterFailover.testMasterFailoverWithMockedRITOnDeadRS is flaky.
HBASE-8293 - Move BigDecimalColumnInterpreter into hbase-client
HBASE-8346 - Prefetching .META. rows in case only when useCache is set to true
HBASE-8341 - RestoreSnapshotHandler.prepare() is not called by SnapshotManager and TakeSnapshotHandler should first acquire the table lock
HBASE-8336 - PooledHTable may be returned multiple times to the same pool
HBASE-8317 - Seek returns wrong result with PREFIX_TREE Encoding
HBASE-8314 - HLogSplitter can retry to open a 0-length hlog file
HBASE-8289 - TestThreads#testSleepWithoutInterrupt should not expect a bounded wait time
HBASE-8588 - [Documentation]: Add information about adding REST and Thrift API kerberos principals to HBase ACL table
HBASE-8581 - rpc refactor dropped passing the operation timeout through to the rpcclient
HBASE-8577 - TestZooKeeper#testLogSplittingAfterMasterRecoveryDueToZKExpiry failed intermittently
HBASE-8568 - Test case TestDistributedLogSplitting#testWorkerAbort failed intermittently
HBASE-8567 - TestDistributedLogSplitting#testLogReplayForDisablingTable fails on hadoop 2.0
HBASE-8555 - FilterList correctness may be affected by random ordering of sub-filter(list)
HBASE-8582 - Possible NullPointerException in ZKInterProcessLockBase#visitLocks
HBASE-8564 - TestMetricsRegionServer depends on test order
HBASE-8560 - "TestMasterShutdown failing in trunk 0.95/trunk -- ""Unable to get data of znode /hbase/meta-region-server because node does not exist (not an error)"""
HBASE-8267 - Add some resources checker for tests
HBASE-8252 - Regions by Region Server table in Master's table view needs styling
HBASE-8254 - Add lz4 to test compression util usage string
HBASE-8248 - HConnectionManager moved region tracking can cause the region server to redirect to itself; load balancer uses incorrect servername compare
HBASE-8239 - ChaosMonkey action for root is irrelevant
HBASE-8263 - Master LogSplitting metrics update wrong counters
HBASE-8241 - Fix the bad dependency on netty from HDFS
HBASE-8214 - "Remove proxy and engine, rely directly on pb generated Service"
HBASE-8204 - Don't use hdfs append during lease recovery
HBASE-8165 - Update our protobuf to 2.5 from 2.4.1
HBASE-8133 - avoid assign for disabling table regions(OPENING/PENDING_OPEN) in SSH
HBASE-8119 - Optimize StochasticLoadBalancer
HBASE-4885 - Building against Hadoop 0.23 uses out-of-date MapReduce artifacts
HBASE-4814 - Starting an online alter when regions are splitting can leave their daughters unaltered
HBASE-8449 - Refactor recoverLease retries and pauses informed by findings over in hbase-8389
HBASE-8570 - CompactSplitThread logs a CompactSplitThread$CompactionRunner but it does not have a toString
HBASE-8366 - HBaseServer logs the full query.
HBASE-8597 - compaction record (probably) can block WAL cleanup forever if region is closed without edits
HBASE-3937 - Region PENDING-OPEN timeout with un-expected ZK node state leads to an endless loop
HBASE-5946 - Thrift Filter Language documentation is inconsistent
HBASE-5835 - [hbck] Catch and handle NotServingRegionException when close region attempt fails
HBASE-5472 - LoadIncrementalHFiles loops forever if the target table misses a CF
HBASE-3578 - TableInputFormat does not setup the configuration for HBase mapreduce jobs correctly
HBASE-1783 - Fix mapreduce package javadoc.
HBASE-1653 - new o.a.h.h.mapreduce package is incompletely ported to o.a.h.mapreduce
HBASE-1212 - merge tool expects regions all have different sequence ids
HBASE-8621 - More log edits; we log too much
HBASE-8622 - Remove ' You are currently running the HMaster without HDFS append support enabled. This may result in data loss. Please see the HBase wiki for details. ' from UI
HBASE-8517 - Stochastic Loadbalancer isn't finding steady state on real clusters


Release 0.95.0 -- Release Candidate, April 1st, 2013
From https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310753&version=12324094

Sub-task

[HBASE-2611] - Handle RS that fails while processing the failure of another one
[HBASE-3776] - Add Bloom Filter Support to HFileOutputFormat
[HBASE-3967] - Support deletes in HFileOutputFormat based bulk import mechanism
[HBASE-4285] - partitions file created in user's home directory by importtsv
[HBASE-4624] - Remove and convert @deprecated RemoteExceptionHandler.decodeRemoteException calls
[HBASE-4625] - Convert @deprecated HBaseTestCase tests in 0.90 into JUnit4 style tests in 0.92 and TRUNK
[HBASE-4909] - Detailed Block Cache Metrics
[HBASE-4910] - thrift scannerstopwithfilter not honoring stop row
[HBASE-4913] - Per-CF compaction Via the Shell
[HBASE-4914] - Enhance MapReduce TableInputFormat to Support N-mappers per Region
[HBASE-4915] - TestHFilePerformance
[HBASE-4916] - LoadTest MR Job
[HBASE-4917] - CRUD Verify Utility
[HBASE-4990] - Document secure HBase setup
[HBASE-5133] - Support zookeeper cluster key related parameters for LoadTestTool
[HBASE-5151] - Rename "hbase.skip.errors" in HRegion as it is too general-sounding.
[HBASE-5164] - Better HTable resource consumption in CoprocessorHost
[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-5414] - Assign different memstoreTS to different KV's in the same WALEdit during replay
[HBASE-5418] - use different memstoreTS for different operations in the same RowMutation.
[HBASE-5444] - Add PB-based calls to HMasterRegionInterface
[HBASE-5445] - Add PB-based calls to HMasterInterface
[HBASE-5446] - Replace serialization for client-facing ZK data with PBs
[HBASE-5447] - Support for custom filters with PB-based RPC
[HBASE-5448] - Support for dynamic coprocessor endpoints with PB-based RPC
[HBASE-5449] - Support for wire-compatible security functionality
[HBASE-5451] - Switch RPC call envelope/headers to PBs
[HBASE-5453] - Switch on-disk formats (reference files, HFile meta fields, etc) to PB
[HBASE-5523] - Fix Delete Timerange logic for KEEP_DELETED_CELLS
[HBASE-5619] - Create PB protocols for HRegionInterface
[HBASE-5620] - Convert the client protocol of HRegionInterface to PB
[HBASE-5621] - Convert admin protocol of HRegionInterface to PB
[HBASE-5638] - Backport to 0.90 and 0.92 - NPE reading ZK config in HBase
[HBASE-5641] - decayingSampleTick1 prevents HBase from shutting down.
[HBASE-5642] - [findbugs] Exclude Thrift and Protobuf warnings
[HBASE-5644] - [findbugs] Fix null pointer warnings.
[HBASE-5645] - [findbugs] Fix correctness warnings
[HBASE-5652] - [findbugs] Fix lock release on all paths
[HBASE-5653] - [findbugs] fix perf warnings
[HBASE-5654] - [findbugs] Address dodgy bugs
[HBASE-5659] - TestAtomicOperation.testMultiRowMutationMultiThreads is still failing occasionally
[HBASE-5685] - [findbugs] Exclude Protobuf warnings from wire compat patches.
[HBASE-5705] - Introduce Protocol Buffer RPC engine
[HBASE-5732] - Remove the SecureRPCEngine and merge the security-related logic in the core engine
[HBASE-5746] - HFileDataBlockEncoderImpl uses wrong header size when reading HFiles with no checksums (0.96)
[HBASE-5785] - Adding unit tests for protbuf utils introduced for HRegionInterface pb conversion
[HBASE-5793] - TestHBaseFsck#TestNoHdfsTable test hangs after client retries increased
[HBASE-5937] - Refactor HLog into an interface.
[HBASE-5995] - Fix and reenable TestLogRolling.testLogRollOnPipelineRestart
[HBASE-6052] - Convert .META. and -ROOT- content to pb
[HBASE-6061] - Fix ACL "Admin" Table inconsistent permission check
[HBASE-6066] - some low hanging read path improvement ideas
[HBASE-6092] - Authorize flush, split, compact operations in AccessController
[HBASE-6157] - Revoke of Global permission is not taking effect without restart.
[HBASE-6180] - [brainstorm] Timestamp based snapshots in HBase 0.96
[HBASE-6188] - Remove the concept of table owner
[HBASE-6202] - Medium tests fail with jdk1.7
[HBASE-6203] - Create hbase-it module
[HBASE-6206] - Large tests fail with jdk1.7
[HBASE-6209] - ACL Corrections for AccessControllerProtocol apis
[HBASE-6224] - add Pre and Post coprocessor hooks for BulkLoad
[HBASE-6230] - [brainstorm] "Restore" snapshots for HBase 0.96
[HBASE-6238] - Grant on META not taking effect
[HBASE-6241] - HBaseCluster interface for interacting with the cluster from system tests
[HBASE-6252] - TABLE ADMIN should be allowed to relocate regions
[HBASE-6253] - Do not allow user to disable or drop ACL table
[HBASE-6282] - The introspection, etc. of objects in the RPC has to be handled for PB objects
[HBASE-6292] - Compact can skip the security access control
[HBASE-6302] - Document how to run integration tests
[HBASE-6307] - Fix hbase unit tests running on hadoop 2.0
[HBASE-6330] - TestImportExport has been failing against hadoop 0.23/2.0 profile [Part2]
[HBASE-6353] - Snapshots shell
[HBASE-6355] - Allow HBase to compile against JDK7
[HBASE-6405] - Create Hadoop compatibilty modules and Metrics2 implementation of replication metrics
[HBASE-6408] - Naming and documenting of the hadoop-metrics2.properties file
[HBASE-6409] - Create histogram class for metrics 2
[HBASE-6410] - Move RegionServer Metrics to metrics2
[HBASE-6411] - Move Master Metrics to metrics 2
[HBASE-6412] - Move external servers to metrics2 (thrift,thrift2,rest)
[HBASE-6414] - Remove the WritableRpcEngine & associated Invocation classes
[HBASE-6496] - Example ZK based scan policy
[HBASE-6501] - Integrate with unit-testing tools of hadoop's metrics2 framework
[HBASE-6524] - Hooks for hbase tracing
[HBASE-6568] - Extract daemon thread factory from HTable into its own class
[HBASE-6569] - Extract HStore interface from Store
[HBASE-6570] - Fix hfile/log cleaning delegate method naming
[HBASE-6571] - Generic multi-thread/cross-process error handling framework
[HBASE-6598] - Combine Master Metrics into a single class.
[HBASE-6601] - TestImportExport on Hadoop 2 must copy YARN configuration vars
[HBASE-6610] - HFileLink: Hardlink alternative for snapshot restore
[HBASE-6614] - General cleanup/optimizations of the protobuf RPC engine & associated RPC code
[HBASE-6630] - Port HBASE-6590 to trunk : Assign sequence number to bulk loaded files
[HBASE-6717] - Remove hadoop-metrics.properties when everything has moved over.
[HBASE-6718] - Clean up BaseMetricsSourceImpl
[HBASE-6765] - 'Take a snapshot' interface
[HBASE-6777] - Snapshot Restore interface
[HBASE-6785] - Convert AggregateProtocol to protobuf defined coprocessor service
[HBASE-6786] - Convert MultiRowMutationProtocol to protocol buffer service
[HBASE-6787] - Convert RowProcessorProtocol to protocol buffer service
[HBASE-6788] - Convert AuthenticationProtocol to protocol buffer service
[HBASE-6789] - Convert test CoprocessorProtocol implementations to protocol buffer services
[HBASE-6802] - Export Snapshot
[HBASE-6809] - Deprecate Old metrics classes.
[HBASE-6815] - [WINDOWS] Provide hbase scripts in order to start HBASE on Windows in a single user mode
[HBASE-6816] - [WINDOWS] line endings on checkout for .sh files
[HBASE-6825] - [WINDOWS] Java NIO socket channels does not work with Windows ipv6
[HBASE-6863] - Offline snapshots
[HBASE-6864] - Online snapshots scaffolding
[HBASE-6865] - Snapshot File Cleaners
[HBASE-6887] - Convert security-related shell commands to use PB-based AccessControlService
[HBASE-6917] - Trunk jdk7 build broke because we moved to zk 3.4.4
[HBASE-6921] - String and ConcurrentHashMap sizes change on jdk7; makes TestHeapSize fail; second attempt
[HBASE-6925] - Change socket write size from 8K to 64K for HBaseServer
[HBASE-6945] - Compilation errors when using non-Sun JDKs to build HBase-0.94
[HBASE-6957] - TestRowCounter consistently fails against hadoop-2.0
[HBASE-6965] - Generic MXBean Utility class to support all JDK vendors
[HBASE-7042] - Master Coprocessor Endpoint
[HBASE-7043] - Region Server Group CLI commands
[HBASE-7062] - Move HLog stats to metrics 2
[HBASE-7074] - Document Metrics 2
[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
[HBASE-7107] - Snapshot References Utils (FileSystem Visitor)
[HBASE-7109] - integration tests on cluster are not getting picked up from distribution
[HBASE-7113] - TestGzipFilter is flaky with jdk1.7
[HBASE-7121] - Fix TestHFileOutputFormat after moving RS to metrics2
[HBASE-7145] - ReusableStreamGzipCodec NPE upon reset with IBM JDK
[HBASE-7146] - Fix the wrong reference to getReader survived in theFSHLog javadoc
[HBASE-7150] - Utility class to determine File Descriptor counts depending on the JVM Vendor
[HBASE-7174] - [snapshots] Refactor snapshot file cleaner cache to use the Snapshot FileVisitor
[HBASE-7185] - Create hbase-protocol module
[HBASE-7186] - Split Classes for Client/Server module split.
[HBASE-7187] - Create empty hbase-client module
[HBASE-7188] - Move classes into hbase-client
[HBASE-7200] - create integration test for balancing regions and killing region servers
[HBASE-7201] - Convert HLog / HFile metadata content to PB
[HBASE-7206] - Foreign Exception framework v2 (simplifies and replaces HBASE-6571)
[HBASE-7207] - Consolidate snapshot related classes into fewer packages
[HBASE-7208] - Transition Offline Snapshots to ForeignExceptions
[HBASE-7212] - Globally Barriered Procedure mechanism
[HBASE-7222] - Enforce PB ser/de for user code bits in the protocol implementations
[HBASE-7224] - Remove references to Writable in the ipc package
[HBASE-7225] - on trunk, integration tests are not packaged into distribution
[HBASE-7238] - Size based scan metric broken by protobufs
[HBASE-7239] - Verify protobuf serialization is correctly chunking upon read to avoid direct memory OOMs
[HBASE-7240] - Cleanup old snapshots on start
[HBASE-7257] - Region server group based configuration
[HBASE-7262] - Move HBaseRPC metrics to metrics2
[HBASE-7294] - Check for snapshot file cleaners on start
[HBASE-7306] - [shell] Count shell command to return ruby bindable value.
[HBASE-7311] - Add snapshot information to hbase master webui
[HBASE-7315] - Remove support for client-side Rocks
[HBASE-7321] - Simple Flush Snapshot
[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-7339] - Splitting a hfilelink causes region servers to go down.
[HBASE-7352] - clone operation from HBaseAdmin can hang forever.
[HBASE-7354] - Snapshot Info/Debug Tool
[HBASE-7365] - Safer table creation and deletion using .tmp dir
[HBASE-7367] - Snapshot coprocessor and ACL security
[HBASE-7371] - Blocksize in TestHFileBlock is unintentionally small
[HBASE-7379] - Port '[89-fb] prevent OOM possibility due to per connection responseQueue being unbounded' to trunk
[HBASE-7387] - StoreScanner need to be able to be subclassed
[HBASE-7388] - Snapshot branch 12/18 rebase broke TestSnapshotFromMaster#testSnapshotHFileArchiving
[HBASE-7389] - HBASE-7365 Snapshot clone/restore followup
[HBASE-7399] - Health check chore for HMaster
[HBASE-7400] - ExportSnapshot mapper closes the FileSystem
[HBASE-7405] - Enforce PB ser/de for Aggregate protocol and associated ColumnInterpreter user code bits
[HBASE-7406] - Example health checker script
[HBASE-7419] - revisit hfilelink file name format.
[HBASE-7420] - TestSnapshotExceptionSnare and TestWALReferenceTask missing test annotation failing TestCheckTestClasses
[HBASE-7430] - TestSnapshotDescriptionUtils break compaction/scanner tests (EnvironmentEdge issue)
[HBASE-7431] - TestSplitTransactionOnCluster tests still flaky
[HBASE-7436] - Improve stack trace info dumped by ForeignExceptionSnare#rethrowException
[HBASE-7438] - TestSplitTransactionOnCluster has too many infinite loops
[HBASE-7439] - HFileLink should not use the configuration from the Filesystem
[HBASE-7452] - Change ForeignException#receive(String, FE) to only be #receive(FE)
[HBASE-7453] - HBASE-7423 snapshot followup
[HBASE-7454] - Move ErrorHandling protos from hbase-server to hbase-protocol
[HBASE-7471] - Enable Cleaners required for Snapshots by default
[HBASE-7480] - Explicit message for not allowed snapshot on meta tables
[HBASE-7484] - Fix Restore with schema changes
[HBASE-7487] - Test for split edit file ordering using failover scenario
[HBASE-7496] - TestZKProcedure fails interrmittently.
[HBASE-7516] - Make compaction policy pluggable
[HBASE-7518] - Move AuthResult out of AccessController
[HBASE-7523] - Snapshot attempt with the name of a previously taken snapshots fails sometimes.
[HBASE-7533] - Write an RPC Specification for 0.96
[HBASE-7535] - Fix restore reference files
[HBASE-7536] - Add test that confirms that multiple concurrent snapshot requests are rejected.
[HBASE-7538] - Improve snapshot related error and exception messages
[HBASE-7547] - Fix findbugs warnings in snapshot classes
[HBASE-7548] - Fix javadoc warnings in snapshot classes
[HBASE-7558] - Client not able to access /hbase/unassigned in secure cluster
[HBASE-7559] - Add additional Snapshots Unit Test Coverage
[HBASE-7563] - move CompoundConfiguration to common and add string map support
[HBASE-7565] - [replication] Create an interface for the replication state node
[HBASE-7570] - rename user metadata dictionary in shell from CONFIG
[HBASE-7571] - add the notion of per-table or per-column family configuration
[HBASE-7583] - Fixes and cleanups
[HBASE-7603] - refactor storefile management in HStore in order to support things like LevelDB-style compactions
[HBASE-7604] - Remove duplicated code from HFileLink
[HBASE-7605] - TestMiniClusterLoadSequential fails in trunk build on hadoop 2
[HBASE-7606] - TestJoinedScanners fails in trunk build on hadoop 2.0
[HBASE-7616] - NPE in ZKProcedureCoordinator$1.nodeCreated
[HBASE-7622] - Add table descriptor verification after snapshot restore
[HBASE-7625] - Remove duplicated logFSTree() from TestRestoreFlushSnapshotFromClient
[HBASE-7636] - TestDistributedLogSplitting#testThreeRSAbort fails against hadoop 2.0
[HBASE-7651] - RegionServerSnapshotManager fails with CancellationException if previous snapshot fails in per region task
[HBASE-7666] - More logging improvements in online snapshots code.
[HBASE-7674] - add shell documentation for HBASE-7571
[HBASE-7687] - TestCatalogTracker.testServerNotRunningIOException fails occasionally
[HBASE-7689] - CloneTableHandler notify completion too early
[HBASE-7703] - Eventually all online snapshots failing due to Timeout at same regionserver.
[HBASE-7720] - improve logging messages of failed snapshot attempts.
[HBASE-7733] - Fix flaky TestZKProcedure.testMultiCohortWithMemberTimeoutDuringPrepare
[HBASE-7739] - [snapshot 130201 merge] Fix TestSnapshotFromMaster failure
[HBASE-7742] - [snapshot 130201 merge] Fix TestHFileArchving#testArchiveOnTableDelete
[HBASE-7747] - Import tools should use a combiner to merge Puts
[HBASE-7752] - [snapshot 130201 merge] Fix TestStoreFile failure
[HBASE-7753] - [snapshot 130201 merge] Fix unresolved merge conflicts
[HBASE-7764] - [snapshot 130201 merge] Fix TestSnapshotCloneIndependence failure
[HBASE-7767] - Get rid of ZKTable, and table enable/disable state in ZK
[HBASE-7778] - [snapshot 130201 merge] Tests with sleep after minicluster shutdown fail due to interrupt flag.
[HBASE-7779] - [snapshot 130201 merge] Fix TestMultiParallel
[HBASE-7783] - [snapshot 130201 merge] Remove accidentally committed hbase-server/bin files
[HBASE-7784] - move the code related to compaction selection specific to default compaction policy, into default compaction policy (from HStore)
[HBASE-7788] - [snapshot 130201 merge] Fix flakey TestRestore*SnapshotFromClient#testCloneSnapshot
[HBASE-7795] - Race in the Restore Archiving
[HBASE-7796] - [snapshot 130201 merge] Fix TestSnapshotFromClient and TestFlushSnapshotFromClient
[HBASE-7801] - Allow a deferred sync option per Mutation.
[HBASE-7807] - Introduce HRegionFileSystem and move region fs related code
[HBASE-7808] - Refactor Store to use HRegionFileSystem
[HBASE-7809] - Refactor Split/Merge to use HRegionFileSystem
[HBASE-7835] - Implementation of the log splitting without creating intermediate files
[HBASE-7836] - Create a new "replay" command so that recovered edits won't mess up normal coprocessing & metrics
[HBASE-7837] - Add new metrics to better monitor recovery process
[HBASE-7858] - cleanup before merging snapshots branch to trunk
[HBASE-7864] - Rename HMaster#listSnapshots as getCompletedSnapshots()
[HBASE-7889] - Fix javadoc warnings in snapshot classes, part 2
[HBASE-7899] - Cell block building tools: Cell codec and means of iterating an objects Cells
[HBASE-7900] - Have client Mutations (Put/Delete/etc.) and Result implement CellScanner Interface
[HBASE-7905] - Add passing of optional cell blocks over rpc
[HBASE-7932] - Do the necessary plumbing for the region locations in META table and send the info to the RegionServers
[HBASE-7934] - TableMapReduceUtil doesn't include all dependency jars in new modular build
[HBASE-7938] - Add integration test for ImportTsv/LoadIncrementalHFiles workflow
[HBASE-7942] - Make use of the plumbing in HBASE-7932 to provide location hints when region files are created
[HBASE-7944] - Replication leaks file reader resource & not reset currentNbOperations
[HBASE-7975] - ImportTsv documentation update for table creation
[HBASE-7995] - Export$Exporter could be replaced with IdentityTableMapper
[HBASE-7996] - Clean up resource leak in MultiTableInputFormat
[HBASE-8006] - use FSUtils to get/set hbase.rootdir
[HBASE-8011] - Refactor ImportTsv
[HBASE-8070] - Rollback support for Increments
[HBASE-8094] - TestTableInputFormatScan doesn't assert anything
[HBASE-8101] - Cleanup: findbugs and javadoc warning fixes as well as making it illegal passing null row to Put/Delete, etc.
[HBASE-8115] - Consolidate Import and ImportTsv into a single, user-extensible Import utility
[HBASE-8139] - Allow job names to be overridden
[HBASE-8156] - Support for Namenode HA for non-idempotent operations
[HBASE-8177] - Improve javadoc to including more about table lock semantics (failure handling, canonical usage pattern, what the lock guards)
[HBASE-8189] - Shell commands of online region merge
[HBASE-8234] - Introducing "recovering" region state to mark a region in recovering status used in distributedLogReplay

Bug

[HBASE-1212] - merge tool expects regions all have different sequence ids
[HBASE-1299] - JSPs don't HTML escape literals (ie: table names, region names, start & end keys)
[HBASE-1621] - merge tool should work on online cluster
[HBASE-2506] - Too easy to OOME a RS
[HBASE-2645] - HLog writer can do 1-2 sync operations after lease has been recovered for split process.
[HBASE-3170] - RegionServer confused about empty row keys
[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-3444] - Test to prove Bytes.toBytesBinary and Bytes.toStringBinary() is reversible
[HBASE-3585] - isLegalFamilyName() can throw ArrayOutOfBoundException
[HBASE-3787] - Increment is non-idempotent but client retries RPC
[HBASE-3870] - Purge copyrights from src headers
[HBASE-3890] - Scheduled tasks in distributed log splitting not in sync with ZK
[HBASE-3891] - TaskMonitor is used wrong in some places
[HBASE-3909] - Add dynamic config
[HBASE-3937] - Region PENDING-OPEN timeout with un-expected ZK node state leads to an endless loop
[HBASE-4030] - LoadIncrementalHFiles fails with FileNotFoundException
[HBASE-4072] - Deprecate/disable and remove support for reading ZooKeeper zoo.cfg files from the classpath
[HBASE-4134] - The total number of regions was more than the actual region count after the hbck fix
[HBASE-4214] - Per-region request counters should be clearer about scope
[HBASE-4246] - Cluster with too many regions cannot withstand some master failover scenarios
[HBASE-4324] - Single unassigned directory is very slow when there are many unassigned nodes
[HBASE-4361] - Certain filter expressions fail in the shell
[HBASE-4379] - [hbck] Does not complain about tables with no end region [Z,]
[HBASE-4470] - ServerNotRunningException coming out of assignRootAndMeta kills the Master
[HBASE-4538] - NPE in AssignmentManager#updateTimers
[HBASE-4575] - Inconsistent naming for ZK config parameters
[HBASE-4583] - Integrate RWCC with Append and Increment operations
[HBASE-4614] - Can't CopyTable between clusters if zoo.cfg is on the classpath
[HBASE-4709] - Hadoop metrics2 setup in test MiniDFSClusters spewing JMX errors
[HBASE-4802] - Disable show table metrics in bulk loader
[HBASE-4803] - Split log worker should terminate properly when waiting for znode
[HBASE-4814] - Starting an online alter when regions are splitting can leave their daughters unaltered
[HBASE-4891] - HTable.ClientScanner needs to clone the Scan object
[HBASE-4932] - Block cache can be mistakenly instantiated by tools
[HBASE-5071] - HFile has a possible cast issue.
[HBASE-5076] - HBase shell hangs when creating some 'illegal' tables.
[HBASE-5097] - RegionObserver implementation whose preScannerOpen and postScannerOpen Impl return null can stall the system initialization through NPE
[HBASE-5206] - Port HBASE-5155 to 0.92, 0.94, and TRUNK
[HBASE-5213] - "hbase master stop" does not bring down backup masters
[HBASE-5292] - getsize per-CF metric incorrectly counts compaction related reads as well
[HBASE-5329] - addRowLock() may allocate duplicate lock id, causing the client to be blocked
[HBASE-5359] - Alter in the shell can be too quick and return before the table is altered
[HBASE-5412] - HBase book, section 2.6.4, has deficient list of client dependencies
[HBASE-5441] - HRegionThriftServer may not start because of a race-condition
[HBASE-5458] - Thread safety issues with Compression.Algorithm.GZ and CompressionTest
[HBASE-5480] - Fixups to MultithreadedTableMapper for Hadoop 0.23.2+
[HBASE-5486] - Warn message in HTable: Stringify the byte[]
[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-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-5546] - Master assigns region in the original region server when opening region failed
[HBASE-5549] - Master can fail if ZooKeeper session expires
[HBASE-5553] - Revisit our jmx view
[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-5564] - Bulkload is discarding duplicate records
[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-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-5583] - Master restart on create table with splitkeys does not recreate table with all the splitkey regions
[HBASE-5586] - [replication] NPE in ReplicationSource when creating a stream to an inexistent cluster
[HBASE-5594] - Unable to stop a master that's waiting on -ROOT- during initialization
[HBASE-5596] - Few minor bugs from HBASE-5209
[HBASE-5598] - Analyse and fix the findbugs reporting by QA and add invalid bugs into findbugs-excludeFilter file
[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-5635] - If getTaskList() returns null, splitlogWorker would go down and it won't serve any requests
[HBASE-5636] - TestTableMapReduce doesn't work properly.
[HBASE-5656] - LoadIncrementalHFiles createTable should detect and set compression algorithm
[HBASE-5663] - MultithreadedTableMapper doesn't work.
[HBASE-5669] - AggregationClient fails validation for open stoprow scan
[HBASE-5672] - TestLruBlockCache#testBackgroundEvictionThread fails occasionally
[HBASE-5680] - Improve compatibility warning about HBase with Hadoop 0.23.x
[HBASE-5704] - HBASE-4398 mistakenly rolled back on trunk
[HBASE-5717] - Scanner metrics are only reported if you get to the end of a scanner
[HBASE-5722] - NPE in ZKUtil#getChildDataAndWatchForNewChildren when ZK not available or NW down.
[HBASE-5726] - TestSplitTransactionOnCluster occasionally failing
[HBASE-5727] - secure hbase build broke because of 'HBASE-5451 Switch RPC call envelope/headers to PBs'
[HBASE-5733] - AssignmentManager#processDeadServersAndRegionsInTransition can fail with NPE.
[HBASE-5736] - ThriftServerRunner.HbaseHandler.mutateRow() does not use ByteBuffer correctly
[HBASE-5740] - Compaction interruption may be due to balacing
[HBASE-5741] - ImportTsv does not check for table existence
[HBASE-5743] - Support GIT patches
[HBASE-5749] - "HBASE-5335 Dynamic Schema Config" broke build, missing change to HRegion heapsize
[HBASE-5755] - Region sever looking for master forever with cached stale data.
[HBASE-5757] - TableInputFormat should handle as many errors as possible
[HBASE-5759] - HBaseClient throws NullPointerException when EOFException should be used.
[HBASE-5772] - Unable to open the few links in http://hbase.apache.org/
[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-5787] - Table owner can't disable/delete his/her own table
[HBASE-5794] - Jenkins builds timing out; undo setting hbase.client.retries.number to 100
[HBASE-5795] - HServerLoad$RegionLoad breaks 0.92<->0.94 compatibility
[HBASE-5800] - Birds of a feather link on web page doesn't work.
[HBASE-5806] - Handle split region related failures on master restart and RS restart
[HBASE-5811] - TestLoadAndSwitchEncodeOnDisk fails sometimes
[HBASE-5817] - Fix uncategorized tests
[HBASE-5819] - SplitLogs function could leak resources
[HBASE-5824] - HRegion.incrementColumnValue is not used in trunk
[HBASE-5829] - Inconsistency between the "regions" map and the "servers" map in AssignmentManager
[HBASE-5830] - Cleanup SequenceFileLogWriter to use syncFs api from SequenceFile#Writer directly in trunk.
[HBASE-5837] - hbase shell deleteall to .META. allows insertion of malformed rowkey
[HBASE-5839] - Backup master not starting up due to Bind Exception while starting HttpServer
[HBASE-5840] - Open Region FAILED_OPEN doesn't clear the TaskMonitor Status, keeps showing the old status
[HBASE-5848] - Create table with EMPTY_START_ROW passed as splitKey causes the HMaster to abort
[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-5870] - Hadoop 23 compilation broken because JobTrackerRunner#getJobTracker() method is not found
[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-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-5884] - MapReduce package info has broken link to bulk-loads
[HBASE-5885] - Invalid HFile block magic on Local file System
[HBASE-5890] - SplitLog Rescan BusyWaits upon Zk.CONNECTIONLOSS
[HBASE-5894] - Table deletion failed but HBaseAdmin#deletetable reports it as success
[HBASE-5897] - prePut coprocessor hook causing substantial CPU usage
[HBASE-5902] - Some scripts are not executable
[HBASE-5908] - TestHLogSplit.testTralingGarbageCorruptionFileSkipErrorsPasses should not use append to corrupt the HLog
[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-5925] - Issue with only using the old config param hbase.hstore.compactionThreshold but not the corresponding new one
[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-5931] - HBase security profile doesn't compile
[HBASE-5962] - interop issue: RowMutations should be added at the end in HbaseObjectWriteable class
[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-5967] - OpenDataException because HBaseProtos.ServerLoad cannot be converted to an open data type
[HBASE-5971] - ServerLoad needs redo; can't be pb based
[HBASE-5974] - Scanner retry behavior with RPC timeout on next() seems incorrect
[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-5990] - TestHCM failed with Hadoop 2.0.0
[HBASE-5992] - Generalization of region move implementation + manage draining servers in bulk assign
[HBASE-5997] - Fix concerns raised in HBASE-5922 related to HalfStoreFileReader
[HBASE-6002] - Possible chance of resource leak in HlogSplitter
[HBASE-6011] - Unable to start master in local mode
[HBASE-6012] - Handling RegionOpeningState for bulk assign
[HBASE-6018] - hbck fails with a RejectedExecutionException when >50 regions present
[HBASE-6021] - NullPointerException when running LoadTestTool without specifying compression type
[HBASE-6027] - Update the reference guide to reflect the changes in the security profile
[HBASE-6029] - HBCK doesn't recover Balance switch if exception occurs in onlineHbck()
[HBASE-6031] - RegionServer does not go down while aborting
[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-6059] - Replaying recovered edits would make deleted data exist again
[HBASE-6060] - Regions's in OPENING state from failed regionservers takes a long time to recover
[HBASE-6063] - Replication related failures on trunk after HBASE-5453
[HBASE-6065] - Log for flush would append a non-sequential edit in the hlog, leading to possible data loss
[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-6084] - Server Load does not display correctly on the ui
[HBASE-6087] - Add hbase-common module
[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-6107] - Distributed log splitting hangs even there is no task under /hbase/splitlog
[HBASE-6108] - Use HRegion.closeHRegion instead of HRegion.close() and HRegion.getLog().close()
[HBASE-6112] - Fix hadoop-2.0 build
[HBASE-6113] - [eclipse] Fix eclipse import of hbase-assembly null pointer
[HBASE-6117] - Revisit default condition added to Switch cases in Trunk
[HBASE-6119] - Region server logs its own address at the end of getMaster()
[HBASE-6132] - ColumnCountGetFilter & PageFilter not working with FilterList
[HBASE-6138] - HadoopQA not running findbugs [Trunk]
[HBASE-6146] - Disabling of Catalog tables should not be allowed
[HBASE-6149] - Fix TestFSUtils creating dirs under top level dir
[HBASE-6150] - Remove empty files causing rat check fail
[HBASE-6156] - Improve multiop performances in HTable#flushCommits
[HBASE-6164] - Correct the bug in block encoding usage in bulkload
[HBASE-6165] - Replication can overrun .META. scans on cluster re-start
[HBASE-6167] - Fix xinclude for docs broke when we multi-moduled
[HBASE-6175] - TestFSUtils flaky on hdfs getFileStatus method
[HBASE-6178] - LoadTest tool no longer packaged after the modularization
[HBASE-6179] - Fix stylesheet broke since multimodule and address feedback gotten in new comment system
[HBASE-6195] - Increment data will be lost when the memstore is flushed
[HBASE-6196] - MR testcases TestImportExport does not run in Trunk with hadoop2.0
[HBASE-6197] - HRegion's append operation may lose data
[HBASE-6200] - KeyComparator.compareWithoutRow can be wrong when families have the same prefix
[HBASE-6211] - Put latencies in jmx
[HBASE-6227] - SSH and cluster startup causes data loss
[HBASE-6228] - Fixup daughters twice cause daughter region assigned twice
[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-6248] - Jetty init may fail if directory name contains "master"
[HBASE-6263] - Use default mode for HBase Thrift gateway if not specified
[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-6272] - In-memory region state is inconsistent
[HBASE-6273] - HMasterInterface.isMasterRunning() requires clean up
[HBASE-6281] - Assignment need not be called for disabling table regions during clean cluster start up.
[HBASE-6284] - Introduce HRegion#doMiniBatchMutation()
[HBASE-6285] - HBase master should log INFO message when it attempts to assign a region
[HBASE-6293] - HMaster does not go down while splitting logs even if explicit shutdown is called.
[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-6303] - HCD.setCompressionType should use Enum support for storing compression types as strings
[HBASE-6306] - TestFSUtils fails against hadoop 2.0
[HBASE-6311] - Data error after majorCompaction caused by keeping MVCC for opened scanners
[HBASE-6316] - Confirm can upgrade to 0.96 from 0.94 by just stopping and restarting
[HBASE-6317] - Master clean start up and Partially enabled tables make region assignment inconsistent.
[HBASE-6318] - SplitLogWorker exited due to ConcurrentModificationException
[HBASE-6321] - ReplicationSource dies reading the peer's id
[HBASE-6323] - [replication] most of the source metrics are wrong when there's multiple slaves
[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-6327] - HLog can be null when create table
[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-6331] - Problem with HBCK mergeOverlaps
[HBASE-6336] - Split point should not be equal to start row or end row
[HBASE-6337] - [MTTR] Remove renaming tmp log file in SplitLogManager
[HBASE-6347] - -ROOT- and .META. are stale in table.jsp if they moved
[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-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-6376] - bin/hbase command doesn't seem to be working
[HBASE-6377] - HBASE-5533 metrics miss all operations submitted via MultiAction
[HBASE-6380] - bulkload should update the store.storeSize
[HBASE-6381] - AssignmentManager should use the same logic for clean startup and failover
[HBASE-6389] - Modify the conditions to ensure that Master waits for sufficient number of Region Servers before starting region assignments
[HBASE-6392] - UnknownRegionException blocks hbck from sideline big overlap regions
[HBASE-6394] - verifyrep MR job map tasks throws NullPointerException
[HBASE-6396] - Fix NoSuchMethodError running against hadoop 2.0
[HBASE-6397] - [hbck] print out bulk load commands for sidelined regions if necessary
[HBASE-6406] - TestReplicationPeer.testResetZooKeeperSession and TestZooKeeper.testClientSessionExpired fail frequently
[HBASE-6416] - hbck dies on NPE when a region folder exists but the table does not
[HBASE-6417] - hbck merges .META. regions if there's an old leftover
[HBASE-6420] - Gracefully shutdown logsyncer
[HBASE-6423] - Writes should not block reads on blocking updates to memstores
[HBASE-6429] - Filter with filterRow() returning true is incompatible with scan with limit
[HBASE-6431] - Some FilterList Constructors break addFilter
[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-6439] - Ignore .archive directory as a table
[HBASE-6440] - SplitLogManager - log the exception when failed to finish split log file
[HBASE-6441] - MasterFS doesn't set scheme for internal FileSystem
[HBASE-6443] - HLogSplitter should ignore 0 length files
[HBASE-6445] - rat check fails if hs_err_pid26514.log dropped in tests
[HBASE-6455] - org.apache.hadoop.hbase.PerformanceEvaluation sets the map reduce output path as a child of input path
[HBASE-6460] - hbck "-repairHoles" usage inconsistent with "-fixHdfsOrphans"
[HBASE-6468] - RowCounter may return incorrect result if column name is specified in command line
[HBASE-6469] - Failure on enable/disable table will cause table state in zk to be left as enabling/disabling until master is restarted
[HBASE-6471] - Performance regression caused by HBASE-4054
[HBASE-6476] - Replace all occurrances of System.currentTimeMillis() with EnvironmentEdge equivalent
[HBASE-6478] - TestClassLoading.testClassLoadingFromLibDirInJar occasionally fails
[HBASE-6479] - HFileReaderV1 caching the same parent META block could cause server abort when splitting
[HBASE-6480] - If callQueueSize exceed maxQueueSize, all call will be rejected, do not reject priorityCall
[HBASE-6481] - SkipFilter javadoc is incorrect
[HBASE-6487] - assign region doesn't check if the region is already assigned
[HBASE-6488] - HBase wont run on IPv6 on OSes that use zone-indexes
[HBASE-6489] - Incorrect TaskTracker logfile name
[HBASE-6492] - Remove Reflection based Hadoop abstractions
[HBASE-6493] - HashSet of byte array is being used in couple of places
[HBASE-6495] - HBaseAdmin shouldn't expect HConnection to be an HConnectionImplementation
[HBASE-6499] - StoreScanner's QueryMatcher not reset on store update
[HBASE-6504] - Adding GC details prevents HBase from starting in non-distributed mode
[HBASE-6510] - Fix HConnection typo in TestFromClientSide
[HBASE-6512] - Incorrect OfflineMetaRepair log class name
[HBASE-6513] - Test errors when building on MacOS
[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-6518] - Bytes.toBytesBinary() incorrect trailing backslash escape
[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-6528] - Raise the wait time for TestSplitLogWorker#testAcquireTaskAtStartup to reduce the failure probability
[HBASE-6529] - With HFile v2, the region server will always perform an extra copy of source files
[HBASE-6552] - TestAcidGuarantees system test should flush more aggressively
[HBASE-6561] - Gets/Puts with many columns send the RegionServer into an "endless" loop
[HBASE-6562] - Fake KVs are sometimes passed to filters
[HBASE-6564] - HDFS space is not reclaimed when a column family is deleted
[HBASE-6565] - Coprocessor exec result Map is not thread safe
[HBASE-6576] - HBaseAdmin.createTable should wait until the table is enabled
[HBASE-6577] - RegionScannerImpl.nextRow() should seek to next row
[HBASE-6579] - Unnecessary KV order check in StoreScanner
[HBASE-6582] - Code generation does run under m2eclipse
[HBASE-6583] - Enhance Hbase load test tool to automatically create column families if not present
[HBASE-6584] - TestAssignmentManager#testDisablingTableRegionsAssignmentDuringCleanClusterStartup fails due to port 60000 already in use.
[HBASE-6587] - Region would be assigned twice in the case of all RS offline
[HBASE-6603] - RegionMetricsStorage.incrNumericMetric is called too often
[HBASE-6604] - Bump log4j to 1.2.17
[HBASE-6607] - NullPointerException when accessing master web ui while master is initializing
[HBASE-6608] - Fix for HBASE-6160, META entries from daughters can be deleted before parent entries, shouldn't compare HRegionInfo's
[HBASE-6611] - Forcing region state offline cause double assignment
[HBASE-6621] - Reduce calls to Bytes.toInt
[HBASE-6622] - TestUpgradeFromHFileV1ToEncoding#testUpgrade fails in trunk
[HBASE-6634] - REST API ScannerModel's protobuf converter code duplicates the setBatch call
[HBASE-6637] - Move DaemonThreadFactory into Threads and Threads to hbase-common
[HBASE-6642] - enable_all,disable_all,drop_all can call "list" command with regex directly.
[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-6651] - Improve thread safety of HTablePool
[HBASE-6655] - thrift.TestThriftServerCmdLine takes too much time: 733.972 sec
[HBASE-6657] - Merge Filter and FilterBase
[HBASE-6658] - Rename WritableByteArrayComparable to something not mentioning Writable
[HBASE-6659] - Port HBASE-6508 Filter out edits at log split time
[HBASE-6665] - ROOT region should not be splitted even with META row as explicit split key
[HBASE-6667] - TestCatalogJanitor occasionally fails
[HBASE-6670] - Untangle mixture of protobuf and Writable reference / usage
[HBASE-6671] - Kerberos authenticated super user should be able to retrieve proxied delegation tokens
[HBASE-6677] - Random ZooKeeper port in test can overrun max port
[HBASE-6679] - RegionServer aborts due to race between compaction and split
[HBASE-6682] - Bad characters in logs for server names: SplitLogManager: task following PBUF
[HBASE-6683] - Wrong warning in logs WARN org.apache.hadoop.ipc.HBaseServer: Methods length : 5
[HBASE-6684] - .META. timeout value is incorrect
[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-6691] - HFile quarantine fails with missing files in hadoop 2.0
[HBASE-6692] - [shell] Cannot describe '.META.' or '-ROOT-' tables
[HBASE-6693] - Typo in Javadoc of AggregationClient.rowCount()
[HBASE-6697] - regionserver.TestPriorityRpc uses a fixed port (60020)
[HBASE-6700] - [replication] empty znodes created during queue failovers aren't deleted
[HBASE-6707] - TEST org.apache.hadoop.hbase.backup.example.TestZooKeeperTableArchiveClient.testMultipleTables flaps
[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-6733] - [0.92 UNIT TESTS] TestReplication.queueFailover occasionally fails [Part-2]
[HBASE-6734] - Code duplication in LoadIncrementalHFiles
[HBASE-6738] - Too aggressive task resubmission from the distributed log manager
[HBASE-6746] - Impacts of HBASE-6435 vs. HDFS 2.0 trunk
[HBASE-6748] - Endless recursive of deleteNode happened in SplitLogManager#DeleteAsyncCallback
[HBASE-6757] - Very inefficient behaviour of scan using FilterList
[HBASE-6758] - [replication] The replication-executor should make sure the file that it is replicating is closed before declaring success on that file
[HBASE-6769] - HRS.multi eats NoSuchColumnFamilyException since HBASE-5021
[HBASE-6779] - Fix issues analysis.apache.org raises about StochasticLoadBalancer
[HBASE-6780] - On the master status page the Number of Requests per second is incorrect for RegionServer's
[HBASE-6781] - .archive directory should be added to HConstants.HBASE_NON_USER_TABLE_DIRS
[HBASE-6782] - HBase shell's 'status 'detailed'' should escape the printed keys
[HBASE-6784] - TestCoprocessorScanPolicy is sometimes flaky when run locally
[HBASE-6794] - FilterBase should provide a default implementation of toByteArray
[HBASE-6795] - mvn compile fails on a fresh checkout with empty ~/.m2/repo
[HBASE-6801] - TestZooKeeperTableArchiveClient#testArchivingOnSingleTable sometimes fails in trunk
[HBASE-6803] - script hbase should add JAVA_LIBRARY_PATH to LD_LIBRARY_PATH
[HBASE-6806] - HBASE-4658 breaks backward compatibility / example scripts
[HBASE-6811] - TestDrainingServer#testDrainingServerWithAbort sometimes fails in trunk
[HBASE-6820] - [WINDOWS] MiniZookeeperCluster should ensure that ZKDatabase is closed upon shutdown()
[HBASE-6821] - [WINDOWS] In TestMetaMigrationConvertingToPB .META. table name causes file system problems on windows
[HBASE-6822] - [WINDOWS] MiniZookeeperCluster multiple daemons bind to the same port
[HBASE-6823] - [WINDOWS] TestSplitTransaction fails due to the Log handle not released by a call to DaughterOpener.start()
[HBASE-6824] - Introduce ${hbase.local.dir} and save coprocessor jars there
[HBASE-6826] - [WINDOWS] TestFromClientSide failures
[HBASE-6827] - [WINDOWS] TestScannerTimeout fails expecting a timeout
[HBASE-6828] - [WINDOWS] TestMemoryBoundedLogMessageBuffer failures
[HBASE-6829] - [WINDOWS] Tests should ensure that HLog is closed
[HBASE-6830] - [WINDOWS] Tests should not rely on local temp dir to be available in DFS
[HBASE-6831] - [WINDOWS] HBaseTestingUtility.expireSession() does not expire zookeeper session
[HBASE-6832] - [WINDOWS] Tests should use explicit timestamp for Puts, and not rely on implicit RS timing
[HBASE-6834] - HBaseClusterManager shell code breaks hadoop-2.0 build
[HBASE-6835] - HBaseAdmin.flush claims to be asynchronous but appears to be synchronous
[HBASE-6838] - Regionserver may generate identical scanner name
[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-6843] - loading lzo error when using coprocessor
[HBASE-6846] - BitComparator bug - ArrayIndexOutOfBoundsException
[HBASE-6847] - HBASE-6649 broke replication
[HBASE-6851] - Race condition in TableAuthManager.updateGlobalCache()
[HBASE-6853] - IllegalArgumentException is thrown when an empty region is splitted
[HBASE-6858] - Fix the incorrect BADVERSION checking in the recoverable zookeeper
[HBASE-6868] - Skip checksum is broke; are we double-checksumming by default?
[HBASE-6869] - Update our hadoop-2 to 2.0.1-alpha
[HBASE-6871] - HFileBlockIndex Write Error in HFile V2 due to incorrect split into intermediate index blocks
[HBASE-6879] - Add HBase Code Template
[HBASE-6881] - All regionservers are marked offline even there is still one up
[HBASE-6888] - HBase scripts ignore any HBASE_OPTS set in the environment
[HBASE-6889] - Ignore source control files with apache-rat
[HBASE-6894] - Adding metadata to a table in the shell is both arcane and painful
[HBASE-6900] - RegionScanner.reseek() creates NPE when a flush or compaction happens before the reseek.
[HBASE-6901] - Store file compactSelection throws ArrayIndexOutOfBoundsException
[HBASE-6904] - In the HBase shell, an error is thrown that states replication-related znodes already exist
[HBASE-6906] - TestHBaseFsck#testQuarantine* tests are flakey due to TableNotEnabledException
[HBASE-6907] - KeyValue equals and compareTo methods should match
[HBASE-6912] - Filters are not properly applied in certain cases
[HBASE-6915] - String and ConcurrentHashMap sizes change on jdk7; makes TestHeapSize fail
[HBASE-6916] - HBA logs at info level errors that won't show in the shell
[HBASE-6918] - Debugging to help figure what is different up on jenkins when TestHeapSize runs
[HBASE-6919] - Remove unnecessary cast from Bytes.readVLong
[HBASE-6926] - Cleanup some of the javadoc warnings.
[HBASE-6927] - WrongFS using HRegionInfo.getTableDesc() and different fs for hbase.root and fs.defaultFS
[HBASE-6948] - shell create table script cannot handle split key which is expressed in raw bytes
[HBASE-6949] - Automatically delete empty directories in CleanerChore
[HBASE-6950] - TestAcidGuarantees system test now flushes too aggressively
[HBASE-6953] - Incorrect javadoc description of HFileOutputFormat regarding multiple column families
[HBASE-6958] - TestAssignmentManager sometimes fails
[HBASE-6962] - Upgrade hadoop 1 dependency to hadoop 1.1
[HBASE-6963] - unable to run hbck on a secure cluster
[HBASE-6971] - .META. directory does not contain .tableinfo serialization
[HBASE-6972] - HBase Shell deleteall should not require column to be defined
[HBASE-6974] - Metric for blocked updates
[HBASE-6975] - HBASE-6940 enabling GC needs refinement
[HBASE-6978] - Minor typo in ReplicationSource SocketTimeoutException error handling
[HBASE-6989] - Avoid unneceseary regular expression matching in ruby code for "list" command
[HBASE-6991] - Escape "\" in Bytes.toStringBinary() and its counterpart Bytes.toBytesBinary()
[HBASE-6998] - Uncaught exception in main() makes the HMaster/HRegionServer process suspend
[HBASE-7000] - Fix the "INT_VACUOUS_COMPARISON" WARNING in KeyValue class
[HBASE-7001] - Fix the RCN Correctness Warning in MemStoreFlusher class
[HBASE-7002] - Fix all 4 findbug performance warnings
[HBASE-7005] - Upgrade Thrift lib to 0.9.0
[HBASE-7006] - [MTTR] Study distributed log splitting to see how we can make it faster
[HBASE-7008] - Set scanner caching to a better default, disable Nagles
[HBASE-7014] - cleanup 4 minor findbug warings
[HBASE-7018] - Fix and Improve TableDescriptor caching for bulk assignment
[HBASE-7019] - Can't pass SplitAlgo in hbase shell
[HBASE-7034] - Bad version, failed OPENING to OPENED but master thinks it is open anyways
[HBASE-7037] - ReplicationPeer logs at WARN level aborting server instead of at FATAL
[HBASE-7041] - Port HBASE-6728 '[89-fb] prevent OOM possibility due to per connection responseQueue being unbounded' to trunk
[HBASE-7046] - Fix resource leak in TestHLogSplit#testOldRecoveredEditsFileSidelined
[HBASE-7048] - Regionsplitter requires the hadoop config path to be in hbase classpath
[HBASE-7051] - CheckAndPut should properly read MVCC
[HBASE-7056] - TestMetaMigrationConvertingToPB failed in HBase-TRUNK-on-Hadoop-2.0.0 two times consecutively
[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-7070] - Scanner may retry forever after HBASE-5974
[HBASE-7083] - SSH#fixupDaughter should force re-assign missing daughter
[HBASE-7086] - Enhance ResourceChecker to log stack trace for potentially hanging threads
[HBASE-7091] - support custom GC options in hbase-env.sh
[HBASE-7092] - RegionServer OOM related to onlineregions
[HBASE-7095] - Cannot set 'lenAsVal' for KeyOnlyFilter from shell
[HBASE-7098] - Fix minor typos and formatting issues in HFileArchiver/HFileLink
[HBASE-7103] - Need to fail split if SPLIT znode is deleted even before the split is completed.
[HBASE-7104] - HBase includes multiple versions of netty: 3.5.0; 3.2.4; 3.2.2
[HBASE-7108] - Don't use legal family name for system folder at region level
[HBASE-7111] - hbase zkcli will not start if the zookeeper server chosen to connect to is unavailable
[HBASE-7114] - Increment does not extend Mutation but probably should
[HBASE-7122] - Proper warning message when opening a log file with no entries (idle cluster)
[HBASE-7130] - NULL qualifier is ignored
[HBASE-7134] - incrementColumnValue hooks no longer called from anywhere
[HBASE-7135] - Serializing hfileBlcok is incorrect for SlabCache
[HBASE-7141] - Cleanup Increment and Append issues
[HBASE-7143] - TestMetaMigrationRemovingHTD fails when used with Hadoop 0.23/2.x
[HBASE-7148] - Some files in hbase-examples module miss license header
[HBASE-7153] - print gc option in hbase-env.sh affects hbase zkcli
[HBASE-7158] - Allow CopyTable to identify the source cluster (for replication scenarios)
[HBASE-7159] - Upgrade zookeeper dependency to 3.4.5
[HBASE-7165] - TestSplitLogManager.testUnassignedTimeout is flaky
[HBASE-7166] - TestSplitTransactionOnCluster tests are flaky
[HBASE-7167] - Thrift's deleteMultiple() raises exception instead of returning list of failed deletes
[HBASE-7168] - [dev] in the script called 'hbase', we don't check for errors when generating the classpath with mvn
[HBASE-7172] - TestSplitLogManager.testVanishingTaskZNode() fails when run individually and is flaky
[HBASE-7177] - TestZooKeeperScanPolicyObserver.testScanPolicyObserver is flaky
[HBASE-7180] - RegionScannerImpl.next() is inefficient.
[HBASE-7192] - Move TestHBase7051.java into TestAtomicOperation.java
[HBASE-7202] - Family Store Files are not archived on admin.deleteColumn()
[HBASE-7203] - Move example CoProcessor into hbase-examples
[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-7215] - Put, Delete, Increment, Result, all all HBase M/R classes still implement/use Writable
[HBASE-7229] - ClassFinder finds compat tests during mvn package, causing TestCheckTestClasses to fail
[HBASE-7232] - Remove HbaseMapWritable
[HBASE-7233] - Serializing KeyValues over RPC
[HBASE-7234] - Remove long-deprecated HServerAddress and HServerInfo Writables
[HBASE-7235] - TestMasterObserver is flaky
[HBASE-7243] - Test for creating a large number of regions
[HBASE-7245] - Recovery on failed snapshot restore
[HBASE-7255] - KV size metric went missing from StoreScanner.
[HBASE-7256] - Quick Start Guide shows stable version as 0.95, in the stable folder it is 0.94
[HBASE-7258] - Hbase needs to create baseZNode recursively
[HBASE-7260] - Upgrade hadoop 1 dependency to hadoop 1.1.1
[HBASE-7264] - Improve Snappy installation documentation
[HBASE-7265] - Make Maven skip module test properties consistent
[HBASE-7268] - correct local region location cache information can be overwritten (or deleted) w/stale information from an old server
[HBASE-7269] - Testing in place does not work if not building with default profile
[HBASE-7270] - Remove MultiPut and MultiPutResponse to satisfy rat-check
[HBASE-7271] - Have a single executor for all zkWorkers in the assignment manager
[HBASE-7277] - Thrift default JMX port should be 10103 instead of 8093
[HBASE-7279] - Avoid copying the rowkey in RegionScanner, StoreScanner, and ScanQueryMatcher
[HBASE-7285] - HMaster fails to start with secure Hadoop
[HBASE-7290] - Online snapshots
[HBASE-7293] - [replication] Remove dead sinks from ReplicationSource.currentPeers and pick new ones
[HBASE-7299] - TestMultiParallel fails intermittently in trunk builds
[HBASE-7300] - HbckTestingUtil needs to keep a static executor to lower the number of threads used
[HBASE-7301] - Force ipv4 for unit tests
[HBASE-7305] - ZK based Read/Write locks for table operations
[HBASE-7307] - MetaReader.tableExists should not return false if the specified table regions has been split
[HBASE-7309] - Metrics refresh-task is not canceled when regions are closed, leaking HRegion objects
[HBASE-7314] - Can't start REST/Thrift server if HBASE_JMX_OPTS not set
[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-7355] - NPE in ClusterStatus PB conversion
[HBASE-7357] - HBaseClient and HBaseServer should use hbase.security.authentication when negotiating authentication
[HBASE-7363] - Fix javadocs warnings for hbase-server packages from master to end
[HBASE-7373] - table should not be required in AccessControlService
[HBASE-7376] - Acquiring readLock does not apply timeout in HRegion#flushcache
[HBASE-7380] - [replication] When transferring queues, check if the peer still exists before copying the znodes
[HBASE-7382] - Port ZK.multi support from HBASE-6775 to 0.96
[HBASE-7383] - create integration test for HBASE-5416 (improving scan performance for certain filters)
[HBASE-7390] - Add extra test cases for assignement on the region server and fix the related issues
[HBASE-7391] - Review/improve HLog compression's memory consumption
[HBASE-7407] - TestMasterFailover under tests some cases and over tests some others
[HBASE-7412] - Fix how HTableDescriptor handles default max file size and flush size
[HBASE-7421] - TestHFileCleaner->testHFileCleaning has an aggressive timeout
[HBASE-7423] - HFileArchiver should not use the configuration from the Filesystem
[HBASE-7435] - BuiltInGzipDecompressor is only released during full GC
[HBASE-7440] - ReplicationZookeeper#addPeer is racy
[HBASE-7443] - More findbugs fixes
[HBASE-7446] - Make the reference guide utf8 rather than 8859
[HBASE-7450] - orphan RPC connection in HBaseClient leaves "null" out member, causing NPE in HCM
[HBASE-7455] - Increase timeouts in TestReplication and TestSplitLogWorker
[HBASE-7457] - Fix javadoc warnings in hadoopqa tool, it complains about unsafe accesses
[HBASE-7458] - TestReplicationWithCompression fails intermittently in both PreCommit and trunk builds
[HBASE-7459] - NPE in HMaster TestlocalHBaseCluster
[HBASE-7464] - [REST] Sending HTML for errors is unhelpful
[HBASE-7467] - CleanerChore checkAndDeleteDirectory not deleting empty directories
[HBASE-7475] - TestUpgradeFromHFileV1ToEncoding.testUpgrade hangs
[HBASE-7476] - HBase shell count command doesn't escape binary output
[HBASE-7481] - Allow IOExceptions to be thrown from Filter methods
[HBASE-7482] - Port HBASE-7442 HBase remote CopyTable not working when security enabled to trunk
[HBASE-7485] - TestSplitLogManager is still flaky on windows
[HBASE-7486] - master pid file is not getting removed if we stop hbase from stop-hbase.sh
[HBASE-7488] - Implement HConnectionManager.locateRegions which is currently returning null
[HBASE-7489] - TestHCM is racy
[HBASE-7490] - dev-support script to generate protobuf code.
[HBASE-7495] - parallel seek in StoreScanner
[HBASE-7498] - Make REST server thread pool size configurable
[HBASE-7499] - TestScannerTimeout timeout is too aggressive.
[HBASE-7501] - Introduce MetaEditor method that both adds and deletes rows in .META. table
[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-7507] - Make memstore flush be able to retry after exception
[HBASE-7508] - Fix simple findbugs
[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-7520] - org.apache.hadoop.hbase.IntegrationTestRebalanceAndKillServersTargeted fails when I cd hbase-it and mvn verify
[HBASE-7524] - hbase-policy.xml is improperly set thus all rules in it can be by-passed
[HBASE-7527] - integration tests STILL won't run from tar.gz in trunk
[HBASE-7528] - Unhelpful NPE in hbck -repair when adopting orphans if no tableinfo is found.
[HBASE-7529] - Wrong ExecutorType for EventType.M_RS_OPEN_ROOT in trunk
[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-7537] - .regioninfo not created by createHRegion()
[HBASE-7542] - SCVF: Avoid sending two unwanted boolean values from client to RS
[HBASE-7545] - [replication] Break out TestReplication into manageable classes
[HBASE-7546] - Obtain a table read lock on region split operations
[HBASE-7549] - Make HTableInterface#batch() javadoc proper
[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-7552] - Pass bufferSize param to FileLinkInputStream constructor within FileLink.open method, and remove unnecessary import packages.
[HBASE-7553] - TestServerCustomProtocol depends on the test methods execution order
[HBASE-7554] - TestZooKeeper depends on the execution order
[HBASE-7555] - Kill the remaining processus from other builds in the precommit env
[HBASE-7556] - TestAdmin depends on the execution order
[HBASE-7560] - TestCompactionState failures
[HBASE-7574] - Migrate to JUnit 4.11
[HBASE-7575] - FSUtils#getTableStoreFilePathMap should all ignore non-table folders
[HBASE-7578] - TestCatalogTracker hangs occasionally
[HBASE-7579] - HTableDescriptor equals method fails if results are returned in a different order
[HBASE-7580] - TestAccessController fails in trunk
[HBASE-7581] - TestAccessController depends on the execution order
[HBASE-7584] - Improve TestAccessController.testAppend
[HBASE-7586] - Fix two findbugs warnings to get our count down to the tolerated number again
[HBASE-7587] - Fix two findbugs warning in RowResource
[HBASE-7588] - Fix two findbugs warning in MemStoreFlusher
[HBASE-7590] - Add a costless notifications mechanism from master to regionservers & clients
[HBASE-7594] - TestLocalHBaseCluster failing on ubuntu2
[HBASE-7595] - Fix one findbug warning in ReplicationSourceManager
[HBASE-7596] - Redundant FSTableDescriptor update
[HBASE-7597] - TestHBaseFsck#testRegionShouldNotBeDeployed seems to be flaky
[HBASE-7601] - Fix 8 remaining EQ findbug warnings from hbase-server.
[HBASE-7602] - TestFromClientSide.testPoolBehavior is incorrect
[HBASE-7619] - tiny correction in the book
[HBASE-7627] - UnsupportedOperationException in CatalogJanitor thread.
[HBASE-7629] - Master initiated automatic region merges
[HBASE-7635] - Proxy created by HFileSystem#createReorderingProxy() should implement Closeable
[HBASE-7637] - hbase-hadoop1-compat conflicts with -Dhadoop.profile=2.0
[HBASE-7642] - HBase shell cannot set Compression
[HBASE-7643] - HFileArchiver.resolveAndArchive() race condition may lead to snapshot data loss
[HBASE-7646] - Make forkedProcessTimeoutInSeconds configurable
[HBASE-7648] - TestAcidGuarantees.testMixedAtomicity hangs sometimes
[HBASE-7654] - Add List<String> getCoprocessors() to HTableDescriptor
[HBASE-7656] - Clean up line endings to be LF in the repo
[HBASE-7657] - Make ModifyTableHandler synchronous
[HBASE-7665] - retry time sequence usage in HConnectionManager has off-by-one error
[HBASE-7669] - ROOT region wouldn't be handled by PRI-IPC-Handler
[HBASE-7670] - Synchronized operation in CatalogTracker would block handling ZK Event for long time
[HBASE-7671] - Flushing memstore again after last failure could cause data loss
[HBASE-7673] - Incorrect error logging when a replication peer is removed
[HBASE-7676] - [WINDOWS] TestClassFinder fails on Windows
[HBASE-7677] - [WINDOWS] TestNodeHealthCheckChore fails on Windows
[HBASE-7681] - Address some recent random test failures
[HBASE-7682] - Replace HRegion custom File-System debug, with FSUtils.logFileSystemState()
[HBASE-7686] - TestSplitTransactionOnCluster fails occasionally in trunk builds
[HBASE-7688] - Master coprocessor RPCs don't propagate exceptions
[HBASE-7693] - Hostname returned by TableInputFormatBase.reverseDNS contains trailing period
[HBASE-7698] - race between RS shutdown thread and openregionhandler causes region to get stuck
[HBASE-7700] - TestColumnSeeking is mathematically bound to fail
[HBASE-7701] - Opening regions on dead server are not reassigned quickly
[HBASE-7702] - Adding filtering to Import jobs
[HBASE-7709] - Infinite loop possible in Master/Master replication
[HBASE-7711] - rowlock release problem with thread interruptions in batchMutate
[HBASE-7715] - FSUtils#waitOnSafeMode can incorrectly loop on standby NN
[HBASE-7717] - Wait until regions are assigned in TestSplitTransactionOnCluster
[HBASE-7719] - HTableDescriptor.setDeferredLogFlush should be synchronized
[HBASE-7723] - Remove NameNode URI from ZK splitlogs
[HBASE-7725] - Add ability to create custom compaction request
[HBASE-7728] - deadlock occurs between hlog roller and hlog syncer
[HBASE-7729] - TestCatalogTrackerOnCluster.testbadOriginalRootLocation fails occasionally
[HBASE-7731] - Append/Increment methods in HRegion don't check whether the table is readonly or not
[HBASE-7736] - Port BigDecimalColumnInterpreter to 0.96
[HBASE-7740] - Recheck matching row for joined scanners
[HBASE-7751] - TestDelayedRpc occasionally fails in trunk
[HBASE-7756] - Strange code in ServerCallable#shouldRetry
[HBASE-7760] - tiny issue in ChaosMonkey - kills meta server instead of root
[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-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-7777] - HBCK check for lingering split parents should check for child regions
[HBASE-7785] - rolling-restart.sh script unable to check expiration of master znode
[HBASE-7786] - Consolidate HRegion creation/opening API
[HBASE-7787] - Remove HLogSplitter.RECOVERED_EDITS duplicate of HLog.RECOVERED_EDITS_DIR
[HBASE-7789] - Clean DeadServer.java and add a Jitter method in ConnectionUtils
[HBASE-7797] - Use consistent package name
[HBASE-7798] - ZKAssign logs the wrong server if the transition fails
[HBASE-7799] - reassigning region stuck in open still may not work correctly due to leftover ZK node
[HBASE-7800] - RegionMovedException can cause servers to play ping pong with client
[HBASE-7804] - Minor typo in Appendix B. hbck In Depth section of book
[HBASE-7813] - Bug in BulkDeleteEndpoint kills entire rows on COLUMN/VERSION Deletes
[HBASE-7817] - Suggested JDWP debug options in hbase-env.sh are wrong
[HBASE-7829] - zookeeper kerberos conf keytab and principal parameters interchanged
[HBASE-7830] - Disable IntegrationTestRebalanceAndKillServersTargeted temporarily
[HBASE-7834] - Document Hadoop version support matrix in the book
[HBASE-7838] - HBase regionserver never stops when running `hbase-daemon.sh stop regionserver`
[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-7871] - HBase can be stuck when closing regions concurrently
[HBASE-7876] - Got exception when manually triggers a split on an empty region
[HBASE-7878] - recoverFileLease does not check return value of recoverLease
[HBASE-7879] - JUnit dependency in main from htrace
[HBASE-7882] - move region level metrics readReqeustCount and writeRequestCount to Metric 2
[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-7901] - TestStore::testDeleteExpiredStoreFiles has a hidden issue
[HBASE-7911] - Remove duplicated code from CreateTableHandler
[HBASE-7913] - Secure Rest server should login before getting an instance of Rest servlet
[HBASE-7915] - Secure ThriftServer needs to login before calling HBaseHandler
[HBASE-7926] - SmallTests pollute the META descriptor
[HBASE-7933] - NPE in TableLockManager
[HBASE-7937] - Retry log rolling to support HA NN scenario
[HBASE-7940] - Upgrade version to 0.97-SNAPSHOT in pom.xml files
[HBASE-7945] - Remove flaky TestCatalogTrackerOnCluster
[HBASE-7947] - Custom compaction requests should have test for adding to wrong list
[HBASE-7951] - TestNodeHealthCheckChore.testHealthChecker failed 0.95 build #3
[HBASE-7955] - Remove log "ERROR snapshot.SnapshotFileCache: Snapshot directory doesn't exist"
[HBASE-7956] - RegionCoprocessorRpcChannel should log rpc requests at TRACE level rather than DEBUG
[HBASE-7957] - CloneSnapshotHandler.prepare() is not called by SnapshotManager
[HBASE-7959] - HBCK skips regions that have been recently modified, which then leads to it to report holes in region chain
[HBASE-7966] - ACL tests fail on trunk (flaky)
[HBASE-7968] - Packaging of Trunk and 0.95 does not create the dependent jars in the lib folder
[HBASE-7969] - Rename HBaseAdmin#getCompletedSnapshots as HBaseAdmin#listSnapshots
[HBASE-7981] - TestSplitTransactionOnCluster.testShutdownFixupWhenDaughterHasSplit failed in 0.95 build #11
[HBASE-7982] - TestReplicationQueueFailover* runs for a minute, spews 3/4million lines complaining 'Filesystem closed', has an NPE, and still passes?
[HBASE-7983] - FuzzyRowFilter is not added to REST model
[HBASE-7986] - [REST] Make HTablePool size configurable
[HBASE-7992] - provide pre/post region offline hooks for HMaster.offlineRegion()
[HBASE-7993] - add access control to HMaster offline region.
[HBASE-8002] - Make TimeOut Management for Assignment optional in master and regionservers
[HBASE-8004] - Creating an existing table from Shell does not throw TableExistsException
[HBASE-8005] - DemoClient.cpp can not be built correctly
[HBASE-8007] - Adopt TestLoadAndVerify from BigTop
[HBASE-8012] - Reseek should position to the beginning of file for the first time it is invoked with a KV smaller than the first KV in file
[HBASE-8021] - TestSplitTransactionOnCluster.testShouldThrowIOExceptionIfStoreFileSizeIsEmptyAndShouldSuccessfullyExecuteRollback() fails consistently
[HBASE-8022] - Site target fails
[HBASE-8025] - zkcli fails when SERVER_GC_OPTS is enabled
[HBASE-8027] - hbase-7994 redux; shutdown hbase-example unit tests
[HBASE-8028] - Append, Increment: Adding rollback support
[HBASE-8030] - znode path of online region servers is hard coded in rolling_restart.sh
[HBASE-8032] - TestNodeHealthCheckChore.testHealthChecker failed 0.95 build #36
[HBASE-8033] - Break TestRestoreSnapshotFromClient into TestRestoreSnapshotFromClient and TestCloneSnapshotFromClient
[HBASE-8036] - ProtobufUtil.multi behavior is inconsistent in case of errors
[HBASE-8041] - WebUI doesn't display snapshots correctly
[HBASE-8042] - Offline Meta Repair no longer points to the correct location
[HBASE-8043] - Fix a few javadoc warnings...
[HBASE-8044] - split/flush/compact/major_compact from hbase shell does not work for region key with \x format
[HBASE-8049] - If a RS cannot use a compression codec, it should have a retry limit on checking results of CompressionTest
[HBASE-8050] - Small fix to book/hbase.tests.html
[HBASE-8051] - 0.95 build failing on site goal: 'failed to get report for org.apache.maven.plugins:maven-project-info-reports-plugin: Could not find goal 'dependency-info''
[HBASE-8052] - TestHBaseFsck#testQuarantineMissingFamdir fails sporadically
[HBASE-8055] - Null check missing in StoreFile.Reader.getMaxTimestamp()
[HBASE-8057] - RegionLoad needs a toString implementation
[HBASE-8058] - Upgrade site plugin; fix assembly doc up on jenkins builds
[HBASE-8062] - Replace HBaseFsck.debugLsr() in TestFlushSnapshotFromClient with FSUtils.logFileSystemState()
[HBASE-8067] - TestHFileArchiving.testArchiveOnTableDelete sometimes fails
[HBASE-8068] - TestMasterMetricsWrapper failed in 0.95 #60 jenkins
[HBASE-8069] - TestHLog is dependent on the execution order
[HBASE-8091] - Goraci test might rewrite data in case of map task failures, which eclipses data loss problems
[HBASE-8097] - MetaServerShutdownHandler may potentially keep bumping up DeadServer.numProcessing
[HBASE-8099] - ReplicationZookeeper.copyQueuesFromRSUsingMulti should not return any queues if it failed to execute.
[HBASE-8108] - Add m2eclispe lifecycle mapping to hbase-common
[HBASE-8116] - TestSnapshotCloneIndependence fails in trunk builds intermittently
[HBASE-8118] - TestTablePermission depends on the execution order
[HBASE-8119] - Optimize StochasticLoadBalancer
[HBASE-8122] - TestAccessController depends on the execution order
[HBASE-8123] - Replace HashMap/HashSet with TreeMap/TreeSet where byte[] is used as key
[HBASE-8128] - HTable#put improvements
[HBASE-8130] - initialize TableLockManager before initializing AssignmentManager
[HBASE-8131] - Create table handler needs to handle failure cases.
[HBASE-8135] - Mutation should implement HeapSize
[HBASE-8138] - Using [packed=true] for repeated field of primitive numeric types (types which use the varint, 32-bit, or 64-bit wire types)
[HBASE-8140] - TableMapReduceUtils#addDependencyJar fails when nested inside another MR job
[HBASE-8141] - Remove accidental uses of org.mortbay.log.Log
[HBASE-8142] - Sporadic TestZKProcedureControllers failures on trunk
[HBASE-8143] - HBase on Hadoop 2 with local short circuit reads (ssr) causes OOM
[HBASE-8144] - Limit number of attempts to assign a region
[HBASE-8146] - IntegrationTestBigLinkedList does not work on distributed setup
[HBASE-8151] - Decode memstoreTS in HFileReaderV2 only when necessary
[HBASE-8160] - HMaster#move doesn't check if master initialized
[HBASE-8161] - setting blocking file count on table level doesn't work
[HBASE-8164] - TestTableLockManager fails intermittently in trunk builds
[HBASE-8165] - Update our protobuf to 2.5 from 2.4.1
[HBASE-8166] - Avoid writing the memstoreTS into HFiles when possible
[HBASE-8170] - HbaseAdmin.createTable cannot handle creating three regions
[HBASE-8173] - HMaster#move wraps IOException in UnknownRegionException
[HBASE-8175] - Include javadoc and book when site goal invoked
[HBASE-8178] - IPCUtil produces a LOT of WARN log spew
[HBASE-8187] - trunk/0.95 tarball packaging
[HBASE-8195] - hbase.table.archive.directory reference should be removed from hbase-default.xml
[HBASE-8207] - Replication could have data loss when machine name contains hyphen "-"
[HBASE-8208] - Data could not be replicated to slaves when deferredLogSync is enabled
[HBASE-8213] - global authorization may lose efficacy
[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-8232] - TestAccessController occasionally fails with IndexOutOfBoundsException
[HBASE-8236] - Set finalName property in hbase-assembly else basename is hbase-assembly rather than hbase.

Improvement

[HBASE-74] - [performance] When a get or scan request spans multiple columns, execute the reads in parallel
[HBASE-2155] - Add the option to bind to a specific IP address to the Nonblocking Thrift servers
[HBASE-2231] - Compaction events should be written to HLog
[HBASE-3171] - Drop ROOT and instead store META location(s) directly in ZooKeeper
[HBASE-3271] - Allow .META. table to be exported
[HBASE-3537] - [site] Make it so each page of manual allows users comment like mysql's manual does
[HBASE-3577] - enables Thrift client to get the Region location
[HBASE-3614] - Expose per-region request rate metrics
[HBASE-3643] - Close the filesystem handle when HRS is aborting
[HBASE-3661] - Handle empty qualifier better in shell for increments
[HBASE-3925] - Make Shell's -d and debug cmd behave the same
[HBASE-3996] - Support multiple tables and scanners as input to the mapper in map/reduce jobs
[HBASE-4198] - Harmonize HBA flush, compact and majorCompact
[HBASE-4231] - Flush regions in multiple threads
[HBASE-4255] - Expose CatalogJanitor controls
[HBASE-4284] - document permissions that need to be set on importtsv output before completebulkload
[HBASE-4348] - Add metrics for regions in transition
[HBASE-4392] - Add metrics for read/write throughput (#cells, #bytes)
[HBASE-4451] - Improve zk node naming (/hbase/shutdown)
[HBASE-4542] - add filter info to slow query logging
[HBASE-4557] - Do something better than UnknownScannerException
[HBASE-4657] - Improve the efficiency of our MR jobs with a few configurations
[HBASE-4697] - Block cache reference should not be static
[HBASE-4720] - Implement atomic update operations (checkAndPut, checkAndDelete) for REST client/server
[HBASE-4791] - Allow Secure Zookeeper JAAS configuration to be programmatically set (rather than only by reading JAAS configuration file)
[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-4991] - Provide capability to delete named region
[HBASE-5004] - Better manage standalone setups on Ubuntu, the 127.0.1.1 issue
[HBASE-5069] - [book] Document how to count rows
[HBASE-5074] - support checksums in HBase block cache
[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-5257] - Allow INCLUDE_AND_NEXT_COL in filters and use it in ColumnPaginationFilter
[HBASE-5298] - Add thrift metrics to thrift2
[HBASE-5305] - Improve cross-version compatibility & upgradeability
[HBASE-5314] - Gracefully rolling restart region servers in rolling-restart.sh
[HBASE-5360] - [uberhbck] Add options for how to handle offline split parents.
[HBASE-5399] - Cut the link between the client and the zookeeper ensemble
[HBASE-5416] - Improve performance of scans with some kind of filters.
[HBASE-5419] - FileAlreadyExistsException has moved from mapred to fs package
[HBASE-5433] - [REST] Add metrics to keep track of success/failure count
[HBASE-5434] - [REST] Include more metrics in cluster status request
[HBASE-5498] - Secure Bulk Load
[HBASE-5508] - Add an option to allow test output to show on the terminal
[HBASE-5510] - Pass region info in LoadBalancer.randomAssignment(List<ServerName> servers)
[HBASE-5520] - Support reseek() at RegionScanner
[HBASE-5521] - Move compression/decompression to an encoder specific encoding context
[HBASE-5527] - PerformanceEvaluation: Report aggregate timings on a single line
[HBASE-5533] - Add more metrics to HBase
[HBASE-5538] - A metric to measure the size of the response queue in the hbase rpc server
[HBASE-5542] - Unify HRegion.mutateRowsWithLocks() and HRegion.processRow()
[HBASE-5548] - Add ability to get a table in the shell
[HBASE-5555] - add a pointer to a dns verification utility in hbase book/dns
[HBASE-5560] - Avoid RegionServer GC caused by timed-out calls
[HBASE-5565] - Refactoring doMiniBatchPut()
[HBASE-5572] - KeeperException.SessionExpiredException management could be improved in Master
[HBASE-5573] - Replace client ZooKeeper watchers by simple ZooKeeper reads
[HBASE-5575] - Configure Arcanist lint engine for HBase
[HBASE-5582] - "No HServerInfo found for" should be a WARNING message
[HBASE-5584] - Coprocessor hooks can be called in the respective handlers
[HBASE-5588] - Deprecate/remove AssignmentManager#clearRegionFromTransition
[HBASE-5589] - Add of the offline call to the Master Interface
[HBASE-5591] - ThiftServerRunner.HBaseHandler.toBytes() is identical to Bytes.getBytes()
[HBASE-5592] - Make it easier to get a table from shell
[HBASE-5616] - Make compaction code standalone
[HBASE-5617] - Provide coprocessor hooks in put flow while rollbackMemstore.
[HBASE-5625] - Avoid byte buffer allocations when reading a value from a Result object
[HBASE-5630] - hbck should disable the balancer using synchronousBalanceSwitch.
[HBASE-5631] - hbck should handle case where .tableinfo file is missing.
[HBASE-5655] - Cap space usage of default log4j rolling policy
[HBASE-5664] - CP hooks in Scan flow for fast forward when filter filters out a row
[HBASE-5667] - RegexStringComparator supports java.util.regex.Pattern flags
[HBASE-5670] - Have Mutation implement the Row interface.
[HBASE-5671] - hbase.metrics.showTableName should be true by default
[HBASE-5692] - Add real action time for HLogPrettyPrinter
[HBASE-5693] - When creating a region, the master initializes it and creates a memstore within the master server
[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-5714] - Add write permissions check before any hbck run that modifies hdfs.
[HBASE-5728] - Methods Missing in HTableInterface
[HBASE-5734] - Change hbck sideline root
[HBASE-5737] - Minor Improvements related to balancer.
[HBASE-5739] - Upgrade guava to 11.0.2
[HBASE-5760] - Unit tests should write only under /target
[HBASE-5775] - ZKUtil doesn't handle deleteRecurisively cleanly
[HBASE-5776] - HTableMultiplexer
[HBASE-5778] - Fix HLog compression's incompatibilities
[HBASE-5784] - Enable mvn deploy of website
[HBASE-5788] - Move Dynamic Metrics storage off of HRegion.
[HBASE-5790] - ZKUtil deleteRecursively should be a recoverable operation
[HBASE-5791] - Apache project branding requirements: DOAP file [PATCH]
[HBASE-5804] - Add more to verification step in HLogPerformanceEvaluation
[HBASE-5809] - Avoid move api to take the destination server same as the source server.
[HBASE-5814] - Make HLogPerformanceEvaluation work on top of hdfs
[HBASE-5815] - ZKUtil.createWithParents should be transactional
[HBASE-5818] - TestScannerSelectionUsingTTL should be in MediumTests category
[HBASE-5826] - Improve sync of HLog edits
[HBASE-5838] - Add an LZ4 compression option to HFile
[HBASE-5844] - Delete the region servers znode after a regions server crash
[HBASE-5862] - After Region Close remove the Operation Metrics.
[HBASE-5867] - Improve Compaction Throttle Default
[HBASE-5877] - When a query fails because the region has moved, let the regionserver return the new address to the client
[HBASE-5879] - Enable JMX metrics collection for the Thrift proxy
[HBASE-5882] - Prcoess RIT on master restart can try assigning the region if the region is found on a dead server instead of waiting for Timeout Monitor
[HBASE-5887] - Make TestAcidGuarantees usable for system testing.
[HBASE-5888] - Clover profile in build
[HBASE-5889] - Remove HRegionInterface
[HBASE-5898] - Consider double-checked locking for block cache lock
[HBASE-5901] - Use union type protobufs instead of class/byte pairs for multi requests
[HBASE-5903] - Detect the test classes without categories
[HBASE-5913] - Speed up the full scan of META
[HBASE-5914] - Bulk assign regions in the process of ServerShutdownHandler
[HBASE-5923] - Cleanup checkAndXXX logic
[HBASE-5924] - In the client code, don't wait for all the requests to be executed before resubmitting a request in error.
[HBASE-5926] - Delete the master znode after a master crash
[HBASE-5930] - Periodically flush the Memstore?
[HBASE-5934] - Add the ability for Performance Evaluation to set the table compression
[HBASE-5939] - Add an autorestart option in the start scripts
[HBASE-5945] - Reduce buffer copies in IPC server response path
[HBASE-5953] - Expose the current state of the balancerSwitch
[HBASE-5958] - Replace ByteString.copyFrom with new ByteString()
[HBASE-5961] - New standard HBase code formatter
[HBASE-5970] - Improve the AssignmentManager#updateTimer and speed up handling opened event
[HBASE-5973] - Add ability for potentially long-running IPC calls to abort if client disconnects
[HBASE-5987] - HFileBlockIndex improvement
[HBASE-5998] - Bulk assignment: regionserver optimization by using a temporary cache for table descriptors when receveing an open regions request
[HBASE-6004] - Adding more logging to help debugging MR job
[HBASE-6010] - Security audit logger configuration for log4j
[HBASE-6013] - Polish sharp edges from CopyTable
[HBASE-6023] - Normalize security audit logging level with Hadoop
[HBASE-6025] - Expose Hadoop Dynamic Metrics through JSON Rest interface
[HBASE-6043] - Add Increment Coalescing in thrift.
[HBASE-6057] - Change some tests categories to optimize build time
[HBASE-6067] - HBase won't start when hbase.rootdir uses ViewFileSystem
[HBASE-6080] - site.xml - adding ReviewBoard to main page left-hand nav
[HBASE-6083] - Modify old filter tests to use Junit4/no longer use HBaseTestCase
[HBASE-6094] - [refGuide] Improvements to new contributor docs
[HBASE-6109] - Improve RIT performances during assignment on large clusters
[HBASE-6114] - CacheControl flags should be tunable per table schema per CF
[HBASE-6120] - Few logging improvements around enabling tables
[HBASE-6134] - Improvement for split-worker to speed up distributed log splitting
[HBASE-6135] - Style the Web UI to use Twitter's Bootstrap.
[HBASE-6155] - [copytable] Unexpected behavior if --starttime is not specifed but --endtime is.
[HBASE-6162] - Move KeyValue to hbase-common module
[HBASE-6168] - [replication] Add replication zookeeper state documentation to replication.html
[HBASE-6170] - Timeouts for row lock and scan should be separate
[HBASE-6173] - hbck check specified tables only
[HBASE-6177] - Add .idea to RAT excludes
[HBASE-6207] - Add jitter to client retry timer
[HBASE-6226] - move DataBlockEncoding and related classes to hbase-common module
[HBASE-6231] - Minor Typos in HBase Book
[HBASE-6234] - Move simple KeyValue tests to hbase-common module
[HBASE-6242] - New UI should color task list entries
[HBASE-6243] - New UI should space detailed latency columns equally
[HBASE-6244] - [REST] Result generators do not need to query table schema
[HBASE-6245] - Upon page refresh new UI should return to the previously selected tab
[HBASE-6247] - [REST] HTablePool.putTable is deprecated
[HBASE-6255] - Right align hbase logo in web ui
[HBASE-6256] - Zk Dump was missed in the move to new UI
[HBASE-6264] - Typos in the book documentation
[HBASE-6267] - hbase.store.delete.expired.storefile should be true by default
[HBASE-6274] - Proto files should be in the same palce
[HBASE-6275] - Add conditional Hadoop properties assignment
[HBASE-6283] - [region_mover.rb] Add option to exclude list of hosts on unload instead of just assuming the source node.
[HBASE-6286] - Upgrade maven-compiler-plugin to 2.5.1
[HBASE-6291] - Don't retry increments on an invalid cell
[HBASE-6294] - Detect leftover data in ZK after a user delete all its HBase data
[HBASE-6296] - Refactor EventType to track its own ExecutorService type
[HBASE-6308] - Coprocessors should be loaded in a custom ClassLoader to prevent dependency conflicts with HBase
[HBASE-6309] - [MTTR] Do NN operations outside of the ZK EventThread in SplitLogManager
[HBASE-6312] - Make BlockCache eviction thresholds configurable
[HBASE-6314] - Fast fail behavior for unauthenticated user
[HBASE-6332] - Improve POM for better integration with downstream ivy projects
[HBASE-6333] - MemStoreScanner {kvsetAtCreation,snapshotAtCreation} should be private and not volatile
[HBASE-6334] - TestImprovement for TestHRegion.testWritesWhileGetting
[HBASE-6350] - Some logging improvements for RegionServer bulk loading
[HBASE-6352] - Add copy method in Bytes
[HBASE-6363] - HBaseConfiguration can carry a main method that dumps XML output for debug purposes
[HBASE-6367] - List backup masters in ui.
[HBASE-6370] - Add compression codec test at HMaster when createTable/modifyColumn/modifyTable
[HBASE-6372] - Add scanner batching to Export job
[HBASE-6373] - Add more context information to audit log messages
[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-6386] - Audit log messages do not include column family / qualifier information consistently
[HBASE-6399] - MetricsContext should be different between RegionServerMetrics and RegionServerDynamicMetrics
[HBASE-6400] - Add getMasterAdmin() and getMasterMonitor() to HConnection
[HBASE-6419] - PersistentMetricsTimeVaryingRate gets used for non-time-based metrics (part2 of HBASE-6220)
[HBASE-6433] - Improve HBaseServer#getRemoteAddress by utilizing HBaseServer.Connection.hostAddress
[HBASE-6435] - Reading WAL files after a recovery leads to time lost in HDFS timeouts when using dead datanodes
[HBASE-6444] - Expose the ability to set custom HTTP Request Headers for the REST client used by RemoteHTable
[HBASE-6459] - improve speed of table creation
[HBASE-6466] - Enable multi-thread for memstore flush
[HBASE-6470] - SingleColumnValueFilter with private fields and methods
[HBASE-6502] - Typo in loaded coprocessors on master status page
[HBASE-6521] - Address the handling of multiple versions of a protocol
[HBASE-6522] - Expose locks and leases to Coprocessors
[HBASE-6567] - make memory locking configuration of regioservers more flexible
[HBASE-6580] - New HTable pool, based on HBase(byte[], HConnection, ExecutorService) constructor
[HBASE-6585] - Audit log messages should contain info about the higher level operation being executed
[HBASE-6586] - Quarantine Corrupted HFiles with hbck
[HBASE-6594] - Move tasks section above regions section in RegionServer UI
[HBASE-6633] - Adding new hooks to the split flow - For roll backs and one final hook after split is completed either successfully or failed
[HBASE-6643] - Accept encoded region name in compacting/spliting region from shell
[HBASE-6644] - HBaseAdmin.createTable should wait more till table is enabled.
[HBASE-6654] - io.encoding.TestChangingEncoding could be faster
[HBASE-6689] - HRegion.increment comment nits
[HBASE-6698] - Refactor checkAndPut and checkAndDelete to use doMiniBatchMutation
[HBASE-6702] - ResourceChecker refinement
[HBASE-6706] - Remove TotalOrderPartitioner
[HBASE-6730] - Enable rolling averages in StochasticLoadBalancer
[HBASE-6742] - Change default test parallelisation level to 5
[HBASE-6743] - Move EnvironmentEdge classes to hbase-common
[HBASE-6766] - Remove the Thread Dump link on Info pages
[HBASE-6783] - Make read short circuit the default
[HBASE-6793] - Make hbase-examples module
[HBASE-6804] - [replication] lower the amount of logging to a more human-readable level
[HBASE-6848] - Make hbase-hadoop-compat findbugs clean
[HBASE-6849] - Make StochasticLoadBalancer the default
[HBASE-6856] - Document the LeaseException thrown in scanner next
[HBASE-6860] - [replication] HBASE-6550 is too aggressive, DDOSes .META.
[HBASE-6875] - Remove commons-httpclient, -component, and up versions on other jars (remove unused repository)
[HBASE-6876] - Clean up WARNs and log messages around startup
[HBASE-6884] - Update documentation on unit tests
[HBASE-6885] - Typo in the Javadoc for close method of HTableInterface class
[HBASE-6890] - Colorize test-patch results that goes to JIRA as a comment
[HBASE-6914] - Scans/Gets/Mutations don't give a good error if the table is disabled.
[HBASE-6939] - Add the possibility to set the ZK port in HBaseTestingUtility
[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-6966] - "Compressed RPCs for HBase" (HBASE-5355) port to trunk
[HBASE-6977] - Multithread processing ZK assignment events
[HBASE-6979] - recovered.edits file should not break distributed log splitting
[HBASE-6990] - Pretty print TTL
[HBASE-7007] - [MTTR] Study assigns to see if we can make them faster still
[HBASE-7023] - Forward-port HBASE-6727 size-based HBaseServer callQueue throttle from 0.89fb branch
[HBASE-7024] - TableMapReduceUtil.initTableMapperJob unnecessarily limits the types of outputKeyClass and outputValueClass
[HBASE-7027] - Use the correct port of info server of region servers
[HBASE-7033] - Add hbase.lru.blockcache.acceptable.factor to configuration, akin to the min.factor added by HBASE-6312
[HBASE-7063] - Package name for compression should not contain hfile
[HBASE-7089] - Allow filter to be specified for Get from HBase shell
[HBASE-7110] - refactor the compaction selection and config code similarly to 0.89-fb changes
[HBASE-7115] - [shell] Provide a way to register custom filters with the Filter Language Parser
[HBASE-7128] - Reduce annoying catch clauses of UnsupportedEncodingException that is never thrown because of UTF-8
[HBASE-7133] - svn:ignore on module directories
[HBASE-7137] - Improve Bytes to accept byte buffers which don't allow us to directly access their backing arrays
[HBASE-7151] - Better log message for Per-CF compactions
[HBASE-7156] - Add Data Block Encoding and -D opts to Performance Evaluation
[HBASE-7173] - Reuse code between SnapshotLogSplitter and HLogSplitter
[HBASE-7178] - Compression tests
[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-7213] - Have HLog files for .META. and -ROOT- edits only
[HBASE-7217] - Documentation: Update section 11.5.1 to recommend that hbase.regionserver.checksum.verify is set
[HBASE-7247] - Assignment performances decreased by 50% because of regionserver.OpenRegionHandler#tickleOpening
[HBASE-7249] - add test name filter to IntegrationTestsDriver
[HBASE-7250] - create integration test for balancing regions and killing region servers - 2
[HBASE-7274] - Enable JMX metrics collection for REST Server
[HBASE-7281] - Add svn and git ignore for IntelliJ Idea files
[HBASE-7284] - Rename rest server from Main to RESTServer
[HBASE-7295] - Contention in HBaseClient.getConnection
[HBASE-7318] - Add verbose logging option to HConnectionManager
[HBASE-7328] - IntegrationTestRebalanceAndKillServersTargeted supercedes IntegrationTestRebalanceAndKillServers, remove
[HBASE-7329] - remove flush-related records from WAL and make locking more granular
[HBASE-7340] - Master coprocessor notification for assignmentManager.balance() is inconsistent
[HBASE-7351] - Periodic health check chore
[HBASE-7359] - [REST] 'accessToken' in RemoteHTable is vestigial
[HBASE-7361] - Fix all javadoc warnings in hbase-server/{,mapreduce}
[HBASE-7369] - HConnectionManager should remove aborted connections
[HBASE-7374] - Expose master table operations for coprocessors by way of MasterServices
[HBASE-7377] - Clean up TestHBase7051
[HBASE-7396] - Allow user-specified cluster IDs for Import
[HBASE-7410] - [snapshots] add snapshot/clone/restore/export docs to ref guide
[HBASE-7425] - Move to the newest BootStrap css and js for the webui.
[HBASE-7426] - Fix PreCheckin script to error out when there are Javadoc errors.
[HBASE-7428] - There are multiple HConstants for configuring Zookeeper timeout
[HBASE-7434] - Use generics appropriately in RPCEngine and reduce casts, with fixing a related bug of breaking thread-safety in HConnectionManager
[HBASE-7441] - Make ClusterManager in IntegrationTestingUtility pluggable
[HBASE-7460] - Cleanup client connection layers
[HBASE-7469] - [REST] Share a HBaseAdmin instance
[HBASE-7472] - [REST] Support MIME type application/protobuf
[HBASE-7503] - Add exists(List) in HTableInterface to allow multiple parallel exists at one time
[HBASE-7512] - Document the findbugs library annotation
[HBASE-7526] - create table does not log the table name in audit log
[HBASE-7540] - Make znode dump to print a dump of replication znodes
[HBASE-7541] - Convert all tests that use HBaseTestingUtility.createMultiRegions to HBA.createTable
[HBASE-7561] - Display the total number of regions for a given table on the master webUI
[HBASE-7564] - [replication] Create interfaces for manipulation of replication state
[HBASE-7566] - remove useless ctor from HRegion and move sporadic null checks earlier
[HBASE-7568] - [replication] Create an interface for replication queues
[HBASE-7569] - change HTD/HCD to use standard byte-byte pair for metadata
[HBASE-7576] - Update formatter so that all lines are wrapped when over 100 characters
[HBASE-7585] - TestAccessController tests should close HTables
[HBASE-7660] - Remove HFileV1 code
[HBASE-7672] - Merging compaction requests in the queue for same store
[HBASE-7691] - A couple docbook updates
[HBASE-7695] - Remove unused member and local variables from HRegionServer
[HBASE-7699] - Replace LOG.info() with LOG.debug() in FSUtils.listStatus()
[HBASE-7721] - Atomic multi-row mutations in META
[HBASE-7741] - Don't use bulk assigner if assigning just several regions
[HBASE-7757] - Add web UI to REST server and Thrift server
[HBASE-7758] - Update book to include documentation of CellCounter utility
[HBASE-7773] - rename StoreConfiguration, remove unnecessary method
[HBASE-7790] - Refactor OpenRegionHandler so that the cleanup happens in one place - the finally block
[HBASE-7802] - Use the Store interface instead of HStore (coprocessor, compaction, ...)
[HBASE-7803] - [REST] Support caching on scan
[HBASE-7822] - clean up compactionrequest and compactselection - part 1
[HBASE-7827] - Improve the speed of Hbase Thirft Batch mutation for deletes
[HBASE-7843] - enable encapsulating compaction policy/compactor/store file manager interaction shennanigans
[HBASE-7845] - optimize hfile index key
[HBASE-7848] - Use ZK-based read/write lock to make flush-type snapshot robust against table enable/disable/alter
[HBASE-7856] - HTU#waitTableAvailable should have a default value of 30s
[HBASE-7861] - Use the ServerName in the Connection#getClient and Connection#getAdmin code
[HBASE-7908] - Add jstack logs in hbase-common.sh when killing the server.
[HBASE-7910] - Dont use reflection for security
[HBASE-7917] - Documentation for secure bulk load
[HBASE-7923] - force unassign can confirm region online on any RS to get rid of double assignments.
[HBASE-7930] - hbck should provide an option to fix .META. rows with empty REGIONINFO_QUALIFIER
[HBASE-7952] - Remove update() and Improve ExplicitColumnTracker performance.
[HBASE-7976] - Rest of master operations (move, assign, unassign, offline region) should also acquire table locks
[HBASE-7977] - Online merge should acquire table lock
[HBASE-7979] - Adding some utility methods in org.apache.hadoop.hbase.util.Bytes
[HBASE-8031] - Adopt goraci as an Integration test
[HBASE-8066] - Provide Admin.isTableAvailable() for a given table along with splitkeys
[HBASE-8077] - Configure the job name in ImportTsv
[HBASE-8080] - refactor default compactor to make its parts easier to reuse
[HBASE-8084] - Sundry mapreduce improvements
[HBASE-8093] - Change the .META. table name for file system incompatibility
[HBASE-8102] - Replication NodeFailoverWorker should check other rs znodes before proceeding
[HBASE-8117] - Remove redundant byte conversion methods from HConstants
[HBASE-8124] - TableMapReduceUtils should distribute dependency jars using an hbase config
[HBASE-8137] - Add failed to open/close region state
[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-8199] - Eliminate exception for ExportSnapshot against the null table snapshot (with no data in)
[HBASE-8205] - HBCK support for table locks
[HBASE-8209] - Improve LoadTest extensibility

New Feature

[HBASE-50] - Snapshot of table
[HBASE-2214] - Do HBASE-1996 -- setting size to return in scan rather than count of rows -- properly
[HBASE-2730] - Expose RS work queue contents on web UI
[HBASE-4050] - Update HBase metrics framework to metrics2 framework
[HBASE-4210] - Allow coprocessor to interact with batches per region sent from a client
[HBASE-4391] - Add ability to start RS as root and call mlockall
[HBASE-4393] - Implement a canary monitoring program
[HBASE-4441] - Revisit QOS
[HBASE-4500] - [replication] Add a delayed option
[HBASE-4676] - Prefix Compression - Trie data block encoding
[HBASE-4956] - Control direct memory buffer consumption by HBaseClient
[HBASE-5128] - [uber hbck] Online automated repair of table integrity and region consistency problems
[HBASE-5162] - Basic client pushback mechanism
[HBASE-5335] - Dynamic Schema Configurations
[HBASE-5386] - [usability] Soft limit for eager region splitting of young tables
[HBASE-5515] - Add a processRow API that supports atomic multiple reads and writes on a row
[HBASE-5525] - Truncate and preserve region boundaries option
[HBASE-5539] - asynchbase PerformanceEvaluation
[HBASE-5544] - Add metrics to HRegion.processRow()
[HBASE-5547] - Don't delete HFiles when in "backup mode"
[HBASE-5580] - Publish Thrift-generated files for other languages
[HBASE-5599] - [hbck] handle NO_VERSION_FILE and SHOULD_NOT_BE_DEPLOYED inconsistencies
[HBASE-5604] - M/R tool to replay WAL files
[HBASE-5678] - Dynamic configuration capability for Hbase.
[HBASE-5719] - Enhance hbck to sideline overlapped mega regions
[HBASE-5786] - Implement histogram metrics for flush and compaction latencies and sizes.
[HBASE-5872] - Improve hadoopqa script to include checks for hadoop 0.23 build
[HBASE-5886] - Add new metric for possible data loss due to puts without WAL
[HBASE-6033] - Adding some fuction to check if a table/region is in compaction
[HBASE-6044] - copytable: remove rs.* parameters
[HBASE-6055] - Offline Snapshots in HBase 0.96
[HBASE-6427] - Pluggable compaction and scan policies via coprocessors
[HBASE-6505] - Allow shared RegionObserver state
[HBASE-6509] - Implement fast-forwarding FuzzyRowFilter to allow filtering rows e.g. by "???alex?b"
[HBASE-6550] - Refactoring ReplicationSink to make it more responsive of cluster health
[HBASE-6592] - [shell] Add means of custom formatting output by column
[HBASE-6721] - RegionServer Group based Assignment
[HBASE-7162] - Prefix Compression - Trie data block encoding; hbase-common and hbase-server changes
[HBASE-7253] - Compaction Tool
[HBASE-7403] - Online Merge
[HBASE-7404] - Bucket Cache:A solution about CMS,Heap Fragment and Big Cache on HBASE
[HBASE-7415] - [snapshots] Add task information to snapshot operation
[HBASE-7427] - Check line lenghts in the test-patch script
[HBASE-7474] - Endpoint Implementation to support Scans with Sorting of Rows based on column values(similar to "order by" clause of RDBMS)
[HBASE-7525] - A canary monitoring program specifically for regionserver
[HBASE-7748] - Add DelimitedKeyPrefixRegionSplitPolicy
[HBASE-7828] - Expose HBase Scan object's "batch" property for intra-row batching in Thrift API
[HBASE-7839] - Add a script to simulate a dead machine during the integration tests
[HBASE-7840] - Enhance the java it framework to start & stop a distributed hbase & hadoop cluster
[HBASE-8163] - MemStoreChunkPool: An improvement for JAVA GC when using MSLAB
[HBASE-8181] - WebUIs HTTPS support

Task

[HBASE-4336] - Convert source tree into maven modules
[HBASE-4403] - Adopt interface stability/audience classifications from Hadoop
[HBASE-5119] - Set the TimeoutMonitor's timeout back down
[HBASE-5138] - [ref manual] Add a discussion on the number of regions
[HBASE-5258] - Move coprocessors set out of RegionLoad
[HBASE-5300] - Research website symolic links for renaming of "HBase book" to "HBase Reference Guide"
[HBASE-5328] - Small changes to Master to make it more testable
[HBASE-5443] - Add PB-based calls to HRegionInterface
[HBASE-5536] - Make it clear that hbase 0.96 requires hadoop 1.0.0 at least; we will no longer work on older versions
[HBASE-5610] - Add GA to hbase.apache.org
[HBASE-5688] - Convert zk root-region-server znode content to pb
[HBASE-5707] - Move clusterid and clusterup (shutdown) znodes over to pb
[HBASE-5709] - Move active master and backup master znodes to use pbs
[HBASE-5747] - Forward port "hbase-5708 [89-fb] Make MiniMapRedCluster directory a subdirectory of target/test"
[HBASE-5808] - Remove TestHLogBench, HLogPerformanceEvaluation is more comprehensive
[HBASE-5810] - HBASE-5620 Convert the client protocol of HRegionInterface to PB addendum
[HBASE-5812] - Add log rolling to HLogPerformanceEvaluation
[HBASE-5869] - Move SplitLogManager splitlog taskstate and AssignmentManager RegionTransitionData znode datas to pb
[HBASE-5932] - Move RegionServerStatusProtocol from ipc package to top-level
[HBASE-5933] - Hide HBaseProtos.ServerLoad and HBaseProtos.RegionLoad from ClusterStatus
[HBASE-5935] - Add Region-level PB-based calls to HMasterInterface
[HBASE-5936] - Add Column-level PB-based calls to HMasterInterface
[HBASE-5944] - Convert rs, shutdown, and table dir content to pb
[HBASE-5948] - Deprecate and remove the Avro gateway
[HBASE-5965] - Move replication znodes to pb
[HBASE-6001] - Upgrade slf4j to 1.6.1
[HBASE-6005] - Broken Links on Homepages
[HBASE-6024] - Add state of load balancer to cluster status
[HBASE-6032] - Port HFileBlockIndex improvement from HBASE-5987
[HBASE-6036] - Add Cluster-level PB-based calls to HMasterInterface (minus file-format related calls)
[HBASE-6038] - Add getClusterStatus PB-based call to HMasterInterface
[HBASE-6039] - Remove HMasterInterface and replace with something similar to RegionServerStatusProtocol
[HBASE-6077] - Document the most common secure RPC troubleshooting resolutions
[HBASE-6131] - Add attribution for code added by HBASE-5533 metrics
[HBASE-6145] - Fix site target post modularization
[HBASE-6182] - Make HBase works with jdk1.7
[HBASE-6223] - Document hbck improvements: HBASE-6173, HBASE-5360
[HBASE-6288] - In hbase-daemons.sh, description of the default backup-master file path is wrong
[HBASE-6365] - Deprecate classes that depend on (old) metrics framework
[HBASE-6436] - Netty should be moved off of snapshots.
[HBASE-6454] - Write PB definitions for filters
[HBASE-6477] - Use PB filter definitions in RPC
[HBASE-6553] - Remove Avro Gateway
[HBASE-6591] - checkAndPut executed/not metrics
[HBASE-6599] - Rename Store (the implementations) as HStore, and HStore (the Interface) as Store
[HBASE-6606] - Test for reconnecting with HBaseAdmin using unmanaged HConnection
[HBASE-6694] - Test scanner batching in export job feature HBASE-6372 AND report on improvement HBASE-6372 adds
[HBASE-6759] - Forward port ZKReadOnly change from HBASE-6710
[HBASE-6895] - Remove CoprocessorProtocol support and implementations
[HBASE-6903] - HLog.Entry implements Writable; change to pb
[HBASE-6910] - Review pb work for extraneous copies and for wide synchronization blocks
[HBASE-6944] - Enhance test-patch.sh to run against both jdk 1.6 and jdk 1.7
[HBASE-6987] - Port HBASE-6920 to trunk (?)
[HBASE-7012] - Create hbase-client module
[HBASE-7032] - Remove old IncrementColumnValue code.
[HBASE-7036] - Exclude org.apache.hadoop.hbase.coprocessor.example.generated package from findbugs check
[HBASE-7045] - Add some comments to MVCC code
[HBASE-7055] - port HBASE-6371 tier-based compaction from 0.89-fb to trunk (with changes)
[HBASE-7087] - Add to NOTICE.txt a note on jamon being MPL
[HBASE-7289] - Strip Writable from KeyValue
[HBASE-7356] - Fix all javadoc warnings in all modules but hbase-server
[HBASE-7386] - Investigate providing some supervisor support for znode deletion
[HBASE-7392] - Disable failing example unit tests TestZooKeeperScanPolicyObserver and TestBulkDeleteProtocol
[HBASE-7397] - HTable.coprocessorService() should allow null values in returned Map
[HBASE-7414] - Convert some HFile metadata to PB
[HBASE-7479] - Remove VersionedProtocol and ProtocolSignature from RPC
[HBASE-7577] - Review names of all znodes in zk to make sure they are sensible before 0.96
[HBASE-7641] - Port HBASE-6669 'Add BigDecimalColumnInterpreter for doing aggregations using AggregationClient' to trunk
[HBASE-7704] - migration tool that checks presence of HFile V1 files
[HBASE-7706] - Remove reservation blocks from region server
[HBASE-7712] - Pass ScanType into preCompact()
[HBASE-7821] - Remove Duplicated code in CompactSelection
[HBASE-7823] - Add ignores to hbase-prefix-tree
[HBASE-7897] - Add support for tags to Cell Interface
[HBASE-7898] - Serializing Cells over RPC
[HBASE-7904] - Make mapreduce jobs pass based on 2.0.4-alpha
[HBASE-7918] - Reenable IntegrationTestRebalanceAndKillServersTargeted; it works now (thanks Sergey)
[HBASE-7936] - Undo prefix-tree module as dependency for mapreduce and for DataBlockEncoding
[HBASE-7939] - Apply fixup for 'hbase-6972 HBase Shell deleteall should not require column to be defined'
[HBASE-7984] - Use contains(byte[],byte[]) API added into org.apache.hadoop.hbase.util.Bytes at HTable#isValidMetaTableRow()
[HBASE-7994] - Disable unit tests under hbase-examples; they fail too often up on jenkins
[HBASE-7997] - One last set of class moves before 0.95 goes out
[HBASE-8010] - TestMetaMigrationConvertingToPB failing on trunk and 0.95
[HBASE-8045] - Fix .META. migration after HBASE-3171
[HBASE-8054] - HBASE-7797 Use consistent package name dregs
[HBASE-8172] - Fix ./bin/*.rb scripts or remove them

Test

[HBASE-5435] - TestForceCacheImportantBlocks fails with OutOfMemoryError
[HBASE-5506] - Add unit test for ThriftServerRunner.HbaseHandler.getRegionInfo()
[HBASE-5792] - HLog Performance Evaluation Tool
[HBASE-5984] - TestLogRolling.testLogRollOnPipelineRestart failed with HADOOP 2.0.0
[HBASE-5985] - TestMetaMigrationRemovingHTD failed with HADOOP 2.0.0
[HBASE-5989] - TestAdmin failed on Hadoop 2.0.0
[HBASE-6118] - Add a testcase for HBASE-6065
[HBASE-6507] - [hbck] TestHBaseFsck ran into TableNotEnabledException
[HBASE-6593] - TestAdmin times out sometimes
[HBASE-6732] - [89-fb] Reduce scope of synchronized block in HBaseClient.Connection#sendParam.
[HBASE-6735] - [89-fb] Remove reflection from HBaseClient
[HBASE-7080] - TestHFileOutputFormat.testColumnFamilyCompression failing due to UnsatisfiedLinkError
[HBASE-7082] - TestHFileCleaner#testHFileCleaning fails due to cleaner is reset
[HBASE-7152] - testShouldCheckMasterFailOverWhenMETAIsInOpenedState times out occasionally
[HBASE-7384] - Introducing waitForCondition function into test cases
[HBASE-7718] - TestClassLoading needs to consider runtime classpath in buildCoprocessorJar
[HBASE-7960] - cleanup TestDir in TestHalfStoreFileReader
[HBASE-8071] - TestRestoreFlushSnapshotFromClient fails intermittently in trunk builds
[HBASE-8106] - Test to check replication log znodes move is done correctly

Wish

[HBASE-7705] - Make the method getCurrentPoolSize of HTablePool public
[HBASE-7825] - Retire non distributed log splitting related code


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

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

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

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

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

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

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

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

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

Release 0.90.7 - Unreleased

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

Release 0.90.6 - Unreleased

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

Release 0.90.5 - Released

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

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

Release 0.90.4 - August 10, 2011

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

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

Release 0.90.3 - May 19th, 2011

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

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

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

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

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

Release 0.90.1 - February 9th, 2011

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

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

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

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


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


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


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


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

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

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

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

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

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

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

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

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

Release 0.18.0 - September 21st, 2008

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

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

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

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

  OPTIMIZATIONS

Release 0.2.0 - August 8, 2008.

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

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

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

Release 0.1.3 - 07/25/2008

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

Release 0.1.2 - 05/13/2008

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


Release 0.1.1 - 04/11/2008

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

  NEW FEATURES
   HBASE-548   Tool to online single region

Release 0.1.0

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

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

  OPTIMIZATIONS

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

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

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

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

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

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

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

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

  OPTIMIZATIONS

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

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


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

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