From f9d2736ae8f8b70550f11e260a8081bfbd880ecb Mon Sep 17 00:00:00 2001 From: Gaius Date: Thu, 21 Jul 2022 19:51:25 +0800 Subject: [PATCH] feat: scheduler merge end of piece and piece from seed peer (#1474) Signed-off-by: Gaius --- client/daemon/rpcserver/seeder.go | 2 +- scheduler/resource/seed_peer.go | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/client/daemon/rpcserver/seeder.go b/client/daemon/rpcserver/seeder.go index 1cd7fd9f7..3b01fc86c 100644 --- a/client/daemon/rpcserver/seeder.go +++ b/client/daemon/rpcserver/seeder.go @@ -249,7 +249,7 @@ func (s *seedSynchronizer) sendRemindingPieceSeeds(desired int32, reuse bool) er ps := s.compositePieceSeed(pp, p) if p.PieceNum == pp.TotalPiece-1 { ps.Done, ps.EndTime = true, uint64(time.Now().UnixNano()) - s.Infof("seed tasks start time: %d, end time: %d, cost: %dms", ps.BeginTime, ps.EndTime, (ps.EndTime-ps.BeginTime)/1000000) + s.Infof("seed tasks start time: %d, end time: %d, cost: %dms, piece number: %d", ps.BeginTime, ps.EndTime, (ps.EndTime-ps.BeginTime)/1000000, p.PieceNum) } err = s.seedsServer.Send(&ps) diff --git a/scheduler/resource/seed_peer.go b/scheduler/resource/seed_peer.go index 5809c56eb..7019fe7d9 100644 --- a/scheduler/resource/seed_peer.go +++ b/scheduler/resource/seed_peer.go @@ -118,20 +118,21 @@ func (s *seedPeer) TriggerTask(ctx context.Context, task *Task) (*Peer, *rpcsche continue } + // Handle piece download successfully. + peer.Log.Infof("receive piece from seed peer: %#v %#v", piece, piece.PieceInfo) + peer.Pieces.Set(uint(piece.PieceInfo.PieceNum)) + peer.AppendPieceCost(pkgtime.SubNano(int64(piece.EndTime), int64(piece.BeginTime)).Milliseconds()) + task.StorePiece(piece.PieceInfo) + // Handle end of piece. if piece.Done { - peer.Log.Infof("receive end of from seed peer: %#v %#v", piece, piece.PieceInfo) + peer.Log.Infof("receive done piece") return peer, &rpcscheduler.PeerResult{ TotalPieceCount: piece.TotalPieceCount, ContentLength: piece.ContentLength, }, nil } - // Handle piece download successfully. - peer.Log.Infof("receive piece from seed peer: %#v %#v", piece, piece.PieceInfo) - peer.Pieces.Set(uint(piece.PieceInfo.PieceNum)) - peer.AppendPieceCost(pkgtime.SubNano(int64(piece.EndTime), int64(piece.BeginTime)).Milliseconds()) - task.StorePiece(piece.PieceInfo) } }