CVS log for specs/event/Event.api

(logo)

Help

(back) Up to [OpenCF] / specs / event

Request diff between arbitrary revisions


Default branch: MAIN
Bookmark a link to: HEAD / (download)

Revision 1.4 / (view) - annotate - [select for diffs] , Sat Jun 14 17:08:36 2003 UTC (5 years, 2 months ago) by alanr
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +214 -815 lines
Diff to previous 1.3
From a posting from Joe DiMartino dated 12/19/2002:

Hello OCF!

Here is a cut at the event notification API without membership, etc.
I have gutted most of the extra text about the scope and context that
this event service expects.

Note: I have not spent any time to figure out the docbook format that
was suggested.  It's still ascii, but changed to be more man-page'ish.

Highlights:
h1. removed all non-event subject matter (membership, etc)

h2. name changes for clarity:
		replaced 'register' with 'subscribe',
		replaced 'class' with 'topic',
		replaced 'callback' with 'on_event'

h3. added get_event() interface

h4. changed semantics of handle_events() to differ from get_event().
	get_event() is the manual way to process events and requires
	the use of poll/select and a file descriptor.  handle_events()
	[notice the plural now] will pass control to the event service
	to make calling the on_event functions seem more automatic and
	less like a clunky get_event().


Outstanding issues:
i1.  file descriptor vs. event descriptor (was token)
	If you recall, v0.2 returned a "token" from register() that
	was passed to subsequent calls and needed to be converted to
	a file descriptor for poll/select.  A poll/select is inevitable
	in this programming model, so in v0.3 the token was removed
	and a file descriptor was returned instead.  This cut out the
	middle man (and a function or two), but Ram seems to still
	want a token of some sort.

	In this go, you will notice an "event descriptor" that takes
	the place of the v0.2 token.  There is also a way to convert
	the ed into a file descriptor.  I would prefer to put it back
	to a simple file descriptor.

i2. on_event function replacement
	In v0.2, there was a "set_callback" routine to swap out the
	current on_event (callback) function.  That was removed in
	v0.3 because many thought it was extra complexity that would
	not be useful.  Alan disagrees, however, and wants it back in.

	It is still absent from this pre-draft.

i3. publish interfaces
	This partial pre-draft still does not cover message allocation,
	message stuffing, and message/event publishing interfaces.

i4. distributed vs. local
	There was some discussion once about the scope of delivery for
	events.  If an instance of the event service runs on every node
	in a cluster, should all events in each event topic be seen at
	all locations?  Or, should there be some provision for "local
	only" topics, such as "this node's connectivity".

	In addition, making the event service available as a cluster-
	wide service (for applications external to the cluster) has
	slightly different implications than an event service intended
	for the cluster (internal) components.

i5. creation of event topics
	This is not covered yet.  It can be done administratively or
	with programming interfaces or both.  This issue is tightly
	coupled with #i4, as there may be a need to specify "local" or
	"global" at topic creation time.  In either case, there is
	an event name space issue if it needs to be kept coherent
	across the cluster.

I'm sure there are more outstanding issues, but I can't think of them
just now...

As ever, happy reading.

Happy Holidays!
- Joe DiMartino

Revision 1.3 / (view) - annotate - [select for diffs] , Sat Jun 14 17:06:57 2003 UTC (5 years, 2 months ago) by alanr
Branch: MAIN
Changes since 1.2: +424 -225 lines
Diff to previous 1.2
From a posting from Joe DiMartino dated 8/16/2002.

Not too long ago, in a discussion far far away...

there was talk about using separate file descriptors per event class,
and other simplifications of the API interfaces.  The topic quickly
changed to partial membership and other semantic changes to the
membership events.  Then a series of synchronous interfaces were
proposed to replace the asynchronous callbacks.

Updates to the draft API document were delayed while discussions
continued in the hopes of incorporating partial membership semantics
along with the promised separate file descriptor support.

Bottom line: The partial membership stuff will take longer to sort
out, and I wanted to commit the rest to paper before I forgot. :-)


This draft proposal updates the programming interface (API) section
to match the examples posted previously, and provides support for
separate file descriptors per event class.  It does NOT include any
updates (except for typos and clarifications) to the membership events
and their semantics - i.e., partial membership is still not covered yet.
Also, this document does not include any of the proposed synchronous
get_* interfaces.

Best regards,
- Joe DiMartino

Revision 1.2 / (view) - annotate - [select for diffs] , Sat Jun 14 17:02:18 2003 UTC (5 years, 2 months ago) by alanr
Branch: MAIN
Changes since 1.1: +313 -208 lines
Diff to previous 1.1
Version 0.2 of the Event API.  Posted by Joe DiMartino 6/7/2002

Revision 1.1 / (view) - annotate - [select for diffs] , Sat Jun 14 17:00:47 2003 UTC (5 years, 2 months ago) by alanr
Branch: MAIN
From a posting from Joe DiMartino dated 4/12/2002:
Hello OCF list,

Enclosed, please find the initial draft proposal for the Cluster Event
Notification API (v0.1).

As suggested by Bruce Walker on a previous OCF posting, we have decided
to give only one part of this document at a time for general review.

This document will EVENTUALLY cover:

	a. event notification service
	b. connectivity events and semantics
	c. membership events and semantics
	d. group messaging events and semantics

Currently, this text covers only (a).  The Data Structures section
hints at some events for (b) (c) and (d), but please don't dwell on
that now.

The examples section is intended to increase the understanding of
the event model.  However, there are no examples of in-kernel usage
and three user-level examples are combined into one.

Happy Reading!

Respectfully,
- Ram Pai and Joe DiMartino

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Diffs between and
Type of Diff should be a

View only Branch:
Sort log by:

CVS admin
Powered by
ViewCVS 0.9.2