Package org.apache.hadoop.hbase
Class PrivateCellUtil.TagRewriteCell
java.lang.Object
org.apache.hadoop.hbase.PrivateCellUtil.TagRewriteCell
- All Implemented Interfaces:
Cell
,ExtendedCell
,HeapSize
,RawCell
- Direct Known Subclasses:
PrivateCellUtil.ValueAndTagRewriteCell
- Enclosing class:
- PrivateCellUtil
This can be used when a Cell has to change with addition/removal of one or more tags. This is
an efficient way to do so in which only the tags bytes part need to recreated and copied. All
other parts, refer to the original Cell.
-
Nested Class Summary
-
Field Summary
Fields inherited from interface org.apache.hadoop.hbase.ExtendedCell
CELL_NOT_BASED_ON_CHUNK
Fields inherited from interface org.apache.hadoop.hbase.RawCell
MAX_TAGS_LENGTH
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionDoes a deep copy of the contents to a new memory area and returns it as a new cell.byte[]
Contiguous bytes composed of legal HDFS filename characters which may start at any index in the containing array.byte
Returns Number of family bytes.int
Returns Array index of first family bytebyte[]
Contiguous raw bytes that may start at any index in the containing array.int
Returns Number of qualifier bytes.int
Returns Array index of first qualifier bytebyte[]
Contiguous raw bytes that may start at any index in the containing array.short
Returns Number of row bytes.int
Returns Array index of first row bytelong
A region-specific unique monotonically increasing sequence ID given to each Cell.int
getSerializedSize
(boolean withTags) KeyValue formatbyte[]
Contiguous raw bytes representing tags that may start at any index in the containing array.int
HBase internally uses 2 bytes to store tags length in Cell.int
Returns the first offset where the tags start in the Celllong
Return a long value representing time at which this cell was "Put" into the row.byte
Returns The byte representation of the KeyValue.TYPE of this cell: one of Put, Delete, etcbyte[]
Contiguous raw bytes that may start at any index in the containing array.int
Returns Number of value bytes.int
Returns Array index of first value bytelong
heapSize()
Return the approximate 'exclusive deep size' of implementing object.void
setSequenceId
(long seqId) Sets with the given seqId.void
setTimestamp
(byte[] ts) Sets with the given timestamp.void
setTimestamp
(long ts) Sets with the given timestamp.int
write
(OutputStream out, boolean withTags) Write this cell to an OutputStream in aKeyValue
format.void
write
(ByteBuffer buf, int offset) Write this Cell into the given buf's offset in aKeyValue
format.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.hadoop.hbase.ExtendedCell
getChunkId, getSerializedSize
-
Field Details
-
cell
-
tags
-
HEAP_SIZE_OVERHEAD
-
-
Constructor Details
-
TagRewriteCell
Construct a TagRewriteCell- Parameters:
cell
- The original Cell which it rewritestags
- the tags bytes. The array suppose to contain the tags bytes alone.
-
-
Method Details
-
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 interfaceCell
- Returns:
- The array containing the row bytes.
-
getRowOffset
Description copied from interface:Cell
Returns Array index of first row byte- Specified by:
getRowOffset
in interfaceCell
-
getRowLength
Description copied from interface:Cell
Returns Number of row bytes. Must be < rowArray.length - offset.- Specified by:
getRowLength
in interfaceCell
-
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 interfaceCell
- Returns:
- the array containing the family bytes.
-
getFamilyOffset
Description copied from interface:Cell
Returns Array index of first family byte- Specified by:
getFamilyOffset
in interfaceCell
-
getFamilyLength
Description copied from interface:Cell
Returns Number of family bytes. Must be < familyArray.length - offset.- Specified by:
getFamilyLength
in interfaceCell
-
getQualifierArray
Description copied from interface:Cell
Contiguous raw bytes that may start at any index in the containing array.- Specified by:
getQualifierArray
in interfaceCell
- Returns:
- The array containing the qualifier bytes.
-
getQualifierOffset
Description copied from interface:Cell
Returns Array index of first qualifier byte- Specified by:
getQualifierOffset
in interfaceCell
-
getQualifierLength
Description copied from interface:Cell
Returns Number of qualifier bytes. Must be < qualifierArray.length - offset.- Specified by:
getQualifierLength
in interfaceCell
-
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 interfaceCell
-
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 interfaceCell
- Specified by:
getTypeByte
in interfaceExtendedCell
-
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 forHConstants.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 interfaceCell
- Specified by:
getSequenceId
in interfaceExtendedCell
- Returns:
- seqId (always > 0 if exists), or 0 if it no longer exists
-
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 interfaceCell
- Returns:
- The array containing the value bytes.
-
getValueOffset
Description copied from interface:Cell
Returns Array index of first value byte- Specified by:
getValueOffset
in interfaceCell
-
getValueLength
Description copied from interface:Cell
Returns Number of value bytes. Must be < valueArray.length - offset.- Specified by:
getValueLength
in interfaceCell
-
getTagsArray
Description copied from interface:ExtendedCell
Contiguous raw bytes representing tags that may start at any index in the containing array.- Specified by:
getTagsArray
in interfaceCell
- Specified by:
getTagsArray
in interfaceExtendedCell
- Returns:
- the tags byte array
-
getTagsOffset
Description copied from interface:ExtendedCell
Returns the first offset where the tags start in the Cell- Specified by:
getTagsOffset
in interfaceCell
- Specified by:
getTagsOffset
in interfaceExtendedCell
-
getTagsLength
Description copied from interface:ExtendedCell
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 interfaceCell
- Specified by:
getTagsLength
in interfaceExtendedCell
- Returns:
- the total length of the tags in the Cell.
-
heapSize
Description copied from interface:HeapSize
Return the approximate 'exclusive deep size' of implementing object. Includes count of payload and hosting object sizings. -
setTimestamp
Description copied from interface:ExtendedCell
Sets with the given timestamp.- Specified by:
setTimestamp
in interfaceExtendedCell
- Parameters:
ts
- timestamp- Throws:
IOException
-
setTimestamp
Description copied from interface:ExtendedCell
Sets with the given timestamp.- Specified by:
setTimestamp
in interfaceExtendedCell
- Parameters:
ts
- buffer containing the timestamp value- Throws:
IOException
-
setSequenceId
Description copied from interface:ExtendedCell
Sets with the given seqId.- Specified by:
setSequenceId
in interfaceExtendedCell
- Parameters:
seqId
- sequence ID- Throws:
IOException
-
write
Description copied from interface:ExtendedCell
Write this cell to an OutputStream in aKeyValue
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 interfaceExtendedCell
- Parameters:
out
- Stream to which cell has to be writtenwithTags
- Whether to write tags.- Returns:
- how many bytes are written.
- Throws:
IOException
-
getSerializedSize
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 interfaceExtendedCell
- Parameters:
withTags
- Whether to write tags.- Returns:
- Bytes count required to serialize this Cell in a
KeyValue
format.
-
write
Description copied from interface:ExtendedCell
Write this Cell into the given buf's offset in aKeyValue
format.- Specified by:
write
in interfaceExtendedCell
- Parameters:
buf
- The buffer where to write the Cell.offset
- The offset within buffer, to write the Cell.
-
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 interfaceExtendedCell
- Returns:
- The deep cloned cell
-