2

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

4

2 回答 2

7

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

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

于 2008-09-23T13:28:55.547 回答
5

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

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

于 2008-09-23T11:03:46.957 回答