public static class GridDhtPartitionDemander.RebalanceFuture extends GridFutureAdapter<Boolean>
As soon as a partition was successfully preloaded it's state is switched to OWNING, making it consistent with other copies.
To speed up things WAL can be locally disabled until preloading is finished (causing temporary durability loss for a group) , in such a case partitions are owned after a checkpoint has completed. Applicable only for persistent mode. Possible outcomes are:
True if a group was fully rebalanced (but some suppliers possibly have failed to provide data
due to unrecoverable error). This triggers completion of sync future.False if a group rebalancing was cancelled because topology has changed and new assignment is
incompatible with previous, see compatibleWith(GridDhtPreloaderAssignments).| Modifier and Type | Method and Description |
|---|---|
boolean |
cancel()
Cancels this future and proceeds to a next in the chain.
|
boolean |
compatibleWith(GridDhtPreloaderAssignments newAssignments) |
boolean |
isInitial() |
boolean |
onDone(@Nullable Boolean res,
@Nullable Throwable err,
boolean cancel) |
void |
ownPartitionsAndFinishFuture(AffinityTopologyVersion topVer,
long rebalanceId) |
void |
requestPartitions()
Asynchronously sends initial demand messages formed from
assignments and initiates supply-demand processes. |
AffinityTopologyVersion |
topologyVersion() |
String |
toString() |
chain, chain, error, get, get, get, getUninterruptibly, ignoreInterrupts, isCancelled, isDone, isFailed, listen, logger, onCancelled, onDone, onDone, onDone, onDone, reset, resultpublic void requestPartitions()
assignments and initiates supply-demand processes.
For each node participating in rebalance process method distributes set of partitions for that node to several stripes (topics).
It means that each stripe containing a subset of partitions can be processed in parallel.
The number of stripes are controlled by IgniteConfiguration.getRebalanceThreadPoolSize() property.
Partitions that can be rebalanced using only WAL are called historical, others are called full.
Before sending messages, method awaits partitions clearing for full partitions.public void ownPartitionsAndFinishFuture(AffinityTopologyVersion topVer, long rebalanceId)
topVer - Rebalancing topology version.rebalanceId - Rebalance id.public AffinityTopologyVersion topologyVersion()
public boolean isInitial()
public boolean cancel()
cancel in interface IgniteInternalFuture<Boolean>cancel in class GridFutureAdapter<Boolean>True.public boolean onDone(@Nullable
@Nullable Boolean res,
@Nullable
@Nullable Throwable err,
boolean cancel)
onDone in class GridFutureAdapter<Boolean>res - Result.err - Error.cancel - True if future is being cancelled.True if result was set by this call.public boolean compatibleWith(GridDhtPreloaderAssignments newAssignments)
newAssignments - New assignments.True when assignments are compatible and future should not be cancelled.public String toString()
toString in class GridFutureAdapter<Boolean>
Follow @ApacheIgnite
Ignite Database and Caching Platform : ver. 2.11.0 Release Date : September 11 2021