Lezione 5. Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)

Slides:



Advertisements
Presentazioni simili
Dall’informazione al linguaggio macchina
Advertisements

Rappresentazioni numeriche
Fondamenti di Informatica
Simulazione del calcolo di due numeri binari
Convertitori D/A e A/D Enzo Gandolfi.
Rappresentazioni numeriche
(sommario delle lezioni in fondo alla pagina)
Gli alberi binari sono contenitori efficienti.
Esercizi su alberi binari di ricerca
Circuiti di memorizzazione elementari: i Flip Flop
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 06/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Sintesi dei circuiti sequenziali
CONVERSIONE ANALOGICO-DIGITALE, A/D
INTRODUZIONE AI CONVERTITORI ANALOGICO-DIGITALI (ADC)
Rappresentazione dei numeri razionali
27+ 12= Risultato troppo grande = = 39 = -25 errore di overflow in binario =
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 3 Codifica binaria.
A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Somma e differenza di due numeri in C2Somma e differenza di due numeri in C2 Half AdderHalf.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 Complemento a MComplemento a M Rappresentazione di numeri con segnoRappresentazione di numeri.
A.S.E.5.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 5 Rappresentazione di numeri con segnoRappresentazione di numeri con segno –Modulo e segno (MS)
Corso di Informatica (Programmazione)
Automi Cellulari Def. formale di AC e di AC unidimensionale
Algoritmi e strutture dati
Rappresentazione dei dati
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
I CODICI.
Flip-flop e Registri.
Codici binari decimali
Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
Lezione 8.
Ancora esercizi!!! Chernoff Bound allora
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –
Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan MIT and Berkeley Chord: A Scalable Peer-to-peer Lookup Service for Internet.
Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)
Lezione 5 Domande: Laverage path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) Laverage path length di Chord con 2^b.
Errata Corrige. DHT Routing (Tapestry) Tabella di routing (base k=4, digit d=4) Consideriamo il nodo x con id (x 1, x 2, x 3, x 4 ): (1+x 1, *, *, *)
Domande Consideriamo un grafo di de bruijn con base k, ed N = k^b nodi, quale delle seguenti affermazioni è vera (giustificare la risposta) Il grado di.
Semantica per formule di un linguaggio proposizionale p.9 della dispensa.
Cos’è un problema?.
Codifica binaria Rappresentazione di numeri
Conversione binario - ottale/esadecimale
Conversione binario - ottale/esadecimale
Sistemi P2P avanzati Lezione 3 Chord seconda parte.
Sistemi P2P Facciamo un piccolo test Quanti successori ha un nodo nel protocollo Chord? (m) (1) (log N) (nessun prec.) Aumentando il numero di identificatori.
Sistemi P2P avanzati Lezione 4 Consisten Hashing Altri sistemi P2P uniformi F-Chord :-)
Sistemi P2P Facciamo un piccolo test Quanti successori ha un nodo nel protocollo Chord? (m) (1) (log N) (nessun prec.) Aumentando il numero di identificatori.
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
Cos’è una sequenza? Una sequenza è una successione finita di valori, dove ogni valore ha una durata prefissata e costante (T). I valori della sequenza.
Rappresentazione dell’informazione
Diagramma degli stati che descrive il comportamento della rete.
Cassaforte Asincrona di Mealy
ARITMETICA BINARIA.
Parte Terza: Codificare l’informazione
Ci occupiamo della misura dellinformazione emessa da una sorgente la sorgente è tanto più efficiente quanto più risulta imprevedibile da parte del destinatario.
Cerchiamo di rispondere alla seconda domanda 2)La soluzione trovata con lalgoritmo goloso è ottima o esistono anche soluzioni con più di quattro attività?
RB-insert(T, z) // z.left = z.right = T.nil Insert(T, z) z.color = RED // z è rosso. Lunica violazione // possibile delle proprietà degli alberi // rosso-neri.
A.a. 2009/2010 GRUPPO 20 Alessandro Ghidotti Piovan.
Puntatori e gestione dinamica della memoria
Le istruzioni dell’ 8086 Classe 3.
Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale.
Reti Logiche A Lezione xx.x Dispositivi Programmabili
Tecniche di progettazione Fault Tolerant
Risoluzione di Problemi con gli algoritmi Ricorsivi
Rappresentazione dell’Informazione
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
La numerazione ottale. Il sistema di numerazione ottale ha ampio utilizzo in informatica E’ un sistema di numerazione posizionale La base è 8 Il sistema.
Lezione 5 Domande: L’average path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) (b) (b/2) (log(N)) (Nessuna delle precedenti)
Transcript della presentazione:

Lezione 5

Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi Abbiamo detto abbastanza KoordeNeighbor of Neighbor routing (NON)

Koorde E un protocollo chord like E un protocollo chord like ring ring consistent hashing per mappare le chiavi nei nodi consistent hashing per mappare le chiavi nei nodi De Bruijn graph De Bruijn graph APL O(log n) con grado costante APL O(log n) con grado costante APL O(log n / log(log n)) con grado O(log n) APL O(log n / log(log n)) con grado O(log n)

de Bruijn graph Un de Bruijn graph ha un nodo per ogni numero binario di b bits Ogni nodo ha due archi uscenti, in particolare il nodo m ha un link al nodo 2m mod 2 b ; un link al nodo 2m mod 2 b ; un link al nodo 2m+1 mod 2 b ; un link al nodo 2m+1 mod 2 b ; In altre parole dato un nodo m per ottenere i suoi due vicini basta fare lo shift a sinistra della codifica binaria di m (eliminando il bit più significativo) e poi aggiungere 0 e 1;

de Bruijn graph Es.: supponiamo di voler conoscere i vicini del nodo 011 allora facciamo lo shift a sinistra di 011 e otteniamo 0110; facciamo lo shift a sinistra di 011 e otteniamo 0110; eliminiamo il bit più significativo e otteniamo 110; eliminiamo il bit più significativo e otteniamo 110; i due vicini sono quindi: i due vicini sono quindi: = = 111 Denotiamo con m 0 il primo vicino di m m 1 il secondo vicino di m b=3

de Bruijn graph Routing Supponiamo di voler passare dal nodo s=(s 0,s 1,…,s b-1 ) al nodo t=(t 0,t 1,…,t b-1 ) Supponiamo di voler passare dal nodo s=(s 0,s 1,…,s b-1 ) al nodo t=(t 0,t 1,…,t b-1 ) passo 1: s s 1 = s t 0 s 1 =(s 1,s 2,…,t 0 ) passo 2: s 1 s 2 = s 1 t 1 s 2 =(s 2,…, t 0,t 1 ) passo 3: s 2 s 3 = s 2 t 2 s 3 =(…, t 0,t 1,t 2 ) passo b: s b-1 s b = s b-1 t b-1 s b =(t 0,t 1,…, t b-1 )=t b=3 b passi diametro = b = log n

de Bruijn graph Routing Es.: b=3 vogliamo passare dal nodo 011 al nodo 100 Es.: b=3 vogliamo passare dal nodo 011 al nodo 100 Passo 1: da 011 a 111 Passo 2: da 111 a 110 Passo 3: da 110 a b=

de Bruijn graph m.lookup(k,ks) if k=m return m else t=m topbit(ks) return t.lookup(k,ks<<1) b=3 m nodo sorgente k nodo destinazione La prima chiamata è m.lookup(k,k )

de Bruijn graph Routing ottimizzato Calcolo la dimensione j del più grande suffisso del nodo sorgente s che è anche prefisso del nodo destinazione t. Calcolo la dimensione j del più grande suffisso del nodo sorgente s che è anche prefisso del nodo destinazione t. Il routing inizia al passo j+1 Il routing inizia al passo j+1 Es.: b=3 vogliamo passare dal nodo s=011 al nodo t=100 Es.: b=3 vogliamo passare dal nodo s=011 al nodo t=100 Passo 2: da 011 a 110 Passo 3: da 110 a b=

de Bruijn graph m.lookup(k,ks) if k=m return m else t=m topbit(ks) return t.lookup(k,ks<<1) b=3 m nodo sorgente k nodo destinazione <<j La prima chiamata è m.lookup(k,k <<j)

de Bruijn graph b= b=3 E difficile da guardare figuriamoci da implementare secondo vicino primo vicino

de Bruijn graph b=3 La maggior parte delle applicazioni usa un numero di nodi effettivo molto più piccolo di 2 b. Evitare collisioni nellassegnare chiavi; In generale il sistema deve poter evolversi (n deve poter variare). E se manca un nodo? E se ne mancano tanti? b è di solito 160 (SHA) Gli indirizzi IP sono 2 32

de Bruijn graph: Koorde b=160 Aggiungiamo due ulteriori link per ogni nodo: Un link al successore nellanello Un link al predecessore di 2m mod 2 b Consideriamo ora un ring non completo Il nodo m ha due link ai nodi immaginari: 2m mod 2 b 2m+1 mod 2 b m Link a nodi effettivi

Koorde b=160 La nuova procedura di routing, invece di attraversare i nodi del grafo di de Bruijn ne attraversa i predecessori; 2 fasi Cerca il predecessore di s i Passa al nuovo nodo s i b=3

Koorde m.lookup(k,ks) if k=m return m else t=m topbit(ks) return t.lookup(k,ks<<1) m.lookup(k,ks,i) if k (m, m.successor] return successor else if i (m, m.successor] return d.lookup(k,ks<<1, i topbit(ks)) else else return m.successor.lookup(k,ks,i) Abbiamo raggiunto la destinazione ? Abbiamo raggiunto il predecessore del nodo immaginario? d è il link al predecessore di 2m mod 2 b

Koorde m.lookup(k,ks,i) 1if k (m, m.successor] return successor 2else if i (m, m.successor] 3 return d.lookup(k,ks<<1, i topbit(ks)) 4 else 5 return m.successor.lookup(k,ks,i) Cerchiamo il predecessore del nodo immaginario? Passiamo al nuovo nodo del grafo di de Bruijn Il passo 3 viene eseguito al massimo b volte Quante volte eseguiamo il passo 5, vale a dire quanto impieghiamo per trovare il predecessore di un nodo immaginario?

Koorde Lemma Il numero medio di passi, durante una operazione di lookup in Koorde è 3b Prova Nel passare dal nodo immaginario i al nodo immaginario i topbit(ks), ci muoviamo dal nodo m=predecessor(i) al nodo m.d (predecessor di 2m mod 2 b ) e poi ci spostiamo usando i successor pointer fino a raggiungere il predecessor del nodo immaginario i topbit(ks), Le frecce gialle sono b Quante sono le frecce verdi? Ogni hop su un grafo di de Bruijn si traduce in una path in koorde. Quanto è lunga questa path in media?

Koorde I nodi attraversati fra due frecce gialle sono i nodi che si trovano fra 2m e 2i+1 Quanti nodi ci sono nellintervallo I =(2m,2i+1)? |I|=(2i-2m)/(2 b /n) Sapendo che il valore atteso di i-m 2 b /n I (2 2 b /n )/(2 b /n) =2 In totale dunque per ogni freccia gialla vi sono in media 2 frecce verdi In totale 3b passi m i 2m 2i 2i+1 2 b /n Distanza media fra due nodi 2 b /n

Koorde m.lookup(k,ks,i) 1if k (m, m.successor] return successor 2else if i (m, m.successor] 3 return d.lookup(k,ks<<1, i topbit(ks)) 4 else 5 return m.successor.lookup(k,ks,i) Poiché m è responsabile di tutti i nodi immaginari che vanno da m e m.successor è possibile migliorare ulteriormente lalgoritmo. La distanza fra m e il suo successore è con alta probabilità maggiore di 2 b /n 2

Koorde Claim La distanza fra m e il suo successore è con alta probabilità maggiore di 2 b /n 2 Prova (Sketch) Fissato un nodo la probabilità che un altro nodo qualsiasi sia più vicino di 2 b /n 2 è (2 b /n 2 )/2 b = 1/n 2. La probabilità che nessuno degli altri n-1nodi sia più vicino di 2 b /n 2 è (1-1/n 2 ) n-1 >1-1/n. Distanza media 2 b /n Distanza 2 b /n 2

Koorde Abbiamo dimostrato che la distanza fra m e il suo successore è con alta probabilità maggiore di 2 b /n 2 Questo significa che il nodo m è responsabile di nodi immaginari con tutte le possibili combinazioni degli ultimi log(2 b /n 2 )= b-2logn bit. Scegliendo come nodo immaginario iniziale il nodo che ha gli ultimi b-2logn bit uguali a i primi b-2logn del nodo destinazione, dobbiamo effettuare alla fine soltanto (b-(b-2logn))*3 passi = 6logn passi circa.

Koorde Koorde (base 2) Koorde (base 2) Ha APL O(log n) con grado costante Ha APL O(log n) con grado costante Si può dimostrare che anche il diametro è con alta probabilità (WHP) O(log n). Si può dimostrare che anche il diametro è con alta probabilità (WHP) O(log n). Koorde (base k) Utilizziamo i grafi di de Bruijn base k Utilizziamo i grafi di de Bruijn base k Scegliamo k = log n Scegliamo k = log n

de Bruijn graph base k Per ogni k, in un grafo di de Bruijn base k, ogni nodo m è connesso a altri k nodi: km mod k b km mod k b km+1 mod k b km+1 mod k b … km+(k-1) mod k b km+(k-1) mod k bEsempio k=4, b=3, n=k b =64 e m=321 4 = 57 k=4, b=3, n=k b =64 e m=321 4 = 57 Il primo vicino è =36 Il secondo vicino è =37 Il terzo vicino è =38 Il quarto vicino è = b=3 k=2 Diametro O(log k n)

de Bruijn graph base k Esempio k=3, b=2, n=k b =9 k=3, b=2, n=k b =9 b= b=2 k=

Koorde base k k+1 nuovi link Il link al successore nellanello Il link al successore nellanello k link ai predecessori dei vicini k link ai predecessori dei vicini Epossibile fare routing con grado k e APL O(log k n) b= b=2 k=

Koorde base k Scegliendo k = O(log n): Grado = O(log n) Grado = O(log n) APL = O(log n / log (log n)) APL = O(log n / log (log n))Svantaggi Bisogna stimare n a priori; Bisogna stimare n a priori; Non è possibile cambiare il grado in un sistema attivo; Non è possibile cambiare il grado in un sistema attivo; E molto complicato stabilizzare la rete; E molto complicato stabilizzare la rete; b=2 k=

Ricapitolando…. Sistemi P2P puri Sistemi UniformiSistemi Non uniformi KoordeNeighbor of Neighbor routing (NON)