[erlang-questions] auto-syncing mnesia after a network split

Claes Wikström klacke@REDACTED
Sun Dec 7 23:57:29 CET 2008


mats cronqvist wrote:
> "Felix Hamilton" <fhamilton@REDACTED> writes:
> 
>> I have used NTP (the Network Time Protocol) quite effectively to sync
>> timestamps in widely distributed systems with a fairly high degree of
>> accuracy.
> 
>   i personally would not bet a dirty sock on ordering events by time
>   stamps (in a distributed system). and for once Leslie Lamport seems
>   to agreewith me.
> 

I think I would. In retrospect I think the worst part of mnesia (apart
from the sucky dets module I once wrote) is how we chose to deal with
partitioned networks.

We should have chosen to rely on the system clock. For example if
all nodes make a persistent note of when they lost contact with other
nodes. Once they reunite they could compare timestamps, and also compare
timestamps on the last committed transaction.
In a vast majority of cases it would be possible to automatically chose
a winner.

Assuming the clocks on all involved hosts are sufficiently synchronized
by NTP that is.

Furthermore - since this only affects recovery after partitioning - this
can still be added.


/klacke



More information about the erlang-questions mailing list