Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Cache group comment & Grammar

Following notation is used: words written in italics and wihout spacing mean class name without package name or method name, for example, GridCacheMapEntry.

Info

For the sake of simplicity in this article, every cache group is named as a cache. Logical caches (as part of cache group) are not mentioned in this article at all, and a cache always implies a cache group. Each persistence store file naming will contain only cache group name (which is equal to cache name if there is only one logical cache in the group).


Table of Contents:

Table of Contents

...

  • part-0.bin, part-1.bin, ..., part-1023.bin (shown as P1,P2,PN at picture) - Cache partition pages.
  • index.bin - index partition data, special partition with number 65535 is used for SQL indexes and saved to index.bin.
  • cache_data.dat - special file with stored cache data (configuration). A StoredCacheData includes more data than the corresponding CacheConfiguration, e.g., query entities are saved in addition.

Persistence

Checkpointing

Checkpointing can be defined as process We can define checkpointing as a process of storing dirty pages from RAM on a disk, with results of consistent memory state is saved to disk. At the point of process end, page state is saved as it was for the time the process begins.

There are two approaches to implementation of checkpointing:

  • Sharp Checkpointing - if a checkpoint is completed completes: all data structures on disk are consistent, data is also consistent in terms of references and transactions.
  • Fuzzy Checkpointing - means state on disk may require recovery itself.

Approach The approach implemented in Ignite - Sharp is Sharp Checkpoint; F.C. - to Fuzzy Checkpointing- may be done in future releases.

...

  • Cache Updates - holds read lock.
  • Checkpointer, begin checlpoint checkpoint - holds write lock for a short time. Holding write lock means all state is consistent, updates are not possible. Usage of checkpoint lock allows to do sharp doing sharp checkpoint

Under checkpoint write lock held we do the following:

      1. Add WAL marker is added: checkpoint (begin) record is added - CheckpointRecord - marks consistent state in WAL.
      2. Collect pages, which were changed since the last checkpoint.

And then checkpoint write lock is released, updates and transactions can run.

...