Jeffrey Hutzelman wrote:

[text deleted]
> you can be installing a new version without affecting the old until the
> last minute.  Beware, though, that if you replace a binary and then
> release that volume, copies of that program running on a client will
> almost certainly crash.

Hello Jeffrey,

A neat way to avoid this potential crash is to:
a) copy the new $binary in as $binary+
b) rename the old $binary as $binary.$epoch
c) rename the new binary, $binary+, as $binary

This way, users running the old binary are protected from the
possibility of the Cache Manager pulling a chunk of the new binary
to mix with chunks of the old and the ensuing chaos.

The "window of switch" is as brief as the two renaming operations (b,c).
Also, any user starting up the binary will get the new copy.

Why use $epoch suffix for the old binary?

This "timestamp" can help you to decide how long you wish to keep
the old copy. If you make several successive new releases at short
intervals, users running their particular version of the old binary
are able to continue unaffected.

Hope this helps!
--
regards 
paul                             http://acm.org/~mpb/homepage.html

    Like "Fawlty Towers"? Try:
        http://www.cm.cf.ac.uk/htbin/RobH/Fawlty_Towers             ;-)

Reply via email to