How to minimize the chance that a file can't be read during Swift rebalance process?
After I make changes to the object.builder file and rebalance it
swift-ring-builder object.builder rebalance,
I got a new version of object.ring.gz. I copy this file to all proxy and storage nodes. The new one got uploaded into memory, replicator starts to do its job moving data around.
My question is when I try to download files, will there be chances that a file has not been moved to a new partition according to the new ring file from the old partition according to the old ring file, which results in file not found problem?
During the data rebalance process with the new ring file, if a GET could not find the file from its primary node, then it will try its first replica node (as determined by the new ring), if still not find it, then try the second replica. If still not found, because data have not been moved yet, then the GET will return data not found. Is my understanding right? Could me minimize the chance that a file can't be read during rebalance process?