AntidoteDB / AntidoteDB/antidote

Antidote fault tolerance and recovery

Aperta
#193 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Erlang
Stelle
892
Fork
92
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Currently Antidote's primary fault tolerance is through updates being replicated at multiple DCs and that lost messages across DCs are detected and resent.

The design does not ensure safety and progress and recovery when:
A process crashes within a DC, whether that be a vnode process, a maintenance process, or a transaction coordinator.
Messages within the DC are lost.
Any type of ring handoff that happens outside of system initialisation when no transactions are happening.
(Please add more as you notice them)

We should come up with an overall design and some guidelines for ensuring fault tolerance that fits well with the supervisor model.

Here is a comment from Marc about the transaction prepare and abort messages that we should use when designing the model:

"the fate of a transaction logically depends ONLY on unanimous "prepare". Once all transaction participants have recorded the prepare message in their log, the transaction IS committed, and all entities in the system must reach this same conclusion no matter what happens. If there is a state where not all participants have recorded prepare, and one knows for sure that this will not happen in the future (e.g. a participant is known to have crashed) then everyone must conclude "abort". The abort message is an optimisation, and the termination should take place even if participants crash or messages get lost."

This thread can be used as point to keep track of where we encounter fault tolerance problems and the discussion fixing them.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.