Performance Framework Investigation - #32020
Conversation
|
API change check APIView has identified API level changes in this PR and created following API reviews. |
99b0b17 to
ab7a11b
Compare
| .flatMap(iteration -> blobContainerAsyncClient.getBlobAsyncClient("getblobstest-" + UUID.randomUUID()) | ||
| .upload(Flux.empty(), null), false, Math.min(options.getParallel(), 1000 / options.getParallel()), 1) | ||
| .getBlockBlobAsyncClient() | ||
| .upload(Flux.empty(), 0L), false, Math.min(1000 / parallel, parallel), 1) |
There was a problem hiding this comment.
Is this instance of Math.min(1000 / parallel, parallel) still needed?
There was a problem hiding this comment.
No, the Math.min isn't necessary, this can use false, parallel, 1 instead.
| .upload(Flux.empty(), null), false, Math.min(options.getParallel(), 1000 / options.getParallel()), 1) | ||
| .getBlockBlobAsyncClient() | ||
| .upload(Flux.empty(), 0L), false, Math.min(1000 / parallel, parallel), 1) | ||
| .sequential() |
There was a problem hiding this comment.
What is the purpose of sequential()?
There was a problem hiding this comment.
All examples of ParallelFlux used in Reactor's samples used sequential so I thought it'd be good to follow the patterns they use.
| public Mono<Void> globalSetupAsync() { | ||
| return super.globalSetupAsync() | ||
| .then(blobAsyncClient.upload(createRandomByteBufferFlux(options.getSize()), null)) | ||
| .then(blobAsyncClient.upload(createRandomByteBufferFlux(options.getSize()), new ParallelTransferOptions() |
There was a problem hiding this comment.
Can you add a comment explaining why we are overriding the default upload size and block size? Is 1GB the max, or could we set it even higher (in case we want to start testing blobs > 1GB)?
There was a problem hiding this comment.
Left a comment explaining this
Flux.intervalwithTimerto manage printing performance stats while running tests.Flux.intervalran on the same thread pool as the performance tests, usingTimercreates a new thread to manage that. This should be a large impact but just keeps the test resources a bit cleaner.ParallelFlux.flatMapas they didn't do anything as the number of operations in-flight at any time would always beparallel.Schedulers.parallelas that is Reactor's recommendation for handling parallelization.