[
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)