Stavo guardando questo video sul teorema CAP, in cui l'autore spiega bene i trade-off di sistemi. Tuttavia non sono d'accordo con il teorema CAP nel seguente aspetto. Data l'immagine qui sotto:
Ogni volta che c'è una partizione, in altre parole, ogni volta che uno slave perde la connessione al master, questo slave diventa immediatamente non disponibile . Quindi dirai: stai scegliendo la coerenza rispetto alla disponibilità . E dirò NO! . Il mio sistema distribuito è ancora altamente disponibile perché ci sono molti altri nodi slave di backup / ridondanti a cui il client può eseguire il failover. Quindi sto mantenendo la mia coerenza e sto mantenendo la mia disponibilità nel sistema. Un nodo slave in errore viene immediatamente (e automaticamente) disattivato e il client viene reindirizzato a un altro nodo slave per le letture .
Quindi potresti dire: ora cosa succede se il master master muore o se hai una partizione in cui due nodi master sono attivi? E la risposta è semplice: Il tuo sistema non deve MAI consentire a due nodi principali di essere attivi. Il tuo sistema deve sempre avere uno e un solo nodo master con tutti i nodi master di backup che vuoi, ma tutto il backup i nodi master saranno inattivi (ovvero non accettano scritture e non fanno altro che creare uno stato ridondante).
L'unico compromesso di un tale sistema, perché nulla è perfetto: Avrà bisogno dell'intervento umano per il caso di un maestro di morte / cattivo stato , in modo che il master attivo possa essere arrestato da un essere umano e garantito essere morto mentre l'operatore attiva (manualmente) uno dei master di backup per prendere in carico le richieste di scrittura.
Ho riflettuto a lungo su come eliminare questo intervento umano, ma non penso che sia possibile a causa del fatto che una macchina non può determinare in modo affidabile lo stato di un'altra macchina in una distribuzione sistema . Un umano ha bisogno di prendere questa decisione e tirare manualmente la spina per ucciderlo.
Questo semplice compromesso (operatore umano per i rari casi in cui il master sta morendo) non ha battuto il teorema CAP?