public class DataPageIO extends PageIO
| Modifier and Type | Class and Description |
|---|---|
static interface |
DataPageIO.CC<T>
Defines closure interface for applying computations to data page items.
|
| Modifier and Type | Field and Description |
|---|---|
static int |
MIN_DATA_PAGE_OVERHEAD |
static IOVersions<DataPageIO> |
VERSIONS |
COMMON_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 |
DataPageIO(int ver) |
| Modifier and Type | Method and Description |
|---|---|
void |
addRow(long pageAddr,
byte[] payload,
int pageSize)
Adds row to this data page and sets respective link to the given row object.
|
void |
addRow(long pageAddr,
CacheDataRow row,
int rowSize,
int pageSize)
Adds row to this data page and sets respective link to the given row object.
|
void |
addRowFragment(long pageAddr,
byte[] payload,
long lastLink,
int pageSize)
Adds this payload as a fragment to this data page.
|
int |
addRowFragment(PageMemory pageMem,
long pageAddr,
CacheDataRow row,
int written,
int rowSize,
int pageSize)
Adds maximum possible fragment of the given row to this data page and sets respective link to the row.
|
<T> List<T> |
forAllItems(long pageAddr,
DataPageIO.CC<T> c) |
long |
getFreeListPageId(long pageAddr) |
int |
getFreeSpace(long pageAddr)
Free space refers to a "max row size (without any data page specific overhead) which is
guaranteed to fit into this data page".
|
void |
initNewPage(long pageAddr,
long pageId,
int pageSize) |
boolean |
isEmpty(long pageAddr) |
DataPagePayload |
readPayload(long pageAddr,
int itemId,
int pageSize)
Sets position to start of actual fragment data and limit to it's end.
|
long |
removeRow(long pageAddr,
int itemId,
int pageSize) |
void |
setFreeListPageId(long pageAddr,
long freeListPageId) |
boolean |
updateRow(long pageAddr,
int itemId,
int pageSize,
byte[] payload,
CacheDataRow row,
int rowSize) |
getBPlusIO, getBPlusIO, getCrc, getCrc, getInnerVersions, getLeafVersions, getPageId, getPageId, getPageIO, getPageIO, getType, getType, getType, getVersion, getVersion, getVersion, isDataPageType, registerH2, registerH2ExtraInner, registerH2ExtraLeaf, registerTest, setCrc, setCrc, setPageId, setType, toStringpublic static final IOVersions<DataPageIO> VERSIONS
public static final int MIN_DATA_PAGE_OVERHEAD
public void initNewPage(long pageAddr,
long pageId,
int pageSize)
initNewPage in class PageIOpageAddr - Page address.pageId - Page ID.pageSize - Page size.public void setFreeListPageId(long pageAddr,
long freeListPageId)
pageAddr - Page address.freeListPageId - Free list page ID.public long getFreeListPageId(long pageAddr)
pageAddr - Page address.public int getFreeSpace(long pageAddr)
pageAddr - Page address.public boolean isEmpty(long pageAddr)
pageAddr - Page address.true If there is no useful data in this page.public <T> List<T> forAllItems(long pageAddr, DataPageIO.CC<T> c) throws IgniteCheckedException
T - Closure return type.pageAddr - Page address.c - Closure.IgniteCheckedException - In case of error in closure body.public DataPagePayload readPayload(long pageAddr, int itemId, int pageSize)
pageAddr - Page address.itemId - Item to position on.pageSize - Page size.DataPagePayload object.public boolean updateRow(long pageAddr,
int itemId,
int pageSize,
@Nullable
byte[] payload,
@Nullable
CacheDataRow row,
int rowSize)
throws IgniteCheckedException
pageAddr - Page address.itemId - Item ID.pageSize - Page size.payload - Row data.row - Row.rowSize - Row size.True if entry is not fragmented.IgniteCheckedException - If failed.public long removeRow(long pageAddr,
int itemId,
int pageSize)
throws IgniteCheckedException
pageAddr - Page address.itemId - Fixed item ID (the index used for referencing an entry from the outside).pageSize - Page size.0 if none.IgniteCheckedException - If failed.public void addRow(long pageAddr,
CacheDataRow row,
int rowSize,
int pageSize)
throws IgniteCheckedException
pageAddr - Page address.row - Cache data row.rowSize - Row size.pageSize - Page size.IgniteCheckedException - If failed.public void addRow(long pageAddr,
byte[] payload,
int pageSize)
throws IgniteCheckedException
pageAddr - Page address.payload - Payload.pageSize - Page size.IgniteCheckedException - If failed.public int addRowFragment(PageMemory pageMem, long pageAddr, CacheDataRow row, int written, int rowSize, int pageSize) throws IgniteCheckedException
pageMem - Page memory.pageAddr - Page address.row - Cache data row.written - Number of bytes of row size that was already written.rowSize - Row size.pageSize - Page size.IgniteCheckedException - If failed.public void addRowFragment(long pageAddr,
byte[] payload,
long lastLink,
int pageSize)
throws IgniteCheckedException
pageAddr - Page address.payload - Payload bytes.lastLink - Link to the previous written fragment (link to the tail).pageSize - Page size.IgniteCheckedException - If failed.
Follow @ApacheIgnite
Ignite Fabric : ver. 2.1.0 Release Date : July 20 2017