Class SkipListUtils


  • public class SkipListUtils
    extends Object
    Utilities for skip list.
    • Constructor Summary

      Constructors 
      Constructor Description
      SkipListUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int getKeyDataOffset​(int level)
      Returns the offset of key data in the key space.
      static int getKeyLen​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset)
      Returns the length of the key.
      static int getKeyMetaLen​(int level)
      Returns the length of key meta with the given level.
      static long getKeyPointer​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset)
      Return the pointer to key space.
      static int getLevel​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset)
      Returns the level of the node.
      static long getNextIndexNode​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, int level)
      Returns next key pointer on the given index level.
      static long getNextKeyPointer​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset)
      Returns the next key pointer on level 0.
      static long getNextValuePointer​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset)
      Return the pointer to next value space.
      static NodeStatus getNodeStatus​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset)
      Returns the status of the node.
      static long getPrevIndexNode​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, int totalLevel, int level)
      Returns previous key pointer on the given index level.
      static int getValueLen​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset)
      Return the length of value data.
      static int getValueMetaLen()
      Returns the length of value meta.
      static long getValuePointer​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset)
      Returns the value pointer.
      static int getValueVersion​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset)
      Returns the version of value.
      static void putKeyData​(org.apache.flink.core.memory.MemorySegment segment, int offset, org.apache.flink.core.memory.MemorySegment keySegment, int keyOffset, int keyLen, int level)
      Puts the key data into key space.
      static void putKeyLen​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, int keyLen)
      Puts the length of key to the key space.
      static void putKeyPointer​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, long keyPointer)
      Puts the pointer of key space.
      static void putLevelAndNodeStatus​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, int level, NodeStatus status)
      Puts the level and status to the key space.
      static void putNextIndexNode​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, int level, long nextKeyPointer)
      Puts next key pointer on the given index level to key space.
      static void putNextKeyPointer​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, long nextKeyPointer)
      Puts the next key pointer on level 0 to key space.
      static void putNextValuePointer​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, long nextValuePointer)
      Puts the pointer of next value space.
      static void putPrevIndexNode​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, int totalLevel, int level, long prevKeyPointer)
      Puts previous key pointer on the given index level to key space.
      static void putValueData​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, byte[] value)
      Puts the value data into value space.
      static void putValueLen​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, int valueLen)
      Puts the length of value data.
      static void putValuePointer​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, long valuePointer)
      Puts the value pointer to key space.
      static void putValueVersion​(org.apache.flink.core.memory.MemorySegment memorySegment, int offset, int version)
      Puts the version of value to value space.
    • Constructor Detail

      • SkipListUtils

        public SkipListUtils()
    • Method Detail

      • getLevel

        public static int getLevel​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                   int offset)
        Returns the level of the node.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
      • getNodeStatus

        public static NodeStatus getNodeStatus​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                               int offset)
        Returns the status of the node.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
      • putLevelAndNodeStatus

        public static void putLevelAndNodeStatus​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                                 int offset,
                                                 int level,
                                                 NodeStatus status)
        Puts the level and status to the key space.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
        level - the level.
        status - the status.
      • getKeyLen

        public static int getKeyLen​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                    int offset)
        Returns the length of the key.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
      • putKeyLen

        public static void putKeyLen​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                     int offset,
                                     int keyLen)
        Puts the length of key to the key space.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
        keyLen - length of key.
      • getValuePointer

        public static long getValuePointer​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                           int offset)
        Returns the value pointer.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
      • putValuePointer

        public static void putValuePointer​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                           int offset,
                                           long valuePointer)
        Puts the value pointer to key space.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
        valuePointer - the value pointer.
      • getNextKeyPointer

        public static long getNextKeyPointer​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                             int offset)
        Returns the next key pointer on level 0.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
      • putNextKeyPointer

        public static void putNextKeyPointer​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                             int offset,
                                             long nextKeyPointer)
        Puts the next key pointer on level 0 to key space.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
        nextKeyPointer - next key pointer on level 0.
      • getNextIndexNode

        public static long getNextIndexNode​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                            int offset,
                                            int level)
        Returns next key pointer on the given index level.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
        level - level of index.
      • putNextIndexNode

        public static void putNextIndexNode​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                            int offset,
                                            int level,
                                            long nextKeyPointer)
        Puts next key pointer on the given index level to key space.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
        level - level of index.
        nextKeyPointer - next key pointer on the given level.
      • getPrevIndexNode

        public static long getPrevIndexNode​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                            int offset,
                                            int totalLevel,
                                            int level)
        Returns previous key pointer on the given index level.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
        totalLevel - the level of the node.
        level - on which level to get the previous key pointer of the node.
      • putPrevIndexNode

        public static void putPrevIndexNode​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                            int offset,
                                            int totalLevel,
                                            int level,
                                            long prevKeyPointer)
        Puts previous key pointer on the given index level to key space.
        Parameters:
        memorySegment - memory segment for key space.
        offset - offset of key space in the memory segment.
        totalLevel - top level of the key.
        level - level of index.
        prevKeyPointer - previous key pointer on the given level.
      • getKeyMetaLen

        public static int getKeyMetaLen​(int level)
        Returns the length of key meta with the given level.
        Parameters:
        level - level of the key.
      • getKeyDataOffset

        public static int getKeyDataOffset​(int level)
        Returns the offset of key data in the key space.
        Parameters:
        level - level of the key.
      • putKeyData

        public static void putKeyData​(org.apache.flink.core.memory.MemorySegment segment,
                                      int offset,
                                      org.apache.flink.core.memory.MemorySegment keySegment,
                                      int keyOffset,
                                      int keyLen,
                                      int level)
        Puts the key data into key space.
        Parameters:
        segment - memory segment for key space.
        offset - offset of key space in memory segment.
        keySegment - memory segment for key data.
        keyOffset - offset of key data in memory segment.
        keyLen - length of key data.
        level - level of the key.
      • getValueVersion

        public static int getValueVersion​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                          int offset)
        Returns the version of value.
        Parameters:
        memorySegment - memory segment for value space.
        offset - offset of value space in memory segment.
      • putValueVersion

        public static void putValueVersion​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                           int offset,
                                           int version)
        Puts the version of value to value space.
        Parameters:
        memorySegment - memory segment for value space.
        offset - offset of value space in memory segment.
        version - version of value.
      • getKeyPointer

        public static long getKeyPointer​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                         int offset)
        Return the pointer to key space.
        Parameters:
        memorySegment - memory segment for value space.
        offset - offset of value space in memory segment.
      • putKeyPointer

        public static void putKeyPointer​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                         int offset,
                                         long keyPointer)
        Puts the pointer of key space.
        Parameters:
        memorySegment - memory segment for value space.
        offset - offset of value space in memory segment.
        keyPointer - pointer to key space.
      • getNextValuePointer

        public static long getNextValuePointer​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                               int offset)
        Return the pointer to next value space.
        Parameters:
        memorySegment - memory segment for value space.
        offset - offset of value space in memory segment.
      • putNextValuePointer

        public static void putNextValuePointer​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                               int offset,
                                               long nextValuePointer)
        Puts the pointer of next value space.
        Parameters:
        memorySegment - memory segment for value space.
        offset - offset of value space in memory segment.
        nextValuePointer - pointer to next value space.
      • getValueLen

        public static int getValueLen​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                      int offset)
        Return the length of value data.
        Parameters:
        memorySegment - memory segment for value space.
        offset - offset of value space in memory segment.
      • putValueLen

        public static void putValueLen​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                       int offset,
                                       int valueLen)
        Puts the length of value data.
        Parameters:
        memorySegment - memory segment for value space.
        offset - offset of value space in memory segment.
        valueLen - length of value data.
      • getValueMetaLen

        public static int getValueMetaLen()
        Returns the length of value meta.
      • putValueData

        public static void putValueData​(org.apache.flink.core.memory.MemorySegment memorySegment,
                                        int offset,
                                        byte[] value)
        Puts the value data into value space.
        Parameters:
        memorySegment - memory segment for value space.
        offset - offset of value space in memory segment.
        value - value data.