Skip to content

feat(stresstest): Add multipart capability#470

Open
lcian wants to merge 2 commits into
lcian/feat/multipart-upload-rust-clientfrom
lcian/feat/stresstest-multipart
Open

feat(stresstest): Add multipart capability#470
lcian wants to merge 2 commits into
lcian/feat/multipart-upload-rust-clientfrom
lcian/feat/stresstest-multipart

Conversation

@lcian
Copy link
Copy Markdown
Member

@lcian lcian commented May 11, 2026

⚠️ Stacked on #468

Adds an optional multipart config block for stresstest workloads that exercises the new multipart uploads feature.
When enabled, writes for objects >1 KiB use multipart uploads with the configured part size and concurrency.

This can be used in both weighted and throughput mode, but not in batch mode, as that wouldn't make any sense.

Also adds a README.md that documents the meaning of all stresstest options and when they can/should be used.

Part of FS-343

@lcian lcian changed the base branch from main to lcian/feat/multipart-upload-rust-client May 11, 2026 13:48
@lcian lcian changed the title feat: Multipart upload support feat(stresstest): Add multipart configuration May 11, 2026
@lcian lcian marked this pull request as ready for review May 11, 2026 13:56
@lcian lcian requested a review from a team as a code owner May 11, 2026 13:56
@linear-code
Copy link
Copy Markdown

linear-code Bot commented May 11, 2026

FS-343

@lcian lcian changed the title feat(stresstest): Add multipart configuration feat(stresstest): Add multipart capability May 11, 2026
@lcian lcian requested a review from matt-codecov May 15, 2026 16:38
@lcian lcian force-pushed the lcian/feat/multipart-upload-rust-client branch from 93557e1 to 84181ed Compare May 15, 2026 17:01
lcian added 2 commits May 15, 2026 19:07
Add a `multipart` config for stresstest workloads that uses the
multipart upload API for objects larger than 1 KiB. Part uploads
run concurrently via buffer_unordered, with chunks read lazily
from the payload to bound memory usage.

Includes validation (part_size >= 5 MiB, not compatible with
batch mode) and a README documenting all configuration options.
@lcian lcian force-pushed the lcian/feat/stresstest-multipart branch from 81ad296 to cbfc66d Compare May 15, 2026 17:07
@codecov
Copy link
Copy Markdown

codecov Bot commented May 15, 2026

Codecov Report

❌ Patch coverage is 10.11236% with 80 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.44%. Comparing base (84181ed) to head (cbfc66d).

Files with missing lines Patch % Lines
stresstest/src/http.rs 0.00% 44 Missing ⚠️
stresstest/src/config.rs 0.00% 28 Missing ⚠️
stresstest/src/workload.rs 42.85% 4 Missing ⚠️
stresstest/src/main.rs 0.00% 3 Missing ⚠️
stresstest/src/stresstest.rs 85.71% 1 Missing ⚠️
Additional details and impacted files
@@                             Coverage Diff                             @@
##           lcian/feat/multipart-upload-rust-client     #470      +/-   ##
===========================================================================
- Coverage                                    86.94%   86.44%   -0.50%     
===========================================================================
  Files                                           80       80              
  Lines                                        12303    12383      +80     
===========================================================================
+ Hits                                         10697    10705       +8     
- Misses                                        1606     1678      +72     
Components Coverage Δ
Rust Backend 91.74% <ø> (ø)
Rust Client 79.79% <ø> (ø)
Python Client 86.36% <ø> (ø)

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant