]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: fix bluefs log runway enospc 57243/head
authorPere Diaz Bou <pere-altea@hotmail.com>
Tue, 25 Jul 2023 15:28:14 +0000 (17:28 +0200)
committersajibreadd <sajibreadd@gmail.com>
Thu, 2 May 2024 09:44:32 +0000 (11:44 +0200)
commitd9c6f8d51826e309dca139dcb7674eb8ce9da541
treea02328a8b1a6a5b707b49d758437e04877f67219
parent2473cd099943d65ddcf23baa228d3b38b287b40e
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>
(cherry picked from commit e97aa857c241a9694871de3d3a4079c4d9a120d3)

 Conflicts:
src/os/bluestore/BlueFS.cc
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