当前位置:网站首页>【ELT.ZIP】OpenHarmony啃论文俱乐部—数据密集型应用内存压缩
【ELT.ZIP】OpenHarmony啃论文俱乐部—数据密集型应用内存压缩
2022-06-27 16:19:00 【InfoQ】
- 本文出自
ELT.ZIP团队,ELT<=>Elite(精英),.ZIP为压缩格式,ELT.ZIP即压缩精英。
- 成员:
- 上海工程技术大学大二在校生
- 合肥师范学院大二在校生
- 清华大学大二在校生
- 成都信息工程大学大一在校生
- 黑龙江大学大一在校生
- 华南理工大学大一在校生
- 我们是来自
6个地方的同学,我们在OpenHarmony成长计划啃论文俱乐部里,与华为、软通动力、润和软件、拓维信息、深开鸿等公司一起,学习和研究操作系统技术…
揭秘谷歌应用EROFS到安卓的原因
EROFS为何能在文件压缩系统领域大放光彩
神秘的LZ4m如何给内存压缩领域带来新的生机

介绍
数据密集型(data-intensive)
数据密集型WKdmLZ4mWKdmLZ4 分析
从算法上看

- LZ4 主要在其
滑动窗口与哈希表部分,滑动窗口每次扫描 4 字节的输入流,并检查窗口中的字符串是否在之前出现过。
- 为了辅助匹配,LZ4 维护了一个哈希表,并将 4 字节的字符串从输入流开始的地方映射。
- 如果哈希表中包含当前滑动窗口中的字符串,那么将从当前扫描位置继续匹配字符串,前后两个具有相同前缀的子串能够匹配出一个最长子串,对应哈希表条目更新到当前起始扫描位置。
- 滑动窗口继续移动,不断更新哈希表中没有的子串的条目,直到滑动窗口达到结尾。
从结构上看

- 输入流被编码成了一个编码单元,一个
编码单元(Encoding unit)由首部(Token)和主体(Body)两个部分组成。
- 每个
编码单元都以 1 字节的首部开始,首部的前四位用来表示主体(Body)的字面量长度的大小,首部的后四位用来表示匹配长度的大小。
- 如果字符串超过15字节,也就是首部的
字面量长度的 4 位全为 1 时(1111),首部的字面量长度将减去 15 并放在首部后面的主体上。
主体(Body)由字面量数据与匹配描述组成,其中匹配描述由向后的匹配偏移量与匹配长度组成。
- 主体中偏移量由 2 字节编码,因此 LZ4 可以回溯到 64 KB(
2^16/1024)来查找匹配。
- 紧跟在某个
匹配(Match)之后的其他匹配(Match)以类似的方式编码,只是标记中的文字长度字段被设置为0000,并且主体(Body)省略了字面量(Literal)部分。
LZ4m 分析
通用压缩算法
偏移量(Offset)首部的字面量长度首部的匹配长度主体的字面量的偏移量首部(Token)字面量长度(Literal length)匹配长度(Match length)主体(Body)匹配偏移量(Match offset)
首部(Token)主体评估
- 将 LZ4 和 LZO1x 评估为通用算法的代表,将 WKdm 评估为专业算法。论文收集了通过交换从主内存中清除的数据来收集内存数据。
- 压缩比是页面的平均值,压缩比越小意味着相同数据的压缩大小越小。WKdm的压缩比最大,其次是LZ4m,LZ4,最后是LZO1x,速度归一化为 LZ4m。与通用算法(即 LZ4 和 LZO1x)相比,LZ4m 显示出可比较的压缩比,仅降低了 3%。
- LZ4m 在速度上优于这些算法高达 2.1× 和 1.8× 分别用于压缩和解压缩。LZ4m 在压缩比和解压速度上高于 WKdm 许多,但代价是压缩速度下降了 21%。综上,LZ4m 在压缩比损失的情况下,大幅提高了 LZ4 的压缩/解压速度。

- 下图显示了页面压缩率的累积分布。LZ4m 的压缩比曲线仅次与于 LZO 和 LZ4 算法一些,没有很大差距。而 WKdm 显示出明显的压缩比曲线,远远落后于其他算法。并且 6.8% 的页面根本无法使用 WKdm 进行压缩,而使用其他页面的比例不到 1%。这表明 WKdm 的压缩加速可以通过其较差的压缩比来抵消
- 进一步比较 4 字节粒度的匹配偏移量和匹配长度的含义为目的,将从跟踪匹配长度入手,如图原始 LZ4 和 LZ4m 结果中计算匹配子串的长度,与累积匹配计数进行比较。放大了 LZ4 和 LZ4m 匹配长度在 0 到 32 之间的原始结果,增加的粒度只减少了总长度匹配的出现 2.5%,这意味着 4 字节粒度方案对找到匹配的机会影响很小,在匹配长度上的劣势也是微不足道的。

- 时间和压缩比之间的关系,通过测量每个页面的压缩时间并平均具有相同压缩比的页面的时间可以获得算法的压缩速度。压缩良好的压缩页面的时间在算法中是相似的。比起 LZ4 和 LZO1x,LZ4m 显示出了出色的压缩速度 。因为 LZ4m 的扫描过程,如果没有找到前缀匹配,扫描窗口会提前 4 个字节,从而在难以压缩的页面上提高四倍的扫描速度。
- 算法的解压缩速度与平均解压速度除以压缩比,速度的获得方式与平均压缩速度相同。 LZ4m 在几乎整个压缩比范围内的解压缩速度都优于其他算法。

结论
- LZ4 是目前综合来看效率最高的压缩算法,更加侧重压缩解压速度,压缩比并不是第一。
- 利用内存数据的固有特性优化了一种流行的通用压缩算法,根据数据,LZ4m 能极大地提高了压缩/解压缩速度,而压缩比没有实质性损失。
- LZ4m 针对小块大小进行了优化。最大偏移量为 270(在 LZ4 中为 65535)。
- LZ4m 背后开发人员计划将这种新的压缩算法用于现实世界的内存压缩系统。但从2017年后找不到更多的代码。

参考文献
边栏推荐
- DOM object in JS
- Tdengine connector goes online Google Data Studio store
- 建立自己的网站(10)
- If the storage engine of time series database wants to be the best, it has to do its own research
- SQL update批量更新
- Redis Series 2: data persistence improves availability
- 中国工业软件市场研究报告出炉,力控SCADA、MES丰富国产工业软件生态
- Teach you to use elastic search: run the first hello world search command
- 数据同步工具 DataX 已经正式支持读写 TDengine
- How to create a login interface
猜你喜欢
![[leetcode] 2. Add two numbers (user-defined listnode), medium](/img/27/1e7ce0e08d7428f0f594a3477e35df.jpg)
[leetcode] 2. Add two numbers (user-defined listnode), medium

SQL update批量更新

2022 Liaoning's latest eight members (Safety Officer) simulated test question bank and answers

TDengine 连接器上线 Google Data Studio 应用商店

Wanzhou gold industry: what are the differences between gold t+d investment and other investments?

Oracle TRUNC function processing date format
![[elt.zip] openharmony paper Club - witness file compression system erofs](/img/ad/5c3363b7536d495f153aa0130a10f1.png)
[elt.zip] openharmony paper Club - witness file compression system erofs

Optimal binary search tree

Overview of Inspur Yunxi database executor

Wechat applet map displays the current position with annotation
随机推荐
技术分享 | kubernetes pod 简介
Asemi rectifier bridge kbp310 function pin diagram
为什么要从 OpenTSDB 迁移到 TDengine
New products, new personnel and new services, Infiniti will continue to plough into China's future!
Shardingsphere & Atlas & MYCAT comparison
Using WebDAV instead of 445 port file share
Push NFT out of the regulatory dilemma, and BSN launched NFT supporting infrastructure network
Openssf security plan: SBOM will drive software supply chain security
如何制作登录界面
OpenSSF 安全计划:SBOM 将驱动软件供应链安全
Set up your own website (10)
2022 Liaoning's latest eight members (Safety Officer) simulated test question bank and answers
[UVM foundation] build of UVM_ Phase execution sequence
Why migrate from opentsdb to tdengine
Alibaba's mission, vision and core values
TP5 generates the most detailed two-dimensional code tp6 (also available)
Seata中 SelectForUpdateExecutor 可以先获取全局锁,再执行 sql吗?
[leetcode] 2. Add two numbers (user-defined listnode), medium
PostgreSQL database Wal - resource manager rmgr
About redis master-slave replication