In order to reduce DTS costs for cross-zone data transfer, we should investigate whether we should enable transport compression between nodes by default.
We could consider using a lightweight compression algorithm between the coordinating node and the primary shard, so that bulk requests are compressed. We would want to investigate using a lightweight compression algorithm such as LZ4, which is light on CPU usage so that we don't have a deleterious impact on indexing throughput.
7.14
[X] Add option to only compress requests/responses primarily composed of source documents (#74587)
transport.compress can now be set to indexing_data as an experimental option
[X] Add fast LZ4 as a transport compression option (#74587)
transport.compression_scheme can be set to lz4 (experimental) or deflate (default)
7.15
[x] Ensure decompression works properly with content aggregation
[x] Enable compression on more indexing_data operations (resync, transport bulk action) (#76321)
[x] Reintroduce remote cluster specific compression scheme settings
[x] Make nodes to respond with the same compression scheme they received (#76372)
[x] Default cluster.remote.*.transport.compression_scheme to deflate if compression is explicitly enabled on remote cluster (#76580)
[x] Update documentation to reflect the fact that this work is not experimental (#76441)
7.16
[x] Remove unnecessary checksumming when LZ4 compressing (#76666)
We use deflate (not GZIP) for transport compression which does not checksum. We are not reading checksum on LZ4 uncompress.
Summary
In order to reduce DTS costs for cross-zone data transfer, we should investigate whether we should enable transport compression between nodes by default.
We could consider using a lightweight compression algorithm between the coordinating node and the primary shard, so that bulk requests are compressed. We would want to investigate using a lightweight compression algorithm such as LZ4, which is light on CPU usage so that we don't have a deleterious impact on indexing throughput.
7.14
transport.compress
can now be set toindexing_data
as an experimental optiontransport.compression_scheme
can be set tolz4
(experimental) ordeflate
(default)7.15
cluster.remote.*.transport.compression_scheme
to deflate if compression is explicitly enabled on remote cluster (#76580)7.16
Maybe Later: