public interface ScatteredVersionManager<K>
Modifier and Type | Interface and Description |
---|---|
static class |
ScatteredVersionManager.SegmentState |
Modifier and Type | Method and Description |
---|---|
void |
clearInvalidations()
Forget all non-processed invalidations scheduled through
scheduleKeyInvalidation(Object, EntryVersion, boolean) |
CompletableFuture<Void> |
getBlockingFuture(int segment) |
ScatteredVersionManager.SegmentState |
getSegmentState(int segment) |
EntryVersion |
incrementVersion(int segment)
Generates a new version for an entry in given segment.
|
boolean |
isVersionActual(int segment,
EntryVersion version) |
void |
notifyKeyTransferFinished(int segment,
boolean expectValues,
boolean cancelled)
All key + version data from given segment have been received, or the key transfer failed.
|
void |
notifyValueTransferFinished()
All entries have been received and we can put segments owned according to consistent hash
to
ScatteredVersionManager.SegmentState.OWNED state. |
void |
registerSegment(int segment)
Move the segment to
ScatteredVersionManager.SegmentState.BLOCKED state. |
void |
scheduleKeyInvalidation(K key,
EntryVersion version,
boolean removal)
Notifies the manager that an operation on given key with version previously retrieved from
incrementVersion(int) has finished. |
void |
setOwnedSegments(IntSet segments)
Move the segment from
ScatteredVersionManager.SegmentState.NOT_OWNED to ScatteredVersionManager.SegmentState.OWNED without transferring data. |
void |
setTopologyId(int topologyId)
Set current topology id.
|
void |
setValuesTransferTopology(int topologyId) |
void |
startKeyTransfer(IntSet segments)
Move the segments from
ScatteredVersionManager.SegmentState.BLOCKED to ScatteredVersionManager.SegmentState.KEY_TRANSFER state. |
void |
unregisterSegment(int segment)
Move the segment to
ScatteredVersionManager.SegmentState.NOT_OWNED state. |
void |
updatePreloadedEntryVersion(EntryVersion version)
This is called only during preload.
|
CompletableFuture<Void> |
valuesFuture(int topologyId) |
EntryVersion incrementVersion(int segment)
segment
- boolean isVersionActual(int segment, EntryVersion version)
segment
- version
- void scheduleKeyInvalidation(K key, EntryVersion version, boolean removal)
incrementVersion(int)
has finished. This operation has to be executed on originator of the operation
once the entry was stored on both nodes.
Eventually order versions of entries will be removed on other nodes. When the entry was completely removed
by the operation, the nodes have stored a tombstone of that entry. The older versions will be dropped regularly
and after this is confirmed the tombstones will be invalidated, too.key
- version
- removal
- void clearInvalidations()
scheduleKeyInvalidation(Object, EntryVersion, boolean)
void registerSegment(int segment)
ScatteredVersionManager.SegmentState.BLOCKED
state.segment
- void unregisterSegment(int segment)
ScatteredVersionManager.SegmentState.NOT_OWNED
state.segment
- void setOwnedSegments(IntSet segments)
ScatteredVersionManager.SegmentState.NOT_OWNED
to ScatteredVersionManager.SegmentState.OWNED
without transferring data.segments
- void startKeyTransfer(IntSet segments)
ScatteredVersionManager.SegmentState.BLOCKED
to ScatteredVersionManager.SegmentState.KEY_TRANSFER
state.void notifyKeyTransferFinished(int segment, boolean expectValues, boolean cancelled)
segment
- expectValues
- True when the transfer failed and the segment will be moved
to the ScatteredVersionManager.SegmentState.OWNED
state without waiting for values.cancelled
- True is the transfer was cancelled due to a new topology - in that case
the segment will end up in ScatteredVersionManager.SegmentState.NOT_OWNED
. This takes
precedence over expectValues
.void notifyValueTransferFinished()
ScatteredVersionManager.SegmentState.OWNED
state.ScatteredVersionManager.SegmentState getSegmentState(int segment)
segment
- status
of the segment.CompletableFuture<Void> getBlockingFuture(int segment)
segment
- ScatteredVersionManager.SegmentState.BLOCKED
state.void setValuesTransferTopology(int topologyId)
CompletableFuture<Void> valuesFuture(int topologyId)
CompletableFuture
that completes when value transfer has finished for the given topology id.void setTopologyId(int topologyId)
topologyId
- void updatePreloadedEntryVersion(EntryVersion version)
version
- Copyright © 2021 JBoss by Red Hat. All rights reserved.