How long does mnesia take to warm up?

Peter Lund <>
Thu Sep 8 16:41:23 CEST 2005


I guess everyone else are using mnesia:wait_for_tables. Maybe you should 
too :)

/Peter

Joe Armstrong (AL/EAB) wrote:

>   When I evaluate mnesia:start() it seems to take a little time before mnesia is
>ready to do what I tell it - is this a bug? - do I really have to busy-wait
>before it is ready?
>
>   I have made myself a little mnesia table called mom_types
> 
>   In this run I have to make 34 attempts to write the table, attempts 1 to 34 fail because there is no such table, but 35 succeeds because suddenly there *is* a table.
>
>   Alternatively I can wait for half a second or so after starting mnesia
>   
>   I guess this is a synchronisation error in the start-up?
>
>	/Joe
>
>
>
>Eshell V5.3  (abort with ^G)
>1> bug:start()
>Oh dear N=0 {aborted,{no_exists,mom_types}}
>Oh dear N=1 {aborted,{no_exists,mom_types}}
>...
>Oh dear N=33 {aborted,{no_exists,mom_types}}
>Oh dear N=34 {aborted,{no_exists,mom_types}}
>At last N=35 ok
>true
> 
>
>-module(bug).
>
>-export([start/0]).
>
>start() ->
>    mnesia:start(),
>    do(0).
>
>do(N) ->
>    V = mnesia:transaction(fun() ->
>				   mnesia:write({mom_types,a,b})
>			   end),
>    case V of
>	{atomic, X} ->
>	    io:format("At last N=~w ~p~n",[N, X]),
>	    true;
>	Other ->
>	    io:format("Oh dear N=~w ~p~n",[N, Other]),
>	    do(N+1)
>    end. 
>
>  
>




More information about the erlang-questions mailing list