클라우드플레어(Cloudflare)가 자사의 DNS 캐시 시스템인 '빅 파인애플(Big Pineapple)'의 메모리 저장 구조를 혁신적으로 개선하여 약 100TB에 달하는 방대한 메모리 공간을 절감했습니다. 이는 2,500억 개가 넘는 DNS 캐시 항목의 저장 방식을 다섯 차례에 걸쳐 최적화한 결과로, 항목당 메모리 사용량을 953바이트에서 420바이트로 56% 줄이는 데 성공했습니다. 이처럼 확보된 메모리는 전체 시스템의 효율성을 높이고 캐시 용량을 확장하는 데 재투자될 예정입니다.
이번 최적화는 여러 기술적 접근 방식을 통해 이루어졌습니다. 먼저, 변경되지 않는 데이터에 `Vec`이나 `String` 대신 `Box<[T]>`나 `Box<str>`을 사용하여 불필요한 용량 필드를 제거하고 힙 공간 낭비를 줄였습니다. 또한, DNS 섹션을 하나의 목록과 오프셋으로 통합하고, 중복되는 레코드 소유자 이름을 생략하여 메모리 사용량을 더욱 절감했습니다. 러스트(Rust) 열거형의 큰 변형을 박싱(boxing)하여 메모리 패딩을 줄이고, 레코드 데이터를 단일 DNS 와이어 형식 버퍼(wire format buffer)로 통합함으로써 할당과 패딩을 최소화하고 메모리 지역성(memory locality)을 높였습니다. 이러한 개선을 통해 벤치마크에서 항목당 할당량은 58% 감소했고, 삽입 처리량은 43% 증가했으며, 조회 지연은 19% 감소하는 등 성능 향상 효과도 함께 얻었습니다.
클라우드플레어의 1.1.1.1 DNS, 게이트웨이(Gateway) DNS 등 주요 서비스를 구동하는 빅 파인애플은 항상 2,500억 개 이상의 캐시 항목을 관리합니다. 이처럼 방대한 규모에서는 단 1바이트의 메모리 낭비도 전체 시스템에서 250GB 이상의 손실로 이어질 수 있습니다. 이번 100TB 메모리 절감은 단순한 비용 절감을 넘어, 확보된 자원을 캐시 용량 확대에 재투자하여 DNS 적중률(hit rate)을 높이고 상위 DNS 서버로의 질의를 줄이는 데 활용될 계획입니다. 이는 전 세계 사용자들에게 더 빠르고 안정적인 DNS 서비스를 제공하고, 클라우드플레어의 인프라 효율성을 극대화하는 중요한 진전으로 평가됩니다.