Skip to content

Conversation

@kpmckay
Copy link
Contributor

@kpmckay kpmckay commented Sep 13, 2019

Summary
This pull requests adds a compress-percent option that allows ACT to send data with a specified target compression ratio for storage workloads. The compress-percent option works similar to the buffer_compress_percentage option in FIO. For example, setting compress-percent to 40 will configure ACT to send data that should compress to 40% of its original size. The default compress-percent value is 100, corresponding to fully random data (not compressible). Values greater than 100 are not permitted. Similar to FIO, the data is made compressible by adding runs of zeros to random data. The runs of zeros are added at 512 byte intervals in the buffer in order to prevent de-duplication or zeros truncation from skewing the compression ratio. Because run-length encoding techniques provide virtually all of the compression for the generated data pattern, similar compression ratios should be observed for most common algorithms (gzip, LZ4, Snappy, etc.).

Motivation
Some SSDs support in-line compression. In-line compression can reduce tail latency by lowering the amount of write-to-read interference within the SSD. By providing an option within ACT to send compressible data, one can measure the effects of compression on tail latency under different workload assumptions.

@rbotzer rbotzer requested a review from gooding470 September 27, 2019 20:55
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.

1 participant