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

Roman Puchkovskiy updated IGNITE-28335:
---------------------------------------
    Description: 
Currently, dropping a column is considered an incompatible schema change 
because there is a possibility to lose information in the following scenario:
 # User writes a tuple in schema V1, sending column C=X explicitly in 
transaction tx1
 # DROP COLUMN X is executed
 # tx1 gets committed
 # If we allow it to be committed, then:
 ## The user would know that they had written C=X, so the user would expect the 
schema to still be the one in which they would be able to read C
 ## But in reality, the tuple would be associated with schema V2 lacking column 
C, so it would be possible to read C from the tuple

After reconsideration, it seems that the problematic case is too edgy to make 
everyone to pay the price of rollbacks when dropping a column.

We need to do the following:
 # Make column drop a compatible schema change
 # Document the problematic edge case for the users to be aware
 # Modify the IEP?

The IEP is here: 
https://cwiki.apache.org/confluence/display/IGNITE/IEP-110%3A+Schema+synchronization%3A+basic+schema+changes

 

> Make column drop a compatible schema change
> -------------------------------------------
>
>                 Key: IGNITE-28335
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28335
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>
> Currently, dropping a column is considered an incompatible schema change 
> because there is a possibility to lose information in the following scenario:
>  # User writes a tuple in schema V1, sending column C=X explicitly in 
> transaction tx1
>  # DROP COLUMN X is executed
>  # tx1 gets committed
>  # If we allow it to be committed, then:
>  ## The user would know that they had written C=X, so the user would expect 
> the schema to still be the one in which they would be able to read C
>  ## But in reality, the tuple would be associated with schema V2 lacking 
> column C, so it would be possible to read C from the tuple
> After reconsideration, it seems that the problematic case is too edgy to make 
> everyone to pay the price of rollbacks when dropping a column.
> We need to do the following:
>  # Make column drop a compatible schema change
>  # Document the problematic edge case for the users to be aware
>  # Modify the IEP?
> The IEP is here: 
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-110%3A+Schema+synchronization%3A+basic+schema+changes
>  



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

Reply via email to