[
https://issues.apache.org/jira/browse/IGNITE-19228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17722163#comment-17722163
]
Roman Puchkovskiy commented on IGNITE-19228:
--------------------------------------------
Thanks guys!
> Schema validation during tx processing: common framework
> --------------------------------------------------------
>
> Key: IGNITE-19228
> URL: https://issues.apache.org/jira/browse/IGNITE-19228
> Project: Ignite
> Issue Type: Improvement
> Reporter: Roman Puchkovskiy
> Assignee: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
> Time Spent: 4h 40m
> Remaining Estimate: 0h
>
> h3. Definitions
> When a coordinator initiates a transaction, it takes a timestamp
> beginTs=Ts=Now and sends it to all participants. On first access to a table Q
> (in this transaction) on a primary replica node, the schema of Q is obtained
> for moment Ts; this schema is called ‘initial schema’ and associated with
> this transaction on this node. When a commit of the transaction is processed
> with commit timestamp Tc, the node obtains the schema of Q again, now at the
> moment of Tc; this is the ‘commit schema’. If the commit schema is different
> from the initial schema and not compatible with it (using the notion of the
> forward compatibility defined below), the commit fails (and the transaction
> is aborted).
> An initial schema is said to be _forward-compatible_ with a commit schema if,
> having a tuple written with the initial schema, it is enough to know the
> commit schema to read the tuple.
> An initial schema is said to be _backward-compatible_ with a commit schema if
> the same is true the other way around: having a tuple written with the commit
> schema, we can read it having just the initial schema.
> h3. What to do
> We need to validate:
> * forward schema compatibility on commit
> * backward compatibility on reads in RW txs (this will be done in another
> task: IGNITE-19454)
> If a schema change is incompatible, the transaction is aborted.
> This task is about the implementation of a common framework allowing to do
> validations using specific validators and using this framework while
> processing transactions. Only one validator is needed for starters, it will
> consider all schema changes incompatible.
> Real validators will be added in a follow-up task.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)