We build our implementation in Rust and extend an existing suffix array library6 with three modification. The first two are straightforward implementation differences: we modify the code to allow datasets larger than \(4\)GB, and we remove the requirement that strings parse as valid UTF-8 sequences in favor of raw byte sequences. Our third change is more significant: we re-implement the algorithm so that we can stream the suffix array itself off disk.
Rust로 구현을 구축하고 기존 suffix array 라이브러리6에 세 가지 수정을 통해 확장합니다. 처음 두 가지는 구현 방식의 차이점입니다. 데이터 집합이 4GB보다 큰 경우를 허용하도록 코드를 수정하고, 문자열이 유효한 UTF-8 시퀀스로 구문 분석되는 요구 사항을 원시 바이트 시퀀스로 대신하여 제거합니다. 세 번째 변경 사항은 더 중요합니다. suffix array 자체를 디스크에서 스트리밍할 수 있도록 알고리즘을 다시 구현했습니다.
Rust로 구현을 구축하고 기존 접미사 배열 라이브러리6에 세 가지 수정을 통해 확장합니다. 처음 두 가지는 구현 방식의 차이점입니다. 데이터 집합이 4GB보다 큰 경우를 허용하도록 코드를 수정하고, 문자열이 유효한 UTF-8 시퀀스로 구문 분석되는 요구 사항을 원시 바이트 시퀀스로 대신하여 제거합니다. 세 번째 변경 사항은 더 중요합니다. 접미사 배열 자체를 디스크에서 스트리밍할 수 있도록 알고리즘을 다시 구현했습니다.