]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
os/bluestore: fix bluefs log runway enospc
authorPere Diaz Bou <pere-altea@hotmail.com>
Tue, 25 Jul 2023 15:28:14 +0000 (17:28 +0200)
committerPere Diaz Bou <pere-altea@hotmail.com>
Fri, 11 Aug 2023 08:38:57 +0000 (10:38 +0200)
commite97aa857c241a9694871de3d3a4079c4d9a120d3
tree8e0d6e90afac93d4a0dd6a946a075f23817af65b
parenta5509f93a7b02e31950d1aba0625dd9996c9608e
os/bluestore: fix bluefs log runway enospc

With these changes, every call to log compaction will try to expand its
runway in case of insufficient log space. async compaction will ignore
the `log_forbidden_to_expand` atomic since we know it should't be
harmful. In any other case, expansion of log will wait until compaction
is completed.

in order to ensure op_file_update_inc fits on disk we increase the size
of logs as previously used in _maybe_extend_log. This means we too bring
back _maybe_extend_log with a different usage.

_maybe_extend_log increases the size of the log if the runway is less
than the min runway and if the current transaction is too big to fit.

Fixes: https://tracker.ceph.com/issues/58759
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
src/os/bluestore/BlueFS.cc
src/os/bluestore/BlueFS.h
src/os/bluestore/bluefs_types.cc
src/os/bluestore/bluefs_types.h
src/test/objectstore/test_bluefs.cc