Class BPlusTree.RemoveRange

java.lang.Object
BPlusTree<L,T>.Get
BPlusTree<L,T>.Remove
org.apache.ignite.internal.persistence.tree.BPlusTree.RemoveRange
All Implemented Interfaces:
ReuseBag
Enclosing class:
BPlusTree<L,T extends L>

protected class BPlusTree.RemoveRange extends BPlusTree<L,T>.Remove
The operation of deleting a range of values.

Performs the removal of several elements from the leaf at once.

  • Constructor Details

    • RemoveRange

      protected RemoveRange(L lower, L upper, boolean needOld, int limit)
      Parameters:
      lower - Lower bound (inclusive).
      upper - Upper bound (inclusive).
      needOld - True If need return old value.
  • Method Details

    • ceil

      protected boolean ceil()
      Overrides:
      ceil in class BPlusTree<L,T extends L>.Remove
      Returns:
      Flag indicating that values are removed using an interval (i.e. BPlusTree.Get.row specifies the start of the interval, not an exact match).
    • removeDataRowFromLeaf

      protected void removeDataRowFromLeaf(long pageId, long page, long pageAddr, Boolean walPlc, BPlusIO<L> io, int cnt, int idx) throws IgniteCheckedException
      Overrides:
      removeDataRowFromLeaf in class BPlusTree<L,T extends L>.Remove
      Parameters:
      pageId - Page ID.
      page - Page pointer.
      pageAddr - Page address.
      walPlc - Full page WAL record policy.
      io - IO.
      cnt - Count.
      idx - Index to remove.
      Throws:
      IgniteCheckedException - If failed.
    • releaseForRetry

      protected boolean releaseForRetry(org.apache.ignite.internal.persistence.tree.BPlusTree.Tail<L> t) throws IgniteCheckedException
      Overrides:
      releaseForRetry in class BPlusTree<L,T extends L>.Remove
      Parameters:
      t - Tail to release.
      Returns:
      true If we need to retry or false to exit.
      Throws:
      IgniteCheckedException
    • finish

      protected BPlusTree.Result finish(BPlusTree.Result res)
      Finish the operation.
      Overrides:
      finish in class BPlusTree<L,T extends L>.Remove
    • releaseTail

      protected final void releaseTail() throws IgniteCheckedException
      Release pages for all locked levels at the tail.
      Throws:
      IgniteCheckedException
    • checkTailLevel

      protected final boolean checkTailLevel(int rootLvl)
      Parameters:
      rootLvl - Actual root level.
      Returns:
      true If tail level is correct.
    • doReleaseTail

      protected final void doReleaseTail(org.apache.ignite.internal.persistence.tree.BPlusTree.Tail<L> t) throws IgniteCheckedException
      Parameters:
      t - Tail.
      Throws:
      IgniteCheckedException - If failed.
    • canRelease

      public final boolean canRelease(long pageId, int lvl)
      Overrides:
      canRelease in class BPlusTree<L,T extends L>.Get
      Parameters:
      pageId - Page.
      lvl - Level.
      Returns:
      true If we can release the given page.
    • isTail

      protected final boolean isTail(long pageId, int lvl)
      Parameters:
      pageId - Page ID.
      lvl - Level.
      Returns:
      true If the given page is in tail.
    • addTail

      protected final org.apache.ignite.internal.persistence.tree.BPlusTree.Tail<L> addTail(long pageId, long page, long pageAddr, BPlusIO<L> io, int lvl, byte type)
      Parameters:
      pageId - Page ID.
      page - Page pointer.
      pageAddr - Page address.
      io - IO.
      lvl - Level.
      type - Type.
      Returns:
      Added tail.
    • getTail

      protected final org.apache.ignite.internal.persistence.tree.BPlusTree.Tail<L> getTail(org.apache.ignite.internal.persistence.tree.BPlusTree.Tail<L> tail, int lvl)
      Parameters:
      tail - Tail to start with.
      lvl - Level.
      Returns:
      Tail of BPlusTree.Tail.EXACT type at the given level.
    • insertionPoint

      protected final int insertionPoint(org.apache.ignite.internal.persistence.tree.BPlusTree.Tail<L> tail) throws IgniteCheckedException
      Parameters:
      tail - Tail.
      Returns:
      Insertion point. May be negative.
      Throws:
      IgniteCheckedException - If failed.
    • printTail

      protected final String printTail(boolean keys) throws IgniteCheckedException
      Parameters:
      keys - If we have to show keys.
      Returns:
      Tail as a String.
      Throws:
      IgniteCheckedException - If failed.