Skip to content

Conversation

@lhotari
Copy link
Member

@lhotari lhotari commented Sep 4, 2025

Motivation

While profiling Pulsar with PulsarProfilingTest, I noticed that a significant part of CPU of an insert to the cache is spent in the existence check. The case where the entry might already be in the cache is already covered by putIfAbsent and it is very rare after the PendingReadsManager solution was introduced to de-duplicate reads. PIP-430 caches also include a cache lookup for all entries before performing a read and reads from storage will happen only for missing entries.

Modifications

  • remove the exists check before inserting to cache

Documentation

  • doc
  • doc-required
  • doc-not-needed
  • doc-complete

…ck since it's already covered by putIfAbsent
@lhotari lhotari added this to the 4.2.0 milestone Sep 4, 2025
@github-actions github-actions bot added the doc-not-needed Your PR changes do not impact docs label Sep 4, 2025
@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.20%. Comparing base (2e6a8eb) to head (a1fefd6).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##             master   #24699      +/-   ##
============================================
- Coverage     74.33%   74.20%   -0.13%     
+ Complexity    33534    33479      -55     
============================================
  Files          1895     1895              
  Lines        147954   147952       -2     
  Branches      17130    17129       -1     
============================================
- Hits         109978   109795     -183     
- Misses        29256    29420     +164     
- Partials       8720     8737      +17     
Flag Coverage Δ
inttests 26.27% <100.00%> (-0.39%) ⬇️
systests 22.68% <100.00%> (-0.07%) ⬇️
unittests 73.72% <100.00%> (-0.12%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...keeper/mledger/impl/cache/RangeEntryCacheImpl.java 70.84% <100.00%> (+0.88%) ⬆️

... and 99 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@lhotari lhotari merged commit 669ab61 into apache:master Sep 4, 2025
73 of 78 checks passed
lhotari added a commit that referenced this pull request Sep 8, 2025
…ck since it's already covered by putIfAbsent (#24699)

(cherry picked from commit 669ab61)
KannarFr pushed a commit to CleverCloud/pulsar that referenced this pull request Sep 22, 2025
walkinggo pushed a commit to walkinggo/pulsar that referenced this pull request Oct 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants