1. 09 9月, 2019 3 次提交
    • K
      Improve performance and memory usage of project export · 0e56c1e7
      Kamil Trzciński 提交于
      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
    • F
      Lower searches count limit · 107ebb82
      Francisco Javier López 提交于
      Lowering the limit when performing search from 1001 to 101.
      This will allow us to speed this process.
      107ebb82
    • D
      9458192f
  2. 07 9月, 2019 2 次提交
  3. 06 9月, 2019 7 次提交
  4. 05 9月, 2019 12 次提交
  5. 04 9月, 2019 5 次提交
  6. 03 9月, 2019 2 次提交
  7. 02 9月, 2019 7 次提交
  8. 31 8月, 2019 1 次提交
  9. 30 8月, 2019 1 次提交