Prove di correttezza dei classici Paxos e Fast Paxos


13

Sto leggendo il documento "Fast Paxos" di Leslie Lamport e rimango bloccato con le prove di correttezza di entrambi i classici Paxos e Fast Paxos.

Per coerenza, il valore scelto dal coordinatore in fase al turno dovrebbe soddisfarev2ai

CP(v,i): per ogni round , nessun valore diverso da è stato o potrebbe essere ancora scelto nel round .v jj<ivj


Per i Paxos classici , la prova (Pagina 8) è divisa in tre casi: , j = k , e j < k , dove k è il numero tondo più grande in cui alcuni accettori hanno riferito al coordinatore per fase 1 b Messaggio. Non ho capito l'argomento per il terzo caso:k<j<ij=kj<kk1b

Caso . Possiamo supporre per induzione che la proprietà C P fosse mantenuta quando l'accettore uno 0 votato per v nel round k . Ciò implica che nessun valore diverso da v è stato o potrebbe essere ancora scelto nel round j .j<kCPa0vkvj

La mia domanda è:

  1. Perché possiamo supporre che la proprietà mantenuta quando accettore uno 0 votato per v nel round k ?CPa0vk

Sembra che stiamo usando l'induzione matematica, quindi quali sono le basi, l'ipotesi induttiva e i passaggi induttivi?


Per Fast Paxos , lo stesso argomento (Pagina 18) continua. Dice,

Caso . Per qualsiasi v in V , nessun valore diverso da v è stato o potrebbe essere ancora scelto nel round j .j<kvVvj

La mia domanda è:

  1. Come si ottiene questo? In particolare, perché qui "Per qualsiasi in V "?vV

Secondo me, la prova di correttezza del caso si basa (ricorsivamente) su quelli dei casi di k < j < i e j = k . j<kk<j<ij=k

Pertanto, come possiamo concludere il caso senza prima provare completamente j = k (ovvero, mancando la sottocassa di j = k dove V contiene più di un valore)?j<kj=kj=kV

Risposte:


10

Perché possiamo supporre che il CP di proprietà sia detenuto quando l'accettore a0 ha votato per v nel round k? Sembra che stiamo usando l'induzione matematica, quindi quali sono le basi, l'ipotesi induttiva e i passaggi induttivi?

Stai guardando un esempio di forte induzione . Nella semplice induzione si assume che la proprietà valga per e si dimostra che valga per n = m + 1 . In forte induzione si assume che la proprietà valga per n : n < m e si dimostra che valga per n = m + 1 .n=mn=m+1n:n<mn=m+1

Base (credo): . Cioè, il round null (poiché i round iniziano da 1). Questo è banalmente vero, motivo per cui non è stato dichiarato esplicitamente.j=0

Fase induttiva : supponiamo ; dimostrare C P ( v ; j + 1 ) dove j < i .n,nj:CP(v;n)CP(v;j+1)j<i

Che ci crediate o no, questo è solo uno schizzo di prova . La vera prova è nel documento del Parlamento a tempo parziale. (Alcuni considerano la carta criptica, altri la considerano divertente.)


Come si ottiene questo?

Secondo me, la prova di correttezza del caso si basa (ricorsivamente) su quelli dei casi di k < j < i e j = k .j<kk<j<ij=k

Pertanto, come possiamo concludere il caso senza prima provare completamente j = k (ovvero, mancando la sottocassa di j = k dove V contiene più di un valore)?j<kj=kj=kV

Questa è di nuovo una forte induzione, quindi il caso si basa sui casi di k < j e j = k , ma attraverso l'ipotesi di induzione , vale a dire dal precedente round di Paxos.j<kk<jj=k


Suggerimenti generali per le prove di Lamport.

Lamport utilizza una tecnica di prove gerarchiche. Ad esempio, la struttura della prova alle pagine 7-8 è in qualche modo simile a questa:

  • Supponiamo ; dimostrare C P ( v ; j + 1 ) dove j < i . n,nj:CP(v;n)CP(v;j+1)j<i
    1. Osservazione 1
    2. Osservazione 2
    3. Osservazione 3
    4. k=argmax(...)
    5. caso k = 0
    6. caso k> 0
      • caso k <j
      • caso k = j
      • caso j <k

Lamport tende a usare un altro tipo di gerarchia. Dimostrerà un algoritmo più semplice, e quindi dimostrerà che un algoritmo più complesso mappa (o "estende" ) l'algoritmo più semplice. Questo non sembra accadere a pagina 18, ma è qualcosa da cercare. (La prova a pagina 18 sembra essere una modifica della prova a pagine 7-8; non una sua estensione .)

Lamport si basa fortemente su una forte induzione ; tende anche a pensare in termini di set anziché di numeri. Quindi potresti ottenere set vuoti in cui gli altri avrebbero zeri o null; o impostare sindacati in cui altri avrebbero avuto un'aggiunta.

La dimostrazione della correttezza dei sistemi di trasmissione di messaggi asincroni richiede una visione onnisciente del sistema rispetto al tempo . Ad esempio, quando si considerano le azioni nel round , tenere presente che le azioni per alcuni round j < i potrebbero non essere avvenute nel tempo! . Eppure Lamport afferma questi eventi potenzialmente futuri al passato.ij<i

I sistemi e le prove di Lamports tendono ad avere una variabile o un insieme di variabili che possono andare solo in una direzione; incrementando solo i numeri e aggiungendo solo ai set. Questo è ampiamente utilizzato nelle sue prove. Ad esempio, a pagina 8 Lamport mostra come ha castrato la futura capacità di di esprimere un altro voto:a

... Poiché ha impostato su i al momento dell'invio di un messaggio, a non avrebbe potuto successivamente votare in alcun turno numerato meno di me ....rnd[a]iai

È sicuramente un allungamento del cervello per dimostrare questo tipo di sistemi.

(aggiornamento) : elenca gli invarianti; Lamport usa molti invarianti durante lo sviluppo e le sue prove. A volte sono sparsi in tutte le prove; a volte sono presenti solo nella prova controllata dalla macchina. Motivo di ogni invariante; perché è lì? Come interagisce con gli altri invarianti? In che modo ogni passaggio nel sistema mantiene questo invariante?


Informativa completa : non avevo letto Fast Paxos fino a quando non mi è stato chiesto di rispondere a questa domanda; e guardava solo le pagine citate. Sono un ingegnere e non un matematico; il mio pennello con il lavoro di Lamport si basa esclusivamente sulla necessità di inventare e mantenere correttamente i sistemi distribuiti su larga scala.

La mia risposta si basa fortemente sulla mia esperienza con il lavoro di Lamport. Ho letto diversi protocolli e prove di Lamport; Mantengo professionalmente un sistema basato su paxos; Ho scritto e dimostrato un protocollo di consenso ad alto rendimento, e ancora una volta mantengo professionalmente un sistema basato su di esso (sto cercando di convincere la mia azienda a consentirmi di pubblicare un documento). Io ho collaborato a un documento insignificante Lamport, nel quale mi sono incontrato con lui tre volte (la carta è ancora in attesa di revisione tra pari.)


Grazie per il tuo tempo, le risposte e gli eccellenti commenti sulle prove di Lamport! Per Paxos: ora, posso cogliere l'idea di base della prova di Lamport. Tuttavia, il flusso di tempo nella mia mente torna indietro : siamo al round e abbiamo k = m a x ( ) . Per dimostrare C P ( v , i ) , esaminiamo i casi di k < j < i e j = k , e ricorsivamente dimostrare C P ( v , k )ik=max()CP(v,i)k<j<ij=kCP(v,k). Vale a dire, coinvolge un altro k = m a x ( ) , casi di k < j < k e j = k e C P ( v , k ) . Questa ricorsione termina con k n = 0 . In questo modo, la ricorsione è su kCP(v,k)k=max()k<j<kj=kCP(v,k)kn=0kS. Ho difficoltà a tradurlo in una forte induzione con il tempo che scorre in avanti .
hengxin,

1
@hengxin Quando si ragiona sul mio sistema / prova; Ci ho pensato con il passare del tempo. Vorrei iniziare con e assicurarmi che tutti gli invarianti siano soddisfatti; Vorrei quindi andare con i = 1 e assicurarmi che tutti gli invarianti siano soddisfatti; e così via. Questo mi ricorda di aggiungere altri puntatori Lamport. i=0i=1
Michael Deardeuff,

Per Fast Paxos ( ), è l'ipotesi induttiva che " v V , C P ( v , i ) " (vedi il caso j < k in P 18 )? Tuttavia, in fondo a P 17 , dice che dobbiamo trovare un valore v in V che soddisfi C P ( v , i ) . Quindi, questa ipotesi induttiva è troppo forte? P18vV,CP(v,i)j<kP18P17vVCP(v,i)
hengxin,

Alla fine, ho capito che cos'è l'invariante e come funziona la forte induzione. Grazie ancora. A proposito, hai detto che Lamport tends to use another type of hierarchy. He'll prove a simpler algorithm, and then prove that a more complex algorithm maps onto (or "extends") the simpler algorithm, quindi, potresti mostrare un esempio o citare un documento correlato? Inoltre, i tuoi articoli hanno edizioni prestampate (commercialmente) non classificate?
hengxin,

1
Lamport spiega il primo tipo di gerarchia nel suo articolo Come scrivere una prova e dà un esempio del secondo in Bizantizzare Paxos per raffinatezza . Il secondo tipo di gerarchia è in genere chiamato un perfezionamento o una mappatura .
Michael Deardeuff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.