去年 11 月,我们公布了 GreptimeDB v1.0 的主要亮点及发布计划并发布了 4 个 beta 版本。本周,我们正式发布了 v1.0.0 的首个 RC 版本——这是迈向 v1.0 GA 的关键一步,标志着 GreptimeDB 功能冻结,正式进入稳定性验证阶段。
开发数据概览
以下是 rc.1 的开发统计(2025-12-29 → 2026-02-02,共 35 天):
- 100 个 PR 合并,涉及 595 个文件
- 代码变更:+40,116 / -9,157
- 12 位贡献者参与
主要改进分布:
- 34 项功能增强:Region 重分区、查询追踪改进、
json_get函数增强等 - 28 项错误修复:Pipeline 加载、时间戳索引推断、histogram 结果修正等
- 4 项代码重构:移除
region_numbers、重构CreateTableProcedure等 - 3 项性能优化:主键过滤加速、PromQL 查询优化等
特别感谢本次参与的 12 位贡献者!

我们诚邀更多对可观测性数据库感兴趣的开发者加入 GreptimeDB 社区。
亮点更新
Region 重分区
随着业务发展,表的数据分布和热点模式可能发生变化。比如从单分区表需要扩展为分布式的分区表,或者分区表需要增加更多分区来承担更大的读写负载,或者合并小分区来减少数据碎片等。
本次 RC1 引入了 Region 重分区功能,允许用户在运行时动态调整分区规则和数据分布,无需重建表或迁移数据。
Split — 将一个分区拆分为多个,适用于单分区数据量过大或出现热点的场景:
ALTER TABLE sensor_readings SPLIT PARTITION (
device_id < 100
) INTO (
device_id < 100 AND area < 'South',
device_id < 100 AND area >= 'South'
);Merge — 将多个分区合并为一个,适用于分区过细、资源浪费的场景,可提升资源利用率和性能:
ALTER TABLE sensor_readings MERGE PARTITION (
device_id < 100 AND area < 'South',
device_id < 100 AND area >= 'South'
);同时支持通过 WITH 子句控制执行行为:
ALTER TABLE sensor_readings SPLIT PARTITION (
device_id < 100
) INTO (
device_id < 100 AND area < 'South',
device_id < 100 AND area >= 'South'
) WITH (
TIMEOUT = '5m',
WAIT = false
);- 当
WAIT = false时,语句立即返回procedure_id,可通过ADMIN procedure_state(procedure_id)查询执行状态 TIMEOUT控制操作的整体时间限制
使用限制:
- 仅支持分布式集群
- 需启用共享对象存储和 GC
- 所有 Datanode 必须能访问同一对象存储
Metric Engine 主键过滤性能优化
RC1 为 Metric Engine 引入了主键过滤的"快速路径"优化。通过直接比较主键值的字节编码表示(使用 memcomparable),避免了逐值解码和物化的开销。
微基准测试结果:
| 场景 | 优化后 | 优化前 | 提升倍数 |
|---|---|---|---|
| eq/dense | 13.65 ns | 275.98 ns | 20.2× |
| gt/dense | 14.12 ns | 312.15 ns | 22.1× |
| lt_eq/dense | 12.77 ns | 268.72 ns | 21.0× |
| or_eq/dense | 14.16 ns | 1.29 µs | 91.1× |
| eq/sparse | 101.60 ns | 376.19 ns | 3.7× |
| gt/sparse | 108.18 ns | 370.65 ns | 3.4× |
在默认 dense codec 场景下,主键过滤性能提升 20–90 倍;sparse codec 场景也有 3–11 倍的提升。
其他改进
json_get增强:支持用户指定返回类型的json_getUDF- PromQL 优化:使用 TSID 优化 PromQL planner,跳过不必要的 label 列
- Query Trace 调优:改进查询追踪,提升可观测性
- BulkMemtable 优化:compact parts 时无需编码为 Parquet,减少开销
- MySQL/PostgreSQL 协议:增加更多函数,提升兼容性
- Flow 增强:支持
last_non_null函数 - 升级 PromQL Parser:部分兼容 Prometheus 3.0 语法
重要修复
- 写入停滞修复:修复某些情况下 flush 逻辑导致的 write stall 无法恢复问题
- Pipeline 加载:修复 pipeline 加载问题
- 时间戳索引推断:修复不正确的 timestamp index 推断
- Histogram 结果:修正 histogram 查询结果
- JSON Unicode 解析:正确解析包含 unicode code point literal 的 JSON 字符串
- 修复
COPY FROM:修复在 CSV 格式下可能没有正确导入数据的 bug
兼容性说明
本版本包含以下 breaking changes:
1. Heartbeat 配置变更
Heartbeat 配置现在统一由 Metasrv 管理。如果之前在 datanode.toml 中配置了 [heartbeat] 相关内容,需要移除。
现在通过 Metasrv 的 heartbeat_interval 选项统一控制:
- Frontend 心跳间隔 = 6 ×
heartbeat_interval - Flownode/Datanode 心跳间隔 = 1 ×
heartbeat_interval
例如:如果 heartbeat_interval 设置为 3s,则 Frontend 心跳间隔为 18s,Flownode/Datanode 心跳间隔为 3s。
注意:在绝大多数情况下,你不需要修改这个参数,保持默认值即可。
2. 移除 region_numbers 字段
TableMeta.region_numbers 字段已被移除。
影响说明:升级到新版本后,降级到旧版本可能会遇到兼容性问题。 旧版本在读取新版本生成的数据时可能会失败或报错,因为 region_numbers 字段不再存在。
结语
完整发行日志请查看 GitHub Release。
感谢所有贡献者和用户的支持,我们将继续按计划稳步迈向 1.0 GA。


