Sparse data stresses some corner cases of the system currently because there tends to be much more repdef information than actual data. In practice this means we end up struggling with miniblock because the compression algorithm chooses the chunking based on the data and the chunks end up being larger than the max size because they have so much repdef.
We then either:
- Fall back to full zip (which is very inefficient for sparse data)
- Split pages to avoid data chunks being too large (which can lead to a lot of pages)
We could create larger miniblocks, though large block sizes means more read amplification or we could allow the repdef information to influence the chunking decision. In fact, the latter might actually be less complexity in the compressors.
Sparse data stresses some corner cases of the system currently because there tends to be much more repdef information than actual data. In practice this means we end up struggling with miniblock because the compression algorithm chooses the chunking based on the data and the chunks end up being larger than the max size because they have so much repdef.
We then either:
We could create larger miniblocks, though large block sizes means more read amplification or we could allow the repdef information to influence the chunking decision. In fact, the latter might actually be less complexity in the compressors.