From dffcded306036801e752d7c00489e944d5f79313 Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Fri, 12 Apr 2019 16:46:54 +0200 Subject: [PATCH] Enable parallel sync only for initial sync --- db/sync.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/db/sync.go b/db/sync.go index e755c027..e81cbb2c 100644 --- a/db/sync.go +++ b/db/sync.go @@ -63,11 +63,15 @@ func (w *SyncWorker) ResyncIndex(onNewBlock bchain.OnNewBlockFunc, initialSync b if err == nil { w.is.FinishedSync(bh) } - return nil + return err case errSynced: // this is not actually error but flag that resync wasn't necessary w.is.FinishedSyncNoChange() w.metrics.IndexDBSize.Set(float64(w.db.DatabaseSizeOnDisk())) + if initialSync { + d := time.Since(start) + glog.Info("resync: finished in ", d) + } return nil } @@ -113,7 +117,8 @@ func (w *SyncWorker) resyncIndex(onNewBlock bchain.OnNewBlockFunc, initialSync b } // if parallel operation is enabled and the number of blocks to be connected is large, // use parallel routine to load majority of blocks - if w.syncWorkers > 1 { + // use parallel sync only in case of initial sync because it puts the db to inconsistent state + if w.syncWorkers > 1 && initialSync { remoteBestHeight, err := w.chain.GetBestBlockHeight() if err != nil { return err