MCPcopy Create free account
hub / github.com/nutsdb/nutsdb / enumerateDataFileIDs

Function enumerateDataFileIDs

merge_utils.go:63–90  ·  view source on GitHub ↗
(dir string)

Source from the content-addressed store, hash-verified

61}
62
63func enumerateDataFileIDs(dir string) (userIDs []int64, mergeIDs []int64, err error) {
64 entries, err := os.ReadDir(dir)
65 if err != nil {
66 return nil, nil, err
67 }
68 for _, entry := range entries {
69 if entry.IsDir() {
70 continue
71 }
72 name := entry.Name()
73 if !strings.HasSuffix(name, DataSuffix) {
74 continue
75 }
76 base := strings.TrimSuffix(name, DataSuffix)
77 if seq, ok := parseMergeSeq(base); ok {
78 mergeIDs = append(mergeIDs, GetMergeFileID(seq))
79 continue
80 }
81 id, err := strconv.ParseInt(base, 10, 64)
82 if err != nil {
83 continue
84 }
85 userIDs = append(userIDs, id)
86 }
87 sort.Slice(userIDs, func(i, j int) bool { return userIDs[i] < userIDs[j] })
88 sort.Slice(mergeIDs, func(i, j int) bool { return mergeIDs[i] < mergeIDs[j] })
89 return userIDs, mergeIDs, nil
90}
91
92func purgeMergeFiles(dir string, keep map[int64]struct{}) error {
93 _, mergeIDs, err := enumerateDataFileIDs(dir)

Calls 4

parseMergeSeqFunction · 0.85
appendFunction · 0.85
GetMergeFileIDFunction · 0.85
NameMethod · 0.65