Skip to content

ZH Release Notes 2.1.0

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

Home · GitHub

English | 简体中文

TsGate 2.1.0

2.1.0 新增 OpenGemini 支持,纳入复审后的适配层修复,并保留 Template → adapter SPI → 后端架构。Java API 使用 com.alandevise.tsgate.* 包。

TsGate 2.1.0 已正式发布到 Maven Central。Portal 状态为 PUBLISHED,全部 38 份公开 POM/JAR 下载内容均与签名上传包一致。详见发布证据与最终发行验证。

依赖版本

Maven groupId 为 io.github.alandevise。将 TsGate 父 POM/BOM 与所选模块版本统一为 2.1.0,只启用所选后端,并执行业务代表性回归。配置使用 tsdb.* YAML 键,默认模板 Bean 名为 tgTemplate。

Central 2.0.0 制品保持原样,且不含 OpenGemini 模块。依赖与后端升级流程见升级指南。

OpenGemini adapter 与 starter

  • 新增 tsgate-opengemini、tsgate-opengemini-spring-boot-starter,由 2.1.0 BOM 管理;发行包含九个 JAR 模块,另有父 POM 和独立 BOM。
  • 准确服务端范围为 1.4.1 与 1.5.2 默认引擎,使用兼容 HTTP line protocol 与 InfluxQL;专用 Docker 矩阵覆盖单节点及真实三节点三副本部署。
  • 沿用 TGTemplate、注解和链式查询,通过 tsdb.opengemini.enable=true 启用。集群使用可达 SQL 入口或部署侧入口;适配器不发现节点,不重放提交结果不确定的写入。
  • I/O 前执行整批 measurement 与整数校验,保留同步确认、详细提交状态、查询行数/响应字节限制、逻辑结果行计数、构造时配置快照及终态关闭。
  • 借用的兼容原生客户端仍为 org.influxdb.InfluxDB;稳定代理通过 X-Geminidb-Version 获取真实健康/版本信息。仅结构化 query/count 将准确的 measurement 缺失错误转为空/零,原生 SQL 与原生查询 DTO 保留服务端错误。

实测 HTTP 路径会先将整数字段转换为 float64。整数字段和统一查询中的精确整数型条件若超出有符号 int64 或无法由 float64 精确表示,适配器会拒绝;校验覆盖 IN/BETWEEN 的每个值,并在展开极大 BigDecimal 整数前先做有界判断。小数和零保留既有语义。原生 SQL/原生写入保留服务端精度限制,此校验不保证聚合累加或溢出后的精确性。

新 series 的索引可见性可能晚于写入确认。业务若需要观测刚写入的数据,应对期望点显式读侧轮询并设置截止时间。严格复合游标、FIELD 排序、区域日历日窗口、COLUMNSTORE/Arrow 与集群管理不在此适配器的支持范围。既有本地拓扑矩阵未覆盖 TLS、启用认证的部署及节点/入口故障切换。配置、边界和复现步骤见 OpenGemini 接入指南。

2.1.0 纳入的修复

  • 严格游标原始输入保留到校验阶段,非法键、null 值、多余键及规范化重名键报 ARGUMENT_ERROR,不再被丢弃;null/空 map 仍表示第一页。
  • IoTDB、InfluxDB 3 starter 在原生客户端不可用时遵守 fail-fast=false 的可选注入语义,与 InfluxDB 1.x 一致。必填配置仍须合法;手动初始化重试不会重建此前不可用的 Spring 原生客户端 Bean。
  • 构造时捕获完整配置,包括嵌套设置与节点列表;修改配置需新实例,临时初始化失败重试与 IoTDB 连接池恢复沿用原快照。
  • 后端 I/O 前校验 null query、非正 limit、负 offset 和逆序时间范围;公共 SPI 默认 count(null) 同样报 ARGUMENT_ERROR,其余 count 忽略分页和游标。

基线与验证

最低仍为无预览特性的 Java 17,已说明的 Spring Boot 与客户端基线不变。数据库支持仅覆盖兼容指南列明的能力及准确组合。

此前源码回归快照在 JDK 17/Boot 2.7.18、JDK 21/Boot 3.5.14、JDK 25/Boot 4.1.0 下各通过 888 项单元测试,另通过 290 次 Docker 集成测试、27 份无签名归档检查及 34 项 Python 运行器测试。这些历史结果不作为最终 2.1.0 重跑结果。最终计数、构建输入及制品/发布校验另记录于上面的验证和发布页面。

Clone this wiki locally