[Qemu-devel] [PING] [PATCH v0 0/3] add zstd cluster compression

Denis Plotnikov posted 3 patches 4 years, 10 months ago
Only 0 patches received!
There is a newer version of this series
[Qemu-devel] [PING] [PATCH v0 0/3] add zstd cluster compression
Posted by Denis Plotnikov 4 years, 10 months ago

On 28.05.2019 17:37, Denis Plotnikov wrote:
> 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: add compression type processing
>    qcow2: add zstd cluster compression
> 
>   block/qcow2.c             | 240 ++++++++++++++++++++++++++++++++++++--
>   block/qcow2.h             |  29 +++--
>   configure                 |  26 +++++
>   docs/interop/qcow2.txt    |  37 +++++-
>   include/block/block_int.h |   1 +
>   qapi/block-core.json      |  34 +++++-
>   6 files changed, 348 insertions(+), 19 deletions(-)
> 

-- 
Best,
Denis
[Qemu-devel] [PING PING] [PATCH v0 0/3] add zstd cluster compression
Posted by Denis Plotnikov 4 years, 10 months ago

On 04.06.2019 10:56, Denis Plotnikov wrote:
> 
> 
> On 28.05.2019 17:37, Denis Plotnikov wrote:
>> 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: add compression type processing
>>     qcow2: add zstd cluster compression
>>
>>    block/qcow2.c             | 240 ++++++++++++++++++++++++++++++++++++--
>>    block/qcow2.h             |  29 +++--
>>    configure                 |  26 +++++
>>    docs/interop/qcow2.txt    |  37 +++++-
>>    include/block/block_int.h |   1 +
>>    qapi/block-core.json      |  34 +++++-
>>    6 files changed, 348 insertions(+), 19 deletions(-)
>>
> 

-- 
Best,
Denis