clickhouse-java
clickhouse-java copied to clipboard
[client-v2] Compression
Compression
Compression may be on transport or application layer. For example, HTTP compressed encoding is transport layer and LZ4 payload compression is what application does. Currently application compression is what we need to implement. First implementation should support bi-directional LZ4 encoding.
Note 1: There is a satisfying implementation of LZ4 support but it uses own stream classes. Should be adopted for broader use.
Settings
Next settings should be deprecated:
- com.clickhouse.client.config.ClickHouseClientOption#COMPRESS "Whether the server will compress response it sends to client." - currently means server response compression and it should be named accordingly
- com.clickhouse.client.config.ClickHouseClientOption#DECOMPRESS "Whether the server will decompress request from client." - currently means client request compression and it should be named accordingly
- com.clickhouse.client.config.ClickHouseClientOption#COMPRESS_ALGORITHM "Algorithm used for server to compress response." - currently only LZ4 is used and this setting can be dropped.
- com.clickhouse.client.config.ClickHouseClientOption#DECOMPRESS_ALGORITHM "Algorithm for server to decompress request." - currently only LZ4 is used and this setting can be dropped.
- com.clickhouse.client.config.ClickHouseClientOption#COMPRESS_LEVEL "Compression level for response, -1 standards for default" - currently means server response compression level and it should be named accordingly. But may be dropped. com.clickhouse.client.config.ClickHouseClientOption#DECOMPRESS_LEVEL "Compression level for request, -1 standards for default" - currently means client request compression level and it should be named accordingly. But may be dropped.
Metrics
Not yet