apache / apache/paimon

[Bug] Bitmap benchmarks do not close seekable input streams

Open Beginner friendly
#8,755 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
3.4k
Forks
1.4k
Avg merge
1d 11h
Merged PRs (30d)
396

Description

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

**Paimon version**
master @ 345526e26 (2.0-SNAPSHOT)

**Compute Engine**
Engine-agnostic (benchmark module, `paimon-benchmark/paimon-micro-benchmarks`)

**Minimal reproduce step**
Read these five benchmark cases in the `benchmark/bitmap` package:
- `RoaringBitmapBenchmark.testDeserialize()`, case `deserialize(DataInputStream(BufferedInputStream))`
- `BitmapIndexBenchmark.query()`
- `RangeBitmapIndexBenchmark.queryBsi()` / `queryBitmap()` / `queryRangeBitmap()`

Each opens a `LocalFileIO.LocalSeekableInputStream` inside the case body and never closes it. Nothing downstream closes it either: `FileIndexReader` implementations do not close the stream they are created from.

**What doesn't meet your expectations?**
The streams should be released deterministically once the case body ends.
- The other three cases in the same method `RoaringBitmapBenchmark.testDeserialize()` already wrap the stream in try-with-resources; only the second case does not.
- `LocalFileIO.LocalSeekableInputStream.close()` closes the underlying `FileInputStream`, so skipping it leaves release to the GC.

**Anything else?**
Fix is to wrap the five sites in try-with-resources. The measured logic (deserialization, index lookup) stays the same.

**Are you willing to submit a PR?**
- [x] I'm willing to submit a PR!

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in the benchmark/bitmap package with RoaringBitmapBenchmark.testDeserialize(), BitmapIndexBenchmark.query(), and RangeBitmapIndexBenchmark.queryBsi(), queryBitmap(), and queryRangeBitmap(). Compare the five sites with the existing try-with-resources cases, then run the bitmap benchmarks or relevant benchmark tests. Done means each opened LocalFileIO.LocalSeekableInputStream is closed while the measured logic remains unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
performance
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
84/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.