]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
PGLog: remove other ondisklog references
authorSamuel Just <sam.just@inktank.com>
Mon, 10 Jun 2013 20:57:32 +0000 (13:57 -0700)
committerSamuel Just <sam.just@inktank.com>
Mon, 17 Jun 2013 21:50:52 +0000 (14:50 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/PGLog.cc
src/osd/PGLog.h
src/tools/ceph-filestore-dump.cc

index 38896dbc1188ebecb21a72326ac61d9f01607342..5995918dcbce63b7d600088e1faeb91dba0235f6 100644 (file)
@@ -111,9 +111,7 @@ void PGLog::reset_backfill()
 }
 
 void PGLog::clear() {
-  ondisklog.zero();
-  ondisklog.has_checksums = true;
-  ondisklog.divergent_priors.clear();
+  divergent_priors.clear();
   missing.clear();
   log.zero();
 }
@@ -140,7 +138,7 @@ void PGLog::trim(ObjectStore::Transaction& t, eversion_t trim_to, pg_info_t &inf
     /* If we are trimming, we must be complete up to trim_to, time
      * to throw out any divergent_priors
      */
-    ondisklog.divergent_priors.clear();
+    divergent_priors.clear();
     // We shouldn't be trimming the log past last_complete
     assert(trim_to <= info.last_complete);
 
@@ -330,7 +328,7 @@ bool PGLog::merge_old_entry(ObjectStore::Transaction& t, const pg_log_entry_t& o
     dout(20) << "merge_old_entry  had " << oe << " updating missing to "
             << oe.prior_version << dendl;
     if (oe.prior_version > eversion_t()) {
-      ondisklog.add_divergent_prior(oe.prior_version, oe.soid);
+      add_divergent_prior(oe.prior_version, oe.soid);
       dirty_log = true;
       missing.revise_need(oe.soid, oe.prior_version);
     } else if (missing.is_missing(oe.soid)) {
@@ -571,8 +569,8 @@ bool PGLog::read_log(ObjectStore *store, coll_t coll, hobject_t log_oid,
       bufferlist bl = p->value();//Copy bufferlist before creating iterator
       bufferlist::iterator bp = bl.begin();
       if (p->key() == "divergent_priors") {
-       ::decode(ondisklog.divergent_priors, bp);
-       dout(20) << "read_log " << ondisklog.divergent_priors.size() << " divergent_priors" << dendl;
+       ::decode(divergent_priors, bp);
+       dout(20) << "read_log " << divergent_priors.size() << " divergent_priors" << dendl;
       } else {
        pg_log_entry_t e;
        e.decode_with_checksum(bp);
@@ -619,8 +617,8 @@ bool PGLog::read_log(ObjectStore *store, coll_t coll, hobject_t log_oid,
       }
     }
     for (map<eversion_t, hobject_t>::reverse_iterator i =
-          ondisklog.divergent_priors.rbegin();
-        i != ondisklog.divergent_priors.rend();
+          divergent_priors.rbegin();
+        i != divergent_priors.rend();
         ++i) {
       if (i->first <= info.last_complete) break;
       if (did.count(i->second)) continue;
index 23198127276aac96be9e963ea46675310321ae57..b2d857dbfe8df5dd6a7c30d46e2e19ba46a9299b 100644 (file)
@@ -145,7 +145,12 @@ struct PGLog {
 
     ostream& print(ostream& out) const;
   };
-  
+
+
+  void add_divergent_prior(eversion_t version, hobject_t obj) {
+    divergent_priors.insert(make_pair(version, obj));
+  }
+
   /**
    * OndiskLog - some info about how we store the log on disk.
    */
@@ -231,7 +236,7 @@ struct PGLog {
 protected:
   //////////////////// data members ////////////////////
 
-  OndiskLog   ondisklog;
+  map<eversion_t, hobject_t> divergent_priors;
   pg_missing_t     missing;
   IndexedLog  log;
 
@@ -268,10 +273,6 @@ public:
     missing.rm(p);
   }
 
-  //////////////////// get or set ondisklog ////////////////////
-
-  const OndiskLog &get_ondisklog() const { return ondisklog; }
-
   //////////////////// get or set log ////////////////////
 
   const IndexedLog &get_log() const { return log; }
@@ -371,7 +372,7 @@ public:
                       bool &dirty_log, bool &dirty_info, bool &dirty_big_info);
 
   void write_log(ObjectStore::Transaction& t, const hobject_t &log_oid) {
-    write_log(t, log, log_oid, ondisklog.divergent_priors);
+    write_log(t, log, log_oid, divergent_priors);
   }
 
   static void write_log(ObjectStore::Transaction& t, pg_log_t &log,
@@ -379,7 +380,7 @@ public:
 
   bool read_log(ObjectStore *store, coll_t coll, hobject_t log_oid,
                const pg_info_t &info, ostringstream &oss) {
-    return read_log(store, coll, log_oid, info, ondisklog.divergent_priors,
+    return read_log(store, coll, log_oid, info, divergent_priors,
       log, missing, oss);
   }
 
index 4953bb6062e1541a10de37ff35964c04a39cb561..3badc2160b0ca9e5be7d0e495cfc8b7224d84374 100644 (file)
@@ -324,10 +324,10 @@ static void invalid_path(string &path)
 int get_log(ObjectStore *fs, coll_t coll, pg_t pgid, const pg_info_t &info,
    PGLog::IndexedLog &log, pg_missing_t &missing)
 { 
-  PGLog::OndiskLog ondisklog;
+  map<eversion_t, hobject_t> divergent_priors;
   try {
     ostringstream oss;
-    PGLog::read_log(fs, coll, log_oid, info, ondisklog, log, missing, oss);
+    PGLog::read_log(fs, coll, log_oid, info, divergent_priors, log, missing, oss);
     if (debug && oss.str().size())
       cerr << oss.str() << std::endl;
   }