RedisCache: port to MessageId invariants #1516
Merged
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.
This one was a bit tricky since the transform sends requests down a redis chain and waits for the responses before sending anything to cassandra.
So in order to fit the the new invariants we need to seperately keep track of what responses we are waiting for from both redis and cassandra.
However in the end it didnt add too much more complexity.
Once shotover reaches the point where it can send without waiting for responses, this transform will benefit from it greatly since it can respond to any cached requests immediately even if there are uncached requests in the same batch, before this PR that was impossible.
Additionally this is the final transform that required porting, so I've now removed the
Deprecated invariants
from the transform invariants documentation.We can now proceed with making use of the lack of those invariants to improve shotover throughput.