Fun with Erlang (was Re: Stand Alone Erlang for Windows. yet again)
Fri Mar 16 15:30:32 CET 2001
On Fri, 16 Mar 2001, Alexander Williams wrote:
>I think it can be done. One thing I wonder about, however, is whether
>a running process can be marshalled out to disk and reloaded. If so,
This can be done, as long as one doesn't make any assumptions about
Pid (it will change), and there's a stable state in which to do this.
Take a look at the dispatcher contrib. It packs processes into ETS,
re-activating them if something happens. This is done on top of
the existing Erlang, and is similar to a mechanism used in
AXD301 for handling connection setups (the problem there is that we
can't have one process per connection, as there are too many
One could make it more general still by extracting the process
dictionary before killing the process instance.
You still need to define some programming rules for such a process.
If you create an ETS table, you'll be surprised to find it gone
when you need it.
I once toyed with the idea that you could mirror a process to
another erlang node in real-time, e.g. using something like Encore's
Reflective Memory technology (http://www.encore.com). Then, you'd
have to introduce some 'passive' state for the process replica.
I couldn't get a clear mental picture of the repercussions, so I
dropped the idea. I imagine really dumping processes to disk would
have some similar repercussions.
Ulf Wiger tfn: +46 8 719 81 95
Senior System Architect mob: +46 70 519 81 95
Strategic Product & System Management ATM Multiservice Networks
Data Backbone & Optical Services Division Ericsson Telecom AB
More information about the erlang-questions