hbase-0.96.0 is now available for download [0].

Apache HBase is a scalable, distributed data store that runs atop Apache Hadoop.

The hbase-0.96.0 release has been more than a year in the making and supplants our long-running 0.94.x series of releases.  We encourage users upgrade.

More than 2k issues [1][2][3][4] are attributed to this version (counting fixes done against this and the preview 0.95.x developer series of releases). [7] is the total list of 0.96.0 changes.  1500+ of these changes are in 0.96.0 alone; i.e. they have not been backported.  At the end of this note is a sampling of some notable fixes.

High-level, the big themes driving this release have been improved stability, operability, scaling fixes, and making it so we are in a situation where we are free to evolve going forward while all the time maintaining forward and backward compatibility. A bunch of work has been done to improve Mean Time To Recovery on server and node crash. Everywhere HBase persists has been moved to protobufs [8] including what we write across the wire RPC'ing. We have a new balancer, call tracing, namespaces, revamped metrics, hardened replication and assignment, client-side types and mountains more of new utility and improvements.

hbase-0.96.0 comes in two flavors; a build that includes and runs on hadoop-1.x and another for hadoop-2.x. You must chose the hbase that suits yourhadoop context. You will need to restart your cluster on deploy. On restart, HBase will run a few migration tasks that will complete in seconds, and off you go again. hbase-0.94.x clients will not be able to talk to a 0.96.x cluster. See '3. Upgrading' [5] section in the reference guide for notes on upgrading and section '3.2. Upgrading from 0.94.x to 0.96.x' [6] in particular. Downstream projects should notice very minor -- if any -- changes in API.

Thanks to legion who contributed to this release.

At your service,
The HBase dev team

This release is dedicated to Shaneal Manek, HBase contributor.

0. http://www.apache.org/dyn/closer.cgi/hbase/
1. 0.96.0 http://goo.gl/yp74gU
2. 0.95.2 340 issues http://goo.gl/4djjE9
3. 0.95.1 265 issues http://goo.gl/TcdckW
4. 0.95.0 1263 issues http://goo.gl/Iqcx2i
5. http://hbase.apache.org/book.html#upgrading
6. http://hbase.apache.org/book.html#upgrade0.96
7. http://goo.gl/NKoDqp
8. https://code.google.com/p/protobuf/ 


SAMPLE FROM RELEASE NOTES

HBASE-7331 HBASE-6096 Add access control for region open and close, row locking, and stopping the regionserver
HBASE-7678 HBASE-7667 make storefile management pluggable, together with compaction
HBASE-8015 Support for Namespaces
HBASE-5335 Dynamic Schema Configurations
HBASE-5939 Add an autorestart option in the start scripts
HBASE-2214 Do HBASE-1996 -- setting size to return in scan rather than count of rows -- properly
HBASE-9505 Enable replication by default
HBASE-8766 HBASE-6814 [WINDOWS] bin/hbase.cmd zkcli is broken
HBASE-4657 Improve the efficiency of our MR jobs with a few configurations
HBASE-6659 Port HBASE-6508 Filter out edits at log split time
HBASE-6055 Offline Snapshots in HBase 0.96
HBASE-7567 [replication] Create an interface for replication peers
HBASE-5305 Improve cross-version compatibility & upgradeability
HBASE-9152 Not able to find HMaster and HRegionServer processes with grep by process name on ps result because of large classpath as argument.
HBASE-8778 Region assigments scan table directory making them slow for huge tables
HBASE-7721 Atomic multi-row mutations in META
HBASE-7007 [MTTR] Study assigns to see if we can make them faster still
HBASE-7845 optimize hfile index key
HBASE-7533 HBASE-7898 Write an RPC Specification for 0.96
HBASE-6553 Remove Avro Gateway
HBASE-8505 References to split daughters should not be deleted separately from parent META entry
HBASE-50   Snapshot of table
HBASE-8214 Remove proxy and engine, rely directly on pb generated Service
HBASE-5844 Delete the region servers znode after a regions server crash
HBASE-7315 HBASE-7263 Remove support for client-side RowLocks
HBASE-6135 Style the Web UI to use Twitter's Bootstrap.
HBASE-4676 Prefix Compression - Trie data block encoding
HBASE-6295 Possible performance improvement in client batch operations: presplit and send in background
HBASE-4403 Adopt interface stability/audience classifications from Hadoop
HBASE-7008 Set scanner caching to a better default, disable Nagles
HBASE-7942 HBASE-4755 Make use of the plumbing in HBASE-7932 to provide location hints when region files are created
HBASE-7835 HBASE-7006 Implementation of the log splitting without creating intermediate files
HBASE-8334 Enable essential column family support by default
HBASE-6849 Make StochasticLoadBalancer the default
HBASE-6066 HBASE-6922 some low hanging read path improvement ideas
HBASE-5074 support checksums in HBase block cache
HBASE-7351 Periodic health check chore
HBASE-5887 Make TestAcidGuarantees usable for system testing.
HBASE-6783 Make read short circuit the default
HBASE-9529 HBASE-9495 Audit of hbase-client @InterfaceAudience.Public apis
HBASE-6435 Reading WAL files after a recovery leads to time lost in HDFS timeouts when using dead datanodes
HBASE-6206 HBASE-6182 Large tests fail with jdk1.7
HBASE-9208 ReplicationLogCleaner slow at large scale
HBASE-5533 Add more metrics to HBase
HBASE-7306 HBASE-781 [shell] Count shell command to return ruby bindable value.
HBASE-7110 refactor the compaction selection and config code similarly to 0.89-fb changes
HBASE-7603 HBASE-7519 refactor storefile management in HStore in order to support things like LevelDB-style compactions
HBASE-8693 HBASE-8089 DataType: provide extensible type API
HBASE-7932 HBASE-4755 Do the necessary plumbing for the region locations in META table and send the info to the RegionServers
HBASE-6241 HBASE-6201 HBaseCluster interface for interacting with the cluster from system tests
HBASE-8219 Align Offline Merge with Online Merge
HBASE-9523 HBASE-9495 Audit of hbase-common @InterfaceAudience.Public apis.
HBASE-8813 Fix time b/w recoverLease invocations from HBASE 8449
HBASE-7290 Online snapshots
HBASE-8450 Update hbase-default.xml and general recommendations to better suit current hw, h2, experience, etc.
HBASE-8201 HBASE-8089 OrderedBytes: an ordered encoding strategy
HBASE-8877 Reentrant row locks
HBASE-4393 Implement a canary monitoring program
HBASE-4050 Update HBase metrics framework to metrics2 framework
HBASE-4391 Add ability to start RS as root and call mlockall
HBASE-5924 In the client code, don't wait for all the requests to be executed before resubmitting a request in error.
HBASE-7305 ZK based Read/Write locks for table operations
HBASE-5705 HBASE-5305 Introduce Protocol Buffer RPC engine
HBASE-5838 Add an LZ4 compression option to HFile
HBASE-7404 Bucket Cache:A solution about CMS,Heap Fragment and Big Cache on HBASE
HBASE-7590 Add a costless notifications mechanism from master to regionservers & clients
HBASE-9203 Secondary index support through coprocessors
HBASE-9121 Update HTrace to 2.00 and add new example usage