summaryrefslogtreecommitdiff
path: root/internal/cache/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cache/db.go')
-rw-r--r--internal/cache/db.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/internal/cache/db.go b/internal/cache/db.go
index 16e1d286a..c1b87ef96 100644
--- a/internal/cache/db.go
+++ b/internal/cache/db.go
@@ -29,6 +29,9 @@ type DBCaches struct {
// Account provides access to the gtsmodel Account database cache.
Account StructCache[*gtsmodel.Account]
+ // AccountIDsFollowingTag caches account IDs following a given tag ID.
+ AccountIDsFollowingTag SliceCache[string]
+
// AccountNote provides access to the gtsmodel Note database cache.
AccountNote StructCache[*gtsmodel.AccountNote]
@@ -160,6 +163,9 @@ type DBCaches struct {
// Tag provides access to the gtsmodel Tag database cache.
Tag StructCache[*gtsmodel.Tag]
+ // TagIDsFollowedByAccount caches tag IDs followed by a given account ID.
+ TagIDsFollowedByAccount SliceCache[string]
+
// ThreadMute provides access to the gtsmodel ThreadMute database cache.
ThreadMute StructCache[*gtsmodel.ThreadMute]
@@ -234,6 +240,17 @@ func (c *Caches) initAccount() {
})
}
+func (c *Caches) initAccountIDsFollowingTag() {
+ // Calculate maximum cache size.
+ cap := calculateSliceCacheMax(
+ config.GetCacheAccountIDsFollowingTagMemRatio(),
+ )
+
+ log.Infof(nil, "cache size = %d", cap)
+
+ c.DB.AccountIDsFollowingTag.Init(0, cap)
+}
+
func (c *Caches) initAccountNote() {
// Calculate maximum cache size.
cap := calculateResultCacheMax(
@@ -1317,6 +1334,17 @@ func (c *Caches) initTag() {
})
}
+func (c *Caches) initTagIDsFollowedByAccount() {
+ // Calculate maximum cache size.
+ cap := calculateSliceCacheMax(
+ config.GetCacheTagIDsFollowedByAccountMemRatio(),
+ )
+
+ log.Infof(nil, "cache size = %d", cap)
+
+ c.DB.TagIDsFollowedByAccount.Init(0, cap)
+}
+
func (c *Caches) initThreadMute() {
cap := calculateResultCacheMax(
sizeofThreadMute(), // model in-mem size.