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

Joel Reymont joelr1@REDACTED
Tue Dec 2 21:34:02 CET 2008


On Dec 2, 2008, at 8:24 PM, David Mercer wrote:

> How do you handle unsynched clocks on the two nodes?

I don't know. Should they go out of sync during the split if the split  
is short?

> How about two different transactions that occur at the same time on  
> the two
> nodes right after the split?

That would be a transaction that

1) happens at the same time, down to a microsecond in Erlang,
2) updates the same table,
3) updates the same primary key of said table,
4) whilst no other transactions have happened so that they version  
number is the same.

I think all of the above is highly unlikely.

> And if an account with balance x before the split on one node has a  
> balance
> of x + d1 after a deposit, while the other node has balance x + d2  
> after
> another deposit, all you have during the merge is the balances x +  
> d1 and x
> + d2, and no way to identify d1 and d2 without knowing x.

You would code defensively, obviously, and would have a separate  
ledger for deposits and withdrawals that you could always reconcile to  
arrive at the proper balance.

--
http://twitter.com/wagerlabs







More information about the erlang-questions mailing list