Versions Compared

Key

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

...

Next, sometimes a query might require an SQL index for execution. The memory has to store not only data entries inside of the pages but build builds and maintain indexes as well. If Ignite used a memory mapped files approach, it would be required to read all the data to process the first query. Instead of this, index data is also kept in pages and can stored store both in RAM on disk if the latter is enabled.

Now let's introduce an integer number that will define an index of page Page - idx (unique within a current node):

...

Different caches and its partitions bring more complex addressing complex addressing scheme but it is still possible to map from page ID to position in particular file:

No Format
pageId => file + offset in this file

Let’s use Page ID for linking 2 pages, and then for dereferencing real position on file

Image Removed

It's possible to link pages together to build dependencies between them. For instance, this is how we can link 2 pages together by keeping child page ID in the root page:

Image Added

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

...