You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Mashenkov (Jira)" <ji...@apache.org> on 2021/04/06 10:56:00 UTC

[jira] [Updated] (IGNITE-13752) Schema evolution converters.

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

Andrey Mashenkov updated IGNITE-13752:
--------------------------------------
    Description: 
h3. Motivation.
The Live-schema concept supposes a tuple of old-version can be upgraded to a tuple of new-version automatically.

h3 Description.
Table SchemaManager tracks schema changes and keeps a history of changes.
Let's implements the mechanics to apply these historical changes to a Row to upgrade to the latest version.

Additionally, 
* investigate if some changes can be squashed, e.g. "drop column" and "add column" of the same name and create a ticket for this.
* Investigate if row upgrade can be "No-op" and just rises a schema version in a Row in-place without copying (e.g. a Row is tombstone 
or 'null' row was dropped and maybe we can rewrite the whole Row in-place) and create a ticket for possible optimizations.

  was:
With "live" schema it should be able to deserialize tuples of old-version to a new classes regarding schema change history.

Startpoint is to investigate if we could generate converter source->target schema version and them apply changes to data: e.g. column add, default value change.

 

Note: column removal should be made manually and class with absent field shouldn't triggers new schema version, but mapped to the latest known schema.

 

 


> Schema evolution converters.
> ----------------------------
>
>                 Key: IGNITE-13752
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13752
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Andrey Mashenkov
>            Priority: Major
>              Labels: iep-54, ignite-3
>
> h3. Motivation.
> The Live-schema concept supposes a tuple of old-version can be upgraded to a tuple of new-version automatically.
> h3 Description.
> Table SchemaManager tracks schema changes and keeps a history of changes.
> Let's implements the mechanics to apply these historical changes to a Row to upgrade to the latest version.
> Additionally, 
> * investigate if some changes can be squashed, e.g. "drop column" and "add column" of the same name and create a ticket for this.
> * Investigate if row upgrade can be "No-op" and just rises a schema version in a Row in-place without copying (e.g. a Row is tombstone 
> or 'null' row was dropped and maybe we can rewrite the whole Row in-place) and create a ticket for possible optimizations.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)