Class BufferedDataBlockEncoder.OnheapDecodedCell

java.lang.Object
org.apache.hadoop.hbase.io.encoding.BufferedDataBlockEncoder.OnheapDecodedCell
All Implemented Interfaces:
Cell, ExtendedCell, HeapSize, RawCell
Enclosing class:
BufferedDataBlockEncoder

protected static class BufferedDataBlockEncoder.OnheapDecodedCell extends Object implements ExtendedCell
Copies only the key part of the keybuffer by doing a deep copy and passes the seeker state members for taking a clone. Note that the value byte[] part is still pointing to the currentBuffer and represented by the valueOffset and valueLength
  • Field Details

  • Constructor Details

    • OnheapDecodedCell

      protected OnheapDecodedCell(byte[] keyBuffer, short rowLength, int familyOffset, byte familyLength, int qualOffset, int qualLength, long timeStamp, byte typeByte, byte[] valueBuffer, int valueOffset, int valueLen, long seqId, byte[] tagsBuffer, int tagsOffset, int tagsLength)
  • Method Details

    • getRowArray

      public byte[] getRowArray()
      Description copied from interface: Cell
      Contiguous raw bytes that may start at any index in the containing array. Max length is Short.MAX_VALUE which is 32,767 bytes.
      Specified by:
      getRowArray in interface Cell
      Returns:
      The array containing the row bytes.
    • getFamilyArray

      public byte[] getFamilyArray()
      Description copied from interface: Cell
      Contiguous bytes composed of legal HDFS filename characters which may start at any index in the containing array. Max length is Byte.MAX_VALUE, which is 127 bytes.
      Specified by:
      getFamilyArray in interface Cell
      Returns:
      the array containing the family bytes.
    • getQualifierArray

      public byte[] getQualifierArray()
      Description copied from interface: Cell
      Contiguous raw bytes that may start at any index in the containing array.
      Specified by:
      getQualifierArray in interface Cell
      Returns:
      The array containing the qualifier bytes.
    • getRowOffset

      public int getRowOffset()
      Description copied from interface: Cell
      Returns Array index of first row byte
      Specified by:
      getRowOffset in interface Cell
    • getRowLength

      public short getRowLength()
      Description copied from interface: Cell
      Returns Number of row bytes. Must be < rowArray.length - offset.
      Specified by:
      getRowLength in interface Cell
    • getFamilyOffset

      public int getFamilyOffset()
      Description copied from interface: Cell
      Returns Array index of first family byte
      Specified by:
      getFamilyOffset in interface Cell
    • getFamilyLength

      public byte getFamilyLength()
      Description copied from interface: Cell
      Returns Number of family bytes. Must be < familyArray.length - offset.
      Specified by:
      getFamilyLength in interface Cell
    • getQualifierOffset

      public int getQualifierOffset()
      Description copied from interface: Cell
      Returns Array index of first qualifier byte
      Specified by:
      getQualifierOffset in interface Cell
    • getQualifierLength

      public int getQualifierLength()
      Description copied from interface: Cell
      Returns Number of qualifier bytes. Must be < qualifierArray.length - offset.
      Specified by:
      getQualifierLength in interface Cell
    • getTimestamp

      public long getTimestamp()
      Description copied from interface: Cell
      Return a long value representing time at which this cell was "Put" into the row. Typically represents the time of insertion, but can be any value from 0 to Long.MAX_VALUE.
      Specified by:
      getTimestamp in interface Cell
    • getTypeByte

      public byte getTypeByte()
      Description copied from interface: ExtendedCell
      Returns The byte representation of the KeyValue.TYPE of this cell: one of Put, Delete, etc
      Specified by:
      getTypeByte in interface ExtendedCell
    • getSequenceId

      public long getSequenceId()
      Description copied from interface: ExtendedCell
      A region-specific unique monotonically increasing sequence ID given to each Cell. It always exists for cells in the memstore but is not retained forever. It will be kept for HConstants.KEEP_SEQID_PERIOD days, but generally becomes irrelevant after the cell's row is no longer involved in any operations that require strict consistency.
      Specified by:
      getSequenceId in interface ExtendedCell
      Returns:
      seqId (always > 0 if exists), or 0 if it no longer exists
    • getValueArray

      public byte[] getValueArray()
      Description copied from interface: Cell
      Contiguous raw bytes that may start at any index in the containing array. Max length is Integer.MAX_VALUE which is 2,147,483,647 bytes.
      Specified by:
      getValueArray in interface Cell
      Returns:
      The array containing the value bytes.
    • getValueOffset

      public int getValueOffset()
      Description copied from interface: Cell
      Returns Array index of first value byte
      Specified by:
      getValueOffset in interface Cell
    • getValueLength

      public int getValueLength()
      Description copied from interface: Cell
      Returns Number of value bytes. Must be < valueArray.length - offset.
      Specified by:
      getValueLength in interface Cell
    • getTagsArray

      public byte[] getTagsArray()
      Description copied from interface: RawCell
      Contiguous raw bytes representing tags that may start at any index in the containing array.
      Specified by:
      getTagsArray in interface RawCell
      Returns:
      the tags byte array
    • getTagsOffset

      public int getTagsOffset()
      Description copied from interface: RawCell
      Return the first offset where the tags start in the Cell
      Specified by:
      getTagsOffset in interface RawCell
    • getTagsLength

      public int getTagsLength()
      Description copied from interface: RawCell
      HBase internally uses 2 bytes to store tags length in Cell. As the tags length is always a non-negative number, to make good use of the sign bit, the max of tags length is defined 2 * Short.MAX_VALUE + 1 = 65535. As a result, the return type is int, because a short is not capable of handling that. Please note that even if the return type is int, the max tags length is far less than Integer.MAX_VALUE.
      Specified by:
      getTagsLength in interface RawCell
      Returns:
      the total length of the tags in the Cell.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • setSequenceId

      public void setSequenceId(long seqId)
      Description copied from interface: ExtendedCell
      Sets with the given seqId.
      Specified by:
      setSequenceId in interface ExtendedCell
      Parameters:
      seqId - sequence ID
    • heapSize

      public long heapSize()
      Description copied from interface: HeapSize
      Return the approximate 'exclusive deep size' of implementing object. Includes count of payload and hosting object sizings.
      Specified by:
      heapSize in interface HeapSize
    • write

      public int write(OutputStream out, boolean withTags) throws IOException
      Description copied from interface: ExtendedCell
      Write this cell to an OutputStream in a KeyValue format.
      KeyValue format
      <4 bytes keylength> <4 bytes valuelength> <2 bytes rowlength> <row> <1 byte columnfamilylength> <columnfamily> <columnqualifier> <8 bytes timestamp> <1 byte keytype> <value> <2 bytes tagslength> <tags>
      Specified by:
      write in interface ExtendedCell
      Parameters:
      out - Stream to which cell has to be written
      withTags - Whether to write tags.
      Returns:
      how many bytes are written.
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize(boolean withTags)
      Description copied from interface: ExtendedCell
      KeyValue format

      <4 bytes keylength> <4 bytes valuelength> <2 bytes rowlength> <row> <1 byte columnfamilylength> <columnfamily> <columnqualifier> <8 bytes timestamp> <1 byte keytype> <value> <2 bytes tagslength> <tags>

      Specified by:
      getSerializedSize in interface ExtendedCell
      Parameters:
      withTags - Whether to write tags.
      Returns:
      Bytes count required to serialize this Cell in a KeyValue format.
    • write

      public void write(ByteBuffer buf, int offset)
      Description copied from interface: ExtendedCell
      Write this Cell into the given buf's offset in a KeyValue format.
      Specified by:
      write in interface ExtendedCell
      Parameters:
      buf - The buffer where to write the Cell.
      offset - The offset within buffer, to write the Cell.
    • setTimestamp

      public void setTimestamp(long ts) throws IOException
      Description copied from interface: ExtendedCell
      Sets with the given timestamp.
      Specified by:
      setTimestamp in interface ExtendedCell
      Parameters:
      ts - timestamp
      Throws:
      IOException
    • setTimestamp

      public void setTimestamp(byte[] ts) throws IOException
      Description copied from interface: ExtendedCell
      Sets with the given timestamp.
      Specified by:
      setTimestamp in interface ExtendedCell
      Parameters:
      ts - buffer containing the timestamp value
      Throws:
      IOException
    • deepClone

      Description copied from interface: ExtendedCell
      Does a deep copy of the contents to a new memory area and returns it as a new cell.
      Specified by:
      deepClone in interface ExtendedCell
      Returns:
      The deep cloned cell