1. 22 Mar, 2009 5 commits
    • Iustin Pop's avatar
      Show the x_mem/i_mem in node list · a1c6212e
      Iustin Pop authored
      This patch adds checking of cluster data in the binaries and display of
      node's x_mem/i_mem in the node list.
    • Iustin Pop's avatar
      Add functions to check and fix cluster data · 5d1baf63
      Iustin Pop authored
      This patch adds a checkData function which goes over the node list and computes
      the unaccounted memory, returning a list of warning messages (if any) and the
      update nodes.
    • Iustin Pop's avatar
      Add a new node filed x_mem · 8c5b0a0d
      Iustin Pop authored
      Nodes can have some memory unaccounted for, due to (e.g.) hypervisor
      overhead, rounding errors in reporting, etc.
      It is better if we model this memory explicitly instead of hiding it,
      and actually since the n_mem addition it is actually required to do so.
      The new attribute is not yet used.
    • Iustin Pop's avatar
      Split common CLI functionality into a module · 209b3711
      Iustin Pop authored
      This patch moves the common CLI functionality (as much as currently
      possible) into a separate module. This means we only have one parseOpts
      and that Utils.hs doesn't keep this kind of functions anymore.
    • Iustin Pop's avatar
      Remove unused and obsolete function · 6e75a445
      Iustin Pop authored
      The Node.str function is very old and is not useful since the node
      objects have much more fields today. This patch removes it, and if
      needed a full node display can be done via ‘show’.
  2. 21 Mar, 2009 9 commits
    • Iustin Pop's avatar
      Add node memory field to Node objects · 04be800a
      Iustin Pop authored
      This patch adds a new n_mem field to the node objects, and implements
      read/save/show support for it. The field is not currently used (except
      in the node list) but will be used for checking data consistency and
      instance up/down status.
    • Iustin Pop's avatar
      Pass actual types to node/instance constructors · 47a8bade
      Iustin Pop authored
      This patch changes the parameters passed to the node and instance
      constructors from generic Strings (which are then parsed via “read”) to
      the actual used types, by converting them earlier in Cluster.loadData.
    • Iustin Pop's avatar
      Small change in hscan · 670b57ad
      Iustin Pop authored
      This fixes a mistake between Int/Integer. Should be more careful :)
    • Iustin Pop's avatar
      Add hscan to Makefile · 127e0396
      Iustin Pop authored
    • Iustin Pop's avatar
      Add the hscan tool · 1b7a5835
      Iustin Pop authored
      This patch adds an hscan tool that loads data from clusters via RAPI and
      writes it to files that can be later used offline.
    • Iustin Pop's avatar
      Some small changes in preparation for hscan · 7847a037
      Iustin Pop authored
      This patch does some small changes:
        - fixes a comment
        - export more node functions (unneeded now, but hscan will use them)
        - fixes Makefile rule for building the programs
    • Iustin Pop's avatar
      Add a separate type for the [(Int, String)] list · 740ec004
      Iustin Pop authored
      This is added for better readability, since this is very often used in
    • Iustin Pop's avatar
      Handle correctly offline nodes in cluster scoring · 19777638
      Iustin Pop authored
      This patch changes two things with regard to offline nodes:
        - first, it only calculates the various coefficients across online
        - second, it adds a new score denoting the percentage of instances
      	which live on such nodes
      The first change allows correct score computation in presence of offline
      nodes (whose properties we don't need to take into account), while the
      second change actively evacuates offline nodes.
    • Iustin Pop's avatar
      Show offline nodes in the node status list · 352806f7
      Iustin Pop authored
      This patch adds a new ‘-’ flag for the node status which denotes offline
  3. 20 Mar, 2009 9 commits
  4. 16 Mar, 2009 1 commit
  5. 14 Mar, 2009 9 commits
  6. 13 Mar, 2009 6 commits
    • Iustin Pop's avatar
      Some more docstring updates · 00b51a14
      Iustin Pop authored
    • Iustin Pop's avatar
      Enhance the command list for the solution · 142538ff
      Iustin Pop authored
      This patch moves the formatting of the command list to Cluster.hs and
      enhances it with separator messages between the steps.
    • Iustin Pop's avatar
      Add a new ReplaceAndFailover move · 79ac6b6f
      Iustin Pop authored
      This patch adds a new replace secondary and failover move (equals to
      “r:x f”), which can improve the solution (since we are testing more
      options at each step).
    • Iustin Pop's avatar
      Some whitespace changes · fd934a28
      Iustin Pop authored
      Aligned the comments in Instance.hs
    • Iustin Pop's avatar
      Convert hbal from multiple rounds to a step-method · 7dfaafb1
      Iustin Pop authored
      Currently hbal does multiple rounds, stopping when a rounds doesn't
      bring improvements. With the recent changes to not remove instances from
      the candidate list, this is obsolete as the first round will always run
      to the end of the improvements.
      This patch changes this so that the Cluster.checkMove function doesn't
      recurse, but just computes the next best move (as its docstring says).
      This means we can actually incrementally compute and print the solution,
      and this is needed as otherwise an instance could move twice and the
      second time it needs the current placement to compute the exact command
      line and operation needed for the move.
    • Iustin Pop's avatar
      Rework the solution printing in Cluster.hs · ca8258d9
      Iustin Pop authored
      This abstracts the individual placement solution so that it can be used
  7. 12 Mar, 2009 1 commit
    • Iustin Pop's avatar
      Remove the restriction of one-move-per-round · 0a0f2533
      Iustin Pop authored
      The current code restricts each instance to one move per round. This is
      bad, as an computation restarted in the middle of the solution will have
      a different set of instances to work and will thus lead to a different
      Once this is applied, further rounds are not possible since the first
      round will have tried all instances at its end. As such, the removal of
      the rounds feature will be next.
      The code adds a hard-coded 100 moves limit, which for big clusters is
      actually small.