关于erlang:Mnesia 表复制/共享

Mnesia table replication/sharing

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


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

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


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

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