Skip to content

Change default parallelism of Storage SDK#7008

Open
Jinming-Hu wants to merge 1 commit into
Azure:mainfrom
Jinming-Hu:transfer_default_vals
Open

Change default parallelism of Storage SDK#7008
Jinming-Hu wants to merge 1 commit into
Azure:mainfrom
Jinming-Hu:transfer_default_vals

Conversation

@Jinming-Hu

@Jinming-Hu Jinming-Hu commented Mar 17, 2026

Copy link
Copy Markdown
Member

closes #7007

Pull Request Checklist

Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:

See the detailed list in the contributing guide.

  • C++ Guidelines
  • Doxygen docs
  • Unit tests
  • No unwanted commits/changes
  • Descriptive title/description
    • PR is single purpose
    • Related issue listed
  • Comments in source
  • No typos
  • Update changelog
  • Not work-in-progress
  • External references or docs updated
  • Self review of PR done
  • Any breaking changes?

Copilot AI review requested due to automatic review settings March 17, 2026 04:28
@github-actions github-actions Bot added the Storage Storage Service (Queues, Blobs, Files) label Mar 17, 2026
@Jinming-Hu

Copy link
Copy Markdown
Member Author

/azp run cpp - storage

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Azure Storage C++ transfer defaults to better match modern hardware by basing parallelism on CPU count and increasing default chunk/block sizes, aligning with #7007.

Changes:

  • Increase default download chunk size to 16 MiB (Blobs, Files Shares; DataLake via Blob option aliasing).
  • Change default transfer parallelism to be CPU-based (upload: CPU count; download: CPU/2 with a minimum of 1).
  • Add _internal::GetHardwareConcurrency() helper in azure-storage-common and wire it into option defaults.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
sdk/storage/azure-storage-files-shares/inc/azure/storage/files/shares/share_options.hpp Update download chunk size default and compute CPU-based concurrency defaults.
sdk/storage/azure-storage-files-datalake/inc/azure/storage/files/datalake/datalake_options.hpp Update upload concurrency default to use CPU count via shared helper.
sdk/storage/azure-storage-common/src/concurrent_transfer.cpp Add cached hardware concurrency helper implementation.
sdk/storage/azure-storage-common/inc/azure/storage/common/internal/concurrent_transfer.hpp Declare hardware concurrency helper (used by option defaults).
sdk/storage/azure-storage-common/CMakeLists.txt Add new source file to the common library build.
sdk/storage/azure-storage-blobs/src/block_blob_client.cpp Increase default minimum stage block size to 16 MiB for uploads.
sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/blob_options.hpp Update download chunk size default and compute CPU-based concurrency defaults.

Comment thread sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/blob_options.hpp Outdated
Comment thread sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/blob_options.hpp Outdated
@Jinming-Hu Jinming-Hu marked this pull request as draft March 20, 2026 05:53
@Jinming-Hu

Copy link
Copy Markdown
Member Author

still under discussion.

Comment thread sdk/storage/azure-storage-common/src/concurrent_transfer.cpp Outdated
Comment thread sdk/storage/azure-storage-common/src/concurrent_transfer.cpp
Comment thread sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/blob_options.hpp Outdated
Comment thread sdk/storage/azure-storage-blobs/inc/azure/storage/blobs/blob_options.hpp Outdated
@Jinming-Hu

Copy link
Copy Markdown
Member Author

wait until after STG 102 GA release

@Jinming-Hu Jinming-Hu changed the title Change default parallelism and chunk size Change default parallelism of Storage SDK Jun 2, 2026
@Jinming-Hu Jinming-Hu marked this pull request as ready for review June 10, 2026 09:42
@Jinming-Hu Jinming-Hu force-pushed the transfer_default_vals branch from 8e7ab3e to d976a1f Compare June 10, 2026 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Storage Storage Service (Queues, Blobs, Files)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Change default parallelism and chunk size

3 participants