async file chunk deletion

This commit is contained in:
Chris Lu
2018-11-20 20:56:28 -08:00
parent 5065d4ab2d
commit b282e34dc2
4 changed files with 120 additions and 54 deletions

View File

@@ -29,6 +29,16 @@ func ParseFileId(fid string) (vid string, key_cookie string, err error) {
// DeleteFiles batch deletes a list of fileIds
func DeleteFiles(master string, fileIds []string) ([]*volume_server_pb.DeleteResult, error) {
lookupFunc := func(vids []string) (map[string]LookupResult, error) {
return LookupVolumeIds(master, vids)
}
return DeleteFilesWithLookupVolumeId(fileIds, lookupFunc)
}
func DeleteFilesWithLookupVolumeId(fileIds []string, lookupFunc func(vid []string) (map[string]LookupResult, error)) ([]*volume_server_pb.DeleteResult, error) {
var ret []*volume_server_pb.DeleteResult
vid_to_fileIds := make(map[string][]string)
@@ -50,7 +60,7 @@ func DeleteFiles(master string, fileIds []string) ([]*volume_server_pb.DeleteRes
vid_to_fileIds[vid] = append(vid_to_fileIds[vid], fileId)
}
lookupResults, err := LookupVolumeIds(master, vids)
lookupResults, err := lookupFunc(vids)
if err != nil {
return ret, err
}