Sono nuovo per i sistemi distribuiti e sto leggendo su "Simple Paxos". Crea un sacco di chiacchiere e sto pensando alle implicazioni sulle prestazioni.evitare l'uso eccessivo dei protocolli di consenso in un sistema distribuito
Supponiamo che stiate creando un database distribuito a livello globale, con numerosi cluster di piccole dimensioni ubicati in luoghi diversi. Sembra importante ridurre al minimo la quantità di comunicazioni tra siti.
Quali sono le decisioni che è assolutamente necessario utilizzare per il consenso? L'unico che pensavo di sicuro stava decidendo se aggiungere o rimuovere un nodo (o un insieme di nodi?) Dalla rete. Sembra che questo sia necessario per il funzionamento degli orologi vettoriali. Un altro di cui ero meno sicuro era decidere un ordine per le scritture nello stesso luogo, ma questo dovrebbe essere fatto da un leader eletto tramite Paxos?
Sarebbe bello evitare di avere tutti i nodi nel sistema che prendono le decisioni insieme. Alcuni nodi in ciascun cluster locale potrebbero prendere parte alle decisioni tra cluster e tutti i nodi locali comunicano utilizzando un Paxos locale per determinare le risposte locali alle domande sul sito? La latenza sarebbe la stessa supponendo che la rete non sia saturata, ma il traffico di rete tra siti sarebbe molto più leggero.
Diciamo che è possibile dividere le tabelle del database di lungo filari, e assegnare ogni sottoinsieme di righe a un sottoinsieme di nodi. È normale scegliere un set di nodi per contenere ogni sottoinsieme dei dati utilizzando Paxos su tutte le macchine nel sistema, quindi eseguire solo Paxos tra quei nodi per tutte le operazioni che riguardano quel sottoinsieme di dati?
E un catch-all: ci sono altri legati al design o ottimizzazioni algoritmici persone stanno facendo per affrontare questo?
Si può usare Zookeeper come servizio (molto simile a Google utilizza paffuto come un servizio) per gestire la coerenza di configurazione di base e metadati condivisi minime. Come suggerisci, può essere l'appartenenza al cluster o quali chiavi aziendali vengono elaborate su quale server in una federazione di server libera non è un cluster compatto. Vedere http://curator.apache.org/ per i modelli standard da cui è possibile creare una federazione più flessibile di elaborazione attorno a un servizio di coerenza/consistenza core altamente coerente. – simbo1905