【文献阅读】Chimp: Efficient Lossless Floating Point Compression for Time Series Databases

Chimp: Efficient Lossless Floating Point Compression for Time Series Databases

作者: Panagiotis Liakos, Katia Papakonstantinopoulou, Yannis Kotidis
出处: VLDB(CCF A)
年份: 2022
链接: 论文链接

简介:

  • 目前广泛运用在时间序列管理系统中有效的压缩算法是当前值与前一个值之间按位异或运算,由于相邻数据点之间不会产生巨大的变化,因而异或的结果中会存在大量的零。
  • Goriila算法即是以此为基础,但这类算法相比传统算法而言压缩空间有限。
  • Chimp的方法侧重于XOR结果中尾随零数量有限,相反存在大量的前导零。
  • Chimp对比前导零与尾随零的存储成本调整前导零与尾随零的存储,不仅与前一个值进行比较,还与前置其他位数据进行比较,以此节省存储空间中有效位存储的成本。

关键算法:

  • 分为四种情况区别时间序列,Chimp使用按位XOR运算利用测量之间的相似性,使用映射函数代表前导零的长度,在XOR结果编码一个零位弥补奇数映射的误差。初始值写入,设定尾随零数量的阈值,如果大于6,写入0位,如果xor值位0,写入0,否则写入1,写入前导零的数量,写入有意义位的数量和有意义的部分。如果小于或者等于这个阈值,写入1位,如果前置零等于先前的前置零,写入0位,然后写入异或值,去掉前导零。否则写入1位,写入lead的数量,写入整个XOR值。
  • Chimp128的是考虑了先前的128个值,利用环形缓冲区与前128个值里的最佳值进行XOR按位运算,并于普通的存储方式比较,选取存储位数更少的。

存在的问题/后续方向:

  1. 后续较多压缩算法的改进都利用到了先前值比较的特点,例如划分一个时间窗口,在时间窗口内找到可以表示当前压缩数据的值,仅存储窗口内偏移值即可代替冗余的有效位、尾随零、前导零的存储(AFC)。
  2. 通过数据特点,设计特定的编码方式,基于模式进行压缩编码(AFC)。
  3. 尾随零的数量中可以通过存储中的抹除和解压缩中的复原,可以将大量的有效位抹除,进而用较小的有效位在所需要的精度前提下存储完整的数据信息(elf)。
  4. 可以利用数据的变化情况,对XOR的运算方式或是压缩编码方式进行改良。

代码复现链接:

https://github.com/panagiotisl/chimp(Java)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值