Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Preventing stale reads

I am trying to understand what prevents the following from happening:

  1. Overwrite an existing object to swift. Two replicas are written but the the third's storage node is unreachable so the write returns but only two copies of the new file exist.
  2. Read the file, but the unreachable node is now reachable and the proxy chooses it to get the data before replication can update the third copy of the file. The read returns the old data.

I looked at the proxy code for PUT/GET but could not figure this out. Is there an easy answer?