Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
titleCompression
class CompressionTransformer extends CacheObjectTransformerAdapter {
	protected ByteBuffer transform(ByteBuffer original) throws IgniteCheckedException {                     
		int locOverhead = 4; // Original length.
        int totalOverhead = CacheObjectTransformerUtils.OVERHEAD + locOverhead;

        int origSize = original.remaining();
        int lim = origSize - totalOverhead;          

		if (lim <= 0)
                
        	return thrownull; new// IgniteCheckedException("Compression is not profitable.");

        ByteBuffer compressed = byteBuffer(limlocOverhead + (int)Zstd.compressBound(origSize));    

		compressed.positionputInt(locOverheadorigSize);    

		int size = Zstd.compress(compressed, original, 1);

 		if (size >= lim)
         compressed.flip(); 

		compressed.putInt(origSize);	return null; // Compression is not profitable.          

		compressed.rewindflip();          

        return compressed;
    }

    protected ByteBuffer restore(ByteBuffer transformed) {
        ByteBuffer restored = byteBuffer(transformed.getInt());

        Zstd.decompress(restored, transformed);

        restored.flip();
              
        return restored;
    }
}

...