[ 
https://issues.apache.org/jira/browse/IGNITE-28922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anton Vinogradov updated IGNITE-28922:
--------------------------------------
    Epic Link: IGNITE-25881

> Revise the wire-companion field pairs of CacheContinuousQueryEntry
> ------------------------------------------------------------------
>
>                 Key: IGNITE-28922
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28922
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Anton Vinogradov
>            Priority: Major
>             Fix For: 2.19
>
>
> CacheContinuousQueryEntry keeps its payload in pairs of fields: the local 
> key/newVal/oldVal that consumers read, and the @Order companions written to 
> the wire. The marshal hook copies local -> companion only for a non-filtered 
> entry (a filtered one must not carry the payload), and the unmarshal hook 
> moves the companions back and nulls them.
> The shape predates this PR: master has the same pairs with byte[] companions 
> filled in prepareMarshal under the same !isFiltered() guard; this PR only 
> changes the companion type from a marshaller blob to the typed 
> KeyCacheObject/CacheObject written by the generated serializer.
> The pairs exist because the generated serializer writes @Order fields 
> unconditionally — there is no per-field conditional/converter facility in the 
> codegen. Proposal: either add such a facility (a way to declare "write this 
> field only when a condition holds"), or split the entry into two message 
> shapes (filtered / full) so that no field pairs are needed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to