*BSD News Article 21355


Return to BSD News archive

Xref: sserve comp.unix.bsd:12670 comp.unix.wizards:30882 comp.sys.sun.apps:4865 comp.sys.sun.misc:9678
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!sdd.hp.com!decwrl!decwrl!vixie!efficacy!vixie
From: vixie@gw.home.vix.com (Paul A Vixie)
Newsgroups: comp.unix.bsd,comp.unix.wizards,comp.sys.sun.apps,comp.sys.sun.misc
Subject: Re: checkpointing software for UNIX or SunOS
Date: 22 Sep 93 20:29:34
Organization: Vixie Enterprises
Lines: 22
Distribution: world
Message-ID: <VIXIE.93Sep22202934@gw.home.vix.com>
References: <TMB.93Sep23012442@arolla.idiap.ch>
NNTP-Posting-Host: gw.home.vix.com
In-reply-to: tmb@arolla.idiap.ch's message of 22 Sep 1993 23:24:41 GMT

I've seen several "undump"-like facilities built into shells and kernels to
provide checkpointing, but the user community that can benefit from them is
small and getting smaller since almost all long-running processes have 
network connections open to various servers (even implicit ones such as a
connection to kerberos or hesiod or DNS), or they have files open to system
configuration files (/etc/services, /etc/passwd) which might not be the same
size and layout after a restart.  

Processes that need checkpointing generally have to implement it themselves,
as Sendmail does with its frozen configuration file and as GNU Emacs does 
with its "undump" mechanism.  Doing it within the application makes it
possible to close or at least mark as unstable all of the various resources
which won't be there after a restart.  A restarted process will restart from
a known place (sort of like a setjmp) and can check for all of the things it
might need and open/reopen the ones that aren't there.

You can steal code from GNU Emacs, perl, or Sendmail (pre-v8) for this.
--
Paul Vixie
Redwood City, CA
<paul@vix.com>
decwrl!vixie!paul