org.openspaces.grid.gsm.rebalancing
Class RebalancingUtils
java.lang.Object
  
org.openspaces.grid.gsm.rebalancing.RebalancingUtils
public class RebalancingUtils
- extends Object
 
 
| 
Method Summary | 
static org.openspaces.core.internal.commons.math.fraction.Fraction | 
getAverageCpuCoresPerPrimary(ProcessingUnit pu,
                             CapacityRequirementsPerAgent aggregatedAllocatedCapacity)
 
            | 
static GridServiceContainer[] | 
getContainersOnMachines(ProcessingUnit pu)
 
            | 
static Machine[] | 
getMachinesHostingContainers(GridServiceContainer[] containers)
 
            | 
static org.openspaces.core.internal.commons.math.fraction.Fraction | 
getNumberOfCpuCores(Machine machine,
                    CapacityRequirementsPerAgent allocatedCapacity)
 
            | 
static int | 
getNumberOfPrimaryInstancesOnMachine(ProcessingUnit pu,
                                     Machine machine)
 
            | 
static org.openspaces.core.internal.commons.math.fraction.Fraction | 
getNumberOfPrimaryInstancesPerCpuCore(ProcessingUnit pu,
                                      Machine machine,
                                      CapacityRequirementsPerAgent allocatedCapacity)
 
            | 
static Set<ProcessingUnitInstance> | 
getOtherInstancesFromSamePartition(ProcessingUnitInstance instance)
 
            | 
static Set<ProcessingUnitInstance> | 
getOtherInstancesFromSamePartitionInContainer(GridServiceContainer container,
                                              ProcessingUnitInstance instance)
 
            | 
static Set<ProcessingUnitInstance> | 
getOtherInstancesFromSamePartitionInMachine(Machine machine,
                                            ProcessingUnitInstance puInstance)
 
            | 
static int | 
getPlannedMaximumNumberOfInstancesForContainer(GridServiceContainer container,
                                               GridServiceContainer[] approvedContainers,
                                               ProcessingUnit pu)
 
            | 
static int | 
getPlannedMinimumNumberOfInstancesForContainer(GridServiceContainer container,
                                               GridServiceContainer[] approvedContainers,
                                               ProcessingUnit pu)
 
            | 
static GridServiceContainer[] | 
getReplicationSourceContainers(ProcessingUnitInstance instance)
 
            | 
static String | 
gscsToString(List<GridServiceContainer> containers)
 
            | 
static String | 
gscToString(GridComponent container)
 
            | 
static boolean | 
isEvenlyDistributedAcrossContainers(ProcessingUnit pu,
                                    GridServiceContainer[] containers)
 
            | 
static boolean | 
isEvenlyDistributedAcrossMachines(ProcessingUnit pu,
                                  CapacityRequirementsPerAgent aggregatedAllocatedCapacity)
 
            | 
static boolean | 
isProcessingUnitHasMinimumNumberOfInstancesPerPartition(ProcessingUnit pu,
                                                        int minimumNumberOfInstancesPerPartition)
 
            | 
static boolean | 
isProcessingUnitIntact(ProcessingUnit pu)
 
            | 
static boolean | 
isProcessingUnitIntact(ProcessingUnit pu,
                       GridServiceContainer[] containers)
 
            | 
static boolean | 
isProcessingUnitPartitionIntact(ProcessingUnitInstance instance)
 
            | 
static boolean | 
isProcessingUnitPartitionIntact(ProcessingUnit pu,
                                int instanceId,
                                GridServiceContainer[] containers)
 
            | 
static boolean | 
isRestartRecommended(ProcessingUnit pu,
                     Machine source,
                     Machine target,
                     org.openspaces.core.internal.commons.math.fraction.Fraction optimalCpuCoresPerPrimary,
                     CapacityRequirementsPerAgent allocatedCapacity)
 
            | 
static String | 
machineToString(Machine machine)
 
            | 
static String | 
processingUnitDeploymentToString(ProcessingUnit pu)
 
            | 
static String | 
puInstanceToString(ProcessingUnitInstance instance)
 
            | 
static FutureStatefulProcessingUnitInstance | 
restartProcessingUnitInstanceAsync(ProcessingUnitInstance candidateInstance,
                                   Log logger,
                                   int timeout,
                                   TimeUnit timeUnit)
 
            | 
static List<GridServiceContainer> | 
sortAllContainersByNumberOfInstancesAboveMinimum(ProcessingUnit pu,
                                                 GridServiceContainer[] approvedContainers)
 
          Sorts all of the admin containers based on 
 (number of instances from the specified pu - min number of instances)
 If the container is not in the specified approved container list then min=0, meaning
 it will get a higher weight in the sort. | 
static List<Machine> | 
sortMachinesByNumberOfPrimaryInstancesPerCpuCore(ProcessingUnit pu,
                                                 Machine[] machines,
                                                 CapacityRequirementsPerAgent allocatedCapacity)
 
            | 
 
| Methods inherited from class java.lang.Object | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
RebalancingUtils
public RebalancingUtils()
getReplicationSourceContainers
public static GridServiceContainer[] getReplicationSourceContainers(ProcessingUnitInstance instance)
- Parameters:
 instance - 
- Returns:
 - list of containers that are used by the relocated processing unit instance to synchronize all data.
 
 
isProcessingUnitIntact
public static boolean isProcessingUnitIntact(ProcessingUnit pu,
                                             GridServiceContainer[] containers)
 
isProcessingUnitHasMinimumNumberOfInstancesPerPartition
public static boolean isProcessingUnitHasMinimumNumberOfInstancesPerPartition(ProcessingUnit pu,
                                                                              int minimumNumberOfInstancesPerPartition)
 
isProcessingUnitPartitionIntact
public static boolean isProcessingUnitPartitionIntact(ProcessingUnitInstance instance)
 
isProcessingUnitIntact
public static boolean isProcessingUnitIntact(ProcessingUnit pu)
 
isProcessingUnitPartitionIntact
public static boolean isProcessingUnitPartitionIntact(ProcessingUnit pu,
                                                      int instanceId,
                                                      GridServiceContainer[] containers)
 
getOtherInstancesFromSamePartition
public static Set<ProcessingUnitInstance> getOtherInstancesFromSamePartition(ProcessingUnitInstance instance)
- Parameters:
 instance - 
- Returns:
 - all instances from the same partition that is not the specified instance.
 
 
getOtherInstancesFromSamePartitionInContainer
public static Set<ProcessingUnitInstance> getOtherInstancesFromSamePartitionInContainer(GridServiceContainer container,
                                                                                        ProcessingUnitInstance instance)
 
getOtherInstancesFromSamePartitionInMachine
public static Set<ProcessingUnitInstance> getOtherInstancesFromSamePartitionInMachine(Machine machine,
                                                                                      ProcessingUnitInstance puInstance)
 
isEvenlyDistributedAcrossMachines
public static boolean isEvenlyDistributedAcrossMachines(ProcessingUnit pu,
                                                        CapacityRequirementsPerAgent aggregatedAllocatedCapacity)
 
isRestartRecommended
public static boolean isRestartRecommended(ProcessingUnit pu,
                                           Machine source,
                                           Machine target,
                                           org.openspaces.core.internal.commons.math.fraction.Fraction optimalCpuCoresPerPrimary,
                                           CapacityRequirementsPerAgent allocatedCapacity)
 
getContainersOnMachines
public static GridServiceContainer[] getContainersOnMachines(ProcessingUnit pu)
- Returns:
 - all containers that the gsm can deploy the specified pu.
 
 
isEvenlyDistributedAcrossContainers
public static boolean isEvenlyDistributedAcrossContainers(ProcessingUnit pu,
                                                          GridServiceContainer[] containers)
- Returns:
 - true if number of instances are evenly distributed across the specified containers
 
 
getMachinesHostingContainers
public static Machine[] getMachinesHostingContainers(GridServiceContainer[] containers)
 
getPlannedMinimumNumberOfInstancesForContainer
public static int getPlannedMinimumNumberOfInstancesForContainer(GridServiceContainer container,
                                                                 GridServiceContainer[] approvedContainers,
                                                                 ProcessingUnit pu)
- Parameters:
 container - - the container for which planned min number of instances is requestedapprovedContainers - - the containers approved for deployment for the specified pupu - - the processing unit
- Returns:
 - the planned minimum number of instances for the specified container
 
 
getPlannedMaximumNumberOfInstancesForContainer
public static int getPlannedMaximumNumberOfInstancesForContainer(GridServiceContainer container,
                                                                 GridServiceContainer[] approvedContainers,
                                                                 ProcessingUnit pu)
- Parameters:
 container - - the container for which planned min number of instances is requestedapprovedContainers - - the containers approved for deployment for the specified pupu - - the processing unit
- Returns:
 - the planned minimum number of instances for the specified container
 
 
sortAllContainersByNumberOfInstancesAboveMinimum
public static List<GridServiceContainer> sortAllContainersByNumberOfInstancesAboveMinimum(ProcessingUnit pu,
                                                                                          GridServiceContainer[] approvedContainers)
- Sorts all of the admin containers based on 
 (number of instances from the specified pu - min number of instances)
 If the container is not in the specified approved container list then min=0, meaning
 it will get a higher weight in the sort.
- Parameters:
 pu - approvedContainers - 
- Returns:
 - the list of sorted containers
 - See Also:
 getPlannedMinimumNumberOfInstancesForContainer(GridServiceContainer, GridServiceContainer[], ProcessingUnit)
 
 
sortMachinesByNumberOfPrimaryInstancesPerCpuCore
public static List<Machine> sortMachinesByNumberOfPrimaryInstancesPerCpuCore(ProcessingUnit pu,
                                                                             Machine[] machines,
                                                                             CapacityRequirementsPerAgent allocatedCapacity)
 
getNumberOfPrimaryInstancesPerCpuCore
public static org.openspaces.core.internal.commons.math.fraction.Fraction getNumberOfPrimaryInstancesPerCpuCore(ProcessingUnit pu,
                                                                                                                Machine machine,
                                                                                                                CapacityRequirementsPerAgent allocatedCapacity)
 
getNumberOfPrimaryInstancesOnMachine
public static int getNumberOfPrimaryInstancesOnMachine(ProcessingUnit pu,
                                                       Machine machine)
 
restartProcessingUnitInstanceAsync
public static FutureStatefulProcessingUnitInstance restartProcessingUnitInstanceAsync(ProcessingUnitInstance candidateInstance,
                                                                                      Log logger,
                                                                                      int timeout,
                                                                                      TimeUnit timeUnit)
 
getAverageCpuCoresPerPrimary
public static org.openspaces.core.internal.commons.math.fraction.Fraction getAverageCpuCoresPerPrimary(ProcessingUnit pu,
                                                                                                       CapacityRequirementsPerAgent aggregatedAllocatedCapacity)
 
getNumberOfCpuCores
public static org.openspaces.core.internal.commons.math.fraction.Fraction getNumberOfCpuCores(Machine machine,
                                                                                              CapacityRequirementsPerAgent allocatedCapacity)
 
puInstanceToString
public static String puInstanceToString(ProcessingUnitInstance instance)
 
machineToString
public static String machineToString(Machine machine)
 
gscToString
public static String gscToString(GridComponent container)
 
gscsToString
public static String gscsToString(List<GridServiceContainer> containers)
 
processingUnitDeploymentToString
public static String processingUnitDeploymentToString(ProcessingUnit pu)
 
Copyright © GigaSpaces.