La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Seminario a cura di Oscar Pistamiglio e Federico Vietti 1.

Presentazioni simili


Presentazione sul tema: "Seminario a cura di Oscar Pistamiglio e Federico Vietti 1."— Transcript della presentazione:

1 Seminario a cura di Oscar Pistamiglio e Federico Vietti 1

2 2 Problema del consenso Definizione - Sono quei problemi in cui si hanno vari processi connessi tra loro, i quali devono cooperare per ottenere un risultato comune, indipendentemente dal tipo di input.

3 Seminario a cura di Oscar Pistamiglio e Federico Vietti 3 Alcuni esempi  Transazioni su database distribuiti  Applicazioni in rete  Stima dell’altezza di un aereo grazie alla lettura di altimetri In generale sistemi privi di memoria comune

4 Seminario a cura di Oscar Pistamiglio e Federico Vietti 4  Senza fallimenti  Fallimento:  A livello di link  Versione deterministica  Versione Randomized  A livello di processo  Failure Stopping  Byzantine Stopping Tipologie di ambiente

5 Seminario a cura di Oscar Pistamiglio e Federico Vietti 5 Fallimento dei Link

6 Seminario a cura di Oscar Pistamiglio e Federico Vietti 6 Fallimento dei link:  Sono fallimenti legati alla consegna dei messaggi: A invia un messaggio a B, ma questi non lo riceve ed A non rileva il fallimento

7 Seminario a cura di Oscar Pistamiglio e Federico Vietti 7 Fallimento del link: Versione Deterministica  Problema dell’attacco coordinato: Si hanno n generali che devono attaccare un obiettivo comune. La riuscita dell’attacco si ha solo se tutti gli n generali decidono di attaccare contemporaneamente. Il coordinamento è realizzato tramite scambio di messaggi […]

8 Seminario a cura di Oscar Pistamiglio e Federico Vietti 8 Fallimento del link: Versione Deterministica  Problema dell’attacco coordinato: […] Ogni generale attacca solamente se lo stato del suo esercito è buono. In questo caso invia un segnale positivo agli altri, altrimenti negativo.

9 Seminario a cura di Oscar Pistamiglio e Federico Vietti 9 Fallimento del link: Versione Deterministica  Fallimenti dell’attacco coordinato: I messaggeri, che viaggiano a piedi, possono essere vittime di imboscate del nemico, con conseguente perdita del messaggio  perdita di coordinamento nell’attacco.

10 Seminario a cura di Oscar Pistamiglio e Federico Vietti 10 Fallimento dei link: Versione Deterministica Attacco coordinato Consenso N generali N processi Stato Esercito (buono, non buono) Stato iniziale: {1 - buono,0 - altrimenti} Decisione bellica {0 - pace, 1 - attacco}

11 Seminario a cura di Oscar Pistamiglio e Federico Vietti 11 Fallimento del link: Versione Deterministica Condizioni per decidere:  Agreement (accordo): 2 processi non possono decidere in modo diverso  Validity:  Se tutti i processi iniziano con 0, la decisione è 0.  Se tutti i processi iniziano con 1 e tutti i messaggi sono stati recapitati, l’unica decisione possibile è 1  Termination: ogni processo decide per se

12 Seminario a cura di Oscar Pistamiglio e Federico Vietti 12 Fallimento del link: Versione Deterministica Processi che interagiscono tra loro mediante gli archi di un grafo G non orientato e connesso {0,1}

13 Seminario a cura di Oscar Pistamiglio e Federico Vietti 13 Fallimento del link: Versione Deterministica  Vogliamo dimostrare che non esiste un algoritmo A che risolve il problema utilizzando le condizioni di decisione precedentemente citate.  Per semplicità utilizzeremo un grafo di due nodi connessi da un arco

14 Seminario a cura di Oscar Pistamiglio e Federico Vietti 14 Fallimento del link: Versione Deterministica  Ipotesi:  G =  G =  V = { 1, 2 }  E = { (1,2) }  { Condizioni precedenti }  Tesi:  Non esiste algoritmo risolutivo

15 Seminario a cura di Oscar Pistamiglio e Federico Vietti 15 Fallimento del link: Versione Deterministica  Dimostrazione per assurdo: P1P1 P2P2 Ad ogni esecuzione ciclica dell’algoritmo del processo i viene inviato un messaggio a tutti gli altri processi, contenente il proprio valore di decisione. Ogni ciclo dell’algoritmo è chiamato round “r” 1 1 Decisione

16 Seminario a cura di Oscar Pistamiglio e Federico Vietti 16 Fallimento del link: Versione Deterministica  Dimostrazione per assurdo: P1P1 P2P2 La sequenza di messaggi verrà denotata con il simbolo ⍺. Riportata qui di fianco c’è la sequenza ⍺. In questo caso al termine degli r-esimo round entrambi i processi decideranno 1, quindi i generali attaccano. 1 1

17 Seminario a cura di Oscar Pistamiglio e Federico Vietti 17 Fallimento del link: Versione Deterministica  Dimostrazione per assurdo: P1P1 P2P2 Chiamiamo questa sequenza di messaggi come ⍺ 1. Questa sequenza è uguale alla precedente ad eccezione dell’assenza dell’ultimo messaggio. Infatti fallisce la ricezione dell’ultimo messaggio di P 1. Per P 1 la sequenza è indistinguibile dalla precedente 1 1

18 Seminario a cura di Oscar Pistamiglio e Federico Vietti 18 Fallimento del link: Versione Deterministica L’ indistinguibilità di una sequenza da una sequenza da parte di un certo processo Psi indica con: L’ indistinguibilità di una sequenza ⍺ da una sequenza ⍺ 1 da parte di un certo processo P y si indica con: ⍺ ~ ⍺ 1 y

19 Seminario a cura di Oscar Pistamiglio e Federico Vietti 19 Fallimento del link: Versione Deterministica  Dimostrazione per assurdo: P1P1 P2P2 Se creiamo un’altra sequenza ⍺ 2 che differisce dalla precedente per l’assenza di un arco che va da P 2 a P 1, avremo che per P 2 questa sequenza sarà indistinguibile dalla precedente, ossia: 1 1 ⍺ 1 ~ ⍺ 2 2 Decisione per entrambi uguale a 1.

20 Seminario a cura di Oscar Pistamiglio e Federico Vietti 20 Fallimento del link: Versione Deterministica  Dimostrazione per assurdo: P1P1 P2P2 Se continuiamo su questa strada, rimuovendo alternativamente un arco da entrambe le parti. Raggiungeremo una sequenza ⍺ ’ in cui i messaggi non sono consegnati. I processi sono forzati a decidere 1 in questo caso. 1 1 Decisione per entrambi uguale a 1.

21 Seminario a cura di Oscar Pistamiglio e Federico Vietti 21 Fallimento del link: Versione Deterministica  Dimostrazione per assurdo: P1P1 P2P2 Supponiamo di avere la sequenza ⍺ ’’ in cui nessun messaggio è consegnato. Ma il valore iniziale di P 2 stavolta è 0. P 2 è forzato a decidere 1 in questo caso perché P 1 deciderà 1 visto che per lui: 1 0 Decisione per entrambi uguale a 1. ⍺ ’’~ ⍺ ’ 1

22 Seminario a cura di Oscar Pistamiglio e Federico Vietti 22 Fallimento del link: Versione Deterministica  Dimostrazione per assurdo: P1P1 P2P2 A questo punto immaginiamo la sequenza ⍺ ’’’ in cui nessun messaggio è consegnato, ma entrambi i processi sono inizializzati a 0. Siccome per P 2 non c’è alcuna differenza rispetto alla sequenza precedente: 0 0 ⍺ ’’’~ ⍺ ’’ 2

23 Seminario a cura di Oscar Pistamiglio e Federico Vietti 23 Fallimento del link: Versione Deterministica  Dimostrazione per assurdo: P1P1 P2P2 P 2 deciderà nuovamente 1 perché non è cambiato nulla rispetto a prima. Mentre P 1 deciderà 0  0 0 Decisione spaiata in disaccordo con l’Agreement C.V.D.

24 Seminario a cura di Oscar Pistamiglio e Federico Vietti 24 Fallimento del link: Versione Randomized  In questa versione si inseriscono delle supposizioni ulteriori:  Che il protocollo di comunicazione termini dopo r round (cicli dell’algoritmo con spedizione di messaggi)  Che ci sia una probabilità di errore ε, ovvero che possa succedere che i processi non raggiungano lo stesso risultato

25 Seminario a cura di Oscar Pistamiglio e Federico Vietti 25 Fallimento del link: Versione Randomized Con probabilità di errore si intende con quale probabilità sia il disaccordo tra i processi a causa di messaggi non recapitati Quel che vogliamo fare è cercare di stabilire qual è la relazione che c’è tra la probabilità di errore ε ed il numero di round

26 Seminario a cura di Oscar Pistamiglio e Federico Vietti 26 Fallimento del link: Versione Randomized Premessa: la difficoltà di calcolo della stima è data soprattutto da quali messaggi sono perduti  ci poniamo nel caso peggiore: un avversario che cerca di impedire il corretto raggiungimento del consenso:  Input  Communication pattern

27 Seminario a cura di Oscar Pistamiglio e Federico Vietti 27 Fallimento del link: Versione Randomized  Formalizzazione delle condizioni(1)  Communication Pattern E’ un sottoinsieme ω dell’insieme così definito: {(i,j,k): (i,j) è un arco del grafo, e k≥1} Ovvero di tutte le triple che contengono i due nodi di un arco ed un intero. Un elemento appartenente ad ω indica che al round k è stato inviato un messaggio da i a j.

28 Seminario a cura di Oscar Pistamiglio e Federico Vietti 28 Fallimento del link: Versione Randomized Un communication pattern è definito “buono” se per ogni elemento di ω, k < r, ed in quel caso si può utilizzare come descrittore dell’insieme di messaggi che sono stati inviati in una esecuzione

29 Seminario a cura di Oscar Pistamiglio e Federico Vietti 29 Fallimento del link: Versione Randomized  Formalizzazione delle condizioni (2)  Agreement: per ogni avversario B abbiamo che: Pr B [ alcuni processi decido per 0 o decidono per 1 ] < ε  Validity: la stessa di prima Non è necessaria la termination (terminano in r round)

30 Seminario a cura di Oscar Pistamiglio e Federico Vietti 30 Fallimento del link: Versione Randomized Per questo problema del consenso in versione non deterministica presentiamo un algoritmo che fissa la probabilità di errore ε in questo modo:

31 Seminario a cura di Oscar Pistamiglio e Federico Vietti 31 Fallimento del link: Versione Randomized Premesse:  L’algoritmo necessita di alcune conoscenze che un processo deve avere:  i valori iniziali di ogni altro processo;  cosa sanno gli altri processi sui valori iniziali di tutti gli altri processi.

32 Seminario a cura di Oscar Pistamiglio e Federico Vietti 32 Fallimento del link: Versione Randomized Premesse:  Si fissa un ordinamento su ogni communication pattern ω: 1.(i,k) ≤ ω (i,k’) per 1 ≤ i ≤ n e 0 ≤ k ≤ k’ 2.se (i,j,k) appartiene a ω, allora (i,k-1) ≤ ω (j,k) 3.se (i,k) ≤ ω (i’,k’) e (i’,k’) ≤ ω (i’’,k’’) allora (i,k) ≤ ω (i’’,k’’)

33 Seminario a cura di Oscar Pistamiglio e Federico Vietti 33 Fallimento del link: Versione Randomized Premesse:  Si fissa information level : level ω (i,k) di ogni processo i al round k, con 0 ≤ k ≤ r, così definito ricorsivamente: 1.se k = 0  level ω (i,k) = 0 2.se k > 0 e j != i e (j, 0) ≰ ω (i, k)  level ω (i,k) = 0 Ed in questo modo si definiscono i casi base.

34 Seminario a cura di Oscar Pistamiglio e Federico Vietti 34 Fallimento del link: Versione Randomized 3.k > 0 e (j, 0) ≤ ω (i, k) per ogni j != i  per ogni j != i l j = max {level ω (j,k’) : (j, k’) ≤ ω (i, k) } l j è il più grande livello che i conosce per il nodo j level ω (i,k) = 1 + min {l j : j != i}

35 Seminario a cura di Oscar Pistamiglio e Federico Vietti 35 Fallimento del link: Versione Randomized Sintetizzando: ogni processo inizia con livello 0 e quando riceve un messaggio modifica il proprio livello inserendo il valore del livello del processo mittente del messaggio incrementato di 1.

36 Seminario a cura di Oscar Pistamiglio e Federico Vietti 36 Fallimento del link: Versione Randomized Esempio: P1P Rounds Communication pattern ω = { (1,2,1), (1,2,2), (2,1,2), (1,2,3), (2,1,4), (1,2,5), (2,1,5), (1,2,6)} n = 2 r = 6

37 Seminario a cura di Oscar Pistamiglio e Federico Vietti 37 Fallimento del link: Versione Randomized Un lemma fondamentale è il seguente:  Per ogni buon communication pattern ≤ k ≤ r, ed ogni i e j,  Per ogni buon communication pattern ω ed ogni k, 0 ≤ k ≤ r, ed ogni i e j, | level ω (i,k) - level ω (j,k) | ≤ 1 Cioè i livelli di ogni nodo differiscono al più di una unità

38 Seminario a cura di Oscar Pistamiglio e Federico Vietti 38 Fallimento del link: Versione Randomized Questo si dimostra intuitivamente pensando che tutti i livelli sono inizializzati a 0 e poi il livello di ogni processo ad un certo round k è dato dal proprio livello al round precedente oppure dal massimo livello degli altri processi incrementati di 1.

39 Seminario a cura di Oscar Pistamiglio e Federico Vietti 39 Fallimento del link: Versione Randomized Altro lemma fondamentale è il seguente:  Per ogni buon communication pattern  Per ogni buon communication pattern ω completo (cioè contenente tutte le possibili triple (i,j,k)): level ω (i,k) = k per ogni i e k Cioè se la comunicazione non ha errori allora ad ogni round il livello è uguale al numero del round stesso

40 Seminario a cura di Oscar Pistamiglio e Federico Vietti 40 Fallimento del link: Versione Randomized Anche in questo caso la dimostrazione è intuitiva, cioè se non ci sono messaggi mancanti ad ogni round il livello è incrementato di 1 e quindi al round k il livello è k stesso. Conseguenza: se non ci sono errori al termine dello scambio di messaggi il livello è uguale ad r

41 Seminario a cura di Oscar Pistamiglio e Federico Vietti 41 Fallimento del link: Versione Randomized Vediamo ora una definizione informale dell’algoritmo:  ogni processo tiene traccia del proprio livello nella variabile level valutando i communication pattern che gli giungono;  Il processo 1 crea un valore key compreso tra 1 ed r;  Il valore key è inserito in tutti i messaggi spediti;  Nei messaggi è anche inserito la descrizione dei valori iniziali di tutti i messaggi;

42 Seminario a cura di Oscar Pistamiglio e Federico Vietti 42 Fallimento del link: Versione Randomized  dopo r round ogni processo valuta quale decisione prendere e decide per 1 solo se le seguenti condizioni sono verificate:  se il livello calcolato è grande almeno come key;  se i valori iniziali di tutti i processi sono a 1

43 Seminario a cura di Oscar Pistamiglio e Federico Vietti 43 Fallimento del link: Versione Randomized Formalizziamo l’algoritmo e definiamo l’alfabeto di ogni messaggio, che è nella seguente tripla: (L, V, k) dove  L è il vettore dei livelli precedenti alla elaborazione che farà il processo che riceve il messaggio;  V è un vettore che può assumere i valori {0,1,undefined} e rappresenta gli eventuali valori iniziali di ogni processo  k è il valore della chiave decisa dal processo 1

44 Seminario a cura di Oscar Pistamiglio e Federico Vietti 44 Fallimento del link: Versione Randomized States i : rounds ∈ N, inizialmente 0 decision ∈ {unknown, 0, 1}, inizialmente unknown key ∈ [1, r] ∪ undefined, inizialmente undefined per ogni j, 1 ≤ j ≤ n: val(j) ∈ {0, 1, undefined}; inizialmente val(i) è il valore iniziale del processo e val(j) = undefined per ogni i != j level(j) ∈ [-1,r]; inizialmente level(i) = 0 and level(j) = -1 per ogni i != j

45 Seminario a cura di Oscar Pistamiglio e Federico Vietti 45 Fallimento del link: Versione Randomized rand i : se i = 1 e rounds = 0 allora key := valore casuale msgs i : send (L, V, key) a tutti i j, in cui L è il vettore dei livelli interno al processo e V è il vettore dei valori iniziali

46 Seminario a cura di Oscar Pistamiglio e Federico Vietti 46 Fallimento del link: Versione Randomized trans i : rounds := rounds + 1 (L j,V j,k j ) sono i messaggi ricevuti da j, per ogni j da cui è arrivato un messaggio se c’è qualche k j definito key := k j per tutti j != i se c’è qualche V j (j) definito  val(j) := V j (j) se c’è qualche L j (j) > level(j)  level(j) := max {L j (j)} level(i) := 1 + min {level(j): j != i} Se rounds = r  se key è definito e level(i) ≥ key e val(j) =1per ogni j  decision := 1 altrimenti decision := 0

47 Seminario a cura di Oscar Pistamiglio e Federico Vietti 47 Fallimento del link: Versione Randomized Esempio: Il processo 1 sceglie una qualsivoglia key compresa tra 1 e 6. Al momento del r-esimo round ogni processo valuta la decisione da prendere confrontando i dati raccolti fino al tempo r. Per decidere viene fatto un confronto tra la chiave e il livello raggiunto […]

48 Seminario a cura di Oscar Pistamiglio e Federico Vietti 48 Fallimento del link: Versione Randomized […] ogni processo ha un proprio livello. Se vi è stata una perdita di messaggi i livelli sono minori di r. La differenza tra i livelli è sempre minore o uguale a 1. Come detto inizialmente il fallimento dell’algoritmo si ha con il disaccordo dei processi, evento che si verifica una volta su r round […]

49 Seminario a cura di Oscar Pistamiglio e Federico Vietti 49 Fallimento del link: Versione Randomized […] ossia quando tra i processi, quello con valore di livello massimo ha tale valore uguale alla chiave (una volta su 6), e vi è almeno un processo con valore di livello differente. Level al round 6 Risultato P1P1P1P1 P2P2P2P2 01Accordo 12Accordo 23Accordo 34Accordo 45Disaccordo 56Accordo key = 5 n = 2 r = 6

50 Seminario a cura di Oscar Pistamiglio e Federico Vietti 50 Fallimento dei processi

51 Seminario a cura di Oscar Pistamiglio e Federico Vietti 51 Fallimento dei processi  Vi sono 2 tipi di fallimento:  Stopping failure I processi falliscono senza dare nessun tipo di allarme  Byzantine failure I processi che falliscono mostrano un comportamento casuale

52 Seminario a cura di Oscar Pistamiglio e Federico Vietti 52 Fallimento dei processi  Il problema  Abbiamo una rete composta da n-nodi connessi in un grafo non orientato  Tutti i processi iniziano con un input fisso tratto da un insieme di valori V  Obiettivo: arrivare ad una decisione comune valutando i valori iniziali  Il numero di processi falliti è al massimo f

53 Seminario a cura di Oscar Pistamiglio e Federico Vietti 53 Fallimento dei processi  Siccome stavolta intervengono i fallimenti, questi verranno considerati non in termini probabilistici, ma fissandone un limite superiore f

54 Seminario a cura di Oscar Pistamiglio e Federico Vietti 54 Fallimento dei processi: Stopping Failure Condizioni di correttezza:  Agreement: 2 processi non possono decidere in modo diverso  Validity:  Se tutti i processi partono con un valore v appartenente all’insieme V, allora questo è l’unico valore possibile di decisione  Termination: Tutti i processi che non falliscono decidono

55 Seminario a cura di Oscar Pistamiglio e Federico Vietti 55 Fallimento dei processi: Byzantine Failure Condizioni di correttezza:  Agreement (new): 2 processi non falliti non possono decidere in modo diverso  Validity (new):  Se tutti i processi non falliti partono con un valore v appartenente all’insieme V, allora questo è l’unico valore possibile di decisione per i processi non falliti  Termination: Tutti i processi che non falliscono decidono

56 Seminario a cura di Oscar Pistamiglio e Federico Vietti 56 Fallimento dei processi: Stopping Failure Tre algoritmi per risolvere il problema:  FloodSet - algoritmo di base  OptFloodSet - FloodSet a complessità ridotta  EIG – Exponential Information Gathering

57 Seminario a cura di Oscar Pistamiglio e Federico Vietti 57 Fallimento dei processi: Stopping Failure Algoritmo informale: Ogni processo ha una variabile W che è un sottoinsieme di V, inizialmente contenente il valore iniziale del processo. Ad ogni round, che sono f+1, ogni processo invia in modalità broadcast, la sua W. Al momento della ricezione del messaggio dagli altri processi, aggiorna la sua W, aggiungendogli i valori di W inviati dagli altri processi [...]

58 Seminario a cura di Oscar Pistamiglio e Federico Vietti 58 Fallimento dei processi: Stopping Failure [...] dopo f+1 round il processo decide v 0 se il suo W è composto da più di un elemento, se invece W è un singoletto decide per l’elemento contenuto

59 Seminario a cura di Oscar Pistamiglio e Federico Vietti 59 Fallimento dei processi: Stopping Failure Proc.Val Proc.Val Proc.Val f = 1 n = W 3 = { 1 } W 4 = { 1 } W 2 = { 1 }W 1 = { 1 } Round = 0Proc.Val

60 Seminario a cura di Oscar Pistamiglio e Federico Vietti 60 Fallimento dei processi: Stopping Failure Proc.Val Proc.Val f = 1 n = W 3 = { 1 } W 4 = { 1 } W 2 = { 1 } W 1 = { 1 } Round = 1Proc.Val Il processo 2 fallisce

61 Seminario a cura di Oscar Pistamiglio e Federico Vietti 61 Fallimento dei processi: Stopping Failure Proc.Val Proc.Val f = 1 n = W 3 = { 1 } W 4 = { 1 } W 2 = { 1 } W 1 = { 1 } Round = 2Proc.Val Il processo 2 fallisce Decision1 = 1 Decision3 = 1 Decision4 = 1

62 Seminario a cura di Oscar Pistamiglio e Federico Vietti 62 Fallimento dei processi: Stopping Failure Algoritmo FloodSet (formale): States i : rounds ∈ N, inizialmente 0 decision ∈ V U {unknown}, inizialmente unknown W⊆V, inizialmente il singoletto contenente il valore iniziale del processo i Msgs i : If rounds ≤ f allora invia W agli altri processi

63 Seminario a cura di Oscar Pistamiglio e Federico Vietti 63 Fallimento dei processi: Stopping Failure trans i : rounds := rounds + 1 Sia X j un messaggio del processo j, per ogni j dal quale i riceve un messaggio W i = W i U U j X j W i = W i U U j X j Se rounds = f + 1 allora se |W|=1 allora decision = v dove W = { v } altrimenti decision = v 0

64 Seminario a cura di Oscar Pistamiglio e Federico Vietti 64 Fallimento dei processi: Stopping Failure Algoritmo EIGStop: Ogni processo dispone di un albero. Su ogni nodo avrà un valore (val(x)) che gli comunicano gli altri processi. Il nodo radice (chiamato λ) avrà il valore iniziale val(x) del processo stesso. Round 1: Il processo i-esimo invia il suo val(x) a tutti gli altri processi. Il processo i riceverà quindi i messaggi provenienti dagli altri processi contenenti il val j (x) [...]

65 Seminario a cura di Oscar Pistamiglio e Federico Vietti 65 Fallimento dei processi: Stopping Failure [...] se v appartenente a V arriva a i da j allora i registra il valore v in val(j) altrimenti se non arriva un messaggio con un valore non appartenente all’insieme i registrerà val(j)=null [...]

66 Seminario a cura di Oscar Pistamiglio e Federico Vietti 66 Fallimento dei processi: Stopping Failure [...] Round k (2 ≤ k ≤ f +1): il processo i invia a tutti gli altri le coppie (x,v) dove x è il valore di un nodo a livello k-1 sull’albero T Se xj è un nodo a livello k in T, dove x è una stringa e j è un indice singolo e il messaggio dice che val(x) = v appartenente a V ed arriva a i da j, allora i setta val(xj) a v

67 Seminario a cura di Oscar Pistamiglio e Federico Vietti 67 Fallimento dei processi: Stopping Failure val(λ) 1:val(1) 1:val(2) 1:2:val(3) 1:2:3:val(4) 1:2:val(4) 1:2:4:val(3) 1:val(3)1:val(4) 2:val(2)3:val(3)4:val(4) Livelli

68 Seminario a cura di Oscar Pistamiglio e Federico Vietti 68 Fallimento dei processi: Stopping Failure :33: :33: null 1

69 Seminario a cura di Oscar Pistamiglio e Federico Vietti 69 Fallimento dei processi: Byzantine Failure L’algoritmo che descriveremo per risolvere il problema, EIGByz, è uno tratto dal EIGstop. Premessa importante per tutti gli algoritmi che risolvono questo problema è la seguente:è sempre fissato che il numero dei processi deve essere maggiore di tre volte il numero dei fallimenti. Cioè: n > 3f

70 Seminario a cura di Oscar Pistamiglio e Federico Vietti 70 Fallimento dei processi: Byzantine Failure Algoritmo EIGByz: L’algoritmo è uguale a EIGStop con le seguenti differenze:  Se un processo riceve un messaggio che non è nella forma corretta non lo considera e si comporta come se non l’avesse ricevuto (cioè mette valore NULL);  Al round f+1 il processo sostituisce i valori NULL nell’albero con il valore v 0 ;

71 Seminario a cura di Oscar Pistamiglio e Federico Vietti 71 Fallimento dei processi: Byzantine Failure  Nel momento della decisione il processo parte dalle foglie fino alla radice inserendo un nuovo valore newval(x) per ogni nodo x.  Se nodo è foglia  newval(x) = val(x)  Altrimenti  newval(x) = m dove m è il valore che maggiormente si trova nelle varibili newval nei figli di x. Se un valore di maggioranza non c’è si inserisce val 0.

72 Seminario a cura di Oscar Pistamiglio e Federico Vietti 72 Fallimento dei processi: Byzantine Failure  Il valore di decisione è preso andando a vedere cosa c’è, alla fine dell’esecuzione precedentemente descritta, nel valore newval del nodo radice, newval(λ).

73 Seminario a cura di Oscar Pistamiglio e Federico Vietti Esempio: n=4, con l’albero del processo Il processo quattro impazzisce e spedisce messagi a caso 234

74 Seminario a cura di Oscar Pistamiglio e Federico Vietti 74

75 Seminario a cura di Oscar Pistamiglio e Federico Vietti 75 Bibliografia  Lynch, Distributed Algorithms, Ed. Kaufmann


Scaricare ppt "Seminario a cura di Oscar Pistamiglio e Federico Vietti 1."

Presentazioni simili


Annunci Google