From 80f7c418e68b3a08d10924f99fe79d23a804e8ec Mon Sep 17 00:00:00 2001 From: Lonng Date: Wed, 27 Mar 2019 16:33:47 +0800 Subject: [PATCH] restore: add local checksum log (#153) * restore: add local checksum log * Update lightning/restore/restore.go Co-Authored-By: lonng --- lightning/restore/restore.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lightning/restore/restore.go b/lightning/restore/restore.go index 2d5e2695d..8c8b17051 100644 --- a/lightning/restore/restore.go +++ b/lightning/restore/restore.go @@ -824,12 +824,20 @@ func (t *TableRestore) postProcess(ctx context.Context, rc *RestoreController, c } // 4. do table checksum + var localChecksum verify.KVChecksum + for _, engine := range cp.Engines { + for _, chunk := range engine.Chunks { + localChecksum.Add(&chunk.Checksum) + } + } + common.AppLogger.Infof("[%s] local checksum [sum:%d, kvs:%d, size:%v]", + t.tableName, localChecksum.Sum(), localChecksum.SumKVS(), localChecksum.SumSize()) if cp.Status < CheckpointStatusChecksummed { if !rc.cfg.PostRestore.Checksum { common.AppLogger.Infof("[%s] Skip checksum.", t.tableName) rc.saveStatusCheckpoint(t.tableName, wholeTableEngineID, nil, CheckpointStatusChecksumSkipped) } else { - err := t.compareChecksum(ctx, rc.tidbMgr.db, cp) + err := t.compareChecksum(ctx, rc.tidbMgr.db, localChecksum) rc.saveStatusCheckpoint(t.tableName, wholeTableEngineID, err, CheckpointStatusChecksummed) if err != nil { common.AppLogger.Errorf("[%s] checksum failed: %v", t.tableName, err.Error()) @@ -1198,14 +1206,7 @@ func (tr *TableRestore) importKV(ctx context.Context, closedEngine *kv.ClosedEng } // do checksum for each table. -func (tr *TableRestore) compareChecksum(ctx context.Context, db *sql.DB, cp *TableCheckpoint) error { - var localChecksum verify.KVChecksum - for _, engine := range cp.Engines { - for _, chunk := range engine.Chunks { - localChecksum.Add(&chunk.Checksum) - } - } - +func (tr *TableRestore) compareChecksum(ctx context.Context, db *sql.DB, localChecksum verify.KVChecksum) error { start := time.Now() remoteChecksum, err := DoChecksum(ctx, db, tr.tableName) dur := time.Since(start)