[
https://issues.apache.org/jira/browse/IGNITE-29120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mikhail Petrov updated IGNITE-29120:
------------------------------------
Description:
Consider two schemas for the same message, each corresponding to a different
Ignite version.
{code:java}
2.19 2.20
A A
B B (deprecated)
C C
{code}
While RU is in progress, field B is still filled by the previous logical
version's code, so it must be transmitted:
RU in progress (logical version is 2.19)
{code:java}
2.20 <------------> 2.20
A A A
B (filled) B B (filled)
C C C
{code}
Once RU is finished, the new logical version no longer fills B, so it is always
null and we don't want to send it anymore. But the nodes have already agreed on
B, so it is still transmitted:
RU finished (logical version is 2.20)
{code:java}
2.20 <------------> 2.20
A A A
B (null) B B (null)
C C C
{code}
We need to support excluding deprecated field from transmission.
was:
{code:java}
2.19 2.20
A A
B B (deprecated)
C C
{code}
While RU is in progress, field B is still filled by the previous logical
version's code, so it must be transmitted:
RU in progress (logical version is 2.19)
{code:java}
2.20 <------------> 2.20
A A A
B (filled) B B (filled)
C C C
{code}
Once RU is finished, the new logical version no longer fills B, so it is always
null and we don't want to send it anymore. But the nodes have already agreed on
B, so it is still transmitted:
RU finished (logical version is 2.20)
{code:java}
2.20 <------------> 2.20
A A A
B (null) B B (null)
C C C
{code}
We need to support excluding deprecated field from transmission.
> Exclude deprecated fields from node-to-node transmission after RU is completed
> ------------------------------------------------------------------------------
>
> Key: IGNITE-29120
> URL: https://issues.apache.org/jira/browse/IGNITE-29120
> Project: Ignite
> Issue Type: Task
> Reporter: Mikhail Petrov
> Assignee: Mikhail Petrov
> Priority: Major
>
> Consider two schemas for the same message, each corresponding to a different
> Ignite version.
> {code:java}
> 2.19 2.20
> A A
> B B (deprecated)
> C C
> {code}
> While RU is in progress, field B is still filled by the previous logical
> version's code, so it must be transmitted:
> RU in progress (logical version is 2.19)
> {code:java}
> 2.20 <------------> 2.20
> A A A
> B (filled) B B (filled)
> C C C
> {code}
> Once RU is finished, the new logical version no longer fills B, so it is
> always null and we don't want to send it anymore. But the nodes have already
> agreed on B, so it is still transmitted:
> RU finished (logical version is 2.20)
> {code:java}
> 2.20 <------------> 2.20
> A A A
> B (null) B B (null)
> C C C
> {code}
> We need to support excluding deprecated field from transmission.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)