鲲鹏BoostKit干货店 | 解密存得更多、更快的数据压缩算法
发表于 2021/07/05
0
面对海量数据的处理需求和分布式IT架构的普及,越来越多企业希望构建扩展性更高、成本更低的分布式存储方案。
如何对数据进行极致压缩,在同等存储空间下更快存储更多数据,成为当前的主要挑战。
本期,鲲鹏布道师陈晓波分享如何基于鲲鹏BoostKit分布式存储使能套件的压缩算法,实现数据访问更快、存储更高效。
LZ4压缩算法是业界主流的数据压缩算法之一,是一种基于字典编码的压缩算法,通过使用一些简单的代号代替数据中重复的字符串,实现数据的压缩,其中字符串与代号的对应关系汇总为偏移表,起到字典的作用。
鲲鹏BoostKit压缩算法,基于业界开源的LZ4压缩算法主要做了四方面优化,实现压缩率的提升。
构建全局动态偏移表
鲲鹏BoostKit压缩算法构建更加高效的动态全局偏移信息表,实现对传统Hash匹配策略的替代。
设计分层算法模型
鲲鹏BoostKit压缩算法针对整个数据块匹配最优的压缩模型和最优的压缩参数,并且能够收集实时的负载信息,反馈至压缩算法引擎。
优化压缩头部
鲲鹏BoostKit压缩算法通过将偏移信息合入压缩头部中,且针对不同数据压缩场景,自适应地调整文本长度、匹配内容长度、偏移信息所占用的bit位数。
优化滑动窗口
开源LZ4算法采用固定的Sequence存储格式,匹配过程中的搜索窗口为固定64KB。鲲鹏BoostKit压缩算法优化了头部的Sequence信息,支持动态匹配窗口,在数据块大小变化频繁的场景下避免造成存储冗余或不足。
此外,鲲鹏BoostKit还基于鲲鹏架构的特点进行了指令级别的优化,如嵌入式汇编加速、批处理加速、NEON指令加速、预取指令加速等,充分释放鲲鹏硬件算力,加速压缩性能。
多种场景下的测试证明,使用鲲鹏BoostKit压缩算法,确实能够有效提升数据压缩率和存储带宽性能。以均衡型存储场景为例,相比在传统平台上使用开源算法,鲲鹏BoostKit压缩算法的压缩率提升25%,带宽性能提升10%。
鲲鹏BoostKit分布式存储使能套件提供高性能的Ceph开源组件,原生支持LZ4、Zlib、Zstd、Snappy等压缩算法,且已经使能Ceph 16.2.x及之后的发行版支持鲲鹏硬件压缩加速库。此外,鲲鹏BoostKit分布式存储使能套件还提供IO直通、EC Turbo等丰富的存储加速技术,适合不同的应用场景需求。
本页内容