M chord a scalable distributed similarity search structure
Download
1 / 28

M-Chord : A Scalable Distributed Similarity Search Structure - PowerPoint PPT Presentation


  • 106 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' M-Chord : A Scalable Distributed Similarity Search Structure' - percy


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
M chord a scalable distributed similarity search structure

M-Chord: A ScalableDistributedSimilaritySearchStructure

David Novak and Pavel Zezula

GRUPPO 13

Decorte Andrea

Giammarino Giuseppe


Esempio
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


Scenario
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


Idee e soluzioni esistenti
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


Proposta degli autori
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


Spazio metrico
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


Idistance
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


Idistance1
iDistance

C2

P2

C0

P0

C1

P1

C

2*C

3*C

Gruppo 13 M-Chord


Chord http pdos csail mit edu 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 messaggi

  • Dinamico, consistent hashing

  • Dominio mappato uniformemente nell’intervallo [0,2m)

Gruppo 13 M-Chord


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)

Gruppo 13 M-Chord


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


Chord esempio lookup
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


M chord
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


M chord pruning
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


M chord pivot e dominio
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


    M chord funzionamento
    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


    M chord funzionamento1
    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


    M chord range search
    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


    M chord intervalsearch i i q r
    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


    M chord range search1
    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


    M chord knn search
    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


    M chord knn search fase 1
    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)


    M chord knn search fase 2
    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


    Prestazioni
    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


    Prestazioni1
    Prestazioni

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

    Gruppo 13 M-Chord


    Prestazioni2
    Prestazioni

    • Costi maggiori per kNN query

    Gruppo 13 M-Chord


    Sviluppi futuri
    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


    Grazie per l attenzione

    Grazie per l’attenzione

    GRUPPO 13

    Decorte Andrea

    Giammarino Giuseppe


    ad