2009-07-25 22 views

Respuesta

4

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.

+1

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. –

1

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.

Cuestiones relacionadas