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
- 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 ACTOR
- `assumeIsolated(_:)` fails with DispatchSerialQueue as custom Executor in Actor
- Await.result always hangs/timeout and never returns result (Scala - Akka actors)
- How to make an Actor's isolated state observable
- Transform/replace a Class in an Actor in IBM Rhapsody model
- How to regulate the speed between actors in java?
- I want to display an array managed by Actor in UITableView
- Mutation of captured var in actor isolated context
- akka.cluster.ddata.Replicator$Internal$DeltaPropagation message from clusterReceptionist replicator is dropped because it exceeds the size limit
- Actix future resolve with wait(ctx). Get result to calling scope
- In swift, do we need "@MainActor in" inside the closure of an other object written inside ViewController?
- ivar of Swift Actor in objc code: atomic or nonatomic?
- Calling into AVFoundation on a background thread interferes with SwiftUI animation
- Does the sleep method work insied a dramatiq actor?
- AtMost Once Message Delivery in Actor Cluster Sharding Entity Actor
- If I had an object user in sequence diagram and I wanted to make that object interact with the interface,should I use it's own functions?
Related Questions in AGENT
- Stop AgentExecutor chain after arriving at the Final answer (in LangChain)
- Why does the langchain agent custom template {agent_scratchpa} contain objects? How does it parse into a string?
- Azure Devops "Deployment Targets" ON PREM
- How to adjust the output format when using the structured chat agent from langchain
- Langchain agent keyerror: 'agent'
- Apache cloudstack : host is not getting added, cloudstack-agent not active
- How do I enroll a Wazuh Agent in my Wazuh Cloud environment?
- Langchain agent SerpAPI and Local LLM to search Web
- How byte buddy advises classes modified by final. For example lava.lang.ProcessBuilder?
- "agent_node() got multiple values for argument 'agent'" when extract langchain example code from notebook
- Is there an issue with the Anylogic Agent to fluid block?
- JetBrains TeamCity: Agent Executor Mode
- How to include a certificate and key in API requests in React Native?
- Django Rest Framework Async Error: "'async_generator' object is not iterable"
- monthly job in sql server agent not running
Related Questions in MOBILITY
- Dynamic record attributes with Ruby on Rails and Mobility
- In globalize/mobility gem: can I use other context parameters than the locale?
- Mobility should save all record attributes shouldn't it?
- Mobility gem default fallback for all missing translations
- How to model the doppler shift/effect due to node mobility in Rayleigh and Rician channels in MATLAB
- Rails Internationalisation for ActiveStorage & ActionText
- VANET: How to Implement A* Routing Algorithm in SUMO Simulation with Existing Configuration, Network, Trips, and Routing Files for research purpose?
- Is there a way to get translatable attributes of a model extended with Mobility gem?
- how to solve "implicit chunk serialization is disabled" error
- how to get the constraint area values from .ini file
- Testing with Minitest validation of translation presence using mobility gem
- can't get fallbacks to work in rails + mobility
- how to detect if the user have a bigger font setting in the browser OR in the mobile phone settings
- Eager loading model instances using single SQL statement with Mobility table backend
- How to use validations with mobility gem?
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)
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.