I have been researching Mobile Agents, and was wondering if it is possible to send a running process to another node in erlang. I know it is possible to send a process on another node a message. I know it is possible to load a module on all nodes in a cluster. Is it possible to move a process that might be in some state on a particular node to another node and resume it's state. That is, does erlang provide strong mobility? Or is it possible to provide strong mobility in erlang?
In Erlang, is it possible to send a running process to a different node?
2.1k views Asked by Matthew Sowders At
1
There are 1 answers
Related Questions in ERLANG
- erlang os:cmd() command with UTF8 binary
- Erlang syntax error unclear
- How to index a field with mongodb-erlang
- Erlang Dialyzer: only accept certain integers?
- Erlang spawning large amounts of C processes
- erlang processes and message passing architecture
- Mnesia pagination with fragmented table
- Does Erlang Have Map?
- First word of binary string erlang
- Elixir exrm release crashes on eredis start_link
Related Questions in ACTOR
- Akka actor invoked with a function delegate - is this bad practice?
- Spray Dead Letter msg
- Is it possible to await for second response in Scala
- how to make the program pause when actor is running
- Designing Akka Supervisor Hierarchy
- Akka Java FSM by Example
- Akka actorSelection vs actorOf Difference
- Akka and two-way actor conversations
- Listening to a remote akka ActorSystem's log stream
- Akka: How to ensure that message has been received?
Related Questions in AGENT
- TeamCity create arbitrary directory structure on agent
- Netlogo: Choosing an agent to run a procedure from variable values
- Sort order for job steps in SQL Server 2008 R2
- OpenAM Agentless Architecture options
- How to avoid passing environment variables to puppet agent
- SSIS SQL Server agent launch job already running
- FIWARE - IDAS: Issue with create new a device OMA-LWM2M
- FIWARE - IDAS :Which IoT-Agents protocol should I choose?
- Jade: how to run the same agent multiple times?
- Concurrent Cellular Automata actors moving
Related Questions in MOBILITY
- mininet-wifi cant support normal OVSSwitch in Mobile Node mobility scenario?
- How to extend in my app an AR model of my engine so Mobility doesn't complain?
- Mobiliy gem: Adding translations to an existing model (that already has a lot of records)?
- Rails and model translations: Main language in original model, translations in external store?
- In Erlang, is it possible to send a running process to a different node?
- Mobility gem default fallback for all missing translations
- Mobility should save all record attributes shouldn't it?
- In globalize/mobility gem: can I use other context parameters than the locale?
- Accessing Translations Tables via console
- Calling obj.i18.pluck in a model with a jsonb backend gives a TypeError
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?
Popular Tags
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)
Yes, it is possible, but there is no "Move process to node" call. However, if the process is built with a feature for migration, you can certainly do it by sending the function of the process and its state to another node and arrange for a spawn there. To get the identity of the process right, you will need to use either the global process registry or gproc, as the process will change pid.
There are other considerations as well: The process might be using an ETS table whose data are not present on the other node, or it may have stored stuff in the process dictionary (state from the random module comes to mind).
The general consensus in Erlang is that processes are not mobilized to move between machines. Rather, one either arranges for a takeover of applications between nodes should a node die. Or for distribution of the system so data are already distributed to another machine. In any case, the main problem of making state persistent in the event of errors still hold, mobility or not - and distribution is a nice tool to solve the persistence problem.