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,
long 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,
long 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.