]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: assume old mons that didn't specific kv type are leveldb 11354/head
authorSage Weil <sage@redhat.com>
Thu, 6 Oct 2016 18:02:07 +0000 (14:02 -0400)
committerSage Weil <sage@redhat.com>
Thu, 6 Oct 2016 18:02:07 +0000 (14:02 -0400)
This assumes that if the mon does not explicitly specify
the kv type that it is leveldb.  No prior version of
Ceph has had non-experimental rocksdb, so this is
relatively safe.  It's also necessary because the
default is now 'rocksdb' and we shouldn't assume those
old mons are rocksdb.

This will break for users to explicitly specified
rocksdb for the mon despite it being experimental.

Signed-off-by: Sage Weil <sage@redhat.com>
PendingReleaseNotes
src/mon/MonitorDBStore.h

index f842558f2670c6cda642b2eafe324a25a2319fcf..0bbc2aa25f4b3c08fe292d16dd84f6f550597d9b 100644 (file)
          1
     }.
 
+* If your monitors are configured to use the experimental rocksdb
+  backend, you may need to manually adjust the store before upgraded.
+  Monitors now explicitly record what keyvalue backend type they use.  If
+  the kv_backend file is missing from the mon_data directory (normally
+  /var/lib/ceph/mon/$cluster-$name/kv_backend) it is now assumed to be leveldb.
+  If you had manually configured the mon to use rocksdb, this file should
+  be created and filled with the string "rocksdb" (newline optional).
+
+
 11.0.0
 ------
 
index 0acbfbe36e2550a6d6ffa27e58a304dca07d8340..24c56bb9f0787c0a7c51a0d7bc30dd6c1f6a0a8c 100644 (file)
@@ -644,7 +644,8 @@ class MonitorDBStore
     string kv_type;
     int r = read_meta("kv_backend", &kv_type);
     if (r < 0) {
-      kv_type = g_conf->mon_keyvaluedb;
+      // assume old monitors that did not mark the type were leveldb.
+      kv_type = "leveldb";
       r = write_meta("kv_backend", kv_type);
       if (r < 0)
        return r;