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

Roman Puchkovskiy updated IGNITE-19228:
---------------------------------------
    Description: 
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

If a schema change is incompatible, the transaction is aborted.

This task is about the implementation of a common framework allowing to do 
validations with just a single validator that considers all schema changes 
incompatible, and using this framework while processing transactions.

Real validators will be added in a follow-up task.

  was:
We need to validate:
 * forward schema compatibility on commit
 * backward compatibility on reads in RW txs

If a schema change is incompatible, a transaction is aborted.

TBD - details

This task is about the implementation of a common framework allowing to do 
validations with just a single validator that considers all schema changes 
incompatible, and using this framework while processing transactions.

Real validators will be added in a follow-up task.


> 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
>            Priority: Major
>              Labels: ignite-3
>
> 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
> If a schema change is incompatible, the transaction is aborted.
> This task is about the implementation of a common framework allowing to do 
> validations with just a single validator that considers all schema changes 
> incompatible, and using this framework while processing transactions.
> Real validators will be added in a follow-up task.



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

Reply via email to