3

我有一个运行大量自定义模块的 ejabberd 服务器。我有几个 mnesia 表,我知道这些表可以很容易地在节点之间复制,而无需对代码进行任何更改。我想知道ets表是否有类似的方法?

理想情况下,能够让多台机器运行完全相同的 mnesia 和 ets 数据会很好,而不必将我的 ets 表转换为 mnesia 表。(因此重写了大量的代码。)

虽然我曾经对每个节点的 ets 表执行 rpc:call,但我不确定这会对性能产生什么影响。

如果有人有任何答案,请告诉我。

4

2 回答 2

9

不,无法为您复制 ets 表内容。

复制(和事务安全)是 mnesia 数据库应用程序引入的特性,它的实现使用 ets 用于 ram_only 表。

于 2009-11-22T07:07:06.563 回答
3

您可以 rpc:call 远程节点上的 ets 表。

但是 mnesia 的重点是解决您遇到的问题:复制

将您的代码转换为 mnesia 是对未来的一项很好的投资。虽然有风险,但您始终可以使用它mnesia:ets()来最小化代码更改。

于 2009-11-22T07:14:10.323 回答