조회 요청 대부분은 존재하지 않는 것을 묻는다

Most lookups are for things that don't exist

파일 해시 존재 여부를 확인하는 서비스에서 조회의 약 80%가 '없음'을 확인하는 요청이었다. 모든 미스가 Cassandra 클러스터 전체를 거치며 부하를 만들었지만, 미스 캐시는 거의 적중하지 않아 무의미했다. 작성자는 Redis에 Bloom filter를 두어 확실한 '없음'을 클러스터 앞에서 걸러냈고, 필터가 틀릴 수 있는 방향이 한쪽뿐임을 다이어그램으로 설득한 끝에 클러스터를 60% 축소했다. 흥미로운 건 필터가 아니라 이 과정이다.

필터가 확신을 갖고 '없다'고 말하는 것은 진짜 없는 것이다. 반면 '있을지도'라고 말할 때는 원본에 물어보면 되므로, 필터는 최대 한 번의 추가 조회 비용만 발생시킬 뿐 틀린 답을 내놓을 수는 없다.

이 날의 다른 글

2026-10-19