Versions Compared

Key

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

...

The ability to link the pages gives a way to organize pages into more complex structures such as trees. Ignite taps into this by using B+Tree for index and data pages arrangements. B+Tree is a self-balancing three  protects from growing tree in put-remove case.  

If Ignite Persistence is used then after a restart Ignite will load the tree's root node As a result for start operating with B+ Tree we can just load root (metadata page) and start reading results without all tree loading into RAM. Tree be able to iterate over the tree layers preloading each new missing page in memory from disk on demand. Also, the tree pages can be merged into one if <50% < 50% of space is used.

Ignite also uses special 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 is actually available in memory or is to be loaded.

...