Mnesia 表复制/共享

Posted

技术标签:

【中文标题】Mnesia 表复制/共享【英文标题】:Mnesia table replication/sharing 【发布时间】:2010-09-12 07:32:19 【问题描述】:

假设我们有 N erlang 节点,运行相同的应用程序。我想要 与所有 N 个节点共享一个记忆表 T1,我认为这没有问题。 但是,我想与节点对共享另一个 mnesia 表 T2。 我的意思是 T2 的内容将相同并复制到/与 仅共享对。换句话说,我想要 N/2 个不同的内容 T2 表。这可能与 mnesia 一起使用,而不是为每个重命名 T2 不同的节点对?

【问题讨论】:

【参考方案1】:

如果使用mnesia_frag_hash 回调行为,则可以使用mnesia 的表碎片来执行此操作。这允许您控制密钥的分配,并且可以构造密钥,以便回调能够确定应该使用哪个节点对(以及哪个片段)。

这是否适用于您的特定情况取决于您的访问模式和数据集。很有可能这是一种相当复杂的方法,而且您最好只使用不同的表名来代替。

【讨论】:

【参考方案2】:

一个表始终是一个表,无论您与多少个节点共享它。如果您希望成对的节点共享一个表,则必须为每对节点创建一个唯一的表。

不过,您可以对所有这些表使用相同的设置(记录等),因此不需要做太多工作来完成它。

【讨论】:

以上是关于Mnesia 表复制/共享的主要内容,如果未能解决你的问题,请参考以下文章

在一个 mnesia 集群中,查询哪个节点?

有没有办法用 zapier 复制谷歌表格并保留共享权限?

mnesia怎样改动表结构

RabbitMQ节点关闭后启动原理

mnesia:密集使用表

如何向所有连接的节点添加一列 - mnesia 表