Quotas & Limits: Scale & Concurrency

How BYOVault bounds concurrency at every layer of the pipeline: how many drives or mailbox folders back up at once, how many files or messages transfer within one of those, and how many chunks the file server agent uploads in parallel.

Backup workflow: drive and folder fan-out

For SharePoint, OneDrive, and Exchange, each drive or mailbox folder backs up independently, with its own retry budget. A single tenant backup processes a bounded number of drives or folders concurrently, then starts the next one only once a slot frees up.

This fan-out level is deliberately conservative. It exists for two reasons:

  • It bounds Microsoft Graph throttling risk.
  • It keeps one large tenant’s backup from starving other tenants’ work on shared backup capacity.

Large tenants—those with more drives or folders than fit in a single backup run—are processed in batches, so no single job grows unbounded. This is a safety net for very large tenants, not a practical scale ceiling; realistic tenants rarely approach it.

In-job concurrency: files and messages

Within a single drive’s or folder’s backup, items are pulled in batches and transferred with their own bounded concurrency, independent of the drive/folder-level fan-out above. SharePoint and OneDrive file transfers and Exchange message transfers are each tuned to their own concurrency level appropriate to that workload.

These are separate concurrency limits from the drive/folder fan-out above. A single tenant backup can therefore have several drives or folders in flight at once, each independently transferring a bounded number of files or messages concurrently within its own current batch.

File server agent: upload concurrency

The file server agent’s upload concurrency is adaptive, not fixed. It watches its own recent upload outcomes and adjusts automatically based on network conditions, backing off when the link looks congested and recovering as conditions improve.

The full behavior, including how it decides to speed up or slow down, is documented separately in Agent: Bandwidth & Concurrency.

Large files are uploaded in chunks, with a bounded number of chunks in flight per file on top of the agent’s overall upload concurrency, so a single large file cannot monopolize the agent’s available bandwidth.

One controller runs per backup job, not per configured share, so a concurrency level the agent has already learned carries forward from one share to the next within the same job.

Storage client connection pools

BYOVault’s backup service maintains a bounded pool of connections to your storage account, sized to support concurrent lookups during a restore-browse listing so that browsing stays fast even for prefixes with many objects.

Current behavior, not a guarantee
The concurrency levels described on this page reflect current behavior, not a contractual ceiling. They are tuned as real tenant sizes and network conditions are observed, and are subject to change without independent notice on this page.