]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: add 'compact' command
authorSage Weil <sage@inktank.com>
Fri, 17 May 2013 16:17:18 +0000 (09:17 -0700)
committerSage Weil <sage@inktank.com>
Fri, 17 May 2013 16:17:18 +0000 (09:17 -0700)
As in, 'ceph mon tell \* compact'

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Joao Luis <joao.luis@inktank.com>
src/mon/Monitor.cc

index 7325bfade6ba621b3b9f1a59bee256518fb18bed..f1d16aa69e85af45367738422e4940259e3953ee 100644 (file)
@@ -2550,6 +2550,24 @@ void Monitor::handle_command(MMonCommand *m)
     return;
   }
 
+  if (m->cmd[0] == "compact") {
+    if (!access_all) {
+      r = -EACCES;
+      rs = "access denied";
+      goto out;
+    }
+    dout(1) << "triggering manual compaction" << dendl;
+    utime_t start = ceph_clock_now(g_ceph_context);
+    store->compact();
+    utime_t end = ceph_clock_now(g_ceph_context);
+    end -= start;
+    dout(1) << "finished manual compaction in " << end << " seconds" << dendl;
+    ostringstream oss;
+    oss << "compacted leveldb in " << end;
+    rs = oss.str();
+    r = 0;
+  }
+
   if (m->cmd[0] == "injectargs") {
     if (!access_all) {
       r = -EACCES;