Class GridDhtPartitionDemander.RebalanceFuture

  • All Implemented Interfaces:
    IgniteInternalFuture<Boolean>
    Enclosing class:
    GridDhtPartitionDemander

    public static class GridDhtPartitionDemander.RebalanceFuture
    extends GridFutureAdapter<Boolean>
    The future is created for each topology version if some partitions should present by affinity and completed when all partitions are transferred.

    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).
    • Method Detail

      • requestPartitions

        public void requestPartitions()
        Asynchronously sends initial demand messages formed from 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.
      • ownPartitionsAndFinishFuture

        public void ownPartitionsAndFinishFuture​(AffinityTopologyVersion topVer,
                                                 long rebalanceId)
        Parameters:
        topVer - Rebalancing topology version.
        rebalanceId - Rebalance id.
      • isInitial

        public boolean isInitial()
        Returns:
        Is initial (created at demander creation).
      • onDone

        public boolean onDone​(@Nullable
                              @Nullable Boolean res,
                              @Nullable
                              @Nullable Throwable err,
                              boolean cancel)
        Overrides:
        onDone in class GridFutureAdapter<Boolean>
        Parameters:
        res - Result.
        err - Error.
        cancel - True if future is being cancelled.
        Returns:
        True if result was set by this call.
      • compatibleWith

        public boolean compatibleWith​(GridDhtPreloaderAssignments newAssignments)
        Parameters:
        newAssignments - New assignments.
        Returns:
        True when assignments are compatible and future should not be cancelled.