Skip to content

EN Release Notes 2.1.0

Alan Zhang edited this page Oct 7, 2026 · 3 revisions

Home · GitHub

English | 简体中文

TsGate 2.1.0

Version 2.1.0 adds OpenGemini support and incorporates the reviewed adapter fixes while retaining the Template → adapter SPI → backend architecture. Java APIs use com.alandevise.tsgate.*.

TsGate 2.1.0 is published to Maven Central. Portal state is PUBLISHED, and all 38 public POM/JAR downloads match the signed upload. See publication evidence and final release verification.

Dependency versions

The Maven groupId is io.github.alandevise. Align the TsGate parent/BOM and selected modules at 2.1.0, enable only the selected backend, and run representative application checks. Configuration uses tsdb.* YAML keys, and the default template bean name is tgTemplate.

Central 2.0.0 remains available unchanged and does not contain OpenGemini modules. See the upgrade guide for dependency and configuration guidance.

OpenGemini adapter and starter

  • New tsgate-opengemini and tsgate-opengemini-spring-boot-starter modules, managed by the 2.1.0 BOM. The release contains nine JAR modules, plus the parent and standalone BOM.
  • Exact server scope: 1.4.1 and 1.5.2 default engine, using compatible HTTP line protocol and InfluxQL. Single-node and real three-node/three-replica deployments are covered by the dedicated Docker matrix.
  • Existing TGTemplate, annotations and fluent queries, with tsdb.opengemini.enable=true. Cluster configuration uses a reachable SQL endpoint or deployment-managed ingress; the adapter does not discover nodes or replay uncertain writes.
  • Complete-batch measurement and integer validation before I/O, synchronous confirmation and detailed commit states, bounded query results and response bytes, logical result-row counting, constructor-time configuration snapshots and terminal lifecycle closure.
  • Compatible borrowed native client remains org.influxdb.InfluxDB. Its stable proxy obtains real health/version information from X-Geminidb-Version. The exact missing-measurement error becomes empty/zero only in structured query/count; native SQL and native query DTOs preserve server errors.

The tested HTTP path converts integer fields through float64. The adapter rejects integer fields and exact integer-valued common predicates that are outside signed int64 or not exactly representable as float64. Validation covers every IN/BETWEEN value and bounds extreme BigDecimal integer values before expanding them; fractional and zero values retain their established semantics. Native SQL and native writes retain backend precision limitations. This does not make aggregate accumulation or overflow exact.

Write confirmation can precede visibility of a newly indexed series. Applications requiring read-after-write observation must poll for the expected point with a deadline. Strict composite cursors, FIELD ordering, regional calendar-day windows, COLUMNSTORE/Arrow and cluster administration are outside this adapter's supported scope. TLS, authenticated deployments and node/ingress failover were not covered by the recorded local topology matrix. See OpenGemini integration for configuration, limits and reproduction.

Fixes included in 2.1.0

  • Preserve strict cursor input until validation; malformed, null-valued, extra and normalized-duplicate keys produce ARGUMENT_ERROR instead of disappearing. Null/empty cursor maps still select the first page.
  • Honor fail-fast=false for unavailable optional native clients in IoTDB and InfluxDB 3 starters, consistent with InfluxDB 1.x. Required configuration remains mandatory; manual initialization retry does not recreate an unavailable Spring native-client bean.
  • Capture complete adapter settings at construction, including nested configuration and endpoint lists. Configuration changes require a new instance; transient initialization retry and IoTDB pool recovery retain the snapshot.
  • Validate null queries, nonpositive limits, negative offsets and reversed time ranges before backend I/O. The shared SPI default count(null) also returns ARGUMENT_ERROR; count otherwise ignores pagination and cursors.

Baselines and validation

Java 17 without preview features remains the minimum. The documented Spring Boot and client baselines remain unchanged. Database support is limited to the exact capabilities and verified combinations in the compatibility guide.

The earlier source regression snapshot passed 888 unit tests on each of JDK 17/Boot 2.7.18, JDK 21/Boot 3.5.14 and JDK 25/Boot 4.1.0; it also passed 290 Docker integration executions, 27 unsigned archive checks and 34 Python runner tests. These historical results are retained separately and are not substituted for the final 2.1.0 run. Final counts, build inputs and artifact/publication checks are recorded on the linked validation and publishing pages.

Clone this wiki locally