From a15a8624328172c48d3cce6d682b600939e1b68a Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Fri, 26 Nov 2021 13:13:56 +0800 Subject: [PATCH] crimson/os/seastore: debug print journal write details Signed-off-by: Yingxin Cheng --- src/crimson/os/seastore/cache.cc | 10 ++++++++++ src/crimson/os/seastore/journal.cc | 22 ++++++++++++++++++++-- src/crimson/os/seastore/journal.h | 7 +------ 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index d8de84bdb75..28138643756 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -1033,6 +1033,16 @@ record_t Cache::prepare_record(Transaction &t) assert(ool_stats.is_clear()); ++(efforts.num_trans); } else { + DEBUGT("record is ready to submit, src={}, mdsize={}, dsize={}; " + "{} ool records, mdsize={}, dsize={}, fillness={}", + t, t.get_src(), + record.size.get_raw_mdlength(), + record.size.dlength, + ool_stats.num_records, + ool_stats.header_raw_bytes, + ool_stats.data_bytes, + ((double)(ool_stats.header_raw_bytes + ool_stats.data_bytes) / + (ool_stats.header_bytes + ool_stats.data_bytes))); if (t.get_src() == Transaction::src_t::CLEANER_TRIM || t.get_src() == Transaction::src_t::CLEANER_RECLAIM) { // CLEANER transaction won't contain any onode tree operations diff --git a/src/crimson/os/seastore/journal.cc b/src/crimson/os/seastore/journal.cc index f81e23801c6..a6cb8ce1a7d 100644 --- a/src/crimson/os/seastore/journal.cc +++ b/src/crimson/os/seastore/journal.cc @@ -609,6 +609,23 @@ void Journal::RecordSubmitter::update_state() } } +void Journal::RecordSubmitter::account_submission( + std::size_t num, + const record_group_size_t& size) +{ + logger().debug("Journal::RecordSubmitter: submitting {} records, " + "mdsize={}, dsize={}, fillness={}", + num, + size.get_raw_mdlength(), + size.dlength, + ((double)(size.get_raw_mdlength() + size.dlength) / + (size.get_mdlength() + size.dlength))); + stats.record_group_padding_bytes += + (size.get_mdlength() - size.get_raw_mdlength()); + stats.record_group_metadata_bytes += size.get_raw_mdlength(); + stats.record_group_data_bytes += size.dlength; +} + void Journal::RecordSubmitter::finish_submit_batch( RecordBatch* p_batch, maybe_result_t maybe_result) @@ -627,10 +644,11 @@ void Journal::RecordSubmitter::flush_current_batch() pop_free_batch(); increment_io(); + auto num = p_batch->get_num_records(); auto [to_write, sizes] = p_batch->encode_batch( journal_segment_manager.get_committed_to(), journal_segment_manager.get_nonce()); - account_submission(sizes); + account_submission(num, sizes); std::ignore = journal_segment_manager.write(to_write ).safe_then([this, p_batch](auto write_result) { finish_submit_batch(p_batch, write_result); @@ -667,7 +685,7 @@ Journal::RecordSubmitter::submit_pending( journal_segment_manager.get_block_size(), journal_segment_manager.get_committed_to(), journal_segment_manager.get_nonce()); - account_submission(sizes); + account_submission(1, sizes); return journal_segment_manager.write(to_write ).safe_then([mdlength = sizes.get_mdlength()](auto write_result) { return record_locator_t{ diff --git a/src/crimson/os/seastore/journal.h b/src/crimson/os/seastore/journal.h index 7f783e2938e..2d2e54533e7 100644 --- a/src/crimson/os/seastore/journal.h +++ b/src/crimson/os/seastore/journal.h @@ -429,12 +429,7 @@ private: free_batch_ptrs.pop_front(); } - void account_submission(const record_group_size_t& size) { - stats.record_group_padding_bytes += - (size.get_mdlength() - size.get_raw_mdlength()); - stats.record_group_metadata_bytes += size.get_raw_mdlength(); - stats.record_group_data_bytes += size.dlength; - } + void account_submission(std::size_t, const record_group_size_t&); using maybe_result_t = RecordBatch::maybe_result_t; void finish_submit_batch(RecordBatch*, maybe_result_t); -- 2.39.5