如何同时发生文件覆​​盖和删除的情况的Swift响应(首先覆盖然后删除)

时间:2013-11-13 00:36:04

标签: openstack openstack-swift

在“allow_versions”设置为“FALSE”或“TRUE”的情况下,对于这两种情况,如果删除请求同时进入,文件被覆盖的场景的Swift响应如何(首先是覆盖的顺序)删除)?

请分享您的想法。

非常感谢!

2 个答案:

答案 0 :(得分:1)

分配给进入代理的请求的时间戳将最终决定哪个“最后”写入获胜。

如果您有一个长时间运行的上传并在此期间发出删除,则逻辑删除将具有更晚的时间戳,并且即使上传完成后最终也会优先。

使用容器版本控制功能时,在将PUT数据发送到具有指定时间戳的存储节点之前,在版本化容器中覆盖将导致对象数据从当前提示中删除。对于版本化容器中的删除,在创建覆盖请求时会发现“先前版本”,并且容器列表中最终一致,但只有在将其复制到对象的当前位置后才会被删除。

有关对象版本控制的更多信息,请访问: http://docs.openstack.org/developer/swift/overview_object_versioning.html

答案 1 :(得分:1)

嗯,快速摘要虽然仍然是一个非常高级别的视图,但希望它有助于理解它是如何工作的。

图表(链接下方)针对Swift对象版本控制功能的启用/禁用设置了两个同时的场景(A和B)。每种方案的结果如图所示。

Download the diagram.

请分享您的想法。