[RFC PATCH v0 0/3] erofs-utils: support multiple block compression
Gao Xiang
hsiangkao at aol.com
Wed Dec 30 19:47:25 AEDT 2020
From: Gao Xiang <hsiangkao at aol.com>
Hi folks,
This is the first RFC patch of multiple block compression (including
erofsfuse) after I carefully think over the on-disk design to support
multiblock in-place decompression.
Compression ratio results (POC, lz4hc, lz4-1.9.3, not final result):
1000000000 enwik9
621211648 enwik9_4k.squashfs.img
557858816 enwik9_4k.erofs.img
556191744 enwik9_8k.squashfs.img
502661120 enwik9_16k.squashfs.img
500723712 enwik9_8k.erofs.img
458784768 enwik9_32k.squashfs.img
453971968 enwik9_16k.erofs.img
422318080 enwik9_64k.squashfs.img
416686080 enwik9_32k.erofs.img
398204928 enwik9_128k.squashfs.img
395276288 enwik9_64k.erofs.img
TODO:
- support compact indexes for multiple block compression **;
- support multithread compression (keep compressed data in memory);
- carefully design kernel optimized paths to maximize runtime performance;
- widely testing.
If you think that'd be useful for your products and you also have interest
in development, feel free to follow that as well since I don't have abundant
free time so the progress might be somewhat slow (I tend to finish them all before
the next LTS).
Thanks,
Gao Xiang
Gao Xiang (3):
erofs-utils: add -C# for the maximum size of pclusters
erofs-utils: mkfs: support multiple block compression
erofs-utils: fuse: support multiple block compression
include/erofs/config.h | 2 ++
include/erofs/internal.h | 1 +
include/erofs_fs.h | 19 ++++++++---
lib/compress.c | 70 ++++++++++++++++++++++++--------------
lib/config.c | 1 +
lib/data.c | 4 +--
lib/zmap.c | 72 ++++++++++++++++++++++++++++++++++++----
mkfs/main.c | 14 +++++++-
8 files changed, 146 insertions(+), 37 deletions(-)
--
2.24.0
More information about the Linux-erofs
mailing list