]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
crimson/os/seastore/segment_cleaner: add dedicated backref trimming process 46356/head
authorXuehan Xu <xxhdx1985126@gmail.com>
Fri, 20 May 2022 09:23:03 +0000 (17:23 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Thu, 26 May 2022 09:16:55 +0000 (17:16 +0800)
commit2da036b7382b19d51587672cbc5f5bc185940ea7
treec13fac1ecbc042ed722448d30fb570a8e4758df2
parenta74fa9a66fe2f0aceffb9b297fc1560a1da19ca5
crimson/os/seastore/segment_cleaner: add dedicated backref trimming process

Space reclamation needs to merge backrefs up to the point where the latest
release of extents within the scope of the reclamation process happened.
When the journal size is large, that merge may generate a transaction
record with size exceeds the max record size threshold. So we need have a
backref trimming process that merge most of the backrefs before the space
reclamation happens.

This commit also fixes issue: https://tracker.ceph.com/issues/55692, by
repeating the inflight backrefs trimming transaction when it's
invalidated by other trans on the ROOT block

Fixes: https://tracker.ceph.com/issues/55692
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
src/crimson/os/seastore/segment_cleaner.cc
src/crimson/os/seastore/segment_cleaner.h