What is internode compression and how does it work?

What is internode compression? How does it work? How is it configured?

By default, ScyllaDB uses LZ4 compression for internode communication, which helps in reducing network bandwidth usage and improving overall performance.

Setting internode_compression in ScyllaDB impacts how data is compressed when transferred between nodes in a cluster.
Changing this setting can have several impacts, such as more CPU overhead and memory usage because of compression and decompression during the communication among nodes.
There is no negative impact on the network side, AFAIK. It is an optional configuration to set.

You can read more about it in the Documentation.

To elaborate, compression algorithms vary in compression speed, decompression speed, and compression ratio.
Generally, there is a tradeoff between the LZ4 compression algorithm (also used by Cassandra), which offers a relatively low (about 25%) reduction in size, and more efficient algorithms such as ZSTD, which offer better compression rates.
The tradeoff is that using ZSTD requires more time to compress (and decompress) the transmitted data.