Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

in-memory snapshots will resuse existing snapshot code when possible. So key design decisions stay the same. It assumed that reader knows and understand IEP-43. So design description will focus on difference on persistence and in-memory snapshot.

API

New optional flag --mode will be added.
Possible values are PERSISTENT, INMEMORY, BOTH.
Default value is PERSISTENT to keep existing behaviour of command.
When concurrent creation of in-memory and persistent snapshots will be implemented default value can be changed to BOTH.

Example:

Code Block
languagebash
firstline1
titlecreate snapshot example
> ./control.sh --snapshot --create SNP --mode INMEMORY

Creation

1.

...

PME guarantees to make sure of visibility of all dirty pages:

Only PME required for in-memory snapshots. We can set write listener during PME because no concurrent transactions allowed.

...

  • DataRegionConfiguration#persistenceEnabled=false  for in-memory caches by the definition.
  • The same value must be for DataRegionConfiguration when cache group restored from in-memory snapshot.
  • After this feature implemented PageIO will require to be backward compatible.
  • The way to restore snapshot on different topology must be further investigated.
  • Empty pages of DataRegion will be written to snapshot.
  • Compaction of snapshot must be further investigated.
  • No concurrent snapshot operation - persistent, in-memory allowed. This can be eliminated in next phases to provide the ability to create full cluster snapshot by one command.
  • In case of mixed cluster(both persistence and in-memory data region exists) metastorage is persistent and must be included into in-memory snapshot.  

Discussion Links

// Links to discussions on the devlist, if applicable.

...