本文总结工作中使用过的数据压缩方法,主要有zlib,qatzip,igzip等
最后还进行了针对大规模数据多线程解压缩加速的分析
zlib库
zlib是用于数据压缩的函数库,使用deflate算法
deflate...,用来操作gz文件,类似stdio调用,如果gzopen,gzwrite等
简单的压缩示例代码:
#include
int gzCompress(Bytef *data, uLong...,正常压缩是消耗CPU资源,用另一张卡单独进行压缩,空闲出CPU资源可以进行其他计算,提高整体效率,缺点就是费钱,并占用一个PCIE插槽位置
另外只能运行于linux系统,不支持windows
qatzip_github...ID,extra field添加压缩前和后的bytes大小;以zlib压缩举例
压缩后,更新extra filed中压缩前后数据长度
解压缩的时候,首先找到第一个block,读入头信息,获取当前block...然后还可以通过多线程进行解压缩,主线程进行block的遍历,如果遇到目标数据,则从线程池中拿一个线程处理当前block
如果不需要解压缩,只是从1000个block中采样10个block进行后续的快速分析