As we spoke about on irc (and a summary of the discussion for others to
follow) I don't have a fundamental problem with changing node ides if a
cluster is taken entirely out of service.  If a cluster is in service
already, and one node is taken down then it's node id is changed, and
then brought back into service, compatibility problems could arise.  I
could never recommend changing a node id in an active cluster, even if
it means taking only one node out of service at a time.

Another way to frame this question is if there is a scenario where the
kernel produces one value, but some (broken) applications expect that
value to be in some format defined in the application differently then
the kernel.

In this scenario, would the kernel people ever accept a patch that
changes the format around for some applications that are consumers of
that value, or would they instead tell the application people to fix
their application?

I believe in every case, any lower level software, such as the kernel,
glibc, or even an executive like corosync sets the data types for the
values passed up the stack and has every motivation to ensure they stay
consistent and are not "hacked" to produce some value that higher level
software for some incorrect reasoning wants just to make life easier on
the applications.  If the applications are broken they should be
repaired.

In a worst case scenario, in which the application cannot fix their data
types to conform to the lower level standards, it is that application's
responsibility to deal with the incompatibility it has created. 

Regards
-steve

On Fri, 2008-08-22 at 12:45 +0200, Andrew Beekhof wrote:
> I found a more consistent point at which to make this change.
> 
> Particularly when the 0..2^31 node id is created here, I find it hard  
> to comprehend
> how this could introduce any compatibility issues.  I see no  
> difference between
> having this patch execute and an admin setting the same value manually  
> in openais.conf
> 
> 
> --- whitetank-svn/exec/totemnet.c     2008-08-13 22:38:15.000000000 +0200
> +++ whitetank-dev/exec/totemnet.c     2008-08-22 10:59:23.000000000 +0200
> @@ -1227,6 +1227,15 @@ int totemnet_initialize (
> 
>       instance->totemnet_poll_handle = poll_handle;
> 
> +     if(instance->totem_config->node_id == 0) {      
> +             int32_t nodeid = 0;
> +             memcpy (&nodeid, instance->totem_interface->bindnet.addr, 
> sizeof  
> (int32_t));
> +             if(nodeid < 0) {
> +                     nodeid = 0 - nodeid;
> +             }
> +             instance->totem_config->node_id = nodeid;
> +     }
> +
>       instance->totem_interface->bindnet.nodeid = instance->totem_config- 
>  >node_id;
> 
>       instance->context = context;
> 

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to