[asterisk-dev] distributed device state: xmpp and res_corosync

Russell Bryant russell at russellbryant.net
Fri Aug 17 08:59:48 CDT 2012


I haven't looked at the XMPP code in a very long time, but I can
answer questions about res_corosync.

On Fri, Aug 17, 2012 at 4:51 AM, Klaus Darilion
<klaus.mailinglists at pernau.at> wrote:
> Corosync: Is the state distribution with corosync reliable or not? What if
> there is packet loss and a single packet is lost? Are there any means to
> detect the loss and re-transmit state changes?

All of that is handled by the totem protocol implemented by corosync.
I know of some very high volume usage of res_corosync and have not
seen any problems like this.

If there is a network problem bad enough that nodes leave the cluster,
res_corosync will handle re-joining the cluster.  When it does, all of
the nodes will dump their state so that everything gets back in sync.

> Lifetime: IIRC res_ais did not published a lifetime for the events. Thus,
> e.g. if a device is "in a call" and the subsequent "idle" message is lost,
> the device stays "in a call" until the next state change (which may not come
> at all).
>
> Does this problem still exists in res_corosynch? What about XMPP? Do
> XMPP-state events have a lifetime. I think it would be good to define event
> lifetimes, at least for "in a call, ringing ..." states.

Correct, the events have no lifetime.  The behavior I discussed above
should ensure that everything stays in sync, though.

> IMO it would be very important to document the state distribution behavior
> in detail.

I do not disagree.  :-)

-- 
Russell Bryant



More information about the asterisk-dev mailing list