[erlang-questions] upgrading erlang servers

David Mercer <>
Fri Feb 11 15:35:01 CET 2011


On Wednesday, February 09, 2011, Param Jyothi Reddy wrote:

> I am new to erlang and was reading "Programming Erlang" by Joe
> Armstrong and one remark in the book surprised me.
> 
> Pg 173: "And same version of erlang [on all nodes]. If you dont do
> this, you'll get serious and mysterious errors.". Not sure how true
> this is currently, however if it is, how do you upgrade cluster of
> nodes running X version of erlang to Y without disrupting service? I
> would have assumed that one can upgrade subset at a time which would
> also provide a vehicle to test version Y on small subset before
> committing the full cluster. But if this comment is true then one
> would have to upgrade cluster of nodes in an all or nothing fashion.
> 
> There are other ways to upgrade by having two clusters and switching
> load between them using some protocol. Is that how it is meant to be
> used? Am i missing something obvious?

This is a good question, which relates not only to upgrades of the Erlang
runtime system, but also of any code that changes its data structures: How
do you upgrade a distributed system when the interface changes?  I asked a
similar question in October of '07
(http://www.erlang.org/cgi-bin/ezmlm-cgi?4:mss:30311:200710:fanenpeabclnldcl
aikd), but your question is even more intractable than mine, since yours
cannot be solved by code tricks.  If you need simultaneous upgrade of all
3,000 nodes, especially when confounded by some of the geopolitical
considerations described in
<http://www.erlang.org/cgi-bin/ezmlm-cgi?4:mss:30338:fanenpeabclnldclaikd>,
then I'm not sure there is a practical solution, which is why ten years from
now "Pan-Global Worldwide Consolidated" will still be running Erlang R3A1.

Cheers,

DBM



More information about the erlang-questions mailing list