Capisco che il commit a tre fasi è stato fatto per risolvere il problema del "commit a due fasi" quando nella seconda fase il coordinatore e la coorte falliscono nello stesso tempo è impossibile sapere se il coordinatore aveva deciso un messaggio di commit.commit trifase
Apparentemente il commit a tre fasi ha lo scopo di risolvere questo problema aggiungendo una fase aggiuntiva. Ma non affrontare lo stesso identico problema durante la terza fase, se il coordinatore e una coorte falliscono?
Ai posteri, ecco come Wikipedia definisce 3 phase commit: http://en.wikipedia.org/wiki/Three-phase_commit_protocol – Gray
Questo è il senso di questo articolo: La Il protocollo di commit a tre fasi elimina questo problema introducendo lo stato Pronto per il commit. Se il coordinatore fallisce prima di inviare messaggi pre -ommit, la coorte concorderà all'unanimità che l'operazione è stata interrotta. Il coordinatore non invierà un messaggio doCommit finché tutti i membri della coorte non avranno ACKed che sono pronti per il commit. Ciò elimina la possibilità che qualsiasi membro di coorte abbia effettivamente completato la transazione prima che tutti i membri della coorte fossero a conoscenza della decisione di farlo – Ken
Semplicemente non vedo come aggiungere la fase aggiuntiva aiuterà con il problema – Ken