GitHub의 코드 검색 엔진 Blackbird의 대소문자 구분 제거 최적화
Don’t stop early: Case-folding source code at memory speed
GitHub의 코드 검색 엔진 Blackbird는 1억 8천만 개 이상의 저장소와 480TB 이상의 소스 코드를 인덱싱하며, 모든 바이트는 n그램을 추출하고 인덱스를 구축하기 전에 대소문자 구분이 제거된다. ASCII 문자의 경우, 대소문자 구분 제거는 메모리 속도로 실행되며, 브랜치를 제거하여 성능을 최적화하는 방식으로 구현되었다. 이 과정에서 Rust 크레이트인 casefold가 오픈소스로 제공된다.
Blackbird는 480TB의 소스 코드를 처리하며, 대소문자 구분 제거의 속도가 성능에 큰 영향을 미친다.
원문 출처
GitHub Blog