It gives me great pleasure to announce that the sixth release candidate for the release 1.0.0 (HBase-1.0.0RC5), is available for download at https://dist.apache.org/repos/dist/dev/hbase/hbase-1.0.0RC5/
Maven artifacts are also available in the temporary repository https://repository.apache.org/content/repositories/orgapachehbase-1065 Signed with my code signing key E964B5FF. Can be found here: https://people.apache.org/keys/committer/enis.asc Signed tag in the repository can be found here: https://git-wip-us.apache.org/repos/asf?p=hbase.git;a=tag;h=c4660912e9b46c917a9aba2106be4bf74182a764 HBase 1.0.0 is the next stable release, and the start of "semantic versioned" releases (See [1]). The theme of 1.0.0 release is to become a stable base for future 1.x series of releases. We aim to achieve at least the same level of stability of 0.98 releases. 1.0.0 release contains 202 fixes on top of 0.99.2 release. Together with the previous 0.99.x releases, major changes in 1.0.0 are listed (but not limited to) below. Note that all previous 0.99.x releases are developer preview releases, and will NOT be supported in any form. API Cleanup and changes 1.0.0 introduces new APIs, and deprecates some of commonly-used client side APIs (HTableInterface, HTable and HBaseAdmin). We advise to update your application to use the new style of APIs, since deprecated APIs might be removed in future releases (2.x). See [2] and [3] for an overview of changes. All Client side API's are marked with InterfaceAudience.Public class, indicating that the class/method is an official "client API" for HBase. All 1.x releases are planned to be API compatible for these classes. See [1] for an overview. Master runs a Region Server as well Starting with 1.0.0, the HBase master server and backup master servers will also act as a region server. RPC port and info port for web UI is shared for the master and region server roles. Active master can host regions of defined tables if configured (disabled by default). Backup masters will not host regions. Read availability using timeline consistent region replicas This release contains Phase 1 items for experimental "Read availability using timeline consistent region replicas" feature. A region can be hosted in multiple region servers in read-only mode. One of the replicas for the region will be primary, accepting writes, and other replicas will be sharing the same data files. Read requests can be done against any replica for the region with backup RPCs for high availability with timeline consistency guarantees. More information can be found at HBASE-10070. Online config change and other forward ports from 0.89-fb branch HBASE-12147 forward ported online config change which enables some of the configuration from the server to be reloaded without restarting the region servers. Other notable improvements in 1.0.0 (including previous 0.99.x) are - A new web skin in time for 1.0 (http://hbase.apache.org) - Automatic tuning of global memstore and block cache sizes - Various security, tags and visibility labels improvements - Bucket cache improvements (usability and compressed data blocks) - A new pluggable replication endpoint to plug in to HBase's inter-cluster replication to replicate to a custom data store - A Dockerfile to easily build and run HBase from source - Truncate table command - Region assignment to use hbase:meta table instead of zookeeper for faster region assignment (disabled by default) - Extensive documentation improvements - [HBASE-12511] - namespace permissions - add support from table creation privilege in a namespace 'C' - [HBASE-12568] - Adopt Semantic Versioning and document it in the book - [HBASE-12640] - Add Thrift-over-HTTPS and doAs support for Thrift Server - [HBASE-12651] - Backport HBASE-12559 'Provide LoadBalancer with online configuration capability' to branch-1 - [HBASE-10560] - Per cell TTLs - [HBASE-11997] - CopyTable with bulkload - [HBASE-11990] - Make setting the start and stop row for a specific prefix easier - [HBASE-12220] - Add hedgedReads and hedgedReadWins metrics - [HBASE-12090] - Bytes: more Unsafe, more Faster - [HBASE-12032] - Script to stop regionservers via RPC - [HBASE-11907] - Use the joni byte[] regex engine in place of j.u.regex in RegexStringComparator - [HBASE-11796] - Add client support for atomic checkAndMutate - [HBASE-11804] - Raise default heap size if unspecified - [HBASE-11890] - HBase REST Client is hard coded to http protocol - [HBASE-12126] - Region server coprocessor endpoint - [HBASE-12183] - FuzzyRowFilter doesn't support reverse scans - [HBASE-12075] - Preemptive Fast Fail - [HBASE-12354] - Update dependencies in time for 1.0 release - [HBASE-12363] - Improve how KEEP_DELETED_CELLS works with MIN_VERSIONS - [HBASE-12434] - Add a command to compact all the regions in a regionserver - [HBASE-8707] - Add LongComparator for filter - [HBASE-12286] - [shell] Add server/cluster online load of configuration changes - [HBASE-12361] - Show data locality of region in table page - [HBASE-12496] - A blockedRequestsCount metric - [HBASE-12730] - Backport HBASE-5162 (Basic client pushback mechanism) to branch-1 - [HBASE-12731] - Heap occupancy based client pushback - [HBASE-12728] - buffered writes substantially less useful after removal of HTablePool - [HBASE-5699] - Run with > 1 WAL in HRegionServer - Various fixes to REST server - Internal refactoring for abstracting away zookeeper usage - Better support for Cell interface internally in read and write paths for better performance and flexibility - Combining internal mvcc and seqId infrastructure - Ring buffer based WAL improvements - Switch to using new style of client APIs internally (in a lot of places) - Improvements in visibility labels - Perf improvements - Numerous improvements in other areas and bug fixes. 1.0.0 release has these changes in default behavior (see [4]) - Zookeeper 3.4.x is required - Hadoop-2.x is required - JDK-1.7 is required - Default ports have changed from 600XX range into out of ephemeral 160XX range. - Hfile version 3 has been enabled by default. - Slab cache has been removed (use bucket cache instead) - Default heap for region servers (and master) is changed from 1GB to the jdk's default. On most platforms, it will default to 1/4 of physical memory - Some client facing APIs (HTableInterface, etc) has been deprecated and replaced. - Custom Filter implementations should switch to using the new recommended APIs. - Some authorization permissions (especially regarding namespaces) have been changed (HBASE-12511, HBASE-8015) - Mapred package and classes under there has been un-deprecated. - Two new modules (jar files): hbase-annotations and hbase-rest. - HTrace dependency is moved to the Apache artifacts ( https://htrace.incubator.apache.org/) - Various updates to dependency versions Full list of the issues can be found at: - 1.0.0 issues : https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310753&version=12325852 - 0.99.2 issues : https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310753&version=12325675 - 0.99.1 issues : https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310753&version=12328551 - 0.99.0 issues : https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310753&version=12328822 Compatibility ------------- Source Compatibility: Client side code in HBase-1.0.0 is (mostly) source compatible with earlier versions. Some minor API changes might be needed from the client side. Wire Compatibility: HBase-1.0.0 release is wire compatible with 0.98.x releases. Clients and servers running in different versions as long as new features are not used should be possible. A rolling upgrade from 0.98.x clusters to 1.0.0 is supported as well. 1.0.0 introduces a new file format (hfile v3) that is enabled by default that 0.96.x code cannot read. Thus, rolling upgrade from 0.96 directly to 1.0.0 is not supported. 1.0.0 is NOT wire compatible with earlier releases (0.94, etc). Binary Compatibility: Binary compatibility at the Java API layer with earlier versions (0.98.x, 0.96.x and 0.94.x) is not supported. You may have to recompile your client code and any server side code (coprocessors, filters etc) referring to hbase jars. Upgrading --------- See [4] for upgrade instructions and extended discussion on the changes. >From 0.98.x : Upgrade from 0.98.x in regular upgrade or rolling upgrade fashion is supported. >From 0.96.x : Upgrade from 0.96.x is supported with a shutdown and restart of the cluster. >From 0.94.x : Upgrade from 0.94.x is supported similar to upgrade from 0.94 -> 0.96. The upgrade script should be run to rewrite cluster level metadata. See [5] for details. Supported Hadoop versions ------------------------- 1.0.0 release drops support for Hadoop-1.x releases. Only Hadoop-2.x releases are supported. Hadoop-2.4.x, Hadoop-2.5.x and Hadoop-2.6.x releases are the most tested hadoop releases and we recommend running with those versions (or later versions). Earlier Hadoop-2 based releases (hadoop-2.2.x and 2.3.x) are not tested to the full extend. More information can be found here: https://hbase.apache.org/book/configuration.html#hadoop Supported Java versions ------------------------- 1.0.0 release drops support for JDK6. Only JDK7 is supported. JDK8 support is experimental. More information can be found here: https://hbase.apache.org/book/configuration.html#java Voting ------ Please try to test and vote on this release by Feb 19 2015 11:59PM PDT. We will have a 5 day voting period because this is the sixth RC. Please try to spend some time for testing this important release. [] +1 Release the artifacts as 1.0.0 [] -1 DO NOT release the artifacts as 1.0.0, because... Gratitute --------- Last but not least, 1.0.0 release has been in a long time making with contributions from a very large group of awesome people and hard work from committers and contributors. We would like to extend our thanks to everybody who worked on this release or contributed to HBase over the years. References ---------- [1] https://hbase.apache.org/book/upgrading.html#hbase.versioning [2] http://www.slideshare.net/xefyr/apache-hbase-10-release [3] http://s.apache.org/hbase-1.0-api [4] https://hbase.apache.org/book/upgrade1.0.html#upgrade1.0.changes [5] https://hbase.apache.org/book/upgrade1.0.html#upgrade1.0.from.0.94 Enis