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