35 lines
769 B
Go
35 lines
769 B
Go
// Copyright 2020 PingCAP, Inc. Licensed under Apache-2.0.
|
|
|
|
package backup
|
|
|
|
import (
|
|
"encoding/hex"
|
|
|
|
"github.com/google/btree"
|
|
"github.com/pingcap/log"
|
|
"github.com/pingcap/tidb/br/pkg/rtree"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// checkDupFiles checks if there are any files are duplicated.
|
|
func checkDupFiles(rangeTree *rtree.RangeTree) {
|
|
// Name -> SHA256
|
|
files := make(map[string][]byte)
|
|
rangeTree.Ascend(func(i btree.Item) bool {
|
|
rg := i.(*rtree.Range)
|
|
for _, f := range rg.Files {
|
|
old, ok := files[f.Name]
|
|
if ok {
|
|
log.Error("dup file",
|
|
zap.String("Name", f.Name),
|
|
zap.String("SHA256_1", hex.EncodeToString(old)),
|
|
zap.String("SHA256_2", hex.EncodeToString(f.Sha256)),
|
|
)
|
|
} else {
|
|
files[f.Name] = f.Sha256
|
|
}
|
|
}
|
|
return true
|
|
})
|
|
}
|