Ungefähr Populär: Moderne Datenstrukturen im Einsatz
by
Torsten Bøgh Köster
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Ungefähr Populär: Moderne Datenstrukturen im Einsatz Torsten Bøgh Köster |
[email protected]
| @tboeghk | developer.s24.com
Slide 2
Slide 2 text
@tboeghk @tboeghk #cto, Search Technology Meetup Hamburg, #ansible, #roadbike, #landscapephotography Torsten Bøgh Köster |
[email protected]
| @tboeghk | developer.s24.com
Slide 3
Slide 3 text
Bester Arbeitgeber Deutschlands im Handel und Konsum laut Arbeitgeber-Ranking Produktsuche. 60M Produkte. 2k Bilder/Sek. 1k Suchen/Sek. Torsten Bøgh Köster |
[email protected]
| @tboeghk | developer.s24.com
Slide 4
Slide 4 text
Open Source Power Delivered.
Slide 5
Slide 5 text
Anwendungsbeispiel
Slide 6
Slide 6 text
Produktanzahl & Fluktuation
Slide 7
Slide 7 text
„TV“
Slide 8
Slide 8 text
rock hose tv jeans 129 64 202 98 120 … …
Slide 9
Slide 9 text
„Kleid“
Slide 10
Slide 10 text
Global Mandant Kategorie Suche 1 ~ 30 > 3k
Slide 11
Slide 11 text
Probabilistic algorithms to the rescue
Slide 12
Slide 12 text
BloomFilter for element presence
Slide 13
Slide 13 text
BloomFilter Anwendungsfälle —> Pre-Caching: Langsame Zugriffe auf nicht existierende Elemente verhindern —> Gelesene Beiträge markieren
Slide 14
Slide 14 text
0 0 0 0 0 0 0 0 0 0
Slide 15
Slide 15 text
0 1 0 1 0 0 0 0 0 1 „JAX2017“ hash1 hash2 hash3
Slide 16
Slide 16 text
0 1 1 1 0 1 0 0 0 1 „Mainz“ hash1 hash2 hash3
Slide 17
Slide 17 text
0 1 1 1 0 1 0 0 0 1 „Gibtsnicht“ hash1 hash2 hash3 Wenn an mindestens einer Stelle eine Null steht, ist das Wort definitiv nicht enthalten
Slide 18
Slide 18 text
0 1 1 1 0 1 0 0 0 1 „JAX2017“ hash1 hash2 hash3 Wenn alle Werte Eins sind, ist das Wort wahrscheinlich in der Menge enthalten
Slide 19
Slide 19 text
0 1 1 1 0 1 0 0 0 1 „Kollision“ hash1 hash2 hash3 Kollisionen bei allen Hash- Funktionen führen zu falsch positiven Antworten
Slide 20
Slide 20 text
BloomFilter Demo
Slide 21
Slide 21 text
BloomFilter Eigenschaften • Konstante Speichergröße • Konstante Zugriffszeit (Einfügen & Abfrage) • Falsch positive Antworten möglich; negative Antworten sind exakt • Elemente können nicht entfernt werden
Slide 22
Slide 22 text
BloomFilter Parameter • Anzahl Hash-Funktionen (k) • Größe des Bitsets (m) • Wahrscheinlichkeit falsch positiver Antworten: 1 − 1 − 1 m kn k
Slide 23
Slide 23 text
BloomFilter - Implementation in Guava BloomFilter filter = BloomFilter.create(funnel, 100, 0.01); filter.put(element); if (filter.mightContain(element)) { … } Hash-Funktion erwartete Anzahl Elemente Falsch-Positiv-Rate
Slide 24
Slide 24 text
CountMinSketch element cardinality
Slide 25
Slide 25 text
CountMinSketch Anwendungsbeispiele —> Zugriffsanzahl je Produkt —> Produkt-Views je Session
Slide 26
Slide 26 text
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3
Slide 27
Slide 27 text
0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 „JAX2017“ hash1 hash2 hash3
Slide 28
Slide 28 text
0 0 2 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 2 3 „JAX2017“ hash1 hash2 hash3
Slide 29
Slide 29 text
0 0 2 0 0 0 0 0 1 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 1 2 3 „Mainz“ hash2 hash1 hash3
Slide 30
Slide 30 text
0 0 3 0 0 0 0 0 1 0 0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „Kollision“ hash1 hash2 hash3
Slide 31
Slide 31 text
0 0 3 0 0 0 0 0 1 0 0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „JAX2017“ hash1 hash2 hash3 3 2 2
Slide 32
Slide 32 text
0 0 3 0 0 0 0 0 1 0 0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „JAX2017“ hash1 hash2 hash3 3 2 2 min=2
Slide 33
Slide 33 text
0 0 3 0 0 0 0 0 1 0 0 2 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 2 1 2 3 „Mainz“ 1 1 2 min=1 hash1 hash2 hash3
Slide 34
Slide 34 text
CountMinSketch characteristics
Slide 35
Slide 35 text
HeavyHitters (TopK) Top words on an unbounded stream of words
Slide 36
Slide 36 text
Anwendungsbeispiel Autocomplete
Slide 37
Slide 37 text
Word # kamel ziege forelle pferd krokodil schaf kuh maus katze hund
Slide 38
Slide 38 text
Word # hund 1 reh kamel ziege forelle pferd krokodil schaf kuh maus katze
Slide 39
Slide 39 text
Word # hund 1 katze 1 maus 1 kuh 1 schaf 1 krokodil 1 pferd 1 forelle 1 ziege 1 … hund hund schaf schaf hund reh kamel
Slide 40
Slide 40 text
Word # hund 1 katze 1 maus 1 kuh 1 schaf 1 krokodil 1 pferd 1 forelle 1 kamel 1 … hund hund schaf schaf hund reh
Slide 41
Slide 41 text
Word # hund 1 katze 1 maus 1 kuh 1 schaf 1 krokodil 1 pferd 1 forelle 1 reh 1 … hund hund schaf schaf hund
Slide 42
Slide 42 text
Word # hund 2 katze 1 maus 1 kuh 1 schaf 1 krokodil 1 pferd 1 forelle 1 reh 1 … hund hund schaf schaf
Slide 43
Slide 43 text
Word # hund 4 schaf 3 katze 1 maus 1 kuh 1 krokodil 1 pferd 1 forelle 1 reh 1 …
Slide 44
Slide 44 text
Word # hund 45 schaf 23 katze 9 maus 8 kuh 8 krokodil 8 pferd 6 forelle 5 reh 4 … tiger
Slide 45
Slide 45 text
Word # hund 45 schaf 23 katze 9 maus 8 kuh 8 krokodil 8 pferd 6 forelle 5 tiger 4 …
Slide 46
Slide 46 text
HeavyHitters (TopK) Parameter
Slide 47
Slide 47 text
No content
Slide 48
Slide 48 text
Other talks today by @tboeghk Open Source Logging & Monitoring (16:45) @shopping24 | @tboeghk | developer.s24.com yes, we’re hiring! Torsten Bøgh Köster |
[email protected]
| @tboeghk | developer.s24.com Bester Arbeitgeber Deutschlands im Handel und Konsum laut Arbeitgeber-Ranking