datafusion-contrib / datafusion-contrib/liquid-cache
[Epic] Accurate performance tracking
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 452
- Forks
- 51
- Avg merge
- 3h 10m
- Merged PRs (30d)
- 12
Description
Current
Currently LiquidCache run benchmark on every PR, it looks like this:
Future
While it is nice to have a rough idea of what's going on with the performance, the run-to-run variance has been quite large.
The variance comes from two sites:
- Upstream system variance. E.g., DataFusion has some quite high run-to-run variance that is mysterious to me. I sometimes observe quite large variances when running DataFusion on my local machine. This should not happen, and we need to investigate this a lot more.
- The testbed variance. We run benchmark on
ubicloud-standard-4-ubuntu-2404but it still has high variance, because it's not a dedicated runner.
While we could definitely directly address the above issues, it can take a while to make meaningful progress.
Instead, I'm thinking about tracking invariants that remain unchanged no matter what hardware we benchmark on:
- Number of allocations and deallocations, total size of allocations, number of small allocations, number of large allocations.
- Run benchmark with
cachegrind, but this is super slow - Check non-time-based internal metrics
cc @alamb who is also looking at performance tracking
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
This is an epic and names no files or tests. Start by reviewing the existing benchmark-on-PR setup, then investigate the listed sources of variance and compare allocation metrics, cachegrind, and other non-time-based metrics. Done requires a decided, implementable approach for accurate performance tracking.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100