]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/transaction: reorder members, make handle private
authorSamuel Just <sjust@redhat.com>
Mon, 28 Jun 2021 21:23:45 +0000 (14:23 -0700)
committerSamuel Just <sjust@redhat.com>
Tue, 29 Jun 2021 17:08:55 +0000 (10:08 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/transaction.h
src/crimson/os/seastore/transaction_manager.cc
src/test/crimson/seastore/test_btree_lba_manager.cc

index c37dcccf0d147ea84272d335d99244fb4e1d5778..b39a20419ce734edf9edd95fceb7383ba69e2d5a 100644 (file)
@@ -25,8 +25,6 @@ class Transaction;
  */
 class Transaction {
 public:
-  OrderingHandle handle;
-
   using Ref = std::unique_ptr<Transaction>;
   enum class get_extent_ret {
     PRESENT,
@@ -121,6 +119,31 @@ public:
     return conflicted;
   }
 
+  auto &get_handle() {
+    return handle;
+  }
+
+  Transaction(
+    OrderingHandle &&handle,
+    bool weak,
+    journal_seq_t initiated_after
+  ) : weak(weak),
+      retired_gate_token(initiated_after),
+      handle(std::move(handle))
+  {}
+
+
+  ~Transaction() {
+    for (auto i = write_set.begin();
+        i != write_set.end();) {
+      i->state = CachedExtent::extent_state_t::INVALID;
+      write_set.erase(*i++);
+    }
+  }
+
+  friend class crimson::os::seastore::SeaStore;
+  friend class TransactionConflictCondition;
+
 private:
   friend class Cache;
   friend Ref make_test_transaction();
@@ -152,24 +175,7 @@ private:
 
   bool conflicted = false;
 
-public:
-  Transaction(
-    OrderingHandle &&handle,
-    bool weak,
-    journal_seq_t initiated_after
-  ) : handle(std::move(handle)), weak(weak),
-      retired_gate_token(initiated_after) {}
-
-  ~Transaction() {
-    for (auto i = write_set.begin();
-        i != write_set.end();) {
-      i->state = CachedExtent::extent_state_t::INVALID;
-      write_set.erase(*i++);
-    }
-  }
-
-  friend class crimson::os::seastore::SeaStore;
-  friend class TransactionConflictCondition;
+  OrderingHandle handle;
 };
 using TransactionRef = Transaction::Ref;
 
index 0b0216546a069a8152303c785028236755154b8c..5cdb498bc9f3848b50da3c350ba05ef9e8b6dc2e 100644 (file)
@@ -224,7 +224,7 @@ TransactionManager::submit_transaction(
   LOG_PREFIX(TransactionManager::submit_transaction);
   DEBUGT("about to await throttle", t);
   return trans_intr::make_interruptible(
-    t.handle.enter(write_pipeline.wait_throttle)
+    t.get_handle().enter(write_pipeline.wait_throttle)
   ).then_interruptible([this] {
     return trans_intr::make_interruptible(segment_cleaner->await_hard_limits());
   }).then_interruptible([this, &t]() {
@@ -239,7 +239,7 @@ TransactionManager::submit_transaction_direct(
   LOG_PREFIX(TransactionManager::submit_transaction_direct);
   DEBUGT("about to prepare", tref);
   return trans_intr::make_interruptible(
-    tref.handle.enter(write_pipeline.prepare)
+    tref.get_handle().enter(write_pipeline.prepare)
   ).then_interruptible([this, FNAME, &tref]() mutable
                       -> submit_transaction_iertr::future<> {
     auto record = cache->try_construct_record(tref);
@@ -247,7 +247,7 @@ TransactionManager::submit_transaction_direct(
 
     DEBUGT("about to submit to journal", tref);
 
-    return journal->submit_record(std::move(*record), tref.handle
+    return journal->submit_record(std::move(*record), tref.get_handle()
     ).safe_then([this, FNAME, &tref](auto p) mutable {
       auto [addr, journal_seq] = p;
       DEBUGT("journal commit to {} seq {}", tref, addr, journal_seq);
@@ -266,14 +266,14 @@ TransactionManager::submit_transaction_direct(
        return SegmentManager::release_ertr::now();
       }
     }).safe_then([&tref] {
-      return tref.handle.complete();
+      return tref.get_handle().complete();
     }).handle_error(
       submit_transaction_iertr::pass_further{},
       crimson::ct_error::all_same_way([](auto e) {
        ceph_assert(0 == "Hit error submitting to journal");
       }));
     }).finally([&tref]() {
-      tref.handle.exit();
+      tref.get_handle().exit();
     });
 }
 
index aa449836a5630764b255b410ff3bbad2474bdf0c..a4b6d1db339f787ba0c07da790a570ebe2f2d022 100644 (file)
@@ -63,7 +63,7 @@ struct btree_lba_manager_test :
       ceph_assert(0 == "cannot fail");
     }
 
-    return journal.submit_record(std::move(*record), t->handle).safe_then(
+    return journal.submit_record(std::move(*record), t->get_handle()).safe_then(
       [this, t=std::move(t)](auto p) mutable {
        auto [addr, seq] = p;
        cache.complete_commit(*t, addr, seq);