You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexander Lapin (Jira)" <ji...@apache.org> on 2021/09/01 08:00:00 UTC

[jira] [Updated] (IGNITE-15414) Schema validation refactoring with configuration validators

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

Alexander Lapin updated IGNITE-15414:
-------------------------------------
    Summary: Schema validation refactoring with configuration validators  (was: Schema validation refactoring with confiugation validators)

> Schema validation refactoring with configuration validators
> -----------------------------------------------------------
>
>                 Key: IGNITE-15414
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15414
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Alexander Lapin
>            Assignee: Andrey Mashenkov
>            Priority: Major
>              Labels: ignite-3
>
> Current approach of validating configuration changes by throwing SchemaModificationExceptions during analyzing configuration from within one of it's listeners has few disadvantages:
>  * Configuration has already been stored, so it could be retrieved by other components that didn't know that it was considered invalid.
>  * It's not possible to have different listeners for different configuration items that  were triggered by one change if one of items considered to be invalid. In other word:
>  ** Let's assume that there are two listeners one for column.nullable() and another for collumn.type().
>  ** Customer alters table by both changing column's nullable and type values. Let's say that new nullable value is valid and type isn't.
>  ** column.nullable().listener() triggers first and successfully updates schema registry with given change.
>  ** After that column.type.listener() takes it time and throws SchemaModificationException.
>  ** It actually means that we either:
>  *** will have partially applied schema changes, that seems to be error prone, or
>  *** should implement schema registry rollback logic, or
>  *** strictly use only one top level listener, like we do it now. It worth to mention that such big listeners looks messy.
> All in all, in order to overcome drawbacks mentioned above and some unmentioned ones it's possible to use configuration validations that prevents processing and saving an invalid configuration changes.



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