Package org.apache.ignite.internal.processors.cache.persistence.metastorage

## Class MetastorageInnerIO

- java.lang.Object
- - org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO
  - - org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusIO<L>
    - - org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusInnerIO<MetastorageRow>
      - - org.apache.ignite.internal.processors.cache.persistence.metastorage.MetastorageInnerIO

All Implemented Interfaces:
  `MetastorageBPlusIO`, `CompactablePageIO`

    public class MetastorageInnerIO
    extends BPlusInnerIO<MetastorageRow>
    implements MetastorageBPlusIO

### Field Summary

### Fields inherited from class org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusIO

`ITEMS_OFF, itemSize`

### Fields inherited from class org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO

`COMMON_HEADER_END, CRC_OFF, MAX_PAYLOAD_SIZE, PAGE_ID_OFF, ROTATED_ID_PART_OFF, T_BPLUS_META, T_CACHE_ID_AWARE_DATA_REF_INNER, T_CACHE_ID_AWARE_DATA_REF_LEAF, T_CACHE_ID_AWARE_PENDING_REF_INNER, T_CACHE_ID_AWARE_PENDING_REF_LEAF, T_DATA, T_DATA_METASTORAGE, T_DATA_PART, T_DATA_REF_INNER, T_DATA_REF_LEAF, T_DATA_REF_METASTORAGE_INNER, T_DATA_REF_METASTORAGE_LEAF, T_DEFRAG_LINK_MAPPING_INNER, T_DEFRAG_LINK_MAPPING_LEAF, T_H2_EX_REF_INNER_END, T_H2_EX_REF_INNER_START, T_H2_EX_REF_LEAF_END, T_H2_EX_REF_LEAF_START, T_H2_REF_INNER, T_H2_REF_LEAF, T_MARKER_PAGE, T_META, T_METASTORE_INNER, T_METASTORE_LEAF, T_PAGE_LIST_META, T_PAGE_LIST_NODE, T_PAGE_UPDATE_TRACKING, T_PART_CNTRS, T_PART_META, T_PENDING_REF_INNER, T_PENDING_REF_LEAF, TYPE_OFF, VER_OFF`

### Fields inherited from interface org.apache.ignite.internal.processors.cache.persistence.metastorage.MetastorageBPlusIO

`INNER_IO_VERSIONS, LEAF_IO_VERSIONS`

### Method Summary

All Methods Instance Methods Concrete Methods
`MetastorageDataRow` `getDataRow​(long pageAddr, int idx, MetastorageRowStore rowStore)`
`String` `getKey​(long pageAddr, int idx, MetastorageRowStore rowStore)`
`short` `getKeySize​(long pageAddr, int idx)`
`long` `getLink​(long pageAddr, int idx)`
`MetastorageRow` `getLookupRow​(BPlusTree<MetastorageRow,​?> tree, long pageAddr, int idx)` Get lookup row.
`void` `store​(long dstPageAddr, int dstIdx, BPlusIO<MetastorageRow> srcIo, long srcPageAddr, int srcIdx)` Store row info from the given source.
`void` `storeByOffset​(long pageAddr, int off, MetastorageRow row)` Store the needed info about the row in the page.

### Methods inherited from class org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusInnerIO

`copyItems, getLeft, getMaxCount, getRight, initNewRoot, insert, offset, setLeft`

### Methods inherited from class org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusIO

`canGetRow, compactPage, getCount, getForward, getFreeSpace, getItemsEnd, getItemSize, getRemoveId, initNewPage, isLeaf, merge, printPage, remove, restorePage, setCount, setForward, setRemoveId, splitExistingPage, splitForwardPage, store, visit`

### Methods inherited from class org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO

`assertPageType, assertPageType, copyPage, deriveIndexPageType, getBPlusIO, getBPlusIO, getCompactedSize, getCompactedSize, getCompressedSize, getCompressedSize, getCompressionType, getCompressionType, getCrc, getCrc, getInnerVersions, getLeafVersions, getPageId, getPageId, getPageIO, getPageIO, getPageIO, getRotatedIdPart, getType, getType, getType, getVersion, getVersion, getVersion, isDataPageType, isIndexPage, printPage, registerH2, registerH2ExtraInner, registerH2ExtraLeaf, registerTest, registerTest, setCompactedSize, setCompressedSize, setCompressionType, setCrc, setCrc, setPageId, setRotatedIdPart, setType, setVersion, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Method Detail

#### storeByOffset

    public void storeByOffset​(long pageAddr,
                              int off,
                              MetastorageRow row)

Store the needed info about the row in the page. Leaf and inner pages can store different info.

Specified by:
  `storeByOffset` in class `BPlusIO<MetastorageRow>`
Parameters:
  `pageAddr` - Page address.
  `off` - Offset in bytes.
  `row` - Lookup or full row.

#### store

    public void store​(long dstPageAddr,
                      int dstIdx,
                      BPlusIO<MetastorageRow> srcIo,
                      long srcPageAddr,
                      int srcIdx)

Store row info from the given source.

Specified by:
  `store` in class `BPlusIO<MetastorageRow>`
Parameters:
  `dstPageAddr` - Destination page address.
  `dstIdx` - Destination index.
  `srcIo` - Source IO.
  `srcPageAddr` - Source page address.
  `srcIdx` - Source index.

#### getLookupRow

    public MetastorageRow getLookupRow​(BPlusTree<MetastorageRow,​?> tree,
                                       long pageAddr,
                                       int idx)
                                throws IgniteCheckedException

Get lookup row.

Specified by:
  `getLookupRow` in class `BPlusIO<MetastorageRow>`
Parameters:
  `tree` - Tree.
  `pageAddr` - Page address.
  `idx` - Index.
Returns:
  Lookup row.
Throws:
  `IgniteCheckedException` - If failed.

#### getLink

    public long getLink​(long pageAddr,
                        int idx)

Specified by:
  `getLink` in interface `MetastorageBPlusIO`
Parameters:
  `pageAddr` - Page address.
  `idx` - Index.
Returns:
  Row link.

#### getKeySize

    public short getKeySize​(long pageAddr,
                            int idx)

Specified by:
  `getKeySize` in interface `MetastorageBPlusIO`
Parameters:
  `pageAddr` - Page address.
  `idx` - Index.
Returns:
  Key size in bytes.

#### getKey

    public String getKey​(long pageAddr,
                         int idx,
                         MetastorageRowStore rowStore)
                  throws IgniteCheckedException

Specified by:
  `getKey` in interface `MetastorageBPlusIO`
Parameters:
  `pageAddr` - Page address.
  `idx` - Index.
Returns:
  Key.
Throws:
  `IgniteCheckedException`

#### getDataRow

    public MetastorageDataRow getDataRow​(long pageAddr,
                                         int idx,
                                         MetastorageRowStore rowStore)
                                  throws IgniteCheckedException

Specified by:
  `getDataRow` in interface `MetastorageBPlusIO`
Parameters:
  `pageAddr` - Page address.
  `idx` - Index.
  `rowStore` - Row store.
Returns:
  Data row.
Throws:
  `IgniteCheckedException`