James mostly serve primarily reads with a ration often other 80%.
We often benefit from read optimization.
Such an optimization is the size of chunks being LZ4 compressed within SSTables files:
- bigger chunks means better compression
- but also means all reads need to load the full chunk size, thus costing IOs
For read heavy workloads, experiment shows decreasing the chunk size from 64KB (default) to a more reasonable value (like 4KB) often leads to significant performance enhancement.
As an adoption step, we should conduct a performance test on read-heavy mailbox-metadata. If conclusive, we can consider adoption on some other often read metadata.
As a reference here is a reference article on the last pickle blog: https://thelastpickle.com/blog/2018/08/08/compression_performance.html