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 best solutions below
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
- Erlang: Returning a function from a function
- How to index existing not-indexed data in riak search?
- Why do I receive a FunctionClauseError ("no function clause matching") in this Elixir program, translated from Erlang?
- How to list all the bucket types in riak?
- oauth2 authentication support in ejabberd
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?
- Service Fabric, Akka.net and Persistent actor integration
- Akka actor cardinality
- Akka Actors Still Available After Stopped by PoisonPill
- How to handle tell/ask failure of Akka peers?
- Akka actors and shared data: thead-safe, thread-unsafe, or ThreadLocal?
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
- Dynamically Changing Distribution in AnyLogic
- akka: combination of Actor and Agent
- Azure: choosing between DSC Extension and DSC Automation
- Azure DSC VM Extension: Why does $Home directory change?
- How to duplicate a population of agents
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
- Translating Rails has_many string attribute using Mobility
- How do I filter records by locale using gem mobility?
- SUMO mobility model
- Importing via csv data in jsonb format
- technical journals or magazines on mobile development
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)
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?
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.