[Sis-ams] Predictability concerns with AMS, and other questionstoo
Marek Prochazka
Marek.Prochazka at scisys.co.uk
Mon Jan 30 10:39:34 EST 2006
Hi Scott,
> Actually the application can indeed have knowledge of which
> nodes are currently subscribed, because subscription
> indications are (optionally) passed up to the application by
> AMS whenever subscriptions are detected. But the application
> isn't required to ask for these indications or to remember
> them; publication works the same way in any case.
O.K., I see.
> Again, nodes don't need to exchange heartbeats among
> themselves to get this information: AMS knows about it anyway
> (because of the heartbeats exchanged between nodes and
> registrars), and the registration and unregistration (whether
> intentional or not) of nodes is always
> (optionally) announced to the application by AMS whenever
> these events are detected. And, again, the application isn't
> required to ask for these indications or to remember them,
> but is free to do so if it likes.
Right, what I had in mind was the heartbeats exchanged with the
registrar and available to AMS.
> When a node publishes a message, the message is sent to N
> destination nodes where 0 <= N <= (cardinality of the message
> space). Each message transmission utilizes a transport
> service that is implicitly chosen for that particular
> transmission based on the service mode specified by the
> subscriber. The only possible guarantees on delivery and
> performance for each individual transmission are those
> provided by the underlying transport service. If, for
I understand that you rely on the underlying service. But still, the AMS
doesn't give the user any chance to reason about delivery. In other
words, being implemented on top of a transport service, the AMS will get
exact failure codes if they are available, but there is no way to get
them from AMS. Or is it?
> The key concept here is that AMS by design gives the
> application a great deal of control over - and,
> correspondingly, responsibility for - message exchange
> performance. Application developers still have to give some
> thought to exactly what is important to them, because nothing
> comes for free - retransmission increases the chance of
> delivery but increases latency, real-time performance is only
> possible in networks of limited scope, bandwidth reservation
> can degrade network performance, and so on
> - and AMS declines to make all these design trade-offs in
> advance and lock all developers into those decisions.
>
> Summing up: AMS is no substitute for engineering. There's no
> magic here.
I didn't ask to get something for free. We consider AMS to be used for
our project and we like the publish/subscribe model and the support for
priorities. So far we have been using MTS and we think that AMS might be
a better choice. (Recently I read something about the OMG Data
Distribution Service and it seems very similar to AMS either.)
As a part of the project, we will have to implement a distributed
consensus algorithm on top of MTS or AMS. The more the
communication/transport protocol is reliable (bounded message loss,
bounded delays, etc.), the easier is to design and write a solution that
solves the consensus problem.
It seems to me that there is basically no delivery guarantee provided by
either MTS or AMS.
Marek
More information about the Sis-ams
mailing list