Skip to main content

Timeplus Enterprise 3.2

Key Highlights

Key highlights of the Timeplus 3.2 release include:

  1. Major performance improvement in the data replication network layer — up to 30x faster in some scenarios — powered by request pooling, recyclable network buffers, sharded request/response channels, scatter/gather writes, and IPv6 support.
  2. Major performance improvement (up to 40x) for Kafka ingestion of Protobuf, CSV, and similar formats via smart batching and a new parallel Kafka source.
  3. Broad stability and quality hardening across mutable streams, checkpoints, materialized views, streaming joins, memory accounting, and replicated log recovery.
  4. Improved Okta SSO integration with a smoother login flow and support for mapping Okta users to read-only or admin roles.

Supported OS

Deployment TypeOS
Linux bare metalx64 or ARM chips: Ubuntu 20.04+, RHEL 8+, Fedora 35+, Amazon Linux 2023
Mac bare metalIntel or Apple chips: macOS 14, macOS 15
KubernetesKubernetes 1.25+, with Helm 3.12+

Releases

We recommend using stable releases for production deployment. Engineering builds are available for testing and evaluation purposes.

3.2.3

Released on 04-12-2026. Installation options:

  • For Linux or Mac users: curl https://install.timeplus.com/3.0 | sh Downloads
  • For Docker users (not recommended for production): docker run -p 8000:8000 docker.timeplus.com/timeplus/timeplus-enterprise:3.2.3
  • For Kubernetes users: helm install timeplus/timeplus-enterprise --version 11.0.7

Component versions:

  • timeplusd 3.2.3
  • timeplus_appserver 3.2.1
  • timeplus_connector 3.2.0
  • timeplus cli 3.0.0
  • timeplus byoc 1.0.0

Changelog

This release consolidates all timeplusd changes from 3.1.2 through 3.2.3.

Features and Enhancements

  • Add global tiered storage policy (#11811)
  • Add feature flag to disable the workload rebalancer (#11815)
  • Enhance parallel Kafka source (#11742)
  • Add Python external stream init and deinit hooks (#11756)
  • Add server config gates for JavaScript and Python UDFs (#11752)
  • Propagate local API user to Python UDF (#11806) and introduce local API user support (#11804)
  • Support non-const arguments for rand distribution functions (#11715)
  • Add time-weighted aggregate combinator support and coverage (#11583)
  • Support map type generation in random stream (#11586)
  • Add keep_range_join_max_buckets setting to cap range join bucket count (#11775)
  • Improve discard log messages to include range_time_column name (#11854)
  • Add IPv6 support (#11653) and IPv6 enforce setting with misc fixes (#11670)
  • Enable client batch send by default (#11658)
  • Upgrade curl to 8.18 and enable Pulsar on macOS (#11693)
  • Upgrade Pulsar client to v4.0.1 (#11611)
  • Backfill right-side hash table in streaming enrichment joins (#11702)
  • Tolerate UNKNOWN_STREAM in DROP CASCADE / IF EXISTS (#11820)
  • Derive subject name according to schema subject strategy (#11705)
  • Better error handling in stream metadata updates (#11542)
  • Move external stream validation from constructors to dedicated methods (#11636)
  • Validate task creation (#11664)

Performance

  • Batch process Protobuf messages for Kafka (#11572)
  • Avoid Field temporaries in C++ to Python column conversion (#11836)
  • Set fill_cache=false on KV full-scan read paths (#11831)
  • Add Python GIL wait instrumentation (#11808)
  • Improve Python UDF data conversion and Python consume sink performance (#11788)
  • Commit historical data inline in the poll thread (#11749)
  • Merge small JSON blocks before commit (#11765)
  • Add request pooling (#11643)
  • Introduce recyclable network buffers (#11626)
  • Scatter/gather writes for client (#11629)
  • Sharding inflight requests map (#11628) and sharding response channel (#11655)
  • Switch blocking queue to dequeue with queue reuse (#11622)
  • Optimize eloop wakeup (#11617) and net perf baseline (#11616)
  • Fine tune network buffer size (#11641)
  • Refactor string-concatenation INSERTs to block-based inserts (#11573)
  • Lock guard in consumer (#11800)

Bug Fixes

  • Disable checkpoints at runtime for random-source materialized views (#11827)
  • Fix join changelog mode for nested aggregation (#11833)
  • Fix cgroup memory accounting (#11817)
  • Prevent early meta-log compaction (#11826)
  • Fix zero replication client (#11813)
  • Fix async commit batch and client lifecycle (#11810)
  • Fix memory tracker regression causing spurious MEMORY_LIMIT_EXCEEDED (#11783)
  • Fix TimeWheel races and shutdown ordering (#11718)
  • Fix heap-use-after-free in RocksDBColumnFamilyHandler::destroy() (#11758)
  • Clear spilled hybrid update state after emit batches (#11741)
  • Fix replicated log startup epoch recovery (#11728)
  • Handle Python source cancel during MV failover (#11727)
  • Fix context expired MV table subquery (#11738)
  • Fix streaming CTE/subquery with aggregation returning empty results (#11695)
  • Update MV schema after ALTER STREAM MODIFY QUERY (#11681)
  • Keep session watermark monotonic (#11649)
  • Support more streaming resize combinations (#11671)
  • Fix synthesizeQuorumReplicationStatus (#11668)
  • SQL analyzer now returns 400 for invalid SQL (#11708)
  • Fix watchdog restart semantics (#11706)
  • Preserve OR semantics with empty IN on mutable stream (#11596)
  • Handle malformed Confluent Protobuf messages gracefully (#11587)
  • Fix avg time-weighted overflow (#11591)
  • Fix fatal crash from stale async checkpoint epoch mismatch (#11601)
  • Fix secondary index cleanup on delete for mutable stream (#11593)
  • Fix server wakeup during shutdown (#11633)
  • Fix meta log lagging (#11682)
  • Improve FetchHint unset file_position logging (#11772)
  • Backport replxx updates (#11818)
  • Port Proton OSS #1124: merge small JSON block before commit (#11765)
  • Add self-join regression coverage fix (#11678)