Intel® ISA-L Compression Algorithms

  • Overview
  • Resources
  • Transcript

The Intel® Intelligent Storage Acceleration Library (Intel® ISA-L) includes algorithms for compression and decompression.
DEFLATE compression algorithms traditionally use either a dynamic or static compression table. Use of a dynamic table achieves the best compression at a higher processing cost, while use of static tables increase throughput at a lower compression rate. Intel ISA-L semi-dynamic compression comes close to getting the best of both worlds. In addition, Intel® ISA-L offers a version of the decompression (inflate) algorithm which substantially improves the decompression performance.

Learn more about how Intel ISA-L compression and decompression functionality can improve the performance of your software defined storage application on Intel® architecture.

Watch the rest of the videos in this series:

What is Intel® ISA-L? 
- Intel® ISA-L Compression Algorithms
Intel® ISA-L Semi-Dynamic Compression Code Sample Walk Through
Intel® ISA-L Cryptographic Hashing
Intel® ISA-L: Cryptographic Hashing Code Sample Overview
Intel® ISA-L Erasure Coding
Intel® ISA-L Erasure Coding Sample Application Overview

 

Hi. I'm Praveen from Intel. In this part of the Intel Intelligent Storage Acceleration Library video playlist, we're going to discuss the compression algorithms of Intel ISA-L. We will be walking through an example of how it will be beneficial to your stories applications. 

[? IZip ?] is what we call our version of Zzip implementation of DEFLATE. Gzip is something like adapted to increase the performance. And it gets much better throughput than the fastest flavor of [INAUDIBLE] 

There are three characteristics to keep in mind-- compression ratio, compression throughput, and decompression throughput. Depending on your needs, you will have to trade one of these characteristics against each other. 

Next, let's talk about DEFLATE. It is one of the most adapted compression formats that exist. And its license has been baked into all kinds of software applications. It is lossless, meaning that it allows the original data to be perfectly reconstructed from the compressed data. 

Next, let's talk about the static and dynamic compression tables. It is important to note that the different compression algorithms traditionally use either a dynamic or static compression table. To get the best compression results, a dynamic table should be used. However, it will come at the cost of more processing time. The algorithms focused on throughput should use static tables. 

The dynamic table has no initial knowledge of occurrence frequencies. It permits dynamically adjusting the Huffman tree as data is being transmitted. [INAUDIBLE] is a static Huffman table. For this table, you're not generating the table that you use for compression dynamically. But we have a static table here. This is why it is important. 

The result is a lower compression ratio. But you get the higher speed and throughput in the compression algorithms. It's suitable with real-time compression workloads even without dedicated hardware. 

The next thing we will talk about is a semi-dynamic compression. The Intel ISA-L semi-dynamic compression comes close to getting the balance of both the worlds. One of the cool features is a semi-dynamic compression, which is a brand new technique that Intel ISA-L offers. It allows the user to granularly trade off throughput for the compression ratios. 

Intel ISA-L also offers a version of the decompression, or INFLATE, algorithm, which substantially improves the decompression performance. It is also fully compatible with existing DEFLATE archives. 

Thanks for watching. To see a code sample of this, follow the links below. And read the article on the Intel Developer Zone. Don't forget to like this video and subscribe.