Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
zhijian-pro committed Mar 28, 2023
1 parent d31fdbd commit 2a5df47
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 32 deletions.
5 changes: 5 additions & 0 deletions pkg/meta/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -2082,3 +2082,8 @@ func (m *baseMeta) ScanDeletedObject(ctx Context, tss trashSliceScan, pss pendin
}
return eg.Wait()
}

//nolint:unused
func (m *baseMeta) findDetachedNodes(t time.Time) []Ino {
return m.en.doFindDetachedNodes(t)
}
35 changes: 10 additions & 25 deletions pkg/meta/base_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2159,15 +2159,6 @@ func testClone(t *testing.T, m Meta) {
m.rdb.ZAdd(Background, m.detachedNodes(), redis.Z{Member: dNode2.String(), Score: float64(time.Now().Add(-5 * time.Minute).Unix())}).Err()
m.rdb.ZAdd(Background, m.detachedNodes(), redis.Z{Member: dNode3.String(), Score: float64(time.Now().Add(-48 * time.Hour).Unix())}).Err()
m.rdb.ZAdd(Background, m.detachedNodes(), redis.Z{Member: dNode4.String(), Score: float64(time.Now().Add(-48 * time.Hour).Unix())}).Err()

nodes := m.doFindDetachedNodes(time.Now())
if len(nodes) != 4 {
t.Fatalf("find detached nodes error: %v", nodes)
}
nodes = m.doFindDetachedNodes(time.Now().Add(-24 * time.Hour))
if len(nodes) != 2 {
t.Fatalf("find detached nodes error: %v", nodes)
}
case *dbMeta:
if n, err := m.db.Delete(&edge{Parent: cloneDstAttr.Parent, Name: []byte(cloneDstName)}); err != nil || n != 1 {
t.Fatalf("del edge error: %v", err)
Expand All @@ -2188,14 +2179,6 @@ func testClone(t *testing.T, m Meta) {
&detachedNode{Inode: dNode4, Added: time.Now().Add(-48 * time.Hour).Unix()},
)
})
nodes := m.doFindDetachedNodes(time.Now())
if len(nodes) != 4 {
t.Fatalf("find detached nodes error: %v", nodes)
}
nodes = m.doFindDetachedNodes(time.Now().Add(-24 * time.Hour))
if len(nodes) != 2 {
t.Fatalf("find detached nodes error: %v", nodes)
}
case *kvMeta:
// del edge first
if err := m.deleteKeys(m.entryKey(cloneDstAttr.Parent, cloneDstName)); err != nil {
Expand All @@ -2218,20 +2201,22 @@ func testClone(t *testing.T, m Meta) {
tx.set(m.detachedKey(dNode4), m.packInt64(time.Now().Add(-48*time.Hour).Unix()))
return nil
})
nodes := m.doFindDetachedNodes(time.Now())
if len(nodes) != 4 {
t.Fatalf("find detached nodes error: %v", nodes)
}
nodes = m.doFindDetachedNodes(time.Now().Add(-24 * time.Hour))
if len(nodes) != 2 {
t.Fatalf("find detached nodes error: %v", nodes)
}

}
time.Sleep(1 * time.Second)
if !sli1del || !sli2del {
t.Fatalf("slice should be deleted")
}

nodes := m.getBase().findDetachedNodes(time.Now())
if len(nodes) != 4 {
t.Fatalf("find detached nodes error: %v", nodes)
}
nodes = m.getBase().findDetachedNodes(time.Now().Add(-24 * time.Hour))
if len(nodes) != 2 {
t.Fatalf("find detached nodes error: %v", nodes)
}

}

func checkEntryTree(t *testing.T, m Meta, srcIno, dstIno Ino, walkFunc func(srcEntry, dstEntry *Entry, dstIno Ino)) {
Expand Down
3 changes: 1 addition & 2 deletions pkg/meta/redis.go
Original file line number Diff line number Diff line change
Expand Up @@ -4296,8 +4296,7 @@ func (m *redisMeta) mkNodeWithAttr(ctx Context, tx *redis.Tx, srcIno Ino, srcAtt
tx.HSet(ctx, m.entryKey(dstParentIno), dstName, m.packEntry(srcAttr.Typ, *dstIno))
tx.IncrBy(ctx, m.usedSpaceKey(), align4K(0))
tx.Incr(ctx, m.totalInodesKey())
}
if !attach {
} else {
pipe.ZAdd(ctx, m.detachedNodes(), redis.Z{Member: dstIno.String(), Score: float64(time.Now().Unix())})
}
return nil
Expand Down
7 changes: 2 additions & 5 deletions pkg/meta/sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -4038,14 +4038,11 @@ func (m *dbMeta) doCleanupDetachedNode(ctx Context, detachedNode Ino) syscall.Er
if _, err := s.Delete(&node{Inode: detachedNode}); err != nil {
return err
}
if _, err := s.Delete(&xattr{Inode: detachedNode}); err != nil {
return err
}
return nil
_, err = s.Delete(&xattr{Inode: detachedNode})
return err
}); err != nil {
return errno(err)
}
}
_, err = m.db.Delete(&node{Inode: detachedNode})
return errno(err)
}

0 comments on commit 2a5df47

Please sign in to comment.