Build #2,071

Build: #2071 was successful Changes by Simon Basle

Build result summary

Details

Completed
Duration
4 minutes
Labels
None
Agent
bamboo-00.af.pivotal.io
Revisions
reactor-core
98be36fe1415b99eba9887c77ec43aa22b1fd53f 98be36fe1415b99eba9887c77ec43aa22b1fd53f
reactor-test
e222226ad1f05ae5227d5cb41e55d81057de8aba e222226ad1f05ae5227d5cb41e55d81057de8aba
Total tests
4169
Successful since
#2064 ()

Code commits

reactor-core
Author Commit Message Commit date
Simon Basle Simon Basle 98be36fe1415b99eba9887c77ec43aa22b1fd53f 98be36fe1415b99eba9887c77ec43aa22b1fd53f fix #879 Add limitRequest operator + limitRate lowTide (#894)
`limitRate` is good at splitting large batches (like flatMap prefetches) into
smaller batches of request. However, it still is ultimately pass-through in the
total amount requested, and that can be wasteful for sources of data that is
costly to create/emit.

This commit introduces `limitRequest`, a slightly different backpressure control
operator that caps the total requested amount to a hard ceiling N.

If smaller requests come in from downstream, they will be passed as is until the
total requested amount reaches N, at which point no more request will be sent to
the upstream (which will also be cancelled).

In addition, a variant of `limitRate` is also introduced, which takes a lowTide
parameter setting the amount requested by replenishing prefetch optimization.

These two operators work well in tandem when one wants to ensure no more data
than absolutely necessary is generated in the source, but that prefetching
requests are still made (to avoid waiting for the emitted data to be fully
processed before requesting more).

`limitRequest` also serves as a `take(n)` alternative that is stricter with
request handling rather than relying on a fast cancel.
reactor-test
Author Commit Message Commit date
Simon Basle Simon Basle e222226ad1f05ae5227d5cb41e55d81057de8aba e222226ad1f05ae5227d5cb41e55d81057de8aba fix #82 Remove reference doc folders
The reference documentation was reinitialized in core's repository as
per reactor/reactor-core#899