On 11/6/13 7:12 AM, Daniel Li wrote:
Hi,
     I have a question about swift:  what does swift do if the auditor
find that all 3 replicas are corrupt?
will it notify the owner of the object(email to the account owner)?
what will happen if the GET request to the corrupted object?
will it return a special error telling that all the replicas are corrupted?
  Or will it just say that the object is not exist?
  Or it just return one of the corrupted replica?
  Or something else?

If all 3 (or N) replicas are corrupt, then the auditors will eventually quarantine all of them, and subsequent GET requests will receive 404 responses.

No notifications are sent, nor is it really feasible to start sending them. "The auditor" is not a single process; there is one Swift auditor process running on each node in a cluster. Therefore, when an object is quarantined, there's no way for its auditor to know if the other copies are okay or not.

Note that this is highly unlikely to ever happen, at least with the default of 3 replicas. When an auditor finds a corrupt object, it quarantines it (moves it to a "quarantines" directory). Then, since that object is missing, the replication processes will recreate the object by copying it from a node with a good copy. You'd need to have all replicas become corrupt within a very short timespan so that the replicators don't get a chance to replace the damaged ones.

_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to