clickhouse-java icon indicating copy to clipboard operation
clickhouse-java copied to clipboard

[client-v2] Compression

Open chernser opened this issue 7 months ago • 2 comments

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

chernser avatar Jul 01 '24 07:07 chernser