]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: allow leveldb logging
authorSage Weil <sage@inktank.com>
Mon, 6 May 2013 21:13:50 +0000 (14:13 -0700)
committerSage Weil <sage@inktank.com>
Wed, 8 May 2013 23:55:02 +0000 (16:55 -0700)
'mon leveldb log = filename'

Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit c1d5f815546b731e10bfcb81cbcd48b7d432e9c4)

src/common/config_opts.h
src/mon/MonitorDBStore.h
src/os/LevelDBStore.cc
src/os/LevelDBStore.h

index 02ceda5703ef48f1b578022329d569e316748f3a..e69de24c598c17170834627ad9b2f1b7abf8408a 100644 (file)
@@ -190,6 +190,7 @@ OPTION(mon_leveldb_bloom_size, OPT_INT, 0) // monitor's leveldb bloom bits per e
 OPTION(mon_leveldb_max_open_files, OPT_INT, 0) // monitor's leveldb max open files
 OPTION(mon_leveldb_compression, OPT_BOOL, false) // monitor's leveldb uses compression
 OPTION(mon_leveldb_paranoid, OPT_BOOL, false)   // monitor's leveldb paranoid flag
+OPTION(mon_leveldb_log, OPT_STR, "")
 OPTION(paxos_stash_full_interval, OPT_INT, 25)   // how often (in commits) to stash a full copy of the PaxosService state
 OPTION(paxos_max_join_drift, OPT_INT, 10) // max paxos iterations before we must first sync the monitor stores
 OPTION(paxos_propose_interval, OPT_DOUBLE, 1.0)  // gather updates for this long before proposing a map update
index 9dc255c7ba7eaf6e9a6ad6f9cdd06c88f4d46c78..a138670df671f6e15396f04e7c1d7235cdacbd88 100644 (file)
@@ -511,6 +511,7 @@ class MonitorDBStore
     db->options.compression_enabled = g_conf->mon_leveldb_compression;
     db->options.max_open_files = g_conf->mon_leveldb_max_open_files;
     db->options.paranoid_checks = g_conf->mon_leveldb_paranoid;
+    db->options.log_file = g_conf->mon_leveldb_log;
   }
   MonitorDBStore(LevelDBStore *db_ptr) {
     db.reset(db_ptr);
index 8e10281724842af7dc38cb1a608fc97e16bb989c..612063cf48141060aa699514c32440f0660818d3 100644 (file)
@@ -44,6 +44,11 @@ int LevelDBStore::init(ostream &out, bool create_if_missing)
   ldoptions.compression = leveldb::kNoCompression;
   ldoptions.create_if_missing = create_if_missing;
 
+  if (options.log_file.length()) {
+    leveldb::Env *env = leveldb::Env::Default();
+    env->NewLogger(options.log_file, &ldoptions.info_log);
+  }
+
   leveldb::DB *_db;
   leveldb::Status status = leveldb::DB::Open(ldoptions, path, &_db);
   db.reset(_db);
index 83f2ed3b4c4518bafbe8705aaa8ae4d6909d3367..557595181f69189fece7590c35056a30035bcf86 100644 (file)
@@ -12,6 +12,7 @@
 #include <tr1/memory>
 #include <boost/scoped_ptr.hpp>
 #include "leveldb/db.h"
+#include "leveldb/env.h"
 #include "leveldb/write_batch.h"
 #include "leveldb/slice.h"
 #include "leveldb/cache.h"
@@ -72,6 +73,8 @@ public:
     bool error_if_exists;
     bool paranoid_checks;
 
+    string log_file;
+
     options_t() :
       write_buffer_size(0), //< 0 means default
       max_open_files(0), //< 0 means default