This is an automated email from the ASF dual-hosted git repository.

lxia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/helix.wiki.git


The following commit(s) were added to refs/heads/master by this push:
     new 6490a5e  Updated Home (markdown)
6490a5e is described below

commit 6490a5ecafb7fa31f71ba7dbdb9c40db77582216
Author: Lei Xia <[email protected]>
AuthorDate: Wed May 29 15:35:09 2019 -0700

    Updated Home (markdown)
---
 Home.md | 33 ++++++++++++++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

diff --git a/Home.md b/Home.md
index ec46715..3d6d884 100644
--- a/Home.md
+++ b/Home.md
@@ -1 +1,32 @@
-Welcome to the helix wiki!
+# Apache Helix
+
+Apache 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 automates reassignment of resources in the face of node 
failure and recovery, cluster expansion, and reconfiguration.
+
+== What Is Cluster Management?
+To understand Helix, you first need to understand cluster management. A 
distributed system typically runs on multiple nodes for the following reasons:
+
+* scalability
+* fault tolerance
+* load balancing
+
+Each node performs one or more of the primary functions of the cluster, such 
as storing and serving data, producing and consuming data streams, and so on. 
Once configured for your system, Helix acts as the global brain for the system. 
It is designed to make decisions that cannot be made in isolation. Examples of 
such decisions that require global knowledge and coordination:
+
+scheduling of maintainence tasks, such as backups, garbage collection, file 
consolidation, index rebuilds
+repartitioning of data or resources across the cluster informing dependent 
systems of changes so they can react appropriately to cluster changes 
throttling system tasks and changes
+While it is possible to integrate these functions into the distributed system, 
it complicates the code. Helix has abstracted common cluster management tasks, 
enabling the system builder to model the desired behavior with a declarative 
state model, and let Helix manage the coordination. The result is less new code 
to write, and a robust, highly operable system.
+
+== What does Helix provide?
+* Automatic assignment of resources and partitions 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
+* Optional pluggable rebalancing for user-defined assignment of resources and 
partitions
+
+== Why Helix?
+Modeling a distributed system as a state machine with constraints on states 
and transitions has the following benefits:
+
+* Separates cluster management from the core functionality of the system.
+* Allows a quick transformation from a single node system to an operable, 
distributed system.
+* Increases simplicity: system components do not have to manage a global 
cluster. This division of labor makes it easier to build, debug, and maintain 
your system.
\ No newline at end of file

Reply via email to