Class ClusterOptimizer
java.lang.Object
com.aoindustries.aoserv.master.cluster.ClusterOptimizer
Finds the optimal mapping of virtual machines to physical resources to balance customer needs and redundant resources.
TODO: If two virtual servers are interchangeable, don't try both combinations - how? - implications? TODO: If two servers are interchangeable, don't try both combinations - how? - implications? TODO: Allow to specify that two virtual servers may not use the same primary xen machine (like ns1 and ns4 in California) TODO: Avoid the reprocessing of similar sub-trees to try to convert the NP-hardness to exponential complexity (with lots of RAM used) TODO: Also map cores and weights onto CPUs, with the following patterns: 1 core into any of the CPUs 2 cores into pairs of CPUs (0-1, 2-3, 3-4, 5-6, 7-8, 9-10, ...) 4 cores into sets of CPUs (0-3, 4-7, 8-11, 12-15, ...) 8 cores into sets of CPUs (0-7, 8-15, ...) ... Require that cores be a power of 2, so easier to map to CPUs consistently. TODO: Change weight to be 1024, so powers of two add up well (like 512+256+64+64+64+32+16+16 equals a full CPU) TODO: If all else fails, integrate this with the aoserv daemon code and run massively parallel processing of subtrees. (More brute force)
- Author:
- AO Industries, Inc.
-
Constructor Summary
-
Method Summary
-
Constructor Details
-
ClusterOptimizer
public ClusterOptimizer()
-
-
Method Details
-
main
-