2008-09-23 48 views
1

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

回答

4

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

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

6

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

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