[ https://issues.apache.org/jira/browse/IGNITE-25041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Philipp Shergalis reassigned IGNITE-25041: ------------------------------------------ Assignee: Philipp Shergalis > Support configuration deletion > ------------------------------ > > Key: IGNITE-25041 > URL: https://issues.apache.org/jira/browse/IGNITE-25041 > Project: Ignite > Issue Type: Improvement > Reporter: Ivan Bessonov > Assignee: Philipp Shergalis > Priority: Major > Labels: ignite-3 > > h3. Problem > There are instances where a configuration has been introduced to the released > version of Ignite, that doesn't really need to be there. > Having an unused configuration value is a bad idea. If we simply delete it > from the code, we'll fail while parsing the configuration of already existing > node/cluster after the upgrade. > h3. Solution > When we read/receive configuration values from a "configuration storage", we > should have an additional phase of filtering-out the "junk". How are we going > to do that: > * Each {{ConfigurationModule}} should provide a list of configuration > templates, deemed {_}"deleted"{_}. > ** Or it could be a hard-coded list in "Gradle configuration module" itself, > but that would make testing more complicated, so I don't like this idea > * Each template should look like a following string: > ** {{ignite.my.deleted.property}} - for regular deleted properties > ** {{ignite.list.*.deletedProperty}} - for named list elements. Arbitrarily > nested named lists should be supported > * Upon encountering a configuration name that fits the description, we > should ignore it. > * We should keep in mind, that in general these templates describe prefixes, > not individual configurations. We might ignore the entire configuration > sub-tree if that's what we have deleted. > * When saving the configuration back into the storage, we should > transparently delete all ignored properties that we have read. > h3. Testing > Testing should involve all implementations of configuration storages, and > multiple classes of configuration schemas that would emulate and "upgrade" > with the changed schema. In these tests the only difference would be a "part > of configuration is deleted". > All combinations of deleted properties should be tested: > * Individual property > * Regular sub-tree > * Sub-tree that contained a named list > * Individual property somewhere inside of a named list > * Maybe some nested named lists -- This message was sent by Atlassian Jira (v8.20.10#820010)