An error occurred fetching the project authors.
  1. 18 Jul, 2017 1 commit
  2. 07 Jul, 2017 3 commits
  3. 22 Jun, 2017 2 commits
  4. 21 Jun, 2017 2 commits
  5. 13 Jun, 2017 1 commit
  6. 25 May, 2017 1 commit
  7. 22 May, 2017 1 commit
  8. 15 May, 2017 1 commit
  9. 12 May, 2017 1 commit
  10. 01 May, 2017 1 commit
  11. 12 Apr, 2017 1 commit
    • Yorick Peterse's avatar
      Prepare for zero downtime migrations · 223d8a3d
      Yorick Peterse authored
      Starting with GitLab 9.1.0 we will no longer allow downtime migrations
      unless absolutely necessary. This commit updates the various developer
      guides and adds code that is necessary to make zero downtime migrations
      less painful.
      223d8a3d
  12. 11 Apr, 2017 1 commit
  13. 05 Apr, 2017 1 commit
  14. 23 Feb, 2017 2 commits
  15. 21 Feb, 2017 1 commit
    • Yorick Peterse's avatar
      Hash concurrent foreign key names similar to Rails · 79696f5b
      Yorick Peterse authored
      This was initially not implemented simply because I forgot about the
      size limit of constraint names in PostgreSQL (63 bytes). Using the old
      technique we can't add foreign keys for certain tables. For example,
      adding a foreign key on
      protected_branch_merge_access_levels.protected_branch_id would lead to
      the following key name:
      
          fk_protected_branch_merge_access_levels_protected_branches_protected_branch_id
      
      This key is 78 bytes long, thus violating the PostgreSQL size
      requirements.
      
      The hashing strategy is copied from Rails' foreign_key_name() method,
      which unfortunately is private and subject to change without notice.
      79696f5b
  16. 10 Feb, 2017 1 commit
    • Yorick Peterse's avatar
      Add method for creating foreign keys concurrently · a97dcc07
      Yorick Peterse authored
      This method allows one to create foreign keys without blocking access to
      the source table, but only on PostgreSQL.
      
      When creating a regular foreign key the "ALTER TABLE" statement used for
      this won't return until all data has been validated. This statement in
      turn will acquire a lock on the source table. As a result this lock can
      be held for quite a long amount of time, depending on the number of rows
      and system load.
      
      By breaking up the foreign key creation process in two steps (creation,
      and validation) we can reduce the amount of locking to a minimum.
      Locking is still necessary for the "ALTER TABLE" statement that adds the
      constraint, but this is a fast process and so will only block access for
      a few milliseconds.
      a97dcc07
  17. 16 Sep, 2016 2 commits
  18. 15 Jul, 2016 1 commit
  19. 16 Jun, 2016 2 commits
  20. 15 Jun, 2016 2 commits
    • Yorick Peterse's avatar
      Don't update columns in batches in a transaction · 816c4535
      Yorick Peterse authored
      This ensures that whatever locks are acquired aren't held onto until the
      end of the transaction (= after _all_ rows have been updated). Timing
      wise there's also no difference between using a transaction and not
      using one.
      816c4535
    • Yorick Peterse's avatar
      Customizing of update_column_in_batches queries · 8966263e
      Yorick Peterse authored
      By passing a block to update_column_in_batches() one can now customize
      the queries executed. This in turn can be used to only update a specific
      set of rows instead of simply all the rows in the table.
      8966263e
  21. 13 Jun, 2016 1 commit
  22. 06 Jun, 2016 1 commit
  23. 03 Jun, 2016 2 commits
  24. 22 May, 2016 2 commits
  25. 12 May, 2016 2 commits