diff options
author | 2024-02-12 11:52:12 +0000 | |
---|---|---|
committer | 2024-02-12 11:52:12 +0000 | |
commit | ede8f43635c37a05b72f250632d0b236a2709ca9 (patch) | |
tree | 77cc153ca12e85f5a5ae966dea004d3ac375680f /internal/cache/invalidate.go | |
parent | [docs] Fix a few things in the bare metal install (#2624) (diff) | |
download | gotosocial-ede8f43635c37a05b72f250632d0b236a2709ca9.tar.xz |
[performance] temporarily cache account status counts to reduce no. account counts (#2620)
* temporarily cache account status counts to reduce no. account counts
* whoops, forgot to initAccountCounts()
* use already fetched cache capacity value
* make cache a ptr type
* whoops, use count instead of just select
* fix to correctly use the transaction
* properly wrap that tx :innocent:
* correctly wrap both tx types
* outline retryOnBusy() to allow the fast path to be inlined
* return err on context cancelled
* remove unnecessary storage of context in stmt, fix Exec and Query interface implementations
* shutup linter
Diffstat (limited to 'internal/cache/invalidate.go')
-rw-r--r-- | internal/cache/invalidate.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/internal/cache/invalidate.go b/internal/cache/invalidate.go index d85c503da..e7dfa9e8a 100644 --- a/internal/cache/invalidate.go +++ b/internal/cache/invalidate.go @@ -27,6 +27,9 @@ import ( // HOOKS TO BE CALLED ON DELETE YOU MUST FIRST POPULATE IT IN THE CACHE. func (c *Caches) OnInvalidateAccount(account *gtsmodel.Account) { + // Invalidate status counts for this account. + c.GTS.AccountCounts.Invalidate(account.ID) + // Invalidate account ID cached visibility. c.Visibility.Invalidate("ItemID", account.ID) c.Visibility.Invalidate("RequesterID", account.ID) @@ -151,6 +154,9 @@ func (c *Caches) OnInvalidatePollVote(vote *gtsmodel.PollVote) { } func (c *Caches) OnInvalidateStatus(status *gtsmodel.Status) { + // Invalidate status counts for this account. + c.GTS.AccountCounts.Invalidate(status.AccountID) + // Invalidate status ID cached visibility. c.Visibility.Invalidate("ItemID", status.ID) |