OPTION(compressor_zlib_isal, OPT_BOOL)
OPTION(compressor_zlib_level, OPT_INT) //regular zlib compression level, not applicable to isa-l optimized version
+OPTION(compressor_zstd_level, OPT_INT) //regular zstd compression level
OPTION(qat_compressor_enabled, OPT_BOOL)
.set_default(5)
.set_description("Zlib compression level to use"),
+ Option("compressor_zstd_level", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+ .set_default(5)
+ .set_description("Zstd compression level to use"),
+
Option("qat_compressor_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
.set_default(false)
.set_description("Enable Intel QAT acceleration support for compression if available"),
std::ostream *ss) override
{
if (compressor == 0) {
- ZstdCompressor *interface = new ZstdCompressor();
+ ZstdCompressor *interface = new ZstdCompressor(cct);
compressor = CompressorRef(interface);
}
*cs = compressor;
#include "include/encoding.h"
#include "compressor/Compressor.h"
-#define COMPRESSION_LEVEL 5
-
class ZstdCompressor : public Compressor {
public:
- ZstdCompressor() : Compressor(COMP_ALG_ZSTD, "zstd") {}
+ ZstdCompressor(CephContext *cct) : Compressor(COMP_ALG_ZSTD, "zstd"), cct(cct) {}
int compress(const bufferlist &src, bufferlist &dst) override {
ZSTD_CStream *s = ZSTD_createCStream();
- ZSTD_initCStream_srcSize(s, COMPRESSION_LEVEL, src.length());
+ ZSTD_initCStream_srcSize(s, cct->_conf->compressor_zstd_level, src.length());
auto p = src.begin();
size_t left = src.length();
dst.append(dstptr, 0, outbuf.pos);
return 0;
}
+ private:
+ CephContext *const cct;
};
#endif