There is a standard LBYL race that can better be addressed by making the EAFP case safer. Capture 409 Conflict during expect on PUT Similarly to how the proxy handles 412 on PUT, we will gather 409 responses in the proxy during _connect_put_node. Rather than skipping backend servers that already have a synced copy of an object we will accept their response and return 202 immediately. This is particularly useful to internal clients who are using X-Timestamp to sync transfers (e.g. container-sync and container-reconciler). No observable change in client facing behavior except that swift is faster to respond Accepted when it already has the data the client is purposing to send. Change-Id: Ie400d5bfd9ab28b290abce2e790889d78726095f
32 KiB
Executable File
32 KiB
Executable File