]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
seastore: seperate Journal interface from SegmentedJournal implementation
authormyoungwon oh <myoungwon.oh@samsung.com>
Fri, 13 Aug 2021 08:15:54 +0000 (17:15 +0900)
committerSamuel Just <sjust@redhat.com>
Sun, 20 Feb 2022 23:45:29 +0000 (23:45 +0000)
commit13bafdff818dc799c763eb4605eec83bad8fedb0
tree277187e862c2fec62ee2b379516db341c8298197
parent884dc766836ee2b8cb2eedccad9e2e79a50658df
seastore: seperate Journal interface from SegmentedJournal implementation

A subsequent PR will introduce a CircularBoundedJournal implementation
for fast nvme devices.

SegmentCleaner no longer needs a reference to Journal, so dispense with
the set_segment_provider machinery and simply pass it in the
constructor.

Move responsibility for finding the journal segments into the journal
itself.  This does mean that we check the segment headers on the journal
device twice, but that should be a neglible amount of overhead on mount.

SegmentCleaner::init_segments no longer needs to return Journal
segments, so merge with mount().

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
Signed-off-by: Samuel Just <sjust@redhat.com>
13 files changed:
src/crimson/os/seastore/CMakeLists.txt
src/crimson/os/seastore/journal.cc
src/crimson/os/seastore/journal.h
src/crimson/os/seastore/journal/segmented_journal.cc [new file with mode: 0644]
src/crimson/os/seastore/journal/segmented_journal.h [new file with mode: 0644]
src/crimson/os/seastore/seastore.cc
src/crimson/os/seastore/segment_cleaner.cc
src/crimson/os/seastore/segment_cleaner.h
src/crimson/os/seastore/transaction_manager.cc
src/crimson/tools/store_nbd/tm_driver.cc
src/test/crimson/seastore/test_btree_lba_manager.cc
src/test/crimson/seastore/test_seastore_journal.cc
src/test/crimson/seastore/transaction_manager_test_state.h