Skip to content

Conversation

@widavis
Copy link

@widavis widavis commented Jun 30, 2025

Improve the partial compression code to use random text strings instead of all 0s. Using all 0s is still an option.

To use compressible warp objects, you must provide the " --obj.generator partiallyCompressible" flag, then you have two tunable:
--obj.percentCompressible <1-100>: for any given 32K chunk of data in the object, it has this % chance of being compressible data. So 33 here would mean "every 3rd chunk is compressible", 50 would be "every other chunk is compressible.
--obj.compressionRatioTunable <0-64>: When creating a compressible region of the object, we take a known string and pull X-character substrings from it at random to fill it. So a 1 means "randomly chosen letters", 60 means "randomly chosen 60-character substrings".
- This has a special case, where providing a 0 here means the compressible regions are all 0s

A reasonable default invocation is to use "--obj.generator partiallyCompressible --obj.percentCompressible 50 --obj.compressionRatioTunable 40"

widavis and others added 10 commits June 30, 2025 22:24
…tCompressible <int>

By default, the objects generated by warp are very random. This means that they unable to be compressed by Red, so we do not
exercise the compression code paths.
Objects generated by this generator will have regions of compressible data (all 0s) and uncompressible (random) data; we use a 32K chunk size for
these regions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants