Cassandraへの問い合わせの8割は「存在しない」確認だった、Bloomフィルタでクラスタを60%削減
Most lookups are for things that don't exist
ファイルハッシュの存在確認サービスで、全ルックアップの約80%が「見つからない」という結果に終わっていた。存在しないハッシュをキャッシュしても再ヒットはほぼ見込めないため、著者はRedis上にBloomフィルタを置き、Cassandraに届く前に「確実なNo」を返す仕組みを導入。誤りは「持っていないものをMaybeと言う」方向にしか起こり得ず、Redisが落ちても従来通りCassandraに問い合わせるだけで済む。書き込みはフィルタを先に行い、失敗時は追加ごと失敗させる設計だ。
「No」ならその場で答え、Cassandraはそれを一切知らない。「Maybe」なら、これまで通りにやる。Redisが落ちていても、これまで通りにやる。