diff options
Diffstat (limited to 'internal/cache/db.go')
-rw-r--r-- | internal/cache/db.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/internal/cache/db.go b/internal/cache/db.go index dc9e385cd..00dfe204a 100644 --- a/internal/cache/db.go +++ b/internal/cache/db.go @@ -117,6 +117,9 @@ type GTSCaches struct { // Mention provides access to the gtsmodel Mention database cache. Mention structr.Cache[*gtsmodel.Mention] + // Move provides access to the gtsmodel Move database cache. + Move structr.Cache[*gtsmodel.Move] + // Notification provides access to the gtsmodel Notification database cache. Notification structr.Cache[*gtsmodel.Notification] @@ -185,6 +188,8 @@ func (c *Caches) initAccount() { a2.AvatarMediaAttachment = nil a2.HeaderMediaAttachment = nil a2.Emojis = nil + a2.AlsoKnownAs = nil + a2.Move = nil return a2 } @@ -816,6 +821,33 @@ func (c *Caches) initMention() { }) } +func (c *Caches) initMove() { + // Calculate maximum cache size. + cap := calculateResultCacheMax( + sizeofMove(), // model in-mem size. + config.GetCacheMoveMemRatio(), + ) + + log.Infof(nil, "cache size = %d", cap) + + c.GTS.Move.Init(structr.Config[*gtsmodel.Move]{ + Indices: []structr.IndexConfig{ + {Fields: "ID"}, + {Fields: "URI"}, + {Fields: "OriginURI,TargetURI"}, + {Fields: "OriginURI", Multiple: true}, + {Fields: "TargetURI", Multiple: true}, + }, + MaxSize: cap, + IgnoreErr: ignoreErrors, + CopyValue: func(m1 *gtsmodel.Move) *gtsmodel.Move { + m2 := new(gtsmodel.Move) + *m2 = *m1 + return m2 + }, + }) +} + func (c *Caches) initNotification() { // Calculate maximum cache size. cap := calculateResultCacheMax( |