mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature/chore] Add Move database functions + cache (#2647)
* [feature/chore] Add Move database functions + cache * add move mem ratio to envparsing.sh * update comment
This commit is contained in:
32
internal/cache/db.go
vendored
32
internal/cache/db.go
vendored
@ -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(
|
||||
|
Reference in New Issue
Block a user