diff options
Diffstat (limited to 'internal/cache/db.go')
-rw-r--r-- | internal/cache/db.go | 122 |
1 files changed, 49 insertions, 73 deletions
diff --git a/internal/cache/db.go b/internal/cache/db.go index 4c063b06d..16e1d286a 100644 --- a/internal/cache/db.go +++ b/internal/cache/db.go @@ -18,9 +18,6 @@ package cache import ( - "time" - - "codeberg.org/gruf/go-cache/v3/ttl" "codeberg.org/gruf/go-structr" "github.com/superseriousbusiness/gotosocial/internal/cache/domain" "github.com/superseriousbusiness/gotosocial/internal/config" @@ -28,7 +25,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/log" ) -type GTSCaches struct { +type DBCaches struct { // Account provides access to the gtsmodel Account database cache. Account StructCache[*gtsmodel.Account] @@ -180,10 +177,6 @@ type GTSCaches struct { // UserMuteIDs provides access to the user mute IDs database cache. UserMuteIDs SliceCache[string] - - // Webfinger provides access to the webfinger URL cache. - // TODO: move out of GTS caches since unrelated to DB. - Webfinger *ttl.Cache[string, string] // TTL=24hr, sweep=5min } // NOTE: @@ -222,7 +215,7 @@ func (c *Caches) initAccount() { return a2 } - c.GTS.Account.Init(structr.CacheConfig[*gtsmodel.Account]{ + c.DB.Account.Init(structr.CacheConfig[*gtsmodel.Account]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -263,7 +256,7 @@ func (c *Caches) initAccountNote() { return n2 } - c.GTS.AccountNote.Init(structr.CacheConfig[*gtsmodel.AccountNote]{ + c.DB.AccountNote.Init(structr.CacheConfig[*gtsmodel.AccountNote]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "AccountID,TargetAccountID"}, @@ -283,7 +276,7 @@ func (c *Caches) initAccountSettings() { log.Infof(nil, "cache size = %d", cap) - c.GTS.AccountSettings.Init(structr.CacheConfig[*gtsmodel.AccountSettings]{ + c.DB.AccountSettings.Init(structr.CacheConfig[*gtsmodel.AccountSettings]{ Indices: []structr.IndexConfig{ {Fields: "AccountID"}, }, @@ -306,7 +299,7 @@ func (c *Caches) initAccountStats() { log.Infof(nil, "cache size = %d", cap) - c.GTS.AccountStats.Init(structr.CacheConfig[*gtsmodel.AccountStats]{ + c.DB.AccountStats.Init(structr.CacheConfig[*gtsmodel.AccountStats]{ Indices: []structr.IndexConfig{ {Fields: "AccountID"}, }, @@ -335,7 +328,7 @@ func (c *Caches) initApplication() { return a2 } - c.GTS.Application.Init(structr.CacheConfig[*gtsmodel.Application]{ + c.DB.Application.Init(structr.CacheConfig[*gtsmodel.Application]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "ClientID"}, @@ -369,7 +362,7 @@ func (c *Caches) initBlock() { return b2 } - c.GTS.Block.Init(structr.CacheConfig[*gtsmodel.Block]{ + c.DB.Block.Init(structr.CacheConfig[*gtsmodel.Block]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -392,7 +385,7 @@ func (c *Caches) initBlockIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.BlockIDs.Init(0, cap) + c.DB.BlockIDs.Init(0, cap) } func (c *Caches) initBoostOfIDs() { @@ -403,7 +396,7 @@ func (c *Caches) initBoostOfIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.BoostOfIDs.Init(0, cap) + c.DB.BoostOfIDs.Init(0, cap) } func (c *Caches) initClient() { @@ -421,7 +414,7 @@ func (c *Caches) initClient() { return c2 } - c.GTS.Client.Init(structr.CacheConfig[*gtsmodel.Client]{ + c.DB.Client.Init(structr.CacheConfig[*gtsmodel.Client]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, }, @@ -454,7 +447,7 @@ func (c *Caches) initConversation() { return c2 } - c.GTS.Conversation.Init(structr.CacheConfig[*gtsmodel.Conversation]{ + c.DB.Conversation.Init(structr.CacheConfig[*gtsmodel.Conversation]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "ThreadID,AccountID,OtherAccountsKey"}, @@ -475,15 +468,15 @@ func (c *Caches) initConversationLastStatusIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.ConversationLastStatusIDs.Init(0, cap) + c.DB.ConversationLastStatusIDs.Init(0, cap) } func (c *Caches) initDomainAllow() { - c.GTS.DomainAllow = new(domain.Cache) + c.DB.DomainAllow = new(domain.Cache) } func (c *Caches) initDomainBlock() { - c.GTS.DomainBlock = new(domain.Cache) + c.DB.DomainBlock = new(domain.Cache) } func (c *Caches) initEmoji() { @@ -507,7 +500,7 @@ func (c *Caches) initEmoji() { return e2 } - c.GTS.Emoji.Init(structr.CacheConfig[*gtsmodel.Emoji]{ + c.DB.Emoji.Init(structr.CacheConfig[*gtsmodel.Emoji]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -536,7 +529,7 @@ func (c *Caches) initEmojiCategory() { return c2 } - c.GTS.EmojiCategory.Init(structr.CacheConfig[*gtsmodel.EmojiCategory]{ + c.DB.EmojiCategory.Init(structr.CacheConfig[*gtsmodel.EmojiCategory]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "Name"}, @@ -570,7 +563,7 @@ func (c *Caches) initFilter() { return filter2 } - c.GTS.Filter.Init(structr.CacheConfig[*gtsmodel.Filter]{ + c.DB.Filter.Init(structr.CacheConfig[*gtsmodel.Filter]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "AccountID", Multiple: true}, @@ -607,7 +600,7 @@ func (c *Caches) initFilterKeyword() { return filterKeyword2 } - c.GTS.FilterKeyword.Init(structr.CacheConfig[*gtsmodel.FilterKeyword]{ + c.DB.FilterKeyword.Init(structr.CacheConfig[*gtsmodel.FilterKeyword]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "AccountID", Multiple: true}, @@ -640,7 +633,7 @@ func (c *Caches) initFilterStatus() { return filterStatus2 } - c.GTS.FilterStatus.Init(structr.CacheConfig[*gtsmodel.FilterStatus]{ + c.DB.FilterStatus.Init(structr.CacheConfig[*gtsmodel.FilterStatus]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "AccountID", Multiple: true}, @@ -674,7 +667,7 @@ func (c *Caches) initFollow() { return f2 } - c.GTS.Follow.Init(structr.CacheConfig[*gtsmodel.Follow]{ + c.DB.Follow.Init(structr.CacheConfig[*gtsmodel.Follow]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -697,7 +690,7 @@ func (c *Caches) initFollowIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.FollowIDs.Init(0, cap) + c.DB.FollowIDs.Init(0, cap) } func (c *Caches) initFollowRequest() { @@ -722,7 +715,7 @@ func (c *Caches) initFollowRequest() { return f2 } - c.GTS.FollowRequest.Init(structr.CacheConfig[*gtsmodel.FollowRequest]{ + c.DB.FollowRequest.Init(structr.CacheConfig[*gtsmodel.FollowRequest]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -745,7 +738,7 @@ func (c *Caches) initFollowRequestIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.FollowRequestIDs.Init(0, cap) + c.DB.FollowRequestIDs.Init(0, cap) } func (c *Caches) initInReplyToIDs() { @@ -756,7 +749,7 @@ func (c *Caches) initInReplyToIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.InReplyToIDs.Init(0, cap) + c.DB.InReplyToIDs.Init(0, cap) } func (c *Caches) initInstance() { @@ -781,7 +774,7 @@ func (c *Caches) initInstance() { return i2 } - c.GTS.Instance.Init(structr.CacheConfig[*gtsmodel.Instance]{ + c.DB.Instance.Init(structr.CacheConfig[*gtsmodel.Instance]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "Domain"}, @@ -814,7 +807,7 @@ func (c *Caches) initInteractionApproval() { return i2 } - c.GTS.InteractionApproval.Init(structr.CacheConfig[*gtsmodel.InteractionApproval]{ + c.DB.InteractionApproval.Init(structr.CacheConfig[*gtsmodel.InteractionApproval]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -847,7 +840,7 @@ func (c *Caches) initList() { return l2 } - c.GTS.List.Init(structr.CacheConfig[*gtsmodel.List]{ + c.DB.List.Init(structr.CacheConfig[*gtsmodel.List]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, }, @@ -879,7 +872,7 @@ func (c *Caches) initListEntry() { return l2 } - c.GTS.ListEntry.Init(structr.CacheConfig[*gtsmodel.ListEntry]{ + c.DB.ListEntry.Init(structr.CacheConfig[*gtsmodel.ListEntry]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "ListID", Multiple: true}, @@ -906,7 +899,7 @@ func (c *Caches) initMarker() { return m2 } - c.GTS.Marker.Init(structr.CacheConfig[*gtsmodel.Marker]{ + c.DB.Marker.Init(structr.CacheConfig[*gtsmodel.Marker]{ Indices: []structr.IndexConfig{ {Fields: "AccountID,Name"}, }, @@ -931,7 +924,7 @@ func (c *Caches) initMedia() { return m2 } - c.GTS.Media.Init(structr.CacheConfig[*gtsmodel.MediaAttachment]{ + c.DB.Media.Init(structr.CacheConfig[*gtsmodel.MediaAttachment]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, }, @@ -965,7 +958,7 @@ func (c *Caches) initMention() { return m2 } - c.GTS.Mention.Init(structr.CacheConfig[*gtsmodel.Mention]{ + c.DB.Mention.Init(structr.CacheConfig[*gtsmodel.Mention]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, }, @@ -984,7 +977,7 @@ func (c *Caches) initMove() { log.Infof(nil, "cache size = %d", cap) - c.GTS.Move.Init(structr.CacheConfig[*gtsmodel.Move]{ + c.DB.Move.Init(structr.CacheConfig[*gtsmodel.Move]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -1025,7 +1018,7 @@ func (c *Caches) initNotification() { return n2 } - c.GTS.Notification.Init(structr.CacheConfig[*gtsmodel.Notification]{ + c.DB.Notification.Init(structr.CacheConfig[*gtsmodel.Notification]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "NotificationType,TargetAccountID,OriginAccountID,StatusID", AllowZero: true}, @@ -1062,7 +1055,7 @@ func (c *Caches) initPoll() { return p2 } - c.GTS.Poll.Init(structr.CacheConfig[*gtsmodel.Poll]{ + c.DB.Poll.Init(structr.CacheConfig[*gtsmodel.Poll]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "StatusID"}, @@ -1096,7 +1089,7 @@ func (c *Caches) initPollVote() { return v2 } - c.GTS.PollVote.Init(structr.CacheConfig[*gtsmodel.PollVote]{ + c.DB.PollVote.Init(structr.CacheConfig[*gtsmodel.PollVote]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "PollID", Multiple: true}, @@ -1117,7 +1110,7 @@ func (c *Caches) initPollVoteIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.PollVoteIDs.Init(0, cap) + c.DB.PollVoteIDs.Init(0, cap) } func (c *Caches) initReport() { @@ -1145,7 +1138,7 @@ func (c *Caches) initReport() { return r2 } - c.GTS.Report.Init(structr.CacheConfig[*gtsmodel.Report]{ + c.DB.Report.Init(structr.CacheConfig[*gtsmodel.Report]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, }, @@ -1186,7 +1179,7 @@ func (c *Caches) initStatus() { return s2 } - c.GTS.Status.Init(structr.CacheConfig[*gtsmodel.Status]{ + c.DB.Status.Init(structr.CacheConfig[*gtsmodel.Status]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -1224,7 +1217,7 @@ func (c *Caches) initStatusBookmark() { return s2 } - c.GTS.StatusBookmark.Init(structr.CacheConfig[*gtsmodel.StatusBookmark]{ + c.DB.StatusBookmark.Init(structr.CacheConfig[*gtsmodel.StatusBookmark]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "AccountID,StatusID"}, @@ -1247,7 +1240,7 @@ func (c *Caches) initStatusBookmarkIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.StatusBookmarkIDs.Init(0, cap) + c.DB.StatusBookmarkIDs.Init(0, cap) } func (c *Caches) initStatusFave() { @@ -1273,7 +1266,7 @@ func (c *Caches) initStatusFave() { return f2 } - c.GTS.StatusFave.Init(structr.CacheConfig[*gtsmodel.StatusFave]{ + c.DB.StatusFave.Init(structr.CacheConfig[*gtsmodel.StatusFave]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -1295,7 +1288,7 @@ func (c *Caches) initStatusFaveIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.StatusFaveIDs.Init(0, cap) + c.DB.StatusFaveIDs.Init(0, cap) } func (c *Caches) initTag() { @@ -1313,7 +1306,7 @@ func (c *Caches) initTag() { return m2 } - c.GTS.Tag.Init(structr.CacheConfig[*gtsmodel.Tag]{ + c.DB.Tag.Init(structr.CacheConfig[*gtsmodel.Tag]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "Name"}, @@ -1338,7 +1331,7 @@ func (c *Caches) initThreadMute() { return t2 } - c.GTS.ThreadMute.Init(structr.CacheConfig[*gtsmodel.ThreadMute]{ + c.DB.ThreadMute.Init(structr.CacheConfig[*gtsmodel.ThreadMute]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "ThreadID", Multiple: true}, @@ -1366,7 +1359,7 @@ func (c *Caches) initToken() { return t2 } - c.GTS.Token.Init(structr.CacheConfig[*gtsmodel.Token]{ + c.DB.Token.Init(structr.CacheConfig[*gtsmodel.Token]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "Code"}, @@ -1395,7 +1388,7 @@ func (c *Caches) initTombstone() { return t2 } - c.GTS.Tombstone.Init(structr.CacheConfig[*gtsmodel.Tombstone]{ + c.DB.Tombstone.Init(structr.CacheConfig[*gtsmodel.Tombstone]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "URI"}, @@ -1427,7 +1420,7 @@ func (c *Caches) initUser() { return u2 } - c.GTS.User.Init(structr.CacheConfig[*gtsmodel.User]{ + c.DB.User.Init(structr.CacheConfig[*gtsmodel.User]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "AccountID"}, @@ -1463,7 +1456,7 @@ func (c *Caches) initUserMute() { return u2 } - c.GTS.UserMute.Init(structr.CacheConfig[*gtsmodel.UserMute]{ + c.DB.UserMute.Init(structr.CacheConfig[*gtsmodel.UserMute]{ Indices: []structr.IndexConfig{ {Fields: "ID"}, {Fields: "AccountID,TargetAccountID"}, @@ -1484,22 +1477,5 @@ func (c *Caches) initUserMuteIDs() { log.Infof(nil, "cache size = %d", cap) - c.GTS.UserMuteIDs.Init(0, cap) -} - -func (c *Caches) initWebfinger() { - // Calculate maximum cache size. - cap := calculateCacheMax( - sizeofURIStr, sizeofURIStr, - config.GetCacheWebfingerMemRatio(), - ) - - log.Infof(nil, "cache size = %d", cap) - - c.GTS.Webfinger = new(ttl.Cache[string, string]) - c.GTS.Webfinger.Init( - 0, - cap, - 24*time.Hour, - ) + c.DB.UserMuteIDs.Init(0, cap) } |