[GH-ISSUE #104] Latency potentially killing download speed. #56

Closed
opened 2026-02-17 17:11:58 -05:00 by yindo · 6 comments
Owner

Originally created by @DecDuck on GitHub (Aug 3, 2025).
Original GitHub issue: https://github.com/Drop-OSS/drop-app/issues/104

Needs investigation

Originally created by @DecDuck on GitHub (Aug 3, 2025). Original GitHub issue: https://github.com/Drop-OSS/drop-app/issues/104 Needs investigation
yindo closed this issue 2026-02-17 17:11:58 -05:00
Author
Owner

@quexeky commented on GitHub (Aug 3, 2025):

Very likely happening because the

    let response = request
        .header("Authorization", generate_authorization_header())
        .send()
        .map_err(|e| ApplicationDownloadError::Communication(e.into()))?;

function is only called after the chunk is actually started, and so every chunk stacks latency.

@quexeky commented on GitHub (Aug 3, 2025): Very likely happening because the ``` let response = request .header("Authorization", generate_authorization_header()) .send() .map_err(|e| ApplicationDownloadError::Communication(e.into()))?; ``` function is only called after the chunk is actually started, and so every chunk stacks latency.
Author
Owner
@quexeky commented on GitHub (Aug 3, 2025): (From https://github.com/Drop-OSS/drop-app/blob/develop/src-tauri/src/games/downloads/download_logic.rs )
Author
Owner

@DecDuck commented on GitHub (Aug 3, 2025):

Partially converting this download_logic to async may solve this issue. Async should allow the requests to fire, and then be scheduled off the worker threads until they're ready to receive data.

The main issue about off-scheduling is the headers expiring before we actually get a chance to download.

@DecDuck commented on GitHub (Aug 3, 2025): Partially converting this download_logic to async may solve this issue. Async should allow the requests to fire, and then be scheduled off the worker threads until they're ready to receive data. The main issue about off-scheduling is the headers expiring before we actually get a chance to download.
Author
Owner

@quexeky commented on GitHub (Aug 4, 2025):

I mean, we could just retrigger it if it gets to that point - if we find a way to call them only a few chunks ahead, it could work out because then we only need to recall it on larger chunks, which are fine anyway

@quexeky commented on GitHub (Aug 4, 2025): I mean, we could just retrigger it if it gets to that point - if we find a way to call them only a few chunks ahead, it could work out because then we only need to recall it on larger chunks, which are fine anyway
Author
Owner

@DecDuck commented on GitHub (Aug 4, 2025):

We have two options actually:

  • we implement some sort of "download token" that's long lived
  • the authorisation headers can actually be reused, so we can have some sort of read many write one memory object that sorts the header, and we refresh it every 10 or so seconds, to give us plenty of room to refresh
@DecDuck commented on GitHub (Aug 4, 2025): We have two options actually: - we implement some sort of "download token" that's long lived - the authorisation headers can actually be reused, so we can have some sort of read many write one memory object that sorts the header, and we refresh it every 10 or so seconds, to give us plenty of room to refresh
Author
Owner

@DecDuck commented on GitHub (Aug 6, 2025):

Or, when we get around to it, implementing file concatenation on the server would also solve this.

@DecDuck commented on GitHub (Aug 6, 2025): Or, when we get around to it, implementing file concatenation on the server would also solve this.
yindo changed title from Latency potentially killing download speed. to [GH-ISSUE #104] Latency potentially killing download speed. 2026-06-05 14:24:33 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Drop-OSS/drop-app#56