Erlang Mnesia发行如何运作

时间:2017-08-12 22:02:35

标签: erlang otp mnesia

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

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

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

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

2:似乎有很多不同的方式来连接节点,并复制表格...我可以列出不同的方法来做到这一点,以及它们的影响吗?

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

4:连接到节点后,是否自动连接到所有节点?它是否自动更新您的本地ram副本而不做任何事情?在阅读和写作时如何确保同步?我必须做些什么特别的事吗?

再次讨论问题1 - 您是否运行了保存本地架构的节点进程,并使用此节点将所有节点连接在一起?如果可能的话,您是否可以禁止mnesia将ram副本复制到此节点进程?

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

1 个答案:

答案 0 :(得分:0)

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