@InterfaceAudience.Public
@InterfaceStability.Evolving
public interface Cell
1) row 2) column family 3) column qualifier 4) timestamp 5) type 6) MVCC version 7) value
Uniqueness is determined by the combination of row, column family, column qualifier, timestamp, and type.
The natural comparator will perform a bitwise comparison on row, column family, and column qualifier. Less intuitively, it will then treat the greater timestamp as the lesser value with the goal of sorting newer cells first.
This interface should not include methods that allocate new byte[]'s such as those used in client
or debugging code. These users should use the methods found in the CellUtil
class.
Currently for to minimize the impact of existing applications moving between 0.94 and 0.96, we
include the costly helper methods marked as deprecated.
Cell implements Comparable<Cell> which is only meaningful when comparing to other keys in the same table. It uses CellComparator which does not work on the -ROOT- and hbase:meta tables.
In the future, we may consider adding a boolean isOnHeap() method and a getValueBuffer() method that can be used to pass a value directly from an off-heap ByteBuffer to the network without copying into an on-heap byte[].
Historic note: the original Cell implementation (KeyValue) requires that all fields be encoded as consecutive bytes in the same byte[], whereas this interface allows fields to reside in separate byte[]'s.
Modifier and Type | Method and Description |
---|---|
byte[] |
getFamily()
Deprecated.
as of 0.96, use
CellUtil.cloneFamily(Cell) |
byte[] |
getFamilyArray()
Contiguous bytes composed of legal HDFS filename characters which may start at any index in the
containing array.
|
byte |
getFamilyLength() |
int |
getFamilyOffset() |
long |
getMvccVersion()
Deprecated.
as of 1.0, use
getSequenceId()
Internal use only. A region-specific sequence ID given to each operation. It always exists for
cells in the memstore but is not retained forever. It may survive several flushes, but
generally becomes irrelevant after the cell's row is no longer involved in any operations that
require strict consistency. |
byte[] |
getQualifier()
Deprecated.
as of 0.96, use
CellUtil.cloneQualifier(Cell) |
byte[] |
getQualifierArray()
Contiguous raw bytes that may start at any index in the containing array.
|
int |
getQualifierLength() |
int |
getQualifierOffset() |
byte[] |
getRow()
Deprecated.
as of 0.96, use
CellUtil.getRowByte(Cell, int) |
byte[] |
getRowArray()
Contiguous raw bytes that may start at any index in the containing array.
|
short |
getRowLength() |
int |
getRowOffset() |
long |
getSequenceId()
A region-specific unique monotonically increasing sequence ID given to each Cell.
|
byte[] |
getTagsArray() |
int |
getTagsLength() |
int |
getTagsOffset() |
long |
getTimestamp() |
byte |
getTypeByte() |
byte[] |
getValue()
Deprecated.
as of 0.96, use
CellUtil.cloneValue(Cell) |
byte[] |
getValueArray()
Contiguous raw bytes that may start at any index in the containing array.
|
int |
getValueLength() |
int |
getValueOffset() |
byte[] getRowArray()
int getRowOffset()
short getRowLength()
byte[] getFamilyArray()
int getFamilyOffset()
byte getFamilyLength()
byte[] getQualifierArray()
int getQualifierOffset()
int getQualifierLength()
long getTimestamp()
byte getTypeByte()
@Deprecated long getMvccVersion()
getSequenceId()
Internal use only. A region-specific sequence ID given to each operation. It always exists for
cells in the memstore but is not retained forever. It may survive several flushes, but
generally becomes irrelevant after the cell's row is no longer involved in any operations that
require strict consistency.long getSequenceId()
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.byte[] getValueArray()
int getValueOffset()
int getValueLength()
byte[] getTagsArray()
int getTagsOffset()
int getTagsLength()
@Deprecated byte[] getValue()
CellUtil.cloneValue(Cell)
@Deprecated byte[] getFamily()
CellUtil.cloneFamily(Cell)
@Deprecated byte[] getQualifier()
CellUtil.cloneQualifier(Cell)
@Deprecated byte[] getRow()
CellUtil.getRowByte(Cell, int)
Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.