]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: move pg logs into osd mempool
authorSage Weil <sage@redhat.com>
Tue, 8 Nov 2016 22:31:34 +0000 (17:31 -0500)
committerSage Weil <sage@redhat.com>
Fri, 11 Nov 2016 19:59:54 +0000 (14:59 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/messages/MOSDPGUpdateLogMissing.h
src/osd/PG.cc
src/osd/PG.h
src/osd/PGLog.cc
src/osd/PGLog.h
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h
src/osd/osd_types.h

index 35f33116e903bd364a78972152a1e67c725c0428..55e50d6a46266126c3ff0b0950235aaf4cdc4c55 100644 (file)
@@ -29,7 +29,7 @@ public:
   spg_t pgid;
   shard_id_t from;
   ceph_tid_t rep_tid;
-  list<pg_log_entry_t> entries;
+  mempool::osd::list<pg_log_entry_t> entries;
 
   epoch_t get_epoch() const { return map_epoch; }
   spg_t get_pgid() const { return pgid; }
@@ -39,7 +39,7 @@ public:
   MOSDPGUpdateLogMissing() :
     Message(MSG_OSD_PG_UPDATE_LOG_MISSING, HEAD_VERSION, COMPAT_VERSION) { }
   MOSDPGUpdateLogMissing(
-    const list<pg_log_entry_t> &entries,
+    const mempool::osd::list<pg_log_entry_t> &entries,
     spg_t pgid,
     shard_id_t from,
     epoch_t epoch,
index 01602e58c31ddb145060a7a42d69cb9f391e0693..36b7e36dd31ff55affa35009d33c687fe3be20db 100644 (file)
@@ -77,7 +77,6 @@ const string biginfo_key("_biginfo");
 const string epoch_key("_epoch");
 const string fastinfo_key("_fastinfo");
 
-
 template <class T>
 static ostream& _prefix(std::ostream *_dout, T *t)
 {
@@ -4639,7 +4638,7 @@ void PG::share_pg_info()
 }
 
 bool PG::append_log_entries_update_missing(
-  const list<pg_log_entry_t> &entries,
+  const mempool::osd::list<pg_log_entry_t> &entries,
   ObjectStore::Transaction &t)
 {
   assert(!entries.empty());
@@ -4667,7 +4666,7 @@ bool PG::append_log_entries_update_missing(
 
 
 void PG::merge_new_log_entries(
-  const list<pg_log_entry_t> &entries,
+  const mempool::osd::list<pg_log_entry_t> &entries,
   ObjectStore::Transaction &t)
 {
   dout(10) << __func__ << " " << entries << dendl;
index 043a7c6e51e949651119c1d7aa26f5a1ec96947d..a1c41864d8a8581dd96dbd93abde817c9893aeee 100644 (file)
@@ -24,6 +24,7 @@
 #include <boost/statechart/event_base.hpp>
 #include <boost/scoped_ptr.hpp>
 #include "include/memory.h"
+#include "include/mempool.h"
 
 // re-include our assert to clobber boost's
 #include "include/assert.h" 
@@ -972,9 +973,9 @@ public:
   };
 
   struct PGLogEntryHandler : public PGLog::LogEntryHandler {
-    list<pg_log_entry_t> to_rollback;
+    mempool::osd::list<pg_log_entry_t> to_rollback;
     set<hobject_t, hobject_t::BitwiseComparator> to_remove;
-    list<pg_log_entry_t> to_trim;
+    mempool::osd::list<pg_log_entry_t> to_trim;
     list<pair<hobject_t, version_t> > to_stash;
     
     // LogEntryHandler
@@ -2296,7 +2297,7 @@ public:
 
 
   bool append_log_entries_update_missing(
-    const list<pg_log_entry_t> &entries,
+    const mempool::osd::list<pg_log_entry_t> &entries,
     ObjectStore::Transaction &t);
 
   /**
@@ -2304,7 +2305,7 @@ public:
    * actingbackfill logs and missings (also missing_loc)
    */
   void merge_new_log_entries(
-    const list<pg_log_entry_t> &entries,
+    const mempool::osd::list<pg_log_entry_t> &entries,
     ObjectStore::Transaction &t);
 
   void reset_interval_flush();
index 5bcdb9eee67e5ad963b03be6b8c7c7d934d28aae..3f9870fe9eb23e06fa0832bbd8fca97d7f5fad07 100644 (file)
@@ -65,7 +65,7 @@ void PGLog::IndexedLog::split_into(
   unsigned split_bits,
   PGLog::IndexedLog *olog)
 {
-  list<pg_log_entry_t> oldlog;
+  mempool::osd::list<pg_log_entry_t> oldlog;
   oldlog.swap(log);
 
   eversion_t old_tail;
@@ -242,7 +242,7 @@ void PGLog::proc_replica_log(
     log.tail :
     first_non_divergent->version;
 
-  list<pg_log_entry_t> divergent;
+  mempool::osd::list<pg_log_entry_t> divergent;
   list<pg_log_entry_t>::const_iterator pp = olog.log.end();
   while (true) {
     if (pp == olog.log.begin())
@@ -318,7 +318,7 @@ void PGLog::rewind_divergent_log(ObjectStore::Transaction& t, eversion_t newhead
   assert(newhead >= log.tail);
 
   list<pg_log_entry_t>::iterator p = log.log.end();
-  list<pg_log_entry_t> divergent;
+  mempool::osd::list<pg_log_entry_t> divergent;
   while (true) {
     if (p == log.log.begin()) {
       // yikes, the whole thing is divergent!
@@ -451,7 +451,7 @@ void PGLog::merge_log(ObjectStore::Transaction& t,
     mark_dirty_from(lower_bound);
 
     // move aside divergent items
-    list<pg_log_entry_t> divergent;
+    mempool::osd::list<pg_log_entry_t> divergent;
     while (!log.empty()) {
       pg_log_entry_t &oe = *log.log.rbegin();
       /*
@@ -469,7 +469,7 @@ void PGLog::merge_log(ObjectStore::Transaction& t,
       log.log.pop_back();
     }
 
-    list<pg_log_entry_t> entries;
+    mempool::osd::list<pg_log_entry_t> entries;
     entries.splice(entries.end(), olog.log, from, to);
     append_log_entries_update_missing(
       info.last_backfill,
index 91a930cf4df99ffcd7c82d11a52c89043fa8cfd4..ecf340fc75b2ceede64a1900bf58ec8a73de2398 100644 (file)
@@ -18,7 +18,7 @@
 #define CEPH_PG_LOG_H
 
 // re-include our assert to clobber boost's
-#include "include/assert.h" 
+#include "include/assert.h"
 #include "osd_types.h"
 #include "os/ObjectStore.h"
 #include <list>
@@ -656,10 +656,10 @@ public:
 
 protected:
   static void split_by_object(
-    list<pg_log_entry_t> &entries,
-    map<hobject_t, list<pg_log_entry_t>, hobject_t::BitwiseComparator> *out_entries) {
+    mempool::osd::list<pg_log_entry_t> &entries,
+    map<hobject_t, mempool::osd::list<pg_log_entry_t>, hobject_t::BitwiseComparator> *out_entries) {
     while (!entries.empty()) {
-      list<pg_log_entry_t> &out_list = (*out_entries)[entries.front().soid];
+      mempool::osd::list<pg_log_entry_t> &out_list = (*out_entries)[entries.front().soid];
       out_list.splice(out_list.end(), entries, entries.begin());
     }
   }
@@ -688,7 +688,7 @@ protected:
   static void _merge_object_divergent_entries(
     const IndexedLog &log,               ///< [in] log to merge against
     const hobject_t &hoid,               ///< [in] object we are merging
-    const list<pg_log_entry_t> &entries, ///< [in] entries for hoid to merge
+    const mempool::osd::list<pg_log_entry_t> &entries, ///< [in] entries for hoid to merge
     const pg_info_t &info,              ///< [in] info for merging entries
     eversion_t olog_can_rollback_to,     ///< [in] rollback boundary
     missing_type &missing,              ///< [in,out] missing to adjust, use
@@ -851,16 +851,16 @@ protected:
   template <typename missing_type>
   static void _merge_divergent_entries(
     const IndexedLog &log,               ///< [in] log to merge against
-    list<pg_log_entry_t> &entries,       ///< [in] entries to merge
+    mempool::osd::list<pg_log_entry_t> &entries,       ///< [in] entries to merge
     const pg_info_t &oinfo,              ///< [in] info for merging entries
     eversion_t olog_can_rollback_to,     ///< [in] rollback boundary
     missing_type &omissing,              ///< [in,out] missing to adjust, use
     LogEntryHandler *rollbacker,         ///< [in] optional rollbacker object
     const DoutPrefixProvider *dpp        ///< [in] logging provider
     ) {
-    map<hobject_t, list<pg_log_entry_t>, hobject_t::BitwiseComparator > split;
+    map<hobject_t, mempool::osd::list<pg_log_entry_t>, hobject_t::BitwiseComparator > split;
     split_by_object(entries, &split);
-    for (map<hobject_t, list<pg_log_entry_t>, hobject_t::BitwiseComparator>::iterator i = split.begin();
+    for (map<hobject_t, mempool::osd::list<pg_log_entry_t>, hobject_t::BitwiseComparator>::iterator i = split.begin();
         i != split.end();
         ++i) {
       _merge_object_divergent_entries(
@@ -884,7 +884,7 @@ protected:
     const pg_log_entry_t& oe,
     const pg_info_t& info,
     LogEntryHandler *rollbacker) {
-    list<pg_log_entry_t> entries;
+    mempool::osd::list<pg_log_entry_t> entries;
     entries.push_back(oe);
     _merge_object_divergent_entries(
       log,
@@ -910,7 +910,7 @@ public:
   static bool append_log_entries_update_missing(
     const hobject_t &last_backfill,
     bool last_backfill_bitwise,
-    const list<pg_log_entry_t> &entries,
+    const mempool::osd::list<pg_log_entry_t> &entries,
     IndexedLog *log,
     missing_type &missing,
     LogEntryHandler *rollbacker,
@@ -950,7 +950,7 @@ public:
   bool append_new_log_entries(
     const hobject_t &last_backfill,
     bool last_backfill_bitwise,
-    const list<pg_log_entry_t> &entries,
+    const mempool::osd::list<pg_log_entry_t> &entries,
     LogEntryHandler *rollbacker) {
     bool invalidate_stats = append_log_entries_update_missing(
       last_backfill,
index 05eed7b5d45d824392b5d8f18f90944cac9e5aef..23b03981eeaf8e3ecc145b7045e36b733c6c0e57 100644 (file)
@@ -2311,7 +2311,7 @@ void ReplicatedPG::record_write_error(OpRequestRef op, const hobject_t &soid,
   assert(op->may_write());
   const osd_reqid_t &reqid = static_cast<MOSDOp*>(op->get_req())->get_reqid();
   ObjectContextRef obc;
-  list<pg_log_entry_t> entries;
+  mempool::osd::list<pg_log_entry_t> entries;
   entries.push_back(pg_log_entry_t(pg_log_entry_t::ERROR, soid,
                                   get_next_version(), eversion_t(), 0,
                                   reqid, utime_t(), r));
@@ -8839,7 +8839,7 @@ void ReplicatedPG::simple_opc_submit(OpContextUPtr ctx)
 
 
 void ReplicatedPG::submit_log_entries(
-  const list<pg_log_entry_t> &entries,
+  const mempool::osd::list<pg_log_entry_t> &entries,
   ObcLockManager &&manager,
   boost::optional<std::function<void(void)> > &&on_complete,
   OpRequestRef op)
@@ -9978,7 +9978,7 @@ void ReplicatedPG::mark_all_unfound_lost(
   pg_log.get_log().print(*_dout);
   *_dout << dendl;
 
-  list<pg_log_entry_t> log_entries;
+  mempool::osd::list<pg_log_entry_t> log_entries;
 
   utime_t mtime = ceph_clock_now(cct);
   map<hobject_t, pg_missing_item, hobject_t::ComparatorWithDefault>::const_iterator m =
index ae2b05ed9503cc47a6bb46db95f37549e23a8da4..36c7bfbee2d10a570789074e5d7c41a0a415583e 100644 (file)
@@ -850,7 +850,7 @@ protected:
    * Also used to store error log entries for dup detection.
    */
   void submit_log_entries(
-    const list<pg_log_entry_t> &entries,
+    const mempool::osd::list<pg_log_entry_t> &entries,
     ObcLockManager &&manager,
     boost::optional<std::function<void(void)> > &&on_complete,
     OpRequestRef op = OpRequestRef());
index 5bf08c1c396567e6230751703e3ca2e030e70357..c63a7f85598104beea97fda3389a24283ab5f753 100644 (file)
@@ -26,6 +26,7 @@
 #include <boost/variant.hpp>
 
 #include "include/rados/rados_types.hpp"
+#include "include/mempool.h"
 
 #include "msg/msg_types.h"
 #include "include/types.h"
@@ -2873,7 +2874,7 @@ struct pg_log_t {
   // data can be found
   eversion_t rollback_info_trimmed_to;
 
-  list<pg_log_entry_t> log;  // the actual log.
+  mempool::osd::list<pg_log_entry_t> log;  // the actual log.
   
   pg_log_t() {}