How to do a takeover?

Anders Nygren <>
Wed Mar 16 01:16:06 CET 2005


Hi
I have started looking at how to do a takeover.
In my tests I discovered that I need to do a global:reregister_name
to "move" the name of my server to the new node, and how to move some 
state information from the old to the new node.

The way my current design works is that I have a number of gen_servers.
When one server needs to call another server it spawns a worker that makes the
call, so as to not block. This gives me the problem that I have a lot of workers
that must terminated correctly before the takeover can be finalized.

But I dont understand how to make a controlled transfer of messages in the 
mailbox, or linked worker processes.

My best guess now is that I have to stop using gen_server:call to other servers
and instead use an interface between my servers that always sends messages to
processes with globally registered names.

/Anders Nygren



More information about the erlang-questions mailing list