【问题标题】:How Erlang Mnesia Distribution WorksErlang Mnesia 分发的工作原理
【发布时间】:2018-01-21 03:47:28
【问题描述】:

我正在浏览在线示例,并且已经可以使用 mnesia ram 副本并连接它们,但我对一些事情有点困惑。

1:起始节点(创建模式的那个)是否只有本地模式? (例如,在根文件夹中 = Mnesia.name@ip)

我问是因为在另一个节点上,我可以简单地启动mnesia,然后change_config(extra_db_nodes, [node]),并自动获取启动节点上的所有数据。

这对我来说似乎很奇怪,如果所有节点都出现故障会发生什么?这意味着需要先运行启动节点,然后才能执行任何操作。

2:似乎有很多不同的方式来连接节点和复制表......我能否获得一份不同方式的列表,以及它们的影响?

3:从第一个问题看,调用change_config后,你怎么知道它已经下载完所有数据才能开始使用呢?例如,如果有人连接到该节点,而您检查他们是否已经在线,则他们可能已连接到另一个节点,而您在检查期间没有获得该数据。

4:连接一个节点后,是否自动连接到所有节点?它是否会自动更新您的本地 ram 副本而不做任何事情?它如何确保读取和写入时的同步?我需要做一些特别的事情吗?

关于问题 1 ——难道你不能运行一个节点进程来保存本地模式,并使用这个节点将所有节点连接在一起吗?如果可能的话,您是否可以禁止 mnesia 将 ram 副本复制到此节点进程?

我知道这很多,所以谢谢你的时间。

【问题讨论】:

    标签: erlang erlang-otp mnesia


    【解决方案1】:

    不是直接回答您的问题,但您可以查看Erlang Performance Lab,它可能通过可视化不同节点之间的消息来帮助您了解 Mnesia 中的某些操作是如何工作的。

    【讨论】:

      猜你喜欢
      • 2010-12-22
      • 2015-06-17
      • 2016-07-01
      • 1970-01-01
      • 2017-06-10
      • 1970-01-01
      • 2015-01-17
      • 2012-01-10
      • 2013-02-11
      相关资源
      最近更新 更多