public class BPlusTree.Remove extends BPlusTree.Get implements ReuseBag
| Modifier and Type | Method and Description |
|---|---|
void |
addFreePage(long pageId) |
protected boolean |
ceil() |
protected void |
doRemove(long pageId,
long page,
long pageAddr,
Boolean walPlc,
BPlusIO<L> io,
int cnt,
int idx) |
protected BPlusTree.Result |
doRemoveFromLeaf() |
protected BPlusTree.Result |
finish(BPlusTree.Result res)
Finish the operation.
|
protected BPlusTree.Result |
finishOrLockTail(long pageId,
long page,
long backId,
long fwdId,
int lvl)
Method that's invoked when operation goes up from the recursion and
BPlusTree.Get.isFinished() returns false. |
protected BPlusTree.Result |
finishTail()
Process tail and finish.
|
boolean |
isEmpty() |
protected boolean |
isRemoved() |
protected BPlusTree.Result |
lockForward(int lvl) |
long |
pollFreePage() |
protected boolean |
releaseForRetry(org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.Tail<L> t) |
protected void |
removeDataRowFromLeaf(long pageId,
long page,
long pageAddr,
Boolean walPlc,
BPlusIO<L> io,
int cnt,
int idx) |
rowpublic long pollFreePage()
pollFreePage in interface ReuseBag0 if empty.public void addFreePage(long pageId)
addFreePage in interface ReuseBagpageId - Free page ID for reuse.public boolean isEmpty()
protected boolean ceil()
BPlusTree.Get.row specifies the start of the interval, not an exact match).protected BPlusTree.Result finish(BPlusTree.Result res)
protected boolean isRemoved()
true If already removed from leaf.protected boolean releaseForRetry(org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.Tail<L> t)
t - Tail to release.true If we need to retry or false to exit.protected BPlusTree.Result finishTail() throws IgniteCheckedException
finishOrLockTail(long, long, long, long, int) but doesn't add the
page to the tail.IgniteCheckedException - If failed.protected BPlusTree.Result doRemoveFromLeaf() throws IgniteCheckedException
IgniteCheckedException - If failed.protected BPlusTree.Result lockForward(int lvl) throws IgniteCheckedException
lvl - Level.IgniteCheckedException - If failed.protected void removeDataRowFromLeaf(long pageId,
long page,
long pageAddr,
Boolean walPlc,
BPlusIO<L> io,
int cnt,
int idx)
throws IgniteCheckedException
pageId - Page ID.page - Page pointer.pageAddr - Page address.walPlc - Full page WAL record policy.io - IO.cnt - Count.idx - Index to remove.IgniteCheckedException - If failed.protected void doRemove(long pageId,
long page,
long pageAddr,
Boolean walPlc,
BPlusIO<L> io,
int cnt,
int idx)
throws IgniteCheckedException
pageId - Page ID.page - Page pointer.pageAddr - Page address.walPlc - Full page WAL record policy.io - IO.cnt - Count.idx - Index to remove.IgniteCheckedException - If failed.protected BPlusTree.Result finishOrLockTail(long pageId, long page, long backId, long fwdId, int lvl) throws IgniteCheckedException
BPlusTree.Get.isFinished() returns false.
Either finishes the operation or locks the page for further processing on another level.
Returns BPlusTree.Result.FOUND if operation has finished and BPlusTree.Get.isFinished() returns true now.
Returns BPlusTree.Result.RETRY if operation should be retried.
Returns BPlusTree.Result.NOT_FOUND if operation has added the page to tail, meaning that operation can't be
finished on current level.pageId - Page ID.page - Page pointer.backId - Back page ID.fwdId - Forward ID.lvl - Level.IgniteCheckedException - If failed.
Follow @ApacheIgnite
Ignite Database and Caching Platform : ver. 2.15.0 Release Date : April 25 2023