]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd/OSD: optimize send_incremental_map
authorMatan Breizman <mbreizma@redhat.com>
Thu, 16 Nov 2023 10:19:51 +0000 (10:19 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Mon, 18 Dec 2023 13:19:08 +0000 (13:19 +0000)
commitbd4d481307bfb1befbf4568a5a0a64300140ff6e
tree8d97fdd0d23eeba41937a3c8a8566994dd1a02fc
parent66dceb24d6d0779f87fd4ac3c1226534cc91e216
osd/OSD: optimize send_incremental_map

Previosuly, if `since` was earlier than the oldest_map,
only the lastest full osdmap would be sent.
However, we could actually send inc/full maps from oldest_map
up to the current epoch.

Moreover, build_incremental_map_msg is suited to handle this case as well.
if `since` is earlier than `cluster_osdmap_trim_lower_bound` it
will be adjusted accordingly.
At any point, the cluster_osdmap_trim_lower_bound is later (or equal) to
the superblock's oldest_map. See: past_intervals.rst (OSDSuperblock::maps)
Hence, if since < oldest_map, and oldest_map <= clutser_lower_bound
then since < cluster_lower_bound.

Note: oldest_map stands as a mark to indicate up until which epoch
      the current OSD trimmed its osdmaps. See OSD::trim_maps().
      Meaning, the OSDMaps in the range of [oldest_map, trim_lower_bound]
      may be at hand to be shared. Nevertheless, we should actually use
      the cluster_trim_lower_bound to set the correct range.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/osd/OSD.cc