Igniters,

I propose new public API to change the cache configuration of persistent
caches with keeping data.

It would look like:

Ignite ignite = ...;
ignite.restartCaches(cfg1, ... cfgN);

where cfgX is a new cache configuration, which contains the name of an
existing persistent cache.

The obvious limitation:
- affinity key mapping couldn't be changed;
- count of partitions couldn't be changed;
- MVCC couldn't be turned off/on;
- persistent couldn't be turned off;
- group settings couldn't be changed (group name);
- if cache belongs to group it's needed to restart all of them.

Failure scenario is the crucial thing (and most difficult):
- initiator fail;
- cluster restart at any stage;
- joining/starting offline nodes.

Some thoughts about implementation:
- stop cache with destroy=false;
- start cache dynamically with new configuration;
- if indexes settings changed - remove index.bin to start indexation;
- change blt-history when start cache initiated to not allow join nodes
with old configuration;
- use restartId (IGNITE-8911) to not allow to start cache in between.

Your thoughts? Would it be a useful feature?

Reply via email to