summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2016-05-08 19:09:33 -0700
committerStan Hu <stanhu@gmail.com>2016-05-09 01:17:14 -0700
commit4be77d0b057e3b26f48fbaee947bf8f91a755f41 (patch)
tree3377a3b9a9a05cd45827259267d7cf87eb352a27 /lib/api
parent4bc4f06512620271a8d454b966e7f5c288a68829 (diff)
downloadgitlab-ce-4be77d0b057e3b26f48fbaee947bf8f91a755f41.tar.gz
Improve multiple branch push performance by memoizing permission checking
If you attempt to push thousands of branches at once, the 60-second timeout will occur because GitAccess checking does a lot of work to check if the user has permission to push to a branch. This changes does two things: 1. Instead of making 1 DB query per branch push, use a memoized list of protected branches to check 2. Memoize what permissions the user has to perform on this project On a test of 10,000 branch pushes, this prevents gitlab-shell from hitting the 60-second timeout. Closes #17225
Diffstat (limited to 'lib/api')
0 files changed, 0 insertions, 0 deletions