[Openais] Re: [saf-open] Open channels, retained events, cluster partition merges.

Steven Dake sdake at mvista.com
Wed Feb 9 17:43:48 PST 2005


Mark
in 3.1.2 Event Channels - "An event channel enables multiple publishers
to communicate with multiple subscribers.  It is global to a cluster and
is identified by a unique name".  

As a result, I don't think its possible to have two seperate channels
with the same identifier from two previously merged partitions join one
partition as two seperate channels.  In this merge case, I believe the
merge should result in one fully merged channel.

Ideally we don't want to exchange retained events that of which each
processor is already aware.  One optimization would be to communicate a
list of the event identifiers (perhaps with ring ids associated with
them) instead of exchanging the full event.

The reopen wording around line 26 of page 36 provides the scenario I
think your question involves needs some work.  Here is the scenario:
processor ( 1 2 3 4 ) with channel Z open 
(1, 2) split from (3, 4)
(12) unlinks channel Z
(1) creates channel Z (2nd instance)
(3, 4) doesn't unlink 


I believe in this scneario, (3, 4) should be unlinked.  For this to
happen, (1, 2) would have to remember it had Z (with some other unique
identifier, perhaps the configuration identifier under which the channel
was created) so someone in (1, 2) could send an unlink command to (3, 4)
during synchronization.  Part of this command would have to be the
configuration under which it was issued to ensure an unlink doesn't come
for a later configuration because of queueing in totemsrp.

Then if:

(3, 4) close their channels
(3, 4) is then unlinked because of the unlink command sent by the
representative of (1, 2)
if (3, 4) open a channel Z, they open the 2nd instance

The configuration identifier would be very valuable in uniquely
identifing a channel instance.

Would you like the config id sent in the configuration change?  I think
this makes alot of sense.  We have talked about this before and I
suspect it will be necessary for checkpoints.

I hope my ramblings have been of some use:)

-steve



On Wed, 2005-02-09 at 12:31, Mark Haverkamp wrote:
> I'm looking at what to do with retained events and open channels when
> two cluster partitions merge.  One idea is to merge open channels of the
> same name and each partition exchange its retained events with all nodes
> in the newly formed cluster.  Any applications talking on a given
> channel would see events from all nodes sending on that channel
> regardless of which partition the node came from originally.  
> 
> But given the description of the unlink command (where there can
> essentially be opens of a given channel name that don't exchange
> events), there could be another possibility.  One could treat the open
> channels of each of the merged partitions as separate channels that
> could continue to talk to each other, but not to nodes from the other
> partition.  Then there is a problem of which channel is selected when
> another node opens the channel.  Which version would it join?
> 
> If anyone has knowledge of what the intent of retained events and being
> able to unlink and re-create an event channel that has the same name but
> is really a separate channel (i.e. unlink then open/create), it may be
> helpful in figuring out what the right thing to do is in this case.
> 
> Thanks,
> Mark.




More information about the Openais mailing list