This commit is contained in:
Liang Ding 2023-01-09 17:37:28 +08:00
parent 5a09669d3a
commit 9474f558ad
No known key found for this signature in database
GPG Key ID: 136F30F901A2231D
2 changed files with 24 additions and 4 deletions

View File

@ -1253,10 +1253,9 @@ func autoFixIndex() {
})
size := len(paths)
for i, p := range paths {
if nil == treenode.GetBlockTreeRootByPath(box.ID, p) {
reindexTreeByPath(box.ID, p, i, size)
}
missingPaths := treenode.GetNotExistPaths(box.ID, paths)
for i, p := range missingPaths {
reindexTreeByPath(box.ID, p, i, size)
}
}

View File

@ -116,6 +116,27 @@ func CeilBlockCount(count int) int {
return 10000*100 + 1
}
func GetNotExistPaths(boxID string, paths []string) (ret []string) {
blockTreesLock.Lock()
defer blockTreesLock.Unlock()
pathsMap := map[string]bool{}
for _, path := range paths {
pathsMap[path] = true
}
for _, blockTree := range blockTrees {
if blockTree.BoxID != boxID {
continue
}
if !pathsMap[blockTree.Path] {
ret = append(ret, blockTree.Path)
}
}
return
}
func GetBlockTreeRootByPath(boxID, path string) *BlockTree {
blockTreesLock.Lock()
defer blockTreesLock.Unlock()