]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson/os/seastore: fix inconsistent segment allocation/reclaim with multiple devices
authorYingxin Cheng <yingxin.cheng@intel.com>
Thu, 31 Mar 2022 03:43:41 +0000 (11:43 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Wed, 6 Apr 2022 02:48:14 +0000 (10:48 +0800)
commit7f17a1fbd328984a3c631ac9be421c4284c0d8e1
treeb8a540ca35a7565db954ba405375e49132cba215
parentf8f6ba5c0494062fd5dabcb37066d838713f92a2
crimson/os/seastore: fix inconsistent segment allocation/reclaim with multiple devices

The current cleaning mechanism does not distingush devices, so we cannot
allocate segments from a specific segment manager safely.

Replace segment manager by segment manager group in SegmentAllocator and
the related classes,

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
20 files changed:
src/crimson/os/seastore/extent_placement_manager.cc
src/crimson/os/seastore/extent_placement_manager.h
src/crimson/os/seastore/journal.cc
src/crimson/os/seastore/journal.h
src/crimson/os/seastore/journal/segment_allocator.cc
src/crimson/os/seastore/journal/segment_allocator.h
src/crimson/os/seastore/journal/segmented_journal.cc
src/crimson/os/seastore/journal/segmented_journal.h
src/crimson/os/seastore/seastore.cc
src/crimson/os/seastore/segment_cleaner.cc
src/crimson/os/seastore/segment_cleaner.h
src/crimson/os/seastore/segment_manager.h
src/crimson/os/seastore/segment_manager_group.cc
src/crimson/os/seastore/segment_manager_group.h
src/crimson/os/seastore/transaction_manager.cc
src/crimson/os/seastore/transaction_manager.h
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