我现在已经使用了mnesia一段时间了.我必须承认,我觉得我并不完全理解mnesia的概念:wait_for_tables/2.引用下面的文档说:
Some applications need to wait for certain tables to be accessible in order to do现在,对于我开发的所有应用程序,我必须在启动后端时调用它.在上面的文档中,上下文
useful work. mnesia:wait_for_tables/2 hangs until all tables in the Tab List are
accessible, or until timeout is reached.
"Some applications"没有很好地扩展,这就是我的问题所在.
RAM (ram_copies)表,那么我不需要这个我的代码中的方法.现在,我认为如果我只有disc_only_copies,我也不需要这个功能.disc_copies为什么完全在Disc上运行或完全在RAM中运行的应用程序需要等待并加载表?
问题:
帮助和检查我的想法1,2和3.一般来说,只有在处理mnesia表类型时才需要此功能:disc_copies因为这种类型与光盘和RAM上的数据复制有关吗?
如果我的表都是碎片,(我总是为每个片段调用此方法以确保mnesia为我的应用程序做好准备),我是否必须调用每个片段的方法?是ATOMIC或Transactional的方法,如果我在mnesia事务中调用它(意味着如果我单独指定基表,mnesia将自动加载所有表片段)?我的碎片的表格类型对此功能也有影响吗?
小智 5
当启动 mnesia 时,mnesia 只是将所有应该从磁盘或网络加载的表排队。
mnesia:wait_for_tables/2 为您提供一个同步点,因此您不必轮询表是否已准备好可供使用。
如果您不使用光盘且没有复制(即模式在启动期间始终为空),则不需要使用 wait_for_tables。
| 归档时间: |
|
| 查看次数: |
1440 次 |
| 最近记录: |