-
Notifications
You must be signed in to change notification settings - Fork 28.9k
[SPARK-20165][SS] Resolve state encoder's deserializer in driver in FlatMapGroupsWithStateExec #17488
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
| encoderSerializer | ||
| } | ||
| } | ||
| private val stateDeserializer = stateEncoder.resolveAndBind().deserializer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you comment that this has to happen on the driver so we don't forget why its here and move it?
| try { | ||
| // Add data and get the source where it was added, and the expected offset of the | ||
| // added data. | ||
| if (currentStream != null && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you comment here too. I had no idea what this was doing until read the PR description.
|
Test build #75408 has finished for PR 17488 at commit
|
|
Test build #75410 has finished for PR 17488 at commit
|
|
Test build #3623 has finished for PR 17488 at commit
|
|
Test build #3622 has finished for PR 17488 at commit
|
|
Test build #3624 has finished for PR 17488 at commit
|
|
Test build #75412 has finished for PR 17488 at commit
|
|
Test build #3626 has finished for PR 17488 at commit
|
|
Test build #3625 has finished for PR 17488 at commit
|
|
The only failure was in completely unrelated HiveMetadataCatalogSuite |
|
Test build #3627 has finished for PR 17488 at commit
|
|
Test build #3629 has finished for PR 17488 at commit
|
|
Test build #3628 has finished for PR 17488 at commit
|
What changes were proposed in this pull request?
Encoder's deserializer must be resolved at the driver where the class is defined. Otherwise there are corner cases using nested classes where resolving at the executor can fail.
Fixed flaky test related to processing time timeout. The flakiness is caused because the test thread (that adds data to memory source) has a race condition with the streaming query thread. When testing the manual clock, the goal is to add data and increment clock together atomically, such that a trigger sees new data AND updated clock simultaneously (both or none). This fix adds additional synchronization in when adding data; it makes sure that the streaming query thread is waiting on the manual clock to be incremented (so no batch is currently running) before adding data.
Added
testQuietlyon some tests that generate a lot of error logs.How was this patch tested?
Multiple runs on existing unit tests