对象存储服务 OBS-并发一致性说明:并发操作举例
并发操作举例
1. 当客户端2正在上传一个对象v1时,客户端1同时上传一个同名的对象v2成功后,不管是客户端1还是客户端2都能够读取最新的对象数据v1,如图1所示。
2. 当客户端2上传一个对象v1的时候,如果在对象数据上传且还没有写入对象元数据的过程中,客户端1删除同名的对象成功后,客户端2的上传对象操作仍然返回成功,并且不论客户端1还是客户端2都能读取到对象数据v1,如图2所示。
3. 当客户端2上传一个对象v1的时候,如果在对象数据上传完成,系统写入对象元数据的短暂过程中,客户端1发起删除同名的对象成功后,客户端2的上传对象操作仍然返回成功,但是客户端1和客户端2下载对象Object1时,有可能读到对象数据v1,也有可能返回对象不存在,如图3所示。
4. 当客户端1下载一个对象的过程中,客户端2发起删除同名对象操作,此时客户端1可能下载到完整的对象数据,也有可能只能下载到对象的一部分数据。当客户端2的删除操作返回成功后,再发起下载对象请求,则返回对象不存在,如图4所示。
5. 当客户端1下载一个对象的过程中,客户端2发起更新同名对象操作,此时客户端1可能下载到完整的对象数据,也有可能只能下载到对象的一部分数据。当客户端2的更新操作返回成功后,再发起下载对象请求,则返回最新的对象数据,如图5所示。
6. 当客户端2正在上传一个对象的段v1时,客户端1同时上传同一个对象的相同段号的段v2成功后,不管是客户端1还是客户端2列举段时都能够列举etag为v2的段信息,如图6所示。