[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 0/3] qcow2: add zstd cluster compression
From: |
Denis Plotnikov |
Subject: |
Re: [Qemu-devel] [PATCH v3 0/3] qcow2: add zstd cluster compression |
Date: |
Mon, 26 Aug 2019 08:57:28 +0000 |
Ping!
On 19.08.2019 18:00, Denis Plotnikov wrote:
> v3:
> * relax the compression type setting requirement when
> the compression type is not zlib [Eric, Kevin]
> * add compression type values to the spec [Eric]
> * fix wording in the spec and descriptions [Eric]
> * fix functions descriptions [Max]
> * fix zstd (de)compression functions flaws [Max]
> * fix zstd related parts of configure file [Max]
> * rebased to v4.1.0-rc5 and chenged the series version aiming to 4.2
>
> v2:
> * relax the compression type setting restriction in the spec
> * fix qcow2 header size checking
> * fix error processing and messaging
> * fix qcow2 image specific info reporting
> * set Qcow2CompressionType zstd config dependant
> * add zstd compressed cluster format description to the spec
>
> v1:
> * extend qcow2 header instead of adding a new incompatible extension header
> specification re-written accordingly
> * enable zstd compression via config
> * fix zstd (de)compression functions
> * fix comments/description
> * fix function naming
>
> ---
> The goal of the patch-set is to enable qcow2 to use zstd compression for
> clusters. ZSTD provides better (de)compression performance than currently
> used ZLIB. Using it will improve perforamnce (reduce compression time)
> when the compressed clusters is used, e.g backup scenarios.
>
> Also, the patch-set extends qcow2 specification by adding compression_type
> feature. The feature enables adding ZSTD and another compression algorithms
> in the future.
>
> Here is some measurements ZSTD vs ZLIB:
>
> The test:
> Test compresses and decompresses qemu qcow2 image with just
> installed rhel-7.6 guest.
> Image cluster size: 64K. Image on disk size: 2.2G
>
> The test was conducted with brd disk to reduce the influence
> of disk subsystem to the test results.
> The results is given in seconds.
>
> compress cmd:
> time ./qemu-img convert -O qcow2 -c -o compression_type=[zlib|zstd]
> src.img [zlib|zstd]_compressed.img
> decompress cmd
> time ./qemu-img convert -O qcow2
> [zlib|zstd]_compressed.img uncompressed.img
>
>
> The results:
> compression decompression
> zlib zstd zlib zstd
> ------------------------------------------------------------
> real 65.5 16.3 (-75 %) 1.9 1.6 (-16 %)
> user 65.0 15.8 5.3 2.5
> sys 3.3 0.2 2.0 2.0
>
> Both ZLIB and ZSTD gave the same compression ratio: ~1.5
> compressed image size in both cases: ~1.4G
>
> Denis Plotnikov (3):
> qcow2: introduce compression type feature
> qcow2: rework the cluster compression routine
> qcow2: add zstd cluster compression
>
> block/qcow2-threads.c | 172 ++++++++++++++++++++++++++++++++++----
> block/qcow2.c | 100 ++++++++++++++++++++++
> block/qcow2.h | 26 ++++--
> configure | 34 ++++++++
> docs/interop/qcow2.txt | 39 ++++++++-
> include/block/block_int.h | 1 +
> qapi/block-core.json | 23 ++++-
> 7 files changed, 371 insertions(+), 24 deletions(-)
>
--
Best,
Denis