2009-07-25 3 views

Antwort

4

Obwohl Erlang Hot-Code-Laden unterstützt, ist es nicht etwas, das man verwenden muss. In Ihrem Fall scheint es einfacher, einen Knoten einmal aus dem Load-Balancer zu entfernen, ihn neu zu starten und den neuen Code wieder in den Load-Balancer zu laden.

Das Herunterfahren von Knoten ist auch etwas, worauf Sie vorbereitet sein müssen, wenn Sie ein Warm-Upgrade auf neue Erlang/OTP-Releases in Ihrem Live-System durchführen möchten.

Aber das wirkliche Problem, das für Sie aufblühen kann, sind die Sorgen, die von Mnesia kommen. Ich denke, Sie sollten eine neue Frage mit den Besonderheiten stellen, was Mnesien tun soll. Wenn es keine Schema-/Tabellenänderungen gibt und Sie nur einen Knoten entfernen und später hinzufügen möchten. Oder wenn Sie neue Tabellen oder neue Spalten in Tabellen einfügen. Mnesia bietet die Möglichkeit, Knoten mit Tabellenreplikaten hinzuzufügen und zu entfernen, und es unterstützt auch mehrere Tabellendefinitionen über mnesia:transform_table/3,4.

+1

Ja, ich fürchte, wenn ich neue Tabellen oder neue Spalten in Tabellen einführe, muss ich das ganze System runterziehen. Vielen Dank für Ihre Antwort. Ich wusste nicht, dass es eine transform_table-Funktion gibt. –

1

Wenn Sie nur Code-Upgrades machen, schrieb ich einen Artikel über erlang release handling with fab. Mit dieser Konfiguration können Sie Code in Echtzeit laden, ohne die Knoten neu starten zu müssen. Die Transformation der Datenbank sollte jedoch von einem einzigen Knoten aus erfolgen, der getrennt vom Release-Upgrade ausgelöst wird.

Verwandte Themen