Benchmark catalog v2 for single and multi stream #1085
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request
Adds benchmarks for single and multi stream. Benchmarks measure how long it takes for catalog to load a single stream of data and multiple streams of data. This is a good stress test for the stream merging datafusion based catalog.
The benchmarks were run on an AMD 5600U machine and gave the following. To run the tests you need the
bench_data
directory in the root of the repository and thencargo bench
in the persistence crate for rust benching andpytest -k stream_catalog_v2
for python catalog benching.The python tests are expected to take more time because of the overhead of initializing python objects and acquiring GIL.
The multi-stream python bench requires 8+ gb of ram and could not be run.
An appropriate measure for the catalog is its throughput which can be measured in terms of ticks per second. Here we can compare with previous iterations described in #705
Rust catalog v1 - arrow2 and Python merge logicdropping for significant implementation effort expected to be less than 3M/sType of change
How has this change been tested?
The benchmarks were run and passed.