[erlang-questions] Re: how to scale into the cloud using process? example computing simple average

Joel Reymont <>
Mon Jun 1 12:56:59 CEST 2009


On May 30, 2009, at 1:44 PM, Ulf Wiger wrote:

> Or are you referring to the lack of a 'merge' of
> two table copies?

Yes.

> This is a more difficult thing to
> add. Right now, that would have to be done by
> extracting records from the non-master, have it
> restart and load tables from the master, then
> re-inserting the records. Since this cannot be done
> within a larger transaction, it might be necessary to
> delay requests from the application layer during this
> time.

I think the only way to solve this would be to keep a separate  
transaction log. Then you could try to merge the logs from  
disconnected nodes and re-apply transactions in different order to  
build a merged database.

Then again, who knows what the right order is?

Either way, it does not bode well to keeping "account balances" in  
Mnesia for example, since you could easily overdraw your account if  
you manage to hit two disconnected nodes.

> Which DBMSes have a good solution to this problem?
> How do they do it? And what prevents using the same
> strategy with mnesia?

I think Oracle has a solution. I heard that they use 3 copies of the  
database to settle on a good one.


> (Mnesia's supposed lack of support for handling
> partitioned networks has more or less become an
> urban legend.

An urban legend is a story that's untrue ;-).

> Everyone assumes that this is a
> major weakness in mnesia, but there is very little
> detail about how the competing alternatives
> supposedly handle this in a much better way.

This is mostly because almost no competing alternative tries to build  
a multi-master cluster with real-time replication.

---
Mac hacker with a performance bent
http://www.linkedin.com/in/joelreymont



More information about the erlang-questions mailing list