Bug: file download time and throughput is not accurate

Open
#71 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
go
Domain
cli

Research direction

No files, tests, or entry points are named. Start by tracing multifile download timing, chunk blocking, download_elapsed, and throughput aggregation; done means per-file timing and throughput exclude connection-blocking time, with one of the proposed approaches selected and validated.

Written by the indexing model from the issue text.

Description

bug

With the recent changes download timings are no longer accurate for time spent downloading an individual file in multifile mode.

This is related to some chunks blocking on connections so download_elapsed is effectively total_elapsed in all cases.

  • Pget should have a way of communicating time spent for a chunk and aggregating it for a given file rather than download_elapsed including blocking time. This also breaks the throughput calculation.

  • An alternative is to explore downloading one file at a time and allocating connections to meet the target chunk size before moving on to the next file.

If we go with communicating the download time up the stack, this feels like a legitimate use for values in the context (pointer to per-chunk data) instead of trying to pass data back up the whole stack.

Dominant language
Go
Stars
151
Forks
7
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from replicate/pget

All issues in replicate/pget

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.