Class BPlusMetaIO


  • public class BPlusMetaIO
    extends PageIO
    IO routines for B+Tree meta pages.
    • Method Detail

      • initRoot

        public void initRoot​(long pageAdrr,
                             long rootId,
                             int pageSize)
        Parameters:
        pageAdrr - Page address.
        rootId - Root page ID.
        pageSize - Page size.
      • getLevelsCount

        public int getLevelsCount​(long pageAddr)
        Parameters:
        pageAddr - Page address.
        Returns:
        Number of levels in this tree.
      • getMaxLevels

        public int getMaxLevels​(long pageAddr,
                                int pageSize)
        Parameters:
        pageAddr - Page address.
        pageSize - Page size.
        Returns:
        Max levels possible for this page size.
      • getFirstPageId

        public long getFirstPageId​(long pageAddr,
                                   int lvl)
        Parameters:
        pageAddr - Page address.
        lvl - Level.
        Returns:
        First page ID at that level.
      • getRootLevel

        public int getRootLevel​(long pageAddr)
        Parameters:
        pageAddr - Page address.
        Returns:
        Root level.
      • addRoot

        public void addRoot​(long pageAddr,
                            long rootPageId,
                            int pageSize)
        Parameters:
        pageAddr - Page address.
        rootPageId - New root page ID.
        pageSize - Page size.
      • cutRoot

        public void cutRoot​(long pageAddr,
                            int pageSize)
        Parameters:
        pageAddr - Page address.
        pageSize - Page size.
      • setInlineSize

        public void setInlineSize​(long pageAddr,
                                  int size)
        Parameters:
        pageAddr - Page address.
        size - Offset size.
      • getInlineSize

        public int getInlineSize​(long pageAddr)
        Parameters:
        pageAddr - Page address.
        Returns:
        Inline size.
      • unwrappedPk

        public boolean unwrappedPk​(long pageAddr)
        Returns:
        true In case use unwrapped PK.
      • inlineObjectSupported

        public boolean inlineObjectSupported​(long pageAddr)
        Parameters:
        pageAddr - Page address.
        Returns:
        true In case inline object is supported by the tree.
      • inlineObjectHash

        public boolean inlineObjectHash​(long pageAddr)
        Whether Java objects should be inlined as hash or as bytes array.
        Parameters:
        pageAddr - Page address.
      • supportFlags

        public boolean supportFlags()
        Returns:
        true If flags are supported.
      • initFlagsAndVersion

        public void initFlagsAndVersion​(long pageAddr,
                                        long flags,
                                        IgniteProductVersion createdVer)
        Parameters:
        pageAddr - Page address.
        flags - Flags.
        createdVer - The version of the product that creates the page (b+tree).
      • setCreatedVersion

        public void setCreatedVersion​(long pageAddr,
                                      IgniteProductVersion curVer)
        Parameters:
        pageAddr - Page address.
        curVer - Ignite current version.
      • createdVersion

        public IgniteProductVersion createdVersion​(long pageAddr)
        Parameters:
        pageAddr - Page address.
        Returns:
        The version of product that creates the page.
      • setFlags

        public void setFlags​(long pageAddr,
                             boolean unwrappedPk,
                             boolean inlineObjSupported,
                             boolean inlineObjHash)
        Parameters:
        pageAddr - Page address.
        unwrappedPk - unwrapped primary key of this tree flag.
        inlineObjSupported - inline POJO by created tree flag.
        inlineObjHash - Whether Java objects should be inlined as hash or as bytes array.
      • getFreeSpace

        public int getFreeSpace​(int pageSize,
                                long pageAddr)
        Count of bytes that is currently free in this page and possibly can be used to place additional payload.
        Specified by:
        getFreeSpace in class PageIO
        Parameters:
        pageSize - Page size.
        pageAddr - Page address.
        Returns:
        Free space.
      • upgradePageVersion

        public static void upgradePageVersion​(long pageAddr,
                                              boolean inlineObjSupported,
                                              boolean unwrappedPk,
                                              int pageSize)
        Parameters:
        pageAddr - Page address.
        inlineObjSupported - Supports inline object flag.
        unwrappedPk - Unwrap PK flag.
        pageSize - Page size.
      • setValues

        public static void setValues​(long pageAddr,
                                     int inlineSize,
                                     boolean unwrappedPk,
                                     boolean inlineObjSupported,
                                     boolean inlineObjHash)
        Set meta page values.
        Parameters:
        pageAddr - Page address.
        inlineSize - Inline size.
        unwrappedPk - Unwrap PK flag.
        inlineObjSupported - Supports inline object flag.
        inlineObjHash - Supports inline object hash flag.