Versions Compared

Key

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

...

Ignite also uses a special component that manages information about pages currently available in memory (`FullPageIdTable`FullPageIdTable). There is one page ID table per memory segment. This table manages mapping from Page ID to relative pointer map (rowAddr) within unsafe segment. This table is used to check if page a page is actually available in memory or is has to be loaded from disk. As a result of these changes: SQL query now can start running without full data available in memory. For recently started cluster first time SQL query run will be, of cause, slower., even SQL queries can be fully utilized from Ignite applications when only a subset of pages is in memory because required pages will be taken from disk during query execution. 

If memory amount is less than whole index size, Ignite still can operate. When free memory amount will be insufficient to allocate new page, some page will be removed Ignite runs out of memory for the new pages allocation, some of the pages will be purged from RAM back to disk. Removal decision The eviction of pages is based on latest touch time.Algorithm used is Random LRUthe algorithms described below.

Page based eviction

Let's suppose RAM memory is fully filled with pages, and it is required to allocate new. It is required to evict some page from memory

...