This is similar to waitForSegmentsToShowUp which is called during Close/Commit. Intuitively, you wouldn't expect missing segments to be a problem during read operations, since the previous Close/Commit confirmed that all segments are there. But due to the distributed nature of Swift, the read request could be hitting a different storage node of the Swift cluster, where the segments are still missing. Load tests on my team's staging Swift cluster have shown this to occur about once every 100-200 layer uploads when the Swift proxies are under high load. The retry logic, borrowed from waitForSegmentsToShowUp, fixes this temporary inconsistency. Signed-off-by: Stefan Majewsky <stefan.majewsky@sap.com> |
||
|---|---|---|
| .. | ||
| cache | ||
| driver | ||
| blob_test.go | ||
| blobcachemetrics.go | ||
| blobserver.go | ||
| blobstore.go | ||
| blobwriter.go | ||
| blobwriter_nonresumable.go | ||
| blobwriter_resumable.go | ||
| catalog.go | ||
| catalog_test.go | ||
| doc.go | ||
| filereader.go | ||
| filereader_test.go | ||
| garbagecollect.go | ||
| garbagecollect_test.go | ||
| linkedblobstore.go | ||
| manifestlisthandler.go | ||
| manifeststore.go | ||
| manifeststore_test.go | ||
| paths.go | ||
| paths_test.go | ||
| purgeuploads.go | ||
| purgeuploads_test.go | ||
| registry.go | ||
| schema2manifesthandler.go | ||
| schema2manifesthandler_test.go | ||
| signedmanifesthandler.go | ||
| tagstore.go | ||
| tagstore_test.go | ||
| util.go | ||
| vacuum.go | ||
| walk.go | ||
| walk_test.go | ||