mirror of
https://github.com/ceph/ceph
synced 2025-04-01 14:51:13 +00:00
osd: improve full map requests
If we don't get all the full maps we want, request more immediately. Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
parent
2e22f54c5f
commit
81cc288931
@ -4914,17 +4914,6 @@ void OSD::request_full_map(epoch_t first, epoch_t last)
|
||||
monc->send_mon_message(req);
|
||||
}
|
||||
|
||||
void OSD::finish_full_map_request()
|
||||
{
|
||||
if (requested_full_first == 0 && requested_full_last == 0)
|
||||
return;
|
||||
//Had requested some map but didn't receive in this message,
|
||||
//This might because monitor capping the message to osd_map_message_max
|
||||
dout(10) << __func__ << "still missing " << requested_full_first
|
||||
<< ".." << requested_full_last << ", but now give up." << dendl;
|
||||
requested_full_first = requested_full_last = 0;
|
||||
}
|
||||
|
||||
void OSD::got_full_map(epoch_t e)
|
||||
{
|
||||
assert(requested_full_first <= requested_full_last);
|
||||
@ -6689,8 +6678,11 @@ void OSD::handle_osd_map(MOSDMap *m)
|
||||
// even if this map isn't from a mon, we may have satisfied our subscription
|
||||
monc->sub_got("osdmap", last);
|
||||
|
||||
if (!m->maps.empty())
|
||||
finish_full_map_request();
|
||||
if (!m->maps.empty() && requested_full_first) {
|
||||
dout(10) << __func__ << " still missing full maps " << requested_full_first
|
||||
<< ".." << requested_full_last << dendl;
|
||||
rerequest_full_maps();
|
||||
}
|
||||
|
||||
if (last <= superblock.newest_map) {
|
||||
dout(10) << " no new maps here, dropping" << dendl;
|
||||
|
@ -2057,7 +2057,6 @@ protected:
|
||||
requested_full_last = 0;
|
||||
request_full_map(first, last);
|
||||
}
|
||||
void finish_full_map_request();
|
||||
void got_full_map(epoch_t e);
|
||||
|
||||
// -- failures --
|
||||
|
Loading…
Reference in New Issue
Block a user