Batch upsert using reactive programming

Hi @aqua123
Doing processing inside doOnError looks a bit suspicious - with reactive you generally want to make sure everything’s part of the reactive chain.
For the slowness, I’d suggest adding some debugging statements to check if operations are actually being done in parallel. 1,000 operations should take no time at all. Or use .parallel(1000).runOn(Schedulers.boundedElastic()).concatMap(t -> ... to make absolutely certain it’s running in parallel (though .flatMap should do 128 operations in parallel, by default).
Failing that, you could take a look at the personal generic checklist I use when looking at performance issues: Couchbase performance issue - slowness - #4 by graham.pople

1 Like