Skip to content

feat(backup): 新增 zstd 压缩选项#89

Merged
Awuqing merged 1 commit into
mainfrom
feat/zstd-compression
May 27, 2026
Merged

feat(backup): 新增 zstd 压缩选项#89
Awuqing merged 1 commit into
mainfrom
feat/zstd-compression

Conversation

@Awuqing

@Awuqing Awuqing commented May 27, 2026

Copy link
Copy Markdown
Owner

背景

此前备份压缩仅有 gzip。zstd 在相近 CPU 开销下提供更高压缩率与显著更快的解压,是现代备份工具的标配压缩算法——对大体量备份意味着更省存储、更快恢复。

实现

  • pkg/compress:新增 ZstdFile / UnzstdFile,复用项目已有依赖 github.com/klauspost/compress(纯 Go,原为间接依赖,现提升为直接依赖),含往返单测。
  • 压缩/解压路径全覆盖:Master(backup_execution_service 压缩、execution_helpers 解压)与 Agent(executor 压缩与恢复解压)均按文件后缀(.gz / .zst)分流,集群与单机行为一致。
  • 校验:任务 compression 放行 zstd(原 gzip nonegzip zstd none)。
  • 前端:压缩策略下拉新增「Zstd 压缩(更快/更小)」,标签展示 Zstd

测试

  • ZstdFile → UnzstdFile 往返单测(含删除原文件后校验内容一致)
  • go test ./... 19 包全绿;tsc --noEmit 通过

向后兼容:既有 gzip/none 备份不受影响;恢复按归档后缀自动选择解压方式。

备份压缩在 gzip 之外新增 zstd:相近 CPU 开销下提供更高压缩率与显著更快的解压,
适合大体量备份的存储与恢复提速。

- pkg/compress:ZstdFile / UnzstdFile(基于已有依赖 klauspost/compress,往返单测)
- Master 与 Agent 的压缩/解压路径均按后缀(.gz/.zst)分流,集群一致
- 任务校验放行 compression=zstd;前端压缩策略下拉与标签新增 Zstd

go test ./... 全绿;tsc --noEmit 通过。
@Awuqing Awuqing merged commit 65cf3a0 into main May 27, 2026
6 checks passed
@Awuqing Awuqing deleted the feat/zstd-compression branch May 27, 2026 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant