From 911efebd6329f34f253b7aa1f73463d3a4c64fef Mon Sep 17 00:00:00 2001 From: Jim Ma Date: Tue, 25 Jun 2024 16:59:19 +0800 Subject: [PATCH] chore: optimize calculate digest (#3343) Signed-off-by: Jim Ma --- client/config/peerhost_darwin.go | 2 +- client/config/peerhost_linux.go | 2 +- client/daemon/peer/peertask_conductor.go | 24 ++++-------------------- 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/client/config/peerhost_darwin.go b/client/config/peerhost_darwin.go index 4b1860df7..dcf2aae27 100644 --- a/client/config/peerhost_darwin.go +++ b/client/config/peerhost_darwin.go @@ -55,7 +55,7 @@ var peerHostConfig = func() *DaemonOption { IDC: "", }, Download: DownloadOption{ - CalculateDigest: false, + CalculateDigest: true, PieceDownloadTimeout: 30 * time.Second, GRPCDialTimeout: 10 * time.Second, WatchdogTimeout: 30 * time.Second, diff --git a/client/config/peerhost_linux.go b/client/config/peerhost_linux.go index e4f7256e6..7c4e5237c 100644 --- a/client/config/peerhost_linux.go +++ b/client/config/peerhost_linux.go @@ -55,7 +55,7 @@ var peerHostConfig = func() *DaemonOption { IDC: "", }, Download: DownloadOption{ - CalculateDigest: false, + CalculateDigest: true, PieceDownloadTimeout: 30 * time.Second, GRPCDialTimeout: 10 * time.Second, WatchdogTimeout: 30 * time.Second, diff --git a/client/daemon/peer/peertask_conductor.go b/client/daemon/peer/peertask_conductor.go index e0f253cef..2804f1887 100644 --- a/client/daemon/peer/peertask_conductor.go +++ b/client/daemon/peer/peertask_conductor.go @@ -1395,7 +1395,7 @@ func (pt *peerTaskConductor) done() { // update storage metadata if err := pt.UpdateStorage(); err == nil { // validate digest - if err = pt.Validate(); err == nil { + if err = pt.tryStore(); err == nil { close(pt.successCh) pt.span.SetAttributes(config.AttributePeerTaskSuccess.Bool(true)) } else { @@ -1408,7 +1408,7 @@ func (pt *peerTaskConductor) done() { pt.span.SetAttributes(config.AttributePeerTaskSuccess.Bool(false)) pt.span.SetAttributes(config.AttributePeerTaskCode.Int(int(pt.failedCode))) pt.span.SetAttributes(config.AttributePeerTaskMessage.String(pt.failedReason)) - pt.Errorf("validate digest failed: %s", err) + pt.Errorf("store failed: %s", err) metrics.PeerTaskFailedCount.WithLabelValues(metrics.FailTypeP2P).Add(1) } } else { @@ -1580,8 +1580,7 @@ func (pt *peerTaskConductor) fail() { } } -// Validate stores metadata and validates digest -func (pt *peerTaskConductor) Validate() error { +func (pt *peerTaskConductor) tryStore() error { err := pt.GetStorage().Store(pt.ctx, &storage.StoreRequest{ CommonTaskRequest: storage.CommonTaskRequest{ @@ -1595,22 +1594,7 @@ func (pt *peerTaskConductor) Validate() error { pt.Errorf("store metadata error: %s", err) return err } - - if !pt.CalculateDigest { - return nil - } - err = pt.GetStorage().ValidateDigest( - &storage.PeerTaskMetadata{ - PeerID: pt.GetPeerID(), - TaskID: pt.GetTaskID(), - }) - if err != nil { - pt.Errorf("validate digest error: %s", err) - return err - } - pt.Debugf("validate digest ok") - - return err + return nil } func (pt *peerTaskConductor) PublishPieceInfo(pieceNum int32, size uint32) {