Skip to content

[docs] Describe how searches by timestamp read offloaded ledgers - #1238

Merged
lhotari merged 1 commit into
apache:mainfrom
KannarFr:docs/tiered-storage-search-read-performance
Oct 1, 2026
Merged

lhotari merged 1 commit into
apache:mainfrom
KannarFr:docs/tiered-storage-search-read-performance

Conversation

@KannarFr

@KannarFr KannarFr commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Completes the "Read performance for object storage" section of the tiered storage overview with the search by timestamp in offloaded ledgers, following apache/pulsar#26778 and apache/pulsar#26782.

Three paragraphs are added after the existing one, which is unchanged:

  • How a seek by timestamp, a cursor reset to a timestamp and message TTL checks read a ledger offloaded with the jclouds offloader, and what changes in Pulsar 5.0.0 and later: the search reads the first entry of a data block when it is close to the midpoint of its range.
  • The offsets that the jclouds offloader remembers while skipping entries: the pulsar.jclouds.readhandleimpl.learnedoffset.interval.bytes JVM property (default, minimum, how to disable it), how it combines with the backward search already described, what it retains and for how long, and its scope.
  • What to inspect before tuning: the message find metrics documented in [docs] Document the OpenTelemetry metrics of the message position find by timestamp #1236 and the offload metrics, and the effect of the read buffer and block sizes.

The measured numbers are left out of this page, like for the other settings it describes. For reference, with the default 64 MiB data blocks a cold search goes from 156 to 44 ranged reads on average (details in apache/pulsar#26778 and apache/pulsar#26782).

The changes ship in Pulsar 5.0, so the same text is added to docs/ and to versioned_docs/version-5.0.x/.

✅ Contribution Checklist

🤖 Generated with Claude Code

Complete the "Read performance for object storage" section with the search
by timestamp in ledgers offloaded with the jclouds offloader: how it reads
them, what changes in Pulsar 5.0 (probing the first entries of data blocks,
remembered entry offsets and their JVM property), and what to inspect
before tuning the read buffer and block sizes.

Assisted-by: Claude Code (Claude Opus 5.5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@lhotari lhotari left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks!

@lhotari
lhotari merged commit c843a80 into apache:main Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants