aboutsummaryrefslogtreecommitdiff
path: root/weed/server/volume_server_handlers_vacuum.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/server/volume_server_handlers_vacuum.go')
-rw-r--r--weed/server/volume_server_handlers_vacuum.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/weed/server/volume_server_handlers_vacuum.go b/weed/server/volume_server_handlers_vacuum.go
new file mode 100644
index 000000000..ef348d35c
--- /dev/null
+++ b/weed/server/volume_server_handlers_vacuum.go
@@ -0,0 +1,35 @@
+package weed_server
+
+import (
+ "net/http"
+
+ "github.com/chrislusf/seaweedfs/weed/glog"
+)
+
+func (vs *VolumeServer) vacuumVolumeCheckHandler(w http.ResponseWriter, r *http.Request) {
+ err, ret := vs.store.CheckCompactVolume(r.FormValue("volume"), r.FormValue("garbageThreshold"))
+ if err == nil {
+ writeJsonQuiet(w, r, http.StatusOK, map[string]interface{}{"error": "", "result": ret})
+ } else {
+ writeJsonQuiet(w, r, http.StatusInternalServerError, map[string]interface{}{"error": err.Error(), "result": false})
+ }
+ glog.V(2).Infoln("checked compacting volume =", r.FormValue("volume"), "garbageThreshold =", r.FormValue("garbageThreshold"), "vacuum =", ret)
+}
+func (vs *VolumeServer) vacuumVolumeCompactHandler(w http.ResponseWriter, r *http.Request) {
+ err := vs.store.CompactVolume(r.FormValue("volume"))
+ if err == nil {
+ writeJsonQuiet(w, r, http.StatusOK, map[string]string{"error": ""})
+ } else {
+ writeJsonError(w, r, http.StatusInternalServerError, err)
+ }
+ glog.V(2).Infoln("compacted volume =", r.FormValue("volume"), ", error =", err)
+}
+func (vs *VolumeServer) vacuumVolumeCommitHandler(w http.ResponseWriter, r *http.Request) {
+ err := vs.store.CommitCompactVolume(r.FormValue("volume"))
+ if err == nil {
+ writeJsonQuiet(w, r, http.StatusOK, map[string]string{"error": ""})
+ } else {
+ writeJsonError(w, r, http.StatusInternalServerError, err)
+ }
+ glog.V(2).Infoln("commit compact volume =", r.FormValue("volume"), ", error =", err)
+}