Earlier quoted context omitted.
Indeed. I think you have different saturation points the wider the use cases you hit. One example w/ a single-core (which btw, agreed whole heartedly for io) is checksumming + decoding. For kafka, we have multiple indexes - a time index and an offset index which are simple metadata. the trouble becomes on how you handle decompression+checksumming+compression for supporting compacted topics. ( https://github.com/vecto…
>>> the trouble becomes on how you handle decompression+checksumming+compression gzip will cap 1 MB/s with the strongest compression setting and 50 MB/s with the fastest setting, which is really slow. The first step to improve kafka is for kafka to adopt zstd compression. Another thing that really hurts is SSL. Desktop CPU with AES instructions can push 1 GB/s so it's not too bad, but that may not the the CPU you hav…
Here is our version of the streaming decoder i wrote a while ago https://github.com/vectorizedio/redpanda/blob/dev/src/v/comp...
that's our default for our internal RPC as well.
in fact kafka protocol support lz4, zstd, snappy, gzip all of them. and you can change them per batch. compression is good w/ kafka.