80 Prozent der Anfragen suchen etwas, das es nicht gibt – ein Bloom-Filter machte den Cassandra-Cluster 60 Prozent kleiner
Most lookups are for things that don't exist
Ein Dienst prüft millionenfach pro Sekunde, ob ein Datei-Hash bereits bekannt ist. Rund 80 Prozent der Lookups enden mit „nicht gefunden“, zahlen aber jedes Mal den vollen Preis: Koordinator, Fan-out an alle Replikate, Prüfung jeder SSTable. Ein vorgeschalteter Bloom-Filter in Redis beantwortet die meisten dieser Fehlschläge sofort. Die Asymmetrie macht ihn sicher: Er kann nie fälschlich „nein“ sagen, nur „vielleicht“. Der Cluster schrumpfte um 60 Prozent.
Was die Sache entschied, war das Fehlerverhalten. Redis langsam oder weg: überspringen, zu Cassandra gehen, der Dienst ist exakt das, was er letzten Monat war.