1. 26 Oct, 2011 1 commit
  2. 24 Oct, 2011 5 commits
  3. 21 Oct, 2011 1 commit
  4. 20 Oct, 2011 10 commits
  5. 18 Oct, 2011 6 commits
  6. 17 Oct, 2011 5 commits
  7. 13 Oct, 2011 6 commits
  8. 12 Oct, 2011 4 commits
    • Iustin Pop's avatar
      Tiny optimisation related to filter parsing · 727274dd
      Iustin Pop authored
      
      
      Currently, we get a luxi Client, then parse the filter, then execute
      the query. If parsing the filter fails, we connected to the masterd
      needlessly.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      727274dd
    • Iustin Pop's avatar
      Standardise LUXI call argument types · a629ecb9
      Iustin Pop authored
      
      
      Currently, we have 4 types of arguments in LUXI calls:
      
      - most common, a list of values
      - a single argument that is sent as a list of one element
      - a single argument that is sent by itself
      - a dictionary (only Query and QueryFields)
      
      This inconsistency makes it not only harder to auto-generate the
      HTools LUXI interface, but also in general to check the arguments and
      (if we ever want to do it) auto-generate the Python LUXI client.
      
      Compare this with the node daemon, which uses consistently a list for
      its arguments, and even with way more changes over time had no issues
      with extending the interface.
      
      In case we want to extend a call, there are two options:
      
      - preferred: add a new call, keep the old one unchanged
      - possible: add further parameters to the current argument list
      
      The patch against HTools will follow—sending separately as the Python
      changes are very clear by themselves.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      a629ecb9
    • Iustin Pop's avatar
      Rename filter and filter_ to qfilter · 2e5c33db
      Iustin Pop authored
      
      
      We currently use 'filter' as the OpCode, QueryRequest and RAPI field
      name for representing a query filter. However, since 'filter' is a
      built-in function, we actually have to use filter_ throughout the code
      in order to not override the built-in function.
      
      This patch simply goes and does a global sed over the code. Due to the
      fact that the RAPI interface already exposed this field, we add
      compatibility code for now which handles both forms.
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      2e5c33db
    • Michael Hanselmann's avatar
      rpc: Disable HTTP client pool and reduce memory consumption · 05927995
      Michael Hanselmann authored
      
      
      We noticed that “ganeti-masterd” can use large amounts of memory,
      especially on large clusters. Measurements showed a single PycURL client
      using about 500 kB of heap memory (the actual usage depends on versions,
      build options and settings).
      
      The RPC client uses a per-thread HTTP client pool with one client per
      node. At this time there are 41 non-main threads (25 for the job queue
      and 16 for client requests). This means the HTTP client pools use a lot
      of memory (ca. 200 MB for 10 nodes, ca. 1 GB for 50 nodes).
      
      This patch disables the per-thread HTTP client pool. No cleanup of
      unused code is done. That will be done in the master branch only.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      05927995
  9. 07 Oct, 2011 2 commits