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

Mikhail Petrov updated IGNITE-29120:
------------------------------------
    Description: 
{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:
Changing the agreed set requires renegotiation, either by re-establishing the 
connection or via complex mechanisms (comparable to key updates in TLS).

{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}
There is currently no way to adjust the agreed field set during the session 
lifetime, so a field that is always null keeps being transmitted.



> 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
>            Priority: Major
>
> {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)

Reply via email to