1 / 28

M-Chord : A Scalable Distributed Similarity Search Structure

M-Chord : A Scalable Distributed Similarity Search Structure. David Novak and Pavel Zezula. GRUPPO 13 Decorte Andrea Giammarino Giuseppe. Esempio. Utente f0rnisce un’immagine Trovare immagini simili nel database basandosi su distanza quadratica tra le features.

percy
Download Presentation

M-Chord : A Scalable Distributed Similarity Search Structure

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. M-Chord: A ScalableDistributedSimilaritySearchStructure David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe

  2. Esempio • Utente f0rnisce un’immagine • Trovare immagini simili nel database basandosi su distanza quadratica tra le features Difficoltà nel lavorare con dati di questo genere? Gruppo 13 M-Chord

  3. Scenario • Dati ad alta dimensionalità • Funzioni distanza onerose computazionalmente (nell’ordine di O(D2)) • Dati non gestibili efficientemente con spazi vettoriali • Query multidimensionali di similarità Servono nuove strategie! Gruppo 13 M-Chord

  4. Idee e soluzioni esistenti • 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) Gruppo 13 M-Chord

  5. Proposta degli autori • 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 Gruppo 13 M-Chord

  6. Spazio metrico 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à: Gruppo 13 M-Chord

  7. iDistance • Metodo di indicizzazione per ricerca di similarità in spazi vettoriali • Partizione dei dati in n cluster, rappresentati da un pivot pi • 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) Gruppo 13 M-Chord

  8. iDistance C2 P2 C0 P0 C1 P1 C 2*C 3*C Gruppo 13 M-Chord

  9. Chord(http://pdos.csail.mit.edu/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 nell’intervallo [0,2m) Gruppo 13 M-Chord

  10. Chord • Le chiavi Ki sono disposte su un cerchio • A ogni nodo Ni viene assegnata la chiave Ki dallo stesso dominio • Nodo Ni responsabile per tutte le chiavi dell’intervallo (Ki-1, Ki](mod 2m) • Ogni nodo mantiene successore, predecessore e finger table, che garantisce un routing di complessità O(log n) Gruppo 13 M-Chord

  11. Chord: finger table N1 • 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 N8 +1 N51 +2 +4 N48 +32 N14 +8 +16 N42 N21 N38 N32 Gruppo 13 M-Chord

  12. Chord: esempio lookup N1 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 N8 N56 lookup(54) N51 N48 N14 N21 N42 N38 N32 Gruppo 13 M-Chord

  13. M-Chord 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 Gruppo 13 M-Chord

  14. M-Chord:Pruning • 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 r x q Pi d(x,Pi) - d(q,Pi) >r? Gruppo 13 M-Chord

  15. M-Chord:Pivot e dominio • 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 sull’intervallo [0, 2m) ed ottenere una distribuzione uniforme Gruppo 13 M-Chord

  16. M-Chord: Funzionamento • Topologia della rete corrisponde a quella di Chord • Fase di inizializzazione (SampleSet S, numero pivot) • Un solo nodo attivo che copre tutto (chiave 2m-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) Gruppo 13 M-Chord

  17. M-Chord: Funzionamento • 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 Ki 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 Gruppo 13 M-Chord

  18. M-Chord: Rangesearch • Segue l’idea di range query di iDistance • Il nodo Nq che avvia la query procede nel seguente modo: • Determina per ogni cluster Ci l’intervallo di chiaviIi • Per ogni i invia una richiesta di IntervalSearch(Ii, q, r) al nodo Ni responsabile per il punto centrale dell’intervallo Ii Gruppo 13 M-Chord

  19. M-Chord: IntervalSearch (Ii, q, r) • Se nodo non responsabile dell’intero 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 NI3 I3 I1 NI1 Nq wait NI2 I2 Gruppo 13 M-Chord

  20. M-Chord: Rangesearch • iDistance può escludere un cluster i da ricerca se d(pi, q) –r > max-disti • Tale pruning non è applicabile in ambienti distribuiti (max-disti non conosciuto da tutti i nodi) max-disti r Pi q Gruppo 13 M-Chord

  21. M-Chord: kNNsearch • Approccio di iDistance non adatto ad ambienti distribuiti (query di range a raggio crescente) • Proposta degli autori: • Utilizzo un’euristica a basso costo per trovare k oggetti vicino q; δk è un’approssimazione (upper bound) della distanzadel k-esimo oggetto Gruppo 13 M-Chord

  22. M-Chord: kNNsearch fase 1 • Nodo responsabile per mchord(q) cerca nel cluster Ci a cui appartiene q • Localizza la foglia del B+-Tree dove si trova q • Esplora a sinistra e destra le foglie e aggiunge i primi k oggetti al ResultSet, inizializzando δk • Continua a esaminare x finché le chiavi mchord(x) appartengono a • Se d(q,x) < δk aggiungo x a RS al posto del k-esimo oggetto e aggiorno δk • Continuo ricerca finché non ho esplorato tutto Ii o tutto cluster Ci q K=2 δk = distanza K-esimo oggetto - δk + δk Gruppo 13 M-Chord mchord(q)

  23. M-Chord: kNNsearch fase 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 Ci, altrimenti strategia ottimistica Gruppo 13 M-Chord

  24. Prestazioni • 2 dataset di esempio: • Immagini rappresentate da vettori di 45 dimensioni • Corpus di testi confrontati con edit distance • Buona scalabilità all’aumentare delle dimensioni della query e del dataset • Cresce tuttavia numero messaggi scambiati • Possibilità di influire sulle prestazioni agendo su politiche di split dei nodi Gruppo 13 M-Chord

  25. Prestazioni • Buoni livelli di parallelismo intraquery (stessa query processata in parallelo) ed interquery (più query contemporanee) Gruppo 13 M-Chord

  26. Prestazioni • Costi maggiori per kNN query Gruppo 13 M-Chord

  27. Sviluppi futuri • 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 Gruppo 13 M-Chord

  28. Grazie per l’attenzione GRUPPO 13 Decorte Andrea Giammarino Giuseppe

More Related