]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: debug print journal write details
authorYingxin Cheng <yingxin.cheng@intel.com>
Fri, 26 Nov 2021 05:13:56 +0000 (13:13 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Thu, 9 Dec 2021 03:28:49 +0000 (11:28 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/journal.cc
src/crimson/os/seastore/journal.h

index d8de84bdb758991738629123b7c326ee7a1bd592..2813864375629b4414849127fdec2d45b0a85c39 100644 (file)
@@ -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
index f81e23801c6db50ce8e225e18ec1a1778dbd95f2..a6cb8ce1a7d6bdb138776768068ba09b9c0c364c 100644 (file)
@@ -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{
index 7f783e2938e47a71f4b772655d868b3bcc797327..2d2e54533e75e0c950561ad554e54acb4b285579 100644 (file)
@@ -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);