2 Replies Latest reply on Jul 12, 2010 8:36 AM by brian.stansberry

    Cluster vs. ServerGroup

    brian.stansberry

      Discussion of names.

       

      In the design wiki, we have two terms for a set of homogeneous servers:

       

      • ServerGroup: User defined set of server instances  that will be managed and configured as one.  All members must be at the  same platform version and have the same application(s) and  all their  dependencies.
      • Cluster: Server group with group  communication services configured.

       

      There are a couple things that don't feel right about those terms:

       

      1. ServerGroup is a bit of a neologism. It will be a JBoss-specific term.
      2. Cluster has a lot of meanings besides the narrow definition above. See http://en.wikipedia.org/wiki/Cluster_%28computing%29

       

      Basically, for both terms users are going to have to read our docs fairly carefully to understand what we mean by these terms, and for "cluster" at least they are liable to guess wrong.

       

      In terms of configuration, we are no longer treating a Cluster as a sibling of a ServerGroup. Now it's just a ServerGroup that has the optional "cluster" element configured.

       

      <server-group group-name="main-server-group" profile="something">
             
          <cluster default-multicast-address="230.0.0.4">
              .....
          </cluster>

       

      One possibility is to rename "ServerGroup" to "Cluster" and use something else like "HA Cluster" for the current "Cluster".

       

      Where this breaks down is our current requirement that all Servers belong to a ServerGroup. That's already clunky if a particular Server is the only one of its type. It will be very odd to say that such a server has to belong to a "Cluster". We could extend the "standalone server" notion we've been discussing to a full domain configuration, but that will cause a lot of issues since a server config is meant to be in host.xml, while a "standalone server" element will need to include a lot of domain.xml configuration elements.

       

      Another possibility is to stick with ServerGroup and use "HA Cluster" instead of "Cluster". That's less ambiguous.

        • 1. Re: Cluster vs. ServerGroup
          jfclere

          So the mod_cluster configuration stuff will below to the ServerGroup correct?

          • 2. Re: Cluster vs. ServerGroup
            brian.stansberry

            Since all servers in a ServerGroup would use the same mod_cluster configuration, at a minimum the ServerGroup will have a mapping of a domain level element onto the ServerGroup.

             

            <domain>
            
                <mod_cluster_config name="foo">...</mod_cluster_config>
            
                <server-group name="group1">
                    <mod_cluster ref="foo"/>
                </server-group>
            

             

            The above is just to illustrate what I meant; nothing in this post should be taken as suggested element names etc.

             

            That approach is useful for reducing verbosity cases where the same config may be re-used across multiple server groups.

             

            At a maximum, the entire mod_cluster_config could be a child element of server-group, but that can be verbose if multiple ServerGroups exist that are nearly identical.

             

            If there are just a few things that are likely to change at the ServerGroup level, then an approach is to have the main config at the domain level and then fill in variable pieces at the ServerGroup:

             

            <domain>
            
                <mod_cluster_config name="foo">...</mod_cluster_config>
            
                <server-group name="group1">
                    <mod_cluster ref="foo" some_term_other_than_domain="group1"/>
                </server-group>