Skip to content
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

[Backport stable/8.1] Support large input collections for Multi-instance #12742

Merged
merged 6 commits into from Jun 1, 2023

Conversation

backport-action
Copy link
Collaborator

Description

Backport of #12692 to stable/8.1.

relates to #2890

Verifies that a multi instance with a large input collection can activate all it's
 children without running out of batch size.
 The test also verifies that batching is used for the activating.

(cherry picked from commit 4c7f25a)
Improves the assertion message by explaining what the next steps are if it fails.

(cherry picked from commit de94cff)
Adds the ActivateProcessInstanceBatchProcessor and registers it with the Engine.

This processor is responsible to handle the ProcessInstanceBatch.ACTIVATE commands.
It is used for activating child element instance of a multi instance element in a batch-like manner.
The index in the command is used to indicate how much children need to be activated.
If the amount of children will exceed the max message size a followup batch command is written.
The index of the followup command is decremented for each of the activate commands that have been send.

(cherry picked from commit ddd34ad)
A batch ACTIVATE operation works different from a TERMINATE batch operation.
During a TERMINATE the index is the key of a child element instance. For ACTIVATE it is a simple counter,
 keeping track of how many ACTIVATE commands we still need to write.

(cherry picked from commit 307c083)
Instead of writing all the ACTIVATE commands for all children at once, we now use the
ProcessInstanceBatch.ACTIVATE command instead.

This command takes an index, which in this case is the amount of children that an ACTIVATE command will be written for.

(cherry picked from commit 65988a2)
Copy link
Contributor

@remcowesterhoud remcowesterhoud left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bors merge

zeebe-bors-camunda bot added a commit that referenced this pull request May 11, 2023
12742: [Backport stable/8.1] Support large input collections for Multi-instance r=remcowesterhoud a=backport-action

# Description
Backport of #12692 to `stable/8.1`.

relates to #2890

Co-authored-by: Remco Westerhoud <remco@westerhoud.nl>
@zeebe-bors-camunda
Copy link
Contributor

Build failed:

@megglos
Copy link
Contributor

megglos commented May 23, 2023

bors retry

zeebe-bors-camunda bot added a commit that referenced this pull request May 23, 2023
12742: [Backport stable/8.1] Support large input collections for Multi-instance r=remcowesterhoud a=backport-action

# Description
Backport of #12692 to `stable/8.1`.

relates to #2890

Co-authored-by: Remco Westerhoud <remco@westerhoud.nl>
@zeebe-bors-camunda
Copy link
Contributor

Build failed:

Resolves compilation issues caused by classes that have been moved in later versions,
as well as the bpmnEventType which was introduced on the ProcessInstanceRecord in 8.2.
@remcowesterhoud
Copy link
Contributor

bors merge

@zeebe-bors-camunda
Copy link
Contributor

Build succeeded:

@zeebe-bors-camunda zeebe-bors-camunda bot merged commit 0083dea into stable/8.1 Jun 1, 2023
27 checks passed
@zeebe-bors-camunda zeebe-bors-camunda bot deleted the backport-12692-to-stable/8.1 branch June 1, 2023 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants