[erlang-questions] Question about distributed mnesia behavior

Ulf Wiger <>
Sat Apr 28 14:15:30 CEST 2012


Apologies - didn't spot the duplicate thread.

/Ulf W

Ulf Wiger, Feuerlabs, Inc.
http://www.feuerlabs.com

28 apr 2012 kl. 14:13 skrev Ulf Wiger <>:

> When test1 comes up, and detects that test2 is down, it also notes that it has no log entry of test2 dying. Therefore it assumes that test2 has a newer copy and decides to wait for it.
> 
> Remember that mnesia has no built-in heuristics for conflict resolution. It does provide a function to 'force_load' a table, if your application (or operator) can determine that it's the right thing to do.
> 
> Fair warning, though, make sure that test2 doesn't start loading in the middle of this. All bets are off then.
> 
> BR,
> Ulf W
> 
> Ulf Wiger, Feuerlabs, Inc.
> http://www.feuerlabs.com
> 
> 28 apr 2012 kl. 10:25 skrev "cao.xu" <>:
> 
>> Hi,
>> 
>>   I am using mnesia recently under OTP R15B, and feel confused about some behavior of distributed mnesia.
>> 
>>   I ran two nodes with sname 'test1' and 'test2', and then executed the following command "mnesia:create_schema(['test1', 'test2']), mnesia:create_table(test, [{disc_copies,['test1', 'test2']}]" on 'test1'. After that, I was able to use table 'test' on both nodes, everything seemed fine.
>> 
>>    Then I shutdown these two nodes and restarted 'test2', the table 'test' was still accessible and I could read and write on it.  But when I shutdown 'test2' and restarted 'test1', the table 'test' was unaccessible. The function wait_for_table would timeout and operations on table 'test' would fail. Only if 'test2' is running, the table becomes accessible again on 'test1'.
>> 
>>   I was wondering if this is an expected behavior, or the table should work properly on both nodes when run alone.
>> 
>> BR
>> 
>> Xu Cao
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions



More information about the erlang-questions mailing list