1. 30 Oct, 2018 1 commit
    • Toon Claes's avatar
      Enhance performance of counting local LFS objects · d5f290e4
      Toon Claes authored
      Add an index to the `file_store` column on `lfs_objects`. This makes
      counting local objects faster.
      
      Also, there is no longer need to check for objects with `file_store`
      being `NULL`. See
      https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18557
      
      ---
      
      ### Query plans
      
      #### Before & with `NULL`
      
      ```
      Aggregate  (cost=113495.96..113495.97 rows=1 width=8) (actual time=1691.394..1691.394 rows=1 loops=1)
        ->  Seq Scan on lfs_objects  (cost=0.00..106415.50 rows=2832186 width=0) (actual time=0.012..1312.488 rows=2852607 loops=1)
              Filter: ((file_store = 1) OR (file_store IS NULL))
              Rows Removed by Filter: 131
      Planning time: 0.077 ms
      Execution time: 1691.433 ms
      ```
      
      #### Before, without `NULL`
      
      ```
      Aggregate  (cost=113495.96..113495.97 rows=1 width=8) (actual time=856.423..856.424 rows=1 loops=1)
        ->  Seq Scan on lfs_objects  (cost=0.00..106415.50 rows=2832186 width=0) (actual time=0.012..672.181 rows=2852607 loops=1)
              Filter: (file_store = 1)
              Rows Removed by Filter: 131
      Planning time: 0.128 ms
      Execution time: 856.470 ms
      ```
      
      #### After & with `NULL`
      
      ```
      Aggregate  (cost=68819.95..68819.96 rows=1 width=8) (actual time=583.355..583.355 rows=1 loops=1)
        ->  Index Only Scan using index_lfs_objects_on_file_store on lfs_objects  (cost=0.43..61688.35 rows=2852643 width=0) (actual time=0.028..399.177 rows=2852607 loops=1)
              Filter: ((file_store = 1) OR (file_store IS NULL))
              Rows Removed by Filter: 131
              Heap Fetches: 867
      Planning time: 0.096 ms
      Execution time: 583.404 ms
      ```
      
      #### After, without `NULL`
      
      ```
      Aggregate  (cost=68817.29..68817.30 rows=1 width=8) (actual time=490.550..490.551 rows=1 loops=1)
        ->  Index Only Scan using index_lfs_objects_on_file_store on lfs_objects  (cost=0.43..61685.68 rows=2852643 width=0) (actual time=0.040..311.760 rows=2852607 loops=1)
              Index Cond: (file_store = 1)
              Heap Fetches: 831
      Planning time: 0.294 ms
      Execution time: 490.590 ms
      ```
      
      Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/6067
      d5f290e4
  2. 16 Aug, 2018 1 commit
  3. 27 Jul, 2018 1 commit
  4. 01 May, 2018 1 commit
  5. 19 Apr, 2018 1 commit
  6. 18 Apr, 2018 1 commit
    • Yorick Peterse's avatar
      Revert the addition of goldiloader · 6f292eaa
      Yorick Peterse authored
      This reverts the addition of the "goldiloader" Gem and all use of it.
      While this Gem is very promising it's causing a variety of problems on
      GitLab.com due to it eager-loading too much data in places where we
      don't expect/can handle this. At least for the time being this means we
      have to go back to manually fixing N+1 query problems, but at least
      those should not cause a negative impact on availability.
      6f292eaa
  7. 09 Apr, 2018 1 commit
  8. 27 Mar, 2018 1 commit
  9. 08 Mar, 2018 1 commit
  10. 02 Mar, 2018 2 commits
  11. 01 Mar, 2018 2 commits
  12. 28 Feb, 2018 3 commits
  13. 09 Nov, 2017 1 commit
  14. 06 Jul, 2017 1 commit
    • Yorick Peterse's avatar
      Added Cop to blacklist the use of `dependent:` · 8fbbf41e
      Yorick Peterse authored
      This is allowed for existing instances so we don't end up 76 offenses
      right away, but for new code one should _only_ use this if they _have_
      to remove non database data. Even then it's usually better to do this in
      a service class as this gives you more control over how to remove the
      data (e.g. in bulk).
      8fbbf41e
  15. 23 Feb, 2017 4 commits
  16. 28 Oct, 2016 1 commit
  17. 03 Jun, 2016 2 commits
  18. 09 May, 2016 1 commit
  19. 06 May, 2016 1 commit
  20. 09 Dec, 2015 1 commit
  21. 07 Dec, 2015 1 commit
  22. 04 Dec, 2015 2 commits
  23. 03 Dec, 2015 1 commit
  24. 16 Nov, 2015 1 commit