Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[storage][azblob]DownloadFile: Download large files serially #21259

Merged
merged 19 commits into from
Aug 17, 2023

Conversation

nakulkar-msft
Copy link
Contributor

  • The purpose of this PR is explained in this or a referenced issue.
  • The PR does not update generated files.
  • Tests are included and/or updated for code changes.
  • Updates to CHANGELOG.md are included.
  • MIT license headers are included in each file.

============================================================
The existing DownloadFile method writes blocks of a large blob to the file in random order, which is not performant. This change will make DownloadFile method to write serially instead. The blocks are still downloaded parallelly.
This does not change public interface of the API. Also, this change does not impact performance of small blobs (Or blobs which fit in single chunk).

Below table makes a note of time taken to transfer a 10GiB file with existing and proposed change.

Concurrency    Current	        Proposed
Default = 5     3m22.915s	1m8.111s
8               2m22.286s       47.138s
16	        2m19.675s	47.377s

@nakulkar-msft nakulkar-msft force-pushed the nakulkar/private/downloadSerial1 branch from 66e333c to ca217e6 Compare July 26, 2023 09:07
@nakulkar-msft
Copy link
Contributor Author

/azp run go - azblob

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@nakulkar-msft
Copy link
Contributor Author

/azp run go - azblob

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@nakulkar-msft
Copy link
Contributor Author

/azp run go - azblob

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AzBlob Storage Storage Service (Queues, Blobs, Files)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants