- Dec 30, 2010
-
-
Iustin Pop authored
This small patch changes the balancing computation to work in parallel, if possible. While the normal linking is against the single-threaded runtime, if the code is linked against the multi-threaded one, the balancing will get a significant speedup (80% efficiency at 4 cores, 60% at 12 cores, and with GC tweaks it can reach 70%+). On the single-threaded runtime, due to the fact that we only use the weak head normal form, it doesn't introduce any extra penalties, neither in space nor in CPU time (or if there are, they are too small to detect easily). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Currently, the allocation routines (iterateAlloc and tieredAlloc) return only the final state of the cluster and the list of allocated instances. For better visibility in how the cluster resources change, we compute and return a list of cluster resources at each step, which should be a good indicator of the cluster state. The cost of the computation for the new resource when not used is undetectable (< 1%). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This is a cheap way to get back compatibility with Ganeti 2.3 (and lower) in the RAPI backend. It is however not very safe (the /2/groups resource could fail due to other reasons), so it is added only temporarily. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This allows a cluster structure to be easily serialized via "read"; together with the already existing instances of Show, this gives a poor man's serialization/deserialization implementation. The patch also exports the compDetailedCV function from Cluster.hs, so that it can be used by other modules too. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Just another cleanup of duplicate code. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This again abstracts a bit the instance listing. Due to the fact that I don't want to import Cluster.hs in CLI.hs, we pass the already generated output. It also moves the instance display to stderr. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Since this bit of code (including the “when (isJust …)” is used in multiple places, let's abstract it in a function that is used consistently. One (bad?) side-effect is that all node lists are done to stderr, including the ones from hbal where it was previously done to stdout (is that fine?). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This functionality was replicated in multiple places (hbal & hspace), so we abstract it for better clarity. Additionally, in hbal we now save the state both before and after balancing. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
We change processData to just load the data, and return a simpler type. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This patch converts the backends and mergeData to the new ClusterData type. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This will be used to hold all the disparate uses of the cluster data: we have either tuples with these four elements, or functions taking these four arguments, etc. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This patch moves the allocation policy from hardcoded to be read from the given specification, and extends the error message for invalid specifications. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This patch changes the behaviour of the --simulation option to be an incremental option, where each new use defines a new node group. This allows simulation of more complex clusters. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
- Dec 23, 2010
-
-
Iustin Pop authored
* stable-0.2: Move man files to man/ subdirectory Conflicts (all removed): man/hail.1 man/hbal.1 man/hscan.1 man/hspace.1
-
Iustin Pop authored
This is just change on the 0.2 branch to synchronize with the master branch. It allows automated builds to work better across the two versions. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Adeodato Simo <dato@google.com>
-
Iustin Pop authored
* devel-0.2: Update NEWS file for 0.2.8 release hbal: return meaningful exit code for job failures Change the balancing function
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Adeodato Simo <dato@google.com>
-
Iustin Pop authored
Currently, LUXI job failures only display a warning message, while still returning a success exit code. We change hbal to return true/false from within execJobSet/runJobSet, and add a wrapper for simpler code. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Adeodato Simo <dato@google.com>
-
Iustin Pop authored
Currently the balancing function is a modified version of the standard deviation (stddev divided by list length), due to historical reasons. While this works fine for small clusters, for big clusters it makes the balancing effect too "weak", and in some cases it refuses to balance correctly some clusters. It also makes the balancing behaviour dependant on the cluster size, which is a big no-no. Therefore we revert to the normal version of standard deviation, and we also rename the function to reflect what it does. The new version correctly balances some corner cases that the previous version didn't, and passes the current balancing unittests. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Adeodato Simo <dato@google.com>
-
Iustin Pop authored
This splits out a bit of code from hspace.hs and moves it into its own function in Cluster.hs. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
- Dec 20, 2010
-
-
Iustin Pop authored
This patch changes the allocate mode to respect the alloc_policy for groups. It does this by changing the sort key from simply the solution score, to a tuple with two elements: the alloc policy (which is now an Ord instance) and the solution score. Also, the unallocable groups are filtered out in the filterMGResults phase. The patch also slightly enhances the informational message by including the policy in the group information, to help debugging. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Currently, it's not easy to generate “fake” IAllocator request files for hail. As such, testing on simulated clusters is hard to do. To workaround this, we change hail to also take the ‘-t’ and ‘--simulate’ options, so that we can override the cluster data read from the request. Note that this will not change the request itself (so for example an evacuation will need to make sure uses the correct node names), but it's a step forward in testing hail. The other tools already can use text files which allow for better flexibility. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This will allow reading this attribute via the Rapi/Luxi backends. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Since currently hbal can only work on single groups at a time, we need to be able to specify the target group when running the live test. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This is the complement to the reading part. Now the live-test works correctly against clusters with configured exclusion tags. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This means that a file with the correct information is as accurate as the other backends (Luxi, Rapi). Serialization of tags is in the next patch. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
The new sepSplit function can split based on empty lines, so we remove the hackish text splitting from before and simply use sepSplit. This is needed as the addition of extra sections would have increased the code linearly, which we don't want :) Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Currently it works on splitting strings by individual chars, but we can generalise it to split lists by list elements, which means we can reuse it later in the Text module for splitting both lists of chars by '|' or lists of lines by empty newlines. The change also makes the code cleaner (uses “null xs” instead of string-specific “xs == ""”). Note: I tried to rewrite this in a nicer, functional style using unfolds, but I failed to account for the final terminator case (e.g. ab|cd|) resulting in a valid but empty element. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This patch switches from the group index to the group name for the informational messages in the hail results. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-
Iustin Pop authored
This should have been in the previous patches, but sent separate for clarity. The live-test script is updated to read the first node from the cluster, now that the text files don't start anymore with the node data. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Balazs Lecz <leczb@google.com>
-