perf(cu): use cached readState on dryRun if within allowed max age #984 #1009
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #984
This also adds an optimization downstream from chaining evaluation streams: if there is overlap between chained eval streams, which can happen if many messages are sent a process and requested from the CU close together (the result calls may arrive out of order to the CU), then the CU will more likely serve that overlap from the evaluation cache rather than spin up another evaluation stream. This should help reduce resource contention for messages that have already been evaluated.
The majority of the diff in
dryRun
is just rejigging the Async chain to be more declarative. There is a bit more going on in the steps and it's more kosher to use a declarative style, so that the intent is not lost in the implementation details.