I would like to know what is the suggested way (if any) to move a gen_server/gen_fsm from erlang node A to erlang node B preserving its internal state.
how to transfer gen_server/gen_fsm from node to node
659 views Asked by user601836 At
1
There are 1 answers
Related Questions in ERLANG
- Using gleam, cannot import 'gleam/otp/process'
- Zig Concurrency Vs Erlang Concurrency, is Zig less efficient than Erlang?
- Creaating a new Key Value dict from previous dict
- How to execute an exit function before closing rebar3 shell?
- rebar3 does not compile anything in `src` directory
- Ejabberd Migration from 23 to 24
- How to use compiled erlang modules in an elixir project?
- ejabberd_sql:handle_reconnect/2:491 odbc connection failed ejabberd
- Lisp Flavored Erlang: Can't find include lib include/ltest-macros.lfe
- Signing key for RabbitMQ
- Rabbitmq fails to start and getting Erlang eaacces error
- Erlang: binary_to_term explanation
- How to extend emqx clientInfo to get more fields during HTTP Authorization
- Transforming `erl_parse:abstract_form()` to `erl_syntax:syntaxTree()`
- Who is the sender of Erlang's trace messages and what can I assume based on it?
Related Questions in GEN-SERVER
- How can i realise queue system in message broker on Elixir using genServer?
- {noproc,{gen_server{call.... Error in simple rebar3/Erlang application with a gen_server
- Issue with running a compiled rebar3 erlang application with erl -pa
- Can the GenServer `handle_continue` callback directly be invoked from another process?
- What would be an idiomatic and semantic way to make integration tests on this Elixir GenServer?
- DynamicSupervisor.start_child(...) ----> error > already started
- How to create an Elixir GenServer timed event at 12am every night
- Why does gen_server:reply/2 work in some instances while causing timeouts in others
- Is there a way to make_ref() for spawned processes in erlang?
- Pop functionality in stack server with OTP (Elixir)
- Elixir - Catching :enetunreach and :ehostunreach errors
- Using Interceptor to add logging to GenServer
- How to launch this Supervised GenServer as application
- Why does this Supervisor not start the Genserver?
- Elixir Supervisor "supervise" and "worker" deprecation errors
Related Questions in GEN-FSM
- Converting Learn You Some Erlang tutorial from gen_fsm to gen_statem
- erlang:send_after message delay
- Using more than one erlang behaviour
- How can I know when it's the last cycle of my process restarted by the supervisor in erlang
- Which Erlang behaviour i.e. gen_server or gen_fsm should I use in this case
- Pass control from one gen_fsm to another
- Erlang - Exception exit on supervisor and gen_fsm
- Can i use "sender" in Akka FSM code?
- handle illegality events while not clearing timeout in gen_fsm behaviour
- Ensure that gen_fsm/gen_server process exists while sending a message
- Change gen_fsm state to a function in a different module
- eunit test for timeout
- how to transfer gen_server/gen_fsm from node to node
- gen_fsm erlang timeout
- Terminate gen_fsm if no event come
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
AFAIK there's no way to transfer a process between erlang nodes and I can think about many reasons to forbid this, between the others you may mess with internal nodes memory, simply consider a process which holds data (other than in the internal 'State' loop parameter) in process dictionary (process heap), binary (different garbage collection method).
One workaround could be to provide the gen_fsm/gen_server with a method that can spawn a new process recreating at the same time the internal state of the server/state machine. I think it's more difficult to say that to implement, you could simply use two start functions:
But I must say that I see two main problems here:
The former could be resolved in many ways (my two cents: explicit message passing between local and remote server - overhead but bulletproof considering Erlang runtime system), the latter could be resolved with monitor/links and exit return values (the remote server pid) or in a more elegant way with a publish/subscribe model with a gen_event process.
I hope you find this useful to resolve your issue and ask anything if you need!