Compression

An absolutely killer feature is the ability to add compression with little hassle. This is a must-do option to get more performance and better disk space utilization. Many workloads work really well with compression.

On the snapshot below you can see two volumes with the same data (built from the same snapshot). The first one (blue) it’s the duplicate-volume without compression takes 3.50G. The second one (green) with lz4 compression takes only 993M (it’s more than 3.5 times less).

The same volumes in our Disk Space monitor:

 

By our tests, no degradation in performance. There is small (~10%) increase in CPU usage.

 

The following compression algorithms are available:

  • gzip - standard UNIX compression.

  • gzip-N - selects a specific gzip level. gzip-1 provides the fastest gzip compression. gzip-9 provides the best data compression. gzip-6 is the default.

  • lz4 - provides better compression with lower CPU overhead

  • lzjb - optimized for performance while providing decent compression

  • zle - zero length encoding is useful for datasets with large blocks of zeros

 

 

You can turn on the compression from API:

Pool->compress

Curl example:

The compression will be applied on volumes what will be created after the compression was turned-ON. All volumes (and snapshots) what were created before will stay uncompressed.