-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for chaining State Partition -> Stateless Partition #1670
Conversation
fd4c3c5
to
f824796
Compare
Status as of commit
Note1: the error prints out the entire received set, while the validator is testing the final value in each partition. |
1271986
to
0ffb6cf
Compare
Status as of
|
The intermittent validation failures are a result of the particular stateful computation: For example: In order words, this test failure is a bug in the test design, and not in Wallaroo. |
This should pass all tests now. |
@SeanTAllen This is passing tests now. Since this now combines work from both @nisanharamati and me, I've assigned you as a reviewer. |
Does this need to be squashed? |
@SeanTAllen My commits are logical commits with explanations. Not sure about all of @nisanharamati 's |
State steps don't know ahead of time where their messages will be routed. As a result, they currently use the OmniRouter, which can take a target step id sent with a state computation and find the target step for the state computation output in the cluster. However, formerly the OmniRouter did not know how to route messages to steps in a stateless partition. This fixes that problem, making it possible to chain a stateless partition immediately after a state partition.
Formerly we were only creating a StatelessPartitionRouter on the first worker in a pipeline that would be routing messages to a stateless partition. This does not work, however, if there is a state partition immediately before the stateless partition. That's because state steps for that state partition exist on all workers and need to be able to route outputs via the appropriate StatelessPartitionRouter. This fixes that issue.
A prestate step should always terminate with a StatePartitionRouter. As a result, nothing should ever be coalesced back onto the end of such a step. But a bug in the code had us allowing this in the case that a parallel stateless computation preceded the prestate step (by adding the corresponding runner builder to the wrong array). This commit fixes the problem.
Fix msg duplication in exception traceback log in integration tools Add the following topology layout tests: - Parallel Stateless - Parallel Stateless -> Parallel Stateless - Parallel Stateless -> Stateless - Parallel Stateless -> Stateless -> Parallel Stateless - Stateless -> Parallel Stateless - Stateless -> Parallel Stateless -> Stateless - Parallel Stateless -> Stateful - Parallel Stateless -> Stateful -> Parallel Stateless - Stateful -> Parallel Stateless - Stateful -> Parallel Stateless -> Stateful - Parallel Stateless -> State Partition - Parallel Stateless -> State Partition -> Parallel Stateless - State Partition -> Parallel Stateless - State Partition -> Parallel Stateless -> State Partition Add additional functionality to generic_app_components Add unit tests for generic_app_components closes #1110
e74d770
to
e04cdaa
Compare
This PR builds on Nisan's PR #1662. It solves the problem he identified for this topology layout.
Closes #1663
Closes #1110