diff options
| author | chrislusf <chris.lu@gmail.com> | 2016-04-14 01:30:26 -0700 |
|---|---|---|
| committer | chrislusf <chris.lu@gmail.com> | 2016-04-14 01:30:26 -0700 |
| commit | 0649d778a72d4c0c27b3f2049fdb6f6e18956a65 (patch) | |
| tree | fd8f58c8639aba6038cf6bef0d382fc806a8b48c /go/weed | |
| parent | 95e0d2f1b236f97f70d51a62c3df6a937a27286d (diff) | |
| download | seaweedfs-0649d778a72d4c0c27b3f2049fdb6f6e18956a65.tar.xz seaweedfs-0649d778a72d4c0c27b3f2049fdb6f6e18956a65.zip | |
pooling []byte
reduce the number of requests to make([]byte)
Diffstat (limited to 'go/weed')
| -rw-r--r-- | go/weed/signal_handling.go | 3 | ||||
| -rw-r--r-- | go/weed/weed_server/volume_server_handlers_read.go | 1 | ||||
| -rw-r--r-- | go/weed/weed_server/volume_server_handlers_sync.go | 3 | ||||
| -rw-r--r-- | go/weed/weed_server/volume_server_handlers_write.go | 8 |
4 files changed, 12 insertions, 3 deletions
diff --git a/go/weed/signal_handling.go b/go/weed/signal_handling.go index 2004bb088..a8f166382 100644 --- a/go/weed/signal_handling.go +++ b/go/weed/signal_handling.go @@ -20,7 +20,8 @@ func OnInterrupt(fn func()) { // syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, - syscall.SIGQUIT) + // syscall.SIGQUIT, + ) go func() { for _ = range signalChan { fn() diff --git a/go/weed/weed_server/volume_server_handlers_read.go b/go/weed/weed_server/volume_server_handlers_read.go index 52b22426f..6ce648062 100644 --- a/go/weed/weed_server/volume_server_handlers_read.go +++ b/go/weed/weed_server/volume_server_handlers_read.go @@ -66,6 +66,7 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) cookie := n.Cookie count, e := vs.store.ReadVolumeNeedle(volumeId, n) glog.V(4).Infoln("read bytes", count, "error", e) + defer n.ReleaseMemory() if e != nil || count <= 0 { glog.V(0).Infoln("read error:", e, r.URL.Path) w.WriteHeader(http.StatusNotFound) diff --git a/go/weed/weed_server/volume_server_handlers_sync.go b/go/weed/weed_server/volume_server_handlers_sync.go index c650e5f53..cb24f7cd6 100644 --- a/go/weed/weed_server/volume_server_handlers_sync.go +++ b/go/weed/weed_server/volume_server_handlers_sync.go @@ -50,7 +50,8 @@ func (vs *VolumeServer) getVolumeDataContentHandler(w http.ResponseWriter, r *ht } offset := uint32(util.ParseUint64(r.FormValue("offset"), 0)) size := uint32(util.ParseUint64(r.FormValue("size"), 0)) - content, err := storage.ReadNeedleBlob(v.DataFile(), int64(offset)*storage.NeedlePaddingSize, size) + content, rawBytes, err := storage.ReadNeedleBlob(v.DataFile(), int64(offset)*storage.NeedlePaddingSize, size) + defer storage.ReleaseBytes(rawBytes) if err != nil { writeJsonError(w, r, http.StatusInternalServerError, err) return diff --git a/go/weed/weed_server/volume_server_handlers_write.go b/go/weed/weed_server/volume_server_handlers_write.go index 3d2afaf77..58733ea11 100644 --- a/go/weed/weed_server/volume_server_handlers_write.go +++ b/go/weed/weed_server/volume_server_handlers_write.go @@ -55,7 +55,9 @@ func (vs *VolumeServer) DeleteHandler(w http.ResponseWriter, r *http.Request) { cookie := n.Cookie - if _, ok := vs.store.ReadVolumeNeedle(volumeId, n); ok != nil { + _, ok := vs.store.ReadVolumeNeedle(volumeId, n) + defer n.ReleaseMemory() + if ok != nil { m := make(map[string]uint32) m["size"] = 0 writeJsonQuiet(w, r, http.StatusNotFound, m) @@ -120,6 +122,7 @@ func (vs *VolumeServer) batchDeleteHandler(w http.ResponseWriter, r *http.Reques Status: http.StatusNotFound, Error: err.Error(), }) + n.ReleaseMemory() continue } @@ -129,6 +132,7 @@ func (vs *VolumeServer) batchDeleteHandler(w http.ResponseWriter, r *http.Reques Status: http.StatusNotAcceptable, Error: "ChunkManifest: not allowed in batch delete mode.", }) + n.ReleaseMemory() continue } @@ -139,6 +143,7 @@ func (vs *VolumeServer) batchDeleteHandler(w http.ResponseWriter, r *http.Reques Error: "File Random Cookie does not match.", }) glog.V(0).Infoln("deleting", fid, "with unmaching cookie from ", r.RemoteAddr, "agent", r.UserAgent()) + n.ReleaseMemory() return } if size, err := vs.store.Delete(volumeId, n); err != nil { @@ -154,6 +159,7 @@ func (vs *VolumeServer) batchDeleteHandler(w http.ResponseWriter, r *http.Reques Size: int(size)}, ) } + n.ReleaseMemory() } writeJsonQuiet(w, r, http.StatusAccepted, ret) |
