|
@ -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 |
|
|