Skip to content

Conversation

AhmedSoliman
Copy link
Contributor

@AhmedSoliman AhmedSoliman commented Jun 12, 2025

The new configuration option bifrost.replicated-loglet.read-batch-size will set (in bytes) the budget for every read batch request bifrost client will make to a log-server. The log-server will send at-least a single record even if it exceeds this budget.
The option is set by default to 32KiB.

Additionally:

  • Default value of bifrost.replicated-loglet.readahead-records is reduced from 100 to 20 to reduce the potential memory ballooning during backfilling. As consequence, backfills will be slower.

Note: this doesn't address all potential memory ballooning issues, there is still a risk of ballooning during massive backfills depending on how many readers and how many loglets are being backfilled at the same time. The risk of ballooning is increased on the log-server side due to the concurrent number of read requests.

// intentionally empty

Copy link

github-actions bot commented Jun 12, 2025

Test Results

  7 files  ±0    7 suites  ±0   4m 44s ⏱️ +49s
 54 tests ±0   53 ✅ ±0  1 💤 ±0  0 ❌ ±0 
223 runs  ±0  220 ✅ ±0  3 💤 ±0  0 ❌ ±0 

Results for commit 9bfadbf. ± Comparison against base commit 5de9ba4.

♻️ This comment has been updated with latest results.

@AhmedSoliman AhmedSoliman force-pushed the pr3392 branch 4 times, most recently from e654a14 to 5517b90 Compare June 13, 2025 08:36
@AhmedSoliman AhmedSoliman marked this pull request as ready for review June 13, 2025 08:43
Copy link
Contributor

@muhamadazmy muhamadazmy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I left one comment below.

@AhmedSoliman
Copy link
Contributor Author

This will not be part of v1.4.0 until we test it under various load conditions to tune the default values.

Copy link
Contributor

@tillrohrmann tillrohrmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for exposing this config option @AhmedSoliman. Curious to learn what's the impact of different read batch sizes on throughput/latency and overall memory consumption. LGTM. +1 for merging :-)

The new configuration option `bifrost.replicated-loglet.read-batch-size` will set (in bytes) the budget for every read batch request bifrost client will make to a log-server. The log-server will send at-least a single record even if it exceeds this budget.
The option is set by default to 32KiB.

Additionally:
- Default value of `bifrost.replicated-loglet.readahead-records` is reduced from 100 to 20 to reduce the potential memory ballooning during backfilling. As consequence, backfills will be slower.

Note: this doesn't address all potential memory ballooning issues, there is still a risk of ballooning during massive backfills depending on how many readers and how many loglets are being backfilled at the same time. The risk of ballooning is increased on the log-server side due to the concurrent number of read requests.

```
// intentionally empty
```
@AhmedSoliman AhmedSoliman merged commit abb2244 into main Jul 30, 2025
38 checks passed
@AhmedSoliman AhmedSoliman deleted the pr3392 branch July 30, 2025 14:55
@github-actions github-actions bot locked and limited conversation to collaborators Jul 30, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants