[erlang-questions] Mnesia, versioning and recovering from network splits
James Cone
jcone@REDACTED
Thu Jan 3 03:25:31 CET 2008
Hi Joel,
You haven't given us a plan about which data you're going to throw away.
Suppose one side of the split does a transaction that affects rows A &
B, and the other side does a transaction that affects rows B & C.
If one side is going to be thrown away, because it's being restored from
backup, then one whole transaction will be thrown away.
If you go row-by-row, presumably you will keep the changes to both row A
and row C, so you have to decide what to do about row B, and making it
consistent with both transactions either:
- needs application knowledge
or
- with application knowledge, is still impossible
Regards,
James.
Joel Reymont wrote:
> Folks,
>
> I think there's a reasonably straightforward way for Mnesia to recover
> from network splits. I also think that it would be much faster to
> merge databases in this scenario than drop a database and reload it
> form backups.
>
> I believe merging databases would require versioning of Mnesia records
> (simple integer should do) and the addition of a merging mechanism.
> Record versions would be shipped around and the latest version of the
> record would then be pulled by the server that has fallen behind.
>
> What are the flaws in my thinking?
>
> Thanks, Joel
>
> --
> http://wagerlabs.com
>
>
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
More information about the erlang-questions
mailing list