Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use batch database operations instead of one by one to optimze api pulls #32680

Merged
merged 19 commits into from
Dec 10, 2024

Conversation

lunny
Copy link
Member

@lunny lunny commented Nov 30, 2024

Resolve #31492

The response time for the Pull Requests API has improved significantly, dropping from over 2000ms to about 350ms on my local machine. It's about 6 times faster.

A key area for further optimization lies in batch-fetching data for apiPullRequest.ChangedFiles, apiPullRequest.Additions, and apiPullRequest.Deletions.

Tests TestAPIViewPulls does exist and new tests added.

  • This PR also fixes some bugs in GetDiff functions.
  • This PR also fixes data inconsistent in test data. For a pull request, the head branch's reference should be equal to the reference in pull/xxx/head.

@lunny lunny added the performance/speed performance issues with slow downs label Nov 30, 2024
@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Nov 30, 2024
@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Nov 30, 2024
@github-actions github-actions bot added modifies/api This PR adds API routes or modifies them modifies/go Pull requests that update Go code labels Nov 30, 2024
@lunny lunny force-pushed the lunny/pull_requests_api branch from 03434d0 to 28130c2 Compare December 4, 2024 02:16
@lunny lunny marked this pull request as ready for review December 4, 2024 03:25
@lunny lunny added this to the 1.23.0 milestone Dec 4, 2024
@pull-request-size pull-request-size bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Dec 4, 2024
@lunny lunny requested review from Zettat123 and wxiaoguang December 4, 2024 22:33
@vtolstov
Copy link

vtolstov commented Dec 6, 2024

very useful, i have many big repos with my own code and waiting for 2-3s is very annoying

@techknowlogick techknowlogick self-requested a review December 6, 2024 16:46
@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Dec 8, 2024
@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Dec 9, 2024
services/convert/pull.go Outdated Show resolved Hide resolved
@lunny lunny added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Dec 10, 2024
@lunny lunny merged commit fbe6d9d into go-gitea:main Dec 10, 2024
26 checks passed
@lunny lunny deleted the lunny/pull_requests_api branch December 10, 2024 21:15
@GiteaBot GiteaBot removed the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Dec 10, 2024
zjjhot added a commit to zjjhot/gitea that referenced this pull request Dec 11, 2024
* giteaofficial/main:
  [skip ci] Updated translations via Crowdin
  Use batch database operations instead of one by one to optimze api pulls (go-gitea#32680)
  Fix internal server error when updating labels without write permission (go-gitea#32776)
  Fix wiki ui (go-gitea#32781)
  Change typescript `module` to `nodenext` (go-gitea#32757)
  Refactor issue filter (labels, poster, assignee) (go-gitea#32771)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/api This PR adds API routes or modifies them modifies/go Pull requests that update Go code performance/speed performance issues with slow downs size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

repos/pulls api take long time for large repos
6 participants