David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe
Utente f0rnisce unimmagine Trovare immagini simili nel database basandosi su distanza quadratica tra le features Difficoltà nel lavorare con dati di questo genere? 2 Gruppo 13 M-Chord
Dati ad alta dimensionalità Funzioni distanza onerose computazionalmente (nellordine di O(D 2 )) Dati non gestibili efficientemente con spazi vettoriali Query multidimensionali di similarità Servono nuove strategie! 3 Gruppo 13 M-Chord
Introduzione di spazi metrici anziché vettoriali Sviluppo di strategie distribuite per dividere il carico di lavoro su nodi interconnessi tra loro Al momento della pubblicazione, numerosi studi su applicazioni di ricerca distribuita, ma la maggior parte di loro si concentrano su spazi vettoriali Gli unici riguardanti spazi metrici sono GHT* (nativamente metrica, basata sui Generalized Hyperplane Tree) e MCAN, che estende il protocollo CAN (Content Addressable Network) 4 Gruppo 13 M-Chord
Sviluppare una struttura per la ricerca distribuita che sia applicabile a spazi metrici basandosi su alcune soluzioni esistenti: iDistance Protocollo Chord Esse verranno integrate ed estese nella struttura di M- Chord 5 Gruppo 13 M-Chord
Uno spazio metrico M è una coppia (U, d) U è il dominio degli oggetti d è una funzione di distanza Tutti gli oggetti di U soddisfano le seguenti proprietà: 6 Gruppo 13 M-Chord
Metodo di indicizzazione per ricerca di similarità in spazi vettoriali Partizione dei dati in n cluster, rappresentati da un pivot p i A ogni oggetto x viene assegnata chiave unidimensionale che tiene conto della distanza dal pivot c è una costante per separare i cluster Valori sono memorizzati in un B + -tree sulla base della chiave iDist(x) 7 Gruppo 13 M-Chord
P0P0 P2 C0 C1 C2 C2*C3*C P1P1 8 Gruppo 13 M-Chord
Protocollo P2P per Distributed Hash Table Chord specifica come chiavi debbano essere assegnate ai nodi, come si possa localizzare nodo responsabile per una chiave e come esso recuperi valore di una chiave specifica Basato su scambio di messaggi Dinamico, consistent hashing Dominio mappato uniformemente nellintervallo [0,2 m ) 9 Gruppo 13 M-Chord
Le chiavi K i sono disposte su un cerchio A ogni nodo N i viene assegnata la chiave K i dallo stesso dominio Nodo N i responsabile per tutte le chiavi dellintervallo (K i-1, K i ](mod 2 m ) Ogni nodo mantiene successore, predecessore e finger table, che garantisce un routing di complessità O(log n) 10 Gruppo 13 M-Chord
N1 N8 N14 N21 N51 N48 N42 N38 N Gruppo 13 M-Chord Finger table ha dimensioni minori rispetto al numero totale nodi Necessario mantenerla aggiornata nel tempo Non contiene info necessarie per raggiungere valori di chiave direttamente Tiene anche in conto possibilità di failure del nodo
12 Gruppo 13 M-Chord N1 N8 N14 N21 N51 N48 N42 N38 N32 lookup(54) K54 Cercando la chiave 54 è necessario visitare 2 altri nodi. Se non avessi finger table, li dovrei passare tutti! Algoritmo semplificato per cercare una chiave: Se appartiene a chiavi locali, restituisci il valore Altrimenti accedi alla finger table e cerca il più grande predecessore della chiave richiesta, in modo da avvicinarsi il più possibile al nodo che contiene la chiave N56
Idee alla base di M-Chord: Generalizzare iDistance a spazi metrici e adattare il suo dominio a quello di Chord Dividere il dominio in intervalli da distribuire sui diversi nodi Sviluppare gli algoritmi Range e kNN Introdurre meccanismi di pruning 13 Gruppo 13 M-Chord
Durante partizionamento, che sfrutta diagrammi di Voronoi, distanze dei punti da ogni pivot sono salvate per essere poi sfruttate nel pruning delle query di Range Data una query Range(q, r), per diseguaglianza triangolare oggetto x può essere escluso senza valutare d(q, x) se xr qPiPi d(x,Pi)- d(q,Pi)>r ?>r ? 14 Gruppo 13 M-Chord
Selezione pivot Criterio di selezione: aumentare il più possibile il filtraggio Dominio dei dati Necessaria una funzione di trasformazione h per normalizzare il dominio fornito da iDistance sullintervallo [0, 2 m ) ed ottenere una distribuzione uniforme 15 Gruppo 13 M-Chord
Topologia della rete corrisponde a quella di Chord Fase di inizializzazione (SampleSet S, numero pivot) Un solo nodo attivo che copre tutto (chiave 2 m -1) Selezione dei pivot su S Si applica formula di iDistance su S per avere distribuzione dei dati e si ricava funzione di trasformazione h in modo da poter calcolare mchord(x) 16 Gruppo 13 M-Chord
Attivazione altri nodi I nodi a cui non sono assegnate chiavi sono non attivi Ogni nodo attivo può invocare una richiesta di split secondo criteri personalizzati (carico…) Procedura di split Si determina la nuova chiave K i da assegnare al nodo Si spostano i dati al nuovo nodo e si segue il meccanismo standard di join di Chord Si cerca di seguire le forme dei cluster se intervallo copre più di un cluster 17 Gruppo 13 M-Chord
Segue lidea di range query di iDistance Il nodo N q che avvia la query procede nel seguente modo: Determina per ogni cluster C i lintervallo di chiavi I i Per ogni i invia una richiesta di I NTERVAL S EARCH (I i, q, r) al nodo N i responsabile per il punto centrale dellintervallo I i 18 Gruppo 13 M-Chord
Se nodo non responsabile dellintero intervallo, inoltra richiesta a predecessore/successore Ogni nodo crea risposta locale che include gli x | d(q,x) r Invio risposta segnalando eventualmente che è necessario attendere quella di altri nodi Qui si sfruttano distanze calcolate in precedenza e formula di filtraggio di iDistance I1I1 I2I2 I3I3 Nq N I1 N I2 N I3 19 Gruppo 13 M-Chord wait
iDistance può escludere un cluster i da ricerca se d(p i, q) –r > max-dist i Tale pruning non è applicabile in ambienti distribuiti (max-dist i non conosciuto da tutti i nodi) 20 Gruppo 13 M-Chord PiPi max-dist i q r
Approccio di iDistance non adatto ad ambienti distribuiti (query di range a raggio crescente) Proposta degli autori: 1. Utilizzo uneuristica a basso costo per trovare k oggetti vicino q; δ k è unapprossimazione (upper bound) della distanza del k-esimo oggetto 21 Gruppo 13 M-Chord
Nodo responsabile per mchord(q) cerca nel cluster C i a cui appartiene q 1. Localizza la foglia del B + -Tree dove si trova q 2. Esplora a sinistra e destra le foglie e aggiunge i primi k oggetti al ResultSet, inizializzando δ k 3. Continua a esaminare x finché le chiavi mchord(x) appartengono a 4. Se d(q,x) < δ k aggiungo x a RS al posto del k-esimo oggetto e aggiorno δ k 5. Continuo ricerca finché non ho esplorato tutto I i o tutto cluster C i 22 Gruppo 13 M-Chord q K=2 δ k = distanza K-esimo oggetto - δ k + δ k mchord(q)
2. Eseguo una query di Range (q, δ k ) su altri cluster (salto spazio già esplorato) e restituisco i k oggetti più vicini Si presume la presenza di almeno k oggetti in C i, altrimenti strategia ottimistica 23 Gruppo 13 M-Chord
2 dataset di esempio: Immagini rappresentate da vettori di 45 dimensioni Corpus di testi confrontati con edit distance Buona scalabilità allaumentare delle dimensioni della query e del dataset Cresce tuttavia numero messaggi scambiati Possibilità di influire sulle prestazioni agendo su politiche di split dei nodi 24 Gruppo 13 M-Chord
Buoni livelli di parallelismo intraquery (stessa query processata in parallelo) ed interquery (più query contemporanee) 25 Gruppo 13 M-Chord
Costi maggiori per kNN query 26 Gruppo 13 M-Chord
Limiti: Previsto solo inserimento nuovi oggetti, no eliminazione/aggiornamento Nessun supporto per disconnessione nodi Pruning di iDistance da adattare a ambiente distribuito Ulteriori studi: Prestazioni su spazi vettoriali a bassa dimensionalità Replicazione 27 Gruppo 13 M-Chord
GRUPPO 13 Decorte Andrea Giammarino Giuseppe