You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2020/11/24 03:53:47 UTC

[kudu] branch master updated: [doc] note on having at least 3 locations for better HA

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

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new 89bac59  [doc] note on having at least 3 locations for better HA
89bac59 is described below

commit 89bac5989e3582afb791cedf494443a7c934dade
Author: Alexey Serbin <al...@apache.org>
AuthorDate: Fri Sep 25 12:31:07 2020 -0700

    [doc] note on having at least 3 locations for better HA
    
    This patch adds a note on defining at least three locations to increase
    the availability of a Kudu cluster when location awareness is enabled.
    Sure, it's obvious if understanding how the placement policy works,
    but for the first-time readers it might be a good heads-up.
    
    Change-Id: Ib0d8d2e7d917205c62aca567eb2b2db540f7857e
    Reviewed-on: http://gerrit.cloudera.org:8080/16514
    Tested-by: Kudu Jenkins
    Reviewed-by: Greg Solovyev <gs...@cloudera.com>
    Reviewed-by: Andrew Wong <aw...@cloudera.com>
---
 docs/administration.adoc | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/docs/administration.adoc b/docs/administration.adoc
index 9ad27a8..ec6d3cd 100644
--- a/docs/administration.adoc
+++ b/docs/administration.adoc
@@ -219,12 +219,14 @@ single node failure. However, clusters can be vulnerable to correlated failures
 of multiple nodes. For example, all of the physical hosts on the same rack in
 a datacenter may become unavailable simultaneously if the top-of-rack switch
 fails. Kudu's rack awareness feature provides protection from some kinds of
-correlated failures, like the failure of a single rack in a datacenter.
-
-The first element of Kudu's rack awareness feature is location assignment. When
-a tablet server or client registers with a master, the master assigns it a
-location. A location is a `/`-separated string that begins with a `/` and where
-each `/`-separated component consists of characters from the set
+correlated failures, like the failure of a whole rack in a datacenter. Rack
+awareness increases the availability of a Kudu cluster if there are at least
+three different _locations_ defined in the cluster.
+
+The first element of Kudu's rack awareness feature is _location assignment_.
+When a tablet server or client registers with a master, the master assigns it a
+_location_. A location is a `/`-separated string that begins with a `/` and
+where each `/`-separated component consists of characters from the set
 `[a-zA-Z0-9_-.]`. For example, `/dc-0/rack-09` is a valid location, while
 `rack-04` and `/rack=1` are not valid locations. Thus location strings resemble
 absolute UNIX file paths where characters in directory and file names are
@@ -236,7 +238,7 @@ argument, the IP address or hostname of a tablet server or client, and return
 the location for the tablet server or client. Make sure that all Kudu masters
 are using the same location mapping command.
 
-The second element of Kudu's rack awareness feature is the placement policy,
+The second element of Kudu's rack awareness feature is the _placement policy_,
 which is
 
   Do not place a majority of replicas of a tablet on tablet servers in the same location.
@@ -252,6 +254,11 @@ location `/L0`. As another example, if a tablet has replicas on tablet servers
 `A`, `C`, and `E`, and then `C` fails, the replacement replica must be placed on
 `D` in order to comply with the placement policy.
 
+It's necessary to have at least three locations defined in a Kudu cluster to
+improve its high availability with the location awareness feature. If there are
+only two or just one location defined in a Kudu cluster, any tablet will
+inevitably have a majority of its replicas placed in a single location.
+
 In the case where it is impossible to place replicas in a way that complies with
 the placement policy, Kudu will violate the policy and place a replica anyway.
 For example, using the setup described in the previous paragraph, if a tablet
@@ -266,8 +273,8 @@ moved to comply with the placement policy. See
 <<rebalancer_tool_with_rack_awareness,running the tablet rebalancing tool on a rack-aware cluster>>
 for more information.
 
-The third and final element of Kudu's rack awareness feature is the use of
-client locations to find "nearby" servers. As mentioned, the masters also
+The third and final element of Kudu's rack awareness feature is the _use of
+client locations to find "nearby" servers_. As mentioned, the masters also
 assign a location to clients when they connect to the cluster. The client
 (whether Java, {cpp}, or Python) uses its own location and the locations of
 tablet servers in the cluster to prefer "nearby" replicas when scanning in