ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ilya Lantukh <ilant...@gridgain.com>
Subject Re: Quick question on data and index pages
Date Thu, 26 Jul 2018 12:49:45 GMT

1. As the name implies, indirectCount is the count of indirect items, which
are references to direct items. According to our DataPage format, we keep
all items in the beginning of the page. Take a look at this diagram:
If we remove It2, we will have to move It3 onto it's place. But we already
have external references to It3 by it's index (3). So, to keep those
external references correct, we have to mark item on index 3 as "indirect"
and make it point on index 2. In this case, such page will have directCount
== 2 and indirectCount == 1.

2. No, only index pages are organized in a B+ tree. Data pages are
organized in another data structure called FreeList - it stores how many
free space is available on each data page and provides fast access to pages
that have space >= specified.

3. Yes. The most significant difference is that internal nodes need to
store links to nodes on the next level. Check classes BPlusInnerIO and
BPlusLeafIO (and their subclasses) if you are interested in more details.

On Thu, Jul 26, 2018 at 6:22 AM, John Wilson <sami.hailu.15@gmail.com>

> Hi,
> 1. What are direct and indirect count in data page header used for? What is
> the difference?
> [
> https://cwiki-test.apache.org/confluence/display/IGNITE/
> Ignite+Durable+Memory+-+under+the+hood#IgniteDurableMemory-
> underthehood-Freelists
> ]
> 2. Are data pages organized in a B+ tree structure or index pages only?
> 3. Is there any difference between internal and leaf nodes in the B+ tree
> structure?
> Thanks,

Best regards,

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message