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

Fix context cache bug & enable context cache for dashabord commits' authors #26991

Merged
merged 14 commits into from
Sep 11, 2023

Conversation

lunny
Copy link
Member

@lunny lunny commented Sep 9, 2023

Unfortunately, when a system setting hasn't been stored in the database, it cannot be cached.
Meanwhile, this PR also uses context cache for push email avatar display which should avoid to read user table via email address again and again.

According to my local test, this should reduce dashboard elapsed time from 150ms -> 80ms .

@lunny lunny added type/bug performance/speed performance issues with slow downs backport/v1.20 This PR should be backported to Gitea 1.20 labels Sep 9, 2023
@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Sep 9, 2023
@pull-request-size pull-request-size bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Sep 9, 2023
@lunny lunny added this to the 1.21.0 milestone Sep 9, 2023
@lunny lunny force-pushed the lunny/context_cache_dashboard branch from 2c7be05 to aceac6c Compare September 9, 2023 15:56
models/user/user.go Outdated Show resolved Hide resolved
@lunny lunny changed the title Use context cache for dashaboard page to make it faster Use context cache for dashboard page to make it faster Sep 10, 2023
@pull-request-size pull-request-size bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 10, 2023
@wxiaoguang
Copy link
Contributor

I think this is the future for the system setting: Refactor system setting #27000

@lunny lunny force-pushed the lunny/context_cache_dashboard branch from a5ad02e to f871a4b Compare September 11, 2023 03:06
@pull-request-size pull-request-size bot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Sep 11, 2023
@lunny lunny changed the title Use context cache for dashboard page to make it faster Fix context cache bug Sep 11, 2023
@lunny lunny force-pushed the lunny/context_cache_dashboard branch from f871a4b to 5a1398a Compare September 11, 2023 03:43
@pull-request-size pull-request-size bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Sep 11, 2023
@lunny lunny changed the title Fix context cache bug Fix context cache bug & enable context cache for dashabord commits' authors Sep 11, 2023
@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 Sep 11, 2023
@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 Sep 11, 2023
@lunny lunny added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Sep 11, 2023
@lunny lunny enabled auto-merge (squash) September 11, 2023 08:36
@lunny lunny merged commit ebff051 into go-gitea:main Sep 11, 2023
26 checks passed
@GiteaBot
Copy link
Contributor

I was unable to create a backport for 1.20. @lunny, please send one manually. 🍵

go run ./contrib/backport 26991
...  // fix git conflicts if any
go run ./contrib/backport --continue

@GiteaBot GiteaBot added backport/manual No power to the bots! Create your backport yourself! and removed reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. labels Sep 11, 2023
@lunny lunny deleted the lunny/context_cache_dashboard branch September 11, 2023 10:20
lunny added a commit to lunny/gitea that referenced this pull request Sep 11, 2023
…uthors (go-gitea#26991)

Unfortunately, when a system setting hasn't been stored in the database,
it cannot be cached.
Meanwhile, this PR also uses context cache for push email avatar display
which should avoid to read user table via email address again and again.

According to my local test, this should reduce dashboard elapsed time
from 150ms -> 80ms .
@lunny lunny added the backport/done All backports for this PR have been created label Sep 11, 2023
zjjhot added a commit to zjjhot/gitea that referenced this pull request Sep 12, 2023
* upstream/main:
  Add more package registry paths to the labeler (go-gitea#27032)
  Extract auth middleware from service (go-gitea#27028)
  S3: log human readable error on connection failure (go-gitea#26856)
  [skip ci] Updated translations via Crowdin
  Fix "delete" modal dialog for issue/PR (go-gitea#27015)
  Fix context cache bug & enable context cache for dashabord commits' authors (go-gitea#26991)
  fix: typo (go-gitea#27009)
  Use secure cookie for HTTPS sites (go-gitea#26999)
  Add fetch wrappers, ignore network errors in actions view (go-gitea#26985)
lunny added a commit that referenced this pull request Sep 13, 2023
…uthors(#26991) (#27017)

backport #26991 

Unfortunately, when a system setting hasn't been stored in the database,
it cannot be cached.
Meanwhile, this PR also uses context cache for push email avatar display
which should avoid to read user table via email address again and again.

According to my local test, this should reduce dashboard elapsed time
from 150ms -> 80ms .
nrdufour added a commit to nrdufour/home-ops that referenced this pull request Oct 4, 2023
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker.io/gitea/gitea](https://github.com/go-gitea/gitea) | patch | `1.20.4` -> `1.20.5` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the logs for more information.

---

### Release Notes

<details>
<summary>go-gitea/gitea (docker.io/gitea/gitea)</summary>

### [`v1.20.5`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1205---2023-10-03)

[Compare Source](go-gitea/gitea@v1.20.4...v1.20.5)

-   ENHANCEMENTS
    -   Fix z-index on markdown completion ([#&#8203;27237](go-gitea/gitea#27237)) ([#&#8203;27242](go-gitea/gitea#27242) & [#&#8203;27238](go-gitea/gitea#27238))
    -   Use secure cookie for HTTPS sites ([#&#8203;26999](go-gitea/gitea#26999)) ([#&#8203;27013](go-gitea/gitea#27013))
-   BUGFIXES
    -   Fix git 2.11 error when checking IsEmpty ([#&#8203;27393](go-gitea/gitea#27393)) ([#&#8203;27396](go-gitea/gitea#27396))
    -   Allow get release download files and lfs files with oauth2 token format ([#&#8203;26430](go-gitea/gitea#26430)) ([#&#8203;27378](go-gitea/gitea#27378))
    -   Fix orphan check for deleted branch ([#&#8203;27310](go-gitea/gitea#27310)) ([#&#8203;27320](go-gitea/gitea#27320))
    -   Quote table `release` in sql queries ([#&#8203;27205](go-gitea/gitea#27205)) ([#&#8203;27219](go-gitea/gitea#27219))
    -   Fix release URL in webhooks ([#&#8203;27182](go-gitea/gitea#27182)) ([#&#8203;27184](go-gitea/gitea#27184))
    -   Fix successful return value for `SyncAndGetUserSpecificDiff` ([#&#8203;27152](go-gitea/gitea#27152)) ([#&#8203;27156](go-gitea/gitea#27156))
    -   fix pagination for followers and following ([#&#8203;27127](go-gitea/gitea#27127)) ([#&#8203;27138](go-gitea/gitea#27138))
    -   Fix issue templates when blank isses are disabled ([#&#8203;27061](go-gitea/gitea#27061)) ([#&#8203;27082](go-gitea/gitea#27082))
    -   Fix context cache bug & enable context cache for dashabord commits' authors([#&#8203;26991](go-gitea/gitea#26991)) ([#&#8203;27017](go-gitea/gitea#27017))
    -   Fix INI parsing for value with trailing slash ([#&#8203;26995](go-gitea/gitea#26995)) ([#&#8203;27001](go-gitea/gitea#27001))
    -   Fix PushEvent NullPointerException jenkinsci/github-plugin ([#&#8203;27203](go-gitea/gitea#27203)) ([#&#8203;27249](go-gitea/gitea#27249))
    -   Fix organization field being null in POST /orgs/{orgid}/teams ([#&#8203;27150](go-gitea/gitea#27150)) ([#&#8203;27167](go-gitea/gitea#27167) & [#&#8203;27162](go-gitea/gitea#27162))
    -   Fix bug of review request number ([#&#8203;27406](go-gitea/gitea#27406)) ([#&#8203;27104](go-gitea/gitea#27104))
-   TESTING
    -   services/wiki: Close() after error handling ([#&#8203;27129](go-gitea/gitea#27129)) ([#&#8203;27137](go-gitea/gitea#27137))
-   DOCS
    -   Improve actions docs related to `pull_request` event ([#&#8203;27126](go-gitea/gitea#27126)) ([#&#8203;27145](go-gitea/gitea#27145))
-   MISC
    -   Add logs for data broken of comment review ([#&#8203;27326](go-gitea/gitea#27326)) ([#&#8203;27344](go-gitea/gitea#27344))
    -   Load reviewer before sending notification ([#&#8203;27063](go-gitea/gitea#27063)) ([#&#8203;27064](go-gitea/gitea#27064))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zLjIiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Reviewed-on: https://git.home/nrdufour/home-ops/pulls/129
Co-authored-by: Renovate <renovate@ptinem.io>
Co-committed-by: Renovate <renovate@ptinem.io>
@go-gitea go-gitea locked as resolved and limited conversation to collaborators Dec 10, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
backport/done All backports for this PR have been created backport/manual No power to the bots! Create your backport yourself! backport/v1.20 This PR should be backported to Gitea 1.20 lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. performance/speed performance issues with slow downs size/L Denotes a PR that changes 100-499 lines, ignoring generated files. type/bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants