]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
crimson/os/seastore: implement generational GC
authorYingxin Cheng <yingxin.cheng@intel.com>
Fri, 27 May 2022 09:13:06 +0000 (17:13 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Wed, 29 Jun 2022 06:39:38 +0000 (14:39 +0800)
commit6b662cbd218974292a520fc1fc636ea76290c7f0
tree616e112843b2298a08d5b88e2d5e1a4b0f1b5d3e
parent12aade9b2c2aed257c2bb72cf839ea3d258e6f5b
crimson/os/seastore: implement generational GC

Place extents into the dedicated RecordSubmitter by their data-category
and reclaimed-count. Segments of different data-category or
reclaimed-count should have different locality in the access patterns,
which is the foundation to form a desired bimodal distribution of
segment utilizations, so that GC can be more efficient.

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
20 files changed:
src/crimson/os/seastore/async_cleaner.cc
src/crimson/os/seastore/async_cleaner.h
src/crimson/os/seastore/btree/fixed_kv_btree.h
src/crimson/os/seastore/btree/fixed_kv_node.h
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/cache.h
src/crimson/os/seastore/cached_extent.h
src/crimson/os/seastore/extent_placement_manager.cc
src/crimson/os/seastore/extent_placement_manager.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/seastore_types.cc
src/crimson/os/seastore/seastore_types.h
src/crimson/os/seastore/transaction_manager.cc
src/crimson/os/seastore/transaction_manager.h
src/test/crimson/seastore/test_btree_lba_manager.cc
src/test/crimson/seastore/test_cbjournal.cc
src/test/crimson/seastore/test_seastore_cache.cc
src/test/crimson/seastore/test_seastore_journal.cc