...
The Distributed Process is used to complete steps [1, 3]. To achieve the step [2] a new SnapshotFutureTask
must be developed.
...
...
The local snapshot task is an operation that executes on each local node independently. It copies all the persistence user files from the Ignite work directory to the target snapshot directory with additional machinery to achieve consistency. This task is closely connected with the node checkpointing process due to, for instance, cache partition files are only eventually consistent on disk during the ongoing checkpoint process and fully consistent only when the checkpoint ends.
The local snapshot operation on each cluster node reflects as – SnapshotFutureTask
.
The following must be copied to snapshot:
Binary meta, marshaller meta, configurations still stored in on-heap, so it is easy to collect and keep this persistent user information consistent under the checkpoint write-lock (no changes allowed).
Another strategy must be used for cache partition files. The checkpoint process will write dirty pages from PageMemory to the cache partition files simultaneously with another process copy them to the target directory. Each cache partition file is consistent only at checkpoint end. So, to avoid long-time transaction blocks during the cluster-wide snapshot process it should not wait when checkpoint ends on each node. The process of copying cache partition files must do the following:
.delta
files. Each file created per each partition. (e.g. part-1.bin
with part-1.bin.delta
– fully consistent cache partition).There are two possible cases during copy cache partition files simultaneously with the checkpoint thread:
0
- to length
).The cluster-wide snapshot is an operation which executes local snapshot task on each node. To achieve cluster-wide snapshot consistency the Partition-Map-Exchange will be reused to block for a while all user transactions.
In a short amount of time while user transactions are blocked the local snapshot task will be started by forcing the checkpoint process. These actions have the following guarantees: all current transactions are finished and all new transactions are blocked, all data from the PageMemory
will be flushed on a disk at checkpoint end. This is a short time-window when all cluster data will be eventually fully consistent on the disk.
The cluster-wide snapshot task steps overview in terms of distributed process:
To achieve cluster-wide snapshot consistency the Partition-Map-Exchange will be reused to block for a while all user transactions.
In a short amount of time while user transactions are blocked the local snapshot task will be started by forcing the checkpoint process. These actions have the following guarantees: all current transactions are finished and all new transactions are blocked, all data from the PageMemory
will be flushed on a disk at checkpoint end. This is a short time-window when all cluster data will be eventually fully consistent on the disk.
The cluster-wide snapshot task steps overview in terms of distributed process:
The local snapshot task is an operation that executes on each local node and copies all the persistence user files from the Ignite work directory to the target snapshot directory with additional machinery to achieve consistency. This task is closely connected with the node checkpointing process due to, for instance, cache partition files are only eventually consistent on disk during the ongoing checkpoint process and fully consistent only when the checkpoint ends.
The local snapshot operation on each cluster node reflects as – SnapshotFutureTask
.
The following must be copied to snapshot:
Binary meta, marshaller meta, configurations still stored in on-heap, so it is easy to collect and keep this persistent user information consistent under the checkpoint write-lock (no changes allowed).
Another strategy must be used for cache partition files. The checkpoint process will write dirty pages from PageMemory to the cache partition files simultaneously with another process copy them to the target directory. Each cache partition file is consistent only at checkpoint end. So, to avoid long-time transaction blocks during the cluster-wide snapshot process it should not wait when checkpoint ends on each node. The process of copying cache partition files must do the following:
.delta
files. Each file created per each partition. (e.g. part-1.bin
with part-1.bin.delta
– fully consistent cache partition).There are two possible cases during copy cache partition files simultaneously with the checkpoint thread:
0
- to length
).The internal components must have the ability to request a consistent (not cluster-wide, but locally) snapshot from remote nodes. This process requests for execution of a local snapshot task on the remote node and collects back the execution results. The File Transmission protocol is used to transfer files between the cluster nodes. The local snapshot task can be reused independently to perform data copying and sending.from the remote node to the local node.
The high-level overview looks like:
...