CVS update: JGroups/doc/manual/en/modules advanced.xml
"Bela Ban" <[email protected]> Thu, 30 Sep 2010 09:33:56 +0000
| Newsgroups | gmane.comp.java.javagroups.cvs |
|---|---|
| Message-ID | <[email protected]> |
User: belaban
Date: 10/09/30 09:33:56
Modified: doc/manual/en/modules advanced.xml
Log:
added section on large clusters
Revision Changes Path
1.36 +48 -0 JGroups/doc/manual/en/modules/advanced.xml
Index: advanced.xml
===================================================================
RCS file: /cvsroot/javagroups/JGroups/doc/manual/en/modules/advanced.xml,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- advanced.xml 30 Sep 2010 07:51:50 -0000 1.35
+++ advanced.xml 30 Sep 2010 09:33:56 -0000 1.36
@@ -1525,5 +1525,53 @@
This section is a collection of best practices and tips and tricks for running large clusters on JGroups.
By large clusters, we mean several hundred nodes in a cluster.
</para>
+
+ <section>
+ <title>Reducing chattiness</title>
+ <para>
+ When we have a chatty protocol, scaling to a large number of nodes might be a problem: too many messages
+ are sent and - because they are generated in addition to the regular traffic - this can have a
+ negative impact on the cluster. A possible impact is that more of the regular messages are dropped, and
+ have to be retransmitted, which impacts performance. Or heartbeats are dropped, leading to false
+ suspicions. So while the negative effects of chatty protocols may not be seen in small clusters, they
+ <emphasis>will</emphasis> be seen in large clusters !
+ </para>
+
+ <section>
+ <title>Discovery</title>
+ <para>
+ A discovery protocol (e.g. PING, TCPPING, MPING etc) is run at startup, to discover the initial
+ membership, and periodically by the merge protocol, to detect partitioned subclusters.
+ </para>
+ <para>
+ When we send a multicast discovery request to a large cluster, every node in the cluster might
+ possibly reply with a discovery response sent back to the sender. So, in a cluster of 300 nodes,
+ the discovery requester might be up to 299 discovery responses ! Even worse, because num_ping_requests
+ in Discovery is by default set to 2, so we're sending 2 discovery requests, we might receive up to
+ num_ping_requests * (N-1) discovery responses, even though we might be able to find out the
+ coordinator after a few responses already !
+ </para>
+ <para>
+ To reduce the large number of responses, we can set a max_rank property: the value defines which
+ members are going to send a discovery response. The rank is the index of a member in a cluster: in
+ {A,B,C,D,E}, A's index is 1, B's index is 2 and so on. A max_rank of 3 would trigger discovery
+ responses from only A, B and C, but not from D or E.
+ </para>
+ <para>
+ We highly recommend setting max_rank in large clusters.
+ </para>
+ <para>
+ This functionality was implemented in https://jira.jboss.org/browse/JGRP-1181.
+ </para>
+ </section>
+ <section>
+ <title>Failure detection protocols</title>
+ <para>
+
+ </para>
+ </section>
+
+ </section>
+
</section>
</chapter>
\ No newline at end of file
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev