Do they belong to you? Claim these comments.
mike
Is this you? Claim Profile »
12 months ago
in Erlang: A Generalized TCP Server | 20bits on 20bits
Ok so apparently erlang keeps 2 versions of module code (old and current)
and processes that run old code are purged (killed). This is badly
explained almost everywhere i've looked and examples are scarce to come
by for something so important. So my next question then is how to
do a hot code update without killing the tcp server or dropping any existing
connections. After all this is erlang where 99.999% availability can be achieved
this trivial task (which you get for free in common lisp without having to do
anything special) should be possible.
After hours of scavenging in badly written documentation, trying to understand
the monstrosity that seems to be OTP (also noticed that pragmatic programming: erlang
conveniently pushes this issue under the rug) i still have found no solutions.
It seems everywhere i look at these days, proponents of erlang keep rambling about
"scalability, availability, hot code updates" as if these are things that can be
magically gotten for free. Well if "hot code updates" is how things are done in erlang,
i will have none of that.
and processes that run old code are purged (killed). This is badly
explained almost everywhere i've looked and examples are scarce to come
by for something so important. So my next question then is how to
do a hot code update without killing the tcp server or dropping any existing
connections. After all this is erlang where 99.999% availability can be achieved
this trivial task (which you get for free in common lisp without having to do
anything special) should be possible.
After hours of scavenging in badly written documentation, trying to understand
the monstrosity that seems to be OTP (also noticed that pragmatic programming: erlang
conveniently pushes this issue under the rug) i still have found no solutions.
It seems everywhere i look at these days, proponents of erlang keep rambling about
"scalability, availability, hot code updates" as if these are things that can be
magically gotten for free. Well if "hot code updates" is how things are done in erlang,
i will have none of that.
2 replies
Dave
The Erlang documentation covers its approach to in-place code upgrades here: http://erlang.org/doc/design_principles/part_fr... . In particular, see the sections "Releases" and "Release Handling."
Bryce
There's some switching around you can do with code:purge/1 and code:load_file/1 that I don't completely understand: http://gist.github.com/27901
12 months ago
in Erlang: A Generalized TCP Server | 20bits on 20bits
You should probably explain why with the echo server up and running,
compiling echo_server.erl twice in a row kills the server.
This is really frustrating to someone coming from lisp where
hot code updates trully "just work" and things do not fail
mysteriously. I have been trying to find out the cause of
this behavior for the past hour with no success.
compiling echo_server.erl twice in a row kills the server.
This is really frustrating to someone coming from lisp where
hot code updates trully "just work" and things do not fail
mysteriously. I have been trying to find out the cause of
this behavior for the past hour with no success.