Skip to content

Coherence CE v26.07

Choose a tag to compare

@coherence-bot coherence-bot released this 15 Sep 16:49
· 111 commits to main since this release

This is the Coherence CE v26.07 release.

Requirements:

  • Java 17 or higher
  • Some features will work only on Java 21 or higher

Major New Features in Coherence CE v26.07

  1. Unified Persistence
    Unified Persistence is a new journal-based persistence engine purpose-built for Coherence. Mutations are appended to per-partition journals, reads use an in-memory radix index for direct access, and recovery loads checkpoints before replaying only newer journal entries. Immutable journal files can be hard-linked into snapshots, making snapshot creation nearly instantaneous on supported file systems. Unified Persistence can replace Berkeley DB behind an existing backing map, serve as the primary backing map through <journal-scheme>, or provide journal-backed backup storage.

  2. Virtual Daemon Pool
    The Virtual Daemon Pool is an opt-in service worker pool for Java 21 and later that runs tasks on virtual threads. Blocking work releases its carrier thread so unrelated work can continue, while mutating operations for the same key are routed through a lightweight per-key mailbox to preserve ordering without tying up the worker pool. The platform-thread pool remains the default. Virtual threads can be enabled per service with <daemon-pool>virtual</daemon-pool>, with optional admission limits for controlling concurrency and downstream pressure.

  3. Daemon Pool Dynamic Resizing
    Coherence platform-thread DaemonPools dynamically resize by monitoring throughput, utilization, queue pressure, and worker CPU activity. Pools react quickly to bursts, shrink gradually as demand subsides, and remain within configured limits. When no maximum is configured, Coherence derives a safe process-wide worker budget from available processors and memory. For blocking or I/O-bound workloads, the pool can probe beyond the processor count and retain additional workers only when they improve measured throughput, rolling back ineffective growth automatically.

  4. Serialization Hardening
    Serialization Hardening adds a common security model across Java serialization, POF, ExternalizableLite, dynamic class and lambda loading, and remote executable objects. Applications can generate and package security-config.xml allowlists from @Remote.Allowed and @PortableType annotations using the Coherence Maven or Gradle plugin. Coherence applies the same allowlist across supported serialization paths, integrates with JEP 290, and provides telemetry to identify application classes that need migration. Compatibility mode remains the default; applications can opt in with -Dcoherence.security.mode=hardened after validating their configuration.

Dependency Updates (3rd-party)

Dependency Updated to
ASM 9.10.1
Jackson 2.21.5
JLine 3.30.16
Netty 4.1.136.Final
OpenTelemetry 1.64.0

Other New features in Coherence CE v26.07

  1. Security fixes and enhancements
  2. COH-33808 Coherence Extend TCP proxies now process independent client connections through connection-affine pipelines instead of serializing all request decoding on one acceptor thread. Each connection retains strict wire ordering, while multiple connections can be decoded concurrently, substantially increasing proxy throughput and reducing latency under load. The pipeline count scales automatically with available processors and measured demand and can be controlled with the new <pipeline-count> TCP acceptor setting.
  3. COH-33807 Platform DaemonPools now adapt concurrency to workload behavior. CPU-bound services remain near the effective processor count, while blocking and I/O-bound services can grow beyond that point when measured throughput demonstrates a benefit. The policy automatically rolls back ineffective growth, improving throughput and latency under blocking load without adding unnecessary workers to CPU-bound workloads.
  4. COH-33801 Improved Java Extend client throughput and CPU efficiency by increasing the default initiator input and output stream buffers from 5 bytes to 8 KiB. This change requires no configuration or wire-protocol changes.
  5. COH-33483 Coherence adds an opt-in security hardening framework for serialization and remote execution paths. When enabled with coherence.security.mode=hardened, Coherence applies stricter validation for remote payloads, dynamic lambdas, POF user types, and remote executable objects. The framework includes generated META-INF/coherence/security-config.xml allowlists, @Remote.Allowed, @Remote.Executable, Maven and Gradle security-config generation, stricter POF type handling, dynamic class and lambda bytecode validation, and route-aware serialization gate telemetry. By default, coherence.security.mode is unset and Coherence preserves existing compatibility behavior, including existing coherence.mode dev/prod semantics, to support patching and rolling upgrades without configuration changes.
  6. COH-33284 Added an optional virtual-thread-based DaemonPool execution model for Java 21 and later. It preserves keyed dispatch and Coherence request-processing semantics while allowing blocking workloads to scale efficiently. It can be selected per service with <daemon-pool>virtual</daemon-pool> and observed through service management metrics.
  7. COH-28116 Eliminated lock contention on the MessageBus connection during send() operations.

Bugs fixed since Coherence CE v26.04

  1. COH-33788 Fixed an issue where SimpleMapIndex footprint accounting could overcount or undercount memory after index-entry churn, causing the reported footprint to diverge from the actual index contents over long runtimes.
  2. COH-33745 Fixed an issue where Coherence MicroProfile Metrics cache gauges for front and back tiers used inconsistent tag sets.
  3. COH-33724 Fixed an issue where TCP proxy worker pools configured without a maximum thread count could grow without bound under load, potentially exhausting native thread resources and destabilizing cluster members. Unbounded daemon pools now share a JVM-wide worker budget while honoring configured minimum and explicit maximum thread counts.
  4. COH-33616 Fixed an issue where JMX connections using IIOP/IIOPS or T3/T3S NameService URLs could fail to resolve and connect correctly.
  5. COH-33597 Fixed an issue where MessageBus connections could disconnect or fail to recover when socket migration overlapped with active traffic or simultaneous peer migration.
  6. COH-33573 Fixed a startup deadlock between Coherence MP Metrics and Helidon 4 metrics initialization.
  7. COH-33568 Fixed an issue where interrupted cache operations could leave partition ownership processing stuck, causing repeated partition transfer attempts and potentially requiring affected members to be restarted.
  8. COH-33566 Fixed an issue where a SelectionService thread could CPU spin indefinitely in rare cases, potentially causing MessageBus acknowledgement timeouts, connection migrations, or service disruption under load.
  9. COH-33551 Fixed an issue where PagedTopic subscriber initialization could time out after 30 seconds even when a longer subscriber timeout was configured. This could cause intermittent failures in topic-backed workflows such as Coherence RAG document ingestion under slower startup or loaded environments.
  10. COH-33550 Fixed an issue where write-behind removes could cause the reported cache size to become negative.
  11. COH-28074 Fixed a performance regression affecting partitioned queries that return small or no results. Coherence now bounds partition-streamed query and aggregation execution and adaptively selects member- or partition-level granularity, reducing message-processing overhead while retaining scalability for large results.

Full Changelog

Full Changelog: 26.04...26.07