私はしばらくの間、記憶を使用しました。私はmnesia:wait_for_tables/2という概念を正確に理解していないように感じることを告白する必要があります。 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"
のコンテキストはうまく展開されておらず、私の質問があるところです。
これらは私の考えです:
1.この方法で待っているが、私は個人的に考える
2.(Disc_copiesの場合)ディスクをRAMに言うから、我々はmnesiaテーブルをロードしていることを意味している私のアプリケーションであれば
RAM (ram_copies)
テーブルのみで構成されている場合、私のコードではこのメソッドは必要ありません。今、私は
disc_only_copies
しかなければ、この機能は必要ないと思うのは正しいです。
3.また、ネットワークからmnesiaテーブルを読み込んでいるとき、特に私のテーブルが複製されているときにこの機能が必要なので、私のアプリはこれらのテーブルを準備するために起動時にmnesiaを待つ必要があります。しかし、これはまだタイプが
disc_copies
のテーブルにしか当てはまりません。なぜなら、ディスク上に完全に実行されているアプリケーションや、完全にRAM上にあるアプリケーションは、テーブルを待って読み込む必要があるからです。
disc_copies
をこのタイプは、データがディスクやRAMにコピーとは何かを持っているので:
質問:mnesiaテーブルタイプを扱うとき
ヘルプと調べて自分の考え一般的には1、2と3は、この機能にのみ必要ですか?
私のテーブルがすべてフラグメント化されている場合(私はいつもmnesiaが自分のアプリケーションの準備を整えるように各フラグメントに対してこのメソッドを呼び出しています)、フラグメントごとにメソッドを呼び出す必要がありますか?私はmnesiaトランザクション内でそれを呼び出す場合、メソッドATOMICまたはTransactionalです(つまり、基底テーブルだけを指定すると、mnesiaは自動的にすべてのテーブルフラグメントをロードします)。私の断片のテーブルタイプもこの機能に関して重要ですか?