Skip to content

Commit 3d12b63

Browse files
committed
add info logging for uploadObjectDiskParts and downloadObjectDiskParts operation
1 parent 4f63c06 commit 3d12b63

File tree

3 files changed

+27
-12
lines changed

3 files changed

+27
-12
lines changed

ChangeLog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# v2.5.4
2+
IMPROVEMENTS
3+
- add `info` logging for `uploadObjectDiskParts` and `downloadObjectDiskParts` operation
4+
15
# v2.5.3
26
BUG FIXES
37
- fixed `Unknown setting base_backup` for `use_embedded_backup_restore: true` and `create --diff-from-remote`, affected 2.5.0+ versions, fix [735](https://github.com/Altinity/clickhouse-backup/issues/735)

pkg/backup/create.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -757,11 +757,12 @@ func (b *Backuper) AddTableToLocalBackup(ctx context.Context, backupName string,
757757
log.WithField("disk", disk.Name).Debug("shadow moved")
758758
if len(parts) > 0 && (b.isDiskTypeObject(disk.Type) || b.isDiskTypeEncryptedObject(disk, diskList)) {
759759
start := time.Now()
760+
log.WithField("disk", disk.Name).Info("upload object_disk start")
760761
if size, err = b.uploadObjectDiskParts(ctx, backupName, tablesDiffFromRemote[metadata.TableTitle{Database: table.Database, Table: table.Name}], backupShadowPath, disk); err != nil {
761762
return disksToPartsMap, realSize, err
762763
}
763764
realSize[disk.Name] += size
764-
log.WithField("disk", disk.Name).WithField("duration", utils.HumanizeDuration(time.Since(start))).WithField("size", utils.FormatBytes(uint64(size))).Info("object_disk data uploaded")
765+
log.WithField("disk", disk.Name).WithField("duration", utils.HumanizeDuration(time.Since(start))).WithField("size", utils.FormatBytes(uint64(size))).Info("upload object_disk finish")
765766
}
766767
// Clean all the files under the shadowPath, cause UNFREEZE unavailable
767768
if version < 21004000 {

pkg/backup/restore.go

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1239,9 +1239,14 @@ func (b *Backuper) restoreDataRegularByAttach(ctx context.Context, backupName st
12391239
return fmt.Errorf("can't copy data to storage '%s.%s': %v", table.Database, table.Table, err)
12401240
}
12411241
log.Debug("data to 'storage' copied")
1242-
if err := b.downloadObjectDiskParts(ctx, backupName, backupMetadata, table, diskMap, diskTypes, disks); err != nil {
1242+
log.Info("download object_disks start")
1243+
var size int64
1244+
var err error
1245+
start := time.Now()
1246+
if size, err = b.downloadObjectDiskParts(ctx, backupName, backupMetadata, table, diskMap, diskTypes, disks); err != nil {
12431247
return fmt.Errorf("can't restore object_disk server-side copy data parts '%s.%s': %v", table.Database, table.Table, err)
12441248
}
1249+
log.WithField("duration", utils.HumanizeDuration(time.Since(start))).WithField("size", utils.FormatBytes(uint64(size))).Info("download object_disks finish")
12451250
if err := b.ch.AttachTable(ctx, table, dstTable); err != nil {
12461251
return fmt.Errorf("can't attach table '%s.%s': %v", table.Database, table.Table, err)
12471252
}
@@ -1253,16 +1258,21 @@ func (b *Backuper) restoreDataRegularByParts(ctx context.Context, backupName str
12531258
return fmt.Errorf("can't copy data to detached '%s.%s': %v", table.Database, table.Table, err)
12541259
}
12551260
log.Debug("data to 'detached' copied")
1256-
if err := b.downloadObjectDiskParts(ctx, backupName, backupMetadata, table, diskMap, diskTypes, disks); err != nil {
1261+
log.Info("download object_disks start")
1262+
var size int64
1263+
var err error
1264+
start := time.Now()
1265+
if size, err = b.downloadObjectDiskParts(ctx, backupName, backupMetadata, table, diskMap, diskTypes, disks); err != nil {
12571266
return fmt.Errorf("can't restore object_disk server-side copy data parts '%s.%s': %v", table.Database, table.Table, err)
12581267
}
1268+
log.WithField("duration", utils.HumanizeDuration(time.Since(start))).WithField("size", utils.FormatBytes(uint64(size))).Info("download object_disks finish")
12591269
if err := b.ch.AttachDataParts(table, dstTable); err != nil {
12601270
return fmt.Errorf("can't attach data parts for table '%s.%s': %v", table.Database, table.Table, err)
12611271
}
12621272
return nil
12631273
}
12641274

1265-
func (b *Backuper) downloadObjectDiskParts(ctx context.Context, backupName string, backupMetadata metadata.BackupMetadata, backupTable metadata.TableMetadata, diskMap, diskTypes map[string]string, disks []clickhouse.Disk) error {
1275+
func (b *Backuper) downloadObjectDiskParts(ctx context.Context, backupName string, backupMetadata metadata.BackupMetadata, backupTable metadata.TableMetadata, diskMap, diskTypes map[string]string, disks []clickhouse.Disk) (int64, error) {
12661276
log := apexLog.WithFields(apexLog.Fields{
12671277
"operation": "downloadObjectDiskParts",
12681278
"table": fmt.Sprintf("%s.%s", backupTable.Database, backupTable.Table),
@@ -1276,7 +1286,7 @@ func (b *Backuper) downloadObjectDiskParts(ctx context.Context, backupName strin
12761286
for diskName, parts := range backupTable.Parts {
12771287
diskType, exists := diskTypes[diskName]
12781288
if !exists {
1279-
return fmt.Errorf("%s disk doesn't present in diskTypes: %v", diskName, diskTypes)
1289+
return 0, fmt.Errorf("%s disk doesn't present in diskTypes: %v", diskName, diskTypes)
12801290
}
12811291
isObjectDiskEncrypted := false
12821292
if diskType == "encrypted" {
@@ -1297,18 +1307,18 @@ func (b *Backuper) downloadObjectDiskParts(ctx context.Context, backupName strin
12971307
isObjectDisk := b.isDiskTypeObject(diskType)
12981308
if isObjectDisk || isObjectDiskEncrypted {
12991309
if err = config.ValidateObjectDiskConfig(b.cfg); err != nil {
1300-
return err
1310+
return 0, err
13011311
}
13021312
if _, exists := diskMap[diskName]; !exists {
13031313
for _, part := range parts {
13041314
if part.RebalancedDisk != "" {
13051315
if err = object_disk.InitCredentialsAndConnections(ctx, b.ch, b.cfg, part.RebalancedDisk); err != nil {
1306-
return err
1316+
return 0, err
13071317
}
13081318
}
13091319
}
13101320
} else if err = object_disk.InitCredentialsAndConnections(ctx, b.ch, b.cfg, diskName); err != nil {
1311-
return err
1321+
return 0, err
13121322
}
13131323
start := time.Now()
13141324
downloadObjectDiskPartsWorkingGroup, downloadCtx := errgroup.WithContext(ctx)
@@ -1326,7 +1336,7 @@ func (b *Backuper) downloadObjectDiskParts(ctx context.Context, backupName strin
13261336
var findRecursiveErr error
13271337
srcBackupName, srcDiskName, findRecursiveErr = b.findObjectDiskPartRecursive(ctx, backupMetadata, backupTable, part, diskName, log)
13281338
if findRecursiveErr != nil {
1329-
return findRecursiveErr
1339+
return 0, findRecursiveErr
13301340
}
13311341
}
13321342
walkErr := filepath.Walk(partPath, func(fPath string, fInfo fs.FileInfo, err error) error {
@@ -1385,17 +1395,17 @@ func (b *Backuper) downloadObjectDiskParts(ctx context.Context, backupName strin
13851395
return nil
13861396
})
13871397
if walkErr != nil {
1388-
return walkErr
1398+
return 0, walkErr
13891399
}
13901400
}
13911401
if wgWaitErr := downloadObjectDiskPartsWorkingGroup.Wait(); wgWaitErr != nil {
1392-
return fmt.Errorf("one of downloadObjectDiskParts go-routine return error: %v", wgWaitErr)
1402+
return 0, fmt.Errorf("one of downloadObjectDiskParts go-routine return error: %v", wgWaitErr)
13931403
}
13941404
log.WithField("disk", diskName).WithField("duration", utils.HumanizeDuration(time.Since(start))).WithField("size", utils.FormatBytes(uint64(size))).Info("object_disk data downloaded")
13951405
}
13961406
}
13971407

1398-
return nil
1408+
return size, nil
13991409
}
14001410

14011411
func (b *Backuper) findObjectDiskPartRecursive(ctx context.Context, backup metadata.BackupMetadata, table metadata.TableMetadata, part metadata.Part, diskName string, log *apexLog.Entry) (string, string, error) {

0 commit comments

Comments
 (0)