public abstract class BPlusInnerIO<L> extends BPlusIO<L>
ITEMS_OFF, itemSizeCOMMON_HEADER_END, CRC_OFF, MAX_PAYLOAD_SIZE, PAGE_ID_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_REF_INNER, T_DATA_REF_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_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| Modifier | Constructor and Description |
|---|---|
protected |
BPlusInnerIO(int type,
int ver,
boolean canGetRow,
int itemSize) |
| Modifier and Type | Method and Description |
|---|---|
void |
copyItems(long srcPageAddr,
long dstPageAddr,
int srcIdx,
int dstIdx,
int cnt,
boolean cpLeft)
Copy items from source page to destination page.
|
long |
getLeft(long pageAddr,
int idx) |
int |
getMaxCount(long pageAddr,
int pageSize) |
long |
getRight(long pageAddr,
int idx) |
byte[] |
initNewRoot(long newRootPageAddr,
long newRootId,
long leftChildId,
L row,
byte[] rowBytes,
long rightChildId,
int pageSize,
boolean needRowBytes) |
byte[] |
insert(long pageAddr,
int idx,
L row,
byte[] rowBytes,
long rightId,
boolean needRowBytes) |
int |
offset(int idx) |
void |
setLeft(long pageAddr,
int idx,
long pageId) |
canGetRow, getCount, getForward, getItemSize, getLookupRow, getRemoveId, initNewPage, isLeaf, merge, remove, setCount, setForward, setRemoveId, splitExistingPage, splitForwardPage, store, store, storeByOffset, visitgetBPlusIO, getBPlusIO, getCrc, getCrc, getInnerVersions, getLeafVersions, getPageId, getPageId, getPageIO, getPageIO, getType, getType, getType, getVersion, getVersion, getVersion, isDataPageType, registerH2, registerH2ExtraInner, registerH2ExtraLeaf, registerTest, setCrc, setCrc, setPageId, setType, toStringprotected BPlusInnerIO(int type,
int ver,
boolean canGetRow,
int itemSize)
type - Page type.ver - Page format version.canGetRow - If we can get full row from this page.itemSize - Single item size on page.public int getMaxCount(long pageAddr,
int pageSize)
getMaxCount in class BPlusIO<L>pageAddr - Page address.pageSize - Page size.public final long getLeft(long pageAddr,
int idx)
pageAddr - Page address.idx - Index.public final void setLeft(long pageAddr,
int idx,
long pageId)
pageAddr - Page address.idx - Index.pageId - Page ID.public final long getRight(long pageAddr,
int idx)
pageAddr - Page address.idx - Index.public final void copyItems(long srcPageAddr,
long dstPageAddr,
int srcIdx,
int dstIdx,
int cnt,
boolean cpLeft)
throws IgniteCheckedException
copyItems in class BPlusIO<L>srcPageAddr - Source page address.dstPageAddr - Destination page address.srcIdx - Source begin index.dstIdx - Destination begin index.cnt - Items count.cpLeft - Copy leftmost link (makes sense only for inner pages).IgniteCheckedException - If failed.public final int offset(int idx)
public byte[] insert(long pageAddr,
int idx,
L row,
byte[] rowBytes,
long rightId,
boolean needRowBytes)
throws IgniteCheckedException
insert in class BPlusIO<L>pageAddr - Page address.idx - Index.row - Row to insert.rowBytes - Row bytes.rightId - Page ID which will be to the right child for the inserted item.needRowBytes - If we need stored row bytes.IgniteCheckedException - If failed.public byte[] initNewRoot(long newRootPageAddr,
long newRootId,
long leftChildId,
L row,
byte[] rowBytes,
long rightChildId,
int pageSize,
boolean needRowBytes)
throws IgniteCheckedException
newRootPageAddr - New root page address.newRootId - New root ID.leftChildId - Left child ID.row - Moved up row.rowBytes - Bytes.rightChildId - Right child ID.pageSize - Page size.needRowBytes - If we need row bytes back.IgniteCheckedException - If failed.
Follow @ApacheIgnite
Ignite Fabric : ver. 2.1.0 Release Date : July 20 2017