对象审计观察器

暗数据

“暗数据”这个名称源于暗物质的科学假设,该假设认为宇宙包含大量我们无法观测到的物质。Swift 中的暗数据是指容器中未记录的对象。

运行大规模集群的经验表明,Swift 没有特定的错误会触发暗数据的创建。因此,这是一个编写观察器的练习,具有合理的功能。

启用暗数据观察器肯定会降低集群的整体性能。当然,负载增加可以通过通常的方式缓解,但代价是审计过程的总时间。

由于观察器只有在所有容器服务器都一致时才会将对象视为暗数据,因此,如果环中的任何一个容器服务器宕机或无法访问,它将无法静默地检测到任何内容。这是为了方便那些使用 action=delete 的操作员。

如果容器被分片,则存在一个小的边缘情况,即对象行可能会被放置错误。因此,建议始终从 action=log 开始,然后再自信地运行 action=delete。

最后,请记住暗数据观察器需要容器环来运行,但运行在对象节点上。如果集群具有按功能分隔的节点,则可能会出现这种情况。