SlideShare ist ein Scribd-Unternehmen logo
1 von 28
David Novak and Pavel Zezula M-Chord: A ScalableDistributedSimilaritySearchStructure GRUPPO 13 Decorte Andrea  Giammarino Giuseppe
Utente f0rnisce un’immagine Trovare immagini simili nel database 	basandosi su distanza quadratica tra le features Esempio Difficoltà nel lavorare con dati di questo genere? 2 Gruppo 13   M-Chord
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! Scenario 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 GeneralizedHyperplaneTree) e MCAN, che estende il protocollo CAN (ContentAddressable Network) Idee e soluzioni esistenti 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 Proposta degli autori	 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à: Spazio metrico 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 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) iDistance 7 Gruppo 13   M-Chord
iDistance C2 P2 C0 P0 C1 P1 C 2*C 3*C 8 Gruppo 13   M-Chord
Chord(http://pdos.csail.mit.edu/chord/) Protocollo P2P per DistributedHashTable Chord specifica come chiavidebbanoessereassegnateainodi, come sipossalocalizzarenodoresponsabile per unachiave e come essorecuperivalorediunachiavespecifica Basato su scambio di messaggi Dinamico, consistenthashing Dominio mappato uniformemente nell’intervallo [0,2m) 9 Gruppo 13   M-Chord
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) 10 Gruppo 13   M-Chord
N1 ,[object Object]
 Necessario mantenerla	aggiornata nel tempo ,[object Object]
 Tiene anche in conto 	possibilità di failure del 	nodo N8 +1 N51 +2 +4 N48 N14 +32 +8 +16 N42 N21 N38 N32 11 Gruppo 13   M-Chord Chord: finger table
12 Gruppo 13   M-Chord 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: ,[object Object]
 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 chiaveN8 N56 lookup(54) N51 N14 N48 N21 N42 N38 N32
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 M-Chord 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 M-Chord:Pruning x r q Pi d(x,Pi)  - d(q,Pi) >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 sull’intervallo [0, 2m) ed ottenere una distribuzione uniforme M-Chord:Pivot e dominio 15 Gruppo 13   M-Chord
Topologia della rete corrisponde a quella di Chord Fase di inizializzazione (SampleSetS, numero pivot) Un solo nodo attivo che copre tutto (chiave 2m-1) Selezione dei pivot su S Si applica formula diiDistancesu S per avere distribuzione dei dati e si ricava funzione di trasformazione h in modo da poter calcolare mchord(x) M-Chord: Funzionamento 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 splitsecondo 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 M-Chord: Funzionamento 17 Gruppo 13   M-Chord
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 M-Chord: Rangesearch 18 Gruppo 13   M-Chord
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 M-Chord: IntervalSearch (Ii, q, r) NI3 I3 I1 NI1 Nq wait NI2 I2 19 Gruppo 13   M-Chord
iDistance può escludere un cluster i da ricerca se  		d(pi, q) –r > max-disti Tale pruning non è applicabile in ambienti distribuiti (max-distinon conosciuto da tutti i nodi) 20 Gruppo 13   M-Chord M-Chord: Rangesearch max-disti Pi r q
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 M-Chord: kNNsearch 21 Gruppo 13   M-Chord
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 M-Chord: kNNsearch fase 1 22 Gruppo 13   M-Chord q K=2 δk = distanza K-esimo oggetto - δk + δk mchord(q)
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 23 Gruppo 13   M-Chord M-Chord: kNNsearch fase 2
2 dataset di esempio:  Immagini rappresentate da vettori di 45 dimensioni Corpus di testi confrontati con editdistance 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 Prestazioni 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 Prestazioni

Weitere ähnliche Inhalte

Andere mochten auch

Sistemes Operatius
Sistemes OperatiusSistemes Operatius
Sistemes Operatiusrubenako0o
 
Childcares - Developing Key Life Skills In Young Children
Childcares - Developing Key Life Skills In Young ChildrenChildcares - Developing Key Life Skills In Young Children
Childcares - Developing Key Life Skills In Young ChildrenWilliamsburg Northside DayCare
 
Coaching 02 ideia sortzaileen makina 2015-16
Coaching 02 ideia sortzaileen makina 2015-16Coaching 02 ideia sortzaileen makina 2015-16
Coaching 02 ideia sortzaileen makina 2015-16PlastikaDBHLauro
 
Case study cadbury (1)
Case study cadbury (1)Case study cadbury (1)
Case study cadbury (1)Shashank Singh
 
Cisco vni global-mobile-data-traffic-forecast-update
Cisco vni global-mobile-data-traffic-forecast-updateCisco vni global-mobile-data-traffic-forecast-update
Cisco vni global-mobile-data-traffic-forecast-updateKetut Widya
 
Komikien gaiak komiki historikoak
Komikien gaiak komiki historikoakKomikien gaiak komiki historikoak
Komikien gaiak komiki historikoakPlastikaDBHLauro
 
Aro garaikidea nora, deyna, ekhi, sara eta aimar 2
Aro garaikidea nora, deyna, ekhi, sara eta aimar 2Aro garaikidea nora, deyna, ekhi, sara eta aimar 2
Aro garaikidea nora, deyna, ekhi, sara eta aimar 2orixe6maila
 
Aro modernoa, jon v, sara, amaiur, deyna, peru
Aro modernoa, jon v, sara, amaiur, deyna, peruAro modernoa, jon v, sara, amaiur, deyna, peru
Aro modernoa, jon v, sara, amaiur, deyna, peruorixe6maila
 

Andere mochten auch (9)

Sistemes Operatius
Sistemes OperatiusSistemes Operatius
Sistemes Operatius
 
Cooking pasta
Cooking pasta Cooking pasta
Cooking pasta
 
Childcares - Developing Key Life Skills In Young Children
Childcares - Developing Key Life Skills In Young ChildrenChildcares - Developing Key Life Skills In Young Children
Childcares - Developing Key Life Skills In Young Children
 
Coaching 02 ideia sortzaileen makina 2015-16
Coaching 02 ideia sortzaileen makina 2015-16Coaching 02 ideia sortzaileen makina 2015-16
Coaching 02 ideia sortzaileen makina 2015-16
 
Case study cadbury (1)
Case study cadbury (1)Case study cadbury (1)
Case study cadbury (1)
 
Cisco vni global-mobile-data-traffic-forecast-update
Cisco vni global-mobile-data-traffic-forecast-updateCisco vni global-mobile-data-traffic-forecast-update
Cisco vni global-mobile-data-traffic-forecast-update
 
Komikien gaiak komiki historikoak
Komikien gaiak komiki historikoakKomikien gaiak komiki historikoak
Komikien gaiak komiki historikoak
 
Aro garaikidea nora, deyna, ekhi, sara eta aimar 2
Aro garaikidea nora, deyna, ekhi, sara eta aimar 2Aro garaikidea nora, deyna, ekhi, sara eta aimar 2
Aro garaikidea nora, deyna, ekhi, sara eta aimar 2
 
Aro modernoa, jon v, sara, amaiur, deyna, peru
Aro modernoa, jon v, sara, amaiur, deyna, peruAro modernoa, jon v, sara, amaiur, deyna, peru
Aro modernoa, jon v, sara, amaiur, deyna, peru
 

Ähnlich wie M-Chord - a scalable distributed similarity search

8 Routing
8 Routing8 Routing
8 Routingacapone
 
Distributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoopDistributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoopPaolo Nesi
 
From parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI courseFrom parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI coursePaolo Nesi
 
Presentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti RPresentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti Rguest6ac2c
 
ProjectWork Master BIBDA - Tracciamento all'indietro del percorso delle parti...
ProjectWork Master BIBDA - Tracciamento all'indietro del percorso delle parti...ProjectWork Master BIBDA - Tracciamento all'indietro del percorso delle parti...
ProjectWork Master BIBDA - Tracciamento all'indietro del percorso delle parti...Carla Marini
 
Extended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet NetworkExtended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet NetworkOlesiaRonzon
 
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...Leonardo Di Donato
 
Introduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithmIntroduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithmorestJump
 
Metodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessiMetodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessiLino Possamai
 
Instance-based learning and Numeric prediction
Instance-based learning and Numeric predictionInstance-based learning and Numeric prediction
Instance-based learning and Numeric predictionDavide Ciambelli
 
Il Mondo dell'Ottimizzazione
Il Mondo dell'OttimizzazioneIl Mondo dell'Ottimizzazione
Il Mondo dell'OttimizzazioneStefano Costanzo
 
Classificazione automatica per dati ad alta dimensionalità: un approccio fuzz...
Classificazione automatica per dati ad alta dimensionalità: un approccio fuzz...Classificazione automatica per dati ad alta dimensionalità: un approccio fuzz...
Classificazione automatica per dati ad alta dimensionalità: un approccio fuzz...Marco D'Alessandro
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingdanielenicassio
 
Accesso iniziale nei sistemi a onde millimetriche
Accesso iniziale nei sistemi a onde millimetricheAccesso iniziale nei sistemi a onde millimetriche
Accesso iniziale nei sistemi a onde millimetricheNicolLaMura
 

Ähnlich wie M-Chord - a scalable distributed similarity search (16)

8 Routing
8 Routing8 Routing
8 Routing
 
Distributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoopDistributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoop
 
From parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI courseFrom parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI course
 
Presentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti RPresentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti R
 
ProjectWork Master BIBDA - Tracciamento all'indietro del percorso delle parti...
ProjectWork Master BIBDA - Tracciamento all'indietro del percorso delle parti...ProjectWork Master BIBDA - Tracciamento all'indietro del percorso delle parti...
ProjectWork Master BIBDA - Tracciamento all'indietro del percorso delle parti...
 
Extended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet NetworkExtended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet Network
 
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
 
Introduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithmIntroduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithm
 
FSTI1112 1 1/2
FSTI1112 1 1/2FSTI1112 1 1/2
FSTI1112 1 1/2
 
Metodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessiMetodi matematici per l’analisi di sistemi complessi
Metodi matematici per l’analisi di sistemi complessi
 
Instance-based learning and Numeric prediction
Instance-based learning and Numeric predictionInstance-based learning and Numeric prediction
Instance-based learning and Numeric prediction
 
Il Mondo dell'Ottimizzazione
Il Mondo dell'OttimizzazioneIl Mondo dell'Ottimizzazione
Il Mondo dell'Ottimizzazione
 
Classificazione automatica per dati ad alta dimensionalità: un approccio fuzz...
Classificazione automatica per dati ad alta dimensionalità: un approccio fuzz...Classificazione automatica per dati ad alta dimensionalità: un approccio fuzz...
Classificazione automatica per dati ad alta dimensionalità: un approccio fuzz...
 
Wireless Sensor Network
Wireless Sensor NetworkWireless Sensor Network
Wireless Sensor Network
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decoding
 
Accesso iniziale nei sistemi a onde millimetriche
Accesso iniziale nei sistemi a onde millimetricheAccesso iniziale nei sistemi a onde millimetriche
Accesso iniziale nei sistemi a onde millimetriche
 

M-Chord - a scalable distributed similarity search

  • 1. David Novak and Pavel Zezula M-Chord: A ScalableDistributedSimilaritySearchStructure GRUPPO 13 Decorte Andrea Giammarino Giuseppe
  • 2. Utente f0rnisce un’immagine Trovare immagini simili nel database basandosi su distanza quadratica tra le features Esempio Difficoltà nel lavorare con dati di questo genere? 2 Gruppo 13 M-Chord
  • 3. 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! Scenario 3 Gruppo 13 M-Chord
  • 4. 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 GeneralizedHyperplaneTree) e MCAN, che estende il protocollo CAN (ContentAddressable Network) Idee e soluzioni esistenti 4 Gruppo 13 M-Chord
  • 5. 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 Proposta degli autori 5 Gruppo 13 M-Chord
  • 6. 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à: Spazio metrico 6 Gruppo 13 M-Chord
  • 7. 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) iDistance 7 Gruppo 13 M-Chord
  • 8. iDistance C2 P2 C0 P0 C1 P1 C 2*C 3*C 8 Gruppo 13 M-Chord
  • 9. Chord(http://pdos.csail.mit.edu/chord/) Protocollo P2P per DistributedHashTable Chord specifica come chiavidebbanoessereassegnateainodi, come sipossalocalizzarenodoresponsabile per unachiave e come essorecuperivalorediunachiavespecifica Basato su scambio di messaggi Dinamico, consistenthashing Dominio mappato uniformemente nell’intervallo [0,2m) 9 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) 10 Gruppo 13 M-Chord
  • 11.
  • 12.
  • 13. Tiene anche in conto possibilità di failure del nodo N8 +1 N51 +2 +4 N48 N14 +32 +8 +16 N42 N21 N38 N32 11 Gruppo 13 M-Chord Chord: finger table
  • 14.
  • 15. 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 chiaveN8 N56 lookup(54) N51 N14 N48 N21 N42 N38 N32
  • 16. 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 M-Chord 13 Gruppo 13 M-Chord
  • 17. 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 M-Chord:Pruning x r q Pi d(x,Pi) - d(q,Pi) >r? 14 Gruppo 13 M-Chord
  • 18. 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 M-Chord:Pivot e dominio 15 Gruppo 13 M-Chord
  • 19. Topologia della rete corrisponde a quella di Chord Fase di inizializzazione (SampleSetS, numero pivot) Un solo nodo attivo che copre tutto (chiave 2m-1) Selezione dei pivot su S Si applica formula diiDistancesu S per avere distribuzione dei dati e si ricava funzione di trasformazione h in modo da poter calcolare mchord(x) M-Chord: Funzionamento 16 Gruppo 13 M-Chord
  • 20. Attivazione altri nodi I nodi a cui non sono assegnate chiavi sono non attivi Ogni nodo attivo può invocare una richiesta di splitsecondo 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 M-Chord: Funzionamento 17 Gruppo 13 M-Chord
  • 21. 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 M-Chord: Rangesearch 18 Gruppo 13 M-Chord
  • 22. 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 M-Chord: IntervalSearch (Ii, q, r) NI3 I3 I1 NI1 Nq wait NI2 I2 19 Gruppo 13 M-Chord
  • 23. iDistance può escludere un cluster i da ricerca se d(pi, q) –r > max-disti Tale pruning non è applicabile in ambienti distribuiti (max-distinon conosciuto da tutti i nodi) 20 Gruppo 13 M-Chord M-Chord: Rangesearch max-disti Pi r q
  • 24. 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 M-Chord: kNNsearch 21 Gruppo 13 M-Chord
  • 25. 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 M-Chord: kNNsearch fase 1 22 Gruppo 13 M-Chord q K=2 δk = distanza K-esimo oggetto - δk + δk mchord(q)
  • 26. 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 23 Gruppo 13 M-Chord M-Chord: kNNsearch fase 2
  • 27. 2 dataset di esempio: Immagini rappresentate da vettori di 45 dimensioni Corpus di testi confrontati con editdistance 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 Prestazioni 24 Gruppo 13 M-Chord
  • 28. Buoni livelli di parallelismo intraquery (stessa query processata in parallelo) ed interquery (più query contemporanee) 25 Gruppo 13 M-Chord Prestazioni
  • 29. Costi maggiori per kNNquery 26 Gruppo 13 M-Chord Prestazioni
  • 30. 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 Sviluppi futuri 27 Gruppo 13 M-Chord
  • 31. GRUPPO 13 Decorte Andrea Giammarino Giuseppe Grazie per l’attenzione