유한 상태 머신을 데이터 구조로: 수십억 개의 URL 색인 생성
2025-08-14
이 글에서는 유한 상태 머신(FSM)을 데이터 구조로 사용하여 정렬된 집합과 맵을 표현하는 방법을 탐구하고, Rust의 fst 크레이트를 사용한 효율적인 색인 생성을 보여줍니다. FSM 구성에 대해 자세히 설명하고, Trie 및 FSA 구성을 다루며, 2015년 7월 Common Crawl 아카이브의 16억 개 이상의 URL을 색인화하는 예를 보여줍니다. 메모리 매핑, 정규 표현식과의 오토마타 교차, Levenshtein 거리를 사용한 퍼지 검색, 스트리밍 집합 연산과 같은 기법도 설명합니다. 저자는 다양한 크기와 특성을 가진 여러 데이터 세트에서 다른 압축 방식(gzip, xz)과 비교하여 FST의 벤치마크를 생성합니다.
개발
색인