package voldemort.store.readonly.swapper; import voldemort.client.protocol.admin.AdminClient; import voldemort.cluster.Node; import java.util.Map; /** * */ public class DeleteAllFailedFetchStrategy extends FailedFetchStrategy { public DeleteAllFailedFetchStrategy(AdminClient adminClient) { super(adminClient); } @Override protected boolean dealWithIt(String storeName, long pushVersion, Map<Node, AdminStoreSwapper.Response> fetchResponseMap) { // We attempt to delete data from all nodes, even the ones that failed their fetch. for (Node node: fetchResponseMap.keySet()) { AdminStoreSwapper.Response response = fetchResponseMap.get(node); String nodeDescription = node.briefToString() + " (which " + (response.isSuccessful() ? "succeeded" : "failed") + " on its fetch)."; try { adminClient.readonlyOps.failedFetchStore(node.getId(), storeName, response.getResponse()); logger.info("Deleted fetched data from " + nodeDescription); } catch(Exception e) { logger.error("Exception thrown during delete operation on " + nodeDescription, e); } } return false; } }