This is a superset of all missing_loc values... everywhere we might
pull an object from, or are currently pulling from. Initially it's the
union, but as missing_loc shrinks it may contain peers that are no longer
in missing_loc.
Signed-off-by: Sage Weil <sage@newdream.net>
}
stats_updated = true;
missing_loc[soid].insert(fromosd);
+ missing_loc_sources.insert(fromosd);
}
else {
ml->second.insert(fromosd);
finish_sync_event = 0; // so that _finish_recvoery doesn't go off in another thread
missing_loc.clear();
+ missing_loc_sources.clear();
+
log.reset_recovery_pointers();
scrub_reserved_peers.clear();
missing.add(soid, oi.version, eversion_t());
missing_loc[soid].insert(ok_peer);
+ missing_loc_sources.insert(ok_peer);
log.last_requested = 0;
}
OndiskLog ondisklog;
pg_missing_t missing;
map<hobject_t, set<int> > missing_loc;
+ set<int> missing_loc_sources; // superset of missing_loc locations
interval_set<snapid_t> snap_collections;
map<epoch_t,Interval> past_intervals;