Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-02-18 | Add latest changes from gitlab-org/gitlab@14-8-stable-eev14.8.0-rc42 | GitLab Bot | |
2019-09-09 | Improve performance and memory usage of project export | 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. | |||
2019-09-06 | Normalize import_export structure | Kamil Trzciński | |
This brings a significant refactor to how we handle `import_export.yml`, merge it with EE and how we handle that for reader and saver. This is meant to simplify the code, and remove a ton of conditions to handle different models of the structure. This is also meant to prepare the structure to extend it much easier, like adding `preload:` or additional object types when needed. This does not change the behavior of import/export, rather unifies and simplifies the current implementation. | |||
2017-05-03 | Include missing project attributes to Import/Export | James Lopez | |
2016-08-11 | Fix attribute inclusion in import/export config ignored in some cases | James Lopez | |
2016-05-06 | fixed and refactored a few things based on MR feedback | James Lopez | |
2016-04-07 | continuing to refactor config, added spec and fixed a few problems | James Lopez | |