 -----
 Release Notes for Apache Helix 0.6.8
 -----

~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements.  See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership.  The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License.  You may obtain a copy of the License at
~~
~~   http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied.  See the License for the
~~ specific language governing permissions and limitations
~~ under the License.

~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/guides/mini/guide-apt-format.html

Release Notes for Apache Helix 0.6.8

  The Apache Helix team would like to announce the release of Apache Helix 0.6.8.

  This is the eleventh release under the Apache umbrella, and the seventh as a top-level project.

  Helix is a generic cluster management framework used for the automatic management of partitioned, replicated and distributed resources hosted on a cluster of nodes. Helix provides the following features:

  * Automatic assignment of resource/partition to nodes

  * Node failure detection and recovery

  * Dynamic addition of Resources

  * Dynamic addition of nodes to the cluster

  * Pluggable distributed state machine to manage the state of a resource via state transitions

  * Automatic load balancing and throttling of transitions

[]

* Detailed Changes

** Feature

    * [Helix-656] Support customize batch state transition thread pool.

    * Support cancel tasks with synchronized check task status.

    * Add support of setting/updating Cluster/Resource/Instance configs in ConfigAccessor.

    * Add cluster-level and resource-level config option to allow disable delayed rebalance of entire cluster or individual resource.

    * New DelayedAutoRebalancer featured with delayed partition movements during rebalancing.

    * Add support for flexible hirerachy representation of a cluster topology.

    * Add StrictMatchExternalViewVerifier that verifies whether the ExternalViews of given resources (or all resources in the cluster) match exactly as its ideal mapping (in idealstate).

    * Add Multi-round CRUSH rebalance strategy.

    * Add option to allow persisting best possible partition assignment in IdealState for semi-auto and full-auto modes.

    * Support of client's customized threadpool for state-transition message handling.

    * Support delaying jobs schedule with configurable delay time and start time


** Bug

    * [HELIX-657] Fix unexpected idealstate overwrite when persist assignment is on.

    * [HELIX-631] Fix AutoRebalanceStrategy replica not assigned.

    * [HELIX-653] Fix enable/disable partition in instances for resource specific.

    * Make map in NotificationContext synchronized.

    * Fix bug in AutoRebalanceStrategy to try to assign orphan replicas to its preferred nodes instead of random nodes.

    * Fix a bug in BestPossibleExternalViewVerifier.

    * Fix BestPossibleExternalViewVerifier toString NPE.

    * Do not set MaxPartitionPerNode in IdealState if it is not greater than 0.


** Improvement

    * [HELIX-660] Configurable operation timeout for Helix ZKClient.

    * Allow user to enable persisting preference list and best possible state map into IdealState in full-auto mode.

    * Expose Callbacks that can let async operation of ZkClient function.

    * Creating a separate threadpool to handle batchMessages.

    * Auto compress ZNode that are greater than 1MB.

    * Ignore instances with no instance configuration.

    * Avoid moving partitions unnecessarily when auto-rebalancing using default AutoRebalanceStrategy.

    * Move all options from IdealState to ResourceConfig, add Bulder for building ResourceConfig, and a new RebalanceConfig to hold all rebalance options for a resource.

    * Persist controller leader change history with timestamp for each leader controller.

    * Persist participant's offline timestamp in ParticipantHistory.

    * Persist session change history with timestamp for each participant.

    * Make synchronized for AsyncCallback.startTimer to avoid race condition.


[]

Cheers,
--
The Apache Helix Team
