Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个运行大量自定义模块的 ejabberd 服务器。我有几个 mnesia 表,我知道这些表可以很容易地在节点之间复制,而无需对代码进行任何更改。我想知道ets表是否有类似的方法?
理想情况下,能够让多台机器运行完全相同的 mnesia 和 ets 数据会很好,而不必将我的 ets 表转换为 mnesia 表。(因此重写了大量的代码。)
虽然我曾经对每个节点的 ets 表执行 rpc:call,但我不确定这会对性能产生什么影响。
如果有人有任何答案,请告诉我。
不,无法为您复制 ets 表内容。
复制(和事务安全)是 mnesia 数据库应用程序引入的特性,它的实现使用 ets 用于 ram_only 表。
您可以 rpc:call 远程节点上的 ets 表。
但是 mnesia 的重点是解决您遇到的问题:复制
将您的代码转换为 mnesia 是对未来的一项很好的投资。虽然有风险,但您始终可以使用它mnesia:ets()来最小化代码更改。
mnesia:ets()