Order-Preserving Key Compression for In-Memory Search Trees
本文提出一种用于内存搜索树的高速保序编码器(HOPE)。HOPE是一个基于字典的快速压缩器,可以对任意键进行编码,同时保留它们的顺序。HOPE的方法是在细粒度上识别常见的关键模式,并利用熵来实现小字典的高压缩率。本文首先建立了一个理论模型来推理保序字典设计。然后选取了六种具有代表性的基于该模型的压缩算法进行实现。这些方案在压缩率和编码速度之间做出了不同的权衡。我们在数据库中使用的五种数据结构:SuRF、ART、HOT、B+树和Prefix B+树上对HOPE进行了评估。我们的实验表明,对于大多数字符串关键工作负载,使用HOPE可以使搜索树同时实现更低的查询延迟(降低40%)和更好的内存效率(减少30%)。
背景:
压缩是减少DBMS搜索树内存消耗的一种明显方法。压缩提高了搜索树的缓存性能,并允许DBMS在内存中保留更多的数据以进一步减少I/ o。系统必须平衡这些性能提升与压缩算法的额外计算开销
第一种是使用Snappy[9]和LZ4[7]等算法对树页面进行面向块的压缩。这种方法对基于磁盘的树是有益的,因为它最小化了磁盘和内存之间的数据移动。
第二种方法是设计一种内存高效的数据结构,避免存储不必要的关键信息
方法:
本文提出高速保序编码器(HOPE),一种基于字典的键压缩器,用于内存搜索树(例如B+树,tries)。HOPE包含六种熵编码方案,在压缩率和编码性能之间进行权衡。当DBMS创建一个基于树的索引/过滤器时,HOPE