Versions Compared

Key

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

Excerpt

This article covers the internal design of Durable Memory. Intented to Intended for Ignite developers

Contents

Table of Contents

Motivation

Let us cover reasons why Ignite uses durable memory

1. Consider case Ignite is backed by 3rd party DB solution to store data, only required data was loaded into Ignite. But running any full scan query (which requires whole data set to be in-memory) causes loading all data into cache.

2. Consider simplest implementation of persistence - one or several memory mapped files. In this case running Query to select some cache entry by field using this model required us too long time.

Reasons of this are device features:

  • RAM - random access, byte addressed
  • HDD - block addressed, long random access

Memory mapped file on HDD will be anyway slow. It is required to store data not in “random” way (at is in java Heap), but in some organized manner, grouped by block.

3. Main requirement: when node starts it should handle cache requests (start to operate) without long delay to load all data from disk.The reasoning behind the durable memory is described in the main documentation: https://apacheignite.readme.io/docs/durable-memory

Solution

Ignite Durable Memory

...