Skip to content

Make BEST_COMPRESSION compress more aggressively? [LUCENE-9447] #10487

@asfimport

Description

@asfimport

The Lucene86 codec supports setting a "Mode" for stored fields compression, that is either "BEST_SPEED", which translates to blocks of 16kB or 128 documents (whichever is hit first) compressed with LZ4, or "BEST_COMPRESSION", which translates to blocks of 60kB or 512 documents compressed with DEFLATE with default compression level (6).

After looking at indices that spent most disk space on stored fields recently, I noticed that there was quite some room for improvement by increasing the block size even further:

Block size Stored fields size
60kB 168412338
128kB 130813639
256kB 113587009
512kB 104776378
1MB 100367095
2MB 98152464
4MB 97034425
8MB 96478746

For this specific dataset, I had 1M documents that each had about 2kB of stored fields each and quite some redundancy.

This makes me want to look into bumping this block size to maybe 256kB. It would be interesting to re-do the experiments we did on #7162 to see how this affects the merging speed. That said I don't think it would be terrible if the merging time increased a bit given that we already offer the BEST_SPEED option for CPU-savvy users.


Migrated from LUCENE-9447 by Adrien Grand (@jpountz), resolved Aug 26 2020
Pull requests: apache/lucene-solr#1748, apache/lucene-solr#1762

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions