osd : populate the needs_recovery_map source fast when only one peer has missing
The most common case for peering, is that one OSD/host get down for some time, and
the OSD(s) are still in. Once bring them up again, the primary OSD need to populate
the recovery map and add the recovery source. If there are N replicas, M missing objects,
the current complexity of the routine is N*M*logN.
This patch detects if there is only one peers has missing, it goes through a fast routine
add populate the map with complexity of N*logN.
Fixes: 9558 Signed-off-by: Guang Yang <yguang@yahoo-inc.com>