David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

28
David Novak and Pavel Zezula M-CHORD: A SCALABLE DISTRIBUTED SIMILARITY SEARCH STRUCTURE GRUPPO 13 Decorte Andrea Giammarino Giuseppe

Transcript of David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

Page 1: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

David Novak and Pavel Zezula

M-CHORD: A SCALABLE

DISTRIBUTED SIMILARITY SEARCH

STRUCTURE

GRUPPO 13Decorte Andrea Giammarino Giuseppe

Page 2: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

2Gruppo 13 M-Chord

Utente f0rnisce un’immagineTrovare immagini simili nel database

basandosi su distanza quadratica tra lefeatures

Esempio

)()())(();,(1 1

, qhAqhqhqhaAqhL TD

i

D

jjjiijiA

Difficoltà nel lavorare con dati di questo genere?

Page 3: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

3Gruppo 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!

Scenario

Page 4: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

4Gruppo 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)

Idee e soluzioni esistenti

Page 5: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

5Gruppo 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

Proposta degli autori

Page 6: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

6Gruppo 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

)(),(),(

),(),(

0),(

0),(

zydyxdzxd

xydyxd

yxiffyxd

yxd

).(

)(

)(

)(

etriangolardiseg

simmetria

identità

negativitànon

Page 7: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

7Gruppo 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)

iDistance

cixpdxiDist i ),()(

Page 8: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

8Gruppo 13 M-Chord

iDistance

P0

P2C0

C1

C2

C 2*C 3*C

P1

Page 9: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

9Gruppo 13 M-Chord

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 messaggiDinamico, consistent hashingDominio mappato uniformemente

nell’intervallo [0,2m)

Page 10: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

10Gruppo 13 M-Chord

ChordLe 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)

Page 11: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

11Gruppo 13 M-Chord

N1

N8

N14

N21

N51

N48

N42

N38N32

+1+2+4

+8+16

+32

Finger Table

N8+1 N14

N8+2 N14

N8+4 N14

N8+8 N21

N8+16

N32

N8+32

N42

Chord: finger table• 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

Page 12: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

12Gruppo 13 M-Chord

Chord: esempio lookupN1

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

Page 13: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

13Gruppo 13 M-Chord

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

M-Chord

Page 14: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

14Gruppo 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

xr

q Pi

d(x,Pi)

- d(q,Pi)>r ?

rqpdxpdnii ii |),(),(|:)0(

Page 15: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

15Gruppo 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

M-Chord: Pivot e dominio

)),(()( cixpdhxmchord i

Page 16: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

16Gruppo 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)

M-Chord: Funzionamento

Page 17: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

17Gruppo 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

M-Chord: Funzionamento

Page 18: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

18Gruppo 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

M-Chord: Range search

)]),((),),(([ rciqpdhrciqpdhI iii

Page 19: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

19Gruppo 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

M-Chord: INTERVALSEARCH (Ii, q, r)

I1

I2

I3

NqNI1

NI2

NI3

wait

Page 20: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

20Gruppo 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-disti non conosciuto da tutti i nodi)

M-Chord: Range search

Pi

max-disti

qr

Page 21: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

21Gruppo 13 M-Chord

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

M-Chord: kNN search

Page 22: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

22

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 I i o tutto cluster Ci

M-Chord: kNN search fase 1

)]),((),),(([ kikii ciqpdhciqpdhI

Gruppo 13 M-Chord

q

K=2

δk = distanza K-esimo oggetto

- δk + δk

mchord(q)

Page 23: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

23Gruppo 13 M-Chord

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

M-Chord: kNN search fase 2

Page 24: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

24Gruppo 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

Prestazioni

Page 25: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

25Gruppo 13 M-Chord

Buoni livelli di parallelismo intraquery (stessa query processata in parallelo) ed interquery (più query contemporanee)

Prestazioni

Page 26: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

26Gruppo 13 M-Chord

Costi maggiori per kNN query

Prestazioni

Page 27: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

27Gruppo 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

Sviluppi futuri

Page 28: David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe.

GRUPPO 13

Decorte Andrea

Giammarino Giuseppe

Grazie per l’attenzione