Skip to content

[improve][meta] Upgrade Oxia client to 0.9.4#26193

Merged
nodece merged 1 commit into
apache:masterfrom
merlimat:mmerli/oxia-client-upgrade-0-9-4
Jul 15, 2026
Merged

[improve][meta] Upgrade Oxia client to 0.9.4#26193
nodece merged 1 commit into
apache:masterfrom
merlimat:mmerli/oxia-client-upgrade-0-9-4

Conversation

@merlimat

Copy link
Copy Markdown
Contributor

Motivation

The Oxia Java client 0.9.x line is a performance-focused set of releases on top of 0.8.0, with no breaking public API changes (each 0.9.x release note states that code built against the prior version keeps compiling):

  • 0.9.0 — fewer allocations and less lock contention on the hot read/write paths; batch assembly moved from two dedicated threads per shard to a small shared pool; end-to-end backpressure via a bounded total size of pending operations.
  • 0.9.1 / 0.9.2SharedResources: many client instances in one JVM can share a background thread pool, gRPC connection pool, shard-assignment stream and batcher threads.
  • 0.9.3 / 0.9.4 — rate-adaptive write and read batching with a bounded per-shard in-flight window, so under load operations accumulate into larger requests instead of flooding the server with small RPCs.

Modifications

  • Bump oxia from 0.8.0 to 0.9.4 in the Gradle version catalog. oxia-testcontainers stays at 0.7.4 (its latest published version; the two version refs were already decoupled in the 0.8.0 bump).
  • Update the two bundled Oxia jar versions in distribution/server/src/assemble/LICENSE.bin.txt. The client's bundled runtime dependencies (slog, caffeine, failsafe) are unchanged between 0.8.0 and 0.9.4, so only the two oxia-client / oxia-client-api jar names change.
  • Drop the batchLinger(...) calls in OxiaMetadataStore and OxiaMetadataStoreProvider. batchLinger is a no-op in 0.9.x (batching is adaptive) and is deprecated for removal. maxRequestsPerBatch still honors the configured batchingMaxOperations, so there is no runtime behavior change.

Verifying this change

This change is a dependency upgrade covered by the existing Oxia metadata-store tests (pulsar-metadata MetadataStore*/Oxia* suites and the Oxia integration tests). Compilation, checkstyle, and dependency resolution were verified locally.

Does this pull request potentially affect one of the following parts:

  • Dependencies (add or upgrade a dependency)

Upgrades io.github.oxia-db:oxia-client from 0.8.0 to 0.9.4. No public API, wire-protocol, schema, config-default, or metrics changes.

Oxia Java client 0.9.4 is a performance-focused line of releases over 0.8.0
(rate-adaptive read/write batching with a bounded per-shard in-flight window,
shared resources across client instances, and fewer allocations and less lock
contention on the hot paths), with no breaking public API changes.

- Bump `oxia` from 0.8.0 to 0.9.4 in the version catalog; `oxia-testcontainers`
  stays at 0.7.4 (its latest published version).
- Update the bundled oxia jar versions in the server binary LICENSE file.
- Drop the now-deprecated `batchLinger(...)` calls: the setting is a no-op in
  0.9.x (batching is adaptive) and is marked for removal. `maxRequestsPerBatch`
  still honors the configured batching-max-operations, so behavior is unchanged.

Assisted-by: Claude Code (Opus 4.8)
@nodece nodece merged commit 0ae4d94 into apache:master Jul 15, 2026
82 of 84 checks passed
@lhotari lhotari added this to the 5.0.0-M2 milestone Jul 15, 2026
@merlimat merlimat deleted the mmerli/oxia-client-upgrade-0-9-4 branch July 15, 2026 13:03
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.

3 participants