More fixes

This commit is contained in:
Robert Schulze 2023-06-09 20:50:17 +00:00
parent 1aa158909e
commit c538506f2e
No known key found for this signature in database
GPG Key ID: 26703B55FB13728A
5 changed files with 9 additions and 6 deletions

View File

@ -385,6 +385,10 @@ High compression levels are useful for asymmetric scenarios, like compress once,
- DEFLATE_QPL works best if the system has a Intel® IAA (In-Memory Analytics Accelerator) offloading device. Refer to [Accelerator Configuration](https://intel.github.io/qpl/documentation/get_started_docs/installation.html#accelerator-configuration) and [Benchmark with DEFLATE_QPL](/docs/en/development/building_and_benchmarking_deflate_qpl.md/#Run-Benchmark-with-DEFLATE_QPL) for more details. - DEFLATE_QPL works best if the system has a Intel® IAA (In-Memory Analytics Accelerator) offloading device. Refer to [Accelerator Configuration](https://intel.github.io/qpl/documentation/get_started_docs/installation.html#accelerator-configuration) and [Benchmark with DEFLATE_QPL](/docs/en/development/building_and_benchmarking_deflate_qpl.md/#Run-Benchmark-with-DEFLATE_QPL) for more details.
- DEFLATE_QPL-compressed data can only be transferred between ClickHouse nodes compiled with SSE 4.2 enabled. - DEFLATE_QPL-compressed data can only be transferred between ClickHouse nodes compiled with SSE 4.2 enabled.
:::note
DEFLATE_QPL is not available in ClickHouse Cloud.
:::
### Specialized Codecs ### Specialized Codecs
These codecs are designed to make compression more effective by using specific features of data. Some of these codecs do not compress data themself. Instead, they prepare the data for a common purpose codec, which compresses it better than without this preparation. These codecs are designed to make compression more effective by using specific features of data. Some of these codecs do not compress data themself. Instead, they prepare the data for a common purpose codec, which compresses it better than without this preparation.

View File

@ -98,8 +98,7 @@ public:
protected: protected:
bool isCompression() const override { return true; } bool isCompression() const override { return true; }
bool isGenericCompression() const override { return true; } bool isGenericCompression() const override { return true; }
bool isExperimental() const override { return false; } bool isDeflateQpl() const override { return true; }
bool isDeflateQplCompression() const override { return true; }
UInt32 doCompressData(const char * source, UInt32 source_size, char * dest) const override; UInt32 doCompressData(const char * source, UInt32 source_size, char * dest) const override;
void doDecompressData(const char * source, UInt32 source_size, char * dest, UInt32 uncompressed_size) const override; void doDecompressData(const char * source, UInt32 source_size, char * dest, UInt32 uncompressed_size) const override;

View File

@ -159,7 +159,7 @@ ASTPtr CompressionCodecFactory::validateCodecAndGetPreprocessedAST(
" You can enable it with the 'allow_experimental_codecs' setting.", " You can enable it with the 'allow_experimental_codecs' setting.",
codec_family_name); codec_family_name);
if (!enable_deflate_qpl_codec && result_codec->isDeflateQplCompression()) if (!enable_deflate_qpl_codec && result_codec->isDeflateQpl())
throw Exception(ErrorCodes::BAD_ARGUMENTS, throw Exception(ErrorCodes::BAD_ARGUMENTS,
"Codec {} is disabled by default." "Codec {} is disabled by default."
" You can enable it with the 'enable_deflate_qpl_codec' setting.", " You can enable it with the 'enable_deflate_qpl_codec' setting.",

View File

@ -109,8 +109,8 @@ public:
/// It will not be allowed to use unless the user will turn off the safety switch. /// It will not be allowed to use unless the user will turn off the safety switch.
virtual bool isExperimental() const { return false; } virtual bool isExperimental() const { return false; }
/// This is a knob for Deflate QPL codec. /// Is this the DEFLATE_QPL codec?
virtual bool isDeflateQplCompression() const { return false; } virtual bool isDeflateQpl() const { return false; }
/// If it does nothing. /// If it does nothing.
virtual bool isNone() const { return false; } virtual bool isNone() const { return false; }

View File

@ -733,7 +733,7 @@ void DistributedSink::writeToShard(const Cluster::ShardInfo & shard_info, const
if (compression_method == "ZSTD") if (compression_method == "ZSTD")
compression_level = settings.network_zstd_compression_level; compression_level = settings.network_zstd_compression_level;
CompressionCodecFactory::instance().validateCodec(compression_method, compression_level, !settings.allow_suspicious_codecs, settings.allow_experimental_codecs, settings.enale_deflate_qpl_codec); CompressionCodecFactory::instance().validateCodec(compression_method, compression_level, !settings.allow_suspicious_codecs, settings.allow_experimental_codecs, settings.enable_deflate_qpl_codec);
CompressionCodecPtr compression_codec = CompressionCodecFactory::instance().get(compression_method, compression_level); CompressionCodecPtr compression_codec = CompressionCodecFactory::instance().get(compression_method, compression_level);
/// tmp directory is used to ensure atomicity of transactions /// tmp directory is used to ensure atomicity of transactions