From: Sage Weil Date: Tue, 5 Apr 2016 13:45:33 +0000 (-0400) Subject: osd: improve full map requests X-Git-Tag: v10.1.2~36^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=81cc2889310cc85ca4911d4aa53932907b6b7dfe;p=ceph.git osd: improve full map requests If we don't get all the full maps we want, request more immediately. Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index ce4276e88001..7c260ff39aea 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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; diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 1ff5e468a7d0..8a62ebbc1b25 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -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 --