Mnesia表复制/共享

Hal*_*dun 2 erlang mnesia

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

小智 7

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

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


Ada*_*erg 5

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

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