主要更新内容
- 指标存储查询性能优化:引入
queryStateArena对象池(64 槽/块,最多缓存 64 块),减少批量序列查询时的堆分配;新增轻量queryRollupSummary避免在查询状态中保留标签 JSON。 - 批量序列查询:
legacy_records.go将逐指标Series调用合并为单次SeriesBatch,减少数据库往返。 - Rollup 写入批量化:
rollup_store.go将逐 key 读取/写入改为批量读取 + 批量 upsert,降低事务内 SQL 次数。 - 原始数据写入优化:
raw_points.go仅对当前批次触及的序列执行压缩与裁剪(O(points)),不再全量扫描所有序列。 - Hot/Coarse Rollup 扫描跳过:新增
hotOldest/coarseNextClose下界追踪,无到期桶时直接跳过遍历。 - 指标定义缓存:
Store新增 1 秒 TTL 的 retention 缓存,避免写入路径重复查询定义表。 - 空标签指纹短路:
tagsFingerprint对空 map 直接返回预计算常量,跳过canonicalTags调用。 - 代码简化:大量使用 Go 1.21+ 内置函数(
min/max/slices/maps)替换手写逻辑;精简错误处理、移除冗余 nil 检查和注释。
Bug修复
Restructure和DiscardHistory操作后现在会失效指标定义缓存,防止 schema 变更后写入路径使用过期 retention 值。
其他
- README(中英文)移除微信赞赏码,仅保留 TRON Network 打赏方式。
.gitignore新增.gocache/条目。- 移除网络依赖的 GeoIP 集成测试、PostgreSQL/MySQL 集成测试文件及若干常量断言测试。
- 移除
CheckExpireScheduledWork包装函数,调度器直接调用CheckExpire。
Commits
- Update payment options in README (5006f55) @Akizon77
- Update README_zh-cn.md (4b24f1e) @Akizon77
- 让opus5.5 简化、优化1下代码 (b38b0b2) @Akizon77
- 优化单次查询性能 (3cf8445) @Akizon77
- 查询时对象分配数量可以少一点 (48af63c) @Akizon77
Full Changelog: 1.6.0...Snapshot-2610191722