FSST: Fast Random Access String Compression

很粗略地看了一下这篇论文,我觉得里面两个点很关键:

  1. 如何组合出来比较好的前缀
  2. 如何快速地查找前缀是否匹配

第一个问题的解决办法就是,a) 组合两个相邻匹配的code b) 将一次匹配的code和下一个字符进行组合。这种方法的好处是可以从单个字符开始构建,然后不断地筛选出"比较优化"的code.

第二个问题就是使用hastable. hashtable如何想更加高效地映射到SIMD上的话,就必须牺牲准确性(没有chain)并且使用简单的hash function.

论文很长细节也非常多,可以看看作者youtube上的讲座。 (1) FSST: Fast Static Symbol Table compression for strings - Peter Boncz - YouTube

Github: https://github.com/cwida/fsst