Bug #62983
Updated by Matan Breizman 8 months ago
purged_snap_ keys stored in the monitor for each snapshots removed. The keys are merged on contiguous snap id intervals. See OSDMonitor::insert_purged_snap_update(). //WIP: The issue is that unlike pool snapshots, self-managed snapshots allocates snap id when requesting new snapid from the monitor. This snapid is not tracked by RBD and won't be marked as purged. Those untracked ids will leave holes and won't allow adjacent purged ids to merge. //WIP2: snap_seq increments on snap removal and leaves gaps. <pre><code class="text"> for i in `seq 0 10`; do echo $i && rados -p pl mksnap snp0 && rados -p pl rmsnap snp0; done .. osd_snap / purged_snap_3_0000000000000001 osd_snap / purged_snap_3_0000000000000003 osd_snap / purged_snap_3_0000000000000005 osd_snap / purged_snap_3_0000000000000007 osd_snap / purged_snap_3_0000000000000009 osd_snap / purged_snap_3_000000000000000b osd_snap / purged_snap_3_000000000000000d osd_snap / purged_snap_3_000000000000000f osd_snap / purged_snap_3_0000000000000011 osd_snap / purged_snap_3_0000000000000013 osd_snap / purged_snap_3_0000000000000015 </code></pre> This can cause the monitor db to grow large and affect the monitor's startup times. Reported: https://lists.ceph.io/hyperkitty/list/dev@ceph.io/message/UOJG46YXTIPOXJUSELIN42ATAD5FPMDY/