SlideShare a Scribd company logo
Vyhľadávanie podobných obrázkov
        Apache Cassandra
Úvod
 Vyhľadávanie podobných obrázkov k cieľovému obrázku
  na základe extrakcie globálnych (JCD) a lokálnych vlastností (SIFT)




                                                                        2
Problém
 Ak chceme použiť robustný (trénovací) dataset, ktorý
  bude obsahovať potenciálne milióny fotografií, vzniká
  problém:
    Z jednej fotografie môže byť extrahovaných stovky
     až tisíce vlastností
      o Ako ich navzájom porovnávať v reálnom čase?
      o Ako ich uložiť tak, aby sme k nim dokázali
         pristupovať v reálnom čase?


                                                          3
Lokálne Senzitívne Hašovanie (LSH)
 Objekty, ktoré sú si podobné sú vložené (zahašované)
  do rovnakého koša (angl. bucket) s vysokou
  pravdepodobnosťou
    Rodina hašovacích funkcií (g1, …, gL)
    Každá funkcia g vnikne spojením (konkatenáciou)
     k hašovacích funkcií:




                                                         4
Lokálne Senzitívne Hašovanie (LSH) / 2
 Každej hašovacej funkcii g prislúcha jedna hašovacia
  tabuľka:
    riadok v tabuľke: kľúč koša / podobné vlastnosti




                                                         5
Apache Cassandra
 OpenSource - špeciálne navrhnutý pre spracovanie
  veľkého objemu údajov, distribuovaný decentralizovaný
  hybrid medzi stĺpcovo a riadkovo orientovaným DBMS




                                                          6
Apache Cassandra – replikácia
 Ktorý uzol je použitý na uloženie riadku je určené
  mapovaním jeho kľúča na hodnotu tokenu, ktorú určí
  partitioner (DHT)
 Každý server (uzol) je schopný uložiť tokeny v určitom
  rozsahu




                                                           7
Apache Cassandra – stratégie replikácie
 Typ stratégie určuje, ktoré ďalšie uzly sú vybraté od uzla,
  ktorý je daný hodnotou tokenu
    Simple Strategy (default) – uzly, ktoré sú vedľa seba v
     kruhu
    Network Topology Strategy – počet replík na dátové
     centrum




                                                                8
Apache Cassandra – konzistencia údajov
 Replikačný faktor (počet kópií)
 Úroveň konzistencie (počet replík na prístup každej
  read/write operácie)




                                                        9
Apache Cassandra – hybridná orientácia
 Stĺpcova (Columns) orientácia
    počet stĺpcov nie je fixný
    stĺpce môžu byť usporiadané
    stĺpce môžu byť dopytované na určitý rozsah

 Riadková (Row) orientácia
    každý riadok je jednoznačne identifikovateľný
     kľúčom
    riadky zoskupujú stĺpce a super stĺpce

                                                     10
Apache Cassandra – dátový model




                                  11
Apache Cassandra – keyspace
 V hantírke relačných DBMS = databáza

 Vlastnosti
    replikačný faktor
    stratégia replikácie
    viacero rodín stĺpcov (Column Families) = tabuľky

 Pre jednu aplikáciu je možné vytvoriť viacero keyspaces
  (napr. pri potrebe rôznych replikačných stratégií)

                                                         12
Apache Cassandra – column
 Základná jednotka údajovej štuktúry




                                        13
Apache Cassandra – wide/skinny rows
 Wide rows – veľký počet stĺpcov (Columns) a malý
  počet riadkov
    zle funguje s RowCache
 Skinny rows – malý počet stĺpcov (Columns) a veľký
  počet riadkov

 Ak máte veľký počet riadkov a veľký počet stĺpcov, tak
  docielite veľké indexy
    ~40GB dát = 10GB index


                                                           14
Apache Cassandra – comparator types
   AsciiType
   BytesType
   IntegerType
   LongType
   TimeUUIDType
   UTF8Type




                                            15
Apache Cassandra – super columns
 5-dimenzionálne mapovanie
   [KeySpace][ColumnFamily][Key][SuperColumn][SubColumn]
 maximálne jednoúrovňová hĺbka (SubColumn nemôže
  byť SuperColumn)




                                                            16
Apache Cassandra – záver
 pri dopytovaní nie je možné výsledky joinovať (klient)
 TTL column typ = expiruje po určitom čase
  (napr. pre uloženie session token)
 MySQL vs Cassandra (50GB dát, priemer)
    MySQL
        Write ~300ms
        Read ~350ms
    Cassandra
        Write ~0.12ms
        Read ~15ms
                                                           17

More Related Content

PPT
When small problems become big problems
PDF
MongoDB: Repository for Web-scale metadata
PPSX
John Overall at Word Camp Victoria 2011
PPT
jclouds overview
PDF
OpenLSH - a framework for locality sensitive hashing
PDF
L 150 e-_sensor
PDF
Lessons learned from SearchD development
PDF
Learning to rank fulltext results from clicks
When small problems become big problems
MongoDB: Repository for Web-scale metadata
John Overall at Word Camp Victoria 2011
jclouds overview
OpenLSH - a framework for locality sensitive hashing
L 150 e-_sensor
Lessons learned from SearchD development
Learning to rank fulltext results from clicks
Ad

Cassandra: Indexing and discovering similar images

  • 2. Úvod  Vyhľadávanie podobných obrázkov k cieľovému obrázku na základe extrakcie globálnych (JCD) a lokálnych vlastností (SIFT) 2
  • 3. Problém  Ak chceme použiť robustný (trénovací) dataset, ktorý bude obsahovať potenciálne milióny fotografií, vzniká problém:  Z jednej fotografie môže byť extrahovaných stovky až tisíce vlastností o Ako ich navzájom porovnávať v reálnom čase? o Ako ich uložiť tak, aby sme k nim dokázali pristupovať v reálnom čase? 3
  • 4. Lokálne Senzitívne Hašovanie (LSH)  Objekty, ktoré sú si podobné sú vložené (zahašované) do rovnakého koša (angl. bucket) s vysokou pravdepodobnosťou  Rodina hašovacích funkcií (g1, …, gL)  Každá funkcia g vnikne spojením (konkatenáciou) k hašovacích funkcií: 4
  • 5. Lokálne Senzitívne Hašovanie (LSH) / 2  Každej hašovacej funkcii g prislúcha jedna hašovacia tabuľka:  riadok v tabuľke: kľúč koša / podobné vlastnosti 5
  • 6. Apache Cassandra  OpenSource - špeciálne navrhnutý pre spracovanie veľkého objemu údajov, distribuovaný decentralizovaný hybrid medzi stĺpcovo a riadkovo orientovaným DBMS 6
  • 7. Apache Cassandra – replikácia  Ktorý uzol je použitý na uloženie riadku je určené mapovaním jeho kľúča na hodnotu tokenu, ktorú určí partitioner (DHT)  Každý server (uzol) je schopný uložiť tokeny v určitom rozsahu 7
  • 8. Apache Cassandra – stratégie replikácie  Typ stratégie určuje, ktoré ďalšie uzly sú vybraté od uzla, ktorý je daný hodnotou tokenu  Simple Strategy (default) – uzly, ktoré sú vedľa seba v kruhu  Network Topology Strategy – počet replík na dátové centrum 8
  • 9. Apache Cassandra – konzistencia údajov  Replikačný faktor (počet kópií)  Úroveň konzistencie (počet replík na prístup každej read/write operácie) 9
  • 10. Apache Cassandra – hybridná orientácia  Stĺpcova (Columns) orientácia  počet stĺpcov nie je fixný  stĺpce môžu byť usporiadané  stĺpce môžu byť dopytované na určitý rozsah  Riadková (Row) orientácia  každý riadok je jednoznačne identifikovateľný kľúčom  riadky zoskupujú stĺpce a super stĺpce 10
  • 11. Apache Cassandra – dátový model 11
  • 12. Apache Cassandra – keyspace  V hantírke relačných DBMS = databáza  Vlastnosti  replikačný faktor  stratégia replikácie  viacero rodín stĺpcov (Column Families) = tabuľky  Pre jednu aplikáciu je možné vytvoriť viacero keyspaces (napr. pri potrebe rôznych replikačných stratégií) 12
  • 13. Apache Cassandra – column  Základná jednotka údajovej štuktúry 13
  • 14. Apache Cassandra – wide/skinny rows  Wide rows – veľký počet stĺpcov (Columns) a malý počet riadkov  zle funguje s RowCache  Skinny rows – malý počet stĺpcov (Columns) a veľký počet riadkov  Ak máte veľký počet riadkov a veľký počet stĺpcov, tak docielite veľké indexy  ~40GB dát = 10GB index 14
  • 15. Apache Cassandra – comparator types  AsciiType  BytesType  IntegerType  LongType  TimeUUIDType  UTF8Type 15
  • 16. Apache Cassandra – super columns  5-dimenzionálne mapovanie  [KeySpace][ColumnFamily][Key][SuperColumn][SubColumn]  maximálne jednoúrovňová hĺbka (SubColumn nemôže byť SuperColumn) 16
  • 17. Apache Cassandra – záver  pri dopytovaní nie je možné výsledky joinovať (klient)  TTL column typ = expiruje po určitom čase (napr. pre uloženie session token)  MySQL vs Cassandra (50GB dát, priemer)  MySQL  Write ~300ms  Read ~350ms  Cassandra  Write ~0.12ms  Read ~15ms 17