@@ -192,19 +192,28 @@ void ExtentPlacementManager::init(
192192 AsyncCleanerRef &&cleaner,
193193 AsyncCleanerRef &&cold_cleaner)
194194{
195+ LOG_PREFIX (ExtentPlacementManager::init);
195196 writer_refs.clear ();
196197 auto cold_segment_cleaner = dynamic_cast <SegmentCleaner*>(cold_cleaner.get ());
197198 dynamic_max_rewrite_generation = hot_tier_generations - 1 ;
198199 if (cold_segment_cleaner) {
199200 dynamic_max_rewrite_generation = hot_tier_generations + cold_tier_generations - 1 ;
200201 }
202+ DEBUG (" dynamic_max_rewrite_generation: {}, "
203+ " hot_tier_generations{} , cold_tier_generations {}" ,
204+ dynamic_max_rewrite_generation, hot_tier_generations,
205+ cold_tier_generations);
206+ // TODO: hot_tier_generations should have a minumum..
201207 ceph_assert (dynamic_max_rewrite_generation > MIN_REWRITE_GENERATION);
202208
203209 if (trimmer->get_backend_type () == backend_type_t ::SEGMENTED) {
210+ DEBUG (" initiating SegmentCleaner" );
204211 auto segment_cleaner = dynamic_cast <SegmentCleaner*>(cleaner.get ());
205212 ceph_assert (segment_cleaner != nullptr );
206213 auto num_writers = generation_to_writer (dynamic_max_rewrite_generation + 1 );
214+ DEBUG (" num_writers {}" , num_writers);
207215
216+ // DATA
208217 data_writers_by_gen.resize (num_writers, nullptr );
209218 for (rewrite_gen_t gen = OOL_GENERATION; gen < hot_tier_generations; ++gen) {
210219 writer_refs.emplace_back (std::make_unique<SegmentedOolWriter>(
@@ -213,6 +222,7 @@ void ExtentPlacementManager::init(
213222 data_writers_by_gen[generation_to_writer (gen)] = writer_refs.back ().get ();
214223 }
215224
225+ // METADATA
216226 md_writers_by_gen.resize (num_writers, {});
217227 for (rewrite_gen_t gen = OOL_GENERATION; gen < hot_tier_generations; ++gen) {
218228 writer_refs.emplace_back (std::make_unique<SegmentedOolWriter>(
@@ -226,10 +236,12 @@ void ExtentPlacementManager::init(
226236 add_device (device);
227237 }
228238 } else {
239+ DEBUG (" initiating RBMCleaner cleaner" );
229240 assert (trimmer->get_backend_type () == backend_type_t ::RANDOM_BLOCK);
230241 auto rb_cleaner = dynamic_cast <RBMCleaner*>(cleaner.get ());
231242 ceph_assert (rb_cleaner != nullptr );
232243 auto num_writers = generation_to_writer (dynamic_max_rewrite_generation + 1 );
244+ DEBUG (" num_writers {}" , num_writers);
233245 data_writers_by_gen.resize (num_writers, nullptr );
234246 md_writers_by_gen.resize (num_writers, {});
235247 writer_refs.emplace_back (std::make_unique<RandomBlockOolWriter>(
@@ -243,13 +255,15 @@ void ExtentPlacementManager::init(
243255 }
244256
245257 if (cold_segment_cleaner) {
258+ // Cold DATA Segments
246259 for (rewrite_gen_t gen = hot_tier_generations; gen <= dynamic_max_rewrite_generation; ++gen) {
247260 writer_refs.emplace_back (std::make_unique<SegmentedOolWriter>(
248261 data_category_t ::DATA, gen, *cold_segment_cleaner,
249262 *ool_segment_seq_allocator));
250263 data_writers_by_gen[generation_to_writer (gen)] = writer_refs.back ().get ();
251264 }
252265 for (rewrite_gen_t gen = hot_tier_generations; gen <= dynamic_max_rewrite_generation; ++gen) {
266+ // Cold METADATA Segments
253267 writer_refs.emplace_back (std::make_unique<SegmentedOolWriter>(
254268 data_category_t ::METADATA, gen, *cold_segment_cleaner,
255269 *ool_segment_seq_allocator));
0 commit comments