M-Chord : A Scalable Distributed Similarity Search Structure
description
Transcript of M-Chord : A Scalable Distributed Similarity Search Structure
David Novak and Pavel Zezula
GRUPPO 13Decorte Andrea Giammarino Giuseppe
Utente f0rnisce un’immagineTrovare immagini simili nel database
basandosi su distanza quadratica tra lefeatures
)()())(();,(1 1
, qhAqhqhqhaAqhL TD
i
D
jjjiijiA
Difficoltà nel lavorare con dati di questo genere?
2Gruppo 13 M-Chord
Dati ad alta dimensionalitàFunzioni distanza onerose computazionalmente
(nell’ordine di O(D2))Dati non gestibili efficientemente con spazi
vettorialiQuery multidimensionali di similarità
Servono nuove strategie!3Gruppo 13 M-Chord
Introduzione di spazi metrici anziché vettorialiSviluppo di strategie distribuite per dividere il
carico di lavoro su nodi interconnessi tra loroAl 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)
4Gruppo 13 M-Chord
Sviluppare una struttura per la ricerca distribuita che sia applicabile a spazi metrici basandosi su alcune soluzioni esistenti:iDistanceProtocollo Chord
Esse verranno integrate ed estese nella struttura di M-Chord
5Gruppo 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à:
)(),(),(
),(),(
0),(
0),(
zydyxdzxd
xydyxd
yxiffyxd
yxd
).(
)(
)(
)(
etriangolardiseg
simmetria
identità
negativitànon
6Gruppo 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 clusterValori sono memorizzati in un B+-tree sulla
base della chiave iDist(x)
cixpdxiDist i ),()(
7Gruppo 13 M-Chord
P0
P2C0
C1
C2
C 2*C 3*C
P1
8Gruppo 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 messaggiDinamico, consistent hashingDominio mappato uniformemente
nell’intervallo [0,2m)
9Gruppo 13 M-Chord
Le chiavi Ki sono disposte su un cerchio
A ogni nodo Ni viene assegnata la chiave
Ki dallo stesso dominioNodo 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)
10Gruppo 13 M-Chord
N1
N8
N14
N21
N51
N48
N42
N38N32
+1+2+4
+8+16
+32
11Gruppo 13 M-Chord
• Finger table ha dimensioni minori rispetto al numero totale nodi
• Necessario mantenerlaaggiornata nel
tempo
• Non contiene info necessarie per
raggiungere valori di chiave direttamente
• Tiene anche in conto possibilità di failure
del nodo
12Gruppo 13 M-Chord
N1
N8
N14
N21
N51
N48
N42
N38N32
lookup(54)
K54Cercando 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 ChordDividere il dominio in intervalli da distribuire
sui diversi nodiSviluppare gli algoritmi Range e kNNIntrodurre meccanismi di pruning
13Gruppo 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
q Pi
d(x,Pi)
- d(q,Pi)>r ?
rqpdxpdnii ii |),(),(|:)0(
14Gruppo 13 M-Chord
Selezione pivotCriterio di selezione: aumentare il più possibile
il filtraggioDominio dei dati
Necessaria una funzione di trasformazione h per normalizzare il dominio fornito da iDistance sull’intervallo [0, 2m) ed ottenere una distribuzione uniforme
)),(()( cixpdhxmchord i
15Gruppo 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 2m-
1)Selezione dei pivot su SSi 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)
16Gruppo 13 M-Chord
Attivazione altri nodiI nodi a cui non sono assegnate chiavi sono non
attiviOgni 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
17Gruppo 13 M-Chord
Segue l’idea di range query di iDistanceIl nodo Nq che avvia la query procede nel
seguente modo:Determina per ogni cluster Ci l’intervallo di
chiavi Ii
Per ogni i invia una richiesta di INTERVALSEARCH(Ii, q, r) al nodo Ni responsabile per il punto centrale dell’intervallo Ii
)]),((),),(([ rciqpdhrciqpdhI iii
18Gruppo 13 M-Chord
Se nodo non responsabile dell’intero intervallo, inoltra richiesta a predecessore/successore
Ogni nodo crea risposta localeche include gli x | d(q,x)≤ r
Invio risposta segnalandoeventualmente che ènecessario attendere quelladi altri nodi
Qui si sfruttano distanzecalcolate in precedenzae formula di filtraggio di iDistance
I1
I2
I3
NqNI1
NI2
NI3
19Gruppo 13 M-Chord
wait
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)
20Gruppo 13 M-Chord
Pi
max-disti
qr
Approccio di iDistance non adatto ad ambienti distribuiti (query di range a raggio crescente)
Proposta degli autori:1. Utilizzo un’euristica a basso costo per trovare
k oggetti vicino q; δk è un’approssimazione (upper bound) della distanza del k-esimo oggetto
21Gruppo 13 M-Chord
Nodo responsabile per mchord(q) cerca nel cluster Ci a cui appartiene q
1.Localizza la foglia del B+-Tree dove si trova q2.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 Ii o tutto cluster Ci
)]),((),),(([ kikii ciqpdhciqpdhI
22Gruppo 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 Ci, altrimenti strategia ottimistica
23Gruppo 13 M-Chord
2 dataset di esempio: Immagini rappresentate da vettori di 45
dimensioniCorpus di testi confrontati con edit distance
Buona scalabilità all’aumentare delle dimensioni della query e del datasetCresce tuttavia numero messaggi scambiati
Possibilità di influire sulle prestazioni agendo su politiche di split dei nodi
24Gruppo 13 M-Chord
Buoni livelli di parallelismo intraquery (stessa query processata in parallelo) ed interquery (più query contemporanee)
25Gruppo 13 M-Chord
Costi maggiori per kNN query
26Gruppo 13 M-Chord
Limiti:Previsto solo inserimento nuovi oggetti, no
eliminazione/aggiornamentoNessun supporto per disconnessione nodiPruning di iDistance da adattare a ambiente
distribuitoUlteriori studi:
Prestazioni su spazi vettoriali a bassa dimensionalità
Replicazione
27Gruppo 13 M-Chord
GRUPPO 13
Decorte Andrea
Giammarino Giuseppe