On Thu, 2010-02-04 at 14:33 +0530, S G, Roopesh wrote:
> Hi,
> 
>  
> 
>      After going through Corosync architecture, I understand that
> TOTEM srp protocol is used by Corosync for heart beating mechanism.
> But I am trying to understand how the node failure/ token lost is
> notified to the corosync services (which rely on TOTEM for failure
> events) by the TOTEM protocol. Is it via deliver_fn  callback? Or is
> it via the IPC infrastructure?   
> 

When a token is lost, all nodes communicating via totem form a new
configuration.  This is called the "gather" state.  After gather, totem
enters recovery, then operational. 

Once totem enters operational, it delivers a configuration change via
the confchg_fn registered in totemsrp_initialize.  (totemsrp.c:761)

At the top level, this is delivered via app_confchg_fn to the corosync
executive.  (totempg.c:352).

For service engines, these callbacks are registered via
totempg_groups_initialize (main.c:1472).

This registers "confchg_fn" which is defined in main.c to call every
service engine's confchg_fn (main.c:353).

There is also a synchronization service which separately does a
totempg_groups_initialize in sync.c and syncv2.c for delivery of confchg
messages to the synchronization engine.

For applications using cpg, the service/cpg.c's sync_init is called
which provides it with information to notify cpg clients of node status
changes.  This notification occurs via ipc to the client library in
lib/cpg.c

Have a look over that and see if that flow makes a little more sense.

You will probably have more questions after investigating those line
numbers.

Regards
-steve

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

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

Reply via email to