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