weed mount deletion always goes to weed filer
This commit is contained in:
@@ -46,8 +46,6 @@ type WFS struct {
|
|||||||
pathToHandleLock sync.Mutex
|
pathToHandleLock sync.Mutex
|
||||||
bufPool sync.Pool
|
bufPool sync.Pool
|
||||||
|
|
||||||
fileIdsDeletionChan chan []string
|
|
||||||
|
|
||||||
stats statsCache
|
stats statsCache
|
||||||
}
|
}
|
||||||
type statsCache struct {
|
type statsCache struct {
|
||||||
@@ -65,11 +63,8 @@ func NewSeaweedFileSystem(option *Option) *WFS {
|
|||||||
return make([]byte, option.ChunkSizeLimit)
|
return make([]byte, option.ChunkSizeLimit)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
fileIdsDeletionChan: make(chan []string, 32),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
go wfs.loopProcessingDeletion()
|
|
||||||
|
|
||||||
return wfs
|
return wfs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,39 +2,9 @@ package filesys
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
|
||||||
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
|
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (wfs *WFS) loopProcessingDeletion() {
|
|
||||||
|
|
||||||
ticker := time.NewTicker(2 * time.Second)
|
|
||||||
|
|
||||||
wfs.withFilerClient(func(client filer_pb.SeaweedFilerClient) error {
|
|
||||||
var fileIds []string
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case fids := <-wfs.fileIdsDeletionChan:
|
|
||||||
fileIds = append(fileIds, fids...)
|
|
||||||
if len(fileIds) >= 1024 {
|
|
||||||
glog.V(1).Infof("deleting fileIds len=%d", len(fileIds))
|
|
||||||
deleteFileIds(context.Background(), client, fileIds)
|
|
||||||
fileIds = fileIds[:0]
|
|
||||||
}
|
|
||||||
case <-ticker.C:
|
|
||||||
if len(fileIds) > 0 {
|
|
||||||
glog.V(1).Infof("timed deletion fileIds len=%d", len(fileIds))
|
|
||||||
deleteFileIds(context.Background(), client, fileIds)
|
|
||||||
fileIds = fileIds[:0]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func (wfs *WFS) deleteFileChunks(chunks []*filer_pb.FileChunk) {
|
func (wfs *WFS) deleteFileChunks(chunks []*filer_pb.FileChunk) {
|
||||||
if len(chunks) == 0 {
|
if len(chunks) == 0 {
|
||||||
return
|
return
|
||||||
@@ -45,12 +15,6 @@ func (wfs *WFS) deleteFileChunks(chunks []*filer_pb.FileChunk) {
|
|||||||
fileIds = append(fileIds, chunk.FileId)
|
fileIds = append(fileIds, chunk.FileId)
|
||||||
}
|
}
|
||||||
|
|
||||||
var async = false
|
|
||||||
if async {
|
|
||||||
wfs.fileIdsDeletionChan <- fileIds
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
wfs.withFilerClient(func(client filer_pb.SeaweedFilerClient) error {
|
wfs.withFilerClient(func(client filer_pb.SeaweedFilerClient) error {
|
||||||
deleteFileIds(context.Background(), client, fileIds)
|
deleteFileIds(context.Background(), client, fileIds)
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Reference in New Issue
Block a user