2017-08-12 108 views
2

我正在通过在线示例,已经可以使用mnesia ram副本并将它们连接起来,但是我对一些事情有点困惑。Erlang Mnesia Distribution如何工作

1:启动节点(创建模式的人)是否只有本地模式? (例如,在根文件夹= [email protected]

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

这对我来说似乎很奇怪,如果所有节点都关闭,会发生什么?这意味着在你做任何事情之前,初学者节点都需要先运行。

2:好像有很多不同的方式来节点连接,并复制表...我可以得到不同的方法来做到这一点,他们的影响列表?

3:从第一个问题,呼吁change_config后,你怎么能知道它的完成下载的所有数据,然后才能开始使用它?例如,如果有人连接到节点,并检查它们是否已联机,则可能会将它们连接到另一个节点,并且在检查过程中不会获取该数据。

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

关于问题1再次 - 你有没有节点进程运行,保存本地模式,并使用此节点连接所有节点?如果可能的话,你是否可以禁止mnesia将ram拷贝复制到这个节点进程?

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

回答

0

不是直接回答你的问题,但你可以检查出Erlang Performance Lab这可能会帮助你理解在Mnesia中的一些操作中如何工作通过可视不同节点之间的消息。