ID | IEP-109 |
Author | |
Sponsor | |
Created | 17.07.2023 |
Status | DRAFT |
IEP-43 introduces persistent caches snapshots feature. This feature highly adopted by Ignite users.
In-memory caches snapshots will simplify the following use-cases:
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.
Only PME required for in-memory snapshots. We can set write listener during PME because no concurrent transactions allowed.
See:
PartitionsExchangeAware#onDoneBeforeTopologyUnlock
IgniteSnapshotManager#onDoneBeforeTopologyUnlock
SnapshotFutureTask#start
Currently, IgnitePageStoreManager
in GridCacheSharedContext
is null for in-memory caches.
It required to provide the way to track in-memory page writes and implement logic similar to PageStoreSerialWriter
for in-memory caches.
CRC for each page must be calculated and written to snapshot metadata during snapshotting.
CRC must be checked during restore.
must be properly prepared and saved during snapshot.
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.
// Links to discussions on the devlist, if applicable.