5

如果我将 2 个节点聚集在一起,从我的实验和在线阅读中我了解到节点 A 将像一个“主”节点,如果我想要的话,节点 B 会复制这些表。(否则它只会远程访问它们。)

如果节点 B 出现故障会发生什么?它是否只是重新复制自上次以来已更改的数据?

如果节点 A 出现故障,也会发生什么。Node B 还能用吗?如果是这样,如果节点 B 上的数据发生更改,节点 A 是否会将其复制到自身?到目前为止,我的理解是节点 A 并不关心节点 B 说什么,但有人请告诉我我错了。

4

1 回答 1

5

由于接受的答案是仅链接的答案,我想我会为任何出现的人记录这个:

  1. Mnesia 不能通过主次架构来工作。相反,一些节点具有数据的本地副本,而一些具有远程副本。(您可以通过mnesia:info()从控制台运行来查看这一点。有一个表列表remote,以及每个本地表的列表:ram_copiesdisc_copiesdisc_only_copies
  2. 如果一个节点宕机了,只要有一些带有本地副本的表,涉及该表的操作就可以了。
  3. Mnesia 的缺点之一是它受网络分区事件的影响。如果您的集群中两个节点之间的网络连接变坏,那么每个节点都会认为另一个节点已关闭,并继续写入数据。从中恢复是复杂的。然而,在更普通的情况下,如果一个节点出现故障,则具有本地数据副本的节点会继续运行,当故障节点恢复时,它会与集群同步备份。
于 2015-08-25T14:20:09.850 回答