Skip to content

Release v0.2.2

Choose a tag to compare

@codeforgee codeforgee released this 12 Oct 03:53
· 7 commits to main since this release

RowPack v0.2.2

本版本是一次全链路性能与内存优化批次(16 个提交)。磁盘格式完全兼容:文件布局、版本号均未变更(仅 zstd 帧省去 4B 冗余校验),新旧版本双向可读,升级无需任何数据迁移。

性能提升(vs v0.2.1,同机交错实测)

场景 变化
IndexTxn 损坏重建(Open 恢复路径) 延迟 -32~38%,内存 -66~80%,分配次数 -38~64%
Scan 全表扫描(12 格矩阵) -3~9%,百万行扫描 -3.6~5.4%
冷读(跨块读,6 格矩阵) -0.6~9%,1000 次循环点读 -9.2%
随机读 100 万行 -0.5~10.4%
Open 重放 单项延迟 -11.7%,分配次数 -4.6%;100 个 DELTA 快照场景 Open -20% 延迟 / -26% 分配
加密热读 -6.9%,内存 -5.9%
写路径 延迟持平,提交内存 -9%

内存优化

  • 提交路径流式化:消除 Commit 峰值 ~100B/行的四层中间物化,100 万行事务的瞬时峰值显著下降
  • 恢复重建流式化:峰值从 ~125B/行 降至 24B/行
  • 快照元数据:删除 O(深度²) 的预计算祖先链存储(4096 深度上限下可达数十 MB),改为 Apply 时父指针直连(+8B/快照);schema 派生跨快照共享,纯插入 DELTA 链不再重复分配
  • metadata 主索引改排序值切片;transient 页遍历(全库校验)接通缓冲池,Verify 分配 -20%;Verify 不再把全库块灌进读缓存冲掉热集

其他

  • 全库 golangci-lint 0 issues,race 检测通过
  • 新增性能基线归档(testdata/baseline/)与回归测试锁定关键行为

兼容性

  • 磁盘格式不变,未提升格式版本;zstd 帧内容校验移除后,旧版本引擎写入的文件(带校验帧)仍可正常读取,反之亦然(有双向兼容回归测试锁定)

Full Changelog: v0.2.1...v0.2.2