He estado investigando agentes móviles y me preguntaba si es posible enviar un proceso en ejecución a otro nodo en erlang. Sé que es posible enviar un mensaje a otro nodo. Sé que es posible cargar un módulo en todos los nodos de un clúster. ¿Es posible mover un proceso que podría estar en algún estado en un nodo particular a otro nodo y reanudar su estado? Es decir, ¿erlang proporciona una fuerte movilidad? ¿O es posible proporcionar una gran movilidad en erlang?En Erlang, ¿es posible enviar un proceso en ejecución a un nodo diferente?
Respuesta
Sí, es posible, pero no hay una llamada "Mover proceso a nodo". Sin embargo, si el proceso se construye con una característica para la migración, puede hacerlo enviando la función del proceso y su estado a otro nodo y organizar un spawn allí. Para obtener la identidad del proceso correcta, necesitará usar el registro de proceso global o gproc, ya que el proceso cambiará pid.
También hay otras consideraciones: El proceso podría estar utilizando una tabla ETS cuyos datos no están presentes en el otro nodo, o puede haber almacenado cosas en el diccionario de proceso (viene a la mente el estado del módulo aleatorio).
El consenso general en Erlang es que los procesos no se movilizan para moverse entre las máquinas. Por el contrario, uno organiza una toma de posesión de las aplicaciones entre nodos si un nodo muere. O para la distribución del sistema, por lo que los datos ya están distribuidos en otra máquina. En cualquier caso, el problema principal de hacer que el estado sea persistente en caso de errores aún se mantienen, movilidad o no, y la distribución es una buena herramienta para resolver el problema de persistencia.
- 1. Enviar entrada de teclado a un proceso en ejecución linux
- 2. Erlang: RPC a un nodo con salida en ese nodo
- 3. ¿Cómo averiguo en qué nodo se está ejecutando un proceso de erlang?
- 4. ¿Es posible adjuntar un depurador a un proceso PHP en ejecución?
- 5. ¿Es posible enviar un NSInteger a NSNumber?
- 6. Pasar una interfaz a un proceso diferente
- 7. ¿Cómo se puede enviar un Ctrl-Break a un proceso Linux en ejecución?
- 8. python: es posible conectar una consola a un proceso en ejecución
- 9. Ejecutándose en ejecución como un usuario diferente
- 10. Python REPL para un proceso en ejecución
- 11. ¿Matar un proceso en ejecución en ColdFusion?
- 12. Erlang: iniciando un nodo remoto programáticamente
- 13. Actores migratorios Erlang/Scala de un nodo a otro
- 14. Erlang. Conectando al nodo local: *** ERROR: proceso de shell terminado
- 15. ¿Cómo enviar claves en lugar de caracteres a un proceso?
- 16. Enviar comando a un proceso en segundo plano
- 17. Erlang C nodo relacionado pregunta
- 18. ¿Es posible UAC elevar un proceso sin iniciar otro proceso?
- 19. ¿Cómo se conecta strace a un proceso ya en ejecución?
- 20. ¿Es posible enviar cookies en un DownloadManager de Android?
- 21. Multiple Ruby EventMachines en un solo proceso: ¿es posible?
- 22. Erlang: nodo esclavo inicial
- 23. ¿Es posible adjuntar una sesión de depuración a un programa en ejecución en eclipse CDT
- 24. Cancelar un proceso de compilación en ejecución en VS
- 25. de error cuando Erlang lanzando un proceso
- 26. ¿Es posible configurar un cliente socket.io en ejecución (lado del servidor) en un servidor node.js?
- 27. ¿es posible anular un método en tiempo de ejecución?
- 28. ¿Puede congelar un proceso C/C++ y continuarlo en un host diferente?
- 29. A partir de un nodo esclavo Erlang en Escript falla cuando se utiliza la costumbre de Erlang en Ubuntu 10.4
- 30. ¿Cómo obtener un buen funcionamiento de un proceso en ejecución?