apache / apache/paimon-rust

Add a reusable benchmark harness for performance-sensitive changes

Open
#483 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
197
Forks
92
Avg merge
1d 16h
Merged PRs (30d)
91

Description

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/paimon-rust/issues) and found nothing similar.

### Motivation

### Description

Currently, `paimon-rust` does not seem to have a reusable benchmark harness, such as `cargo bench` targets or a benchmark dev-dependency like Criterion.

I searched existing issues and did not find a general issue for introducing benchmark infrastructure. There are several performance-sensitive changes or discussions where benchmark evidence would be useful:

- #281 included ad-hoc “Benchmark for TableScan” results in the PR description.
- #230 improved Parquet reader performance.
- #217 added statistics for DataFusion scan to improve query performance.
- #378 mentions future performance benchmarks for Mosaic after read compatibility becomes stable.

These examples suggest that benchmarks would help reviewers and contributors evaluate performance-sensitive PRs more consistently. However, without a reusable benchmark setup, performance comparisons are hard to reproduce and are usually left as one-off measurements in PR descriptions.

Would the project be open to adding a benchmark dependency and an initial set of `cargo bench` benchmarks?

This would not need to define final project-wide benchmark policy immediately. It could start as a small, reproducible benchmark harness and evolve as more performance-sensitive areas need coverage.

### Solution

_No response_

### Anything else?

_No response_

### Willingness to contribute

- [x] I'm willing to submit a PR!

Contributor guide

Open the contributing guide

Research direction

No source files or tests are named. Start by reviewing the project's Cargo configuration and the performance context in issues #281, #230, #217, and #378; define a small, reproducible benchmark setup using cargo bench or Criterion. Done means contributors can run the initial benchmarks consistently and use their results to compare performance-sensitive changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
performance, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.