History | View | Annotate | Download (25 kB)
Remove the restriction of one-move-per-round
The current code restricts each instance to one move per round. This isbad, as an computation restarted in the middle of the solution will havea different set of instances to work and will thus lead to a different...
Add a header to node lists and print more data
This prints the total memory/disk and also adds a header.
Change the N1 score to percent of N1 failures
Since for a very many N+1 failures in a cluster, we could actuallydegrade the N1 CV by making a node N+1 compliant, we need to make surethis value only decreases when fixing non-compliant nodes.
The easiest way is to compute the N+1 score as a percentage of failed...
Add two new variables in the cluster score
This patch adds two new variables to the cluster score: - variance of the failN1 attribute - variance of the reserved memory percentage
The variance of the failN1 helps make the cluster N+1 happy, whereas the...
Record the running cluster CV in placements
This patch adds a score variable to the placement type, so we can recordthe changes in the cluster CV for later display.
This gives visibility in the decrease of the parameters and can showwhich are the most important steps to perform (out of the full move...
Beautify the cluster status list
This patch removes the primary/secondary instance lists from the nodestatus and also removes the tabbed formatting with explicit widthformatting.
Beautify solution list
This patch makes the tabular solution list nicer, by changing from tabsto explicit widths.
Beautify: strip common suffix from names
This patch automatically removes the longest common (domain, i.e.starting with a dot) suffix from the node and instance names. This givesa much clearer display, and this format is compatible with the wayGaneti accepts shortened names.
A no-code change s/disk/dsk/
This just makes indendation nicer in many expressions.
Compute the p_mem / p_dsk statically
This patch changes the computation of p_mem / p_dsk from on-demand(whenever the cluster stats are computed) to after-modify (after a nodeis modified, we update its stats). This brings a god speed-up as onlyone node or two are usually changed between cluster-wide stats are...
Documentation updates
Simplify the checkInstanceMove function
This patch flattens the two folds into one, by simply building the wholelist of moves instead of the double recursion (nodes and the eachnode's moves). This has no functional change, but it's much cleaner.
A small optimization in node computation
Currently we always compute the available node list for moves (for aninstances) based on the nodes of the initial table. This works find,however is a repeated calculation.
We optimize this by passing a node list (of indexes, not full objects),...
Replace a foldl by foldl'
Split checkMove into two
This cleans up and splits the individual instance move into a separate function.
Change the balancing algorithm
This patch changes the balancing algorithm to not iterate linearly overthe instances (in a random, but fixed order), instead selecting at eachstep the best next move. This should allow a better score (most of thetime), and usually also a shorter solution.
Fix a bug in Cluster.fixNodes
We need to lookup the moving accumulator, of course.
Change the input file formats
This patch changes the format of the input node and instance lists. Itremoves the list of primary and secondary instances from the nodes, andadds the primary and secondary nodes to the instance list.
This is done so that we can have the same input data from commands as...
Initial import
This is the initial import of release 0.0.3.