# Bloom Filters vs Counting Bloom Filters: When Deletions Kill Performance

DevFeed: [Bloom Filters vs Counting Bloom Filters: When Deletions Kill Performance](<https://devfeed.tech/articles/bloom-filters-vs-counting-bloom-filters-when-deletions-kill-performance-39567.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/15-bloom-filters-deletable-bloom-filters/>)

Author: hello@ankit-rana.com

Published: 2026-03-17T00:00:00Z

Content type: article

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [CPU Cache](<https://devfeed.tech/topics/cpu-cache.md>)

Tags: [bloom-filter](<https://devfeed.tech/tags/bloom-filter.md>), [cache](<https://devfeed.tech/tags/cache.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [cpu-cache](<https://devfeed.tech/tags/cpu-cache.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [false-negative](<https://devfeed.tech/tags/false-negative.md>), [false-positives](<https://devfeed.tech/tags/false-positives.md>), [memory](<https://devfeed.tech/tags/memory.md>), [performance](<https://devfeed.tech/tags/performance.md>), [probabilistic](<https://devfeed.tech/tags/probabilistic.md>), [systems](<https://devfeed.tech/tags/systems.md>)

## AI overview

The article explains that standard Bloom filters support membership checks but not deletion because clearing shared bits can create false negatives. Counting Bloom filters enable deletion with counters, but their larger memory footprint can push lookups out of CPU cache and increase latency through random memory access.

## Source excerpt

A standard Bloom filter is append-only because bits are shared between items, so clearing a bit for one item can create a false negative for another. Counting Bloom filters fix deletion by replacing each bit with a 4-bit or 8-bit counter, which multiplies the footprint four to eight times, pushes the structure out of L3, and turns each of the k lookups into a roughly 100 ns RAM hit instead of a 10 ns cache hit.