]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: prepend compacted BlueFS log with a starter part.
authorIgor Fedotov <igor.fedotov@croit.io>
Wed, 2 Nov 2022 16:39:14 +0000 (19:39 +0300)
committerIgor Fedotov <igor.fedotov@croit.io>
Tue, 27 Jun 2023 11:41:33 +0000 (14:41 +0300)
commit64e83f360fb398a2d6e72d07569599aa0dde61e5
treee93661e1e7772ddf49f3008edf0ba6cd1677feff
parent917e3807d27961b714c3b6bed9eae4961bb22f08
os/bluestore: prepend compacted BlueFS log with a starter part.

The rationale is to have initial log fnode after compaction small
enough to fit into 4K superblock. Without that compacted metadata might
require fnode longer than 4K which goes beyond existing 4K
superblock. BlueFS assert in this case for now.
Hence the resulting log allocation disposition is like:
- superblock(4K) keeps initial log fnode which refers:
  op_init, op_update_inc(log), op_jump(next seq)
- updated log fnode built from superblock + above op_update_inc refers:
  compacted meta (a bunch of op_update and others)
- *
- more op_update_inc(log) to follow if log is extended
- *

Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit b65c780a3b524a44d0f860b0edda3baaac13c539)
src/os/bluestore/BlueFS.cc
src/os/bluestore/BlueFS.h
src/os/bluestore/bluefs_types.h