home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / sys / isis / 249 < prev    next >
Encoding:
Internet Message Format  |  1992-09-15  |  3.8 KB

  1. Path: sparky!uunet!elroy.jpl.nasa.gov!swrinde!zaphod.mps.ohio-state.edu!rpi!batcomputer!cornell!ken
  2. From: ken@cs.cornell.edu (Ken Birman)
  3. Newsgroups: comp.sys.isis
  4. Subject: Re: crash discovery in ISIS
  5. Message-ID: <1992Sep16.001715.11391@cs.cornell.edu>
  6. Date: 16 Sep 92 00:17:15 GMT
  7. References: <13162@ztivax.UUCP>
  8. Organization: Cornell Univ. CS Dept, Ithaca NY 14853
  9. Lines: 64
  10.  
  11. In article <13162@ztivax.UUCP> mach@ztivax.UUCP (Juergen Schmitz) writes:
  12. >Hello,
  13. >after reading some of your documents describing ISIS I would like to know,
  14. >how your site failure detection works. Is this simply done by polling a node
  15. >and waiting a while for an answer or are there sophisticated protocols for
  16. >recognizing a crashed site?
  17. >It would be great if you can give me hints about papers describing this.
  18.  
  19. The current algorithm does polling:
  20.  
  21. - For a site (== backbone site), we organize the sites as a ring.
  22.   Every F/3 seconds, we send a message from site i to site i+1, mod # of sites.
  23.   Site i expects this message to be acknowledged.
  24.   After F seconds we timeout and site i considers site i+1 to be faulty.
  25.   The default value for F is 60 seconds, but you can change this in isis.rc:
  26.     ../bin/protos <isis-protos> -f10
  27.   would, as an example, run protos using a 10-second timer on failure detection
  28.  
  29. - For a process on a site, we rely on several mechanisms.
  30.   * A graceful exit by a process (in this case, the process sends a "close"
  31.     message to protos)
  32.   * if the connection from the backbone to the process breaks, we signal
  33.     a failure immediately.  (Unfortunately, TCP breaks connections very
  34.     slowly, and this is part of the standard...)
  35.   * under the rules for isis_probe(i,j): process P must send a message
  36.     to protos every i seconds. After i+j seconds with no message, protos
  37.     cuts the channel.
  38.   * For a UDP connection (when Isis runs out of TCP connections or if the
  39.     ISISPORT value is set wrong but ISISREMOTE is set correctly), when a
  40.     message has not been acked and more than 45 seconds have elapsed and
  41.     the message has been retransmitted more than 5 times.
  42.  
  43. To summarize: we use a maze of heuristics, introduced over time to deal
  44. with real problems we saw in our large installations.  For example, one
  45. large New York investment bank ran tests for 72 hours at a time with
  46. processes coming and going roughly 2 or 3 times per second, and with
  47. up to 4 or 5 backbone sites and perhaps 80 or 100 processes at a time.
  48. The processes exited by just calling the UNIX exit system call.  Tests
  49. like this really stressed our code, and the complex mixture of detection
  50. schemes above are intended to minimize the impact of a faulty process or
  51. site on the rest of the system.
  52.  
  53. I can't recommend any papers on detecting failures.  I can make some
  54. observations from experience, though:
  55.   * The fastest form of failure detection is when the faulty process
  56.     senses its own failure and shuts down gracefully and promptly.  So:
  57.     design high reliability software to be self-checking.
  58.   * Processes hang under UNIX more often than one might expect.  In a big
  59.     system, it is cheaper to disconnect the slow process than to wait.
  60.     It can always use isis_failed() to trap this and reconnect.
  61.   * Uncooperative applications are very hard to work with -- code that
  62.     doesn't use ISIS_USEITIMER and doesn't call isis_accept_events() often
  63.     enough.
  64.  
  65. We haven't written this up because it would never get accepted by an
  66. reputable journal.  This is engineering, not science...
  67.  
  68. You may want to read Jom Gray's paper on why systems fail.  He wrote this
  69. about 5 years ago, then revised it about 3 years ago.  I think it appeared
  70. in IEEE Computer.  
  71. -- 
  72. Kenneth P. Birman                              E-mail:  ken@cs.cornell.edu
  73. 4105 Upson Hall, Dept. of Computer Science     TEL:     607 255-9199 (office)
  74. Cornell University Ithaca, NY 14853 (USA)      FAX:     607 255-4428
  75.