Improve performance

This commit is contained in:
Daniel 2024-10-19 17:05:26 +08:00
parent 88a2835d5d
commit 9e48a23a93
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -1449,38 +1449,17 @@ func (tx *Transaction) doRemoveAttrViewView(operation *Operation) (ret *TxErr) {
func getMirrorBlocksNodes(avID string) (trees []*parse.Tree, nodes []*ast.Node) {
mirrorBlockIDs := treenode.GetMirrorAttrViewBlockIDs(avID)
mirrorBlockTree := map[string]*parse.Tree{}
treeCache := map[string]*parse.Tree{}
for _, mirrorBlock := range mirrorBlockIDs {
bt := treenode.GetBlockTree(mirrorBlock)
if nil == bt {
logging.LogErrorf("get block tree by block ID [%s] failed", mirrorBlock)
continue
}
tree := mirrorBlockTree[mirrorBlock]
if nil == tree {
tree, _ = LoadTreeByBlockID(mirrorBlock)
if nil == tree {
logging.LogErrorf("load tree by block ID [%s] failed", mirrorBlock)
continue
}
treeCache[tree.ID] = tree
mirrorBlockTree[mirrorBlock] = tree
}
}
for _, mirrorBlockID := range mirrorBlockIDs {
tree := mirrorBlockTree[mirrorBlockID]
node := treenode.GetNodeInTree(tree, mirrorBlockID)
mirrorBlockTrees := filesys.LoadTrees(mirrorBlockIDs)
for id, tree := range mirrorBlockTrees {
node := treenode.GetNodeInTree(tree, id)
if nil == node {
logging.LogErrorf("get node in tree by block ID [%s] failed", mirrorBlockID)
logging.LogErrorf("get node in tree by block ID [%s] failed", id)
continue
}
nodes = append(nodes, node)
}
for _, tree := range treeCache {
for _, tree := range mirrorBlockTrees {
trees = append(trees, tree)
}
return