我有一个运行大量定制模块的ejabberd服务器。我有几个mnesia表,我知道这些表可以很容易地在节点之间复制,而不需要对代码进行任何更改。我想知道ets表是否也有类似的方法?
理想情况下,能够让多台机器使用完全相同的mnesia和ets数据运行,而不必将ets表转换为mnesia表,这将是一件很好的事情。(因此重写了大量的代码。)
虽然我做了一个rpc:调用每个节点的ets表,但我不确定这会对性能产生什么影响。
如果谁有任何答案,请让我知道。
发布于 2009-11-22 15:07:07
不能,无法为您复制ets表内容。
复制(和事务安全)是mnesia数据库应用程序引入的特性,它的实现使用ram_only表的ets。
发布于 2009-11-22 15:14:10
您可以对远程节点上的ets表执行rpc:call。
但记忆的全部意义在于修复您遇到的问题:replication
将您的代码转换为mnesia是对未来的一项很好的投资。虽然有风险,但您可以始终使用mnesia:ets()来最大限度地减少代码更改。
https://stackoverflow.com/questions/1777853
复制相似问题