@InterfaceAudience.Public @InterfaceStability.Stable public class Increment extends Mutation implements Comparable<Row>
This operation does not appear atomic to readers. Increments are done under a single row lock, so write operations to a row are synchronized, but readers do not take row locks so get and scan operations can see this operation partially completed.
To increment columns of a row, instantiate an Increment object with the row
to increment. At least one column to increment must be specified using the
addColumn(byte[], byte[], long)
method.
durability, familyMap, MUTATION_OVERHEAD, row, ts
ID_ATRIBUTE
Constructor and Description |
---|
Increment(byte[] row)
Create a Increment operation for the specified row.
|
Increment(byte[] row,
int offset,
int length)
Create a Increment operation for the specified row.
|
Increment(Increment i)
Copy constructor
|
Modifier and Type | Method and Description |
---|---|
Increment |
add(Cell cell)
Add the specified KeyValue to this operation.
|
Increment |
addColumn(byte[] family,
byte[] qualifier,
long amount)
Increment the column from the specific family with the specified qualifier
by the specified amount.
|
int |
compareTo(Row i) |
boolean |
equals(Object obj) |
protected long |
extraHeapSize()
Subclasses should override this method to add the heap size of their own fields.
|
Map<byte[],NavigableMap<byte[],Long>> |
getFamilyMapOfLongs()
Before 0.95, when you called Increment#getFamilyMap(), you got back
a map of families to a list of Longs.
|
TimeRange |
getTimeRange()
Gets the TimeRange used for this increment.
|
boolean |
hasFamilies()
Method for checking if any families have been inserted into this Increment
|
int |
hashCode() |
int |
numFamilies()
Method for retrieving the number of families to increment from
|
Increment |
setTimeRange(long minStamp,
long maxStamp)
Sets the TimeRange to be used on the Get for this increment.
|
String |
toString()
Produces a string representation of this Operation.
|
cellScanner, getACL, getACLStrategy, getCellVisibility, getClusterIds, getDurability, getFamilyCellMap, getFamilyMap, getFingerprint, getRow, getTimeStamp, getTTL, getWriteToWAL, heapSize, isEmpty, setACL, setACL, setACLStrategy, setCellVisibility, setClusterIds, setDurability, setFamilyCellMap, setFamilyMap, setTTL, setWriteToWAL, size, toMap
getAttribute, getAttributeSize, getAttributesMap, getId, setAttribute, setId
public Increment(byte[] row)
At least one column must be incremented.
row
- row key (we will make a copy of this).public Increment(byte[] row, int offset, int length)
At least one column must be incremented.
row
- row key (we will make a copy of this).public Increment(Increment i)
i
- public Increment add(Cell cell) throws IOException
cell
- individual CellIOException
- epublic Increment addColumn(byte[] family, byte[] qualifier, long amount)
Overrides previous calls to addColumn for this family and qualifier.
family
- family namequalifier
- column qualifieramount
- amount to increment bypublic TimeRange getTimeRange()
public Increment setTimeRange(long minStamp, long maxStamp) throws IOException
This is useful for when you have counters that only last for specific periods of time (ie. counters that are partitioned by time). By setting the range of valid times for this increment, you can potentially gain some performance with a more optimal Get operation.
This range is used as [minStamp, maxStamp).
minStamp
- minimum timestamp value, inclusivemaxStamp
- maximum timestamp value, exclusiveIOException
- if invalid time rangepublic int numFamilies()
numFamilies
in class Mutation
public boolean hasFamilies()
public Map<byte[],NavigableMap<byte[],Long>> getFamilyMapOfLongs()
Mutation.getFamilyCellMap()
returns
families by list of Cells. This method has been added so you can have the
old behavior.public String toString()
Operation
public int compareTo(Row i)
compareTo
in interface Comparable<Row>
compareTo
in class Mutation
protected long extraHeapSize()
Mutation
extraHeapSize
in class Mutation
Copyright © 2015 The Apache Software Foundation. All Rights Reserved.