-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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 changing JobConfig of a suspended job [HZ-1650] #23862
Add support for changing JobConfig of a suspended job [HZ-1650] #23862
Conversation
- no getters - instead of copying javadoc reference to JobConfig - non-null values, the fact that we use nulls for non-set options is internal - don't make assumptions about long value in serialization
# Conflicts: # hazelcast/src/test/resources/2.6.protocol.compatibility.binary # hazelcast/src/test/resources/2.6.protocol.compatibility.null.binary
we should add tests in EE that ensure that config can be changed in |
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.
need to restore check in PlanExecutor.execute(CreateJobPlan plan, List<Object> arguments)
- for non streaming jobs (maybe with comment?) and it will be ok
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 overall from the client's PoV, I have some minor comments here as well as in the protocol PR
...src/main/java/com/hazelcast/jet/impl/client/protocol/task/JetUpdateJobConfigMessageTask.java
Outdated
Show resolved
Hide resolved
...src/main/java/com/hazelcast/jet/impl/client/protocol/task/JetUpdateJobConfigMessageTask.java
Show resolved
Hide resolved
The test relied that INSERT doesn't insert any rows, if it fails with `AccumulationLimitExceededException`. But it might have inserted some rows, and if it manages to insert them, the query will fail with "Duplicate key" after restart. The new test uses a window aggregation with three keys. This fails if max accumulated records is 2, before emitting anything from the aggregation, so the INSERT doesn't fail.
The test relied on window aggregation, but window aggregation didn't support the max accumulation limit. It actually failed due to the insert failing, which was non-deterministic for the same reason as the previous fix. This PR replaces INSERT with SINK, uses more keys (because they are spread across multiple processors), and also adds the accumulation check to the SlidingWindowP.
# Conflicts: # hazelcast/src/main/java/com/hazelcast/jet/impl/ClientJobProxy.java # hazelcast/src/main/java/com/hazelcast/jet/impl/client/protocol/task/JetMessageTaskFactoryProvider.java # hazelcast/src/test/java/com/hazelcast/client/protocol/compatibility/ClientCompatibilityNullTest_2_6.java # hazelcast/src/test/java/com/hazelcast/client/protocol/compatibility/ClientCompatibilityTest_2_6.java # hazelcast/src/test/java/com/hazelcast/client/protocol/compatibility/MemberCompatibilityNullTest_2_6.java # hazelcast/src/test/java/com/hazelcast/client/protocol/compatibility/MemberCompatibilityTest_2_6.java # hazelcast/src/test/resources/2.6.protocol.compatibility.binary # hazelcast/src/test/resources/2.6.protocol.compatibility.null.binary
# Conflicts: # hazelcast/src/test/resources/2.6.protocol.compatibility.binary # hazelcast/src/test/resources/2.6.protocol.compatibility.null.binary
Replaces #23523.
Adds support for changing
JobConfig
of a suspended job.Protocol changes: hazelcast/hazelcast-client-protocol#450