在“allow_versions”设置为“FALSE”或“TRUE”的情况下,对于这两种情况,文件被覆盖而删除请求同时进入的场景(以先覆盖后删除的顺序)的Swift响应如何?
请分享你的想法。
非常感谢!
在“allow_versions”设置为“FALSE”或“TRUE”的情况下,对于这两种情况,文件被覆盖而删除请求同时进入的场景(以先覆盖后删除的顺序)的Swift响应如何?
请分享你的想法。
非常感谢!
好吧,一个快速的总结来了,虽然仍然是一个非常高级的视图,但希望它有助于理解它是如何工作的。
该图(下面的链接)针对 Swift 对象版本控制功能的启用/禁用设置了两个同时场景(A 和 B)。每个场景的结果都显示在图表中。
如果有的话,请分享你的想法。
分配给进入代理的请求的时间戳将最终决定哪个“最后”写入获胜。
如果您有长时间运行的上传并在此期间发出删除,则墓碑将具有较晚的时间戳,并且即使上传完成后最终也会优先。
使用容器版本控制功能时,在版本控制容器中覆盖将导致对象数据在 PUT 数据发送到具有指定时间戳的存储节点之前从当前提示中复制。对于版本化容器中的删除,“先前版本”是在发出覆盖请求时发现的,并且受容器列表中最终一致性的影响,但只有在将其复制到对象的当前位置后才会被删除。
有关对象版本控制的更多信息,请参见:http: //docs.openstack.org/developer/swift/overview_object_versioning.html