【问题标题】:Mnesia ClusteringMnesia 聚类
【发布时间】:2011-05-04 02:24:41
【问题描述】:

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

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

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

【问题讨论】:

标签: erlang ejabberd mnesia


【解决方案1】:

由于接受的答案是仅链接的答案,我想我会为任何前来的人记录这一点:

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

【讨论】:

    猜你喜欢
    • 2017-05-29
    • 2011-03-04
    • 2018-01-18
    • 2010-10-13
    • 2013-06-20
    • 2010-12-23
    • 2023-03-11
    • 2015-12-20
    • 2010-12-26
    相关资源
    最近更新 更多