OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

amqp message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [amqp] [management] Proposal for event notifications (initial outline)


On Mon, 2015-02-16 at 20:05 +0100, Jakub.Scholz@deutsche-boerse.com
wrote:
> Hi Alan,
> 
> If I understand it correctly, this basically introduces two distinct
> implementations of the events - I don't think that's a good idea. 

Agreed, I'll drop the "with names" format. It's very inefficient and not
necessary if we have GET-EVENTS.

>  Also,
> your compact representation allows every link to define its own list of
> attributes. So in theory you can have N links, each with different
> attributeNames defined and you will have to generate and publish the events
> N times in N different formats.
> 
> What about having just one implementation which stands somewhere in the
> middle:
> 1) GET-EVENTS returns the list of attributes for every event type
> 2) The broadcasted events will have only a list of values in the same order
> as was the order of attributes in the GET-EVENTS response - so we save the
> attribute names.
> 
> This will not be as effective on the wire, but it would allow to have for
> every event only one message regardless the number of subscribers.

Not sure about this. In unicast networks I expect the in-memory
construction of the messages will be less important than the network
bandwidth cost of sending them (depends on hardware of course.) Allowing
clients to select a subset of attributes may reduce bandwidth more than
sending the entire attribute set on each link each, even if it saves
some in-memory work to construct multiple messages.

In a broadcast or multi-cast network of course the trade-off is
different but I think the AMQP protocol right now really assumes unicast
network connections, and would need some changes or extensions to handle
multicast.

> Thanks & Regards
> Jakub
> 
> <amqp@lists.oasis-open.org> wrote on 16/02/2015 17:24:10:
> 
> > From: Alan Conway <aconway@redhat.com>
> > To: "John O'Hara" <john@rjohara.com>,
> > Cc: amqp@lists.oasis-open.org, "Arrott, Matt"
> > <marrott@ucsd.edu>, "Godfrey, Robert X"
> > <robert.godfrey@jpmorgan.com>
> > Date: 16/02/2015 17:24
> > Subject: Re: [amqp] [management] Proposal for event
> > notifications (initial outline)
> > Sent by: <amqp@lists.oasis-open.org>
> >
> >
> > I have a couple of thoughts for extending the event notification
> > proposal, the original is below for reference. I'll put them all
> > together if after any feedback.
> >
> > *Event meta-data*: Add a GET-EVENTS operation to the
> > "self" entity (like
> > existing GET-ATTRIBUTES) to get a map of event-type name
> > to attribute
> > name list.
> >
> >
> > *Compact event representation*: The current proposal is
> > very fat on the
> > wire - attribute names are repeated in every notification
> > and there's no
> > way to select a subset of attributes. I suggest the
> > following addition
> > inspired by the existing QUERY response:
> >
> > When subscribing for events the link attach properties MAY
> > contain the
> > key `attributeNames` with a list of attribute names. If so, event
> > messages are tested against the filter as before, but are sent in a
> > compact form. Attribute names/values are not sent in the application
> > properties, instead the body contains a list of attribute
> > values in the
> > same order as `attributeNames`. Missing attributes are
> > represented by
> > NULL values.
> >
> > Without `attributeNames` you get the names and values. This is less
> > efficient but may be easier to work with for dynamic or exploratory
> > tools that can interact with many different implementations. With
> > `attributeNames` you get just what you ask for with no
> > overhead. This is
> > better for tools that know what they want, and in heavy
> > traffic systems
> > where the overhead of attribute names is excessive.
> >
> >
> > *Standard event types*: We could probably generate a
> > reasonable set of
> > standard event types directly from the performatives in
> > the AMQP spec.
> > Every performative (link-open, connection-open,
> > disposition etc.) does
> > signify and event that might be of interest to a
> > management console. Is
> > it too early to think about standardizing this?  Are there
> > any pitfalls?
> >
> >
> >
> > Original proposal
> > -----------------
> >
> > # AMQP Management Event Notification
> >
> > Management clients often need to know when the state of a
> > managed entity
> > has changed.  This can be for monitoring or logging purposes, or to
> > react when something becomes ready for use.
> >
> > Polling the management agent for changes with READ or
> > QUERY operations
> > is inefficient. Clients either poll too often, which overloads the
> > agent, or too seldom which causes needless delays in the system.
> >
> > Event notification allows management clients to subscribe
> > for continuous
> > notification of selected events as soon as the agent
> > becomes aware of
> > them.
> >
> > ## Event Types
> >
> > An Event Type is a named set of attributes. The name is a
> > case-sensitive
> > string. Implementers MAY define their own Event Types which MUST be
> > named using a reverse domain name prefix owned by the
> > implementer, e.g.
> > "com.example.broker.queueDeleted".
> >
> > Every Event Type MUST have an attribute "eventType" which
> > carries the
> > Event Type name as a string. Implementers may define
> > additional required
> > or optional attributes for their Event Types.
> >
> > Event Types do not have operations, annotations or extensions. No
> > standard event types are defined by this specification.
> >
> > ## Notification Messages
> >
> > A notification message contains a single event. The
> > message subject MUST
> > be the Event Type name.  The application-properties MUST include all
> > required attributes for that Event Type, in particular
> > "eventType" with
> > the Event Type name.  They MAY include any optional
> > attributes for the
> > Event Type.
> >
> > ## Subscribing for Event Notification
> >
> > To subscribe for notification messages, a client creates a
> > link from the
> > address "$management.events" with a *filter* (TODO xref)
> > describing the
> > events that it is interested in.  Closing the link ends the
> > subscription.
> >
> > The filtering capabilities depend on the filters provided
> > by the agent.
> > An agent SHOULD provide the APACHE.ORG:SELECTOR described in
> > <http://www.amqp.org/specification/1.0/filters>.  This
> > allows clients to
> > filter on arbitrary SQL-like expressions over all the
> > attributes of the
> > event including "eventType".
> >
> > Since the event type MUST also be included in the message
> > subject, even
> > simple filters (for example the legacy filters described in
> > <http://www.amqp.org/specification/1.0/filters>) MAY be
> > used to filter
> > by event type.
> >
> > Any filter that can operate on the subject or application-
> > properties of
> > a message will be able to work with event notification
> > messages, but for
> > flexibility and interoperability implementers SHOULD provide
> > APACHE.ORG:SELECTOR.
> >
> > ----
> >
> > # Notes, not part of the spec:
> >
> > Needs cross references to relevant sections on filters etc.
> >
> > This design does not allow multiple events to be batched in a single
> > message. IMO an implementation should batch messages at
> > the transport
> > (into TCP packets) NOT batch events into a message.
> > Batching in messages
> > complicates the client, defeats transport level batching (by forcing
> > "fat" messages on the transport) and rules out (or badly
> > complicates)
> > the use of AMQP filters to select events.
> >
> > I considered an alternative design where the client sends
> > a subscription
> > request with a reply-to address and the agent then sends
> > notification
> > messages to the reply-to address.
> >
> > I rejected that design for the following reasons:
> >
> > 1. It is impossible in general to tell when such a
> > subscriber goes away
> > if it crashes or fails to send an explicit unsubscribe message.
> > Implementations must already deal with closing links when clients
> > disconnect or heartbeat out so using links solves this
> > problem. Even in
> > an indirect topology (like link-routed Qpid dispatch networks) the
> > routers must proxy link closure to be AMQP-correct.
> >
> > 2. We should use AMQP standard features to solve AMQP problems, not
> > re-invent the wheel in a form only useful for management.
> > Filters/selectors were designed for exactly this purpose
> > we should make
> > them work for us.
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe from this mail list, you must leave the
> > OASIS TC that
> > generates this mail.  Follow this link to all your TCs in OASIS at:
> > https://www.oasis-open.org/apps/org/workgroup/portal/
> > my_workgroups.php
> >
> 
> 
> ----------------------------------------------------------------------------
> 
> Deutsche Börse Services s.r.o.
> Managing Directors/Geschäftsführung:
> Michael Gassmann, Mats Andersson.
> Limited liability company with registered office at
> Sokolovská 662/136B, CZ-186 00 Prague 8
> recorded in the Commercial Register IC: 275 77 015.
> Maintained by the city court in Prague,
> Sec. C, File No. 116874.
> 
> -----------------------------------------
> Diese E-Mail enthaelt vertrauliche oder rechtlich geschuetzte Informationen.
> Wenn Sie nicht der beabsichtigte Empfaenger sind, informieren Sie bitte
> sofort den Absender und loeschen Sie diese E-Mail. Das unbefugte Kopieren
> dieser E-Mail oder die unbefugte Weitergabe der enthaltenen Informationen
> ist nicht gestattet.
> 
> The information contained in this message is confidential or protected by
> law. If you are not the intended recipient, please contact the sender and
> delete this message. Any unauthorised copying of this message or
> unauthorised distribution of the information contained herein is prohibited.
> 
> Legally required information for business correspondence/
> Gesetzliche Pflichtangaben fuer Geschaeftskorrespondenz:
> http://deutsche-boerse.com/letterhead
> 




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]