🤖 AI Summary
This work addresses two key limitations of existing succinct tries: poor cache locality and excessive space consumption due to unary paths. To overcome these issues, we introduce two core techniques: C₁, a cache-aware bitvector layout that enhances query locality, and C₂, an adaptive unary path compression scheme that reduces redundant storage. We integrate both optimizations into three widely used succinct trie implementations—FST, CoCo-trie, and Marisa. Experimental results demonstrate that C₁ accelerates query performance by 1.12× to 1.58×, while C₂ achieves an average memory reduction of 23%. Collectively, our approach outperforms both state-of-the-art succinct and non-succinct trie variants in terms of overall efficiency.
📝 Abstract
Succinct tries are powerful string dictionaries because of their low memory footprint and fast query performance. However, existing succinct trie implementations face two key challenges to spatial locality: 1) they incur unnecessary cache misses during queries, especially during trie navigation operations, and 2) they waste significant space when the data contains many unary paths. We propose C^2, a set of two techniques: C_1 introduces a more cache-friendly layout for the \bv underlying succinct tries, and C_2 compresses redundant unary paths. We thoroughly redesign three state-of-the-art succinct tries: FST, CoCo-trie, and Marisa, producing C^2-FST, C^2-CoCo, and C^2-Marisa. Experiments on six diverse datasets show that the C_1 optimization improves query performance by 1.58x, 1.12x, and 1.42x, respectively, compared to the original FST, CoCo-trie, and Marisa. Furthermore, the C_2 optimization achieves a 1.3x smaller memory footprint on average. The succinct tries optimized with both aspects of C^2 achieve better space-time tradeoffs than their original versions and other state-of-the-art succinct tries, while using significantly less space than non-succinct tries like ART and C-ART.