Si tengo varios servidores web escritos en ejecución de Erlang (carga equilibrada) y Mnesia se usa para la base de datos back-end, ¿cuál es la mejor manera de actualizar todo el sistema a una versión más nueva?En Erlang, ¿cuál es la mejor manera de actualizar un sistema distribuido?
Respuesta
Aunque Erlang admite la carga de códigos en caliente, no es algo que deba usarse. En su caso, parece más fácil eliminar un nodo cada vez del equilibrador de carga, reiniciarlo ejecutando el nuevo código y volver a colocarlo en el equilibrador de carga.
Quitar nodos también es algo que debe estar preparado para hacer si desea actualizar en caliente a nuevas versiones de Erlang/OTP en su sistema en vivo.
Pero el verdadero problema que puede surgir para usted son las preocupaciones que provienen de mnesia. Creo que deberías hacer una nueva pregunta con los detalles sobre lo que quiere hacer mnesia. Si no hay cambios de esquema/tabla, y solo desea tomar un nodo hacia abajo y agregarlo más tarde. O si realmente está presentando nuevas tablas o nuevas columnas en tablas. Mnesia proporciona la capacidad de agregar y eliminar nodos con réplicas de tabla, y también admite de forma única múltiples definiciones de tabla a través del mnesia:transform_table/3,4
.
Si solo estás actualizando el código, escribí un artículo sobre erlang release handling with fab. Con esta configuración, puede realizar la carga de código en tiempo real sin tener que reiniciar los nodos. Sin embargo, la transformación de la base de datos debe hacerse desde un solo nodo, desencadenado por separado de la actualización del lanzamiento.
- 1. ¿Cuál es la mejor manera de aprender Erlang?
- 2. Cuál es la mejor manera de actualizar entidades en nhibernate
- 3. Al actualizar un Ensamblaje, ¿cuál es la mejor manera de migrar archivos en Almacenamiento aislado?
- 4. ¿Cuál es la mejor manera de poner un sistema de traducción en el sitio web php?
- 5. En un sistema FIFO Qeueing, ¿cuál es la mejor manera de implementar mensajería de prioridad
- 6. Sistema distribuido Java
- 7. ¿Cuál es la mejor manera de hacer algo periódicamente en Erlang?
- 8. ¿Cuál es la mejor manera de actualizar los controles de formulario de un hilo de trabajo?
- 9. ¿Cuál es la mejor manera de actualizar los datos subyacentes de un adaptador?
- 10. ¿Cuál es la mejor manera de actualizar la entidad en JPA
- 11. ¿Cuál es la mejor manera para que un programa Java controle la salud del sistema?
- 12. mejor manera de integrar erlang y python
- 13. ¿Cuál es la mejor manera de crear un sistema de revisión simple usando MySQL?
- 14. ¿Cuál es la mejor manera de comparar programas en Windows?
- 15. ¿Cuál es la mejor manera de adaptar este sistema de seguridad para tratar la herencia múltiple?
- 16. ¿Cuál es la mejor manera de barajar un NSMutableArray?
- 17. ¿Cuál es la mejor manera de inicializar un frijol?
- 18. La mejor manera de actualizar/cargar UIScrollView
- 19. ¿Cuál es la mejor manera de manejar FBO en OpenGL?
- 20. ¿Cuál es la mejor manera de probar un procedimiento almacenado?
- 21. ¿Cuál es la mejor manera de implementar un "temporizador"?
- 22. ¿Cuál es la mejor manera de determinar un bucle invariante?
- 23. ¿Cuál es la mejor manera de probar un RedirectToAction?
- 24. ¿Cuál es la mejor manera de vaciar un directorio?
- 25. ¿Cuál es la mejor manera de integrar varios sistemas?
- 26. ¿Cuál es la mejor manera de comenzar a usar Asterisk?
- 27. ¿Cuál es la mejor manera de dibujar en la consola?
- 28. Cuál es la mejor manera de actualizar de Eclipse 3.3 a 3.4 (o versiones futuras)
- 29. La mejor manera de hacer un sistema "hashtag"
- 30. ¿Cuál es la mejor manera de actualizar de jquery 1.3 a 1.4?
Sí, me temo que si introduzco nuevas tablas o nuevas columnas en las tablas, tengo que eliminar todo el sistema. Gracias por su respuesta, no sabía que hay una función transform_table. –