home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.isis
- Path: sparky!uunet!decwrl!wupost!zaphod.mps.ohio-state.edu!caen!batcomputer!cornell!ken
- From: ken@cs.cornell.edu (Ken Birman)
- Subject: A secret option to [acfm]bcast_l...
- Message-ID: <1992Sep11.123817.14446@cs.cornell.edu>
- Organization: Cornell Univ. CS Dept, Ithaca NY 14853
- Date: Fri, 11 Sep 1992 12:38:17 GMT
- Lines: 48
-
- A few people in a row have sent me email asking how to disable the
- Isis causality property selectively.
-
- For example, suppose that your application has groups A and B and
- that activity in A is totally independent of activity in B (A and
- B could even be classes of groups).
-
- Normally, if m1 is a cbcast in A, m2 in B, and m3 in A, then
- Isis will go to some trouble to figure out if m1 -> m2 -> m3 (causal
- relationship) and some expense to ensure that m1 is delivered before
- m2 which is delivered before m3 at destinations these have in common.
-
- Normally, this is what you would want.
-
- However, there may be times when you KNOW that m2 is independent of
- m1, m3 and don't want to allow such a causal chain to be detected and
- enforced because of cost implications. Perhaps, m2 is an advisory
- message concerning system overload and needs to get through promptly,
- even if it violates causality in group A to do so.
-
- Two new options are available in V3.0.6/V2.2.6 in support of this
- possibility. They are specified by including "NO" in the options
- list to a long-form broadcast, as in cbcast_l("NOx", ....)
-
- - Option "N" means don't block for flow control: No flow control.
- (In fact, this is just advisory and Isis might block anyhow)
- since if we don't do any flow control, UNIX might lose a lot of
- data.
- - Option "O" means don't enforce causality when switching groups.
- So, m1 -> m2 iff: (sent in the same group) or (sent with "O" not
- specified and sent in different groups).
-
- The highest performance architecture for many applications is to build
- a lot of overlapped groups, one per (possible-sender,destination-set) pair,
- and then use cbcast_l("NOx", ..., 0) -- asynchronous optimistic, non-flow
- controlled cbcast, excluding the sender.
-
- These options also work for abcast, fbcast and even mbcast. However, O
- is a no-op on the latter two sorts of multicasts, which don't respect
- causality in any case.
-
- A warning: don't use these options unless you understand causality...
-
-
- --
- Kenneth P. Birman E-mail: ken@cs.cornell.edu
- 4105 Upson Hall, Dept. of Computer Science TEL: 607 255-9199 (office)
- Cornell University Ithaca, NY 14853 (USA) FAX: 607 255-4428
-