2011-08-23 5 views
9

L'algoritmo di Paxos può tollerare fino a errori F quando si utilizzano processori 2F + 1. Per quanto ho capito, questo algoritmo funziona solo con un numero fisso di processori. È possibile utilizzare questo algoritmo in un ambiente dinamico, in cui i nodi possono essere aggiunti e rimossi dinamicamente?Utilizzo di Paxos in ambiente dinamico

risposta

-1

Sì. Gryadka è un'implementazione Paxos JavaScript che supporta la riconfigurazione dinamica in 500 linee. Si basa su idee di Vertical Paxos e Raft.

+0

La convinzione che sia necessario estendere Paxos per l'appartenenza ai cluster è su una base molto instabile. La versione cartacea Microsoft di Dynamic Paxos come discusso nella risposta di @ Mateusz di seguito è sufficiente. Tutte le implementazioni pratiche di Paxos Sono a conoscenza dell'aggiornamento dello stato distribuito in modo coerente. Quello stato condiviso può essere banalmente sia lo stato dell'app che l'appartenenza al cluster. Quindi, piuttosto che dover leggere, comprendere e implementare un nuovo approccio, tutte le implicazioni pratiche possono utilizzare "flusso principale Paxos" e "mangiare il proprio cibo per cani" per gestire le modifiche all'appartenenza al cluster. Paxos è stato progettato per questo. – simbo1905

1

Se si dispone di un numero massimo assoluto di nodi, dovrebbe comunque funzionare. Ma ti rimane una situazione in cui il tuo numero di nodi dinamici è 6 il tuo massimo è 11, quindi se 1 nodo fallisce non sei fortunato (i nodi inesistenti falliscono di default). Se si rimuovono e aggiungono nodi, è possibile ripristinare lo stato di un nodo rimosso a un nodo aggiunto per evitare che venga conteggiato come errore.

5

Sì, è possibile, ci sono anche alcuni documenti su di esso. Da quello che ricordo ho letto un po 'su come farlo è stato descritto qui http://research.microsoft.com/pubs/64634/web-dsn-submission.pdf Spero che sia quello che stavi chiedendo. Cerca "paxos dinamici".

+0

Il paxos dinamico è un po 'scarry :) – Lazin

+0

@Lazin in realtà no! Io uso Paxos dinamico ed è stato estremamente stabile. L'idea è che tu abbia due macchine a stati. Il primo è ciò che si pensa tipicamente: lo stato Paxos è quello di mantenere la sincronizzazione. L'altra macchina a stati è la lista dei membri dei nodi. Qualsiasi istanza di Paxos deve utilizzare un'istantanea della macchina dello stato dell'appartenenza. –

+0

@MichaelDeardeuff Dynamic Paxos diventa un po 'spaventoso quando si introduce Multi-paxos. È piuttosto banale quando lo usi con Paxos a istanza singola. –

Problemi correlati