test: add benchmark test suite for blobstore async client#398
test: add benchmark test suite for blobstore async client#398roseyang62 wants to merge 4 commits intosalesforce:mainfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #398 +/- ##
=========================================
Coverage 82.07% 82.07%
Complexity 641 641
=========================================
Files 194 194
Lines 11848 11848
Branches 1578 1578
=========================================
Hits 9724 9724
Misses 1447 1447
Partials 677 677
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
| * | ||
| * <p>Runs in {@link Mode#SampleTime}, {@link Mode#SingleShotTime} and {@link Mode#Throughput}. | ||
| * | ||
| * <p>Corpus: 100 x 1KB, 50 x 1MB, 10 x 10MB — kept under AWS/GCS rate limits. |
There was a problem hiding this comment.
What do 100 × 1 KB, 50 × 1 MB, and 10 × 10 MB represent?
There was a problem hiding this comment.
Oh I got it. It's the Corpus size.
| @Warmup(iterations = 1, time = 60, timeUnit = TimeUnit.SECONDS) | ||
| @Measurement(iterations = 5, time = 60, timeUnit = TimeUnit.SECONDS) | ||
| @Fork(1) | ||
| @Threads(1) |
There was a problem hiding this comment.
just single thread?
There was a problem hiding this comment.
Single threaded test measures the SDK‘s internal async concurrency - how fast it can upload N files in parallel within a single operation.
Should we test with multiple threads?
There was a problem hiding this comment.
Also one quick question on intent. what's the main thing we want this benchmark to answer?
There was a problem hiding this comment.
yes, ideally we need the tests with real world scenarios, less likely there will be a client using parallel operations with single thread, it doesn't make much sense. We should test the parallel operations with multiple threads maybe like 4?
We can definitely the single thread as well just I believe multi-thread is the more realistic.
| uploadPrefix = null; | ||
| } | ||
| if (downloadDest != null) { | ||
| deleteLocalRecursive(downloadDest); |
There was a problem hiding this comment.
i think should cleanup before executing as well.
Summary
< Provide a brief description of the changes in this PR >
Some conventions to follow
docstore:for document store module,blobstorefor Blob Store moduletest:perf: