在Erlang中,升级分布式系统的最佳方法是什么?

TP.*_*TP. 6 erlang mnesia

如果我在Erlang中运行多个Web服务器(负载均衡)并且Mnesia用于后端数据库,那么将整个系统升级到更新版本的最佳方法是什么?

Chr*_*ian 4

尽管 Erlang 支持热代码加载,但这并不是必须使用的东西。在您的情况下,一次从负载平衡器中删除一个节点,重新启动它运行新代码并将其放回负载平衡器中似乎更容易。

如果您想在实时系统中热升级到新的 Erlang/OTP 版本,则必须准备好拆除节点。

但真正可能给你带来的问题是那些来自健忘症的担忧。我认为你应该问一个新问题,具体说明记忆症想要做什么。如果没有架构/表更改,并且您只想删除一个节点并稍后添加它。或者,如果您实际上要在表中引入新表或新列。Mnesia 确实提供了通过表副本添加和删除节点的能力,而且它还相当独特地通过mnesia:transform_table/3,4.