Skip to content

IGNITE-28528 Move the start request conversion out of the message - #13439

Closed
anton-vinogradov wants to merge 1 commit into
apache:masterfrom
anton-vinogradov:ignite-28528
Closed

IGNITE-28528 Move the start request conversion out of the message#13439
anton-vinogradov wants to merge 1 commit into
apache:masterfrom
anton-vinogradov:ignite-28528

Conversation

@anton-vinogradov

Copy link
Copy Markdown
Contributor

StartRequestData marshalled itself: marshal(GridKernalContext) and unmarshal(GridKernalContext, UUID) picked the marshaller, resolved the peer deployment and ran the p2p hooks — all from inside the message. This moves that work to GridContinuousProcessor, the only place that has the sender id, the deployment and a thread where marshalling is allowed. The message keeps its fields and nothing else.

Nothing changes on the wire: the same eight @Order fields in the same order, the same marshaller, the same call order. What changes is where the marshaller is taken from — which is what IGNITE-28940 needs to switch it per transport.

Two details worth a look:

  • The restored handler goes into the message right after it is read, before p2pUnmarshal. That order matters: p2pUnmarshal throws when the deployment is unavailable, and the caller still reads the handler afterwards to report the failure and stop the routine.
  • nodeFilter and hnd became package-private, like the other fields of the class; the processor lives in the same package and reads them directly, as it already did with nodeFilterBytes and hndBytes.

Tested: CacheContinuousQueryFilterDeploymentFailedTest, GridCacheContinuousQueryNodesFilteringTest, CacheContinuousQueryDeploymentToClientTest, CacheContinuousQueryAsyncFilterListenerTest, CacheContinuousQueryEventBufferTest, GridEventConsumeSelfTest — green, checkstyle clean.

StartRequestData no longer marshals itself: GridContinuousProcessor does it, where the
sender id, the deployment and the right thread are already at hand. The message keeps
only its fields, and the marshaller is now picked where we marshal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Possible compatibility issues. Please, check rolling upgrade cases

This PR modifies protected classes (with Order annotation).
Changes to these classes can break rolling upgrade compatibility.

Affected files:

  • modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/StartRequestData.java

@anton-vinogradov

Copy link
Copy Markdown
Contributor Author

Superseded by #13440, which revises the marshalling instead of moving the conversion code around: the message now states the deployment it carries, and the class loader is resolved once, in the deployment manager.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant