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

有帮助吗?

解决方案

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

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

其他提示

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

这是否适用于您的特定情况取决于您的访问模式和数据集。有可能这是一个非常复杂的方法,而且只需使用不同的表名就可以获得更好的服务。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top