Ho usato mnesia per un po 'ora. Devo confessare che mi sembra di non capire esattamente il concetto di mnesia:wait_for_tables/2. Citando la documentazione qui sotto dice questo: mnesia: wait_for_tables/2, lo capisco davvero?
Some applications need to wait for certain tables to be accessible in order to doOra, per tutte le applicazioni che ho sviluppato, ho dovuto chiamare questo quando si avvia il mio back-end. Nella documentazione di cui sopra, il contesto di
useful work. mnesia:wait_for_tables/2 hangs until all tables in the Tab List are
accessible, or until timeout is reached.
"Some applications"
non è stato ampliato bene e questo è dove la mia domanda è.
Questi sono i miei pensieri:
1. attesa in questo metodo significa che stiamo caricando le tabelle mnesia dal dicono che il disco di RAM (caso di Disc_copies)
2. Personalmente ritengo che se la mia domanda è composto solo da
RAM (ram_copies)
tabelle, quindi non ho bisogno di questo metodo nel mio codice. Ora, ho ragione di pensare che se ho solo
disc_only_copies
, anche io non ho bisogno di questa funzione.
3. Inoltre, ho bisogno di questa funzione quando carico le tabelle mnesia dalla rete, specialmente quando le mie tabelle sono replicate, quindi le mie app devono attendere l'avvio di mnesia per rendere queste tabelle pronte. Ma questo vale ancora solo per le tabelle di tipo
disc_copies
perché una applicazione che gira interamente su disco o interamente in RAM deve attendere e caricare le tabelle?
domande:
Aiuto e esaminare i miei pensieri 1, 2 e 3. In generale, è necessaria questa funzione solo quando si tratta di mnesia tipo di tabella: disc_copies
dal momento che questo tipo ha qualcosa a che fare con la copia dei dati su disco e RAM?
Se le mie tabelle sono tutte frammentate, (ho sempre chiamato questo metodo per ogni frammento per garantire che mnesia lo renda pronto per le mie app), devo chiamare il metodo per frammento? è il metodo ATOMIC o Transactional se lo chiamo all'interno di una transazione mnesia (nel senso che mnesia caricherà automaticamente tutti i frammenti delle tabelle se specificherò solo la tabella di base)? il tipo di tabella dei miei frammenti conta anche su questa funzione?