多个数据集可能引用同一批IPLD块。把每个根的逻辑大小直接相加,会重复计算共享内容;只看仓库总大小,又无法解释某个DAG贡献了多少。Kubo dag/stat提供一组结构统计,用于把块数量、总量和去重关系拆开。
根CID和遍历条件必须进入主键
Kubo dag/stat按DAG根CID统计DagStats,并返回NumBlocks与Size等信息。
dag/stat围绕DAG根CID执行统计,返回DagStats中的NumBlocks与Size等信息。同一个根在不同codec、遍历能力或数据完整性下,成本与结果可能不同。报告应保存根CID、Kubo版本、请求参数、开始结束时间和错误。
NumBlocks描述遍历观察到的块数量,Size描述对应体量。不要把NumBlocks当文件数:一个文件可由多个块构成,一个DAG也可表示目录、结构化数据或其他IPLD对象。
三种大小回答三个问题
响应还包含UniqueBlocks、SharedSize、TotalSize与Ratio,用于表达多DAG或遍历中的共享块和去重关系。
UniqueBlocks关注去重后的唯一块,SharedSize表达被多个部分共享的体量,TotalSize则描述未去重的逻辑总量,Ratio帮助观察两者关系。实现时以接口原始定义和字段为准,不能凭字段名自行套入压缩率。
| 观察角度 | 适合回答 | 不适合回答 |
|---|---|---|
| NumBlocks与Size | 单根遍历规模 | 仓库全部对象数量 |
| UniqueBlocks | 去重后涉及多少块 | 每块是否被pin |
| SharedSize | 重叠内容贡献 | 共享者的业务所有权 |
| TotalSize与Ratio | 逻辑总量和复用程度 | 文件系统实际占用 |
若多个团队共同引用一块,物理成本如何分摊是会计政策,不是dag/stat替你决定的事实。可以按首个拥有者、引用次数或公共池分配,但报表必须注明规则。
CID相同意味着内容块相同
DAG由内容寻址块和链接组成,共享CID可被多个根引用,因此逻辑总量与唯一块量可以不同。
IPLD通过内容寻址块和链接组成DAG。相同CID被多个根引用时,逻辑结构可以共享同一块,这正是去重差异的基础。但codec、分块方式或元数据变化可能让内容相似却产生不同CID,不能仅凭用户看到的文件名判断共享。
比较迁移前后数据集时,应固定导入参数与CID版本。如果分块器改变,UniqueBlocks增加并不一定表示内容真正新增;它也可能是编码结构重建。
统计完成不代表本地长期可取
dag/stat不能单独证明所有块已经本地持久化、被pin或可从公网网关取回。
dag/stat不能单独证明所有块已经本地持久化、处于pin保护或能从公网网关稳定取得。统计请求可能在遍历时从网络获取部分数据,也可能因缺块而失败。需要把结果与pin状态、本地块存在性和受控读取测试结合。
公网网关成功也不是本地节点持有证明,因为内容可能来自其他提供者或缓存。若目标是备份验收,应断开外部依赖或使用明确的本地检查,并对CAR导出执行完整性验证。
用集合图核对共享关系
为每个根导出涉及CID集合,在允许的规模内计算交集、并集和仅属于单根的块;再把dag/stat的UniqueBlocks、SharedSize与TotalSize进行交叉核对。大型DAG可使用流式集合或概率结构,但要说明误差。
发现Ratio突变时,先查根集合、导入方式和版本,再判断是否真的去重退化。不要直接运行垃圾回收清理“重复块”,因为共享块可能仍被其他根引用。
容量规划要与repo/stat分工
dag/stat解释某个或一组DAG的逻辑结构,repo/stat观察整个本地仓库的容量与对象。两者不会一一相等:仓库还包含其他内容、块存储开销与历史对象,DAG统计也未必对应本地物理持有。容量日报应并排展示,不强行对齐。
清理前先盘点pin、引用和备份,建立候选删除集合并在隔离环境验证。任何破坏性维护都不应由dag/stat单一阈值自动触发。
一份共享容量审计记录
记录DAG根列表、CID集合生成方式、NumBlocks、Size、UniqueBlocks、SharedSize、TotalSize、Ratio、统计耗时、缺块错误、pin结果和本地读取结果。最后将“逻辑数据量”“去重唯一量”“仓库物理占用”分别下结论。
DAG统计是结构账,不是持久化收据
共享CID会让逻辑总量与唯一存储量产生差异。保存根、遍历条件和原始统计,再用pin、本地块检查与实际读取补足可用性证据,容量结论才完整。
dag/stat如何核对共享大小?的复查入口
本文的事实底稿来自Kubo RPC dag/stat、IPLD concepts、Pin files to IPFS,定义和字段均可回到原文核对。
当前不能越过的事实边界是:不同DAG遍历、codec和本地块缺失会影响统计成本与完成结果。
相关背景可继续查看repo/stat、IPFS CAR完整性、bitswap/stat。接口、客户端与网络状态会随时间变化,本文不构成投资、交易或收益建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。