【源码阅读】VictoriaMetrics中理解vm-backup中设置origin地址的用途
2021/12/30 11:09:02
本文主要是介绍【源码阅读】VictoriaMetrics中理解vm-backup中设置origin地址的用途,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
lib/backup/actions/backup.go:
// 118 行 partsToCopy := common.PartsDifference(srcParts, dstParts) //要上传的文件列表 originCopyParts := common.PartsIntersect(originParts, partsToCopy) // 旧的备份地址中的文件列表,与要上传的文件列表取交集。 // 交集的文件列表,只要调用对象存储的云端COPY能力就行,这样就节省了带宽,不用浪费再上传一次。 // 对于云端对象存储而言,同一个文件复制多份,就是增加一个引用计数,而不必真正的产生拷贝。因此对象存储中的大量相同文件并不浪费空间。 copySize := getPartsSize(originCopyParts) if len(originCopyParts) > 0 { logger.Infof("server-side copying %d parts from origin %s to dst %s", len(originCopyParts), origin, dst) copiedParts := uint64(0) err = runParallel(concurrency, originCopyParts, func(p common.Part) error { logger.Infof("server-side copying %s from origin %s to dst %s", &p, origin, dst) // 使用 CopyPart 的方法来在云端复制文件 if err := dst.CopyPart(origin, p); err != nil { return fmt.Errorf("cannot copy %s from origin %s to dst %s: %w", &p, origin, dst, err) } atomic.AddUint64(&copiedParts, 1) return nil }, func(elapsed time.Duration) { n := atomic.LoadUint64(&copiedParts) logger.Infof("server-side copied %d out of %d parts from origin %s to dst %s in %s", n, len(originCopyParts), origin, dst, elapsed) }) if err != nil { return err } }
总结:
- 每次vmbackup产生的备份,都是一个
-retentionPeriod
指定的时间长度的完整TSDB数据; - 从而,vm体系中并不存在只含有增量数据的分片
- 例如:按天备份,是那一天倒推30天的数据。
- 无法单独的增量的备份出某一天的数据
这篇关于【源码阅读】VictoriaMetrics中理解vm-backup中设置origin地址的用途的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升
- 2024-05-08代码报错不用愁,CodeGeeX一键完成代码修复、错误解释的功能上线了!