public class PartitionTxUpdateCounterImpl extends Object implements PartitionUpdateCounter
Implements new partition update counter flow to avoid situations when:
Below a short description of new flow:
RollbackRecord for further recovery purposes.| Modifier and Type | Field and Description |
|---|---|
static int |
MAX_MISSED_UPDATES
Max allowed missed updates.
|
protected AtomicLong |
reserveCntr
HWM.
|
| Constructor and Description |
|---|
PartitionTxUpdateCounterImpl() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
empty() |
boolean |
equals(Object o) |
GridLongList |
finalizeUpdateCounters()
Flushes pending update counters closing all possible gaps.
|
long |
get()
Get LWM.
|
@Nullable byte[] |
getBytes() |
protected long |
highestAppliedCounter() |
void |
init(long initUpdCntr,
@Nullable byte[] cntrUpdData)
Restores update counter state.
|
long |
initial() |
Iterator<long[]> |
iterator() |
long |
next()
Increment LWM by 1.
|
long |
next(long delta)
Increment LWM by delta.
|
long |
reserve(long delta)
Increment HWM by delta.
|
long |
reserved()
Returns HWM.
|
void |
reset()
Reset counter internal state to zero.
|
boolean |
sequential() |
String |
toString() |
void |
update(long val)
Sets update counter to absolute value.
|
boolean |
update(long start,
long delta)
Applies counter update out of range.
|
void |
updateInitial(long start,
long delta) |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorpublic static final int MAX_MISSED_UPDATES
protected final AtomicLong reserveCntr
public void init(long initUpdCntr,
@Nullable
@Nullable byte[] cntrUpdData)
init in interface PartitionUpdateCounterinitUpdCntr - LWM.cntrUpdData - Counter updates raw data.public long initial()
initial in interface PartitionUpdateCounterpublic long get()
get in interface PartitionUpdateCounterprotected long highestAppliedCounter()
public long next()
PartitionUpdateCounternext in interface PartitionUpdateCounterDataStreamerImpl IsolatedUpdater.public void update(long val)
throws IgniteCheckedException
update in interface PartitionUpdateCounterval - Absolute value.IgniteCheckedException - if counter cannot be set to passed value due to incompatibility with current state.public boolean update(long start,
long delta)
update in interface PartitionUpdateCounterstart - Start (<= lwm).delta - Delta.True if update was actually applied.public void updateInitial(long start,
long delta)
updateInitial in interface PartitionUpdateCounterstart - Counter.delta - Delta.public GridLongList finalizeUpdateCounters()
finalizeUpdateCounters in interface PartitionUpdateCounterpublic long reserve(long delta)
reserve in interface PartitionUpdateCounterdelta - Delta.public long next(long delta)
next in interface PartitionUpdateCounterdelta - Delta.public boolean sequential()
sequential in interface PartitionUpdateCounterTrue if counter has no missed updates.@Nullable public @Nullable byte[] getBytes()
getBytes in interface PartitionUpdateCounterpublic void reset()
reset in interface PartitionUpdateCounterpublic long reserved()
reserved in interface PartitionUpdateCounterpublic boolean empty()
empty in interface PartitionUpdateCounterTrue if counter has not seen any update.public Iterator<long[]> iterator()
iterator in interface Iterable<long[]>iterator in interface PartitionUpdateCounter
Follow @ApacheIgnite
Ignite Database and Caching Platform : ver. 2.8.0 Release Date : February 27 2020