From de7954330004a4d76986420c016591380307a871 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 1 Feb 2023 15:13:41 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=B8=85=E7=90=86=E5=9D=97=E6=A0=91?= =?UTF-8?q?=E4=B8=AD=E9=87=8D=E5=A4=8D=E5=86=97=E4=BD=99=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/index_fix.go | 1 + kernel/treenode/blocktree.go | 17 ++--------------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/kernel/model/index_fix.go b/kernel/model/index_fix.go index a95209e1b..4547aa4a4 100644 --- a/kernel/model/index_fix.go +++ b/kernel/model/index_fix.go @@ -106,6 +106,7 @@ func autoFixIndex() { size := len(paths) + // 清理块树中重复冗余的数据 redundantPaths := treenode.GetRedundantPaths(box.ID, paths) for _, p := range redundantPaths { treenode.RemoveBlockTreesByPath(box.ID, p) diff --git a/kernel/treenode/blocktree.go b/kernel/treenode/blocktree.go index 16f4af016..566c6de35 100644 --- a/kernel/treenode/blocktree.go +++ b/kernel/treenode/blocktree.go @@ -270,31 +270,18 @@ func RemoveBlockTreesByRootID(rootID string) { } func RemoveBlockTreesByPath(boxID, path string) { - var ids []string blockTrees.Range(func(key, value interface{}) bool { slice := value.(*btSlice) slice.m.Lock() for _, b := range slice.data { if b.Path == path && b.BoxID == boxID { - ids = append(ids, b.RootID) + delete(slice.data, b.ID) + slice.changed = time.Now() } } slice.m.Unlock() return true }) - - ids = gulu.Str.RemoveDuplicatedElem(ids) - for _, id := range ids { - val, ok := blockTrees.Load(btHash(id)) - if !ok { - continue - } - slice := val.(*btSlice) - slice.m.Lock() - delete(slice.data, id) - slice.m.Unlock() - slice.changed = time.Now() - } } func RemoveBlockTreesByPathPrefix(pathPrefix string) {