[erlang-questions] Process migration/ Process state extraction/ injection

Gleb Peregud <>
Tue Jul 31 20:15:03 CEST 2012


On Tue, Jul 31, 2012 at 8:11 PM, Tyron Zerafa <> wrote:
> Hey,
>     My primary intention is to implement strong mobility of processes. Let's
> say that process A is running on Node 1, I want to be able to suspend this
> process, transfer it to Node 2 and resume such process from where it halted.
> I believe that in order to achieve such I need to somehow preserve the stack
> trace, memory and other info.

This task is non-trivial and will require a lot of work with ERTS and
whole Erlang VM. Things you have to handle are:
- stack
- heap
- binary refs
- monitors
- links
- ets ownership
- port ownership
- messages sent to old process pid?
- replacing old pid with new in other processes?
- replacing old process with "replay" process?

And I'm sure that those are not all details which will have to be handled.

Cheers,
Gleb



More information about the erlang-questions mailing list