]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
mds: start a new major segment after reaching minor segment threshold
authorVenky Shankar <vshankar@redhat.com>
Tue, 22 Oct 2024 08:00:23 +0000 (08:00 +0000)
committerVenky Shankar <vshankar@redhat.com>
Wed, 23 Oct 2024 14:01:12 +0000 (14:01 +0000)
commit718afe26ba880c75279d2c0540aa8ce9dadfc1ed
tree975ebb59ce4f1be288c1e284ba4d4281444c92c5
parent7d11c708b99d824f6caad66381a6ccb12e656c2d
mds: start a new major segment after reaching minor segment threshold

Credit goes to Patrick (@batrick) for identifying this.

When there are huge number of subtree exports (such as done in export
thrashing test), the MDS would log an EExport event. The EExport event
is relatively large in size. This causes the MDS to log new minor log
segments frequently. Moreover, the MDS logs a major segment (boundary)
after a certain number of events have been logged. This casues large
number of (minor) events to get build up and cause delays in trimming
expired segments, since journal expire position is updated on segment
boundaries.

To mitigate this issue, the MDS now starts a major segment after a
configured number of minor segments have been logged. This threshold
is configurable by adjusting `mds_log_minor_segments_per_major_segment`
MDS config (defaults to 16).

Fixes: https://tracker.ceph.com/issues/66948
Signed-off-by: Venky Shankar <vshankar@redhat.com>
src/common/options/mds.yaml.in
src/mds/MDLog.cc
src/mds/MDLog.h