Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ungefähr Populär

Ungefähr Populär

Trackingdaten zur Sortierung von Suchergebnissen nutzen

Avatar for Tobias Kässmann

Tobias Kässmann

June 29, 2016
Tweet

More Decks by Tobias Kässmann

Other Decks in Technology

Transcript

  1. vs.

  2. 0 1 0 1 0 0 0 0 0 1

    „Otto“ hash1 hash2 hash3
  3. 0 1 1 1 0 1 0 0 0 1

    „OGdev“ hash1 hash2 hash3
  4. 0 1 1 1 0 1 0 0 0 1

    „OGdev“ hash1 hash2 hash3 Wenn alle Werte Eins sind,
 ist das Wort wahrscheinlich in der Menge enthalten
  5. 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
  6. 0 1 1 1 0 1 0 0 0 1

    „Test“ hash1 hash2 hash3 Wenn an mindestens einer
 Stelle eine Null steht, ist das
 Wort definitiv nicht enthalten
  7. Bloom-Filter: Eigenschaften • Konstante Speichergröße • Konstante Zugriffszeit (Einfügen &

    Abfrage) • Falsch positive Antworten möglich;
 negative Antworten sind exakt • Elemente können nicht entfernt werden
  8. Bloom-Filter: Parameter • Anzahl Hash-Funktionen (k) • Größe des Bitsets

    (m) • Wahrscheinlichkeit falsch positiver Antworten:
 1 − 1 − 1 m kn k
  9. Guava Library BloomFilter<Thing> filter = BloomFilter.create(funnel, 100, 0.01);
 filter.put(element); if

    (filter.mightContain(element)) { … } Hash-Funktion erwartete Anzahl Elemente Falsch-Positiv-Rate
  10. Bloom-Filter: Anwendungsfälle • Langsame Zugriffe auf nicht existierende Elemente vermeiden

    • Elemente erst beim zweiten Zugriff in einen Cache einfügen • …
  11. 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
  12. 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 „Otto“ hash1 hash2 hash3
  13. 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 „Otto“ hash1 hash2 hash3
  14. 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 „OGdev“ hash2 hash1 hash3
  15. 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
  16. 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 „Otto“ hash1 hash2 hash3 3 2 2
  17. 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 „Otto“ hash1 hash2 hash3 3 2 2 min=2
  18. 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 „OGdev“ 1 1 2 min=1 hash1 hash2 hash3
  19. Count-Min-Sketch: Eigenschaften • Konstante Speichergröße • Konstante Zugriffszeit (Einfügen &

    Abfrage) • Ausgelesener Wert ist möglicherweise zu hoch, aber nicht zu niedrig • Elemente können nicht entfernt werden
  20. Count-Min-Sketch: Parameter • Tiefe (Anzahl Hash-Funktionen) • Breite (Anzahl Werte

    pro Zeile) • Auswahl über akzeptierte Abweichung mit Konfidenz (max. ε Abweichung mit Wahrscheinlichkeit p)