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

Ivan Bessonov updated IGNITE-19271:
-----------------------------------
    Description: 
IEP-98 states:
{code:java}
When creating a message M telling the cluster about a schema update activation 
moment, choose the message timestamp Tm (moving safeTime forward) equal to Now, 
but assign Tu (activation moment) contained in that M to be Tm+DD {code}
This is hard to achieve.
h3. Problem

We need {{{}Tu==Tm+DD{}}}. Right now, with what we have in IGNITE-19028, it's 
not straightforward. This is because we have too many actors:
 * There's a {_}client{_}, that chooses Tu, because it's the only actor that 
can affect message content.
 * There's a meta-storage {_}lease-holder{_}, or {_}leader{_}, that chooses Tm.
 * There's everybody else, who expect a correspondence between Tu and Tm.

First two actors are important, because they have independent clocks, but must 
coordinate the same event. This is impossible with described protocol.
h3. Discussion

Let's consider these two solutions:
 # Client generates Tm.
 # Meta-storage generates Tu.

Option 1 is out of question, there must be only a single node at any given 
moment in time, that's responsible for the linear order of time in messages.

What about option 2? Since meta-storage doesn't know anything about commands 
semantics, it can't really generate any data. So this solution doesn't work 
either.

 

  was:
IEP-98 states:
{code:java}
When creating a message M telling the cluster about a schema update activation 
moment, choose the message timestamp Tm (moving safeTime forward) equal to Now, 
but assign Tu (activation moment) contained in that M to be Tm+DD {code}
This is hard to achieve.

 


> Persist revision-safeTime mapping in meta-storage
> -------------------------------------------------
>
>                 Key: IGNITE-19271
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19271
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Ivan Bessonov
>            Priority: Major
>              Labels: ignite-3
>
> IEP-98 states:
> {code:java}
> When creating a message M telling the cluster about a schema update 
> activation moment, choose the message timestamp Tm (moving safeTime forward) 
> equal to Now, but assign Tu (activation moment) contained in that M to be 
> Tm+DD {code}
> This is hard to achieve.
> h3. Problem
> We need {{{}Tu==Tm+DD{}}}. Right now, with what we have in IGNITE-19028, it's 
> not straightforward. This is because we have too many actors:
>  * There's a {_}client{_}, that chooses Tu, because it's the only actor that 
> can affect message content.
>  * There's a meta-storage {_}lease-holder{_}, or {_}leader{_}, that chooses 
> Tm.
>  * There's everybody else, who expect a correspondence between Tu and Tm.
> First two actors are important, because they have independent clocks, but 
> must coordinate the same event. This is impossible with described protocol.
> h3. Discussion
> Let's consider these two solutions:
>  # Client generates Tm.
>  # Meta-storage generates Tu.
> Option 1 is out of question, there must be only a single node at any given 
> moment in time, that's responsible for the linear order of time in messages.
> What about option 2? Since meta-storage doesn't know anything about commands 
> semantics, it can't really generate any data. So this solution doesn't work 
> either.
>  



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

Reply via email to