Skip to content
Snippets Groups Projects
  1. Sep 12, 2019
  2. Sep 11, 2019
  3. Sep 10, 2019
  4. Sep 09, 2019
    • Kamil Trzcińśki's avatar
      Improve performance and memory usage of project export · 0e56c1e7
      Kamil Trzcińśki authored
      ActiveModel::Serialization is simple in that it recursively calls
      `as_json` on each object to serialize everything. However, for a model
      like a Project, this can generate a query for every single association,
      which can add up to tens of thousands of queries and lead to memory
      bloat.
      
      To improve this, we can do several things:
      
      1. We use `tree:` and `preload:` to automatically generate
         a list of all preloads that could be used to serialize
         objects in bulk.
      
      2. We observe that a single project has many issues, merge requests,
         etc. Instead of serializing everything at once, which could lead to
         database timeouts and high memory usage, we take each top-level
         association and serialize the data in batches.
      
      For example, we serialize the first 100 issues and preload all of
      their associated events, notes, etc. before moving onto the next
      batch. When we're done, we serialize merge requests in the same way.
      We repeat this pattern for the remaining associations specified in
      import_export.yml.
      0e56c1e7
    • Francisco Javier López's avatar
      Lower searches count limit · 107ebb82
      Francisco Javier López authored
      Lowering the limit when performing search from 1001 to 101.
      This will allow us to speed this process.
      107ebb82
    • drew's avatar
  5. Sep 07, 2019
  6. Sep 06, 2019
  7. Sep 05, 2019
  8. Sep 04, 2019
Loading